public override bool Effect(TriggerEvent triggerEvent, Room room, Player target, ref object data, Player ask_who, TriggerStruct info) { CardsMoveOneTimeStruct move = (CardsMoveOneTimeStruct)data; Player player = move.From; if (player.HasTreasure("ClassicWoodenOx")) { int count = 0; for (int i = 0; i < move.Card_ids.Count; i++) { if (move.From_pile_names[i] == "wooden_ox") { count++; } } if (count > 0) { LogMessage log = new LogMessage { Type = "#WoodenOx", From = player.Name, Arg = count.ToString(), Arg2 = "wooden_ox" }; room.SendLog(log); } } else if (player.GetPile("wooden_ox").Count > 0) { for (int i = 0; i < move.Card_ids.Count; i++) { if (move.From_places[i] != Place.PlaceEquip && move.From_places[i] != Place.PlaceTable) { continue; } WrappedCard card = Engine.GetRealCard(move.Card_ids[i]); if (card?.Name == "ClassicWoodenOx") { Player to = move.To; if (to != null && to.GetTreasure() && to.Treasure.Value == "ClassicWoodenOx" && move.To_place == Place.PlaceEquip && move.Reason.Reason == MoveReason.S_REASON_TRANSFER) { List <Player> p_list = new List <Player> { to }; room.AddToPile(to, "wooden_ox", player.GetPile("wooden_ox"), false, p_list, new CardMoveReason(MoveReason.S_REASON_TRANSFER, player.Name)); } else { room.ClearOnePrivatePile(player, "wooden_ox"); } return(false); } } } return(false); }
public override TriggerStruct Triggerable(TriggerEvent triggerEvent, Room room, Player target, ref object data, Player ask_who) { CardsMoveOneTimeStruct move = (CardsMoveOneTimeStruct)data; if (move.From == null || !move.From.Alive) { return(new TriggerStruct()); } Player player = move.From; if (player.HasTreasure("ClassicWoodenOx")) { int count = 0; for (int i = 0; i < move.Card_ids.Count; i++) { if (move.From_pile_names[i] == "wooden_ox") { count++; } } if (count > 0) { return(new TriggerStruct(Name, player)); } } else if (player.GetPile("wooden_ox").Count > 0) { for (int i = 0; i < move.Card_ids.Count; i++) { if (move.From_places[i] != Place.PlaceEquip && move.From_places[i] != Place.PlaceTable) { continue; } WrappedCard card = Engine.GetRealCard(move.Card_ids[i]); if (card?.Name == "ClassicWoodenOx") { return(new TriggerStruct(Name, player)); } } } return(new TriggerStruct()); }