cops = {} cops.copsSpawned = 0 -- Pig spawner minetest.register_node(":cops:pig_spawner", { walkable = false; drawtype = "glasslike", paramtype = "light", is_ground_content = false, sunlight_propagates = true, --[[on_timer = function(pos) minetest.add_entity(pos, "cops:cop_regular_female") return true end, on_construct = function(pos) minetest.get_node_timer(pos):start(20) end,]] }) -- Items minetest.register_craftitem(":cops:handcuffs", { description = "Handcuffs", wield_image = "cops_handcuffs.png", inventory_image = "cops_handcuffs.png", }) minetest.register_craftitem(":cops:badge", { description = "Police Badge", wield_image = "cops_badge.png", inventory_image = "cops_badge.png", }) minetest.register_craftitem(":cops:baton", { type = "none", description = "Baton", wield_image = "cops_baton.png", inventory_image = "cops_baton.png", tool_capabilities = { max_drop_level = 0, full_punch_interval = 0.4, groupcaps = { cracky = {times={[4]=.1}, uses=0, maxlevel=4}, }, damage_groups = {fleshy = 5, snappy = 4}, } }) minetest.register_craftitem(":cops:electric_weapon_broken", { description = "Broken Electric Weapon", wield_image = "cops_electric_weapon_broken.png", inventory_image = "cops_electric_weapon_broken.png", }) --[[ minetest.register_abm({ nodenames = {"cops:pig_spawner"}, interval = 30, chance = 5, action = function(pos, node, active_object_count, active_object_count_wider) local i = math.random(0, 2) if i == 0 then minetest.add_entity(pos, "cops:cop_regular_female") elseif i == 1 then minetest.add_entity(pos, "cops:cop_regular_male") elseif i == 2 then minetest.add_entity(pos, "cops:cop_armedthug") end end})]] minetest.register_abm({ nodenames = {"main:bricks_stone"}, interval = 40, chance = 140, action = function(pos, node, active_object_count, active_object_count_wider) if cops.copsSpawned < 20 then newPos = {x = pos.x, y = pos.y + 2, z = pos.z} local i = math.random(0, 7) if i < 2 then minetest.add_entity(newPos, "cops:cop_regular_female") elseif i < 6 then minetest.add_entity(newPos, "cops:cop_regular_male") elseif i == 7 then minetest.add_entity(newPos, "cops:cop_armedthug") end cops.copsSpawned = cops.copsSpawned + 1 end end}) -- Cops mobs:register_mob(":cops:cop_regular_female", { type = "monster", passive = false, attack_type = "dogfight", pathfinding = true, reach = 2, damage = 3, hp_min = 16, hp_max = 25, armor = 100, collisionbox = { -.4, 0, -.4, .4, 2, .4 }, pushable = true, visual = "mesh", mesh = "character.b3d", textures = { {"cop_regular_female.png"}, }, makes_footstep_sound = true, sounds = { random = "female_noise", }, on_die = onCopDie, walk_velocity = 2, run_velocity = 8, jump_height = 1, stepheight = 0, floats = 0, view_range = 45, fall_damage = true, drops = { {name = "cops:baton", chance = 2, min = 0, max = 1}, {name = "cops:badge", chance = 4, min = 0, max = 1}, {name = "cops:handcuffs", chance = 3, min = 0, max = 1}, {name = "cops:electric_weapon_broken", chance = 3, min = 0, max = 1} }, animation = { speed_normal = 30, speed_run = 50, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219 }, }) mobs:register_mob(":cops:cop_regular_male", { type = "monster", passive = false, attack_type = "dogfight", pathfinding = true, reach = 2, damage = 3, hp_min = 21, hp_max = 25, armor = 100, collisionbox = { -.4, 0, -.4, .4, 2, .4 }, pushable = true, visual = "mesh", mesh = "character.b3d", textures = { {"cop_regular_male.png"}, }, makes_footstep_sound = true, sounds = { random = "male_noise", }, on_die = onCopDie, walk_velocity = 2, run_velocity = 8, jump_height = 1, stepheight = 0, floats = 0, view_range = 45, fall_damage = true, drops = { {name = "cops:baton", chance = 2, min = 0, max = 1}, {name = "cops:badge", chance = 4, min = 1, max = 1}, {name = "cops:handcuffs", chance = 3, min = 0, max = 1}, {name = "cops:electric_weapon_broken", chance = 3, min = 0, max = 1} }, animation = { speed_normal = 30, speed_run = 50, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219 }, }) mobs:register_mob(":cops:cop_armedthug", { type = "monster", passive = false, attack_type = "dogfight", pathfinding = true, reach = 3, damage = 5, hp_min = 46, hp_max = 50, armor = 100, collisionbox = { -.4, 0, -.4, .4, 2, .4 }, pushable = true, visual = "mesh", mesh = "character.b3d", textures = { {"cop_armedthug.png"}, }, makes_footstep_sound = true, sounds = { random = "male_noise", }, on_die = onCopDie, walk_velocity = 2, run_velocity = 8, jump_height = 1, stepheight = 0, floats = 0, view_range = 45, fall_damage = true, drops = { {name = "cops:badge", chance = 3, min = 0, max = 1}, {name = "cops:handcuffs", chance = 4, min = 1, max = 2}, }, animation = { speed_normal = 30, speed_run = 50, stand_start = 0, stand_end = 79, walk_start = 168, walk_end = 187, run_start = 168, run_end = 187, punch_start = 200, punch_end = 219 }, }) onCopDie = function() cops.copsSpawned = cops.copsSpawned - 1 end