using Client.Domain.AI.Combat; using Client.Domain.ValueObjects; using System.Collections.Generic; namespace Client.Domain.AI { public class Config { public struct SkillCondition { public uint Id { get; set; } public byte MaxTargetPercentHp { get; set; } public byte MinPlayerPercentMp { get; set; } public byte MaxPlayerPercentHp { get; set; } } public class CombatSection { public uint MobsMaxDeltaZ { get; set; } = 500; public Dictionary ExcludedMobIds { get; set; } = new Dictionary(); public Dictionary IncludedMobIds { get; set; } = new Dictionary(); public byte? MobLevelLowerLimit { get; set; } = null; public byte? MobLevelUpperLimit { get; set; } = null; public byte RestStartPercentHp { get; set; } = 30; public byte RestEndPecentHp { get; set; } = 100; public byte RestStartPecentMp { get; set; } = 10; public byte RestEndPecentMp { get; set; } = 100; public CombatZone Zone { get; set; } = new CombatZone(new Vector3(0, 0, 0), 0); public bool AutoUseShots { get; set; } = true; public uint AttackDistanceMili { get; set; } = 80; public uint AttackDistanceBow { get; set; } = 500; public bool UseOnlySkills { get; set; } = false; public List SkillConditions { get; set; } = new List(); public byte MaxPassableHeight { get; set; } = 30; public bool SpoilIfPossible { get; set; } = true; public bool SpoilIsPriority { get; set; } = false; public Dictionary ExcludedSpoilMobIds { get; set; } = new Dictionary(); public Dictionary IncludedSpoilMobIds { get; set; } = new Dictionary(); public uint SpoilSkillId { get; set; } = 254; public uint SweeperSkillId { get; set; } = 42; public byte SweepAttemptsCount { get; set; } = 10; public bool PickupIfPossible { get; set; } = true; public uint PickupMaxDeltaZ { get; set; } = 500; public byte PickupAttemptsCount { get; set; } = 10; public Dictionary ExcludedItemIdsToPickup { get; set; } = new Dictionary(); public Dictionary IncludedItemIdsToPickup { get; set; } = new Dictionary(); public short PickupRadius = 200; } public class DelevelingSection { public byte TargetLevel { get; set; } = 20; public uint AttackDistance { get; set; } = 80; public uint SkillId { get; set; } = 0; } public uint DelayBetweenTransitions { get; set; } = 250; public CombatSection Combat { get; } = new CombatSection(); public DelevelingSection Deleveling { get; } = new DelevelingSection(); } }