elite.lua 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. mobs.register_mob("griefer:elite_griefer", {
  2. description = "Elite Oerkki",
  3. type = "npc",
  4. passive = false,
  5. attack_animals = true,
  6. attack_players = true,
  7. attack_type = "dogfight",
  8. specific_allies = {
  9. ["griefer:griefer"] = true,
  10. ["dm:dm"] = true,
  11. },
  12. pathfinding = 3,
  13. pathing_radius = 20,
  14. max_node_dig_level = 2,
  15. reach = 2, -- Mob will try to move this close to target.
  16. punch_reach = 3, -- Mob can hit from this far away.
  17. damage = 8*500,
  18. damage_min = 8*500,
  19. damage_max = 16*500,
  20. damage_group = "crumbly",
  21. hp_min = 160*500,
  22. hp_max = 260*500,
  23. armor = 100,
  24. show_health = false,
  25. -- Never expires.
  26. lifetimer = 100000,
  27. -- Require level 3 weapon to get any drops.
  28. armor_level = 3,
  29. -- Slightly smaller collision box makes mob movement easier.
  30. collisionbox = {-0.3, -1, -0.3, 0.3, 0.7, 0.3},
  31. --collisionbox = {-0.4, -1, -0.4, 0.4, 0.9, 0.4},
  32. visual = "mesh",
  33. visual_size = {x=1.3, y=1.1, z=1.3},
  34. mesh = "griefer_elite.b3d",
  35. textures = {
  36. {"griefer_griefer3.png"},
  37. },
  38. makes_footstep_sound = false,
  39. sounds = {
  40. random = "griefer_elite",
  41. war_cry = "griefer_elite",
  42. shoot_attack = "dm_fireball",
  43. },
  44. walk_velocity = 1,
  45. run_velocity = 3,
  46. sprint_velocity = 4,
  47. view_range = 30,
  48. jump = true,
  49. drops = {
  50. {name = "default:goldblock", chance = 1, min = 1, max = 1},
  51. {name = "cavestuff:dark_obsidian", chance = 1, min = 1, max = 5},
  52. },
  53. -- The node needs to be something the Oerkki can also dig,
  54. -- otherwise it might trap itself.
  55. place_node = "default:cobble",
  56. water_damage = 0,
  57. lava_damage = 4*500,
  58. makes_bones_in_lava = false,
  59. light_damage = 0,
  60. fear_height = 3,
  61. animation = {
  62. speed_normal = 30,
  63. speed_run = 30,
  64. stand_start = 0,
  65. stand_end = 79,
  66. walk_start = 168,
  67. walk_end = 187,
  68. run_start = 168,
  69. run_end = 187,
  70. punch_start = 200,
  71. punch_end = 219,
  72. },
  73. replace_rate = 10,
  74. replace_what = {
  75. "torches:torch_floor",
  76. "torches:torch_wall",
  77. "torches:torch_ceiling",
  78. "torches:kalite_torch_floor",
  79. "torches:kalite_torch_wall",
  80. "torches:kalite_torch_ceiling",
  81. },
  82. replace_with = "air",
  83. replace_offset = 0,
  84. replace_range = 2,
  85. immune_to = {
  86. {"default:gold_lump", -10}, -- heals by 10 points
  87. },
  88. ignore_invisibility = true,
  89. --knock_back = false,
  90. --hunt_players = true,
  91. hunt_chance = 5,
  92. arrow = "griefer:fireball",
  93. shoot_offset = 1,
  94. do_custom = function(...)
  95. return griefer.elite_do_custom(...)
  96. end,
  97. do_punch = function(...)
  98. return griefer.elite_do_punch(...)
  99. end,
  100. })
  101. mobs.register_egg("griefer:elite_griefer", "Elite Griefer", "default_gold_block.png", 1)
  102. mobs.register_spawn_abm({
  103. name = "griefer:elite_griefer",
  104. nodes = {"griefer:elitestone"},
  105. interval = 3,
  106. chance = 100,
  107. min_light = 0,
  108. max_light = 11,
  109. player_min_range = 20,
  110. player_max_range = 100,
  111. mob_limit = 2,
  112. absolute_mob_limit = 32,
  113. mob_range = 30,
  114. min_count = 1,
  115. max_count = 2,
  116. })