Sanguosha.Core.Cards.Equipment.RegisterTriggers C# (CSharp) Method

RegisterTriggers() public method

public RegisterTriggers ( Player p ) : void
p Sanguosha.Core.Players.Player
return void
        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);
        }

Usage Example

 /// <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;
 }