Add initial elixirs.
18
abms.lua
|
@ -80,6 +80,7 @@ minetest.register_globalstep(function(dtime)
|
||||||
for i = 1, #players do
|
for i = 1, #players do
|
||||||
local player = players[i]
|
local player = players[i]
|
||||||
local pos = player:getpos()
|
local pos = player:getpos()
|
||||||
|
local player_name = player:get_player_name()
|
||||||
|
|
||||||
-- How many mobs are up at the moment? This is a rough check.
|
-- 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
|
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
|
end
|
||||||
|
|
||||||
if pos.y >= 11168 and pos.y <= 15168 then
|
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_physics_override({gravity=0.1})
|
||||||
player:set_sky("#000000", "plain", {})
|
player:set_sky("#000000", "plain", {})
|
||||||
players_in_orbit[player:get_player_name()] = true
|
players_in_orbit[player_name] = true
|
||||||
end
|
end
|
||||||
elseif players_in_orbit[player:get_player_name()] then
|
elseif players_in_orbit[player_name] then
|
||||||
player:set_sky("#000000", "regular", {})
|
player:set_sky("#000000", "regular", {})
|
||||||
minetest.after(20, function()
|
minetest.after(20, function()
|
||||||
player:set_physics_override({gravity=1})
|
player:set_physics_override({gravity=1})
|
||||||
end)
|
end)
|
||||||
players_in_orbit[player:get_player_name()] = false
|
players_in_orbit[player_name] = false
|
||||||
end
|
end
|
||||||
|
|
||||||
-- environmental damage
|
-- environmental damage
|
||||||
|
@ -135,6 +136,13 @@ minetest.register_globalstep(function(dtime)
|
||||||
player:set_hp(20)
|
player:set_hp(20)
|
||||||
return
|
return
|
||||||
else
|
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 minp = vector.subtract(pos, 0.5)
|
||||||
local maxp = vector.add(pos, 0.5)
|
local maxp = vector.add(pos, 0.5)
|
||||||
|
|
||||||
|
@ -161,7 +169,7 @@ minetest.register_globalstep(function(dtime)
|
||||||
-- ... from hunger (even less often).
|
-- ... from hunger (even less often).
|
||||||
if dps_count % hunger_delay == 0 then
|
if dps_count % hunger_delay == 0 then
|
||||||
if hunger_mod 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
|
else
|
||||||
player:set_hp(player:get_hp() - 1)
|
player:set_hp(player:get_hp() - 1)
|
||||||
end
|
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",
|
description = "Lump of Silver",
|
||||||
inventory_image = 'default_coal_lump.png^[colorize:#FFFFFF:175',
|
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 .. "/nodes.lua")
|
||||||
dofile(fun_caves.path .. "/deco.lua")
|
dofile(fun_caves.path .. "/deco.lua")
|
||||||
dofile(fun_caves.path .. "/fungal_tree.lua")
|
dofile(fun_caves.path .. "/fungal_tree.lua")
|
||||||
|
dofile(fun_caves.path .. "/armor.lua")
|
||||||
dofile(fun_caves.path .. "/mapgen.lua")
|
dofile(fun_caves.path .. "/mapgen.lua")
|
||||||
|
|
||||||
if mobs and mobs.mod == "redo" then
|
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 |