Advertisement
Guest User

Untitled

a guest
Sep 1st, 2014
331
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 57.20 KB | None | 0 0
  1. local version = 10
  2.  
  3. -- version history:
  4. -- 10  initial release, numbered to match LoTRO update 10
  5. -- Feel free to borrow or fork code, unless you're a jerk.
  6.  
  7. -- 02/09/2014: DJPorterNZ
  8. -- All credit to Polymnie for his framework in XpPredict
  9. -- WIP: logTarget to chat
  10. -- Updates: http://codepad.org/users/DJPorterNZ
  11. --   -- Accessed via modified debug code
  12. --       o Set debug = true to activate new code
  13. --         + logTarget info formatted for spreadsheet insert
  14. --           and table updates.
  15. --       o leave debug = false to keep old functionality
  16. --         + clean logTarget info
  17. --   -- Updated XP, Morale & Power tables to lvl 120
  18. --       o Estimated using Polymnie's code
  19. --       o NormalMorale: http://codepad.org/ixRJ5ZSX
  20. --       o NormalPower: http://codepad.org/cfO6YS6X
  21. --   -- FIXED: Mob level colours with correct banding
  22. --   -- mobKind via table lookup cludge
  23. --       o Table is going to be HUGE!
  24. --       o Start zones only ATM. May not be complete.
  25. --   -- mobTier fix via table lookup cludge
  26. --       o Possible fix via checking morale values against actual
  27. --         in-game values. Power values seem to be unchanged ATM.
  28. -- TODO:
  29. --  -- Grab location info via chat monitoring: You have entered... etc.
  30.  
  31. import "Turbine.Gameplay"
  32. import "Turbine.UI"
  33.  
  34. local debug = true
  35. local WindowLeft = 320
  36. local WindowTop = 0
  37. local WindowWidth = 260
  38. local WindowHeight = 32
  39.  
  40. local MyChar = Turbine.Gameplay.LocalPlayer:GetInstance()
  41. local MyTarget, TargetLevel, TargetMorale, TargetPower
  42. local tick, tock
  43.  
  44. -------------------------------------------------------------------------------
  45. local MonsterXp = {
  46. --  1    2    3    4    5    6    7    8    9   10
  47.     8,  10,  14,  18,  22,  26,  30,  34,  38,  42, --  1 to 10
  48.    46,  50,  54,  59,  63,  67,  71,  75,  79,  84, -- 11 to 20
  49.    88,  92,  96, 100, 104, 108, 113, 117, 121, 125, -- 21 to 30
  50.   129, 133, 138, 142, 146, 150, 154, 158, 163, 167, -- 31 to 40
  51.   171, 175, 179, 183, 188, 192, 196, 200, 204, 208, -- 41 to 50
  52.   213, 217, 221, 225, 229, 233, 238, 242, 246, 250, -- 51 to 60
  53.   262, 275, 289, 303, 319, 335, 351, 369, 387, 407, -- 61 to 70
  54.   427, 448, 471, 494, 519, 545, 573, 601, 631, 663, -- 71 to 80
  55.   696, 731, 767, 806, 846, 888, 933, 980, nil, nil, -- 81 to 90
  56.   nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, -- 91 to 100
  57.   nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, -- 101 to 110
  58.   nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, -- 111 to 120
  59.   -- FIXME need confirmation on predicted XP for levels 87, 88 - Max Lvl.
  60. }
  61.  
  62. local MonsterMorale = {
  63.      29.018538,  38.004517,  48.410225,  58.907806,  70.88192,  -- 1 to 5
  64.     104.470901, 121.949013, 138.521255, 156.719467, 176.625534, -- 6 to 10
  65.     196.87619,  218.845642, 241.180023, 253.239029, 265.90097,  -- 11 to 15
  66.     271.196014, 284.755829, 298.993622, 313.943298, 325,        -- 16 to 20
  67.     352,        381,        412,        445,        480,        -- 21 to 25
  68.     517,        556,        597,        640,        685,        -- 26 to 30
  69.     732,        782,        835,        891,        950,        -- 31 to 35
  70.    1012,       1077,       1145,       1216,       1290,        -- 36 to 40
  71.    1367,       1448,       1533,       1622,       1715,        -- 41 to 45
  72.    1812,       1913,       2018,       2127,       2240,        -- 46 to 50
  73.    2357,       2479,       2606,       2738,       2875,        -- 51 to 55
  74.    3017,       3164,       3316,       3473,       3635,        -- 56 to 60
  75.    3802,       3974,       4151,       4336,       4529,        -- 61 to 65
  76.    4730,       4940,       5159,       5387,       5625,        -- 66 to 70
  77.    5873,       6131,       6400,       6680,       6972,        -- 71 to 75
  78.    7276,       7593,       7923,       8267,       8625,        -- 76 to 80
  79.    9125,       9625,      10125,      10625,      11125,        -- 81 to 85
  80.   11625,      12125,      12625,      13125,      13625,        -- 86 to 90
  81.   14125,      14625,      15125,      15625,      16125,        -- 91 to 95
  82.   16625,      17125,      17625,      18125,      18625,        -- 96 to 100
  83.   19125,      19625,      20125,      20625,      21125,        -- 101 to 105
  84.   21625,      22125,      22625,      23125,      23625,        -- 106 to 110
  85.   24125,      24625,      25125,      25625,      26125,        -- 111 to 115
  86.   26625,      27125,      27625,      28125,      28625,        -- 116 to 120
  87. }
  88.  
  89. local MonsterPower = {
  90.     49.5625,     54.25,       59.0625,     64,          69.0625,    -- 1 to 5
  91.     74.25,       79.5625,     85,          90.5625,     96.25,      -- 6 to 10
  92.    102.0625,    108,         114.0625,    120.25,      126.5625,    -- 11 to 15
  93.    133,         139.5625,    146.25,      153.0625,    160,         -- 16 to 20
  94.    167.0625,    174.25,      181.5625,    189,         196.5625,    -- 21 to 25
  95.    204.25,      212.0625,    220,         228.0625,    236.25,      -- 26 to 30
  96.    244.5625,    253,         261.5625,    270.25,      279.0625,    -- 31 to 35
  97.    288,         297.0625,    306.25,      315.5625,    325,         -- 36 to 40
  98.    334.5625,    344.25,      354.0625,    364,         374.0625,    -- 41 to 45
  99.    384.25,      394.5625,    405,         415.5625,    426.25,      -- 46 to 50
  100.    436.75,      447.3125,    457.875,     468.4375,    479,         -- 51 to 55
  101.    489.5625,    500.125,     510.6875,    521.25,      531.8125,    -- 56 to 60
  102.    542.584778,  553.570923,  564.775146,  576.201599,  587.854614,  -- 61 to 65
  103.    599.738708,  611.858215,  624.217834,  636.822144,  649.675903,  -- 66 to 70
  104.    662.784058,  676.151367,  689.78302,   703.684021,  717.859619,  -- 71 to 75
  105.    732.315125,  747.05603,   762.087769,  777.416016,  793.046509,  -- 76 to 80
  106.    809.046509,  825.046509,  842.046509,  859.046509,  876.046509,  -- 81 to 85
  107.    894.046509,  912.046509,  930.046509,  948.046509,  966.046509,  -- 86 to 90
  108.    984.046509, 1002.046509, 1020.046509, 1038.046509,  1056.046509, -- 91 to 95
  109.   1074.046509, 1092.046509, 1110.046509, 1128.046509, 1146.046509,  -- 96 to 100
  110.   1164.046509, 1182.046509, 1200.046509, 1218.046509, 1236.046509,  -- 101 to 105
  111.   1254.046509, 1272.046509, 1290.046509, 1308.046509, 1326.046509,  -- 106 to 110
  112.   1344.046509, 1362.046509, 1380.046509, 1398.046509, 1416.046509,  -- 111 to 115
  113.   1434.046509, 1452.046509, 1470.046509, 1488.046509, 1506.046509,  -- 116 to 120
  114. }
  115.  
  116. local ResourceTier = {
  117.   ["Shattered Pitcher"] = 1,
  118.   ["Broken Urn"] = 2,
  119.   ["Antique Vase"] = 3,
  120.   ["Forgotten Text"] = 4,
  121.   ["Ancient Vase"] = 5,
  122.   ["Sage's Casket"] = 6,
  123.   ["Sage's Lockbox"] = 6,
  124.   ["Sage's Locker"] = 6,
  125.   ["Banded Coffer"] = 7,           ["Heavy Banded Coffer"] = 7,
  126.   ["Ornate Cache"] = 8,            ["Heavy Ornate Cache"] = 8,
  127.   ["Adorned Chest"] = 9,           ["Heavy Adorned Chest"] = 9,
  128.  
  129.   ["Rowan Branches"] = 1,          ["Heavy Rowan Branches"] = 1,
  130.   ["Ash Branches"] = 2,            ["Heavy Ash Branches"] = 2,
  131.   ["Yew Branches"] = 3,            ["Heavy Yew Branches"] = 3,
  132.   ["Lebethron Branches"] = 4,      ["Heavy Lebethron Branches"] = 4,
  133.   ["Black Ash Branches"] = 5,      ["Heavy Black Ash Branches"] = 5,
  134.   ["Ilex Branches"] = 6,           ["Pile of Ilex Wood"] = 6,
  135.   ["Heavy Ilex Branches"] = 6,     ["Heavy Pile of Ilex Wood"] = 6,
  136.   ["Heavy Mallorn Branches"] = 6,  ["Heavy Pile of Mallorn Wood"] = 6,
  137.   ["Birch Branches"] = 7,          ["Heavy Birch Branches"] = 7,
  138.   ["Oak Branches"] = 8,            ["Heavy Oak Branches"] = 8,
  139.   ["Walnut Branches"] = 9,         ["Heavy Walnut Branches"] = 9,
  140.  
  141.   ["Copper Deposit"] = 1,          ["Rich Copper Deposit"] = 1,
  142.   ["Barrow-iron Deposit"] = 2,     ["Rich Barrow-iron Deposit"] = 2,
  143.   ["Silver Deposit"] = 2,          ["Rich Silver Deposit"] = 2,
  144.   ["Rich Iron Deposit"] = 3,       ["Bountiful Iron Deposit"] = 3,
  145.   ["Gold Deposit"] = 3,            ["Rich Gold Deposit"] = 3,
  146.   ["Dwarf-iron Deposit"] = 4,      ["Rich Dwarf-iron Deposit"] = 4,
  147.   ["Platinum Deposit"] = 4,        ["Rich Platinum Deposit"] = 4,
  148.   ["Ancient Iron Deposit"] = 5,    ["Rich Ancient Iron Deposit"] = 5,
  149.   ["Ancient Silver Deposit"] = 5,  ["Rich Ancient Silver Deposit"] = 5,
  150.   ["Khazâd Skarn Deposit"] = 6,    ["Rich Khazâd Skarn Deposit"] = 6,
  151.   ["Skarn Deposit"] = 7,           ["Rich Skarn Deposit"] = 7,
  152.   ["Riddermark Deposit"] = 8,      ["Rich Riddermark Deposit"] = 8,
  153.   ["Eorlingas Skarn Deposit"] = 9, ["Rich Eorlingas Skarn Deposit"] = 9,
  154. }
  155.  
  156. local targetKind = {
  157.   ["Accursed Fell-spirit"] = "The Dead",
  158.   ["Adolescent Brown-bear"] = "Beast",
  159.   ["Adult Bear"] = "Beast",
  160.   ["Agitated Barkshredder"] = "Beast",
  161.   ["Aglarchen"] = "Elf",
  162.   ["Aldis Oatbearer"] = "Man",
  163.   ["Alert White Hand"] = "Orc-kind",
  164.   ["Amdir"] = "Man",
  165.   ["Ancient Barrow-wight"] = "The Dead",
  166.   ["Ancient Bile-spewer"] = "The Dead",
  167.   ["Ancient Bog-warden"] = "The Dead",
  168.   ["Andraste"] = "Man",
  169.   ["Angered Tarkrîp"] = "Orc-kind",
  170.   ["Angmarim Priest"] = "Man",
  171.   ["Angmarim Scout"] = "Man",
  172.   ["Angmarim Silkspinner"] = "Man",
  173.   ["Angmarim Soldier"] = "Man",
  174.   ["Angmarim Warrior"] = "Man",
  175.   ["Angry Bear"] = "Beast",
  176.   ["Angry Broadtooth"] = "Beast",
  177.   ["Angry Razortooth"] = "Beast",
  178.   ["Angry Splintertusk"] = "Beast",
  179.   ["Angry Tusker"] = "Beast",
  180.   ["Arthedain Guard"] = "The Dead",
  181.   ["Arthedain Soldier"] = "The Dead",
  182.   ["Asht"] = "Beast",
  183.   ["Atli Spider-Bane"] = "Man",
  184.   ["Azuzol"] = "Spiders & Insects",
  185.   ["Badger"] = "Beast",
  186.   ["Baleful Shadow-wing"] = "Beast",
  187.   ["Baleful Willow-root"] = "Creatures of Nature",
  188.   ["Balt-olog Crusher"] = "Troll-kind",
  189.   ["Balt-olog Heaver"] = "Troll-kind",
  190.   ["Barkshredder Cub"] = "Beast",
  191.   ["Barkshredder Mother"] = "Beast",
  192.   ["Barkshredder Sentinel"] = "Beast",
  193.   ["Barkshredder Yearling"] = "Beast",
  194.   ["Barrow-bat"] = "Beast",
  195.   ["Barrow-candle"] = "The Dead",
  196.   ["Barrow-spider"] = "Spiders & Insects",
  197.   ["Barrow-spirit"] = "The Dead",
  198.   ["Barrow-warden"] = "The Dead",
  199.   ["Barrow-wight Archer"] = "The Dead",
  200.   ["Barrow-wight Caller"] = "The Dead",
  201.   ["Barrow-wight Marksman"] = "The Dead",
  202.   ["Barrow-wight Warrior"] = "The Dead",
  203.   ["Barrow-wight"] = "The Dead",
  204.   ["Bear Cub"] = "Beast",
  205.   ["Bear Mother"] = "Beast",
  206.   ["Bear Yearling"] = "Beast",
  207.   ["Bellowing Tomb-wight"] = "The Dead",
  208.   ["Bersi"] = "Dwarf",
  209.   ["Big Black-bear"] = "Beast",
  210.   ["Big Tom"] = "Man",
  211.   ["Bile-spewer Marksman"] = "The Dead",
  212.   ["Bindbole Spinner"] = "Spiders & Insects",
  213.   ["Bindbole Weaver"] = "Spiders & Insects",
  214.   ["Binding Marsh-strider"] = "Creatures of Nature",
  215.   ["Biting Field-rat"] = "Beast",
  216.   ["Biting Gnats"] = "Spiders & Insects",
  217.   ["Biting Neeker-breeker"] = "Spiders & Insects",
  218.   ["Biting Shrew"] = "Beast",
  219.   ["Biting Snow-spinner"] = "Spiders & Insects",
  220.   ["Black Fly"] = "Spiders & Insects",
  221.   ["Black-footed Fox"] = "Beast",
  222.   ["Blackclaw"] = "Beast",
  223.   ["Blackwold Archer"] = "Man",
  224.   ["Blackwold Bowman"] = "Man",
  225.   ["Blackwold Cutthroat"] = "Man",
  226.   ["Blackwold Guard"] = "Man",
  227.   ["Blackwold Hoodlum"] = "Man",
  228.   ["Blackwold Knave"] = "Man",
  229.   ["Blackwold Lackey"] = "Man",
  230.   ["Blackwold Leader"] = "Man",
  231.   ["Blackwold Lieutenant"] = "Man",
  232.   ["Blackwold Lookout"] = "Man",
  233.   ["Blackwold Marksman"] = "Man",
  234.   ["Blackwold Outlaw"] = "Man",
  235.   ["Blackwold Poacher"] = "Man",
  236.   ["Blackwold Raider"] = "Man",
  237.   ["Blackwold Ruffian"] = "Man",
  238.   ["Blackwold Scout"] = "Man",
  239.   ["Blackwold Sergeant"] = "Man",
  240.   ["Blackwold Spy"] = "Man",
  241.   ["Blackwold Striker"] = "Man",
  242.   ["Blackwold Supervisor"] = "Man",
  243.   ["Blackwold Thief"] = "Man",
  244.   ["Blackwold Wolf-keeper"] = "Man",
  245.   ["Blackwold Wolf-Master"] = "Man",
  246.   ["Blackwold"] = "Man",
  247.   ["Blighted Wood-troll"] = "Troll-kind",
  248.   ["Bloated Barrow-crawler"] = "Spiders & Insects",
  249.   ["Bloated Muck-crawler"] = "Spiders & Insects",
  250.   ["Blogkritar"] = "The Dead",
  251.   ["Blogmal Ravager"] = "Orc-kind",
  252.   ["Blogmal Warrior"] = "Orc-kind",
  253.   ["Blood-eye"] = "Beast",
  254.   ["Blue-crag Chief"] = "Orc-kind",
  255.   ["Blue-crag Chieftain"] = "Orc-kind",
  256.   ["Blue-crag Crusher"] = "Orc-kind",
  257.   ["Blue-crag Defender"] = "Orc-kind",
  258.   ["Blue-crag Defiler"] = "Orc-kind",
  259.   ["Blue-crag Demolisher"] = "Orc-kind",
  260.   ["Blue-crag Despoiler"] = "Orc-kind",
  261.   ["Blue-crag Goblin"] = "Orc-kind",
  262.   ["Blue-crag Gouger"] = "Orc-kind",
  263.   ["Blue-crag Hurler"] = "Orc-kind",
  264.   ["Blue-crag Novice"] = "Orc-kind",
  265.   ["Blue-crag Outrider"] = "Orc-kind",
  266.   ["Blue-crag Piercer"] = "Orc-kind",
  267.   ["Blue-crag Sapper"] = "Orc-kind",
  268.   ["Blue-crag Scrapper"] = "Orc-kind",
  269.   ["Blue-crag Sentinel"] = "Orc-kind",
  270.   ["Blue-crag Shielder"] = "Orc-kind",
  271.   ["Blue-crag Skirmisher"] = "Orc-kind",
  272.   ["Blue-crag Slicer"] = "Orc-kind",
  273.   ["Blue-crag Spoiler"] = "Orc-kind",
  274.   ["Blue-crag Stabber"] = "Orc-kind",
  275.   ["Blue-crag Stinger"] = "Orc-kind",
  276.   ["Blue-crag Trapper"] = "Orc-kind",
  277.   ["Blue-crag Warg-keeper"] = "Orc-kind",
  278.   ["Blue-crag Warlord"] = "Orc-kind",
  279.   ["Blághorsha"] = "Orc-kind",
  280.   ["Bog Snake"] = "Beast",
  281.   ["Bog-fly Hatcher"] = "Spiders & Insects",
  282.   ["Bog-fly Hatchling"] = "Spiders & Insects",
  283.   ["Bog-lord"] = "The Dead",
  284.   ["Bog-neeker Burrower"] = "Spiders & Insects",
  285.   ["Bog-prowler Ambusher"] = "Creatures of Nature",
  286.   ["Bog-toad"] = "Beast",
  287.   ["Bog-warden Archer"] = "The Dead",
  288.   ["Bold Dusk-wolf"] = "Beast",
  289.   ["Bold Wolf"] = "Beast",
  290.   ["Bone Man"] = "The Dead",
  291.   ["Bounder Primstone"] = "Hobbit",
  292.   ["Bounder"] = "Hobbit",
  293.   ["Brandy-hills Cub"] = "Beast",
  294.   ["Brandy-hills Matron"] = "Beast",
  295.   ["Brandy-hills Swine"] = "Beast",
  296.   ["Brandy-wood Cub"] = "Beast",
  297.   ["Brandy-wood Matron"] = "Beast",
  298.   ["Brandy-woods Swine"] = "Beast",
  299.   ["Brigand Boss"] = "Man",
  300.   ["Brigand Knave"] = "Man",
  301.   ["Brigand Poacher"] = "Man",
  302.   ["Brigand Robber"] = "Man",
  303.   ["Brigand Waylayer"] = "Man",
  304.   ["Brigand-informer"] = "Man",
  305.   ["Brigand-lieutenant"] = "Man",
  306.   ["Brishzel"] = "Beast",
  307.   ["Bristlehide Piglet"] = "Beast",
  308.   ["Broken Oak-root"] = "Creatures of Nature",
  309.   ["Broken-tusk Bristlehide"] = "Beast",
  310.   ["Broken-tusk Scrubrunner"] = "Beast",
  311.   ["Brood Ambusher"] = "Spiders & Insects",
  312.   ["Brood Hatchling"] = "Spiders & Insects",
  313.   ["Brood Hunter"] = "Spiders & Insects",
  314.   ["Brood Lurker"] = "Spiders & Insects",
  315.   ["Brood Trapper"] = "Spiders & Insects",
  316.   ["Brood Weaver"] = "Spiders & Insects",
  317.   ["Brood Webber"] = "Spiders & Insects",
  318.   ["Brown Fox"] = "Beast",
  319.   ["Brown-bear"] = "Beast",
  320.   ["Brudhraw"] = "The Dead",
  321.   ["Brunmor"] = "Man",
  322.   ["Brush Hunter"] = "Beast",
  323.   ["Burrowing Shrew"] = "Beast",
  324.   ["Buzzing Gnats"] = "Spiders & Insects",
  325.   ["Buzzing Moor-fly"] = "Spiders & Insects",
  326.   ["Calder Cob"] = "Man",
  327.   ["Camouflaged Bog-prowler"] = "Creatures of Nature",
  328.   ["Captain Dogwood"] = "Man",
  329.   ["Cargûl"] = "Unseen",
  330.   ["Cave Hendroval"] = "Beast",
  331.   ["Cave Snow-beast"] = "Beast",
  332.   ["Cave Warg"] = "Beast",
  333.   ["Chetwood Ambusher"] = "Spiders & Insects",
  334.   ["Chetwood Hunter"] = "Spiders & Insects",
  335.   ["Chetwood Spider"] = "Spiders & Insects",
  336.   ["Chetwood Spinner"] = "Spiders & Insects",
  337.   ["Chetwood Stalker"] = "Spiders & Insects",
  338.   ["Chittering Darkclaw"] = "Beast",
  339.   ["Chittering Gloom-wing"] = "Beast",
  340.   ["Chittering Rock-claw"] = "Beast",
  341.   ["Clawing Barghest"] = "Beast",
  342.   ["Clawing Rock-worm"] = "Dragon-kind",
  343.   ["Cliff Hendroval"] = "Beast",
  344.   ["Cold-worm"] = "Dragon-kind",
  345.   ["Coldfells Champion"] = "Dwarf",
  346.   ["Coldfells Guardian"] = "Man",
  347.   ["Coldfells Hunter"] = "Elf",
  348.   ["Coldfells Scout"] = "Elf",
  349.   ["Cole Sickleleaf"] = "Man",
  350.   ["Coney"] = "Beast",
  351.   ["Constable Bolger"] = "Hobbit",
  352.   ["Copper-back Bullfrog"] = "Beast",
  353.   ["Corrupted Blood-maple"] = "Creatures of Nature",
  354.   ["Covell Woodwright"] = "Man",
  355.   ["Craban Scout"] = "Beast",
  356.   ["Craban Spy"] = "Beast",
  357.   ["Craban"] = "Beast",
  358.   ["Crawling Arm"] = "The Dead",
  359.   ["Crazed Broadtooth"] = "Beast",
  360.   ["Crazed Stonehold"] = "Orc-kind",
  361.   ["Creeping Arm"] = "The Dead",
  362.   ["Creeping Barrow-crawler"] = "Spiders & Insects",
  363.   ["Creeping Hand"] = "The Dead",
  364.   ["Creeping Muck-crawler"] = "Spiders & Insects",
  365.   ["Creeping Oak-root"] = "Creatures of Nature",
  366.   ["Creeping Red-root"] = "Creatures of Nature",
  367.   ["Cruel-beak Scout"] = "Beast",
  368.   ["Cruel-beak Sentry"] = "Beast",
  369.   ["Cruel-beak Spy"] = "Beast",
  370.   ["Cruel-beak Watcher"] = "Beast",
  371.   ["Cruel-grip Barghest"] = "Beast",
  372.   ["Créoth Apprentice"] = "Man",
  373.   ["Créoth Chieftain"] = "Man",
  374.   ["Créoth Devout"] = "Man",
  375.   ["Créoth Disciple"] = "Man",
  376.   ["Créoth Elder"] = "Man",
  377.   ["Créoth Faithful"] = "Man",
  378.   ["Créoth Leader"] = "Man",
  379.   ["Créoth Novice"] = "Man",
  380.   ["Créoth Warden"] = "Man",
  381.   ["Curious Bear"] = "Beast",
  382.   ["Curr-olog Heaver"] = "Troll-kind",
  383.   ["Cursed Tomb-wight"] = "The Dead",
  384.   ["Dark-wing Scout"] = "Beast",
  385.   ["Dark-wing Spy"] = "Beast",
  386.   ["Darkheart"] = "Creatures of Nature",
  387.   ["Darting North-hawk"] = "Beast",
  388.   ["Dead-aim Ongbúrz"] = "Orc-kind",
  389.   ["Deadly Bile-spewer"] = "The Dead",
  390.   ["Deadly Field-bear"] = "Beast",
  391.   ["Deadly Shadow-wing"] = "Beast",
  392.   ["Deadly Wight"] = "The Dead",
  393.   ["Decaying Barrow-wight"] = "The Dead",
  394.   ["Defender of Ost Guruth"] = "Man",
  395.   ["Defiant Hoar-mantle"] = "Beast",
  396.   ["Despaired Banner-wight"] = "The Dead",
  397.   ["Devouring Barrow-crawler"] = "Spiders & Insects",
  398.   ["Dire Grass-stalker"] = "Beast",
  399.   ["Dire Warg"] = "Beast",
  400.   ["Diseased Bristlehide"] = "Beast",
  401.   ["Diseased Chill-wind"] = "Beast",
  402.   ["Docile Hoar-mantle"] = "Beast",
  403.   ["Dourhand Armsman"] = "Dwarf",
  404.   ["Dourhand Blaster"] = "Dwarf",
  405.   ["Dourhand Burglar"] = "Dwarf",
  406.   ["Dourhand Chief"] = "Dwarf",
  407.   ["Dourhand Commander"] = "Dwarf",
  408.   ["Dourhand Excavator"] = "Dwarf",
  409.   ["Dourhand Falconer"] = "Dwarf",
  410.   ["Dourhand Foreman"] = "Dwarf",
  411.   ["Dourhand Gem-seeker"] = "Dwarf",
  412.   ["Dourhand Hunter"] = "Dwarf",
  413.   ["Dourhand Mine-overseer"] = "Dwarf",
  414.   ["Dourhand Miner"] = "Dwarf",
  415.   ["Dourhand Night-watch"] = "Dwarf",
  416.   ["Dourhand Overseer"] = "Dwarf",
  417.   ["Dourhand Ruffian"] = "Dwarf",
  418.   ["Dourhand Scout"] = "Dwarf",
  419.   ["Dourhand Tracker"] = "Dwarf",
  420.   ["Dourhand Trapper"] = "Dwarf",
  421.   ["Dourhand Warrior"] = "Dwarf",
  422.   ["Downs Hunter"] = "Beast",
  423.   ["Downs Lynx"] = "Beast",
  424.   ["Downs Wildcat"] = "Beast",
  425.   ["Downs-bear Cub"] = "Beast",
  426.   ["Drake Matron"] = "Dragon-kind",
  427.   ["Drake"] = "Dragon-kind",
  428.   ["Dread Barghest"] = "Beast",
  429.   ["Dreadful Barrow-maple"] = "Creatures of Nature",
  430.   ["Dreadful Field-bear"] = "Beast",
  431.   ["Dreadful Gloom-water"] = "The Dead",
  432.   ["Dreadful Tarkrîp"] = "Orc-kind",
  433.   ["Drukordh"] = "Orc-kind",
  434.   ["Dun Neeker-breeker"] = "Spiders & Insects",
  435.   ["Dunlending Brawler"] = "Man",
  436.   ["Dunlending Guard"] = "Man",
  437.   ["Dunlending Labourer"] = "Man",
  438.   ["Dunlending Scout"] = "Man",
  439.   ["Dunlending Scrapper"] = "Man",
  440.   ["Dunlending Soldier"] = "Man",
  441.   ["Dunlending Tracker"] = "Man",
  442.   ["Durglup"] = "Orc-kind",
  443.   ["Dusk-wolf Leader"] = "Beast",
  444.   ["Dusk-wolf Runt"] = "Beast",
  445.   ["Dusk-wolf Scavenger"] = "Beast",
  446.   ["Dusk-wolf Tracker"] = "Beast",
  447.   ["Dúnlang"] = "Man",
  448.   ["Earth-kin"] = "Giant-kind",
  449.   ["Edric"] = "Man",
  450.   ["Eglain Tale-weaver"] = "Man",
  451.   ["Elder Forest-hunter"] = "Beast",
  452.   ["Elder Moor-stalker"] = "Beast",
  453.   ["Emerald Twospade"] = "Hobbit",
  454.   ["Enraged Razortooth"] = "Beast",
  455.   ["Enraged Splintertusk"] = "Beast",
  456.   ["Esyld"] = "The Dead",
  457.   ["Faegfaer"] = "The Dead",
  458.   ["Faerdamil"] = "The Dead",
  459.   ["Falconer Brúni"] = "Dwarf",
  460.   ["Fanged-stalker"] = "Beast",
  461.   ["Favargair Troll-keeper"] = "Man",
  462.   ["Fearsome Marsh-strider"] = "Creatures of Nature",
  463.   ["Fell Bog-prowler"] = "Creatures of Nature",
  464.   ["Fell Holly-tender"] = "Creatures of Nature",
  465.   ["Fell Oak-root"] = "Creatures of Nature",
  466.   ["Fell Wight"] = "The Dead",
  467.   ["Fell-grip Barghest"] = "Beast",
  468.   ["Fen-creeper Binder"] = "Creatures of Nature",
  469.   ["Feral Brown-bear"] = "Beast",
  470.   ["Feral Dusk-wolf"] = "Beast",
  471.   ["Feral Tusker"] = "Beast",
  472.   ["Fergandir"] = "The Dead",
  473.   ["Field Hare"] = "Beast",
  474.   ["Field-bear"] = "Beast",
  475.   ["Fierce Black-bear"] = "Beast",
  476.   ["First Marshal Fádi"] = "Dwarf",
  477.   ["First Marshal Léodwald"] = "Man",
  478.   ["First Marshal Túllinn"] = "Elf",
  479.   ["Flittering Gloom-wing"] = "Beast",
  480.   ["Flitting Bat"] = "Beast",
  481.   ["Fly-ridden Splintertusk"] = "Beast",
  482.   ["Foraging Bear"] = "Beast",
  483.   ["Foraging Brown-bear"] = "Beast",
  484.   ["Foraging Downs-bear"] = "Beast",
  485.   ["Foraging Shrew"] = "Beast",
  486.   ["Foraging Tusker"] = "Beast",
  487.   ["Foraging Wood-bear"] = "Beast",
  488.   ["Forest Biter"] = "Spiders & Insects",
  489.   ["Forest Shadow-queen"] = "Spiders & Insects",
  490.   ["Forest Tree-spinner"] = "Spiders & Insects",
  491.   ["Forest Tree-stalker"] = "Spiders & Insects",
  492.   ["Forest Web-crawler"] = "Spiders & Insects",
  493.   ["Forest Web-weaver"] = "Spiders & Insects",
  494.   ["Formidable Snowbear"] = "Beast",
  495.   ["Foul Barghest"] = "Beast",
  496.   ["Foul Blue-crag"] = "Orc-kind",
  497.   ["Foul Field-slug"] = "Beast",
  498.   ["Foul Milkeye"] = "Beast",
  499.   ["Foul Thicktusk"] = "Beast",
  500.   ["Foul Wriggler"] = "Spiders & Insects",
  501.   ["Foul-arrow White Hand"] = "Orc-kind",
  502.   ["Frenzied Longtooth"] = "Beast",
  503.   ["Frost Grim"] = "Ancient Evil",
  504.   ["Galrîp"] = "Troll-kind",
  505.   ["Gaunt Blight-caller"] = "Ancient Evil",
  506.   ["Gaunt Plague-bearer"] = "The Dead",
  507.   ["Gaunt Protector"] = "Ancient Evil",
  508.   ["Gaunt War-singer"] = "Ancient Evil",
  509.   ["Gazrîp"] = "Orc-kind",
  510.   ["Gib Hawthorn"] = "Man",
  511.   ["Gloomleaf"] = "Creatures of Nature",
  512.   ["Gore-crow Lookout"] = "Beast",
  513.   ["Gore-crow Sentinel"] = "Beast",
  514.   ["Gore-crow Spotter"] = "Beast",
  515.   ["Gore-crow Watcher"] = "Beast",
  516.   ["Gramsfoot Advancer"] = "Orc-kind",
  517.   ["Gramsfoot Battler"] = "Orc-kind",
  518.   ["Gramsfoot Defiler"] = "Orc-kind",
  519.   ["Gramsfoot Guard"] = "Orc-kind",
  520.   ["Gramsfoot Hurler"] = "Orc-kind",
  521.   ["Gramsfoot Piercer"] = "Orc-kind",
  522.   ["Grasping Holly-tender"] = "Creatures of Nature",
  523.   ["Grass-stalker Tracker"] = "Beast",
  524.   ["Grazing Hoar-mantle"] = "Beast",
  525.   ["Great Barrow-crawler"] = "Spiders & Insects",
  526.   ["Great Brown Bat"] = "Beast",
  527.   ["Great Hill-bear"] = "Beast",
  528.   ["Great Leaf-crawler"] = "Spiders & Insects",
  529.   ["Great Stonehoof"] = "Beast",
  530.   ["Greater Sickle-fly"] = "Spiders & Insects",
  531.   ["Green Neeker-breeker"] = "Spiders & Insects",
  532.   ["Greenfields Biter"] = "Spiders & Insects",
  533.   ["Greenfields Queen"] = "Spiders & Insects",
  534.   ["Greenfields Tree-weaver"] = "Spiders & Insects",
  535.   ["Grey Hill Buck"] = "Beast",
  536.   ["Grey Hill Doe"] = "Beast",
  537.   ["Grey Squirrel"] = "Beast",
  538.   ["Grim Barren-oak"] = "Creatures of Nature",
  539.   ["Grim Créoth"] = "Man",
  540.   ["Grim Ongbúrz"] = "Orc-kind",
  541.   ["Grim Tomb-wight"] = "The Dead",
  542.   ["Grim Wight"] = "The Dead",
  543.   ["Grimclaw Chill-wind"] = "Beast",
  544.   ["Grish"] = "Orc-kind",
  545.   ["Grishskum"] = "Beast",
  546.   ["Growling Dusk-wolf"] = "Beast",
  547.   ["Guard"] = "Man",
  548.   ["Gurzrum"] = "Orc-kind",
  549.   ["Gurzstâz"] = "Orc-kind",
  550.   ["Gwigon"] = "Spiders & Insects",
  551.   ["Half-orc Bandit"] = "Orc-kind",
  552.   ["Half-orc Boss"] = "Orc-kind",
  553.   ["Half-orc Bruiser"] = "Orc-kind",
  554.   ["Half-orc Brute"] = "Orc-kind",
  555.   ["Half-orc Captain"] = "Orc-kind",
  556.   ["Half-orc Fighter"] = "Orc-kind",
  557.   ["Half-orc Guard"] = "Orc-kind",
  558.   ["Half-orc Hunter"] = "Orc-kind",
  559.   ["Half-orc Leader"] = "Orc-kind",
  560.   ["Half-orc Outlaw"] = "Orc-kind",
  561.   ["Half-orc Rider"] = "Orc-kind",
  562.   ["Half-orc Robber"] = "Orc-kind",
  563.   ["Half-orc Ruffian"] = "Orc-kind",
  564.   ["Half-orc Scoundrel"] = "Orc-kind",
  565.   ["Half-orc Scout"] = "Orc-kind",
  566.   ["Half-orc Scrapper"] = "Orc-kind",
  567.   ["Half-orc Sentry"] = "Orc-kind",
  568.   ["Half-orc Skirmisher"] = "Orc-kind",
  569.   ["Half-orc Thug"] = "Orc-kind",
  570.   ["Half-orc Trapper"] = "Orc-kind",
  571.   ["Half-orc Warg-keeper"] = "Orc-kind",
  572.   ["Half-orc Watchman"] = "Orc-kind",
  573.   ["Half-orc Wolf-keeper"] = "Orc-kind",
  574.   ["Half-orc-boss"] = "Orc-kind",
  575.   ["Halros"] = "Man",
  576.   ["Harmon Rushes"] = "Man",
  577.   ["Harvest-fly"] = "Spiders & Insects",
  578.   ["Hateful Ongbúrz"] = "Orc-kind",
  579.   ["Haunted Barren-Oak"] = "Creatures of Nature",
  580.   ["Hendroval Canopy-darter"] = "Beast",
  581.   ["High-moor Badger"] = "Beast",
  582.   ["Highland Hunter"] = "Beast",
  583.   ["Highland Wildcat"] = "Beast",
  584.   ["Hill Tusker"] = "Beast",
  585.   ["Hill-bear Cub"] = "Beast",
  586.   ["Hillmen Defender"] = "Man",
  587.   ["Hoar-mantle Bull"] = "Beast",
  588.   ["Hoar-mantle Calf"] = "Beast",
  589.   ["Hoarhallow Farmer"] = "Hobbit",
  590.   ["Hoarhallow Gardener"] = "Hobbit",
  591.   ["Hollin Lynx"] = "Beast",
  592.   ["Holly-lizard"] = "Beast",
  593.   ["Holly-troll Elder"] = "Troll-kind",
  594.   ["Holly-troll Lobber"] = "Troll-kind",
  595.   ["Holly-troll Warrior"] = "Troll-kind",
  596.   ["Hontimûrz Guard"] = "Orc-kind",
  597.   ["Hontimûrz"] = "Orc-kind",
  598.   ["Horrid Tomb-wight"] = "The Dead",
  599.   ["Hostile Hill-bear"] = "Beast",
  600.   ["Hound"] = "Beast",
  601.   ["Howling Barrow-hound"] = "The Dead",
  602.   ["Howling Dusk-wolf"] = "Beast",
  603.   ["Howling Grey Wolf"] = "Beast",
  604.   ["Howling Yellowfang"] = "Beast",
  605.   ["Hungry Bear"] = "Beast",
  606.   ["Hungry Downs-bear"] = "Beast",
  607.   ["Hunting North-hawk"] = "Beast",
  608.   ["Imbert Took"] = "Hobbit",
  609.   ["Iornaith"] = "Spiders & Insects",
  610.   ["Isembard Took II"] = "Hobbit",
  611.   ["Ivar the Blood-hand"] = "The Dead",
  612.   ["Jagger Jack"] = "Man",
  613.   ["Jarrko"] = "Giant-kind",
  614.   ["Jasper Mudbottom"] = "Man",
  615.   ["Jon Brackenbrook"] = "Man",
  616.   ["Juvenile Bear"] = "Beast",
  617.   ["Juvenile Cave-claw"] = "Beast",
  618.   ["Juvenile Hoar-mantle"] = "Beast",
  619.   ["Kasak"] = "Orc-kind",
  620.   ["Kergrim Barrow-prowler"] = "Beast",
  621.   ["Kingsfell Creeper"] = "Spiders & Insects",
  622.   ["Kingsfell Spider"] = "Spiders & Insects",
  623.   ["Kingsfell Spider-queen"] = "Spiders & Insects",
  624.   ["Kingsfell Spinner"] = "Spiders & Insects",
  625.   ["Lakes Bear"] = "Beast",
  626.   ["Lakes Packleader"] = "Beast",
  627.   ["Lakes Peeper"] = "Beast",
  628.   ["Lakes Swine"] = "Beast",
  629.   ["Lakes Toad"] = "Beast",
  630.   ["Lakes Tusker"] = "Beast",
  631.   ["Lakes Wolf"] = "Beast",
  632.   ["Lakes Yearling"] = "Beast",
  633.   ["Lalia"] = "Hobbit",
  634.   ["Large Barrow-crawler"] = "Spiders & Insects",
  635.   ["Large Forest-hunter"] = "Beast",
  636.   ["Large Hill-bear"] = "Beast",
  637.   ["Latub"] = "Orc-kind",
  638.   ["Laugfût"] = "Beast",
  639.   ["Lebrennil"] = "Spiders & Insects",
  640.   ["Leofwenna"] = "Man",
  641.   ["Lethal Tarkrîp"] = "Orc-kind",
  642.   ["Lone Grey Wolf"] = "Beast",
  643.   ["Lone-lands Fox"] = "Beast",
  644.   ["Long-grass Swine"] = "Beast",
  645.   ["Long-grass Tusker"] = "Beast",
  646.   ["Long-tooth Shrew"] = "Beast",
  647.   ["Long-tusk Scrubrunner"] = "Beast",
  648.   ["Lubach"] = "Orc-kind",
  649.   ["Lugbas"] = "Orc-kind",
  650.   ["Luminous Fire-fly"] = "Spiders & Insects",
  651.   ["Lûz"] = "Orc-kind",
  652.   ["Mad Bristlehide"] = "Beast",
  653.   ["Maddened Dusk-wolf"] = "Beast",
  654.   ["Maddened Field-bear"] = "Beast",
  655.   ["Maddened Mountain-drake"] = "Dragon-kind",
  656.   ["Maddened Razortooth"] = "Beast",
  657.   ["Maddened Shattertusk"] = "Beast",
  658.   ["Malicious Gloom-water"] = "The Dead",
  659.   ["Malin"] = "The Dead",
  660.   ["Marigold Winterdown"] = "Hobbit",
  661.   ["Marrow"] = "Beast",
  662.   ["Marrow"] = "The Dead",
  663.   ["Marsh Brood-watcher"] = "Spiders & Insects",
  664.   ["Marsh Neeker-breeker"] = "Spiders & Insects",
  665.   ["Marsh Queen"] = "Spiders & Insects",
  666.   ["Marsh Snake"] = "Beast",
  667.   ["Marsh Spider"] = "Spiders & Insects",
  668.   ["Marsh-fly"] = "Spiders & Insects",
  669.   ["Marsh-strider Creeper"] = "Creatures of Nature",
  670.   ["Marsh-strider Trapper"] = "Creatures of Nature",
  671.   ["Masked Badger"] = "Beast",
  672.   ["Master of Nan Dhelu"] = "Ancient Evil",
  673.   ["Mature Black-bear"] = "Beast",
  674.   ["Mature Hill-bear"] = "Beast",
  675.   ["Mature Thickjaw"] = "Beast",
  676.   ["Menacing Thickjaw"] = "Beast",
  677.   ["Midge Swarm"] = "Spiders & Insects",
  678.   ["Midgewater Defender"] = "Orc-kind",
  679.   ["Midgewater Frog"] = "Beast",
  680.   ["Midgewater Sapper"] = "Orc-kind",
  681.   ["Midgewater Scout"] = "Orc-kind",
  682.   ["Midgewater Snake"] = "Beast",
  683.   ["Midgewater Warrior"] = "Orc-kind",
  684.   ["Milkeye Burrower"] = "Beast",
  685.   ["Monstrous Dusk-wolf"] = "Beast",
  686.   ["Moor Hunter"] = "Beast",
  687.   ["Moor-web Hunter"] = "Spiders & Insects",
  688.   ["Moor-web Spinner"] = "Spiders & Insects",
  689.   ["Moor-web Weaver"] = "Spiders & Insects",
  690.   ["Moringol"] = "Ancient Evil",
  691.   ["Morley the Fierce"] = "Man",
  692.   ["Mottled Hare"] = "Beast",
  693.   ["Mound-wight Archer"] = "The Dead",
  694.   ["Mound-wight"] = "The Dead",
  695.   ["Muck-glutton"] = "Beast",
  696.   ["Naglangon"] = "Dragon-kind",
  697.   ["Naruhel"] = "Man",
  698.   ["Nasty Tarkrîp"] = "Orc-kind",
  699.   ["Natkam"] = "Orc-kind",
  700.   ["Neeker-breeker Burrower"] = "Spiders & Insects",
  701.   ["Newborn Spider Hatchling"] = "Spiders & Insects",
  702.   ["Nishrûk"] = "Orc-kind",
  703.   ["Northern Plains Buck"] = "Beast",
  704.   ["Northern Plains Doe"] = "Beast",
  705.   ["Northern Squirrel"] = "Beast",
  706.   ["Nos Grimsong"] = "Dwarf",
  707.   ["Noxious Barrow-warden"] = "The Dead",
  708.   ["Noxious Barrow-wight"] = "The Dead",
  709.   ["Noxious Bog-warden"] = "The Dead",
  710.   ["Oath-breaker Archer"] = "The Dead",
  711.   ["Oath-breaker Captain"] = "The Dead",
  712.   ["Oath-breaker Chieftain"] = "The Dead",
  713.   ["Oath-breaker Coward"] = "The Dead",
  714.   ["Oath-breaker Marksman"] = "The Dead",
  715.   ["Olnathron"] = "The Dead",
  716.   ["Ongbúrz Battle-master"] = "Orc-kind",
  717.   ["Ongbúrz Berserker"] = "Orc-kind",
  718.   ["Ongbúrz Bone-smasher"] = "Troll-kind",
  719.   ["Ongbúrz Bone-speaker"] = "Orc-kind",
  720.   ["Ongbúrz Chieftain"] = "Orc-kind",
  721.   ["Ongbúrz Combatant"] = "Orc-kind",
  722.   ["Ongbúrz Defiler"] = "Orc-kind",
  723.   ["Ongbúrz Grunt"] = "Orc-kind",
  724.   ["Ongbúrz Iron-fist"] = "Troll-kind",
  725.   ["Ongbúrz Ravager"] = "Orc-kind",
  726.   ["Ongbúrz Rock-heaver"] = "Troll-kind",
  727.   ["Ongbúrz Scout"] = "Orc-kind",
  728.   ["Ongbúrz Sharp-eye"] = "Orc-kind",
  729.   ["Ongbúrz Skirmisher"] = "Orc-kind",
  730.   ["Ongbúrz Slicer"] = "Orc-kind",
  731.   ["Ongbúrz Spear-tosser"] = "Orc-kind",
  732.   ["Ongbúrz Tracker"] = "Orc-kind",
  733.   ["Ongbúrz Warg-keeper"] = "Orc-kind",
  734.   ["Ongbúrz Warrior"] = "Orc-kind",
  735.   ["Otto the brigand"] = "Man",
  736.   ["Outcast Forest-hunter"] = "Beast",
  737.   ["Pampraush"] = "Orc-kind",
  738.   ["Parzot"] = "Orc-kind",
  739.   ["Peaks Hendroval"] = "Beast",
  740.   ["Pecking Craban"] = "Beast",
  741.   ["Pecking Dark-wing"] = "Beast",
  742.   ["Pengail"] = "Man",
  743.   ["Pile of Bones"] = "The Dead",
  744.   ["Pond Frog"] = "Beast",
  745.   ["Prisoner"] = "Man",
  746.   ["Putrid Bog-slug"] = "Beast",
  747.   ["Putrid Darkwater"] = "The Dead",
  748.   ["Quicksilver Cave-crawler"] = "Spiders & Insects",
  749.   ["Rabid Bristlehide"] = "Beast",
  750.   ["Rabid Scrub-stalker"] = "Beast",
  751.   ["Rabid Splintertusk"] = "Beast",
  752.   ["Raging Tarkrîp"] = "Orc-kind",
  753.   ["Rampaging Bristlehide"] = "Beast",
  754.   ["Rat"] = "Beast",
  755.   ["Raugzdrok"] = "The Dead",
  756.   ["Rauta-lehmä Archer"] = "Giant-kind",
  757.   ["Rauta-lehmä Fighter"] = "Beast",
  758.   ["Rauta-lehmä Hunter"] = "Giant-kind",
  759.   ["Rauta-lehmä Tracker"] = "Giant-kind",
  760.   ["Rauta-lehmä Warden"] = "Giant-kind",
  761.   ["Rauta-lehmä Warrior"] = "Giant-kind",
  762.   ["Re-animated Skeleton"] = "The Dead",
  763.   ["Red Fox"] = "Beast",
  764.   ["Red Reaver"] = "Orc-kind",
  765.   ["Red Squirrel"] = "Beast",
  766.   ["Redhorn Goat"] = "Beast",
  767.   ["Reeking Bog-slug"] = "Beast",
  768.   ["Refuge Guardian"] = "Elf",
  769.   ["Restless Broadtooth"] = "Beast",
  770.   ["Restless Longtooth"] = "Beast",
  771.   ["Restless Thicktusk"] = "Beast",
  772.   ["Revolting Silt-toad"] = "Beast",
  773.   ["Revolting Tarkrîp"] = "Orc-kind",
  774.   ["Reykur"] = "Ancient Evil",
  775.   ["Ribbon Snake"] = "Beast",
  776.   ["Roaming Thicktusk"] = "Beast",
  777.   ["Roaming Warg"] = "Beast",
  778.   ["Robb Thornley"] = "Man",
  779.   ["Rock-troll Brawler"] = "Troll-kind",
  780.   ["Rock-troll Flesheater"] = "Troll-kind",
  781.   ["Rock-troll Hurler"] = "Troll-kind",
  782.   ["Rock-troll Lobber"] = "Troll-kind",
  783.   ["Rock-troll Wildarm"] = "Troll-kind",
  784.   ["Rock-worm"] = "Dragon-kind",
  785.   ["Rotting Barrow-wight"] = "The Dead",
  786.   ["Roving Hoar-mantle"] = "Beast",
  787.   ["Roving Warg"] = "Beast",
  788.   ["Ruin-web Ambusher"] = "Spiders & Insects",
  789.   ["Ruin-Web Hunter"] = "Spiders & Insects",
  790.   ["Ruin-web Mother"] = "Spiders & Insects",
  791.   ["Ruin-web Weaver"] = "Spiders & Insects",
  792.   ["Sara Oakheart"] = "Man",
  793.   ["Scarred Splintertusk"] = "Beast",
  794.   ["Scavenging Cave-claw"] = "Beast",
  795.   ["Scrub Badger"] = "Beast",
  796.   ["Scrub-crawler"] = "Spiders & Insects",
  797.   ["Scrub-land Tusker"] = "Beast",
  798.   ["Scrub-stalker"] = "Beast",
  799.   ["Scurrying Harbour-rat"] = "Beast",
  800.   ["Sentinel"] = "Elf",
  801.   ["Sergeant Applewood"] = "Man",
  802.   ["Sergeant-at-Arms Ascwyn"] = "Man",
  803.   ["Sergeant-at-Arms Hafthor"] = "Dwarf",
  804.   ["Sergeant-at-Arms Hesten"] = "Man",
  805.   ["Sergeant-at-Arms Thurimbent"] = "Elf",
  806.   ["Shadow-warg"] = "Beast",
  807.   ["Shadowfoot"] = "Beast",
  808.   ["Shambling Tomb-wight"] = "The Dead",
  809.   ["Shambling Wight"] = "The Dead",
  810.   ["Sharkey's Lieutenant"] = "Man",
  811.   ["Sharp-eye Lookout"] = "Beast",
  812.   ["Sharp-eye Scout"] = "Beast",
  813.   ["Sheep"] = "Beast",
  814.   ["Shipsmate"] = "The Dead",
  815.   ["Shire White-tail Buck"] = "Beast",
  816.   ["Shire White-tail Doe"] = "Beast",
  817.   ["Shornbeard Chief"] = "Dwarf",
  818.   ["Shornbeard Outlaw"] = "Dwarf",
  819.   ["Shornbeard Render"] = "Dwarf",
  820.   ["Shornbeard Warrior"] = "Dwarf",
  821.   ["Shrieking Chill-wind"] = "Beast",
  822.   ["Shrieking Gloom-wing"] = "Beast",
  823.   ["Sickle-fly Queen"] = "Spiders & Insects",
  824.   ["Sickle-fly"] = "Spiders & Insects",
  825.   ["Sickly Buck"] = "Beast",
  826.   ["Sickly Doe"] = "Beast",
  827.   ["Sickly Fox"] = "Beast",
  828.   ["Sickly Rabbit"] = "Beast",
  829.   ["Silent Yellowfang"] = "Beast",
  830.   ["Silt-toad"] = "Beast",
  831.   ["Silver-neck Buck"] = "Beast",
  832.   ["Silver-neck Doe"] = "Beast",
  833.   ["Skittering Downs-spider"] = "Spiders & Insects",
  834.   ["Skittering Ruin-web"] = "Spiders & Insects",
  835.   ["Skittering Snow-spinner"] = "Spiders & Insects",
  836.   ["Skulkmire"] = "Creatures of Nature",
  837.   ["Skunkwood's Den-mother"] = "Beast",
  838.   ["Skunkwood's Wolfhound"] = "Beast",
  839.   ["Skíthi Blackhand"] = "Dwarf",
  840.   ["Slimy Barrow-crawler"] = "Spiders & Insects",
  841.   ["Slimy Leaf-crawler"] = "Spiders & Insects",
  842.   ["Slimy Muck-crawler"] = "Spiders & Insects",
  843.   ["Slimy River-slug"] = "Beast",
  844.   ["Slippery Marish-slug"] = "Beast",
  845.   ["Small Harvest-fly"] = "Spiders & Insects",
  846.   ["Snapper Turtle"] = "Beast",
  847.   ["Snarling Forest-hunter"] = "Beast",
  848.   ["Snarling Moor-stalker"] = "Beast",
  849.   ["Snarling Wolf"] = "Beast",
  850.   ["Snow-beast Hurler"] = "Beast",
  851.   ["Snow-spinner Ambusher"] = "Spiders & Insects",
  852.   ["Snow-spinner Lurker"] = "Spiders & Insects",
  853.   ["Snow-spinner Mother"] = "Spiders & Insects",
  854.   ["Snow-spinner Trapper"] = "Spiders & Insects",
  855.   ["Snow-troll Ripper"] = "Troll-kind",
  856.   ["Southern Archer"] = "Man",
  857.   ["Southern Attacker"] = "Man",
  858.   ["Southern Blade-bearer"] = "Man",
  859.   ["Southern Bowman"] = "Man",
  860.   ["Southern Brawler"] = "Man",
  861.   ["Southern Captain"] = "Man",
  862.   ["Southern Knave"] = "Man",
  863.   ["Southern Lookout"] = "Man",
  864.   ["Southern Outlaw"] = "Man",
  865.   ["Southern Poacher"] = "Man",
  866.   ["Southern Raider"] = "Man",
  867.   ["Southern Robber"] = "Man",
  868.   ["Southern Ruffian"] = "Man",
  869.   ["Southern Scout"] = "Man",
  870.   ["Southern Skirmisher"] = "Man",
  871.   ["Southern Warrior"] = "Man",
  872.   ["Southern Watch-captain"] = "Man",
  873.   ["Splintertusk Mauler"] = "Beast",
  874.   ["Splintertusk Sow"] = "Beast",
  875.   ["Spotted Field Buck"] = "Beast",
  876.   ["Spotted Field Doe"] = "Beast",
  877.   ["Starkath"] = "Dwarf",
  878.   ["Stinging Gnats"] = "Spiders & Insects",
  879.   ["Stinging Sickle-fly"] = "Spiders & Insects",
  880.   ["Stolen Sheep"] = "Beast",
  881.   ["Stonehold Chief"] = "Orc-kind",
  882.   ["Stonehold Spear-hurler"] = "Orc-kind",
  883.   ["Stout Dourhand"] = "Dwarf",
  884.   ["Stout-grip Barghest"] = "Beast",
  885.   ["Strider"] = "Man",
  886.   ["Strong-grip Barghest"] = "Beast",
  887.   ["Sturdy Dourhand"] = "Dwarf",
  888.   ["Sturdy Long-tusk"] = "Beast",
  889.   ["Sullen Wight"] = "The Dead",
  890.   ["Summoned Wight"] = "The Dead",
  891.   ["Svalfang"] = "Giant-kind",
  892.   ["Swamp-norbog Burrower"] = "Spiders & Insects",
  893.   ["Tainted Field-rat"] = "Beast",
  894.   ["Tarbúrz"] = "Troll-kind",
  895.   ["Tarkríp Archer"] = "Orc-kind",
  896.   ["Tarkríp Blade"] = "Orc-kind",
  897.   ["Tarkríp Bone-smasher"] = "Orc-kind",
  898.   ["Tarkríp Bow-master"] = "Orc-kind",
  899.   ["Tarkríp Brute"] = "Orc-kind",
  900.   ["Tarkríp Reaver"] = "Orc-kind",
  901.   ["Tarkrîp Berserker"] = "Orc-kind",
  902.   ["Tarkrîp Bog-warrior"] = "Orc-kind",
  903.   ["Tarkrîp Brawler"] = "Orc-kind",
  904.   ["Tarkrîp Chieftain"] = "Orc-kind",
  905.   ["Tarkrîp Defiler"] = "Orc-kind",
  906.   ["Tarkrîp Fight-caller"] = "Orc-kind",
  907.   ["Tarkrîp Fight-master"] = "Orc-kind",
  908.   ["Tarkrîp Grunt"] = "Orc-kind",
  909.   ["Tarkrîp Killer"] = "Orc-kind",
  910.   ["Tarkrîp Marksman"] = "Orc-kind",
  911.   ["Tarkrîp Outrider"] = "Orc-kind",
  912.   ["Tarkrîp Picket"] = "Orc-kind",
  913.   ["Tarkrîp Prowler"] = "Orc-kind",
  914.   ["Tarkrîp Raider"] = "Orc-kind",
  915.   ["Tarkrîp Ransacker"] = "Orc-kind",
  916.   ["Tarkrîp Render"] = "Orc-kind",
  917.   ["Tarkrîp Seeker"] = "Orc-kind",
  918.   ["Tarkrîp Servant"] = "Orc-kind",
  919.   ["Tarkrîp Shanker"] = "Orc-kind",
  920.   ["Tarkrîp Sharp-eye"] = "Orc-kind",
  921.   ["Tarkrîp Shooter"] = "Orc-kind",
  922.   ["Tarkrîp Siege-engineer"] = "Orc-kind",
  923.   ["Tarkrîp Skirmisher"] = "Orc-kind",
  924.   ["Tarkrîp Slaughterer"] = "Orc-kind",
  925.   ["Tarkrîp Thrasher"] = "Orc-kind",
  926.   ["Tawny Brown-bear"] = "Beast",
  927.   ["Temair the Devoted"] = "Man",
  928.   ["Thickjaw Cub"] = "Beast",
  929.   ["Thicktusk Sow"] = "Beast",
  930.   ["Thieving Shrew"] = "Beast",
  931.   ["Thorn-talon Scout"] = "Beast",
  932.   ["Thorn-talon Sentry"] = "Beast",
  933.   ["Threatening Hoar-mantle"] = "Beast",
  934.   ["Tomb-wight"] = "The Dead",
  935.   ["Town Guard"] = "Man",
  936.   ["Training-dummy"] = "Object",
  937.   ["Trampletusk"] = "Beast",
  938.   ["Troublesome Vale-fly"] = "Spiders & Insects",
  939.   ["Twisted Arm"] = "The Dead",
  940.   ["Twisted Blood-oak"] = "Creatures of Nature",
  941.   ["Twisted Dead-root"] = "Creatures of Nature",
  942.   ["Twisted Fell-spirit"] = "The Dead",
  943.   ["Twisted Holly"] = "Creatures of Nature",
  944.   ["Twisted Swamp-norbog"] = "Spiders & Insects",
  945.   ["Twisted Wight"] = "The Dead",
  946.   ["Umnen"] = "The Dead",
  947.   ["Umín"] = "Man",
  948.   ["Vale Hendroval"] = "Beast",
  949.   ["Vale Prowler"] = "Beast",
  950.   ["Vale Wildcat"] = "Beast",
  951.   ["Vale-bear Mother"] = "Beast",
  952.   ["Vale-fly Pest"] = "Spiders & Insects",
  953.   ["Vance Waithman"] = "Man",
  954.   ["Vatar"] = "The Dead",
  955.   ["Vicious Bog-neeker"] = "Spiders & Insects",
  956.   ["Vicious Hill-bear"] = "Beast",
  957.   ["Vicious Mountain-bear"] = "Beast",
  958.   ["Vicious Shattertusk"] = "Beast",
  959.   ["Vicious Tarkrîp"] = "Orc-kind",
  960.   ["Vile Barghest"] = "Beast",
  961.   ["Vile Bog-prowler"] = "Creatures of Nature",
  962.   ["Vile Moor-web"] = "Spiders & Insects",
  963.   ["Villainous Oath-breaker"] = "The Dead",
  964.   ["Violent Tarkrîp"] = "Orc-kind",
  965.   ["Violet Underhill"] = "Hobbit",
  966.   ["Vokvras"] = "Orc-kind",
  967.   ["Wailing Wight"] = "The Dead",
  968.   ["Walking-tree"] = "Creatures of Nature",
  969.   ["Wandering Cruel-beak"] = "Beast",
  970.   ["Wandering Dark-wing"] = "Beast",
  971.   ["Wandering Hoar-mantle"] = "Beast",
  972.   ["War-captain Ongbúrz"] = "Orc-kind",
  973.   ["War-master Uzorr"] = "Orc-kind",
  974.   ["Warg Bone-chewer"] = "Beast",
  975.   ["Warg Hunter"] = "Beast",
  976.   ["Warg Man-Flayer"] = "Beast",
  977.   ["Warg Pack-mate"] = "Beast",
  978.   ["Warg Ravager"] = "Beast",
  979.   ["Warg Scavenger"] = "Beast",
  980.   ["Warg Scrub-stalker"] = "Beast",
  981.   ["Warg Stalker"] = "Beast",
  982.   ["Warped Oak"] = "Creatures of Nature",
  983.   ["White Hand Archer"] = "Orc-kind",
  984.   ["White Hand Battler"] = "Orc-kind",
  985.   ["White Hand Blademaster"] = "Orc-kind",
  986.   ["White Hand Crusher"] = "Orc-kind",
  987.   ["White Hand Defender"] = "Orc-kind",
  988.   ["White Hand Fire-thrower"] = "Orc-kind",
  989.   ["White Hand Grunt"] = "Orc-kind",
  990.   ["White Hand Guard"] = "Orc-kind",
  991.   ["White Hand Lobber"] = "Orc-kind",
  992.   ["White Hand Messenger"] = "Orc-kind",
  993.   ["White Hand Orc"] = "Orc-kind",
  994.   ["White Hand Pillager"] = "Orc-kind",
  995.   ["White Hand Ridge-fighter"] = "Orc-kind",
  996.   ["White Hand Sapper"] = "Orc-kind",
  997.   ["White Hand Sniper"] = "Orc-kind",
  998.   ["White Hand Spear-thrower"] = "Orc-kind",
  999.   ["White Hand Spearer"] = "Orc-kind",
  1000.   ["White Hand Strong-arm"] = "Orc-kind",
  1001.   ["White Hand Thrasher"] = "Orc-kind",
  1002.   ["White-footed Fox"] = "Beast",
  1003.   ["White-footed Hare"] = "Beast",
  1004.   ["White-hand Howler"] = "Beast",
  1005.   ["White-hand Prowler"] = "Beast",
  1006.   ["White-hand Ravager"] = "Beast",
  1007.   ["Wight-lord of Cardolan"] = "The Dead",
  1008.   ["Wild Blue-crag"] = "Orc-kind",
  1009.   ["Wild Broadtooth"] = "Beast",
  1010.   ["Wild Gramsfoot"] = "Orc-kind",
  1011.   ["Wild Grey Wolf"] = "Beast",
  1012.   ["Wild Hill-toad"] = "Beast",
  1013.   ["Wild Razortooth"] = "Beast",
  1014.   ["Wild Tusker"] = "Beast",
  1015.   ["William Skunkwood"] = "Man",
  1016.   ["Winter Fox"] = "Beast",
  1017.   ["Winter Squirrel"] = "Beast",
  1018.   ["Wolf Hunter"] = "Beast",
  1019.   ["Wolf Leader"] = "Beast",
  1020.   ["Wolf"] = "Beast",
  1021.   ["Wolfhound"] = "Beast",
  1022.   ["Wolverine"] = "Beast",
  1023.   ["Wood-bear Cub"] = "Beast",
  1024.   ["Wood-bear Mother"] = "Beast",
  1025.   ["Wrathful Banner-wight"] = "The Dead",
  1026.   ["Wretched Barrow-maple"] = "Creatures of Nature",
  1027.   ["Wretched Gloom-water"] = "The Dead",
  1028.   ["Writhing Barrow-crawler"] = "Spiders & Insects",
  1029.   ["Yellowtusk"] = "Beast",
  1030.   ["Young Aurochs"] = "Beast",
  1031.   ["Young Bear"] = "Beast",
  1032.   ["Young Cave-claw"] = "Beast",
  1033.   ["Young Downs-bear"] = "Beast",
  1034.   ["Young Drake"] = "Dragon-kind",
  1035.   ["Young Dusk-wolf"] = "Beast",
  1036.   ["Young Field-bear"] = "Beast",
  1037.   ["Young Hill-bear"] = "Beast",
  1038.   ["Young Hoar-mantle"] = "Beast",
  1039.   ["Young Splintertusk"] = "Beast",
  1040.   ["Young Vale-bear"] = "Beast",
  1041.   ["Young Wood-bear"] = "Beast",
  1042.   ["Zanshík"] = "Orc-kind",
  1043.   -- New Entries vv
  1044.   ["Swift Crag-hawk"] = "Beast",
  1045.   ["Wandering Glen-hind"] = "Beast",
  1046.   ["Silent Moor-stalker"] = "Beast",
  1047.   ["Mountain-bear Protector"] = "Beast",
  1048.   ["Mountain-bear Whelp"] = "Beast",
  1049.   ["Strong Glen-buck"] = "Beast",
  1050.   ["Deadly Blight-worm"] = "Dragon-kind",
  1051.   ["Maddened Mountain-bear"] = "Beast",
  1052.   ["Stone-troll Blighter"] = "Troll-kind",
  1053.   ["Stone-troll Sentinel"] = "Troll-kind",
  1054.   ["Vile Corpse-rat"] = "Beast",
  1055.   ["Wight Dread-warrior"] = "The Dead",
  1056.   ["Stone-crawler Devourer"] = "Spiders & Insects",
  1057.   ["Corcur Skirmisher"] = "Man",
  1058.   ["Corcur Poisoner"] = "Man",
  1059.   ["Malloval"] = "Beast", -- Signature
  1060.   ["Corrupt Wood-troll"] = "Troll-kind", -- Signature
  1061.   ["Twisted Wood-troll"] = "Troll-kind", -- Signature
  1062.   ["Twisted Blood-ash"] = "Creatures of Nature",
  1063.   ["Trapdoor-spider"] = "Spiders & Insects", -- Elite
  1064.   ["Flesh-gnawer Spider"] = "Spiders & Insects", -- Elite
  1065.   ["Trapdoor-spider Lurker"] = "Spiders & Insects", -- Elite
  1066.   ["Trapdoor-spider Watcher"] = "Spiders & Insects", -- Elite
  1067.   ["Trapdoor-spider Queen"] = "Spiders & Insects", -- Elite
  1068.   ["Flesh-gnawer Lurker"] = "Spiders & Insects", -- Elite
  1069.   ["Flesh-gnawer Watcher"] = "Spiders & Insects", -- Elite
  1070.   ["Stinging Moor-fly"] = "Spiders & Insects",
  1071.   ["Hunting Trapdoor"] = "Spiders & Insects", -- Elite
  1072.   ["Blight-worm"] = "Dragon-kind",
  1073.   ["Burrowing Whiskerback"] = "Beast", -- Elite
  1074.   ["Curr-olog Basher"] = "Troll-kind", -- Elite
  1075.   ["Woodland Curr-olog"] = "Troll-kind", -- Elite
  1076.   ["Curr-olog Ancient"] = "Troll-kind", -- Elite
  1077.   ["Curr-olog Hurler"] = "Troll-kind", -- Elite
  1078.   ["Curr-olog Mangler"] = "Troll-kind", -- Elite
  1079.   ["Whiskerback Digger"] = "Beast",
  1080.   ["Whiskerback Scavenger"] = "Beast",
  1081.   ["Moor-fly Hatcher"] = "Spiders & Insects",
  1082.   ["Trollshaws Goblin-raider"] = "Orc-kind",
  1083.   ["Elder Stonehoof"] = "Beast",
  1084.   ["Corrupt Darkclaw"] = "Beast", -- Swarm
  1085.   ["Glen-hind"] = "Beast",
  1086.   ["Moor-stalker Scavenger"] = "Beast",
  1087.   ["Glen-buck"] = "Beast",
  1088.   ["Young Glen-buck"] = "Beast",
  1089.   ["Curr-olog Scourge"] = "Troll-kind", -- Signature
  1090.   ["Corcur Blood-sworn"] = "Man",
  1091.   ["Corcur Archer"] = "Man",
  1092.   ["Cargûl Searcher"] = "Unseen", -- Signature
  1093.   ["Vátair Grim-crow"] = "Man", -- Rare Elite
  1094.   ["Stone-troll Hurler"] = "Troll-kind",
  1095.   ["Mountain-bear"] = "Beast",
  1096.   ["Spying Hendroval"] = "Beast",
  1097.   ["Writhing Stone-crawler"] = "Spiders & Insects", -- Swarm
  1098.   ["Shadow-wolf Elder"] = "Ancient Evil", -- Signature
  1099.   ["Karnasht"] = "Beast", -- Rare Signature
  1100.   ["Red River-toad"] = "Beast", -- Swarm
  1101.   ["Green River-toad"] = "Beast", -- Swarm
  1102.   ["Crawling Rock-worm"] = "Dragon-kind",
  1103.   ["Root-crawler"] = "Spiders & Insects", -- Swarm
  1104.   ["Undergrowth Tangler"] = "Creatures of Nature", -- Swarm
  1105.   ["Summoned Root"] = "Creatures of Nature", -- Swarm
  1106.   ["Fen-creeper Stalker"] = "Creatures of Nature",
  1107.   ["Thicket Coney"] = "Beast",
  1108.   ["Silver Squirrel"] = "Beast",
  1109.   ["Great Glen-buck"] = "Beast",
  1110.   ["Great Glen-hind"] = "Beast",
  1111.   ["Sarlug"] = "Dragon-kind", -- Signature
  1112.   ["Enraged Mountain-drake"] = "Dragon-kind", -- Elite
  1113.   ["Onodrim"] = "Troll-kind", -- Signature
  1114.   ["Arifael"] = "Giant-kind", -- Defender
  1115.   ["Giant Grey Stonehoof"] = "Beast",
  1116.   ["Giant Stone-breaker"] = "Giant-kind", -- Elite
  1117.   ["Giant Rock-thrower"] = "Giant-kind", -- Elite
  1118. }
  1119.  
  1120. local mobtypex = {
  1121.   -- New Entries ^^
  1122.   ["Asht"] = "Rare Elite",
  1123.   ["Azuzol"] = "Rare Signature",
  1124.   ["Balt-olog Heaver"] = "Signature",
  1125.   ["Blackclaw"] = "Rare Signature",
  1126.   ["Blogkritar"] = "Rare Elite Master",
  1127.   ["Blue-crag Chief"] = "Elite",
  1128.   ["Blue-crag Chieftain"] = "Signature",
  1129.   ["Blue-crag Demolisher"] = "Elite",
  1130.   ["Blue-crag Hurler"] = "Elite",
  1131.   ["Blue-crag Slicer"] = "Elite",
  1132.   ["Brishzel"] = "Rare Elite Master",
  1133.   ["Brudhraw"] = "Signature",
  1134.   ["Captain Dombrî"] = "Elite",
  1135.   ["Coldfells Hunter"] = "Signature",
  1136.   ["Créoth Devout"] = "Elite",
  1137.   ["Créoth Elder"] = "Normal",
  1138.   ["Créoth Novice"] = "Elite",
  1139.   ["Créoth Warden"] = "Elite",
  1140.   ["Darkheart"] = "Rare Elite Master",
  1141.   ["Defender of Ost Guruth"] = "Defender",
  1142.   ["Drake Matron"] = "Signature",
  1143.   ["Dreadful Gloom-water"] = "Elite",
  1144.   ["Durglup"] = "Signature",
  1145.   ["Earth-kin"] = "Defender",
  1146.   ["Emerald Twospade"] = "Defender",
  1147.   ["Faegfaer"] = "Rare Signature",
  1148.   ["Fergandir"] = "Rare Signature",
  1149.   ["First Marshal Fádi"] = "Avenger",
  1150.   ["First Marshal Léodwald"] = "Avenger",
  1151.   ["First Marshal Túllinn"] = "Avenger",
  1152.   ["Formidable Snowbear"] = "Elite",
  1153.   ["Galrîp"] = "Signature",
  1154.   ["Gib Hawthorn"] = "Rare Signature",
  1155.   ["Grishskum"] = "Rare Signature",
  1156.   ["Gwigon"] = "Rare Signature",
  1157.   ["Hontimûrz"] = "Signature",
  1158.   ["Jon Brackenbrook"] = "Signature",
  1159.   ["Kasak"] = "Rare Signature",
  1160.   ["Latub"] = "Rare Signature",
  1161.   ["Lebrennil"] = "Signature",
  1162.   ["Lûz"] = "Signature",
  1163.   ["Marigold Winterdown"] = "Defender",
  1164.   ["Moor-web Weaver"] = "Signature",
  1165.   ["Naglangon"] = "Rare Elite Master",
  1166.   ["Nishrûk"] = "Signature",
  1167.   ["Northpaw"] = "Rare Signature",
  1168.   ["Oath-breaker Captain"] = "Elite",
  1169.   ["Ongbúrz Combatant"] = "Elite",
  1170.   ["Raugzdrok"] = "Rare Elite Master",
  1171.   ["Sergeant-at-Arms Ascwyn"] = "Defender",
  1172.   ["Sergeant-at-Arms Hafthor"] = "Defender",
  1173.   ["Sergeant-at-Arms Hesten"] = "Defender",
  1174.   ["Sergeant-at-Arms Thurimbent"] = "Defender",
  1175.   ["Skíthi Blackhand"] = "Signature",
  1176.   ["Snow-beast Hurler"] = "Elite",
  1177.   ["Snow-troll Ripper"] = "Elite",
  1178.   ["Stolen Sheep"] = "Signature",
  1179.   ["Tarkrîp Slaughterer"] = "Signature",
  1180.   ["Training-dummy"] = "Master Defender",
  1181.   ["Twisted Wight"] = "Elite",
  1182.   ["Umnen"] = "Rare Signature",
  1183.   ["Vokvras"] = "Rare Signature",
  1184.   ["Wailing Wight"] = "Normal",
  1185.   ["War-master Uzorr"] = "Signature",
  1186.   ["White Hand Fire-thrower"] = "Signature",
  1187.   ["Yellowtusk"] = "Rare Signature",
  1188. }
  1189.  
  1190. -------------------------------------------------------------------------------
  1191. XpWindow = Turbine.UI.Window()
  1192. XpWindow:SetMouseVisible(false)
  1193. XpWindow:SetPosition(WindowLeft, WindowTop)
  1194. XpWindow:SetSize(WindowWidth, WindowHeight)
  1195. XpWindow:SetVisible(true)
  1196.  
  1197. local XpLabel = Turbine.UI.Label()
  1198. XpLabel:SetParent(XpWindow)
  1199. XpLabel:SetBackColor(Turbine.UI.Color(0.1, 0, 0, 0))
  1200. XpLabel:SetFont(0x42000018) -- Turbine.UI.Lotro.Font.Verdana16
  1201. XpLabel:SetMarkupEnabled(true)
  1202. XpLabel:SetMouseVisible(false)
  1203. XpLabel:SetSize(WindowWidth, WindowHeight)
  1204.  
  1205. XpWindow.Update = function()
  1206.   if tick > 9 then
  1207.     tick = 0
  1208.     TargetMorale = MyTarget:GetMaxMorale()
  1209.     TargetPower = MyTarget:GetMaxPower()
  1210.     if TargetPower ~= 0 or tock > 9 then
  1211.       XpWindow:SetWantsUpdates(false)
  1212.     else
  1213.       tock = tock + 1
  1214.     end
  1215.     UpdateDisplay()
  1216.   else
  1217.     tick = tick + 1
  1218.   end
  1219. end
  1220.  
  1221. -------------------------------------------------------------------------------
  1222. function round(number, zeroes)
  1223.   local zeroes = zeroes or 0
  1224.   return math.floor(number * (10 ^ zeroes) + .5) / (10 ^ zeroes)
  1225. end
  1226.  
  1227. -------------------------------------------------------------------------------
  1228. -- FIXME need confirmation on multipliers for elite masters, nemeses and arch-nemeses
  1229. -- elite master  Caller of the Bog 2, Bughrakh 1.5, Haglob 1.5
  1230. -- nemesis  Taushakh 3.5
  1231. -- arch-nemesis  Bugud 7
  1232.  
  1233. --              morale  power  p*1.25  xp  xp*1.05
  1234. -- trivial      0.05    0.05    0
  1235. -- swarm        0.5      0.5      0.625  0.5  0.525
  1236. -- normal        1        1        1.25   1    1.05
  1237. -- signature    2        1.5      1.875  1.2  1.26
  1238. -- elite        4.5      3        3.75   1.4  1.47
  1239. -- elite master 10      5        6.25   1.5  1.575
  1240. -- nemesis      20     20       25       3.5  3.675
  1241. -- arch-nemesis 60     40       50       7    7.35
  1242.  
  1243. -- Locked Chests are level 80 and give 82 XP (0.125?)
  1244.  
  1245. function TypeXp(powermult, moralemult)
  1246.   -- FIXME improve logic?
  1247.   -- defilers have 50% extra power and make things messy
  1248.   if powermult == 0.75 and moralemult <= 0.55 then
  1249.     return "Swarm", 0.5
  1250.   elseif powermult == 1.5 and moralemult <= 1.1 then
  1251.     return "Normal", 1
  1252.   elseif powermult == 2.25 and moralemult <= 2.2 then
  1253.     return "Signature", 1.2
  1254.   elseif powermult == 4.5 and moralemult <= 4.95 then
  1255.     return "Elite", 1.4
  1256.   end
  1257.  
  1258.   if powermult < 0.5 then
  1259.     return "Normal", 0 -- Trivial mobs now shown in-game as Normal
  1260.   elseif powermult < 1 then
  1261.     if powermult < 0.625 then
  1262.       return "Swarm", 0.5
  1263.     else
  1264.       return "Swarm", 0.525
  1265.     end
  1266.   elseif powermult <= 1.5 then
  1267.     if powermult < 1.25 then
  1268.       return "Normal", 1
  1269.     else
  1270.       return "Normal", 1.05
  1271.     end
  1272.   elseif powermult < 4.5 then
  1273.     if powermult < 1.875 then
  1274.       return "Signature", 1.2
  1275.     else
  1276.       return "Signature", 1.26
  1277.     end
  1278.   elseif powermult <= 5 then
  1279.     if powermult < 3.75 then
  1280.       return "Elite", 1.4
  1281.     else
  1282.       return "Elite", 1.47
  1283.     end
  1284.   elseif powermult < 20 then
  1285.     if powermult < 6.25 then
  1286.       return "Elite Master", 1.5 -- or 2
  1287.     else
  1288.       return "Elite Master", 1.575 -- or 2.1
  1289.     end
  1290.   elseif powermult < 40 then
  1291.     if powermult < 25 then
  1292.       return "Nemesis", 3.5
  1293.     else
  1294.       return "Nemesis", 3.675
  1295.     end
  1296.   else
  1297.     if powermult < 50 then
  1298.       return "Arch-Nemesis", 7
  1299.     else
  1300.       return "Arch-Nemesis", 7.35
  1301.     end
  1302.   end
  1303. end
  1304.  
  1305. -------------------------------------------------------------------------------
  1306. function UpdateDisplay()
  1307.   if not TargetLevel then
  1308.     local tier = ResourceTier[MyTarget:GetName()]
  1309.  
  1310.     if tier then
  1311.       XpLabel:SetText(string.format("Tier %d Node: %d XP", tier, tier * 5 + 15))
  1312.     else
  1313.       XpLabel:SetText("No Level")
  1314.     end
  1315.     return
  1316.  
  1317.   elseif TargetLevel == 0 then
  1318.     XpLabel:SetText("Level 0")
  1319.     return
  1320.  
  1321.   elseif not TargetPower then
  1322.     XpLabel:SetText("No Power")
  1323.     return
  1324.  
  1325.   elseif TargetPower == 0 then
  1326.     XpLabel:SetText(string.rep(".", tock))
  1327.     return
  1328.   end
  1329.  
  1330.   local MyLevel = MyChar:GetLevel()
  1331.   local RelativeLevel = TargetLevel - MyLevel
  1332.   local base = MonsterXp[TargetLevel]
  1333.   local moralemult = round(TargetMorale / MonsterMorale[TargetLevel], 5)
  1334.   local powermult = round(TargetPower / MonsterPower[TargetLevel], 5)
  1335.   local mobtype, mobmult = TypeXp(powermult, moralemult)
  1336.     mobtype = mobtypex[MyTarget:GetName()] or mobtype -- mobtype override for those fringe cases
  1337.   local mobkind = targetKind[MyTarget:GetName()] or "<Undef>"
  1338.   local levelmult, colour
  1339.  
  1340.   -- -9 or lower
  1341.   if RelativeLevel < -8 then
  1342.     levelmult = 0
  1343.   -- -8, -7, -6
  1344.   elseif RelativeLevel < -5 then
  1345.     levelmult = 0.2
  1346.   -- -5, -4, -3
  1347.   elseif RelativeLevel < -2 then
  1348.     if MyLevel < 40 then
  1349.       levelmult = 0.4
  1350.     else
  1351.       levelmult = 0.35
  1352.     end
  1353.   -- -2, -1
  1354.   elseif RelativeLevel < 0 then
  1355.     if MyLevel < 40 then
  1356.       levelmult = 0.9
  1357.     else
  1358.       levelmult = 0.8
  1359.     end
  1360.   -- 0
  1361.   elseif RelativeLevel < 1 then
  1362.     levelmult = 1
  1363.   -- +1, +2
  1364.   elseif RelativeLevel < 2 then
  1365.     levelmult = 1
  1366.   -- +3, +4
  1367.   elseif RelativeLevel < 5 then
  1368.     levelmult = 1
  1369.   -- +5, +6, +7
  1370.   elseif RelativeLevel < 8 then
  1371.     levelmult = 1
  1372.   -- +8 or higher
  1373.   else
  1374.     levelmult = 0
  1375.   end
  1376.  
  1377.   --- Get Relative Colours
  1378.   -- FIXME want exact RGB values for level-difference colours
  1379.   -- http://lotro-wiki.com/index.php/Difficulty_indicators
  1380.  
  1381.   if MyLevel <7 then -- Lvl 1-6
  1382.     if RelativeLevel < -6 then
  1383.       colour = "808080" -- grey [-7, -8]
  1384.     elseif RelativeLevel < -5 then
  1385.       colour = "008000" -- green [-6]
  1386.     elseif RelativeLevel < -2 then
  1387.       colour = "00ffff" -- cyan [-5, -4, -3]
  1388.     elseif RelativeLevel < 0 then
  1389.       colour = "0080ff" -- blue [-2, -1]
  1390.     elseif RelativeLevel < 3 then
  1391.       colour = "ffffff" -- white [0, 1, 2]
  1392.     elseif RelativeLevel < 4 then
  1393.       colour = "ffff00" -- yellow [3]
  1394.     elseif RelativeLevel < 6 then
  1395.       colour = "ff8500" -- orange [4, 5]
  1396.     elseif RelativeLevel < 9 then
  1397.       colour = "ff0000" -- red [6, 7, 8]
  1398.     else
  1399.       colour = "800080" -- purple [9+]
  1400.     end
  1401.   elseif MyLevel <40 then -- Lvl 7-39
  1402.     if RelativeLevel < -8 then
  1403.       colour = "808080" -- grey [-6, -7, -8]
  1404.     elseif RelativeLevel < -5 then
  1405.       colour = "008000" -- green [-6]
  1406.     elseif RelativeLevel < -2 then
  1407.       colour = "00ffff" -- cyan [-5, -4, -3]
  1408.     elseif RelativeLevel < 0 then
  1409.       colour = "0080ff" -- blue [0]
  1410.     elseif RelativeLevel < 1 then
  1411.       colour = "ffffff" -- white [0, 1, 2]
  1412.     elseif RelativeLevel < 3 then
  1413.       colour = "ffff00" -- yellow [1, 2]
  1414.     elseif RelativeLevel < 5 then
  1415.       colour = "ff8500" -- orange [3, 4]
  1416.     elseif RelativeLevel < 8 then
  1417.       colour = "ff0000" -- red [5, 6, 7]
  1418.     else
  1419.       colour = "800080" -- purple [8+]
  1420.     end
  1421.   else -- Lvl 40-100 NEED TO CONFIRM FOR >60
  1422.     if RelativeLevel < -8 then
  1423.       colour = "808080" -- grey [-6, -7, -8]
  1424.     elseif RelativeLevel < -5 then
  1425.       colour = "008000" -- green [-6]
  1426.     elseif RelativeLevel < -2 then
  1427.       colour = "00ffff" -- cyan [-5, -4, -3]
  1428.     elseif RelativeLevel < 0 then
  1429.       colour = "0080ff" -- blue [0]
  1430.     elseif RelativeLevel < 1 then
  1431.       colour = "ffffff" -- white [0, 1, 2]
  1432.     elseif RelativeLevel < 2 then
  1433.       colour = "ffff00" -- yellow [1]
  1434.     elseif RelativeLevel < 5 then
  1435.       colour = "ff8500" -- orange [2, 3, 4]
  1436.     elseif RelativeLevel < 8 then
  1437.       colour = "ff0000" -- red [5, 6, 7]
  1438.     else
  1439.       colour = "800080" -- purple [8+]
  1440.     end
  1441.   end
  1442.  
  1443.   -- correct rounding might be: floor(floor(base * mobmult) * levelmult)
  1444.   if base then
  1445.     text = string.format("%d * %s * <rgb=#%s>%s</rgb> = %d XP", base, mobmult, colour, levelmult, base * mobmult * levelmult)
  1446.   else
  1447.     text = string.format("__ * %s * <rgb=#%s>%s</rgb> = __ XP", mobmult, colour, levelmult)
  1448.   end
  1449.   text = string.format("%s\n%sm %sp", text, moralemult, powermult)
  1450.  
  1451.   XpLabel:SetText(text)
  1452.  
  1453. -- Expanded debug section
  1454. -- All the good stuff happens here!
  1455.  
  1456.   if debug then
  1457.     if mobkind == "<Undef>" then
  1458.       debugText = string.format('  ["%s"] = "",', MyTarget:GetName())
  1459.       Turbine.Shell.WriteLine(debugText)
  1460.     else
  1461.       debugText = string.format("<rgb=#%s>%s,%s,%s,%d,%d,%d</rgb>,%s,%s,%s,%s", colour, MyTarget:GetName(), mobtype, mobkind, TargetLevel, round(TargetMorale), round(TargetPower), TargetMorale, TargetPower, moralemult, powermult)
  1462.       Turbine.Shell.WriteLine(debugText)
  1463.     end
  1464.   else
  1465.     debugText = string.format("<rgb=#%s>%s %s/%s %d %d %d</rgb>", colour, MyTarget:GetName(), mobtype, mobkind, TargetLevel, round(TargetMorale), round(TargetPower))
  1466.     Turbine.Shell.WriteLine(debugText)  
  1467.   end
  1468.  
  1469. end
  1470.  
  1471. -------------------------------------------------------------------------------
  1472. function ProcessTarget()
  1473.   XpWindow:SetWantsUpdates(false)
  1474.   MyTarget = MyChar:GetTarget()
  1475.   if MyTarget then
  1476.     if MyTarget.GetLevel then
  1477.       TargetLevel = MyTarget:GetLevel()
  1478.     else
  1479.       TargetLevel = false
  1480.     end
  1481.  
  1482.     if MyTarget.GetMaxPower and MyTarget.GetMaxMorale then
  1483.       TargetMorale = MyTarget:GetMaxMorale()
  1484.       TargetPower = MyTarget:GetMaxPower()
  1485.       if TargetPower == 0 then
  1486.         tick = 0
  1487.         tock = 0
  1488.         XpWindow:SetWantsUpdates(true)
  1489.       end
  1490.     else
  1491.       TargetPower = false
  1492.     end
  1493.     UpdateDisplay()
  1494.   end
  1495. end
  1496.  
  1497. -------------------------------------------------------------------------------
  1498. function AddCallback(object, event, callback)
  1499.   if (object[event] == nil) then
  1500.     object[event] = callback
  1501.   elseif (type(object[event]) == "table") then
  1502.     table.insert(object[event], callback)
  1503.   else
  1504.     object[event] = {object[event], callback}
  1505.   end
  1506.   return callback
  1507. end
  1508.  
  1509. function RemoveCallback(object, event, callback)
  1510.   if (object[event] == callback) then
  1511.     object[event] = nil
  1512.   elseif (type(object[event]) == "table") then
  1513.     local size = table.getn(object[event])
  1514.     for i = 1, size do
  1515.       if (object[event][i] == callback) then
  1516.         table.remove(object[event], i)
  1517.         break
  1518.       end
  1519.     end
  1520.   end
  1521. end
  1522.  
  1523. AddCallback(MyChar, "TargetChanged", ProcessTarget)
  1524.  
  1525. -------------------------------------------------------------------------------
  1526. local CommandLine = Turbine.ShellCommand()
  1527. CommandLine.Execute = function(sender, cmd, args)
  1528.   if debug then
  1529.     debug = false
  1530.     Turbine.Shell.WriteLine("XpPredict debugging off.")
  1531.   else
  1532.     debug = true
  1533.     Turbine.Shell.WriteLine("XpPredict debugging on.")
  1534.   end
  1535. end
  1536.  
  1537. Turbine.Shell.AddCommand("XpPredict", CommandLine)
  1538.  
  1539. -------------------------------------------------------------------------------
  1540. -- create a dummy window, and update until loaded, at which point set loaded=true and set the unload commands.
  1541. local loaded = false
  1542. tmpWindow = Turbine.UI.Window()
  1543. tmpWindow.Update = function()
  1544.   if Plugins["XpPredict"] ~= nil and not loaded then
  1545.     loaded = true
  1546.     Plugins["XpPredict"].Unload = function()
  1547.       RemoveCallback(MyChar, "TargetChanged", ProcessTarget)
  1548.       Turbine.Shell.RemoveCommand(CommandLine)
  1549.     end
  1550.     tmpWindow:SetWantsUpdates(false)
  1551.     Turbine.Shell.WriteLine("Polymnie's XpPredict (+LogTarget) loaded.")
  1552.   end
  1553. end
  1554. tmpWindow:SetWantsUpdates(true)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement