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); }
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); }