protected override void Opponent_OnGuessTaken(object sender, CoordinateEventArgs e) { var ship = Battlefield.GetShip(e.Coordinate); e.Coordinate.SetChecked(); if (ship is null) { Respond(PlayerResponse.Missed); return; } if (ship.IsSunk) { Respond(PlayerResponse.Sunk); return; } if (ship.IsDamaged) { Respond(PlayerResponse.Damaged); } }
public void RecalculatePathAfterDestroy(object sender, CoordinateEventArgs args) { if (!Path.Any(field => field.Equals(args.changedCoordinate))) { pathCalculating = true; StartCoroutine(RecalculatePath(nextGoal.GridCoordinate)); } }
public void RecalculatePathAfterDestroy(object sender, CoordinateEventArgs args) { for (int i = 0; i < Spawns.Count; i++) { if (!Spawns[i].Value.Any(field => field.Equals(args.changedCoordinate))) { Spawns[i] = new KeyValuePair <Field, List <FieldGridCoordinate> >(Spawns[i].Key, CalculatePath(Spawns[i].Key.GridCoordinate)); } } }
internal void PlaceBuilding(GameObject selection) { if (IsPlacementAllowed(selection)) { // TODO Reduce stored Ressource BuildingData data = GetBuildingData(GetBuildingID(selection)); inventory.DecreaseMoney(data.moneyCost); foreach (BuildingData.Resource resource in data.ResourcesCost) { inventory.DecreaseResource(resource.itemId, resource.itemAmount); } selection.GetComponent <IBuilding>().IsPlacement = false; CoordinateEventArgs args = new CoordinateEventArgs { changedCoordinate = grid.GetNearestField(selection.transform.position).PlaceBuilding(selection) }; player.Selection = null; GameState = State.Idle; OnNewObjectPlaced(this, args); } }
protected abstract void Opponent_OnGuessTaken(object sender, CoordinateEventArgs e);
public virtual void OnPromptSubmit(CoordinateEventArgs e) { PromptSubmit?.Invoke(this, e); }