[MIRROR] Ninja Refactor (#1037)
* Ninja Refactor * Update antagonists.dm * Delete antagonists.dm.rej * Update antagonists.dm * Update mind.dm * Update mind.dm * whatever, I fixed that cunt
This commit is contained in:
committed by
Poojawa
parent
0b1f4a27da
commit
f624071766
@@ -58,30 +58,23 @@
|
||||
A.add_fingerprint(H)
|
||||
|
||||
draining = 1
|
||||
var/drained = A.ninjadrain_act(suit,H,src)
|
||||
. = A.ninjadrain_act(suit,H,src)
|
||||
draining = 0
|
||||
|
||||
if(isnum(drained)) //Numerical values of drained handle their feedback here, Alpha values handle it themselves (Research hacking)
|
||||
if(drained)
|
||||
to_chat(H, "<span class='notice'>Gained <B>[drained]</B> energy from \the [A].</span>")
|
||||
if(isnum(.)) //Numerical values of drained handle their feedback here, Alpha values handle it themselves (Research hacking)
|
||||
if(.)
|
||||
to_chat(H, "<span class='notice'>Gained <B>[.]</B> energy from \the [A].</span>")
|
||||
else
|
||||
to_chat(H, "<span class='danger'>\The [A] has run dry of power, you must find another source!</span>")
|
||||
else
|
||||
drained = 0 //as to not cancel attack_hand()
|
||||
|
||||
return drained
|
||||
. = 0 //as to not cancel attack_hand()
|
||||
|
||||
|
||||
/obj/item/clothing/gloves/space_ninja/proc/toggled()
|
||||
set name = "Toggle Interaction"
|
||||
set desc = "Toggles special interaction on or off."
|
||||
set category = "Ninja Equip"
|
||||
|
||||
/obj/item/clothing/gloves/space_ninja/proc/toggledrain()
|
||||
var/mob/living/carbon/human/U = loc
|
||||
to_chat(U, "You <b>[candrain?"disable":"enable"]</b> special interaction.")
|
||||
candrain=!candrain
|
||||
|
||||
|
||||
/obj/item/clothing/gloves/space_ninja/examine(mob/user)
|
||||
..()
|
||||
if(flags & NODROP)
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
|
||||
|
||||
//Wakes the user so they are able to do their thing. Also injects a decent dose of radium.
|
||||
//Movement impairing would indicate drugs and the like.
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninjaboost()
|
||||
set name = "Adrenaline Boost"
|
||||
set desc = "Inject a secret chemical that will counteract all movement-impairing effect."
|
||||
set category = "Ninja Ability"
|
||||
set popup_menu = 0
|
||||
|
||||
if(!ninjacost(0,N_ADRENALINE))//Have to make sure stat is not counted for this ability.
|
||||
var/mob/living/carbon/human/H = affecting
|
||||
@@ -25,4 +19,3 @@
|
||||
a_boost--
|
||||
to_chat(H, "<span class='notice'>There are <B>[a_boost]</B> adrenaline boosts remaining.</span>")
|
||||
s_coold = 3
|
||||
return
|
||||
@@ -26,4 +26,4 @@
|
||||
if(!a_boost)
|
||||
to_chat(H, "<span class='danger'>You do not have any more adrenaline boosters.</span>")
|
||||
return 1
|
||||
return (s_coold)//Returns the value of the variable which counts down to zero.
|
||||
return (s_coold)//Returns the value of the variable which counts down to zero.
|
||||
|
||||
@@ -2,14 +2,9 @@
|
||||
|
||||
//Disables nearby tech equipment.
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninjapulse()
|
||||
set name = "EM Burst (25E)"
|
||||
set desc = "Disable any nearby technology with a electro-magnetic pulse."
|
||||
set category = "Ninja Ability"
|
||||
set popup_menu = 0
|
||||
|
||||
if(!ninjacost(250,N_STEALTH_CANCEL))
|
||||
var/mob/living/carbon/human/H = affecting
|
||||
playsound(H.loc, 'sound/effects/EMPulse.ogg', 60, 2)
|
||||
empulse(H, 4, 6) //Procs sure are nice. Slightly weaker than wizard's disable tch.
|
||||
s_coold = 2
|
||||
return
|
||||
@@ -1,10 +1,6 @@
|
||||
|
||||
//Allows the ninja to kidnap people
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninjanet(mob/living/carbon/C in oview())//Only living carbon mobs.
|
||||
set name = "Energy Net (20E)"
|
||||
set desc = "Captures a fallen opponent in a net of energy. Will teleport them to a holding facility after 30 seconds."
|
||||
set category = null
|
||||
set src = usr.contents
|
||||
|
||||
if(!ninjacost(200,N_STEALTH_CANCEL) && iscarbon(C))
|
||||
var/mob/living/carbon/human/H = affecting
|
||||
@@ -26,4 +22,3 @@
|
||||
to_chat(H, "<span class='warning'>[C.p_they(TRUE)] are already trapped inside an energy net!</span>")
|
||||
else
|
||||
to_chat(H, "<span class='warning'>[C.p_they(TRUE)] will bring no honor to your Clan!</span>")
|
||||
return
|
||||
@@ -2,10 +2,6 @@
|
||||
|
||||
//Smoke bomb
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninjasmoke()
|
||||
set name = "Smoke Bomb"
|
||||
set desc = "Blind your enemies momentarily with a well-placed smoke bomb."
|
||||
set category = "Ninja Ability"
|
||||
set popup_menu = 0//Will not see it when right clicking.
|
||||
|
||||
if(!ninjacost(0,N_SMOKE_BOMB))
|
||||
var/mob/living/carbon/human/H = affecting
|
||||
@@ -16,4 +12,3 @@
|
||||
s_bombs--
|
||||
to_chat(H, "<span class='notice'>There are <B>[s_bombs]</B> smoke bombs remaining.</span>")
|
||||
s_coold = 1
|
||||
return
|
||||
@@ -2,11 +2,6 @@
|
||||
|
||||
//Creates a throwing star
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninjastar()
|
||||
set name = "Create Throwing Stars (1E)"
|
||||
set desc = "Creates some throwing stars"
|
||||
set category = "Ninja Ability"
|
||||
set popup_menu = 0
|
||||
|
||||
if(!ninjacost(10))
|
||||
var/mob/living/carbon/human/H = affecting
|
||||
var/obj/item/weapon/throwing_star/ninja/N = new(H)
|
||||
|
||||
@@ -21,7 +21,6 @@ Contents:
|
||||
animate(U, alpha = 50,time = 15)
|
||||
U.visible_message("<span class='warning'>[U.name] vanishes into thin air!</span>", \
|
||||
"<span class='notice'>You are now mostly invisible to normal detection.</span>")
|
||||
return
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/cancel_stealth()
|
||||
@@ -38,12 +37,7 @@ Contents:
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/stealth()
|
||||
set name = "Toggle Stealth"
|
||||
set desc = "Utilize the internal CLOAK-tech device to activate or deactivate stealth-camo."
|
||||
set category = "Ninja Equip"
|
||||
|
||||
if(!s_busy)
|
||||
toggle_stealth()
|
||||
else
|
||||
to_chat(affecting, "<span class='danger'>Stealth does not appear to work!</span>")
|
||||
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninja_sword_recall()
|
||||
set name = "Recall Energy Katana (Variable Cost)"
|
||||
set desc = "Teleports the Energy Katana linked to this suit to its wearer, cost based on distance."
|
||||
set category = "Ninja Ability"
|
||||
set popup_menu = 0
|
||||
|
||||
var/mob/living/carbon/human/H = affecting
|
||||
|
||||
var/cost = 0
|
||||
@@ -42,4 +37,3 @@
|
||||
|
||||
else //Else just TP it to us.
|
||||
energyKatana.returnToOwner(H,1)
|
||||
|
||||
|
||||
@@ -16,16 +16,10 @@ Contents:
|
||||
var/mob/living/victim = H.pulling
|
||||
if(!victim.anchored)
|
||||
victim.forceMove(locate(T.x+rand(-1,1),T.y+rand(-1,1),T.z))
|
||||
return
|
||||
|
||||
|
||||
//Jaunt
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt()
|
||||
set name = "Phase Jaunt (10E)"
|
||||
set desc = "Utilizes the internal VOID-shift device to rapidly transit in direction facing."
|
||||
set category = "Ninja Ability"
|
||||
set popup_menu = 0
|
||||
|
||||
if(!ninjacost(100,N_STEALTH_CANCEL))
|
||||
var/mob/living/carbon/human/H = affecting
|
||||
var/turf/destination = get_teleport_loc(H.loc,H,9,1,3,1,0,1)
|
||||
@@ -47,7 +41,6 @@ Contents:
|
||||
s_coold = 1
|
||||
else
|
||||
to_chat(H, "<span class='danger'>The VOID-shift device is malfunctioning, <B>teleportation failed</B>.</span>")
|
||||
return
|
||||
|
||||
|
||||
//Right-Click teleport: It's basically admin "jump to turf"
|
||||
@@ -76,6 +69,3 @@ Contents:
|
||||
s_coold = 1
|
||||
else
|
||||
to_chat(H, "<span class='danger'>You cannot teleport into solid walls or from solid matter</span>")
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@ Contents:
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30, fire = 100, acid = 100)
|
||||
strip_delay = 12
|
||||
|
||||
actions_types = list(/datum/action/item_action/initialize_ninja_suit, /datum/action/item_action/ninjajaunt, /datum/action/item_action/ninjasmoke, /datum/action/item_action/ninjaboost, /datum/action/item_action/ninjapulse, /datum/action/item_action/ninjastar, /datum/action/item_action/ninjanet, /datum/action/item_action/ninja_sword_recall, /datum/action/item_action/ninja_stealth, /datum/action/item_action/toggle_glove)
|
||||
|
||||
//Important parts of the suit.
|
||||
var/mob/living/carbon/human/affecting = null
|
||||
var/obj/item/weapon/stock_parts/cell/cell
|
||||
@@ -57,7 +59,6 @@ Contents:
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/New()
|
||||
..()
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/init//suit initialize verb
|
||||
|
||||
//Spark Init
|
||||
spark_system = new()
|
||||
@@ -109,40 +110,38 @@ Contents:
|
||||
|
||||
|
||||
//This proc prevents the suit from being taken off.
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/lock_suit(mob/living/carbon/human/H, checkIcons = 0)
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/lock_suit(mob/living/carbon/human/H)
|
||||
if(!istype(H))
|
||||
return 0
|
||||
if(checkIcons)
|
||||
icon_state = H.gender==FEMALE ? "s-ninjanf" : "s-ninjan"
|
||||
H.gloves.icon_state = "s-ninjan"
|
||||
H.gloves.item_state = "s-ninjan"
|
||||
else
|
||||
if(H.mind.special_role!="Space Ninja")
|
||||
to_chat(H, "\red <B>fÄTaL ÈÈRRoR</B>: 382200-*#00CÖDE <B>RED</B>\nUNAUHORIZED USÈ DETÈCeD\nCoMMÈNCING SUB-R0UIN3 13...\nTÈRMInATING U-U-USÈR...")
|
||||
H.gib()
|
||||
return 0
|
||||
if(!istype(H.head, /obj/item/clothing/head/helmet/space/space_ninja))
|
||||
to_chat(H, "<span class='userdanger'>ERROR</span>: 100113 UNABLE TO LOCATE HEAD GEAR\nABORTING...")
|
||||
return 0
|
||||
if(!istype(H.shoes, /obj/item/clothing/shoes/space_ninja))
|
||||
to_chat(H, "<span class='userdanger'>ERROR</span>: 122011 UNABLE TO LOCATE FOOT GEAR\nABORTING...")
|
||||
return 0
|
||||
if(!istype(H.gloves, /obj/item/clothing/gloves/space_ninja))
|
||||
to_chat(H, "<span class='userdanger'>ERROR</span>: 110223 UNABLE TO LOCATE HAND GEAR\nABORTING...")
|
||||
return 0
|
||||
if(!is_ninja(H))
|
||||
to_chat(H, "\red <B>fÄTaL ÈÈRRoR</B>: 382200-*#00CÖDE <B>RED</B>\nUNAUHORIZED USÈ DETÈCeD\nCoMMÈNCING SUB-R0UIN3 13...\nTÈRMInATING U-U-USÈR...")
|
||||
H.gib()
|
||||
return FALSE
|
||||
if(!istype(H.head, /obj/item/clothing/head/helmet/space/space_ninja))
|
||||
to_chat(H, "<span class='userdanger'>ERROR</span>: 100113 UNABLE TO LOCATE HEAD GEAR\nABORTING...")
|
||||
return FALSE
|
||||
if(!istype(H.shoes, /obj/item/clothing/shoes/space_ninja))
|
||||
to_chat(H, "<span class='userdanger'>ERROR</span>: 122011 UNABLE TO LOCATE FOOT GEAR\nABORTING...")
|
||||
return FALSE
|
||||
if(!istype(H.gloves, /obj/item/clothing/gloves/space_ninja))
|
||||
to_chat(H, "<span class='userdanger'>ERROR</span>: 110223 UNABLE TO LOCATE HAND GEAR\nABORTING...")
|
||||
return FALSE
|
||||
affecting = H
|
||||
flags |= NODROP //colons make me go all |=
|
||||
slowdown = FALSE
|
||||
n_hood = H.head
|
||||
n_hood.flags |= NODROP
|
||||
n_shoes = H.shoes
|
||||
n_shoes.flags |= NODROP
|
||||
n_shoes.slowdown--
|
||||
n_gloves = H.gloves
|
||||
n_gloves.flags |= NODROP
|
||||
return TRUE
|
||||
|
||||
affecting = H
|
||||
flags |= NODROP //colons make me go all |=
|
||||
slowdown = 0
|
||||
n_hood = H.head
|
||||
n_hood.flags |= NODROP
|
||||
n_shoes = H.shoes
|
||||
n_shoes.flags |= NODROP
|
||||
n_shoes.slowdown--
|
||||
n_gloves = H.gloves
|
||||
n_gloves.flags |= NODROP
|
||||
|
||||
return 1
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/lockIcons(mob/living/carbon/human/H)
|
||||
icon_state = H.gender==FEMALE ? "s-ninjanf" : "s-ninjan"
|
||||
H.gloves.icon_state = "s-ninjan"
|
||||
H.gloves.item_state = "s-ninjan"
|
||||
|
||||
|
||||
//This proc allows the suit to be taken off.
|
||||
@@ -172,3 +171,39 @@ Contents:
|
||||
to_chat(user, "The CLOAK-tech device is <B>[s_active?"active":"inactive"]</B>.")
|
||||
to_chat(user, "There are <B>[s_bombs]</B> smoke bomb\s remaining.")
|
||||
to_chat(user, "There are <B>[a_boost]</B> adrenaline booster\s remaining.")
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/ui_action_click(mob/user, action)
|
||||
if(istype(action, /datum/action/item_action/initialize_ninja_suit))
|
||||
toggle_on_off()
|
||||
return TRUE
|
||||
if(!s_initialized)
|
||||
to_chat(user, "<span class='warning'><b>ERROR</b>: suit offline. Please activate suit.</span>")
|
||||
return FALSE
|
||||
if(istype(action, /datum/action/item_action/ninjajaunt))
|
||||
ninjajaunt()
|
||||
return TRUE
|
||||
if(istype(action, /datum/action/item_action/ninjasmoke))
|
||||
ninjasmoke()
|
||||
return TRUE
|
||||
if(istype(action, /datum/action/item_action/ninjaboost))
|
||||
ninjaboost()
|
||||
return TRUE
|
||||
if(istype(action, /datum/action/item_action/ninjapulse))
|
||||
ninjapulse()
|
||||
return TRUE
|
||||
if(istype(action, /datum/action/item_action/ninjastar))
|
||||
ninjastar()
|
||||
return TRUE
|
||||
if(istype(action, /datum/action/item_action/ninjanet))
|
||||
ninjanet()
|
||||
return TRUE
|
||||
if(istype(action, /datum/action/item_action/ninja_sword_recall))
|
||||
ninja_sword_recall()
|
||||
return TRUE
|
||||
if(istype(action, /datum/action/item_action/ninja_stealth))
|
||||
stealth()
|
||||
return TRUE
|
||||
if(istype(action, /datum/action/item_action/toggle_glove))
|
||||
n_gloves.toggledrain()
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
@@ -1,102 +1,98 @@
|
||||
|
||||
//Verbs link to procs because verb-like procs have a bug which prevents their use if the arguments are not readily referenced.
|
||||
//^ Old coder words may be false these days, Not taking the risk for now.
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/init()
|
||||
set name = "Initialize Suit"
|
||||
set desc = "Initializes the suit for field operation."
|
||||
set category = "Ninja Equip"
|
||||
|
||||
ninitialize()
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/deinit()
|
||||
set name = "De-Initialize Suit"
|
||||
set desc = "Begins procedure to remove the suit."
|
||||
set category = "Ninja Equip"
|
||||
|
||||
if(!s_busy)
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/toggle_on_off()
|
||||
if(s_busy)
|
||||
to_chat(loc, "<span class='userdanger'>ERROR</span>: You cannot use this function at this time.")
|
||||
return FALSE
|
||||
if(s_initialized)
|
||||
deinitialize()
|
||||
else
|
||||
to_chat(affecting, "<span class='danger'>The function did not trigger!</span>")
|
||||
|
||||
ninitialize()
|
||||
. = TRUE
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninitialize(delay = s_delay, mob/living/carbon/human/U = loc)
|
||||
if(U.mind && U.mind.assigned_role==U.mind.special_role && !s_initialized && !s_busy)//Shouldn't be busy... but anything is possible I guess.
|
||||
s_busy = 1
|
||||
for(var/i,i<7,i++)
|
||||
switch(i)
|
||||
if(0)
|
||||
to_chat(U, "<span class='notice'>Now initializing...</span>")
|
||||
if(1)
|
||||
if(!lock_suit(U))//To lock the suit onto wearer.
|
||||
break
|
||||
to_chat(U, "<span class='notice'>Securing external locking mechanism...\nNeural-net established.</span>")
|
||||
if(2)
|
||||
to_chat(U, "<span class='notice'>Extending neural-net interface...\nNow monitoring brain wave pattern...</span>")
|
||||
if(3)
|
||||
if(U.stat==2||U.health<=0)
|
||||
to_chat(U, "<span class='danger'><B>FÄAL �Rr�R</B>: 344--93#�&&21 BR��N |/|/aV� PATT$RN <B>RED</B>\nA-A-aB�rT�NG...</span>")
|
||||
unlock_suit()
|
||||
break
|
||||
lock_suit(U,1)//Check for icons.
|
||||
U.regenerate_icons()
|
||||
to_chat(U, "<span class='notice'>Linking neural-net interface...\nPattern</span>\green <B>GREEN</B><span class='notice'>, continuing operation.</span>")
|
||||
if(4)
|
||||
to_chat(U, "<span class='notice'>VOID-shift device status: <B>ONLINE</B>.\nCLOAK-tech device status: <B>ONLINE</B>.</span>")
|
||||
if(5)
|
||||
to_chat(U, "<span class='notice'>Primary system status: <B>ONLINE</B>.\nBackup system status: <B>ONLINE</B>.\nCurrent energy capacity: <B>[cell.charge]</B>.</span>")
|
||||
if(6)
|
||||
to_chat(U, "<span class='notice'>All systems operational. Welcome to <B>SpiderOS</B>, [U.real_name].</span>")
|
||||
grant_ninja_verbs()
|
||||
grant_equip_verbs()
|
||||
ntick()
|
||||
sleep(delay)
|
||||
s_busy = 0
|
||||
else
|
||||
if(!U.mind||U.mind.assigned_role!=U.mind.special_role)//Your run of the mill persons shouldn't know what it is. Or how to turn it on.
|
||||
to_chat(U, "You do not understand how this suit functions. Where the heck did it even come from?")
|
||||
else if(s_initialized)
|
||||
to_chat(U, "<span class='danger'>The suit is already functioning.</span> Please report this bug.")
|
||||
else
|
||||
to_chat(U, "<span class='userdanger'>ERROR</span>: You cannot use this function at this time.")
|
||||
return
|
||||
if(!U.mind)
|
||||
return //Not sure how this could happen.
|
||||
if(!is_ninja(U))
|
||||
to_chat(U, "You do not understand how this suit functions. Where the heck did it even come from?")
|
||||
return
|
||||
s_busy = TRUE
|
||||
to_chat(U, "<span class='notice'>Now initializing...</span>")
|
||||
addtimer(CALLBACK(src, .proc/ninitialize_two, delay, U), delay)
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninitialize_two(delay, mob/living/carbon/human/U)
|
||||
if(!lock_suit(U))//To lock the suit onto wearer.
|
||||
s_busy = FALSE
|
||||
return
|
||||
to_chat(U, "<span class='notice'>Securing external locking mechanism...\nNeural-net established.</span>")
|
||||
addtimer(CALLBACK(src, .proc/ninitialize_three, delay, U), delay)
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninitialize_three(delay, mob/living/carbon/human/U)
|
||||
to_chat(U, "<span class='notice'>Extending neural-net interface...\nNow monitoring brain wave pattern...</span>")
|
||||
addtimer(CALLBACK(src, .proc/ninitialize_four, delay, U), delay)
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninitialize_four(delay, mob/living/carbon/human/U)
|
||||
if(U.stat==2||U.health<=0)
|
||||
to_chat(U, "<span class='danger'><B>FÄAL �Rr�R</B>: 344--93#�&&21 BR��N |/|/aV� PATT$RN <B>RED</B>\nA-A-aB�rT�NG...</span>")
|
||||
unlock_suit()
|
||||
return
|
||||
lockIcons(U)//Check for icons.
|
||||
U.regenerate_icons()
|
||||
to_chat(U, "<span class='notice'>Linking neural-net interface...\nPattern</span>\green <B>GREEN</B><span class='notice'>, continuing operation.</span>")
|
||||
addtimer(CALLBACK(src, .proc/ninitialize_five, delay, U), delay)
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninitialize_five(delay, mob/living/carbon/human/U)
|
||||
to_chat(U, "<span class='notice'>VOID-shift device status: <B>ONLINE</B>.\nCLOAK-tech device status: <B>ONLINE</B>.</span>")
|
||||
addtimer(CALLBACK(src, .proc/ninitialize_six, delay, U), delay)
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninitialize_six(delay, mob/living/carbon/human/U)
|
||||
to_chat(U, "<span class='notice'>Primary system status: <B>ONLINE</B>.\nBackup system status: <B>ONLINE</B>.\nCurrent energy capacity: <B>[cell.charge]</B>.</span>")
|
||||
addtimer(CALLBACK(src, .proc/ninitialize_seven, delay, U), delay)
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/ninitialize_seven(delay, mob/living/carbon/human/U)
|
||||
to_chat(U, "<span class='notice'>All systems operational. Welcome to <B>SpiderOS</B>, [U.real_name].</span>")
|
||||
grant_ninja_verbs()
|
||||
grant_equip_verbs()
|
||||
ntick()
|
||||
s_busy = FALSE
|
||||
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/deinitialize(delay = s_delay)
|
||||
if(affecting==loc&&!s_busy)
|
||||
if(affecting==loc)
|
||||
var/mob/living/carbon/human/U = affecting
|
||||
if(!s_initialized)
|
||||
to_chat(U, "<span class='danger'>The suit is not initialized.</span> Please report this bug.")
|
||||
return
|
||||
if(alert("Are you certain you wish to remove the suit? This will take time and remove all abilities.",,"Yes","No")=="No")
|
||||
return
|
||||
if(s_busy)
|
||||
to_chat(U, "<span class='userdanger'>ERROR</span>: You cannot use this function at this time.")
|
||||
return
|
||||
s_busy = 1
|
||||
for(var/i = 0,i<7,i++)
|
||||
switch(i)
|
||||
if(0)
|
||||
to_chat(U, "<span class='notice'>Now de-initializing...</span>")
|
||||
spideros = 0//Spideros resets.
|
||||
if(1)
|
||||
to_chat(U, "<span class='notice'>Logging off, [U:real_name]. Shutting down <B>SpiderOS</B>.</span>")
|
||||
remove_ninja_verbs()
|
||||
if(2)
|
||||
to_chat(U, "<span class='notice'>Primary system status: <B>OFFLINE</B>.\nBackup system status: <B>OFFLINE</B>.</span>")
|
||||
if(3)
|
||||
to_chat(U, "<span class='notice'>VOID-shift device status: <B>OFFLINE</B>.\nCLOAK-tech device status: <B>OFFLINE</B>.</span>")
|
||||
cancel_stealth()//Shutdowns stealth.
|
||||
if(4)
|
||||
to_chat(U, "<span class='notice'>Disconnecting neural-net interface...</span>\green<B>Success</B><span class='notice'>.</span>")
|
||||
if(5)
|
||||
to_chat(U, "<span class='notice'>Disengaging neural-net interface...</span>\green<B>Success</B><span class='notice'>.</span>")
|
||||
if(6)
|
||||
to_chat(U, "<span class='notice'>Unsecuring external locking mechanism...\nNeural-net abolished.\nOperation status: <B>FINISHED</B>.</span>")
|
||||
remove_equip_verbs()
|
||||
unlock_suit()
|
||||
U.regenerate_icons()
|
||||
sleep(delay)
|
||||
s_busy = 0
|
||||
return
|
||||
s_busy = TRUE
|
||||
addtimer(CALLBACK(src, .proc/deinitialize_two, delay, U), delay)
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/deinitialize_two(delay, mob/living/carbon/human/U)
|
||||
to_chat(U, "<span class='notice'>Now de-initializing...</span>")
|
||||
spideros = 0//Spideros resets.
|
||||
addtimer(CALLBACK(src, .proc/deinitialize_three, delay, U), delay)
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/deinitialize_three(delay, mob/living/carbon/human/U)
|
||||
to_chat(U, "<span class='notice'>Logging off, [U:real_name]. Shutting down <B>SpiderOS</B>.</span>")
|
||||
remove_ninja_verbs()
|
||||
addtimer(CALLBACK(src, .proc/deinitialize_four, delay, U), delay)
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/deinitialize_four(delay, mob/living/carbon/human/U)
|
||||
to_chat(U, "<span class='notice'>Primary system status: <B>OFFLINE</B>.\nBackup system status: <B>OFFLINE</B>.</span>")
|
||||
addtimer(CALLBACK(src, .proc/deinitialize_five, delay, U), delay)
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/deinitialize_five(delay, mob/living/carbon/human/U)
|
||||
to_chat(U, "<span class='notice'>VOID-shift device status: <B>OFFLINE</B>.\nCLOAK-tech device status: <B>OFFLINE</B>.</span>")
|
||||
cancel_stealth()//Shutdowns stealth.
|
||||
addtimer(CALLBACK(src, .proc/deinitialize_six, delay, U), delay)
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/deinitialize_six(delay, mob/living/carbon/human/U)
|
||||
to_chat(U, "<span class='notice'>Disconnecting neural-net interface...</span>\green<B>Success</B><span class='notice'>.</span>")
|
||||
addtimer(CALLBACK(src, .proc/deinitialize_seven, delay, U), delay)
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/deinitialize_seven(delay, mob/living/carbon/human/U)
|
||||
to_chat(U, "<span class='notice'>Disengaging neural-net interface...</span>\green<B>Success</B><span class='notice'>.</span>")
|
||||
addtimer(CALLBACK(src, .proc/deinitialize_eight, delay, U), delay)
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/deinitialize_eight(delay, mob/living/carbon/human/U)
|
||||
to_chat(U, "<span class='notice'>Unsecuring external locking mechanism...\nNeural-net abolished.\nOperation status: <B>FINISHED</B>.</span>")
|
||||
remove_equip_verbs()
|
||||
U.regenerate_icons()
|
||||
s_busy = FALSE
|
||||
|
||||
@@ -20,5 +20,3 @@
|
||||
cancel_stealth()
|
||||
|
||||
sleep(10)//Checks every second.
|
||||
|
||||
|
||||
|
||||
@@ -9,33 +9,20 @@ Contents:
|
||||
*/
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/grant_equip_verbs()
|
||||
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/init
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/deinit
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/stealth
|
||||
n_gloves.verbs += /obj/item/clothing/gloves/space_ninja/proc/toggled
|
||||
n_gloves.verbs += /obj/item/clothing/gloves/space_ninja/proc/toggledrain
|
||||
|
||||
s_initialized = 1
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/remove_equip_verbs()
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/init
|
||||
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/deinit
|
||||
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/stealth
|
||||
if(n_gloves)
|
||||
n_gloves.verbs -= /obj/item/clothing/gloves/space_ninja/proc/toggled
|
||||
n_gloves.verbs -= /obj/item/clothing/gloves/space_ninja/proc/toggledrain
|
||||
|
||||
s_initialized = 0
|
||||
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/grant_ninja_verbs()
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjashift
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjasmoke
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjaboost
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjastar
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjanet
|
||||
verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninja_sword_recall
|
||||
|
||||
s_initialized=1
|
||||
slowdown=0
|
||||
@@ -43,10 +30,3 @@ Contents:
|
||||
|
||||
/obj/item/clothing/suit/space/space_ninja/proc/remove_ninja_verbs()
|
||||
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjashift
|
||||
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt
|
||||
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjasmoke
|
||||
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjaboost
|
||||
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse
|
||||
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjastar
|
||||
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjanet
|
||||
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninja_sword_recall
|
||||
|
||||
Reference in New Issue
Block a user