public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { if (entity is Mario) { if (this is OneUpMushroom) { SoundFactory.Instance.UpEat(); } else if (this is SuperMushroom) { SoundFactory.Instance.PowerEat(); } else if (this is Coin) { SoundFactory.Instance.Coin(); } Collect = true; } else { if (direction == CollisionDetection.Direction.right || direction == CollisionDetection.Direction.left) { ChangeDirection(); } else { Vector2 vel = Velocity; vel.Y = 0; Velocity = vel; } } }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { if (direction == CollisionDetection.Direction.up) { OnRaiseWarpEvent(new EventArgs()); } }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { if (entity is Mario mario) { if (facingDirection == direction) { if (facingDirection == CollisionDetection.Direction.up) { if (mario.ActionStateEnum == Mario.ActionStateType.Crouching) { SoundItems.SoundFactory.Instance.Pipe(); OnRaiseWarpEvent(new WarpEventArgs(Warp, 1)); } } else { int dir; if (facingDirection == CollisionDetection.Direction.right) { dir = 4; } else if (facingDirection == CollisionDetection.Direction.left) { dir = 2; } else { dir = 3; } OnRaiseWarpEvent(new WarpEventArgs(Warp, dir)); } } } }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { if (entity is IBlock) { Collect = true; } else if (entity is Mario) { if (((Mario)entity).PowerStateEnum == Mario.PowerStateType.Star) { TakeDamage(); SoundFactory.Instance.Stomp(); NeedsUpdating = true; Collidable = false; Stage.player.AddPoints(1000); } } else if (entity is BulletBill) { TakeDamage(); SoundFactory.Instance.Stomp(); NeedsUpdating = true; Collidable = false; } }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { if (!used) { base.CollisionResponse(entity, direction); } }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { if (entity.Type == EntityType.Fireball || (entity is Mario && ((Mario)entity).PowerStateEnum == Mario.PowerStateType.Star)) { Collect = true; cameFrom.NeedsUpdating = false; } }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { if (entity is Mario) { Collect = true; NeedsUpdating = true; } }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { if (entity is Mario) { SoundFactory.Instance.Coin(); Collect = true; } }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { if (entity is Mario) { if (direction == CollisionDetection.Direction.down || direction == CollisionDetection.Direction.downnov) { CollisionTransition((Mario)entity); } } }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { if (entity is Mario) { if (direction == CollisionDetection.Direction.down || direction == CollisionDetection.Direction.downnov) { CollisionTransition((Mario)entity); SoundFactory.Instance.BrickDes(); } } }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { base.CollisionResponse(entity, direction); if (entity is MarioEntity.Mario) { while (LocksLeft > 0 && Stage.player.Keys > 0) { LocksLeft--; Stage.player.Keys--; KeyHoles[LocksLeft].Used = true; } } }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { if (entity is Mario) { if (direction == CollisionDetection.Direction.up || ((Mario)entity).PowerStateEnum == Mario.PowerStateType.Star) { SoundFactory.Instance.Stomp(); NeedsUpdating = true; Collidable = false; TakeDamage(); } } else if (entity is IBlock) { if (direction == CollisionDetection.Direction.left || direction == CollisionDetection.Direction.right) { ChangeDirection(); } else { Vector2 vel = Velocity; vel.Y = 0; Velocity = vel; } } else if (entity is AbstractEnemy) { if (direction == CollisionDetection.Direction.left && Velocity.X < 0) { ChangeDirection(); } else if (direction == CollisionDetection.Direction.right && Velocity.X > 0) { ChangeDirection(); } } else if (entity is Fireball) { TakeDamage(); SoundFactory.Instance.Stomp(); NeedsUpdating = true; Collidable = false; OnRaiseFireballEvent(null); } }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { if (entity is IBlock) { if (direction != CollisionDetection.Direction.down) { Collect = true; } else { GiveUpVelocity(); } } else { Collect = true; } }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { if (entity is Mario) { Collect = true; } else if (entity is IBlock) { if (direction == CollisionDetection.Direction.down || direction == CollisionDetection.Direction.downnov) { GiveUpVelocity(); } else if (direction == CollisionDetection.Direction.right || direction == CollisionDetection.Direction.left) { ChangeDirection(); } } }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { if (box.Right >= entity.CollisionBox.Right && box.Left <= entity.CollisionBox.Left && box.Top <= entity.CollisionBox.Top && box.Bottom >= entity.CollisionBox.Bottom) { if (!entered && entity.Type == LookingFor) { entered = true; OnRaiseEnterEvent(new CollisionZoneEventArgs(entity)); } } else { if (entered && entity.Type == LookingFor) { entered = false; OnRaiseLeaveEvent(new CollisionZoneEventArgs(entity)); } } }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { if (entity is Mario) { if (((Mario)entity).PowerStateEnum == Mario.PowerStateType.Star) { TakeDamage(); SoundFactory.Instance.Stomp(); NeedsUpdating = true; Collidable = false; } if (direction == CollisionDetection.Direction.up) { EnterShell(); SoundFactory.Instance.Stomp(); } if (EnemyState is KoopaShellState) { if (!Held && !((KoopaShellState)EnemyState).GetDeadly()) { if (direction == CollisionDetection.Direction.left) { ((KoopaShellState)EnemyState).Right(); SoundFactory.Instance.Stomp(); } else if (direction == CollisionDetection.Direction.right) { ((KoopaShellState)EnemyState).Left(); SoundFactory.Instance.Stomp(); } } } } else if (entity is IBlock) { if (direction == CollisionDetection.Direction.left || direction == CollisionDetection.Direction.right) { ChangeDirection(); if (EnemyState is KoopaShellState) { ((IBlock)entity).CollisionTransition(); } } else { Vector2 vel = Velocity; vel.Y = 0; Velocity = vel; ((IBlock)entity).CollisionTransition(); } } else if (entity is AbstractEnemy) { if (EnemyState is KoopaShellState) { ((AbstractEnemy)entity).TakeDamage(); SoundFactory.Instance.Stomp(); } else { if (direction == CollisionDetection.Direction.left && Velocity.X < 0) { ChangeDirection(); } else if (direction == CollisionDetection.Direction.right && Velocity.X > 0) { ChangeDirection(); } } } else if (entity is Fireball) { TakeDamage(); SoundFactory.Instance.Stomp(); NeedsUpdating = true; Collidable = false; OnRaiseFireballEvent(null); } }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { Collect = true; }
public WarpEntranceBlock(Texture2D texture, CollisionDetection.Direction dir) : base(texture, EntityType.WarpPipe) { facingDirection = dir; Order = .7f; }
public override void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { if (entity is AbstractEnemy && !(entity is Canon)) { if (PowerStateEnum != PowerStateType.Star) { if (!((AbstractEnemy)entity is AbstractKoopa) && (entity is PiranhaPlant || (direction != CollisionDetection.Direction.down && direction != CollisionDetection.Direction.downnov))) { TakeDamage(); } else { //player gets points if (entity is BulletBill) { if (ActionStateEnum == ActionStateType.Jumping) { OnGround = true; ActionState.ActionDown(); } } else if (entity is AbstractKoopa) { IEnemyState koopaState = ((AbstractEnemy)entity).EnemyState; if (!(koopaState is KoopaShellState) && !(direction == CollisionDetection.Direction.down || direction == CollisionDetection.Direction.downnov)) { TakeDamage(); } else if (koopaState is KoopaShellState && ((KoopaShellState)koopaState).GetDeadly() && !(direction == CollisionDetection.Direction.down || direction == CollisionDetection.Direction.downnov)) { TakeDamage(); } else if (ActionStateEnum != ActionStateType.HoldingShell && holding && koopaState is KoopaShellState && !((KoopaShellState)koopaState).GetDeadly()) { ActionState.Leave(new MarioHoldingShellState(this, (AbstractKoopa)entity, ActionState)); } else { if (direction == CollisionDetection.Direction.down || direction == CollisionDetection.Direction.downnov) { Velocity = new Vector2(Velocity.X, -4f); OnRaiseCollisionEvent(new MarioCollisionEventArgs(entity)); } } } else { Velocity = new Vector2(Velocity.X, -4f); OnRaiseCollisionEvent(new MarioCollisionEventArgs(entity)); } } } else { OnRaiseCollisionEvent(new MarioCollisionEventArgs(entity));//player gets points } } else if (entity is IBlock) { switch (direction) { case CollisionDetection.Direction.down: if (ActionStateEnum == ActionStateType.Jumping) { ActionState.ActionDown(); } break; case CollisionDetection.Direction.up: ActionState.ActionDown(); OnRaiseCollisionEvent(new MarioCollisionEventArgs(entity)); break; case CollisionDetection.Direction.downnov: if (ActionState is MarioActionStateJump) { ActionState.ActionDown(); } break; case CollisionDetection.Direction.upnov: ActionState.ActionDown(); OnRaiseCollisionEvent(new MarioCollisionEventArgs(entity)); break; } } else if (entity is IItem) { if (entity is Star) { StarAction(); } if (entity is FireFlower) { ActionFireFlower(); } if (entity is SuperMushroom) { SuperMushroomAction(false); } //mario gets points if (entity is Key key) { System.Diagnostics.Debug.WriteLine(key.KeyNum); } OnRaiseCollisionEvent(new MarioCollisionEventArgs(entity)); } }
public virtual void CollisionResponse(IEntity entity, CollisionDetection.Direction direction) { //defualt is to do nothing. }