示例#1
0
        public void Perform()
        {
            if (!_v.Target.CheckUnsafetyOrMiss())
            {
                return;
            }

            _v.MagicAccuracy();
            _v.Target.PenaltyShellHitRate();
            _v.PenaltyCommandDividedHitRate();
            if (!_v.TargetCommand.TryMagicHit())
            {
                return;
            }

            _v.SetCommandPower();
            _v.CasterCommand.BonusElement();
            if (!_v.CanAttackMagic())
            {
                return;
            }

            if (_v.Context.Attack > 100)
            {
                _v.Context.Attack = 100;
            }

            _v.Target.Flags |= CalcFlag.HpAlteration;
            if (_v.Context.IsAbsorb)
            {
                _v.Target.Flags |= CalcFlag.HpRecovery;
            }

            _v.Target.HpDamage = (Int16)Math.Min(9999, _v.Target.CurrentHp * _v.Context.Attack / 100);
        }
 public void Perform()
 {
     _v.Caster.SetLowPhisicalAttack();
     _v.CasterCommand.SetWeaponPowerSum();
     _v.Target.SetPhisicalDefense();
     _v.CasterCommand.BonusElement();
     if (_v.CanAttackMagic())
     {
         _v.TargetCommand.CalcHpDamage();
     }
 }
        public void Perform()
        {
            _v.OriginalMagicParams();
            _v.Caster.PenaltyMini();
            _v.Target.PenaltyShellAttack();
            _v.CasterCommand.BonusElement();

            if (_v.CanAttackMagic())
            {
                _v.TargetCommand.CalcHpDamage();
                _v.TargetCommand.TryAlterMagicStatuses();
            }
        }
示例#4
0
        public void Perform()
        {
            _v.NormalMagicParams();
            _v.Caster.PenaltyMini();
            _v.Target.PenaltyShellAttack();
            _v.CasterCommand.BonusElement();
            if (!_v.CanAttackMagic())
            {
                return;
            }

            switch (_v.Command.AbilityId)
            {
            case BattleAbilityId.Shiva:
                _v.Context.AttackPower += (Int16)ff9item.FF9Item_GetCount((Int32)GemItem.Opal);
                break;

            case BattleAbilityId.Ifrit:
                _v.Context.AttackPower += (Int16)ff9item.FF9Item_GetCount((Int32)GemItem.Topaz);
                break;

            case BattleAbilityId.Ramuh:
                _v.Context.AttackPower += (Int16)ff9item.FF9Item_GetCount((Int32)GemItem.Peridot);
                break;

            case BattleAbilityId.Leviathan:
                _v.Context.AttackPower += (Int16)ff9item.FF9Item_GetCount((Int32)GemItem.Aquamarine);
                break;

            case BattleAbilityId.Bahamut:
                _v.Context.AttackPower += (Int16)ff9item.FF9Item_GetCount((Int32)GemItem.Garnet);
                break;

            case BattleAbilityId.Ark:
                _v.Context.AttackPower += (Int16)ff9item.FF9Item_GetCount((Int32)GemItem.LapisLazuli);
                break;

            case BattleAbilityId.Fenrir1:
            case BattleAbilityId.Fenrir2:
                _v.Context.AttackPower += (Int16)ff9item.FF9Item_GetCount((Int32)GemItem.Sapphire);
                break;

            case BattleAbilityId.Madeen:
                _v.Context.AttackPower += _v.Caster.Level;
                break;
            }

            _v.TargetCommand.CalcHpDamage();
            _v.TargetCommand.TryAlterMagicStatuses();
        }
示例#5
0
        public void Perform()
        {
            if (!_v.Target.CheckUnsafetyOrMiss())
            {
                return;
            }

            _v.SetCommandAttack();
            _v.CasterCommand.BonusElement();
            if (!_v.CanAttackMagic())
            {
                return;
            }

            _v.Context.Attack += (Int16)ff9item.FF9Item_GetCount(225);
            _v.TargetCommand.CalcProportionDamage();
        }
示例#6
0
        public void Perform()
        {
            if (IsMeteorMiss() || IsCometMiss())
            {
                _v.Context.Flags |= BattleCalcFlags.Miss;
                return;
            }

            InitializeAttackParams();

            _v.Caster.PenaltyMini();
            _v.Target.PenaltyShellAttack();
            _v.PenaltyCommandDividedAttack();
            _v.CasterCommand.BonusElement();

            if (_v.CanAttackMagic())
            {
                _v.TargetCommand.CalcHpDamage();
                _v.TargetCommand.TryAlterMagicStatuses();
            }
        }
        public void Perform()
        {
            if (!_v.Target.CheckUnsafetyOrMiss())
            {
                return;
            }

            _v.MagicAccuracy();
            _v.Target.PenaltyShellHitRate();
            _v.PenaltyCommandDividedHitRate();
            if (!_v.TargetCommand.TryMagicHit())
            {
                return;
            }

            _v.SetCommandAttack();
            _v.CasterCommand.BonusElement();
            if (_v.CanAttackMagic())
            {
                _v.TargetCommand.CalcProportionDamage();
            }
        }