Add initial elixirs.

This commit is contained in:
Duane 2016-06-18 23:50:16 -05:00
parent 04c6051e8a
commit 9193317ca6
13 changed files with 78 additions and 5 deletions

View file

@ -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
View 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

View file

@ -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",
})

View file

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB