public void AddRestoration(Restoration restoration)
        {
            if (Rm_RPGHandler.Instance.Combat.MetaAppliesToHealing && !string.IsNullOrEmpty(restoration.SkillMetaId))
            {
                var susceptibility = SkillMetaSusceptibilities.Where(s => s.ID == restoration.SkillMetaId).Sum(s => s.AdditionalDamage);
                if (restoration.FixedRestore)
                {
                    restoration.AmountToRestore = (int)(restoration.AmountToRestore + (restoration.AmountToRestore * -susceptibility));
                }
                else
                {
                    restoration.PercentToRestore = (restoration.PercentToRestore + (restoration.PercentToRestore * -susceptibility));
                }
            }

            if (restoration.RestorationType == RestorationType.Time_Based)
            {
                Restorations.Add(restoration);
            }
            else
            {
                int amtToRestore;
                var vitalToRestore = GetVitalByID(restoration.VitalToRestoreID);
                if (restoration.FixedRestore)
                {
                    amtToRestore = restoration.AmountToRestore;
                }
                else
                {
                    amtToRestore = (int)(vitalToRestore.MaxValue * restoration.PercentToRestore);
                }
                vitalToRestore.CurrentValue += amtToRestore;
            }
            FullUpdateStats();
        }
示例#2
0
 public Consumable()
 {
     RestoresVital        = true;
     Restoration          = new Restoration();
     ItemType             = ItemType.Consumable;
     RarityID             = "???";
     AddsStatusEffect     = false;
     RemovesStatusEffect  = false;
     AddStatusEffectID    = "";
     RemoveStatusEffectID = "";
     CurrentStacks        = 1;
 }