Removing skills when match ends
This commit is contained in:
parent
68b88c715c
commit
57ad79ac20
@ -20,4 +20,8 @@ function fbrawl.out_of_match_operations(pl_name)
|
||||
|
||||
arena_lib.HUD_hide("broadcast", pl_name)
|
||||
arena_lib.HUD_hide("hotbar", pl_name)
|
||||
|
||||
for skill_name, def in pairs(skillz.get_registered_skills("fbrawl")) do
|
||||
pl_name:remove_skill(skill_name)
|
||||
end
|
||||
end
|
@ -71,7 +71,7 @@ function append_slot_texture_and_change_pointer(arena, skill, pl_name, slots, i,
|
||||
|
||||
local pointer_hud = fbrawl.get_hud(pl_name, "status_pointer")
|
||||
local pointer_hud_table = player:hud_get(pointer_hud)
|
||||
|
||||
local slot_color
|
||||
local remaining_recharge_seconds = 0
|
||||
local wielded_idx = player:get_wield_index()
|
||||
|
||||
@ -91,46 +91,32 @@ function append_slot_texture_and_change_pointer(arena, skill, pl_name, slots, i,
|
||||
end
|
||||
end
|
||||
|
||||
-- appends a yellow or red slot to slots and change the pointer HUD
|
||||
-- yellow
|
||||
if remaining_recharge_seconds > 0 and remaining_recharge_seconds <= max_yellow_recharge_seconds then
|
||||
if i == 1 then -- the item with the double skill
|
||||
table.insert(slots, "fbrawl_slot_yellow_1_"..side..".png")
|
||||
if not string.find(pointer_hud_table.text, "fbrawl_pointer_yellow_") then
|
||||
player:hud_change(pointer_hud, "text", pointer_hud_table.text .."^fbrawl_pointer_yellow_"..side..".png")
|
||||
end
|
||||
|
||||
if wielded_idx == 1 then
|
||||
selected_slot_texture = selected_slot_texture.."^fbrawl_slot_yellow_"..side..".png"
|
||||
end
|
||||
else
|
||||
if wielded_idx == i then
|
||||
selected_slot_texture = selected_slot_texture.."^fbrawl_slot_yellow.png"
|
||||
end
|
||||
table.insert(slots, "fbrawl_slot_yellow_"..i..".png")
|
||||
end
|
||||
|
||||
-- red
|
||||
slot_color = "yellow"
|
||||
elseif remaining_recharge_seconds > max_yellow_recharge_seconds then
|
||||
if i == 1 then
|
||||
table.insert(slots, "fbrawl_slot_red_1_"..side..".png")
|
||||
if not string.find(pointer_hud_table.text, "fbrawl_pointer_red_") then
|
||||
player:hud_change(pointer_hud, "text", pointer_hud_table.text .."^fbrawl_pointer_red_"..side..".png")
|
||||
end
|
||||
|
||||
if wielded_idx == 1 then
|
||||
selected_slot_texture = selected_slot_texture.."^fbrawl_slot_red_"..side..".png"
|
||||
end
|
||||
else
|
||||
if wielded_idx == i then
|
||||
selected_slot_texture = selected_slot_texture.."^fbrawl_slot_red.png"
|
||||
end
|
||||
table.insert(slots, "fbrawl_slot_red_"..i..".png")
|
||||
slot_color = "red"
|
||||
end
|
||||
|
||||
-- appends a yellow or red slot to slots and change the pointer HUD
|
||||
if i == 1 and slot_color then -- the item with the double skill
|
||||
table.insert(slots, "fbrawl_slot_"..slot_color.."_1_"..side..".png")
|
||||
|
||||
if not string.find(pointer_hud_table.text, "fbrawl_pointer_"..slot_color) then
|
||||
player:hud_change(pointer_hud, "text", pointer_hud_table.text .."^fbrawl_pointer_"..slot_color.."_"..side..".png")
|
||||
end
|
||||
|
||||
if wielded_idx == 1 then
|
||||
selected_slot_texture = selected_slot_texture.."^fbrawl_slot_"..slot_color.."_"..side..".png"
|
||||
end
|
||||
elseif slot_color then
|
||||
if wielded_idx == i then
|
||||
selected_slot_texture = selected_slot_texture.."^fbrawl_slot_"..slot_color..".png"
|
||||
end
|
||||
table.insert(slots, "fbrawl_slot_"..slot_color.."_"..i..".png")
|
||||
end
|
||||
|
||||
-- remove the left/right hud when the recharge is over
|
||||
if (i == 1 and remaining_recharge_seconds == 0) then
|
||||
if i == 1 and remaining_recharge_seconds == 0 then
|
||||
local texture = pointer_hud_table.text
|
||||
texture = texture:gsub("%^fbrawl_pointer_red_"..side..".png", "")
|
||||
texture = texture:gsub("%^fbrawl_pointer_yellow_"..side..".png", "")
|
||||
|
@ -64,7 +64,8 @@ skillz.register_skill("fbrawl:smash", {
|
||||
},
|
||||
data = {
|
||||
hit_players = {},
|
||||
started = false
|
||||
started = false,
|
||||
fall_damage = false
|
||||
},
|
||||
loop_params = {
|
||||
cast_rate = 0
|
||||
@ -223,4 +224,22 @@ end
|
||||
|
||||
|
||||
|
||||
minetest.register_entity("fantasy_brawl:seismic_wave", seismic_wave)
|
||||
minetest.register_entity("fantasy_brawl:seismic_wave", seismic_wave)
|
||||
|
||||
|
||||
|
||||
minetest.register_on_player_hpchange(function(player, hp_change, reason)
|
||||
local pl_name = player:get_player_name()
|
||||
local smash = pl_name:get_skill("fbrawl:smash")
|
||||
|
||||
-- Smash
|
||||
if
|
||||
reason.type == "fall"
|
||||
and smash
|
||||
and not smash.data.fall_damage
|
||||
then
|
||||
return 0
|
||||
end
|
||||
|
||||
return hp_change
|
||||
end, true)
|
@ -21,32 +21,3 @@ dofile(minetest.get_modpath("fantasy_brawl") .. "/_classes/warrior/skills/sword.
|
||||
dofile(minetest.get_modpath("fantasy_brawl") .. "/_classes/warrior/skills/warrior_jump.lua")
|
||||
dofile(minetest.get_modpath("fantasy_brawl") .. "/_classes/warrior/skills/iron_skin.lua")
|
||||
dofile(minetest.get_modpath("fantasy_brawl") .. "/_classes/warrior/skills/hero_fury.lua")
|
||||
|
||||
|
||||
|
||||
-- Preventing fall damage if smash or hero_fury is active
|
||||
minetest.register_on_player_hpchange(function(player, hp_change, reason)
|
||||
local pl_name = player:get_player_name()
|
||||
local hero_fury = pl_name:get_skill("fbrawl:hero_fury")
|
||||
local smash = pl_name:get_skill("fbrawl:smash")
|
||||
|
||||
-- Hero fury
|
||||
if
|
||||
reason.type == "fall"
|
||||
and hero_fury
|
||||
and hero_fury.is_active
|
||||
then
|
||||
return 0
|
||||
end
|
||||
|
||||
-- Smash
|
||||
if
|
||||
reason.type == "fall"
|
||||
and smash
|
||||
and not smash.data.fall_damage
|
||||
then
|
||||
return 0
|
||||
end
|
||||
|
||||
return hp_change
|
||||
end, true)
|
||||
|
Loading…
x
Reference in New Issue
Block a user