public override bool CanExecute(AgricolaPlayer player, GameActionData data) { if (!base.CanExecute(player, data)) { return(false); } var rooms = ((BuildRoomsAndStablesActionData)data).RoomData.ToImmutableArray(); var stables = ((BuildRoomsAndStablesActionData)data).StableData.ToImmutableArray(); if (rooms.Length == 0 && stables.Length == 0 || rooms.Intersect <int>(stables).Count() > 0) { return(false); } if (rooms.Length > 0) { if (!ActionService.CanBuildRooms(player, data.ActionId, rooms)) { return(false); } } if (stables.Length > 0) { if (!ActionService.CanBuildStables(player, stables, Id)) { return(false); } } return(true); }
public override bool CanExecute(AgricolaPlayer player, Data.GameActionData data) { if (!ActionService.CanBuildRooms( player, data.ActionId, ImmutableArray.Create(((BuildRoomData)data).RoomData))) { return(false); } return(true); }
public override bool CanExecute(AgricolaPlayer player, GameActionData data) { if (!base.CanExecute(player, data)) { return(false); } var brotpaData = (BuildRoomOrTravelingPlayersActionData)data; if (brotpaData.TakeFood == false && (!brotpaData.Room.HasValue || !ActionService.CanBuildRooms(player, data.ActionId, ImmutableArray.Create(brotpaData.Room.Value)))) { return(false); } return(true); }