internal void switchFaceDownToFaceUp(MonsterCard toSwitch) { if (FaceDownCardsInMonsterZone.Contains(toSwitch)) { FaceDownCardsInMonsterZone.Remove(toSwitch); List <MonsterCard> toSet = MeReadOnly.FaceUpMonsters; toSet.Add(toSwitch); MeReadOnly.FaceUpMonsters = toSet; MeReadOnly.NumberOfFaceDownCardsInMonsterZone = MeReadOnly.NumberOfFaceDownCardsInMonsterZone - 1; } }
/// <summary> /// Should only be called by the Game class after RequestNormalSummon is called. The Game class checks whether this function is allowable. /// </summary> /// <param name="toPlay">The card which is to be summoned</param> internal void addFaceDownToMonsterZone(System.Object toPlay) { if ((toPlay as MonsterCard).Mode == Mode.Attack) { (toPlay as MonsterCard).ChangeBattlePosition(); } FaceDownCardsInMonsterZone.Add(toPlay as MonsterCard); MeReadOnly.NumberOfFaceDownCardsInMonsterZone = MeReadOnly.NumberOfFaceDownCardsInMonsterZone + 1; Hand.Remove(toPlay as Cards.Card); MeReadOnly.NumberOfCardsInHand = MeReadOnly.NumberOfCardsInHand - 1; }
internal void SendToGraveYard(System.Object c, Zone z) { if (z == Zone.Hand) { if (Hand.Contains(c as Cards.Card)) { Hand.Remove(c as Cards.Card); MeReadOnly.NumberOfCardsInHand = MeReadOnly.NumberOfCardsInHand - 1; } } else if (z == Zone.Monster) { if (FaceDownCardsInMonsterZone.Contains(c as MonsterCard)) { FaceDownCardsInMonsterZone.Remove(c as MonsterCard); SpellAndTrapCard attachedTo = (c as MonsterCard).EquippedTo; if (attachedTo != null) { SendToGraveYard(attachedTo, Zone.SpellTrap); } MeReadOnly.NumberOfFaceDownCardsInMonsterZone = MeReadOnly.NumberOfFaceDownCardsInMonsterZone - 1; } else if (MeReadOnly.FaceUpMonsters.Contains(c as MonsterCard)) { List <MonsterCard> toRemoveFrom = MeReadOnly.FaceUpMonsters; toRemoveFrom.Remove(c as MonsterCard); SpellAndTrapCard attachedTo = (c as MonsterCard).EquippedTo; if (attachedTo != null) { SendToGraveYard(attachedTo, Zone.SpellTrap); } MeReadOnly.FaceUpMonsters = toRemoveFrom; } } else if (z == Zone.SpellTrap) { if (FaceDownTraps.Contains(c as SpellAndTrapCard)) { FaceDownTraps.Remove(c as SpellAndTrapCard); MeReadOnly.NumberOfFaceDownTraps--; } else if (MeReadOnly.FaceUpTraps.Contains(c as SpellAndTrapCard)) { List <SpellAndTrapCard> toRemoveFrom = MeReadOnly.FaceUpTraps; toRemoveFrom.Remove(c as SpellAndTrapCard); MeReadOnly.FaceUpTraps = toRemoveFrom; } } GraveYard.Add(c as Cards.Card); }
/// <summary> /// Called by the Game class to actually change the mode of the card (to attack mode or defense mode). /// </summary> /// <param name="toChangeModeOf">to change to attack mode or defense mode</param> internal void GameChangeModeOfCard(MonsterCard toChangeModeOf) { if (FaceDownCardsInMonsterZone.Contains(toChangeModeOf)) { int index = FaceDownCardsInMonsterZone.IndexOf(toChangeModeOf); toChangeModeOf.ChangeBattlePosition(); FaceDownCardsInMonsterZone[index] = toChangeModeOf; } else if (MeReadOnly.FaceUpMonsters.Contains(toChangeModeOf)) { List <MonsterCard> faceUps = MeReadOnly.FaceUpMonsters; int index = faceUps.IndexOf(toChangeModeOf); toChangeModeOf.ChangeBattlePosition(); faceUps[index] = toChangeModeOf; MeReadOnly.FaceUpMonsters = faceUps; } }
internal void SendToHand(System.Object c, Zone z) { if (z == Zone.Graveyard) { if (GraveYard.Contains(c as Cards.Card)) { GraveYard.Remove(c as Cards.Card); } } else if (z == Zone.Monster) { if (FaceDownCardsInMonsterZone.Contains(c as MonsterCard)) { FaceDownCardsInMonsterZone.Remove(c as MonsterCard); MeReadOnly.NumberOfFaceDownCardsInMonsterZone = MeReadOnly.NumberOfFaceDownCardsInMonsterZone - 1; } else if (MeReadOnly.FaceUpMonsters.Contains(c as MonsterCard)) { List <MonsterCard> toRemoveFrom = MeReadOnly.FaceUpMonsters; toRemoveFrom.Remove(c as MonsterCard); MeReadOnly.FaceUpMonsters = toRemoveFrom; } } else if (z == Zone.SpellTrap) { if (FaceDownTraps.Contains(c as SpellAndTrapCard)) { FaceDownTraps.Remove(c as SpellAndTrapCard); MeReadOnly.NumberOfFaceDownTraps--; } else if (MeReadOnly.FaceUpTraps.Contains(c as SpellAndTrapCard)) { List <SpellAndTrapCard> toRemoveFrom = MeReadOnly.FaceUpTraps; toRemoveFrom.Remove(c as SpellAndTrapCard); MeReadOnly.FaceUpTraps = toRemoveFrom; } } Hand.Add(c as Cards.Card); }