From 34d891c6c5f315c955badfd429b4a49cbb10097f Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Thu, 21 Mar 2019 01:36:59 +0000 Subject: [PATCH] Add classes --- mods/ctf/ctf_alloc/init.lua | 2 +- mods/ctf/ctf_classes/api.lua | 98 ++++++++++++++++++ mods/ctf/ctf_classes/gui.lua | 75 ++++++++++++++ mods/ctf/ctf_classes/init.lua | 75 ++++++++++++++ mods/ctf/ctf_classes/mod.conf | 2 + .../textures/ctf_classes_knight.png | Bin 0 -> 410 bytes .../textures/ctf_classes_medic.png | Bin 0 -> 582 bytes .../textures/ctf_classes_shooter.png | Bin 0 -> 420 bytes .../ctf_classes_skins_knight_blue.png | Bin 0 -> 7414 bytes .../textures/ctf_classes_skins_knight_red.png | Bin 0 -> 7188 bytes .../textures/ctf_classes_skins_medic_blue.png | Bin 0 -> 7527 bytes .../textures/ctf_classes_skins_medic_red.png | Bin 0 -> 7375 bytes .../ctf_classes_skins_shooter_blue.png | Bin 0 -> 7518 bytes .../ctf_classes_skins_shooter_red.png | Bin 0 -> 7189 bytes .../ctf_map_core/give_initial_stuff.lua | 2 +- mods/ctf/ctf_marker/init.lua | 1 + mods/pvp/gauges/init.lua | 4 +- mods/pvp/hpregen/init.lua | 4 +- 18 files changed, 257 insertions(+), 6 deletions(-) create mode 100644 mods/ctf/ctf_classes/api.lua create mode 100644 mods/ctf/ctf_classes/gui.lua create mode 100644 mods/ctf/ctf_classes/init.lua create mode 100644 mods/ctf/ctf_classes/mod.conf create mode 100644 mods/ctf/ctf_classes/textures/ctf_classes_knight.png create mode 100644 mods/ctf/ctf_classes/textures/ctf_classes_medic.png create mode 100644 mods/ctf/ctf_classes/textures/ctf_classes_shooter.png create mode 100644 mods/ctf/ctf_classes/textures/ctf_classes_skins_knight_blue.png create mode 100644 mods/ctf/ctf_classes/textures/ctf_classes_skins_knight_red.png create mode 100644 mods/ctf/ctf_classes/textures/ctf_classes_skins_medic_blue.png create mode 100644 mods/ctf/ctf_classes/textures/ctf_classes_skins_medic_red.png create mode 100644 mods/ctf/ctf_classes/textures/ctf_classes_skins_shooter_blue.png create mode 100644 mods/ctf/ctf_classes/textures/ctf_classes_skins_shooter_red.png diff --git a/mods/ctf/ctf_alloc/init.lua b/mods/ctf/ctf_alloc/init.lua index e565a20..f1449b1 100644 --- a/mods/ctf/ctf_alloc/init.lua +++ b/mods/ctf/ctf_alloc/init.lua @@ -126,6 +126,6 @@ function ctf_alloc.set_all() give_initial_stuff(player) end - player:set_hp(20) + player:set_hp(player:get_properties().hp_max) end end diff --git a/mods/ctf/ctf_classes/api.lua b/mods/ctf/ctf_classes/api.lua new file mode 100644 index 0000000..ebcb037 --- /dev/null +++ b/mods/ctf/ctf_classes/api.lua @@ -0,0 +1,98 @@ +function ctf_classes.register(cname, def) + assert(not ctf_classes.__classes[cname]) + def.name = cname + ctf_classes.__classes[cname] = def + table.insert(ctf_classes.__classes_ordered, def) + + def.max_hp = def.max_hp or 20 + def.speed = def.speed or 1 + def.pros = def.pros or {} + def.cons = def.cons or {} +end + +function ctf_classes.set_skin(player, color, class) + player:set_properties({ + textures = {"ctf_classes_skins_" .. class.name .. "_" .. (color or "blue") .. ".png"} + }) +end + +function ctf_classes.get(player) + if type(player) == "string" then + player = minetest.get_player_by_name(player) + end + + local cname = player:get_meta():get("ctf_classes:class") or "knight" + return ctf_classes.__classes[cname] +end + +function ctf_classes.set(player, cname) + assert(type(cname) == "string") + local class = ctf_classes.__classes[cname] + assert(class) + + local meta = player:get_meta() + local old = meta:get("ctf_classes:class") + meta:set_string("ctf_classes:class", cname) + ctf_classes.update(player) + + if old ~= nil and old ~= cname then + local pname = player:get_player_name() + ctf.chat_send_team(ctf.player(pname).team, + minetest.colorize("#ABCDEF", pname .. " is now a " .. class.description)) + end +end + +local function set_max_hp(player, max_hp) + local cur_hp = player:get_hp() + local new_hp = cur_hp + max_hp - player:get_properties().hp_max + player:set_properties({ + hp_max = max_hp + }) + + assert(new_hp <= max_hp) + if cur_hp > max_hp then + player:set_hp(max_hp) + elseif new_hp > cur_hp then + player:set_hp(new_hp) + end +end + +function ctf_classes.update(player) + local class = ctf_classes.get(player) + local color, _ = ctf_colors.get_color(ctf.player(player:get_player_name())) + + set_max_hp(player, class.max_hp) + ctf_classes.set_skin(player, color, class) + physics.set(player:get_player_name(), "ctf_classes:speed", { + speed = class.speed, + }) +end + +local function sqdist(a, b) + local x = a.x - b.x + local y = a.y - b.y + local z = a.z - b.z + return x*x + y*y + z*z +end + +local function get_flag_pos(player) + local tplayer = ctf.player(player:get_player_name()) + if not tplayer or not tplayer.team then + return nil + end + + local team = ctf.team(tplayer.team) + if team and team.flags[1] then + return vector.new(team.flags[1]) + end + return nil +end + +function ctf_classes.can_change(player) + local flag_pos = get_flag_pos(player) + if not flag_pos then + return false + end + + return sqdist(player:get_pos(), flag_pos) < 25 +end diff --git a/mods/ctf/ctf_classes/gui.lua b/mods/ctf/ctf_classes/gui.lua new file mode 100644 index 0000000..93c9d8b --- /dev/null +++ b/mods/ctf/ctf_classes/gui.lua @@ -0,0 +1,75 @@ +function ctf_classes.show_gui(name, player) + player = player or minetest.get_player_by_name(name) + assert(player.get_player_name) + if not ctf_classes.can_change(player) then + minetest.chat_send_player(name, "Move closer to the flag to change classes!") + return + end + + local fs = { + "size[9,3.2]" + } + + + local x = 0 + local y = 0 + for _, class in pairs(ctf_classes.__classes_ordered) do + fs[#fs + 1] = "container[" + fs[#fs + 1] = tostring(x*3) + fs[#fs + 1] = "," + fs[#fs + 1] = tostring(y*3.5) + fs[#fs + 1] = "]" + fs[#fs + 1] = "image[1,-0.1;1,1;ctf_classes_" + fs[#fs + 1] = class.name + fs[#fs + 1] = ".png]" + fs[#fs + 1] = "style[select_" + fs[#fs + 1] = class.name + fs[#fs + 1] = ";bgcolor=" + fs[#fs + 1] = class.color + fs[#fs + 1] = "]" + fs[#fs + 1] = "tableoptions[background=#00000000;highlight=#00000000;border=false]" + fs[#fs + 1] = "tablecolumns[color;text]" + fs[#fs + 1] = "table[0,0.9;2.8,1.7;;" + fs[#fs + 1] = class.color + fs[#fs + 1] = "," + fs[#fs + 1] = minetest.formspec_escape(class.description) + fs[#fs + 1] = ",," + for _, item in pairs(class.pros) do + fs[#fs + 1] = ",#cfc," .. minetest.formspec_escape(item) + end + for _, item in pairs(class.cons) do + fs[#fs + 1] = ",#fcc," .. minetest.formspec_escape(item) + end + fs[#fs + 1] = "]" + fs[#fs + 1] = "button_exit[0.5,2.7;2,1;select_" + fs[#fs + 1] = class.name + fs[#fs + 1] = ";Select]" + fs[#fs + 1] = "container_end[]" + + x = x + 1 + if x > 3 then + x = 0 + y = y + 1 + end + end + + minetest.show_formspec(name, "ctf_classes:select", table.concat(fs)) +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "ctf_classes:select" then + return false + end + + if not ctf_classes.can_change(player) then + minetest.chat_send_player(player:get_player_name(), + "Move closer to the flag to change classes!") + end + + for _, class in pairs(ctf_classes.__classes_ordered) do + if fields["select_" .. class.name] then + ctf_classes.set(player, class.name) + return true + end + end +end) diff --git a/mods/ctf/ctf_classes/init.lua b/mods/ctf/ctf_classes/init.lua new file mode 100644 index 0000000..bd19398 --- /dev/null +++ b/mods/ctf/ctf_classes/init.lua @@ -0,0 +1,75 @@ +ctf_classes = { + __classes = {}, + __classes_ordered = {}, +} + +dofile(minetest.get_modpath("ctf_classes") .. "/api.lua") +dofile(minetest.get_modpath("ctf_classes") .. "/gui.lua") + +ctf_classes.register("knight", { + description = "Knight", + pros = { "+10 HP", "+10% melee skill" }, + cons = { "-10% speed" }, + max_hp = 30, + color = "#ccc", +}) + +ctf_classes.register("shooter", { + description = "Shooter", + pros = { "+10% ranged skill", "Can use sniper rifles", "Can use grapling hooks" }, + cons = {}, + speed = 1.1, + color = "#c60", +}) + +ctf_classes.register("medic", { + description = "Medic", + speed = 1.1, + pros = { "x2 regen for nearby friendlies", "Free bandages" }, + cons = { "Can't capture the flag"}, + color = "#0af", +}) + +minetest.register_on_joinplayer(ctf_classes.update) + +minetest.register_chatcommand("class", { + func = function(name, params) + local player = minetest.get_player_by_name(name) + if not player then + return false, "You must be online to do this!" + end + + if not ctf_classes.can_change(player) then + return false, "Move closer to the flag to change classes!" + end + + local cname = params:trim() + if params == "" then + ctf_classes.show_gui(name) + else + if ctf_classes.__classes[cname] then + ctf_classes.set(player, cname) + return true, "Set class to " .. cname + else + return false, "Class '" .. cname .. "' does not exist" + end + end + end +}) + +ctf_colors.set_skin = function(player, color) + ctf_classes.set_skin(player, color, ctf_classes.get(player)) +end + +local flags = { + "ctf_flag:flag", + "ctf_flag:flag_top_red", + "ctf_flag:flag_top_blue", +} + +for _, flag in pairs(flags) do + local function show(_, _, player) + ctf_classes.show_gui(player:get_player_name(), player) + end + minetest.override_item(flag, { on_rightclick = show }) +end diff --git a/mods/ctf/ctf_classes/mod.conf b/mods/ctf/ctf_classes/mod.conf new file mode 100644 index 0000000..0747762 --- /dev/null +++ b/mods/ctf/ctf_classes/mod.conf @@ -0,0 +1,2 @@ +name = ctf_classes +depends = ctf, ctf_flag, ctf_colors, physics diff --git a/mods/ctf/ctf_classes/textures/ctf_classes_knight.png b/mods/ctf/ctf_classes/textures/ctf_classes_knight.png new file mode 100644 index 0000000000000000000000000000000000000000..54176327fc99b15abf6c0616c12129f575d61be3 GIT binary patch literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pWm85kOx85n;42huMY7)lKo7+xhXFj&oCU=Yur6o1qWsFo?o+ueoXe|!I#{XiaP zfk$L90|Va?5N4dJ%_j{MWH0gbb!C6Z#Ve$*`hJb&d7x0Qr;B5V#`)ff8~K_IcwFLF zd5E4mG;Qkp$IYK=*W8Sl;9lOr=)CaDHtYQ=R_Yr2zgpc|gBTZ@Emdd}<6e#3UUuEUE7zi0JV|KOg`%*`d@tMf%~ z-pP<-526m#{B#M3&bHzeJNAIVqCQC4`hlOk^)j8JLyOdX&G22WQ% Jmvv4FO#mz^gqHvS literal 0 HcmV?d00001 diff --git a/mods/ctf/ctf_classes/textures/ctf_classes_medic.png b/mods/ctf/ctf_classes/textures/ctf_classes_medic.png new file mode 100644 index 0000000000000000000000000000000000000000..901c6cb76c04b80c28c1e54d410ee3163acbe821 GIT binary patch literal 582 zcmV-M0=fN(P)WFU8GbZ8()Nlj2>E@cM*00F8=L_t(I%dL|!ZWKWf zMPK#I&LGydgb;}(4uC{xgouEv00}p6z&crH7DwR%WY~9bMubCTiN#`Px4Y^S^fJ3b zmJ{f#t5yI1`o9|f@z`y}b}psOi#9b0%FOIefbLY9BzW~$nAIj1)C-(nK@P|twm`Pq z{Prn?D(68DT>=LNH-0W*U=m!TaaNepj3ONo72K2}3a!gZOwMAjWt`4@wx>Aykol6P z@2J2Geib-7ugwR&n7uY6as1i2UW$-mA=YJQXP~n74Gh`1S-~=c?;As@#$GSQw}og- z^k%HXh}{u9jN(?e^R`uQL70(Y)*K0-AbW|YuPggqZb=a#<)55w5kMiy64!_l=ltB< z)VvY~=c3falGGH1^30M91$R&1fbd2>aiF6Ao-U3d7N?g^cJw~%Akey>*Y#5O4j;jj zOGUblv+n(>^yJ<7v-%$%8E!hR!zqz2Dg|Riv50m7tdR#C*eHli+t$olOY5$gy$%f7y2m8eY-RVlqIp1Z5;M1; z!0D*lXOrzS7QVk~x!gs?Mn}zNZ!KfN>iv~y=UG({|qup7nA|@QP#qX8z2P`epu^*|V!&>(Dy;^}wKD@O1Ta JS?83{1OWPorVRi9 literal 0 HcmV?d00001 diff --git a/mods/ctf/ctf_classes/textures/ctf_classes_skins_knight_blue.png b/mods/ctf/ctf_classes/textures/ctf_classes_skins_knight_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..76ab60cbaee413afc3e861cd749294e8fee61985 GIT binary patch literal 7414 zcmV zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3&sk|Vitg#Y6dIznOzEXToWrW@$^`W(z+_w<{2 zW>2Q7nIf6Y#1i4*?tymufByTp|KcY-HMnG@=9crrPim=!&YSvtem<}MN%!ylN$*#D z{>yb2e!d7?ioC|p$GqSBJJ;>k1LYmbkH21bWxnIoccAx+p8=z0)@<*6^&KdN&vpNP zcI|zxr{A{o{vXR7;(PO-pHm?i%eWYW3p@Jw@K+Cp$O>YMo!7|U5Cb>qn%>*JUj9CI z?)&zS;MISK-P7MY;$K7Ip8VdB|A^6h-P_;C?ndbM75SgH;jdq;`RwQSpWkA4&Z_6^ z&+dB4L@K*?Q_nlZeaDT1P{#XM=C|;_@xI*O#&2bdlb|oMIryE<3Of{DLzp4nYc-b8!n_Gc`t>Ii(z9HwJKyw`nV09z;2F#- zn}7bgzq|N<`TY)bj-czkf>}SYVqHN1WEskw{&E)y@#l@H-T2;L_f6}sA0;-DLAznD zY_LD$GsH0e3tRE#IdY#p$-U+5%X$YOM9gh0#z!*nWFO6E|CA7l_r$T1pU%odOkt1# zZx)t!hup-NNlp!#n`er@_XZ1}%TNo6u$W^ZH53rZO3A=aNfiurivG6HhvJ@+qgD zcKSDKZ&v@BHUCHE{(aW`n>A%D-TTU~tZ})NpCP>H#FR5K7Lq69MHv9lK{

PbnyK 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 W%LH36fijf<0000 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 literal 0 HcmV?d00001 diff --git a/mods/ctf/ctf_classes/textures/ctf_classes_skins_medic_red.png b/mods/ctf/ctf_classes/textures/ctf_classes_skins_medic_red.png new file mode 100644 index 0000000000000000000000000000000000000000..e701b841c627ff3949d7b55717be84a63f8c9f7e GIT binary patch literal 7375 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 BIko@* literal 0 HcmV?d00001 diff --git a/mods/ctf/ctf_classes/textures/ctf_classes_skins_shooter_blue.png b/mods/ctf/ctf_classes/textures/ctf_classes_skins_shooter_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..1d362d05995f22ed7a2f85800ec8c6611c8c5668 GIT binary patch literal 7518 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 literal 0 HcmV?d00001 diff --git a/mods/ctf/ctf_classes/textures/ctf_classes_skins_shooter_red.png b/mods/ctf/ctf_classes/textures/ctf_classes_skins_shooter_red.png new file mode 100644 index 0000000000000000000000000000000000000000..d6645eb80f7028f87ba1f42b3de3a65592ad7173 GIT binary patch literal 7189 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 literal 0 HcmV?d00001 diff --git a/mods/ctf/ctf_map/ctf_map_core/give_initial_stuff.lua b/mods/ctf/ctf_map/ctf_map_core/give_initial_stuff.lua index 7a313bd..4878616 100644 --- a/mods/ctf/ctf_map/ctf_map_core/give_initial_stuff.lua +++ b/mods/ctf/ctf_map/ctf_map_core/give_initial_stuff.lua @@ -29,7 +29,7 @@ function give_initial_stuff.get_stuff() end minetest.register_on_joinplayer(function(player) - player:set_hp(20) + player:set_hp(player:get_properties().hp_max) give_initial_stuff(player) end) minetest.register_on_respawnplayer(give_initial_stuff) diff --git a/mods/ctf/ctf_marker/init.lua b/mods/ctf/ctf_marker/init.lua index d020602..58b5053 100644 --- a/mods/ctf/ctf_marker/init.lua +++ b/mods/ctf/ctf_marker/init.lua @@ -37,6 +37,7 @@ local function add_marker(name, tname, pos, str) players = {}, time = 0 } + for pname, _ in pairs(team.players) do local tplayer = minetest.get_player_by_name(pname) if tplayer then diff --git a/mods/pvp/gauges/init.lua b/mods/pvp/gauges/init.lua index 3a03494..775b451 100644 --- a/mods/pvp/gauges/init.lua +++ b/mods/pvp/gauges/init.lua @@ -33,8 +33,8 @@ function hp_bar:on_step(dtime) return end - local hp = wielder:get_hp() - local breath = wielder:get_breath() + local hp = math.floor(20 * wielder:get_hp() / wielder:get_properties().hp_max) + local breath = math.floor(20 * wielder:get_breath() / wielder:get_properties().breath_max) self.object:set_properties({ textures = { "health_" .. tostring(hp) .. ".png^breath_" .. tostring(breath) .. ".png", diff --git a/mods/pvp/hpregen/init.lua b/mods/pvp/hpregen/init.lua index 57bffa0..7ef94ab 100644 --- a/mods/pvp/hpregen/init.lua +++ b/mods/pvp/hpregen/init.lua @@ -12,8 +12,8 @@ local function regen_all() local oldhp = player:get_hp() if oldhp > 0 then local newhp = oldhp + regen_amount - if newhp > 20 then - newhp = 20 + if newhp > player:get_properties().hp_max then + newhp = player:get_properties().hp_max end player:set_hp(newhp) end