From e449704a92c8c1931fb687e58f095bea27db3ddc Mon Sep 17 00:00:00 2001 From: orwell96 Date: Thu, 2 Jun 2016 14:42:01 +0200 Subject: use real pos-in-train calculation also for trainlen calculation, fix bugs and add damage by trains --- damage.lua | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 damage.lua (limited to 'damage.lua') diff --git a/damage.lua b/damage.lua new file mode 100644 index 0000000..860feaa --- /dev/null +++ b/damage.lua @@ -0,0 +1,23 @@ +--damage.lua +--a globalstep that damages players overrolled by trains. +local tmr=0 +minetest.register_globalstep(function(dtime) + tmr=tmr-dtime + if tmr<=0 then + + for _, player in pairs(minetest.get_connected_players()) do + local pos=player:getpos() + for _, object in pairs(minetest.get_objects_inside_radius(pos, 1)) do + local le=object:get_luaentity() + if le and le.is_wagon and le.initialized and le:train() then + if le.driver~=player and math.abs(le:train().velocity)>2 then + --player:punch(object, 1000, {damage={fleshy=3*math.abs(le:train().velocity)}}) + player:set_hp(player:get_hp()-math.abs(le:train().velocity)-3) + end + end + end + end + + tmr=0.5 + end +end) -- cgit v1.2.3