public override void OnCollision(CircleCollisionInfo collision, IBlockCollisionEffect blockHitEffect) { var effect = blockHitEffect as BlockCollisionEffect; if (effect.DoErase) { Destroy(); } if (effect.RecieveDamage) { HP -= Mathf.Min(HP, Mathf.Min(effect.RecieveDamageMax, CollisionEffect.Attack)); } if (effect.DoSpoit) { ButtleSystem.WaterSystem.AddSnow(Transform.position, HP); Destroy(); } if (HP == 0) { Destroy(); } }
public override void OnCollision(CircleCollisionInfo collision, IBlockCollisionEffect blockHitEffect) { var effect = (SampleBlockCollisionEffect)blockHitEffect; if (effect.DoErase == true) { Destroy(); } }
public override void OnCollision(int arrayX, int arrayY, CircleCollisionInfo collision, IBallCollisionEffect ballHitEffect) { var effect = (SampleBallCollisionEffect)ballHitEffect; if (effect.DoErase == true && CantErase == false) { BlockCollider.EnableArray[arrayY, arrayX] = false; } }
public void OnCollisionPhysicsCorrect(CircleCollisionInfo collision) { float angle = collision.AngleToCircle; Vector2 dir = new Vector2(Mathf.Cos(angle), Mathf.Sin(angle)); float velocityDot = Vector2.Dot(dir, Velocity); Vector2 nextVelocity = Velocity - velocityDot * 2 * dir; Vector2 nextPosition = Transform.position + (Vector3)dir * collision.Distance * -1; PositionCorrect(nextPosition); VelocityCorrect(nextVelocity); }
public override void OnCollision(int arrayX, int arrayY, CircleCollisionInfo collision, IBallCollisionEffect ballHitEffect) { var effect = ballHitEffect as BallCollisionEffect; if (effect.DoErase) { this.Destroy(); } if (BlockCollider is TextureBlockCollider) { var collider = BlockCollider as TextureBlockCollider; if (effect.Attack != 0) { collider.AddDamage(arrayX, arrayY, effect.Attack); ButtleSystem.WaterSystem.MakeWater(transform.position, effect.Attack); } } }
public abstract void OnCollision(CircleCollisionInfo collision, IBlockCollisionEffect blockHitEffect);
public abstract void OnCollision( int arrayX, int arrayY, CircleCollisionInfo collision, IBallCollisionEffect ballHitEffect);
public GridInfo(ICircleCollider collider, DistanceInfo2D distanceInfo, int arrayX, int arrayY) { Collision = new CircleCollisionInfo(collider, distanceInfo); ArrayX = arrayX; ArrayY = arrayY; }