forked from mff/3d_armor_classes
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			89cf7a85db
			...
			8fe61c0bb6
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 8fe61c0bb6 | 
| @@ -1,2 +1,4 @@ | ||||
| 3d_armor | ||||
| shields | ||||
| hudbars? | ||||
| hbsprint? | ||||
|   | ||||
							
								
								
									
										132
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										132
									
								
								init.lua
									
									
									
									
									
								
							| @@ -26,6 +26,35 @@ for material, _ in pairs(armor.materials) do | ||||
| 	end | ||||
| end | ||||
|  | ||||
| -- Function to change max stamina if hbsprint is present | ||||
| local mod_hbsprint = minetest.get_modpath("hbsprint") ~= nil | ||||
| local function change_stamina_max(player, value) | ||||
| 	if mod_hbsprint then | ||||
| 		local new_max = value + hb.get_hudtable("stamina").hudstate[player:get_player_name()].max | ||||
| 		local val = player:get_meta():get_float("hbsprint:stamina") | ||||
| 		if val > new_max then | ||||
| 			player:get_meta():set_float("hbsprint:stamina", new_max) | ||||
| 			hb.change_hudbar(player, "stamina", new_max, new_max) | ||||
| 		elseif val < new_max then | ||||
| 			hb.unhide_hudbar(player, "stamina") | ||||
| 			hb.change_hudbar(player, "stamina", nil, new_max) | ||||
| 		end | ||||
| 	end | ||||
| end | ||||
|  | ||||
| local mod_hb = minetest.get_modpath("hudbars") ~= nil | ||||
| local function change_hp_max(player, value) | ||||
| 	local hp_max = player:get_properties().hp_max | ||||
| 	local hp = player:get_hp() | ||||
| 	local new_max = hp_max + value | ||||
| 	if hp > new_max then | ||||
| 		player:set_hp(new_max, {type="set_hp", from="mod"}) | ||||
| 		if mod_hb then | ||||
| 			hb.change_hudbar(player, "health", new_max, new_max) | ||||
| 		end | ||||
| 	end | ||||
| 	player:set_properties({hp_max = new_max}) | ||||
| end | ||||
|  | ||||
| -- Reinforced Leather | ||||
| minetest.register_craftitem(":3d_armor:reinforcedleather", { | ||||
| @@ -50,7 +79,13 @@ if armor.materials.reinforcedleather then | ||||
| 			inventory_image = "3d_armor_inv_helmet_reinforcedleather.png", | ||||
| 			groups = {armor_head=1, armor_use=40, physics_speed=0.02, physics_gravity=-0.02}, | ||||
| 			armor_groups = {fleshy=6}, | ||||
| 			damage_groups = {cracky=2, snappy=1, choppy=1, level=2} | ||||
| 			damage_groups = {cracky=2, snappy=1, choppy=1, level=2}, | ||||
| 			on_equip = function(player, index, stack) | ||||
| 				change_stamina_max(player, 2) | ||||
| 			end, | ||||
| 			on_unequip = function(player, index, stack) | ||||
| 				change_stamina_max(player, -2) | ||||
| 			end, | ||||
| 	}) | ||||
| 	 | ||||
| 	-- Register chestplates : | ||||
| @@ -59,7 +94,14 @@ if armor.materials.reinforcedleather then | ||||
| 		inventory_image = "3d_armor_inv_chestplate_reinforcedleather.png", | ||||
| 		groups = {armor_torso = 1, armor_use = 40, physics_speed=0.08, physics_gravity=-0.08}, | ||||
| 		armor_groups = {fleshy=11}, | ||||
| 		damage_groups = {cracky=2, snappy=1, choppy=1, level=2} | ||||
| 		damage_groups = {cracky=2, snappy=1, choppy=1, level=2}, | ||||
| 		on_equip = function(player, index, stack) | ||||
| 			change_stamina_max(player, 8) | ||||
| 		end, | ||||
| 		on_unequip = function(player, index, stack) | ||||
| 			change_stamina_max(player, -8) | ||||
| 		end, | ||||
|  | ||||
| 	}) | ||||
|  | ||||
| 	-- Register leggings : | ||||
| @@ -68,7 +110,13 @@ if armor.materials.reinforcedleather then | ||||
| 		inventory_image = "3d_armor_inv_leggings_reinforcedleather.png", | ||||
| 		groups = {armor_legs = 1, armor_use = 40, physics_speed=0.06, physics_gravity=-0.06}, | ||||
| 		armor_groups = {fleshy=11}, | ||||
| 		damage_groups = {cracky=2, snappy=1, choppy=1, level=2} | ||||
| 		damage_groups = {cracky=2, snappy=1, choppy=1, level=2}, | ||||
| 		on_equip = function(player, index, stack) | ||||
| 			change_stamina_max(player, 6) | ||||
| 		end, | ||||
| 		on_unequip = function(player, index, stack) | ||||
| 			change_stamina_max(player, -6) | ||||
| 		end, | ||||
| 	}) | ||||
|  | ||||
| 	-- Register boots : | ||||
| @@ -77,7 +125,13 @@ if armor.materials.reinforcedleather then | ||||
| 		inventory_image = "3d_armor_inv_boots_reinforcedleather.png", | ||||
| 		groups = {armor_feet = 1, armor_use = 40, physics_speed=0.02, physics_gravity=-0.02}, | ||||
| 		armor_groups = {fleshy=6}, | ||||
| 		damage_groups = {cracky=2, snappy=1, choppy=1, level=3} | ||||
| 		damage_groups = {cracky=2, snappy=1, choppy=1, level=3}, | ||||
| 		on_equip = function(player, index, stack) | ||||
| 			change_stamina_max(player, 2) | ||||
| 		end, | ||||
| 		on_unequip = function(player, index, stack) | ||||
| 			change_stamina_max(player, -2) | ||||
| 		end, | ||||
| 	}) | ||||
| end | ||||
|  | ||||
| @@ -105,7 +159,13 @@ if armor.materials.hardenedleather then | ||||
| 		inventory_image = "3d_armor_inv_helmet_hardenedleather.png", | ||||
| 		groups = {armor_head = 1, armor_use = 250, physics_speed=0.01, physics_gravity=-0.01}, | ||||
| 		armor_groups = {fleshy=5}, | ||||
| 		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2} | ||||
| 		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, | ||||
| 		on_equip = function(player, index, stack) | ||||
| 			change_stamina_max(player, 1) | ||||
| 		end, | ||||
| 		on_unequip = function(player, index, stack) | ||||
| 			change_stamina_max(player, -1) | ||||
| 		end, | ||||
| 	}) | ||||
|  | ||||
| 	-- Register chestplates : | ||||
| @@ -114,7 +174,13 @@ if armor.materials.hardenedleather then | ||||
| 		inventory_image = "3d_armor_inv_chestplate_hardenedleather.png", | ||||
| 		groups = {armor_torso = 1, armor_use = 250, physics_speed=0.04, physics_gravity=-0.04}, | ||||
| 		armor_groups = {fleshy=8}, | ||||
| 		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2} | ||||
| 		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, | ||||
| 		on_equip = function(player, index, stack) | ||||
| 			change_stamina_max(player, 4) | ||||
| 		end, | ||||
| 		on_unequip = function(player, index, stack) | ||||
| 			change_stamina_max(player, -4) | ||||
| 		end, | ||||
| 	}) | ||||
|  | ||||
| 	-- Register leggings : | ||||
| @@ -123,7 +189,13 @@ if armor.materials.hardenedleather then | ||||
| 		inventory_image = "3d_armor_inv_leggings_hardenedleather.png", | ||||
| 		groups = {armor_legs = 1, armor_use = 250, physics_speed=0.03, physics_gravity=-0.03}, | ||||
| 		armor_groups = {fleshy=8}, | ||||
| 		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2} | ||||
| 		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, | ||||
| 		on_equip = function(player, index, stack) | ||||
| 			change_stamina_max(player, 3) | ||||
| 		end, | ||||
| 		on_unequip = function(player, index, stack) | ||||
| 			change_stamina_max(player, -3) | ||||
| 		end, | ||||
| 	}) | ||||
|  | ||||
| 	-- Register boots : | ||||
| @@ -132,7 +204,13 @@ if armor.materials.hardenedleather then | ||||
| 		inventory_image = "3d_armor_inv_boots_hardenedleather.png", | ||||
| 		groups = {armor_feet = 1, armor_use = 250, physics_speed=0.01, physics_gravity=-0.01}, | ||||
| 		armor_groups = {fleshy=5}, | ||||
| 		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2} | ||||
| 		damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, | ||||
| 		on_equip = function(player, index, stack) | ||||
| 			change_stamina_max(player, 1) | ||||
| 		end, | ||||
| 		on_unequip = function(player, index, stack) | ||||
| 			change_stamina_max(player, -1) | ||||
| 		end, | ||||
| 	}) | ||||
| end | ||||
|  | ||||
| @@ -160,7 +238,13 @@ if armor.materials.blackmithril then | ||||
| 		inventory_image = "3d_armor_inv_helmet_blackmithril.png", | ||||
| 		groups = {armor_head = 1, armor_heal = 15, armor_use = 40}, | ||||
| 		armor_groups = {fleshy=16}, | ||||
| 		damage_groups = {cracky=2, snappy=1, level=3} | ||||
| 		damage_groups = {cracky=2, snappy=1, level=3}, | ||||
| 		on_equip = function(player, index, stack) | ||||
| 			change_hp_max(player, 1) | ||||
| 		end, | ||||
| 		on_unequip = function(player, index, stack) | ||||
| 			change_hp_max(player, -1) | ||||
| 		end, | ||||
| 	}) | ||||
|  | ||||
| 	-- Register chestplates : | ||||
| @@ -169,7 +253,13 @@ if armor.materials.blackmithril then | ||||
| 		inventory_image = "3d_armor_inv_chestplate_blackmithril.png", | ||||
| 		groups = {armor_torso = 1, armor_heal = 15, armor_use = 40}, | ||||
| 		armor_groups = {fleshy=22}, | ||||
| 		damage_groups = {cracky=2, snappy=1, level=3} | ||||
| 		damage_groups = {cracky=2, snappy=1, level=3}, | ||||
| 		on_equip = function(player, index, stack) | ||||
| 			change_hp_max(player, 5) | ||||
| 		end, | ||||
| 		on_unequip = function(player, index, stack) | ||||
| 			change_hp_max(player, -5) | ||||
| 		end, | ||||
| 	}) | ||||
|  | ||||
| 	-- Register leggings : | ||||
| @@ -178,7 +268,13 @@ if armor.materials.blackmithril then | ||||
| 		inventory_image = "3d_armor_inv_leggings_blackmithril.png", | ||||
| 		groups = {armor_legs = 1, armor_heal = 15, armor_use = 40}, | ||||
| 		armor_groups = {fleshy=22}, | ||||
| 		damage_groups = {cracky=2, snappy=1, level=3} | ||||
| 		damage_groups = {cracky=2, snappy=1, level=3}, | ||||
| 		on_equip = function(player, index, stack) | ||||
| 			change_hp_max(player, 3) | ||||
| 		end, | ||||
| 		on_unequip = function(player, index, stack) | ||||
| 			change_hp_max(player, -3) | ||||
| 		end, | ||||
| 	}) | ||||
|  | ||||
| 	-- Register boots : | ||||
| @@ -187,7 +283,13 @@ if armor.materials.blackmithril then | ||||
| 		inventory_image = "3d_armor_inv_boots_blackmithril.png", | ||||
| 		groups = {armor_feet = 1, armor_heal = 15, armor_use = 40}, | ||||
| 		armor_groups = {fleshy=16}, | ||||
| 		damage_groups = {cracky=2, snappy=1, level=3} | ||||
| 		damage_groups = {cracky=2, snappy=1, level=3}, | ||||
| 		on_equip = function(player, index, stack) | ||||
| 			change_hp_max(player, 1) | ||||
| 		end, | ||||
| 		on_unequip = function(player, index, stack) | ||||
| 			change_hp_max(player, -1) | ||||
| 		end, | ||||
| 	})	 | ||||
|  | ||||
| 	-- Register shield : | ||||
| @@ -198,6 +300,12 @@ if armor.materials.blackmithril then | ||||
| 		armor_groups = {fleshy=16}, | ||||
| 		damage_groups = {cracky=2, snappy=1, level=3}, | ||||
| 		reciprocate_damage = true, | ||||
| 		on_equip = function(player, index, stack) | ||||
| 			change_hp_max(player, 5) | ||||
| 		end, | ||||
| 		on_unequip = function(player, index, stack) | ||||
| 			change_hp_max(player, -5) | ||||
| 		end, | ||||
| 	}) | ||||
| end | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user