public override bool CanExecute(AgricolaPlayer player, Data.GameActionData data) { var fields = ((PlowAndSowActionData)data).Fields; if (Optional && (fields == null || fields.Length == 0)) { return(true); } return(ActionService.CanPlowAndSow(player, Id, fields, new SowData[] { })); }
/// <summary> /// Checks if the passed parameters are valid. /// Sow values are discarded if sowEnabled is false. /// </summary> /// <param name="player"></param> /// <param name="values"></param> /// <returns></returns> public override bool CanExecute(AgricolaPlayer player, GameActionData data) { if (!base.CanExecute(player, data)) { return(false); } var fields = ((PlowAndSowActionData)data).Fields; var sow = sowEnabled ? ((PlowAndSowActionData)data).Sow : new SowData[] {}; return(ActionService.CanPlowAndSow(player, Id, fields, sow, ((PlowAndSowActionData)data).PlowUsed)); }