@Override
	protected void resolveCollision(GameContext g, Collidable c, float percent) {
//		if (isDead) {
//			return;
//		}
		if (c instanceof DynamicPolygon) {
			DynamicPolygon d = (DynamicPolygon)c;
//			if (d.isDead) {
//				return;
//			}
			setCollisionPosition(percent);
			
			if (d.vertices != vertices)
				return;
			
			// kill both polygons
//			setDead(true);
//			d.setDead(true);
			g.removals.add(this);
			g.removals.add(d);
			
			// create new polygon
			int newVertices = vertices+1;
			Vector newVelocity = Vector.scalar(.75F,Vector.add(velocity,d.velocity));
			g.additions.add(new DynamicPolygon(model,collisionPosition.x,collisionPosition.y,newVelocity.x,newVelocity.y,newVertices));
			
			// create remainder dots
			int numDots = vertices - 2;
			for (int i = 0; i < numDots; i++) {
				float xVel = model.dotMaxVel*model.getRandom().nextFloat() - (model.dotMaxVel/2F);
				float yVel = model.dotMaxVel*model.getRandom().nextFloat() - (model.dotMaxVel/2F);
				g.additions.add(new Dot(model,collisionPosition.x,collisionPosition.y,xVel,yVel,true));
			}
			
			g.additions.add(new Explosion(model,collisionPosition.x,collisionPosition.y,Parameters.LINE_COLOR));
		}
	}