Add initial elixirs.
18
abms.lua
|
@ -80,6 +80,7 @@ minetest.register_globalstep(function(dtime)
|
|||
for i = 1, #players do
|
||||
local player = players[i]
|
||||
local pos = player:getpos()
|
||||
local player_name = player:get_player_name()
|
||||
|
||||
-- How many mobs are up at the moment? This is a rough check.
|
||||
if fun_caves.fortress_spawns and #fun_caves.fortress_spawns > 0 and dps_count % monster_delay == 0 then
|
||||
|
@ -115,17 +116,17 @@ minetest.register_globalstep(function(dtime)
|
|||
end
|
||||
|
||||
if pos.y >= 11168 and pos.y <= 15168 then
|
||||
if not players_in_orbit[player:get_player_name()] then
|
||||
if not players_in_orbit[player_name] then
|
||||
player:set_physics_override({gravity=0.1})
|
||||
player:set_sky("#000000", "plain", {})
|
||||
players_in_orbit[player:get_player_name()] = true
|
||||
players_in_orbit[player_name] = true
|
||||
end
|
||||
elseif players_in_orbit[player:get_player_name()] then
|
||||
elseif players_in_orbit[player_name] then
|
||||
player:set_sky("#000000", "regular", {})
|
||||
minetest.after(20, function()
|
||||
player:set_physics_override({gravity=1})
|
||||
end)
|
||||
players_in_orbit[player:get_player_name()] = false
|
||||
players_in_orbit[player_name] = false
|
||||
end
|
||||
|
||||
-- environmental damage
|
||||
|
@ -135,6 +136,13 @@ minetest.register_globalstep(function(dtime)
|
|||
player:set_hp(20)
|
||||
return
|
||||
else
|
||||
if fun_caves.armor_expire and fun_caves.armor_expire[player_name] and fun_caves.armor_expire[player_name] < time then
|
||||
player:set_armor_groups({fleshy=100})
|
||||
--print(dump(player:get_armor_groups()))
|
||||
minetest.chat_send_player(player_name, minetest.colorize('#FF0000', 'Your skin feels softer...'))
|
||||
fun_caves.armor_expire[player_name] = nil
|
||||
end
|
||||
|
||||
local minp = vector.subtract(pos, 0.5)
|
||||
local maxp = vector.add(pos, 0.5)
|
||||
|
||||
|
@ -161,7 +169,7 @@ minetest.register_globalstep(function(dtime)
|
|||
-- ... from hunger (even less often).
|
||||
if dps_count % hunger_delay == 0 then
|
||||
if hunger_mod then
|
||||
hunger.update_hunger(player, hunger.players[player:get_player_name()].lvl - 4)
|
||||
hunger.update_hunger(player, hunger.players[player_name].lvl - 4)
|
||||
else
|
||||
player:set_hp(player:get_hp() - 1)
|
||||
end
|
||||
|
|
53
armor.lua
Normal file
|
@ -0,0 +1,53 @@
|
|||
fun_caves.armor_expire = {}
|
||||
|
||||
local function armor(user, factor)
|
||||
local player_name = user:get_player_name()
|
||||
user:set_armor_groups({fleshy=factor})
|
||||
--print(dump(user:get_armor_groups()))
|
||||
minetest.chat_send_player(player_name, 'Your skin feels harder...')
|
||||
fun_caves.armor_expire[player_name] = minetest.get_us_time() + 3600 * 1000000
|
||||
end
|
||||
|
||||
local descs = {
|
||||
{'wood', 95, 'group:wood'},
|
||||
{'stone', 90, 'group:stone'},
|
||||
{'steel', 80, 'default:steel_ingot'},
|
||||
{'copper', 85, 'default:copper_ingot'},
|
||||
{'bronze', 70, 'default:bronze_ingot'},
|
||||
{'gold', 60, 'default:gold_ingot'},
|
||||
{'diamond', 50, 'default:diamond'},
|
||||
{'silver', 40, 'fun_caves:silver_ingot'},
|
||||
{'mese', 30, 'default:mese_crystal'},
|
||||
--{'', 20, ''},
|
||||
--{'adamant', 10, 'fun_caves:adamant'},
|
||||
}
|
||||
|
||||
for _, desc in pairs(descs) do
|
||||
local name = desc[1]
|
||||
local value = desc[2]
|
||||
local cap = name:gsub('^%l', string.upper)
|
||||
minetest.register_craftitem("fun_caves:liquid_"..name, {
|
||||
description = 'Dr Robertson\'s Patented Liquid '..cap..' Elixir',
|
||||
drawtype = "plantlike",
|
||||
paramtype = "light",
|
||||
tiles = {'fun_caves_liquid_'..name..'.png'},
|
||||
inventory_image = 'fun_caves_liquid_'..name..'.png',
|
||||
groups = {dig_immediate = 3},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
armor(user, value)
|
||||
itemstack:take_item()
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = 'fun_caves:liquid_'..name,
|
||||
recipe = {
|
||||
"mobs_slimes:green_slimeball",
|
||||
desc[3],
|
||||
"vessels:glass_bottle",
|
||||
},
|
||||
})
|
||||
end
|
|
@ -99,3 +99,14 @@ minetest.register_craftitem("fun_caves:silver_lump", {
|
|||
description = "Lump of Silver",
|
||||
inventory_image = 'default_coal_lump.png^[colorize:#FFFFFF:175',
|
||||
})
|
||||
|
||||
minetest.register_craftitem("fun_caves:silver_ingot", {
|
||||
description = "Silver Ingot",
|
||||
inventory_image = 'default_steel_ingot.png^[colorize:#FFFFFF:175',
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "fun_caves:silver_ingot",
|
||||
recipe = "fun_caves:silver_lump",
|
||||
})
|
||||
|
|
1
init.lua
|
@ -68,6 +68,7 @@ dofile(fun_caves.path .. "/unionfind.lua")
|
|||
dofile(fun_caves.path .. "/nodes.lua")
|
||||
dofile(fun_caves.path .. "/deco.lua")
|
||||
dofile(fun_caves.path .. "/fungal_tree.lua")
|
||||
dofile(fun_caves.path .. "/armor.lua")
|
||||
dofile(fun_caves.path .. "/mapgen.lua")
|
||||
|
||||
if mobs and mobs.mod == "redo" then
|
||||
|
|
BIN
textures/fun_caves_liquid_bronze.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
textures/fun_caves_liquid_copper.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
textures/fun_caves_liquid_diamond.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
textures/fun_caves_liquid_gold.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
textures/fun_caves_liquid_mese.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
textures/fun_caves_liquid_silver.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
textures/fun_caves_liquid_steel.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
textures/fun_caves_liquid_stone.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
textures/fun_caves_liquid_wood.png
Normal file
After Width: | Height: | Size: 1.2 KiB |