added config and more helpers, incomplete coca
parent
a8ffac5995
commit
39c4bf73e9
|
@ -1,9 +0,0 @@
|
|||
minetest.register_globalstep(function(dtime)
|
||||
for k, aftereffect in pairs(drug_wars.aftereffects) do
|
||||
aftereffect.countdown = aftereffect.countdown - dtime
|
||||
if(aftereffect.countdown <= 0) then
|
||||
aftereffect.on_timeout()
|
||||
table.remove(drug_wars.aftereffects, k)
|
||||
end
|
||||
end
|
||||
end)
|
74
cannabis.lua
74
cannabis.lua
|
@ -16,6 +16,12 @@ minetest.register_node("drug_wars:seed_cannabis", {
|
|||
end,
|
||||
})
|
||||
|
||||
for i = 4, 5 do
|
||||
local node_name = "default:grass_" .. i
|
||||
|
||||
drug_wars.add_node_drops(node_name, {items = {'drug_wars:seed_cannabis'}, rarity = 15});
|
||||
end
|
||||
|
||||
-- cannabis drops
|
||||
minetest.register_craftitem("drug_wars:cannabis_leaf", {
|
||||
description = "Cannabis Leaf",
|
||||
|
@ -40,41 +46,28 @@ minetest.register_craftitem("drug_wars:weed", {
|
|||
on_smoke_woodenpipe = function(player)
|
||||
if player ~= nil then
|
||||
local playername = player:get_player_name()
|
||||
local newhunger = hbhunger.hunger[playername] - 4
|
||||
local newhunger = hbhunger.hunger[playername] - drug_wars.WEED_HUNGER_DEBUFF
|
||||
|
||||
if(newhunger < 0) then
|
||||
newhunger = 0
|
||||
local changetable = {}
|
||||
changetable["type"] = "punch"
|
||||
player:set_hp(player:get_hp() - 2, changetable)
|
||||
drug_wars.drug_damage(playername, drug_wars.WEED_HEAL)
|
||||
else
|
||||
hbhunger.hunger[playername] = newhunger
|
||||
player:set_hp(player:get_hp() + 2)
|
||||
player:set_hp(player:get_hp() + drug_wars.WEED_HEAL)
|
||||
|
||||
local current_phy = player:get_physics_override()
|
||||
local change_speed = current_phy.speed > 0.4
|
||||
if(change_speed) then
|
||||
local new_phy = current_phy
|
||||
new_phy.speed = new_phy.speed - 0.2
|
||||
player:set_physics_override(new_phy)
|
||||
end
|
||||
local speed_changed = drug_wars.speed_debuff(player, drug_wars.WEED_SPEED_DEBUFF, drug_wars.WEED_SPEED_DEBUFF_THRESHOLD)
|
||||
|
||||
drug_wars.increase_addiction(playername, 0.02)
|
||||
drug_wars.increase_addiction(playername, drug_wars.WEED_ADDICTION)
|
||||
|
||||
table.insert(drug_wars.aftereffects, {
|
||||
countdown = 30,
|
||||
on_timeout = function()
|
||||
if(change_speed) then
|
||||
local current_phy = player:get_physics_override()
|
||||
local new_phy = current_phy
|
||||
new_phy.speed = new_phy.speed + 0.2
|
||||
player:set_physics_override(new_phy)
|
||||
if(speed_changed) then
|
||||
drug_wars.speed_buff(player, drug_wars.WEED_SPEED_DEBUFF)
|
||||
end
|
||||
|
||||
if(drug_wars.addictions[playername] > 0.5) then
|
||||
local changetable = {}
|
||||
changetable["type"] = "punch"
|
||||
player:set_hp(player:get_hp() - 2, changetable)
|
||||
if(drug_wars.addictions[playername] > drug_wars.WEED_ADDICTION_THRESHOLD) then
|
||||
drug_wars.drug_damage(playername, drug_wars.WEED_HEAL)
|
||||
end
|
||||
end
|
||||
})
|
||||
|
@ -89,41 +82,28 @@ minetest.register_craftitem("drug_wars:hashish", {
|
|||
on_smoke_woodenpipe = function(player)
|
||||
if player ~= nil then
|
||||
local playername = player:get_player_name()
|
||||
local newhunger = hbhunger.hunger[playername] - 8
|
||||
local newhunger = hbhunger.hunger[playername] - drug_wars.HASHISH_HUNGER_DEBUFF
|
||||
|
||||
if(newhunger < 0) then
|
||||
newhunger = 0
|
||||
local changetable = {}
|
||||
changetable["type"] = "punch"
|
||||
player:set_hp(player:get_hp() - 4, changetable)
|
||||
drug_wars.drug_damage(playername, drug_wars.HASHISH_HEAL)
|
||||
else
|
||||
hbhunger.hunger[playername] = newhunger
|
||||
player:set_hp(player:get_hp() + 4)
|
||||
player:set_hp(player:get_hp() + drug_wars.HASHISH_HEAL)
|
||||
|
||||
local current_phy = player:get_physics_override()
|
||||
local change_speed = current_phy.speed > 0.4
|
||||
if(change_speed) then
|
||||
local new_phy = current_phy
|
||||
new_phy.speed = new_phy.speed - 0.3
|
||||
player:set_physics_override(new_phy)
|
||||
end
|
||||
|
||||
drug_wars.increase_addiction(playername, 0.04)
|
||||
local speed_changed = drug_wars.speed_debuff(player, drug_wars.HASHISH_SPEED_DEBUFF, drug_wars.HASHISH_SPEED_DEBUFF_THRESHOLD)
|
||||
|
||||
drug_wars.increase_addiction(playername, drug_wars.HASHISH_ADDICTION)
|
||||
|
||||
table.insert(drug_wars.aftereffects, {
|
||||
countdown = 30,
|
||||
on_timeout = function()
|
||||
if(change_speed) then
|
||||
local current_phy = player:get_physics_override()
|
||||
local new_phy = current_phy
|
||||
new_phy.speed = new_phy.speed + 0.3
|
||||
player:set_physics_override(new_phy)
|
||||
on_timeout = function()
|
||||
if(speed_changed) then
|
||||
drug_wars.speed_buff(player, drug_wars.HASHISH_SPEED_DEBUFF)
|
||||
end
|
||||
|
||||
if(drug_wars.addictions[playername] > 0.5) then
|
||||
local changetable = {}
|
||||
changetable["type"] = "punch"
|
||||
player:set_hp(player:get_hp() - 4, changetable)
|
||||
|
||||
if(drug_wars.addictions[playername] > drug_wars.HASHISH_ADDICTION_THRESHOLD) then
|
||||
drug_wars.drug_damage(playername, drug_wars.HASHISH_HEAL)
|
||||
end
|
||||
end
|
||||
})
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
-- coca seeds
|
||||
minetest.register_node("drug_wars:seed_coca", {
|
||||
description = "Coca Seed",
|
||||
tiles = {"drugwars_coca_seed.png"},
|
||||
inventory_image = "drugwars_coca_seed.png",
|
||||
wield_image = "drugwars_coca_seed.png",
|
||||
drawtype = "signlike",
|
||||
groups = {seed = 1, snappy = 3, attached_node = 1},
|
||||
paramtype = "light",
|
||||
paramtype2 = "wallmounted",
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
selection_box = farming.select,
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
return farming.place_seed(itemstack, placer, pointed_thing, "drug_wars:coca_1")
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
-- coca drops
|
||||
minetest.register_craftitem("drug_wars:coca_leaf", {
|
||||
description = "Coca Leaf",
|
||||
inventory_image = "drugwars_coca_leaf.png",
|
||||
})
|
||||
|
||||
|
||||
-- coca refined items
|
||||
|
||||
minetest.register_craftitem("drug_wars:cocaine", {
|
||||
description = "Cocaine",
|
||||
inventory_image = "drugwars_cocaine.png",
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
local playername = player:get_player_name()
|
||||
local newhunger = hbhunger.hunger[playername] + 8
|
||||
|
||||
if(newhunger <= 30)
|
||||
hbhunger.hunger[playername] = newhunger
|
||||
|
||||
local current_phy = player:get_physics_override()
|
||||
local new_phy = current_phy
|
||||
new_phy.speed = new_phy.speed + 0.4
|
||||
player:set_physics_override(new_phy)
|
||||
|
||||
drug_wars.increase_addiction(playername, 0.1)
|
||||
|
||||
table.insert(drug_wars.aftereffects, {
|
||||
countdown = 360 * (1.0 - drug_wars.addictions[playername]),
|
||||
on_timeout = function()
|
||||
local current_phy = player:get_physics_override()
|
||||
local new_phy = current_phy
|
||||
new_phy.speed = new_phy.speed - 0.4
|
||||
player:set_physics_override(new_phy)
|
||||
end
|
||||
})
|
||||
end
|
||||
})
|
|
@ -0,0 +1,19 @@
|
|||
drug_wars.ADDICTION_TICK = 60
|
||||
drug_wars.ADDICTION_REDUCTION = 0.1
|
||||
drug_wars.ADDICTION_REDUCTION_THRESHOLD = 0.05
|
||||
|
||||
-- weed effects
|
||||
drug_wars.WEED_SPEED_DEBUFF = 0.2
|
||||
drug_wars.WEED_SPEED_DEBUFF_THRESHOLD = 0.4
|
||||
drug_wars.WEED_HUNGER_DEBUFF = 4
|
||||
drug_wars.WEED_HEAL = 4
|
||||
drug_wars.WEED_ADDICTION = 0.02
|
||||
drug_wars.WEED_ADDICTION_THRESHOLD = 0.5
|
||||
|
||||
-- hashish effects
|
||||
drug_wars.HASHISH_SPEED_DEBUFF = 0.25
|
||||
drug_wars.HASHISH_SPEED_DEBUFF_THRESHOLD = 0.4
|
||||
drug_wars.HASHISH_HUNGER_DEBUFF = 6
|
||||
drug_wars.HASHISH_HEAL = 6
|
||||
drug_wars.HASHISH_ADDICTION = 0.05
|
||||
drug_wars.HASHISH_ADDICTION_THRESHOLD = 0.5
|
|
@ -0,0 +1,31 @@
|
|||
minetest.register_globalstep(function(dtime)
|
||||
for k, aftereffect in pairs(drug_wars.aftereffects) do
|
||||
aftereffect.countdown = aftereffect.countdown - dtime
|
||||
if(aftereffect.countdown <= 0) then
|
||||
aftereffect.on_timeout()
|
||||
table.remove(drug_wars.aftereffects, k)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
drug_wars.addiction_timer = drug_wars.ADDICTION_TICK
|
||||
|
||||
minetest.register_globalstep(function(dtime)
|
||||
drug_wars.addiction_timer = drug_wars.addiction_timer - dtime
|
||||
|
||||
if(drug_wars.addiction_timer <= 0) then
|
||||
for k, addiction in pairs(drug_wars.addictions) do
|
||||
if(drug_wars.addictions[k] >= drug_wars.ADDICTION_REDUCTION_THRESHOLD) then
|
||||
drug_wars.addictions[k] = addiction - drug_wars.ADDICTION_REDUCTION
|
||||
|
||||
if(drug_wars.addictions[k] <= drug_wars.ADDICTION_REDUCTION_THRESHOLD) then
|
||||
drug_wars.addictions[k] = nil
|
||||
minetest.chat_send_player(k, "You detoxed yourself, congratulations!")
|
||||
else
|
||||
minetest.chat_send_player(k, "Your drug addiction has been reduced to " .. drug_wars.addictions[k])
|
||||
end
|
||||
end
|
||||
end
|
||||
drug_wars.addiction_timer = drug_wars.ADDICTION_TICK
|
||||
end
|
||||
end)
|
|
@ -1,5 +0,0 @@
|
|||
for i = 4, 5 do
|
||||
local node_name = "default:grass_" .. i
|
||||
|
||||
drug_wars.add_node_drops(node_name, {items = {'drug_wars:seed_cannabis'}, rarity = 15});
|
||||
end
|
25
helpers.lua
25
helpers.lua
|
@ -29,3 +29,28 @@ function drug_wars.increase_addiction(playername, value)
|
|||
end
|
||||
end
|
||||
|
||||
function drug_wars.drug_damage(playername, value)
|
||||
local changetable = {}
|
||||
changetable["type"] = "punch"
|
||||
player:set_hp(player:get_hp() - value, changetable)
|
||||
end
|
||||
|
||||
function drug_wars.speed_buff(player, value)
|
||||
local current_phy = player:get_physics_override()
|
||||
local new_phy = current_phy
|
||||
new_phy.speed = new_phy.speed + value
|
||||
player:set_physics_override(new_phy)
|
||||
end
|
||||
|
||||
function drug_wars.speed_debuff(player, value, threshold)
|
||||
local current_phy = player:get_physics_override()
|
||||
|
||||
local change_speed = current_phy.speed > threshold
|
||||
if(change_speed) then
|
||||
local new_phy = current_phy
|
||||
new_phy.speed = new_phy.speed - value
|
||||
player:set_physics_override(new_phy)
|
||||
end
|
||||
|
||||
return change_speed
|
||||
end
|
||||
|
|
4
init.lua
4
init.lua
|
@ -7,9 +7,9 @@ drug_wars.addictions = {}
|
|||
|
||||
-- IMPORTS
|
||||
|
||||
dofile(drug_wars.path.."/config.lua")
|
||||
dofile(drug_wars.path.."/helpers.lua")
|
||||
dofile(drug_wars.path.."/aftereffects.lua")
|
||||
dofile(drug_wars.path.."/globalupdates.lua")
|
||||
dofile(drug_wars.path.."/melee.lua")
|
||||
dofile(drug_wars.path.."/pipes.lua")
|
||||
dofile(drug_wars.path.."/cannabis.lua")
|
||||
dofile(drug_wars.path.."/grass.lua")
|
||||
|
|
Loading…
Reference in New Issue