public override GameAction OnExecute(AgricolaPlayer player, Data.GameActionData data) { base.OnExecute(player, data); ActionService.Cook(player, eventTriggers, ((CookActionData)data).Resources, ResultingNotices); ActionService.AssignAnimals(player, ((CookActionData)data).AnimalData, ResultingNotices); return(this); }
public override GameAction OnExecute(AgricolaPlayer player, Data.GameActionData data) { base.OnExecute(player, data); var choiceData = (AnimalChoiceActionData)data; if (choiceData.Option == AnimalResource.Sheep) { player.AddResource(Resource.Food); } else if (choiceData.Option == AnimalResource.Cattle) { player.RemoveResource(Resource.Food); } ActionService.AssignAnimals(player, choiceData.AnimalData, ResultingNotices); return(this); }
public bool CompleteHarvest(AgricolaPlayer player, HarvestData data, out IClientGameUpdate update, out List <GameActionNotice> notices) { if (Mode == GameMode.Harvest && player.Harvesting && CanCompleteHarvest(player, data)) { var conversions = data.FeedResources; var feedNotice = new List <INoticePredicate>(); int begAmount; player.FeedFamily(data.FeedResources, feedNotice, out begAmount); notices = new List <GameActionNotice>(); ActionService.AssignAnimals(player, data.AnimalData, notices); UpdateScorecards(); if (begAmount > 0) { feedNotice.Add(new IdPredicate(begAmount)); } notices.Add(new GameActionNotice(player.Name, NoticeVerb.Fed.ToString(), feedNotice)); if (IsHarvestComplete()) { update = StartNextRound(notices); } else { update = new PartialGameUpdate(); ((PartialGameUpdate)update).AddPlayer(player); } return(true); } update = null; notices = null; return(false); }
public override GameAction OnExecute(AgricolaPlayer player, Data.GameActionData data) { base.OnExecute(player, data); ActionService.AssignAnimals(player, (AnimalCacheActionData)data, ResultingNotices); return(this); }