From 280afde3211c5b74ea364e7e6af2cd4366413648 Mon Sep 17 00:00:00 2001 From: echoes91 Date: Sun, 15 Mar 2015 22:42:02 +0100 Subject: [PATCH] 0.9.8, new damage system and fixed reload bug --- bows.lua | 22 ++++++++++------------ diamond_arrow.lua | 3 ++- obsidian_arrow.lua | 3 ++- shell_arrow.lua | 3 ++- steel_arrow.lua | 3 ++- stone_arrow.lua | 3 ++- textures/throwing_bow_composite.png | Bin 595 -> 646 bytes textures/throwing_bow_steel.png | Bin 510 -> 633 bytes textures/throwing_bow_wood.png | Bin 577 -> 584 bytes 9 files changed, 20 insertions(+), 17 deletions(-) diff --git a/bows.lua b/bows.lua index 2bce3ab..bac8893 100644 --- a/bows.lua +++ b/bows.lua @@ -9,16 +9,14 @@ minetest.register_on_joinplayer(function(player) end) local throwing_shoot_arrow = function(itemstack, player) - local playername = player:get_player_name() - if minetest.get_player_privs(playername).throw then - local privs = minetest.get_player_privs(playername) - privs.throw = nil - minetest.chat_send_player(playername, tostring(privs.throw)) - minetest.set_player_privs(playername, privs) - local privs = minetest.get_player_privs(playername) - minetest.chat_send_player(playername, tostring(privs.throw)) - for _,arrow in ipairs(arrows) do - if player:get_inventory():get_stack("main", player:get_wield_index()+1):get_name() == arrow[1] then + for _,arrow in ipairs(arrows) do + if player:get_inventory():get_stack("main", player:get_wield_index()+1):get_name() == arrow[1] then + local playername = player:get_player_name() + if minetest.get_player_privs(playername).throw then + local privs = minetest.get_player_privs(playername) + privs.throw = nil + minetest.set_player_privs(playername, privs) + local privs = minetest.get_player_privs(playername) if not minetest.setting_getbool("creative_mode") then player:get_inventory():remove_item("main", arrow[1]) end @@ -109,7 +107,7 @@ if not disable_wooden_bow then }) end -if not disable_golden_bow then -- To become longbow soon +if not disable_golden_bow then -- To be changed soon minetest.register_tool("throwing:bow_gold", { description = "Golden Bow", inventory_image = "throwing_bow_gold.png", @@ -192,7 +190,7 @@ if not disable_steel_bow then wield_scale = {x=1, y=1, z=0.5}, stack_max = 1, on_use = function(itemstack, user, pointed_thing) - stiffness = 19 + stiffness = 20 reload = 1.6 if throwing_shoot_arrow(itemstack, user, pointed_thing) then reloading(user) diff --git a/diamond_arrow.lua b/diamond_arrow.lua index b088a1e..b931d28 100644 --- a/diamond_arrow.lua +++ b/diamond_arrow.lua @@ -49,7 +49,8 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) for k, obj in pairs(objs) do if obj:get_luaentity() ~= nil then if obj:get_luaentity().name ~= "throwing:arrow_diamond_entity" and obj:get_luaentity().name ~= "__builtin:item" then - local damage = 5 + local speed = vector.length(self.object:getvelocity()) + local damage = ((speed + 10)^1.2)/10 obj:punch(self.object, 1.0, { full_punch_interval=1.0, damage_groups={fleshy=damage}, diff --git a/obsidian_arrow.lua b/obsidian_arrow.lua index 262b839..db26542 100644 --- a/obsidian_arrow.lua +++ b/obsidian_arrow.lua @@ -49,7 +49,8 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) for k, obj in pairs(objs) do if obj:get_luaentity() ~= nil then if obj:get_luaentity().name ~= "throwing:arrow_obsidian_entity" and obj:get_luaentity().name ~= "__builtin:item" then - local damage = 6 + local speed = vector.length(self.object:getvelocity()) + local damage = ((speed + 15)^1.2)/10 obj:punch(self.object, 1.0, { full_punch_interval=1.0, damage_groups={fleshy=damage}, diff --git a/shell_arrow.lua b/shell_arrow.lua index 399a235..5a3afa9 100644 --- a/shell_arrow.lua +++ b/shell_arrow.lua @@ -79,7 +79,8 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) for k, obj in pairs(objs) do if obj:get_luaentity() ~= nil then if obj:get_luaentity().name ~= "throwing:arrow_shell_entity" and obj:get_luaentity().name ~= "__builtin:item" then - local damage = 16 + local speed = vector.length(self.object:getvelocity()) + local damage = ((speed + 5)^1.2)/10 + 12 obj:punch(self.object, 1.0, { full_punch_interval=1.0, damage_groups={fleshy=damage}, diff --git a/steel_arrow.lua b/steel_arrow.lua index 6e12da6..a4d2eb0 100644 --- a/steel_arrow.lua +++ b/steel_arrow.lua @@ -49,7 +49,8 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) for k, obj in pairs(objs) do if obj:get_luaentity() ~= nil then if obj:get_luaentity().name ~= "throwing:arrow_steel_entity" and obj:get_luaentity().name ~= "__builtin:item" then - local damage = 3 + local speed = vector.length(self.object:getvelocity()) + local damage = ((speed + 5)^1.2)/10 obj:punch(self.object, 1.0, { full_punch_interval=1.0, damage_groups={fleshy=damage}, diff --git a/stone_arrow.lua b/stone_arrow.lua index 4d94d8e..66d522b 100644 --- a/stone_arrow.lua +++ b/stone_arrow.lua @@ -49,7 +49,8 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) for k, obj in pairs(objs) do if obj:get_luaentity() ~= nil then if obj:get_luaentity().name ~= "throwing:arrow_stone_entity" and obj:get_luaentity().name ~= "__builtin:item" then - local damage = 1.5 + local speed = vector.length(self.object:getvelocity()) + local damage = ((speed)^1.2)/10 obj:punch(self.object, 1.0, { full_punch_interval=1.0, damage_groups={fleshy=damage}, diff --git a/textures/throwing_bow_composite.png b/textures/throwing_bow_composite.png index bf9658c06214d918f44812b95c61a49c37cc8792..88a085e4eed491b921a299af66dbfc880cd7d223 100644 GIT binary patch delta 574 zcmV-E0>S;$1cn8WQ-2Q=6d7dN3}65N0uxC@K~y-)ZIZof6j2n#e|Iv2F$?KaB!yyN zrWIsSAuwc!on4fS$*?#d z*J7N>Y?23$_lkSYJ@=d|stSPPIC!2%vubhs^+%?rrT|!(6Mrhh=t&=bpHQ6bJsSYY z2`(b}{{9Ytx{DpQUR(j78z2BTX6gWnYIfr|Mpd!xjJa90c>4_PbUL~;i|Q{>AC3=T zbG6RqYF$cKF zT?l?4qnM^i?pYK?S?lE*Mb6Etg{ltZtg74v?g3A2qafJX*~vyJ)-#5eU!!xKlLS7g zGJY*9t6i01gjTDSdC(1zlQ7$`G8iCD!8Ego=O=~#-eFl5uInO8vuHO!^4-qCB2q+E zUbONHU^i^<*_;LE29-_AT`z+Hj6B9iGwX$H!!YRg`$b`HX8tdqf66#Sjm{sMbpQYW M07*qoM6N<$g845D)Bpeg delta 523 zcmV+m0`&cc1=9qOQ-2N@Bm?i`^W8SdRh*MAfEb4^j-epvu2`HLh; zu-3A7Hsj~+b9%iVpWb9}{LU5d`4#5;3bXq*CP@;5BqZUzM-tX%$_Mo-CoSZh)BYyX z1?V@72JrbqTRB$<%vUZl91fKviADp^1$4XJ5?m64RYT<_{MBleIF4a| z6SW)5ZUb3RZfZU&`BM^DYjvC3i{N~f8s%vl4Jbu)GMSV1945y8SgAP^<2osBFgY=X!dOJxz>szY!- zj>Tlhon0S19z5>3=iGA-l8{6gh5~3+JvyBZqyP0a7z_sL_ka89cDu#(eP6!s%SZxX zd3jk23k&S*?3h;7tM>;Q4u@E40cbZX2H?y}9Y6(Bk|YE{pm8PR%=!WP z4!`zcbED4YMqQF96c}Rw2!fzc((m_Wtz~JkV&>-I?S~FuKfVIc&BkK`;Ba_GjZXi3 zZ>+V1VJK@Y?SE#))K4BEKK5q{oTh16fg~C=!?z)Pi33GZM6cH~0M8#cO5h|(a9tNS zO;cuOW@uGC9^EqRCZTL>iK2+J*{;blc=5C`#XM?Y*4JR}C?&U7S64ZwJ+r?jZfw*` zU`b?IhU4VZyHEzVn-$aRW*B|}^FMlmo%<-Z3U+@((kL$XH*>N1_ z?vL-eRrQcm+Os4s0+)c>zEd>V+SKG33&&BuwYAfD%}ayK^PW<5W9Epak0L4|LlQf*`M#s zoSC^uLK36VNC4NveUc=>zrUHldcD?ixzu8@2$wNN#u$Yk2Y-Ws+9JO%x^O&(cnp7j z#gar2u-0}&>adB2E6@`pNz#BD0$$|%$4bPPJmG*W%Q~>NwpoEB z;xU{IOA%vC0NQY#=SZSo6a~FrkL%$+KhGi_?MP{!vfXa^>>eZM;NRV)PA_jGZ?h;0 zthMy}eYly>>3_B{Mn6799789wa}H}Q&N-ZObmkn7D_d;9lb0QTaT1Uw(?Bh}mog z-gkS$D&N(Jza7EZhf-)hpO@8mfzF0OxhOAD-xYtC1TMxHz1HnESdT^`zipdU^I+|E fJKA>Iuq2)VkK!u#@Kam=00000NkvXXu0mjfi>ua# diff --git a/textures/throwing_bow_wood.png b/textures/throwing_bow_wood.png index 9b0e2263131c9fb4c27d26ee3da5fcd09fc9836a..cb1944e3ca7b11991f1fbc0596bd76b2bd65523b 100644 GIT binary patch delta 511 zcmVG$ zVPPi-hbCni0ddD>uNqL=u777+u=y^7F+E@fDyJ$eGSPBNQuuw@ODI!l29=C7b zSggBwx!g3n#eB0fzxl1GD%E&&=>V4>zoXG;0Iw=SAcnVlpz2YR$BlX3k0~@$?@|x!uMYw6fl{>o3|dm-QE!s0Au16RpszmOMo}G z{Hq_oe&FYqPJ{uHDg>~x4DA)+^DlHf@h!Jb9mF2mU4Wf)GYv!pRi(Wm{LY}BqPc}m zUj^XRPJ0e6ihlxQ42g3NfQJ`Tw%3KJMFV_vjFjaf?3|-03jgraHCU=Mr}kh7$Nq@? z_@>-?)|!J=m9i{J5>Gb_rdtbKJlBQ`K86c^eWOEBSk)`{>*W?Jsm?*Zj z))%Pm`N_?cyZzk-_^JqwzuY-z5D|^_3QdsR-J@o8(PC63VT zcD)9p44F*f}0Tz+C>!5z{N;m(0y}tT9ww)vid7j5aRh_$6;~$=eB5-jgg6seQ002ovPDHLkV1mJ3 B@u>g+ delta 504 zcmV