public override bool CanExecute(AgricolaPlayer player, Data.GameActionData data) { if (!base.CanExecute(player, data)) { return(false); } var stables = ((BuildStableAndBakeActionData)data).StableData.ToImmutableArray(); var bake = ((BuildStableAndBakeActionData)data).BakeData.ToImmutableArray(); if ((bake == null || bake.Length == 0) && (stables == null || stables.Length == 0)) { return(false); } if (bake != null && bake.Length > 0 && !ActionService.CanBake(player, bake)) { return(false); } if (stables != null && (stables.Length > 1 || (stables.Length > 0 && !ActionService.CanBuildStables(player, stables, Id)))) { return(false); } return(true); }
/// <summary> /// Checks if a player can bake. /// </summary> /// <param name="player"></param> /// <param name="data"></param> /// <returns></returns> public override bool CanExecute(AgricolaPlayer player, GameActionData data) { var bakeData = ImmutableArray.Create(((BakeActionData)data).BakeData); if (bakeData == null || bakeData.Length == 0) { return(true); } return(ActionService.CanBake(player, bakeData)); }