From b3abdac5a8e9423fea3f7d510981a70904c60b10 Mon Sep 17 00:00:00 2001 From: FreeLikeGNU Date: Sun, 6 Sep 2015 10:02:57 -0700 Subject: [PATCH] Goblins make traps! --- README.md | 1 + api.lua | 23 +++++- goblin_traps.lua | 140 +++++++++++++++++++++++++++++++++ goblins.lua | 30 +++++-- init.lua | 2 +- sounds/goblins_goblin_pick.ogg | Bin 0 -> 30208 bytes 6 files changed, 183 insertions(+), 13 deletions(-) create mode 100644 goblin_traps.lua create mode 100644 sounds/goblins_goblin_pick.ogg diff --git a/README.md b/README.md index 134e965..5ea8f77 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ http://creativecommons.org/licenses/by-sa/3.0/ * Sound files by: * artisticdude http://opengameart.org/content/goblins-sound-pack CC0-license * Ogrebane http://opengameart.org/content/monster-sound-pack-volume-1 CC0-license + * spookymodem http://opengameart.org/content/mining-pick CC-BY 3.0 * Thanks to Napiophelios for the goblin king skin https://forum.minetest.net/viewtopic.php?f=9&t=13004#p186921 diff --git a/api.lua b/api.lua index 4589d0f..7f41ee4 100644 --- a/api.lua +++ b/api.lua @@ -77,6 +77,9 @@ function mobs_goblins:register_mob(name, def) -- what nodes will be replaced? replace_what = def.replace_what, replace_with = def.replace_with, + -- or maybe something different? + replace_rate_secondary = def.replace_rate_secondary or 0, + replace_with_secondary = def.replace_with_secondary or def.replace_with, timer = 0, env_damage_timer = 0, -- only if state = "attack" attack = {player=nil, dist=nil}, @@ -249,10 +252,22 @@ function mobs_goblins:register_mob(name, def) for key,value in pairs(nodelist) do -- ok we see some nodes around us, are we going to replace them? if math.random(1,self.replace_rate) == 1 then - if self.debugging_goblins == true then - print(self.replace_with.." placed") - end - minetest.set_node(value, {name = self.replace_with}) + minetest.after(.1, function() + if math.random(1,self.replace_rate_secondary) == 1 then + minetest.set_node(value, {name = self.replace_with_secondary}) + else + minetest.set_node(value, {name = self.replace_with}) + end + if self.debugging_goblins == true then + print(self.replace_with.." placed") + end + minetest.sound_play(self.sounds.replace, { + object = self.object, + max_hear_distance = self.sounds.distance }) + end) + + + --wait self.replace_delay end end end diff --git a/goblin_traps.lua b/goblin_traps.lua new file mode 100644 index 0000000..28071b4 --- /dev/null +++ b/goblin_traps.lua @@ -0,0 +1,140 @@ +--[[some nasty things goblins can do]] + + + +minetest.register_node("mobs_goblins:mossycobble_trap", { + description = "Messy Gobblestone", + tiles = {"default_mossycobble.png"}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("mobs_goblins:stone_with_coal_trap", { + description = "Iron Gore", + tiles = {"default_cobble.png^default_mineral_coal.png"}, + groups = {cracky = 1, level = 2}, + drop = 'default:iron_lump', + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("mobs_goblins:stone_with_iron_trap", { + description = "Iron Gore", + tiles = {"default_cobble.png^default_mineral_iron.png"}, + groups = {cracky = 1, level = 2}, + drop = 'default:iron_lump', + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("mobs_goblins:stone_with_gold_trap", { + description = "Gold Gore", + tiles = {"default_cobble.png^default_mineral_gold.png"}, + groups = {cracky = 1,level = 2}, + drop = 'default:gold_lump', + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("mobs_goblins:stone_with_diamond_trap", { + description = "Diamond Gore", + tiles = {"default_cobble.png^default_mineral_diamond.png"}, + groups = {cracky = 1, level = 3}, + drop = 'default:diamond', + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), +}) + + + +--[[ too bad we can't keep track of what physics are set too by other mods...]] +minetest.register_abm({ + nodenames = {"mobs_goblins:mossycobble_trap"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + --pos.y =pos.y-0.4 + for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 15.1/16)) do -- IDKWTF this is but it works + if object:is_player() then + --player_speed = object:get_physics_override({speed}) -- this can get out of control + object:set_physics_override({speed = .1}) + minetest.after(1, function() -- this effect is temporary + object:set_physics_override({speed = 1}) -- we'll just set it to 1 and be done. + end) + end + end + end}) +--[[ based on dwarves cactus]] +minetest.register_abm({ + nodenames = {"mobs_goblins:stone_with_coal_trap"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + --pos.y =pos.y-0.4 + for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 2)) do--1.3 + if object:is_player() then + if object:get_hp() > 0 then + object:set_hp(object:get_hp()-1) + minetest.sound_play("default_dig_crumbly", {pos = pos, gain = 0.5, max_hear_distance = 10}) + end + end + --elseif not object:is_player() and object:get_hp() == 0 and object:get_luaentity().name ~= "__builtin:item" then + -- object:remove() + --end + end + end}) + +minetest.register_abm({ + nodenames = {"mobs_goblins:stone_with_iron_trap"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + --pos.y =pos.y-0.4 + for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 2)) do--1.3 + if object:is_player() then + if object:get_hp() > 0 then + object:set_hp(object:get_hp()-1) + minetest.sound_play("default_dig_crumbly", {pos = pos, gain = 0.5, max_hear_distance = 10}) + end + end + --elseif not object:is_player() and object:get_hp() == 0 and object:get_luaentity().name ~= "__builtin:item" then + -- object:remove() + --end + end + end}) +minetest.register_abm({ + nodenames = {"mobs_goblins:stone_with_gold_trap"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + --pos.y =pos.y-0.4 + for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 2)) do--1.3 + if object:is_player() then + if object:get_hp() > 0 then + object:set_hp(object:get_hp()-2) + minetest.sound_play("default_dig_crumbly", {pos = pos, gain = 0.5, max_hear_distance = 10}) + end + end + --elseif not object:is_player() and object:get_hp() == 0 and object:get_luaentity().name ~= "__builtin:item" then + -- object:remove() + --end + end + end}) + +minetest.register_abm({ + nodenames = {"mobs_goblins:stone_with_diamond_trap"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + --pos.y =pos.y-0.4 + for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 2)) do--1.3 + if object:is_player() then + if object:get_hp() > 0 then + object:set_hp(object:get_hp()-2) + minetest.sound_play("default_dig_crumbly", {pos = pos, gain = 0.5, max_hear_distance = 10}) + end + end + --elseif not object:is_player() and object:get_hp() == 0 and object:get_luaentity().name ~= "__builtin:item" then + -- object:remove() + --end + end + end}) diff --git a/goblins.lua b/goblins.lua index 6e2a99d..970cdaf 100644 --- a/goblins.lua +++ b/goblins.lua @@ -1,4 +1,4 @@ - + -- Npc by TenPlus1 converted for FLG Goblins :D mobs_goblins.goblin_drops = { @@ -31,6 +31,7 @@ mobs_goblins:register_mob("mobs_goblins:goblin_cobble", { attack = "goblins_goblin_attack", damage = "goblins_goblin_damage", death = "goblins_goblin_death", + replace = "goblins_goblin_pick", distance = 15, }, walk_velocity = 2, @@ -59,6 +60,8 @@ mobs_goblins:register_mob("mobs_goblins:goblin_cobble", { replace_rate = 5, replace_what = {"default:stone","default:desert_stone","default:torch"}, replace_with = "default:mossycobble", + replace_rate_secondary = 3, + replace_with_secondary = "mobs_goblins:mossycobble_trap", view_range = 15, owner = "", @@ -149,6 +152,7 @@ mobs_goblins:register_mob("mobs_goblins:goblin_digger", { attack = "goblins_goblin_attack", damage = "goblins_goblin_damage", death = "goblins_goblin_death", + replace = "goblins_goblin_pick", distance = 15, }, walk_velocity = 2, @@ -269,6 +273,7 @@ mobs_goblins:register_mob("mobs_goblins:goblin_coal", { attack = "goblins_goblin_attack", damage = "goblins_goblin_damage", death = "goblins_goblin_death", + replace = "goblins_goblin_pick", distance = 15, }, walk_velocity = 2, @@ -296,7 +301,8 @@ mobs_goblins:register_mob("mobs_goblins:goblin_coal", { replace_rate = 5, replace_what = {"default:torch","default:stone_with_coal","default:stone", "default:dessert_stone"}, replace_with = "air", - + replace_rate_secondary = 3, --or maybe just set a nasty trap + replace_with_secondary = "mobs_goblins:stone_with_coal_trap", view_range = 15, owner = "", order = "follow", @@ -387,6 +393,7 @@ mobs_goblins:register_mob("mobs_goblins:goblin_iron", { attack = "goblins_goblin_attack", damage = "goblins_goblin_damage", death = "goblins_goblin_death", + replace = "goblins_goblin_pick", distance = 15, }, walk_velocity = 2, @@ -413,7 +420,9 @@ mobs_goblins:register_mob("mobs_goblins:goblin_iron", { search_offset_above = 2, replace_rate = 5, replace_what = {"default:torch","default:stone_with_iron", "default:stone", "default:dessert_stone"}, - replace_with = "air", + replace_with = "air", --steal outright + replace_rate_secondary = 3, --or maybe just set a nasty trap + replace_with_secondary = "mobs_goblins:stone_with_iron_trap", view_range = 15, owner = "", @@ -505,6 +514,7 @@ mobs_goblins:register_mob("mobs_goblins:goblin_gold", { attack = "goblins_goblin_attack", damage = "goblins_goblin_damage", death = "goblins_goblin_death", + replace = "goblins_goblin_pick", distance = 15, }, walk_velocity = 2, @@ -532,7 +542,8 @@ mobs_goblins:register_mob("mobs_goblins:goblin_gold", { replace_rate = 5, replace_what = {"default:torch","default:stone_with_gold", "default:stone", "default:dessert_stone"}, replace_with = "air", - + replace_rate_secondary = 4, --or maybe just set a nasty trap + replace_with_secondary = "mobs_goblins:stone_with_gold_trap", view_range = 15, owner = "", order = "follow", @@ -623,6 +634,7 @@ mobs_goblins:register_mob("mobs_goblins:goblin_diamond", { attack = "goblins_goblin_attack", damage = "goblins_goblin_damage", death = "goblins_goblin_death", + replace = "goblins_goblin_pick", distance = 15, }, walk_velocity = 2, @@ -650,7 +662,8 @@ mobs_goblins:register_mob("mobs_goblins:goblin_diamond", { replace_rate = 5, replace_what = {"default:torch","default:stone_with_diamond", "default:stone", "default:dessert_stone"}, replace_with = "air", - + replace_rate_secondary = 3, --or maybe just set a nasty trap + replace_with_secondary = "mobs_goblins:stone_with_diamond_trap", view_range = 15, owner = "", order = "follow", @@ -740,6 +753,7 @@ mobs_goblins:register_mob("mobs_goblins:goblin_king", { attack = "goblins_goblin_attack", damage = "goblins_goblin_damage", death = "goblins_goblin_death", + replace = "goblins_goblin_pick", distance = 15, }, walk_velocity = 2, @@ -766,7 +780,7 @@ mobs_goblins:register_mob("mobs_goblins:goblin_king", { search_offset_above = 2, replace_rate = 5, replace_what = {"default:torch", "group:stone"}, - replace_with = "default:mossycobble", + replace_with = "default:mossycobble_trap", view_range = 15, owner = "", @@ -836,8 +850,8 @@ mobs_goblins:register_mob("mobs_goblins:goblin_king", { -- spawn at or below 0 near ore and dungeons and goblin lairs (areas of mossy cobble), except diggers that will dig out caves from stone and cobble goblins who create goblin lairs near stone. --function mobs_goblins:register_spawn(name, nodes, max_light, min_light, chance, active_object_count, max_height) -mobs_goblins:register_spawn("mobs_goblins:goblin_cobble", {"group:stone"}, 100, 0, 20, 3, 0) -mobs_goblins:register_spawn("mobs_goblins:goblin_digger", {"group:stone"}, 100, 0, 20, 3, 0) +mobs_goblins:register_spawn("mobs_goblins:goblin_cobble", {"group:stone"}, 100, 0, 20, 4, 0) +mobs_goblins:register_spawn("mobs_goblins:goblin_digger", {"group:stone"}, 100, 0, 20, 4, 0) mobs_goblins:register_spawn("mobs_goblins:goblin_coal", {"default:stone_with_coal"}, 100, 0, 1, 3, 0) mobs_goblins:register_spawn("mobs_goblins:goblin_iron", {"default:stone_with_iron"}, 100, 0, 1, 3, 0) mobs_goblins:register_spawn("mobs_goblins:goblin_gold", {"default:stone_with_gold" }, 100, 0, 1, 2, 0) diff --git a/init.lua b/init.lua index 022c54b..8d68389 100644 --- a/init.lua +++ b/init.lua @@ -4,7 +4,7 @@ local path = minetest.get_modpath("mobs_goblins") dofile(path.."/api.lua") dofile(path.."/goblins.lua") -- TenPlus1 and FreeLikeGNU - +dofile(path.."/goblin_traps.lua") --if minetest.setting_get("log_mods") then minetest.log("action", "GOBLINS is lowdids!") diff --git a/sounds/goblins_goblin_pick.ogg b/sounds/goblins_goblin_pick.ogg new file mode 100644 index 0000000000000000000000000000000000000000..670f1d7649444b834789bc32ba8569a2a1e8b07b GIT binary patch literal 30208 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
  • E!{8llA>79*I+0<)Mb0WIg1&f%lBuFFz@hY3Al_{%$`YIot6`aeLYS zuT;>US3aAUKq)K)@+0K(zlk|N_W!Z;;~q8c>Tj#wT9V+K+a^0XX!2v_InHel2&-Je zg)_48p⪯4KMopls(OKm-6@gu9s~kO06LK5i|PW-yi|`s}MEdZ5d)wYWZvY1`z% z^%GWUwqjlzcG(1}txZ?LNrTg5rYAS2tw?j%>TBDRrs2A&O}Gq2W4e?W^i7g#6R=zI zEE?gEwV#F)Wl22!u>R)Dv&trs&`w<)y2CdYmUKMyndD8VhLe{4o3Fd`q187z503M# zyWSgdZC>n>*0|aUjH#~*CcbpM67QNz)_)gfmc%QI;Wx7PSEGT^Cez-|VBhWDE_|4_ zZSu5Qq3}6-RL}cp%?!M6SCmDj6ntO&KZZLccs|e5?CMm3I#;DZWvCUL|WlXRs?j@CAAOHv409ybxm>tE1vS%I*EqU_fH7u>ntW zFzjI+LFIm4)MowTt^6xP_jf-ad$!#9w_mN+waM5=gEXPOov|CAd?$QXI`{J;{G4K_ zPTx0P(QXGUAEegiWv=MH@a0Dg;cp$+q92udoL*TyqwvB#?`$@LcW*5&8Q;?a@iu;D zhxL(`M)$34+5VfYWz@JM^jNAtIzcvcgsoO%7#Xj6TjAbV9hSI-2B_X3=X;W634kW~quQ#Jh$S8eP z`)Nq8+B)->dSf}`7t_h07K4FHViSZ<8~pXj;RW7LJ4{aq^^;qhP-wbyAB||W>Fw55 z`lWMml44L~Z9>xTSQf*@lGWJO*20%+Y|?h;a11%52VbOR5l-kAgCL(K5>JCBJ%>X( z^PV}p+aY~Cmag*Q$7x^;j}Nv(jy=b{^n-;x9mH$%eneF?H0P}t4u{jB`t9A`_}m1x z!Kq41)kCT~9zu;mKhJUKXftemdhN7_=1z2On!KT7)JuVg0;?9k$*nEb`jnKGLcF|a z?YB+auX{~BRLg#ob|}y9i%;E{LfvXQ=O+ifZ{?pgCB&*sI#B+kzZnw00aT^%%~+;>t>wC08yKL6j{ey8EpfA^_yv3LinFWmY> zhM747G_xLz$<7muL_lgIPX%6tyQDREfr?4yn3nV_X}$Hs663mW@(`K|tdp?@8Wqs;f`I=P5?#H&} z%%?heM>?`85HWz!T1?zc8-qrww?J}PyL9rBCm?Yurh4pT;+w4?kZM$Gl(xL`NDcWs^{wZ*)X^sHex-!?QJHgf*L&H!)Vxn4?_UZOfm;c%G zzp+LV!l~1x!+!Pp^3{)TTbe#jDe-CYiAZ-i>c!tN$oWbbob=ac^+u%W-8>3~B}yN* zH*6k%b-LuU9*Nm4rVmG8#MIiM&*MA8eE0ON@vcV+8e`#~+KvagD(Zc;YC80$)lNLE z5x-_inH8tO)CZ7yqLb3{^wRXfOKbj4cLT5FJGQcNvgp{E-h#`*!a{H3CbQP!E8J)I zESPhzk1w1YY_dZ{0VZ_)MrX=_y3rP~bgCr$U*~oOU1!5X;?%FaTr-QcuTVLXs_FZ7 z(=g!nXOQwl4_8vJO7cfq`%St(ljCid`o>?i1x%*A`r3N>@nU=Q{KV4H@9Tx1S(&B$ zh46C-SLgh2n*y5S@{*g?1M;eHYd0%0D(#doxt<(n- zvfbWYz5E#O&cEWZ4{cRp=Pu@pQ`TX1qk>he|4pZS^3p6Ge%=;iXY)OuNAyA6Kiq=9 z?2>cvvm4h=ZEp$5hR3#@pCOAz@;l7#7;zXAt!C?8 z{8$%$lzZqUPyoPr)~pJe^u)7m;hNNwp|M>9^$zClr5a}M-khaP9yFt?@~Xf(Sn{z& zC>qn-&V{S{++f!5!_%debZc_N2yGHiwo=6y@8pCQ(-dp>gs#uy%XVluzp+dQ{fdRHsjnDqQ}fJe zFw|0GD~`08wt3NQj*7W!F?MP!)(_@UKj&C))iP)v`l~W`8?!L$D~If2kNR7`-rcQH z{c&2c_2>T#j*Cp+R>Z*co z#b1owo!i?`w+^>Z9|pJIJclld4(>F!UQ`QdpzQs>XVsmR{^h*9D^|@0&-%eN=jT>o zR#jXvU-FNX`Lk-h7}MSQSbyxhc=UMVjK@t+?%2Yr*UVnj&Az+EcP*E@ygj3y zbFUwYHG6-OTHmd=;`JNLwZD%KUJ@t5n*YO70^xLoE}OLEWQ5h$e51RGOj3{j5C5CR z$?j3>9g5k_mVTwrA7MbR1qt72dfMjX?Vqo@Z2#v@5=-tl5`SyuiRIJ&HTtolla?>n z%K7Q@R;6+?CmPY`e_MgNBG4`s}CczscvH>r>g4-Eso$GKQ=s)@2!6c>zEI z-jjRzn34su3C?G_KRq02PM)4k_q)P%vg{+fZr(OVrcRb8CuL-Zi7}3hh3n+Gv-|h& z-~U7H%K6nF}cj|8uGR%{^f)-ydqwMqBOk7!U#mzy}u6(0}2wyjn$Vd zO?$chD|DWuyKjGIuA46{)hLlX+1+alK3-AR`%kYxi6WuAAKKKxoO1x+92i^c09*ne z?%A{Frg!e8NV)y?ckZP!NJ_A1^9TN(A3C0!H+f3Vmr$aZrPI%>A~@K2)7ofv44yyr z%rh&R`uw-P?96)ph5zpy1R!Z@qCcttmr@SNPyfF!dv+U=Qpz+A p2QDRd@gRWhKHc8y=Yf#qrqjE#48R-!xx**o+t*(^{C*wa697JAR!0B; literal 0 HcmV?d00001