//used for potions/items public void Apply(Character character, RPGItems.Item item) { //loops over the items effects, adds to the character (duration = 0 is a one-off heal) for (int i = 0; i < currentEffects.Count; i++) { currentEffects[i].EquipApply(character, item); } }
public override void EquipRemove(Character target, RPGItems.Item item) { foreach (Status buff in item.buffInstances) { //ResetStats(target); buff.UpdateEffect(target); target.currentEffects.Remove(buff); } item.DeleteInstances(target); }
public override void EquipApply(Character target, RPGItems.Item item) { if (target != null && item != null) { item.Initialize(target); foreach (Status buff in item.buffInstances) { target.currentEffects.Add(buff); SetStats(target); } } }
public void ApplyItemEffects(RPGItems.Item item, bool removing = false) { // Do nothing if passed null item if (item == null) { return; } float multiplier = removing ? -1 : 1; foreach (RPGsys.Status buff in item.Effect.currentEffects) { //HACK if (buff is RPGsys.Buff) { RPGsys.Buff b = (RPGsys.Buff)buff; RPGStats.Stats tgtStat = b.StatusEffects.statBuff; float amount = b.StatusEffects.amount * multiplier; switch (b.StatusEffects.effect) { case Status.StatusEffectType.Heal: //HACK change tgtStat to hp? case Status.StatusEffectType.Buff: break; case Status.StatusEffectType.Debuff: amount *= -1; break; } // Add to dictionary, or add to already existing value float currentChange = 0; changes.TryGetValue(tgtStat, out currentChange); changes[tgtStat] = currentChange + amount; } } }
public virtual void EquipRemove(Character target, RPGItems.Item item) { }
public virtual void EquipApply(Character target, RPGItems.Item item) { }