mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-13 08:03:43 +01:00
Stealth and Steel: The Space Ninja (#31497)
* Space Ninja Antag Datum * Small fixes * Ninja outfit, ekatana, actions * Ninja scanner and spans * Ninja uplink implant * Ninja bombs * Ninja bomb flare grants * Ninja modsuit, objective payouts * Fixes objectives * Ninja stealth fix, modsuit sprites and final implementations * Lints * Ninja scanner sprites * Ninja Suit and Energy Shuriken Sprites * Fixes config, Adjusts stim ability, adds shuriken printer and e-shurikens, uplink stuff * Fixes a duplicate icon * Attack chain * Energy katana item sprite * Ninja net gun * Brazil * Spawning ninjas, ninja on traitor panel, ninja spawn sound * Linter * Objective stuff * Fixes n grey suits * Objectives * Trim intro sound * Event, spawn point * Ninja Outfits, Vox Check, Bug Fixes, Mirror at ninja spawn * Address code review * Oops * Uncomments an important thingy * Update: Gave space ninjas access to maints and an agent ID card. Updated net description. * Update scanner examine * Removes excess file * Makes ninja scanner fit in belts and ninja suits. Gives them NV goggles * Fixes modsuit sprite issue * Energy shuriken fixes * Scanner fix * Printer fix * Fixes some runtimes * Fixes capture teleport * Clothes rename * Buffs energy katana, adds soft no-drop to ekatana, buffs ninja modsuit, fixes equip bug * Adds research levels to ninja gear * Fixes ninja capture issue * Remaps ninja dojo * Better cuff removal * Forgor * Fixes action availability * Updates walls at dojo * Improves ninja modsuit * Windoors can now be opened with the katana * Adds advanced pinpointer to ninja uplink * Fixed energy nets sticking * Fixes slime people ninjas * Adds reroll to ninja capture if target is DNR. Prevents off Z-level targets * Oop * Adds reactor sabotage objective. * Fixes ninja cuffs * Removes Carp scroll from uplink. Adds Krav Implant to uplink
This commit is contained in:
@@ -104,6 +104,9 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/newplayer_start) //Without this you sp
|
||||
name = "revenantspawn"
|
||||
icon_state = "Rev"
|
||||
|
||||
/obj/effect/landmark/spawner/ninja
|
||||
name = "ninjaspawn"
|
||||
|
||||
/obj/effect/landmark/spawner/bubblegum_arena
|
||||
name = "bubblegum_arena_human"
|
||||
icon_state = "Explorer"
|
||||
@@ -142,13 +145,6 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/newplayer_start) //Without this you sp
|
||||
spawner_list = GLOB.ertdirector
|
||||
return ..()
|
||||
|
||||
/obj/effect/landmark/spawner/ninjastart
|
||||
name = "ninjastart"
|
||||
|
||||
/obj/effect/landmark/spawner/ninjastart/Initialize(mapload)
|
||||
spawner_list = GLOB.ninjastart
|
||||
return ..()
|
||||
|
||||
/obj/effect/landmark/spawner/aroomwarp
|
||||
name = "aroomwarp"
|
||||
|
||||
@@ -198,6 +194,13 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/newplayer_start) //Without this you sp
|
||||
spawner_list = GLOB.syndieprisonwarp
|
||||
return ..()
|
||||
|
||||
/obj/effect/landmark/spawner/ninja_prison_warp
|
||||
name = "ninja prison warp"
|
||||
|
||||
/obj/effect/landmark/spawner/ninja_prison_warp/Initialize(mapload)
|
||||
spawner_list = GLOB.ninjaprisonwarp
|
||||
return ..()
|
||||
|
||||
/obj/effect/landmark/spawner/antag_extract_warp
|
||||
name = "antagextractwarp"
|
||||
|
||||
@@ -230,9 +233,6 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/newplayer_start) //Without this you sp
|
||||
/obj/effect/landmark/spawner/commando_manual
|
||||
name = "Deathsquad Commando Manual"
|
||||
|
||||
/obj/effect/landmark/spawner/holding_facility
|
||||
name = "Holding Facility"
|
||||
|
||||
/obj/effect/landmark/spawner/holocarp
|
||||
name = "Holocarp Spawn"
|
||||
|
||||
|
||||
@@ -44,6 +44,19 @@
|
||||
syndicate = TRUE
|
||||
emagged = TRUE
|
||||
|
||||
// Spawns a spider fuel rod for ninja objectives
|
||||
/obj/item/beacon/ninja_rod_spawner
|
||||
name = "spider clan beacon"
|
||||
desc = "A label on it reads: <i>Activate to have a spider clan brand fuel rod teleported to your location</i>."
|
||||
origin_tech = "bluespace=6;syndicate=3"
|
||||
|
||||
/obj/item/beacon/ninja_rod_spawner/attack_self__legacy__attackchain(mob/user)
|
||||
if(!user)
|
||||
return
|
||||
var/obj/item/nuclear_rod/fuel/uranium_238/spiders/new_rod = new(user.loc)
|
||||
qdel(src)
|
||||
user.put_in_hands(new_rod)
|
||||
|
||||
// SINGULO BEACON SPAWNER
|
||||
/obj/item/beacon/syndicate
|
||||
name = "suspicious beacon"
|
||||
|
||||
@@ -594,3 +594,34 @@
|
||||
playsound(src, pick('sound/weapons/bulletflyby.ogg','sound/weapons/bulletflyby2.ogg','sound/weapons/bulletflyby3.ogg'), 75, 1)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
// MARK: KATANA
|
||||
/obj/item/katana
|
||||
name = "katana"
|
||||
desc = "Woefully underpowered in D20."
|
||||
icon = 'icons/obj/weapons/melee.dmi'
|
||||
icon_state = "katana"
|
||||
lefthand_file = 'icons/mob/inhands/weapons_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/weapons_righthand.dmi'
|
||||
flags = CONDUCT
|
||||
slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK
|
||||
flags_2 = ALLOW_BELT_NO_JUMPSUIT_2 // Look, you can strap it to your back. You can strap it to your waist too.
|
||||
force = 40
|
||||
throwforce = 10
|
||||
sharp = TRUE
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 100, ACID = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
needs_permit = TRUE
|
||||
|
||||
new_attack_chain = TRUE
|
||||
|
||||
/obj/item/katana/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/parry, _stamina_constant = 2, _stamina_coefficient = 0.5, _parryable_attack_types = ALL_ATTACK_TYPES)
|
||||
|
||||
/obj/item/katana/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is slitting [user.p_their()] stomach open with [src]! It looks like [user.p_theyre()] trying to commit seppuku!</span>")
|
||||
return BRUTELOSS
|
||||
|
||||
@@ -78,34 +78,6 @@
|
||||
desc = "An engraved and fancy version of the claymore. It appears to be less sharp than it's more functional cousin."
|
||||
force = 20
|
||||
|
||||
/obj/item/katana
|
||||
name = "katana"
|
||||
desc = "Woefully underpowered in D20."
|
||||
icon = 'icons/obj/weapons/melee.dmi'
|
||||
icon_state = "katana"
|
||||
lefthand_file = 'icons/mob/inhands/weapons_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/weapons_righthand.dmi'
|
||||
flags = CONDUCT
|
||||
slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK
|
||||
flags_2 = ALLOW_BELT_NO_JUMPSUIT_2 //Look, you can strap it to your back. You can strap it to your waist too.
|
||||
force = 40
|
||||
throwforce = 10
|
||||
sharp = TRUE
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 100, ACID = 50)
|
||||
resistance_flags = FIRE_PROOF
|
||||
needs_permit = TRUE
|
||||
|
||||
/obj/item/katana/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/parry, _stamina_constant = 2, _stamina_coefficient = 0.5, _parryable_attack_types = ALL_ATTACK_TYPES)
|
||||
|
||||
/obj/item/katana/suicide_act(mob/user)
|
||||
user.visible_message(SPAN_SUICIDE("[user] is slitting [user.p_their()] stomach open with [src]! It looks like [user.p_theyre()] trying to commit seppuku!"))
|
||||
return BRUTELOSS
|
||||
|
||||
/obj/item/harpoon
|
||||
name = "harpoon"
|
||||
desc = "Tharr she blows!"
|
||||
|
||||
@@ -76,35 +76,6 @@
|
||||
else
|
||||
icon_state = "signpost_wood"
|
||||
|
||||
/obj/structure/ninjatele
|
||||
name = "Long-Distance Teleportation Console"
|
||||
desc = "A console used to send a Spider Clan operative long distances rapidly."
|
||||
icon = 'icons/obj/ninjaobjects.dmi'
|
||||
icon_state = "teleconsole"
|
||||
anchored = TRUE
|
||||
|
||||
/obj/structure/ninjatele/attack_hand(mob/user as mob)
|
||||
if(user.mind.special_role=="Ninja")
|
||||
switch(tgui_alert(user, "Phase Jaunt relay primed, target locked as [station_name()], initiate VOID-shift translocation? (Warning! Internals required!)", "Void Shift", list("Yes", "No")))
|
||||
if("Yes")
|
||||
if(user.z != src.z)
|
||||
return
|
||||
|
||||
user.loc.loc.Exited(user)
|
||||
user.loc = pick(GLOB.carplist) // In the future, possibly make specific NinjaTele landmarks, and give him an option to teleport to North/South/East/West of SS13 instead of just hijacking a carpspawn.
|
||||
|
||||
playsound(user.loc, 'sound/effects/phasein.ogg', 25, 1)
|
||||
playsound(user.loc, 'sound/effects/sparks2.ogg', 50, 1)
|
||||
new /obj/effect/temp_visual/dir_setting/ninja/phase(get_turf(user), user.dir)
|
||||
to_chat(user, "[SPAN_BOLDNOTICE("VOID-Shift")] translocation successful")
|
||||
|
||||
if("No")
|
||||
to_chat(user, SPAN_DANGER("Process aborted!"))
|
||||
return
|
||||
|
||||
else
|
||||
to_chat(user, "[SPAN_DANGER("FĆAL �Rr�R")]: ŧer nt recgnized, c-cntr-r䣧-ç äcked.")
|
||||
|
||||
/obj/structure/respawner
|
||||
name = "\improper Long-Distance Cloning Machine"
|
||||
desc = "Top-of-the-line Nanotrasen technology allows for cloning of crew members from off-station upon bluespace request."
|
||||
|
||||
Reference in New Issue
Block a user