Пример #1
0
        public void Perform()
        {
            if (_v.Target.TryKillFrozen())
            {
                return;
            }

            _v.Caster.SetLowPhisicalAttack();
            _v.Target.SetPhisicalDefense();
            _v.Context.AttackPower = (Int16)(_v.Command.Weapon.Power << 1);

            if (_v.Caster.HasSupportAbility(SupportAbility1.PowerThrow))
            {
                _v.Context.Attack = (Int16)(_v.Context.Attack * 3 >> 1);
            }

            _v.Caster.PhysicalPenaltyAndBonusAttack();
            _v.Target.PhysicalPenaltyAndBonusAttack();

            if (_v.Target.HasCategory(EnemyCategory.Flight))
            {
                _v.Context.Attack = (Int16)(_v.Context.Attack * 3 >> 1);
            }

            _v.CalcPhysicalHpDamage();
        }
        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();
        }
Пример #3
0
        public void Perform()
        {
            _v.WeaponPhisicalParams(CalcAttackBonus.Simple);
            if (_v.Caster.HasSupportAbility(SupportAbility1.HighJump))
            {
                _v.Context.Attack *= 2;
            }
            else
            {
                _v.Context.Attack = (Int16)(_v.Context.Attack * 3 >> 1);
            }

            _v.Caster.PenaltyMini();
            _v.Target.PhysicalPenaltyAndBonusAttack();
            _v.CalcPhysicalHpDamage();
        }
Пример #4
0
        public virtual void Perform()
        {
            if (_v.Target.TryKillFrozen())
            {
                return;
            }

            _v.PhysicalAccuracy();
            if (!_v.Caster.HasSupportAbility(SupportAbility1.Accuracy) && !_v.TryPhysicalHit())
            {
                return;
            }

            _v.WeaponPhisicalParams(_bonus);
            _v.BonusSupportAbilitiesAttack();
            _v.Caster.PhysicalPenaltyAndBonusAttack();
            _v.Target.GambleDefence();
            _v.Target.PhysicalPenaltyAndBonusAttack();
            if (_v.Caster.IsUnderStatus(BattleStatus.Trans) && _v.Caster.PresetId == CharacterPresetId.Steiner)
            {
                _v.Context.Attack *= 2;
            }

            _v.BonusBackstabAndPenaltyLongDistance();
            _v.Caster.BonusWeaponElement();
            if (_v.CanAttackWeaponElementalCommand())
            {
                _v.TryCriticalHit();
                _v.PenaltyReverseAttack();
                _v.CalcPhysicalHpDamage();
                _v.Target.RaiseTrouble();
                _v.ConsumeMpAttack();

                TryAddWeaponStatus();
            }
        }