local snowball_hit_player = function(self, player) player:punch(self.object, nil, { damage_groups = { fleshy = 5 } }, nil) end mobs:register_arrow("pyutest_mobs:arrow_snowball", { visual = "sprite", visual_size = { x = 1, y = 1 }, textures = { "pyutest-snowball.png" }, hit_node = function(self, pos) PyuTest.create_explosion(pos, 1, false, 9, { self.object }) end, hit_player = snowball_hit_player, hit_mob = snowball_hit_player, velocity = 9, collisionbox = { -1.5, -1.5, -1.5, 1.5, 1.5, 1.5 } }) mobs:register_mob("pyutest_mobs:snowman", { type = "monster", hp_max = 150, hp_min = 150, walk_velocity = 1, run_velocity = 4, armor = 100, passive = false, walk_chance = 1, stand_chance = 2, damage = 9, attack_chance = 1, attack_type = "dogshoot", arrow = "pyutest_mobs:arrow_snowball", shoot_interval = 0.75, shoot_offset = 2, homing = true, pathfinding = 1, visual = "upright_sprite", visual_size = { x = 1, y = 2 }, collisionbox = PyuTest.HUMAN_LIKE_CBOX, physical = true, blood_amount = PyuTest.ENTITY_BLOOD_AMOUNT, view_range = 35, reach = 2, jump = 1, group_attack = false, makes_footstep_sound = true, dogshoot_switch = 2, dogshoot_count_max = 3, dogshoot_count2_max = 6, textures = { "pyutest-snowman.png", "pyutest-snowman_back.png" }, drops = { { name = "pyutest_magic:magic_shards", min = 2, max = 5, chance = 1 }, { name = "pyutest_tools:snowball", min = 4, max = 9, chance = 1 } } }) PyuTest.create_boss_egg("pyutest_mobs:snowman", "Snowman Spawn Egg", "pyutest-egg.png^[multiply:skyblue", 0, nil, "pyutest_blocks:snow_block") mobs:spawn({ name = "pyutest_mobs:snowman", nodes = { "group:ground", "group:ice" }, interval = 3, chance = 4, active_object_count = 3, min_light = 0, max_light = 15, max_height = PyuTest.IceWorld.y_max, min_height = PyuTest.IceWorld.y_min })