public void Perform()
 {
     _v.WeaponPhisicalParams();
     _v.Caster.PhysicalPenaltyAndBonusAttack();
     _v.Target.PhysicalPenaltyAndBonusAttack();
     _v.CasterCommand.BonusElement();
     if (_v.CanAttackWeaponElementalCommand())
     {
         _v.TargetCommand.CalcHpDamage();
         _v.TargetCommand.TryAlterMagicStatuses();
     }
 }
Beispiel #2
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();
            }
        }