Пример #1
0
        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);
            }
        }
Пример #2
0
 public void RecalculatePathAfterDestroy(object sender, CoordinateEventArgs args)
 {
     if (!Path.Any(field => field.Equals(args.changedCoordinate)))
     {
         pathCalculating = true;
         StartCoroutine(RecalculatePath(nextGoal.GridCoordinate));
     }
 }
Пример #3
0
 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));
         }
     }
 }
Пример #4
0
 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);
     }
 }
Пример #5
0
 protected abstract void Opponent_OnGuessTaken(object sender, CoordinateEventArgs e);
Пример #6
0
 public virtual void OnPromptSubmit(CoordinateEventArgs e)
 {
     PromptSubmit?.Invoke(this, e);
 }