public override GameAction OnExecute(AgricolaPlayer player, Data.GameActionData data) { base.OnExecute(player, data); player.PayCosts(costs); ActionService.BuildFences(player, eventTriggers, ResultingNotices, (BuildFencesActionData)data, pastures.ToImmutableArray()); return(this); }
public override GameAction OnExecute(AgricolaPlayer player, Data.GameActionData data) { base.OnExecute(player, data); ActionService.Renovate(player, ResultingNotices); switch (mode) { case RenovationActionMode.Fences: player.PayCosts(additionalCosts); ActionService.BuildFences(player, eventTriggers, ResultingNotices, ((RenovationActionData)data).FenceData, pastures.ToImmutableArray()); break; case RenovationActionMode.Improvement: var improvementData = ((RenovationActionData)data).ImprovementData; if (improvementData != null) { ActionService.BuyImprovement(player, ((RenovationActionData)data).ImprovementData, ResultingNotices); } break; } return(this); }