public void Perform() { _v.WeaponPhisicalParams(); _v.CasterCommand.BonusElement(); if (!_v.CanAttackElementalCommand()) { return; } _v.Target.Flags |= CalcFlag.HpAlteration; Int16 damage = (Int16)Math.Min(9999, _v.Context.EnsureAttack * (_v.Context.AttackPower - _v.Context.DefensePower)); if (damage < 1) { return; } _v.Caster.Flags |= CalcFlag.HpAlteration; _v.Caster.HpDamage = (Int16)(_v.Caster.MaximumHp >> 3); if ((_v.Context.Flags & BattleCalcFlags.Absorb) != 0) { _v.Target.Flags |= CalcFlag.HpRecovery; } _v.Target.HpDamage = damage; }
public void Perform() { if (_v.Target.TryKillFrozen()) { return; } _v.PhysicalAccuracy(); if (!_v.TryPhysicalHit()) { return; } _v.NormalPhisicalParams(); _v.Caster.PhysicalPenaltyAndBonusAttack(); _v.Target.GambleDefence(); _v.Target.PhysicalPenaltyAndBonusAttack(); _v.BonusBackstabAndPenaltyLongDistance(); _v.CasterCommand.BonusElement(); if (!_v.CanAttackElementalCommand()) { return; } _v.TryCriticalHit(); _v.CalcPhysicalHpDamage(); _v.Target.RaiseTrouble(); _v.TargetCommand.TryAlterMagicStatuses(); }
public void Perform() { if (_v.TargetCommand.IsTargetLevelMultipleOfCommandRate() && _v.Target.CanBeAttacked()) { _v.NormalMagicParams(); _v.Caster.PenaltyMini(); _v.Target.PenaltyShellAttack(); _v.CasterCommand.BonusElement(); if (_v.CanAttackElementalCommand()) { _v.TargetCommand.CalcHpDamage(); } } }
public void Perform() { _v.NormalPhisicalParams(); _v.Caster.PhysicalPenaltyAndBonusAttack(); _v.Target.GambleDefence(); _v.Target.PhysicalPenaltyAndBonusAttack(); _v.BonusBackstabAndPenaltyLongDistance(); _v.CasterCommand.BonusElement(); if (!_v.CanAttackElementalCommand()) { return; } _v.TargetCommand.CalcHpDamage(); if (_v.Target.Row != 0) { _v.Target.ChangeRow(); } _v.TargetCommand.TryAlterMagicStatuses(); }