public static void ExecuteAction(Player player, Tile tile, ReactionType action) { Element tileType = tile.ElementType; if (Controller.Reactions.ContainsKey(tileType)) { if (Controller.Reactions[tileType].Types.Contains(action)) { // Execute Action switch (action) { case ReactionType.Platform: break; case ReactionType.HorizontalPlatform: break; case ReactionType.VerticalPlatform: break; case ReactionType.ComplexPlatform: break; case ReactionType.Hurt: player.Hurt(-player.Direction); break; case ReactionType.HurtFromFront: player.Hurt(-player.Direction); break; case ReactionType.HurtFromBack: player.Hurt(-player.Direction); break; case ReactionType.HurtFromAbove: player.Hurt(-player.Direction); break; case ReactionType.HurtFromBelow: player.Hurt(-player.Direction); break; case ReactionType.Bounce: player.Jump(1.0f); break; case ReactionType.Jump: player.Jump(1.0f); break; case ReactionType.HighJump: player.Jump(2.0f); break; case ReactionType.Collect: break; case ReactionType.Push: break; case ReactionType.Destroy: break; default: break; } } } }
private void RemoveFlaggedTiles() { if (RemoveTile != null) { LevelMap.Tiles.Remove(RemoveTile); RemoveTile = null; } }
public void TileToRemove(Tile tile) { RemoveTile = tile; }
internal void Carry(Tile tileToPush) { XState = HorizontalState.Carrying; }
internal void ReleaseLocks() { LockToHorizontalTile = false; LockToVerticalTile = false; LockToComplexTile = false; LockOnTileTile = null; }
internal void Release(Tile tileToPush) { XState = HorizontalState.Stopped; }
internal void LockToTile(Tile tile) { MovementType movementType = tile.Movement.Type; switch (movementType) { case MovementType.Static: return; case MovementType.Horizontal: LockToHorizontalTile = true; break; case MovementType.Vertical: LockToVerticalTile = true; break; case MovementType.HalfCircle: LockToComplexTile = true; break; } LockOnTileTile = tile; }