Beispiel #1
0
 public bool DealStatus(
     Kernel.PersistentStatuses?statuses0,
     Kernel.BattleOnlyStatuses?statuses1,
     Kernel.AttackType type,
     Kernel.AttackFlags?flags)
 {
     if (StatusesActions.ContainsKey(type))
     {
         var total = StatusesActions[type](
             statuses0 ?? Kernel.PersistentStatuses.None,
             statuses1 ?? Kernel.BattleOnlyStatuses.None,
             flags ?? Kernel.AttackFlags.None);
         return(total != 0);
     }
     return(false);
 }
Beispiel #2
0
        public bool DealDamage(int dmg, Kernel.AttackType type, Kernel.AttackFlags?flags)
        {
            if (!DamageActions.ContainsKey(type))
            {
                return(false);
            }
            //ChangeHP(-dmg);
            // check max and min values
            if (dmg > Kernel.KernelBin.MaxHPValue && type != Kernel.AttackType.GivePercentageHP)
            {
                dmg = Kernel.KernelBin.MaxHPValue;
            }
            if (dmg < 0)
            {
                return(false);
            }
            // depending on damage type see if damage is correct
            dmg = DamageActions[type](dmg, flags ?? Kernel.AttackFlags.None);

            return(dmg != 0);
        }