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); } }