Adds the Ninja MODsuit (#67220)

Why It's Good For The Game

Ninja code is pretty bad, I think it's best to move away into nice modular stuff instead.
Changelog

cl Fikou, PositiveEntropy, Nerevar, InfraRedBaron
refactor: the ninja space suit is now a modsuit
fix: fixes dash beams not working
/cl
This commit is contained in:
Fikou
2022-06-01 09:25:27 +12:00
committed by GitHub
parent a2130c3e12
commit ee3ab47e01
74 changed files with 1222 additions and 1475 deletions
+6 -4
View File
@@ -10,6 +10,7 @@
var/dash_sound = 'sound/magic/blink.ogg'
var/recharge_sound = 'sound/magic/charge.ogg'
var/beam_effect = "blur"
var/beam_length = 2 SECONDS
var/phasein = /obj/effect/temp_visual/dir_setting/ninja/phase
var/phaseout = /obj/effect/temp_visual/dir_setting/ninja/phase/out
@@ -33,18 +34,19 @@
/// Teleports user to target using do_teleport. Returns TRUE if teleport successful, FALSE otherwise.
/datum/action/innate/dash/proc/teleport(mob/user, atom/target)
if(!IsAvailable())
user.balloon_alert(user, "no charges!")
return FALSE
var/turf/current_turf = get_turf(user)
var/turf/target_turf = get_turf(target)
if(target in view(user.client.view, user))
if(!do_teleport(user, target_turf, no_effects = TRUE))
user.balloon_alert(user, "dash blocked by location!")
return FALSE
var/obj/spot1 = new phaseout(get_turf(user), user.dir)
var/obj/spot1 = new phaseout(current_turf, user.dir)
var/obj/spot2 = new phasein(target_turf, user.dir)
spot1.Beam(spot2,beam_effect, time = beam_length)
playsound(target_turf, dash_sound, 25, TRUE)
var/obj/spot2 = new phasein(get_turf(user), user.dir)
spot1.Beam(spot2,beam_effect,time=2 SECONDS)
current_charges--
owner.update_action_buttons_icon()
addtimer(CALLBACK(src, .proc/charge), charge_rate)
+1 -1
View File
@@ -44,7 +44,7 @@
to_chat(M, span_warning("[source.p_their()] skin seems to be shifting like something is moving below it."))
/datum/element/digitalcamo/proc/can_track(datum/source)
/datum/element/digitalcamo/proc/can_track(datum/source, mob/user)
SIGNAL_HANDLER
return COMPONENT_CANT_TRACK