示例#1
0
 //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);
     }
 }
示例#2
0
        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);
        }
示例#3
0
 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);
         }
     }
 }
示例#4
0
            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;
                    }
                }
            }
示例#5
0
 public virtual void EquipRemove(Character target, RPGItems.Item item)
 {
 }
示例#6
0
 public virtual void EquipApply(Character target, RPGItems.Item item)
 {
 }