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(); }
public Consumable() { RestoresVital = true; Restoration = new Restoration(); ItemType = ItemType.Consumable; RarityID = "???"; AddsStatusEffect = false; RemovesStatusEffect = false; AddStatusEffectID = ""; RemoveStatusEffectID = ""; CurrentStacks = 1; }