mirror of
				https://codeberg.org/tenplus1/mobs_redo.git
				synced 2025-10-31 23:55:22 +01:00 
			
		
		
		
	fix damage_per_sec checks wit some nested if's, add custom on_activate to arrows
This commit is contained in:
		
							
								
								
									
										32
									
								
								api.lua
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								api.lua
									
									
									
									
									
								
							| @@ -1,9 +1,9 @@ | ||||
|  | ||||
| -- Mobs Api (27th May 2017) | ||||
| -- Mobs Api (28th May 2017) | ||||
|  | ||||
| mobs = {} | ||||
| mobs.mod = "redo" | ||||
| mobs.version = "20170527" | ||||
| mobs.version = "20170528" | ||||
|  | ||||
|  | ||||
| -- Intllib | ||||
| @@ -550,7 +550,7 @@ local do_env_damage = function(self) | ||||
| 	-- what is mob standing in? | ||||
| 	pos.y = pos.y + self.collisionbox[2] + 0.1 -- foot level | ||||
| 	self.standing_in = node_ok(pos, "air").name | ||||
| 	--print ("standing in " .. self.standing_in) | ||||
| --	print ("standing in " .. self.standing_in) | ||||
|  | ||||
| 	-- don't fall when on ignore, just stand still | ||||
| 	if self.standing_in == "ignore" then | ||||
| @@ -566,26 +566,30 @@ local do_env_damage = function(self) | ||||
| 		pos.y = pos.y + 1 | ||||
|  | ||||
| 		-- water | ||||
| 		if self.water_damage ~= 0 | ||||
| 		and nodef.groups.water then | ||||
| 		if nodef.groups.water then | ||||
|  | ||||
| 			self.health = self.health - self.water_damage | ||||
| 			if self.water_damage ~= 0 then | ||||
|  | ||||
| 			effect(pos, 5, "bubble.png", nil, nil, 1, nil) | ||||
| 				self.health = self.health - self.water_damage | ||||
|  | ||||
| 			if check_for_death(self, "water") then return end | ||||
| 				effect(pos, 5, "bubble.png", nil, nil, 1, nil) | ||||
|  | ||||
| 				if check_for_death(self, "water") then return end | ||||
| 			end | ||||
|  | ||||
| 		-- lava or fire | ||||
| 		elseif self.lava_damage ~= 0 | ||||
| 		and (nodef.groups.lava | ||||
| 		elseif (nodef.groups.lava | ||||
| 		or self.standing_in == "fire:basic_flame" | ||||
| 		or self.standing_in == "fire:permanent_flame") then | ||||
|  | ||||
| 			self.health = self.health - self.lava_damage | ||||
| 			if self.lava_damage ~= 0 then | ||||
|  | ||||
| 			effect(pos, 5, "fire_basic_flame.png", nil, nil, 1, nil) | ||||
| 				self.health = self.health - self.lava_damage | ||||
|  | ||||
| 			if check_for_death(self, "lava") then return end | ||||
| 				effect(pos, 5, "fire_basic_flame.png", nil, nil, 1, nil) | ||||
|  | ||||
| 				if check_for_death(self, "lava") then return end | ||||
| 			end | ||||
|  | ||||
| 		-- damage_per_second node check | ||||
| 		elseif minetest.registered_nodes[self.standing_in].damage_per_second ~= 0 then | ||||
| @@ -2879,6 +2883,8 @@ function mobs:register_arrow(name, def) | ||||
| 		automatic_face_movement_dir = def.rotate | ||||
| 			and (def.rotate - (pi / 180)) or false, | ||||
|  | ||||
| 		on_activate = def.on_activate or nil, | ||||
|  | ||||
| 		on_step = def.on_step or function(self, dtime) | ||||
|  | ||||
| 			self.timer = self.timer + 1 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user