private void Execute(RammingMove move) { ship.Ram(); Hide(); Finish(); }
private void Finish() { wasExecuted = true; possibleMoves.Clear(); ramMove = null; if (OnMoveComplete != null) { OnMoveComplete(); } }
public void Show() { Coord pos = ship.CoordInFront(); if (MapController.instance.IsWithinMap(pos)) { if (MapController.instance.GetTile(pos).ship != null) { // ram posHighlight = TileHighlighter.instance.CreateHighlight(pos, 5); ramMove = new RammingMove(this, pos, posHighlight); Tile tile = MapController.instance.GetTile(pos); tile.OnMouseClick += ramMove.OnMouseClick; } else { // move posHighlight = TileHighlighter.instance.CreateHighlight(pos, 2); for (int d = -1; d <= 1; d++) { int facing = (int)Mathf.Repeat(ship.facing + d, 8); Coord destination = pos + Coord.neighbours[facing]; if (MapController.instance.IsWithinMap(destination)) { Highlight hl = TileHighlighter.instance.CreateHighlight(destination, 3, facing); PossibleMove move = new PossibleMove(this, destination, hl, facing); Tile destTile = MapController.instance.GetTile(destination); destTile.OnMouseClick += move.OnMouseClick; possibleMoves.Add(move); } } } } }