diff --git a/mods/ctf/ctf_classes/classes.lua b/mods/ctf/ctf_classes/classes.lua index 3c59811..c042769 100644 --- a/mods/ctf/ctf_classes/classes.lua +++ b/mods/ctf/ctf_classes/classes.lua @@ -163,6 +163,7 @@ ctf_classes.register("rocketeer", { -- Disallow rocketeers from capturing flags - they're intended to be support can_capture = false, max_hp = 15, + allow_rockets = true, initial_stuff = { "shooter_rocket:rocket_gun_loaded", @@ -171,6 +172,7 @@ ctf_classes.register("rocketeer", { additional_item_blacklist = { "shooter_rocket:rocket_gun", + "shooter_rocket:rocket" }, allowed_guns = { diff --git a/mods/ctf/ctf_classes/ranged.lua b/mods/ctf/ctf_classes/ranged.lua index 81702d8..5b9f2d1 100644 --- a/mods/ctf/ctf_classes/ranged.lua +++ b/mods/ctf/ctf_classes/ranged.lua @@ -66,10 +66,30 @@ local function check_grapple(itemname) }) end +local function check_rocket(itemname) + local def = minetest.registered_items[itemname] + local old_func = def.on_use + minetest.override_item(itemname, { + on_use = function(itemstack, user, ...) + if not ctf_classes.get(user).properties.allow_rockets then + minetest.chat_send_player(user:get_player_name(), + "You can't use that weapon! Change your class at base.") + return itemstack + end + + return old_func(itemstack, user, ...) + end, + + }) +end + check_grapple("shooter_hook:grapple_gun_loaded") check_grapple("shooter_hook:grapple_gun") check_grapple("shooter_hook:grapple_hook") +check_rocket("shooter_rocket:rocket_gun_loaded") +check_rocket("shooter_rocket:rocket_gun") + -- Override grappling hook entity to check if player has flag before teleporting local old_grapple_step = minetest.registered_entities["shooter_hook:hook"].on_step minetest.registered_entities["shooter_hook:hook"].on_step = function(self, dtime, ...)