mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 05:00:55 +01:00
Nuclear Operative Jump Jets (#78088)
## About The Pull Request This PR gives operative MODsuits access to "jump jets". This is an activated module (starts pinned) with a 30 second cooldown which removes your personal gravity for 5 seconds and (if possible) pushes you upwards by one z level. In combination with your regular jetpack this allows you to fly over gaps, and (most importantly) out of pits such as you may inadvertently find yourself wandering into on Icebox. I have a few other changes I want to make specifically targetted at the experience of Icebox station destruction causing people to fall several z levels and get trapped, but this is the first one. You have to stand still for 1 second to activate the jump jet. This is because jetpack movement without gravity is actually usually faster than an operative will walk, and I don't want them to just toggle it as a sprint button while running around. If people find other tactical uses for this though I think that's cool. This module currently isn't available to crew on the tech web, although maybe someone could add it later if they wanted to. It's not quite so useful if you don't _also_ have a jetpack though. I bumped the available complexity of the suits I attached it to up by the complexity cost of this module so it's not taking up previously available space. ## Why It's Good For The Game It's funny when the whole ops team falls in a hole after an explosion they caused and gets stuck in there fighting Snow Legions but they should probably have some method for dealing with that. It also lets them pop back up from the tram hole, a risky proposition because any flying mob hit by the tram dies almost instantly. ## Changelog 🆑 add: Operative MODsuits now have an attached "jump jet" which sends you upwards and allows you to use your jetpack under gravity for a few seconds, perfect for navigating the pits and valleys of Icebox Station. /🆑
This commit is contained in:
@@ -169,12 +169,54 @@
|
||||
/obj/item/mod/module/jetpack/advanced
|
||||
name = "MOD advanced ion jetpack module"
|
||||
desc = "An improvement on the previous model of electric thrusters. This one achieves higher speeds through \
|
||||
mounting of more jets and a red paint applied on it."
|
||||
mounting of more jets and application of red paint."
|
||||
icon_state = "jetpack_advanced"
|
||||
overlay_state_inactive = "module_jetpackadv"
|
||||
overlay_state_active = "module_jetpackadv_on"
|
||||
full_speed = TRUE
|
||||
|
||||
/// Cooldown to use if we didn't actually launch a jump jet
|
||||
#define FAILED_ACTIVATION_COOLDOWN 3 SECONDS
|
||||
|
||||
///Jump Jet - Briefly removes the effect of gravity and pushes you up one z-level if possible.
|
||||
/obj/item/mod/module/jump_jet
|
||||
name = "MOD ionic jump jet module"
|
||||
desc = "A specialised ionic thruster which provides a short but powerful boost capable of pushing against gravity, \
|
||||
after which time it needs to recharge."
|
||||
icon_state = "jump_jet"
|
||||
module_type = MODULE_USABLE
|
||||
complexity = 3
|
||||
cooldown_time = 30 SECONDS
|
||||
use_power_cost = DEFAULT_CHARGE_DRAIN * 5
|
||||
incompatible_modules = list(/obj/item/mod/module/jump_jet)
|
||||
|
||||
/obj/item/mod/module/jump_jet/on_use()
|
||||
. = ..()
|
||||
if (!.)
|
||||
return FALSE
|
||||
if (DOING_INTERACTION(mod.wearer, mod.wearer))
|
||||
balloon_alert(mod.wearer, "busy!")
|
||||
return
|
||||
balloon_alert(mod.wearer, "launching...")
|
||||
mod.wearer.Shake(duration = 1 SECONDS)
|
||||
if (!do_after(mod.wearer, 1 SECONDS, target = mod.wearer))
|
||||
start_cooldown(FAILED_ACTIVATION_COOLDOWN) // Don't go on full cooldown if we failed to launch
|
||||
return FALSE
|
||||
playsound(mod.wearer, 'sound/vehicles/rocketlaunch.ogg', 100, TRUE)
|
||||
mod.wearer.apply_status_effect(/datum/status_effect/jump_jet)
|
||||
var/turf/launch_from = get_turf(mod.wearer)
|
||||
if (mod.wearer.zMove(UP, z_move_flags = ZMOVE_CHECK_PULLS))
|
||||
launch_from.visible_message(span_warning("[mod.wearer] rockets into the air!"))
|
||||
new /obj/effect/temp_visual/jet_plume(launch_from)
|
||||
|
||||
if (!HAS_TRAIT(mod.wearer, TRAIT_JETPACKING))
|
||||
var/obj/item/mod/module/jetpack/linked_jetpack = locate() in mod.modules
|
||||
if (!isnull(linked_jetpack))
|
||||
linked_jetpack.on_activation()
|
||||
return TRUE
|
||||
|
||||
#undef FAILED_ACTIVATION_COOLDOWN
|
||||
|
||||
///Status Readout - Puts a lot of information including health, nutrition, fingerprints, temperature to the suit TGUI.
|
||||
/obj/item/mod/module/status_readout
|
||||
name = "MOD status readout module"
|
||||
|
||||
Reference in New Issue
Block a user