public override void OnExecute(AgricolaPlayer player, List <GameActionNotice> resultingNotices) { int owned = 0; if (this.RequiredType.IsAnimal()) { owned = player.Farmyard.AnimalCount((AnimalResource)this.RequiredType); } else { owned = player.GetResource(this.RequiredType); } if (!this.Repeat) { if (owned >= this.RequiredCount) { ActionService.AssignResource(player, new ResourceCache(this.Type, this.Count), resultingNotices); } } else { var count = (int)(owned / this.RequiredCount); ActionService.AssignResource(player, new ResourceCache(this.Type, this.Count * count), resultingNotices); } }
protected override void OnExecute(AgricolaPlayer player, GameEventTrigger trigger, Card card, List <GameActionNotice> resultingNotices) { var dif = 4 - ((TravelingPlayersActionTrigger)trigger).FoodTaken; if (dif > 0) { var resource = new ResourceCache(Resource.Food, dif); ActionService.AssignResource(player, resource, resultingNotices); } }
public override void OnExecute(AgricolaPlayer player, List <GameActionNotice> resultingNotices) { var gameRoundsRemaining = ((AgricolaGame)player.Game).RoundsRemaining; if (gameRoundsRemaining >= RoundsRemaining) { if (this.Type.IsAnimal()) { // Animals not supported during this action currently } else { ActionService.AssignResource(player, new ResourceCache(this.Type, this.Count), resultingNotices); } } }
protected override void OnExecute(AgricolaPlayer player, GameEventTrigger trigger, Card card, List <GameActionNotice> resultingNotices) { var resource = new ResourceCache(Resources[0].Type, Resources[0].Count * ((BakeTrigger)trigger).GrainBaked); ActionService.AssignResource(player, resource, resultingNotices); }