예제 #1
0
        public void Perform()
        {
            BattleEnemy enemy = BattleEnemy.Find(_v.Target);

            if (!HasStealableItems(enemy))
            {
                UiState.SetBattleFollowFormatMessage(BattleMesages.DoesNotHaveAnything);
                return;
            }

            if (!_v.Caster.HasSupportAbility(SupportAbility2.Bandit))
            {
                _v.Context.HitRate = (Int16)(_v.Caster.Level + _v.Caster.Will);
                _v.Context.Evade   = _v.Target.Level;

                if (GameRandom.Next16() % _v.Context.HitRate < GameRandom.Next16() % _v.Context.Evade)
                {
                    UiState.SetBattleFollowFormatMessage(BattleMesages.CouldNotStealAnything);
                    return;
                }
            }

            if (enemy.StealableItems[3] != Byte.MaxValue)
            {
                StealItem(enemy, 3);
            }
            else if (enemy.StealableItems[2] != Byte.MaxValue)
            {
                StealItem(enemy, 2);
            }
            else if (enemy.StealableItems[1] != Byte.MaxValue)
            {
                StealItem(enemy, 1);
            }
            else
            {
                StealItem(enemy, 0);
            }
        }