Exemple #1
0
 public void Consume(Character carrier, Token carriedItem)
 {
     if (this.HasToken("charge"))
     {
         var charge = carriedItem.Path("charge");
         if (charge == null && carriedItem.Name == "charge")
         {
             charge = carriedItem;
         }
         if (charge == null || charge.Value == 1)
         {
             if (HasToken("revert"))
             {
                 carriedItem.Name = GetToken("revert").Text;
                 carriedItem.Tokens.Clear();
             }
             else
             {
                 carrier.GetToken("items").Tokens.Remove(carriedItem);
                 carrier.CheckHasteSlow();
             }
         }
         else
         {
             charge.Value--;
         }
     }
     else
     {
         if (HasToken("revert"))
         {
             carriedItem.Name = GetToken("revert").Text;
             carriedItem.Tokens.Clear();
         }
         else
         {
             carrier.GetToken("items").Tokens.Remove(carriedItem);
             carrier.CheckHasteSlow();
         }
     }
 }