mirror of
https://github.com/modernuo/ModernUO
synced 2026-08-11 22:23:06 -04:00
> [!IMPORTANT] > Please read through these changes, as they changed certain expectations for how the internal AI thinking/movement work. > Note that some mobs still don't have smooth movement on ClassicUO due to how the client handles animations/movement. ### Summary - **Important Change**: Mobs will now move at a more regular pace. If the OnThink results in a move, but the cooldown would otherwise prevent the move, then the movement is scheduled on another timer. - Added a 400ms delay to mobs turning to face a player to attack in order to avoid glitching between moving and turning. - Reverted AI thinking speeds back to RunUO specific speeds. - Reverted the AI thinking to moving conversion delays back to RunUO. - For thinking speeds that are not exactly the predefined speeds from RunUO, there is a new calculation to determine the correct conversion to movement speed. This stops speeds like `0.35` from being faster than `0.3` > [!NOTE] > **Developer Note** > BaseAI.CheckMove() no longer contains the check for whether or not a mob is on movement cooldown. This function can now be overwritten without causing issues to figuring out that cooldown.
154 lines
6.1 KiB
JSON
154 lines
6.1 KiB
JSON
[
|
|
{
|
|
"level": "VerySlow",
|
|
"active": 0.4,
|
|
"passive": 0.8,
|
|
"types": []
|
|
},
|
|
{
|
|
"level": "Slow",
|
|
"active": 0.3,
|
|
"passive": 0.6,
|
|
"types": [
|
|
"AntLion", "ArcticOgreLord", "BogThing",
|
|
"Bogle", "BoneKnight", "EarthElemental",
|
|
"Ettin", "FrostOoze", "FrostTroll",
|
|
"GazerLarva", "Ghoul", "Golem",
|
|
"HeadlessOne", "Jwilson", "Mummy",
|
|
"Ogre", "OgreLord", "PlagueBeast",
|
|
"Quagmire", "Rat", "RottingCorpse",
|
|
"SewerRat", "Skeleton", "Slime",
|
|
"Zombie", "Walrus", "RestlessSoul",
|
|
"CrystalElemental", "DarknightCreeper", "MoundOfMaggots",
|
|
"Juggernaut", "Yamandon", "Serado",
|
|
"GreaterDragon", "PlagueBeastLord"
|
|
]
|
|
},
|
|
{
|
|
"level": "Medium",
|
|
"active": 0.25,
|
|
"passive": 0.5,
|
|
"types": [
|
|
"AcidElemental", "AgapiteElemental", "Alligator",
|
|
"AncientLich", "Betrayer", "Bird",
|
|
"BlackBear", "BlackSolenInfiltratorQueen", "BlackSolenInfiltratorWarrior",
|
|
"BlackSolenQueen", "BlackSolenWarrior", "BlackSolenWorker",
|
|
"BloodElemental", "Boar", "Bogling",
|
|
"BoneMagi", "Brigand", "BronzeElemental",
|
|
"BrownBear", "Bull", "BullFrog",
|
|
"Cat", "Centaur", "ChaosDaemon",
|
|
"Chicken", "GolemController", "CopperElemental",
|
|
"CopperElemental", "Cougar", "Cow",
|
|
"Cyclops", "Daemon", "DeepSeaSerpent",
|
|
"DesertOstard", "DireWolf", "Dog",
|
|
"Dolphin", "Dragon", "Drake",
|
|
"DullCopperElemental", "Eagle", "ElderGazer",
|
|
"EvilMage", "EvilMageLord", "Executioner",
|
|
"Savage", "FireElemental", "FireGargoyle",
|
|
"FireSteed", "ForestOstard", "FrenziedOstard",
|
|
"FrostSpider", "Gargoyle", "Gazer",
|
|
"IceSerpent", "GiantRat", "GiantSerpent",
|
|
"GiantSpider", "GiantToad", "Goat",
|
|
"GoldenElemental", "Gorilla", "GreatHart",
|
|
"GreyWolf", "GrizzlyBear", "Guardian",
|
|
"Harpy", "Harrower", "HellHound",
|
|
"Hind", "HordeMinion", "Horse",
|
|
"Horse", "IceElemental", "IceFiend",
|
|
"IceSnake", "Imp", "JackRabbit",
|
|
"Kirin", "Kraken", "PredatorHellCat",
|
|
"LavaLizard", "LavaSerpent", "LavaSnake",
|
|
"Lizardman", "Llama", "Mongbat",
|
|
"StrongMongbat", "MountainGoat", "Orc",
|
|
"OrcBomber", "OrcBrute", "OrcCaptain",
|
|
"OrcishLord", "OrcishMage", "PackHorse",
|
|
"PackLlama", "Panther", "Pig",
|
|
"PlagueSpawn", "PolarBear", "Rabbit",
|
|
"Ratman", "RatmanArcher", "RatmanMage",
|
|
"RedSolenInfiltratorQueen", "RedSolenInfiltratorWarrior", "RedSolenQueen",
|
|
"RedSolenWarrior", "RedSolenWorker", "RidableLlama",
|
|
"Ridgeback", "Scorpion", "SeaSerpent",
|
|
"SerpentineDragon", "Shade", "ShadowIronElemental",
|
|
"ShadowWisp", "ShadowWyrm", "Sheep",
|
|
"SilverSteed", "SkeletalDragon", "SkeletalMage",
|
|
"SkeletalMount", "HellCat", "Snake",
|
|
"SnowLeopard", "SpectralArmour", "Spectre",
|
|
"StoneGargoyle", "StoneHarpy", "SwampDragon",
|
|
"ScaledSwampDragon", "SwampTentacle", "TerathanAvenger",
|
|
"TerathanDrone", "TerathanMatriarch", "TerathanWarrior",
|
|
"TimberWolf", "Titan", "Troll",
|
|
"Unicorn", "ValoriteElemental", "VeriteElemental",
|
|
"CoMWarHorse", "MinaxWarHorse", "SLWarHorse",
|
|
"TBWarHorse", "WaterElemental", "WhippingVine",
|
|
"WhiteWolf", "Wraith", "Wyvern",
|
|
"KhaldunZealot", "KhaldunSummoner", "SavageRidgeback",
|
|
"LichLord", "SkeletalKnight", "SummonedDaemon",
|
|
"SummonedEarthElemental", "SummonedWaterElemental", "SummonedFireElemental",
|
|
"MeerWarrior", "MeerEternal", "MeerMage",
|
|
"MeerCaptain", "JukaLord", "JukaMage",
|
|
"JukaWarrior", "AbysmalHorror", "BoneDemon",
|
|
"Devourer", "FleshGolem", "Gibberling",
|
|
"GoreFiend", "Impaler", "PatchworkSkeleton",
|
|
"Ravager", "ShadowKnight", "SkitteringHopper",
|
|
"Treefellow", "VampireBat", "WailingBanshee",
|
|
"WandererOfTheVoid", "Cursed", "GrimmochDrummel",
|
|
"LysanderGathenwale", "MorgBergen", "ShadowFiend",
|
|
"SpectralArmour", "TavaraSewel", "ArcaneDaemon",
|
|
"Doppleganger", "EnslavedGargoyle", "ExodusMinion",
|
|
"ExodusOverseer", "GargoyleDestroyer", "GargoyleEnforcer",
|
|
"Moloch", "BakeKitsune", "DeathwatchBeetleHatchling",
|
|
"Kappa", "KazeKemono", "DeathwatchBeetle",
|
|
"TsukiWolf", "YomotsuElder", "YomotsuPriest",
|
|
"YomotsuWarrior", "RevenantLion", "Oni",
|
|
"Gaman", "Crane", "Beetle",
|
|
"Parrot", "ElfBrigand", "GreaterMongbat",
|
|
"AnimatedWeapon", "Reaper", "Corpser"
|
|
]
|
|
},
|
|
{
|
|
"level": "Fast",
|
|
"active": 0.2,
|
|
"passive": 0.4,
|
|
"types": [
|
|
"LordOaks", "Silvani", "AirElemental",
|
|
"AncientWyrm", "Balron", "BladeSpirits",
|
|
"DreadSpider", "Efreet", "EtherealWarrior",
|
|
"Lich", "Nightmare", "OphidianArchmage",
|
|
"OphidianMage", "OphidianWarrior", "OphidianMatriarch",
|
|
"OphidianKnight", "PoisonElemental",
|
|
"SandVortex", "SavageRider", "SavageShaman",
|
|
"SnowElemental", "WhiteWyrm", "Wisp",
|
|
"DemonKnight", "GiantBlackWidow", "SummonedAirElemental",
|
|
"LesserHiryu", "Hiryu", "LadyOfTheSnow",
|
|
"RaiJu", "Ronin", "RuneBeetle",
|
|
"Changeling", "LadyJennifyr", "LadyMarai", "MasterJonath",
|
|
"MasterMikael", "MasterTheophilus", "RedDeath",
|
|
"SirPatrick", "Miasma", "Rend",
|
|
"Grobu", "Gnaw", "Guile",
|
|
"Irk", "Spite", "LadyLissith",
|
|
"LadySabrix", "Malefic", "Silk",
|
|
"Virulent", "SeaHorse", "UnholyFamiliar",
|
|
"HolyFamiliar", "GiantIceWorm", "Phoenix",
|
|
"Succubus", "EnragedRabbit", "EnragedHind",
|
|
"EnragedHart", "EnragedBlackBear", "EnragedEagle",
|
|
"RagingGrizzlyBear", "CorrosiveSlime", "DarkWisp",
|
|
"DarkGuardian", "HarrowerTentacles", "ServantOfSemidar",
|
|
"Reptalon"
|
|
]
|
|
},
|
|
{
|
|
"level": "VeryFast",
|
|
"active": 0.125,
|
|
"passive": 0.30,
|
|
"types": [
|
|
"Barracoon", "Mephitis", "Neira",
|
|
"Rikktor", "Semidar", "EnergyVortex",
|
|
"EliteNinja", "Pixie", "SilverSerpent",
|
|
"VorpalBunny", "FleshRenderer", "KhaldunRevenant",
|
|
"FactionDragoon", "FactionKnight", "FactionPaladin",
|
|
"FactionHenchman", "FactionMercenary", "FactionNecromancer",
|
|
"FactionSorceress", "FactionWizard", "FactionBerserker",
|
|
"FactionPaladin", "Leviathan", "FireBeetle",
|
|
"FanDancer", "FactionDeathKnight", "Revenant"
|
|
]
|
|
}
|
|
]
|