public virtual void RegisterTriggers(Player p) { if (EquipmentSkill != null) { Trace.TraceInformation("registered {0} to {1}", EquipmentSkill.GetType().Name, p.Id); p.AcquireEquipmentSkill(EquipmentSkill); } RegisterEquipmentTriggers(p); }
/// <summary> /// 回复临时区域的卡牌到原来位置 /// </summary> public virtual void ReleaseHoldInTemp() { foreach (Card c in cardsOnHold) { if (c.Place.DeckType == DeckType.None) { continue; } Trace.Assert(c.Type != null); if ((c.Type is Equipment) && c.Place.DeckType == DeckType.Equipment) { Equipment e = (Equipment)c.Type; e.RegisterTriggers(c.Place.Player); } } foreach (DeckPlace p in deckBackup.Keys) { Game.CurrentGame.Decks[p].Clear(); Game.CurrentGame.Decks[p].AddRange(deckBackup[p]); } deckBackup = null; cardsOnHold = null; }