示例#1
0
        public Single RateTarget()
        {
            if (!_v.Target.CanBeAttacked())
            {
                return(0);
            }

            if (_v.Target.IsZombie)
            {
                Int32 rate = BattleScriptStatusEstimate.RateStatus(BattleStatus.Death);
                if (!_v.Target.IsPlayer)
                {
                    rate *= -1;
                }

                return(rate);
            }
            else
            {
                Single rate = 0;

                rate += _v.Target.MaximumHp * BattleScriptDamageEstimate.RateHpMp(_v.Target.CurrentHp, _v.Target.MaximumHp);
                rate += _v.Target.MaximumMp * BattleScriptDamageEstimate.RateHpMp(_v.Target.CurrentMp, _v.Target.MaximumMp);

                if (!_v.Target.IsPlayer)
                {
                    rate *= -1;
                }

                return(rate);
            }
        }
        public Single RateTarget()
        {
            _v.Context.Attack       = 15;
            _v.Context.AttackPower  = _v.Command.Item.Power;
            _v.Context.DefensePower = 0;

            if (_v.Caster.HasSupportAbility(SupportAbility1.Chemist))
            {
                _v.Context.Attack *= 2;
            }

            _v.TargetCommand.CalcMpMagicRecovery();

            Single rate = _v.Target.MpDamage * BattleScriptDamageEstimate.RateHpMp(_v.Target.CurrentMp, _v.Target.MaximumMp);

            if ((_v.Target.Flags & CalcFlag.MpRecovery) != CalcFlag.MpRecovery)
            {
                rate *= -1;
            }
            if (!_v.Target.IsPlayer)
            {
                rate *= -1;
            }

            return(rate);
        }
示例#3
0
        public Single RateTarget()
        {
            Byte  itemId   = (Byte)_v.Command.AbilityId;
            Int16 recovery = (Int16)(_v.Command.Item.Power * (ff9item.FF9Item_GetCount(itemId) + 1));

            Single rate = recovery * BattleScriptDamageEstimate.RateHpMp(_v.Target.CurrentHp, _v.Target.MaximumHp);

            if (!_v.Target.IsPlayer)
            {
                rate *= -1;
            }

            return(rate);
        }