EXTREMELY buggy Ninja code

This commit is contained in:
SamCroswell
2014-01-14 23:58:21 -05:00
parent e8e846400f
commit 51a4a6ee4f
9 changed files with 4346 additions and 4217 deletions
+62 -4
View File
@@ -5,6 +5,64 @@
// END_INTERNALS
// BEGIN_FILE_DIR
#define FILE_DIR .
#define FILE_DIR "code"
#define FILE_DIR "code/TriDimension"
#define FILE_DIR "code/WorkInProgress"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Jungle"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/ShieldGen"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter"
#define FILE_DIR "code/WorkInProgress/Susan"
#define FILE_DIR "html"
#define FILE_DIR "icons"
#define FILE_DIR "icons/48x48"
#define FILE_DIR "icons/ass"
#define FILE_DIR "icons/effects"
#define FILE_DIR "icons/mecha"
#define FILE_DIR "icons/misc"
#define FILE_DIR "icons/mob"
#define FILE_DIR "icons/mob/human_races"
#define FILE_DIR "icons/mob/otherHuman"
#define FILE_DIR "icons/NTOS"
#define FILE_DIR "icons/obj"
#define FILE_DIR "icons/obj/assemblies"
#define FILE_DIR "icons/obj/atmospherics"
#define FILE_DIR "icons/obj/clothing"
#define FILE_DIR "icons/obj/doors"
#define FILE_DIR "icons/obj/flora"
#define FILE_DIR "icons/obj/machines"
#define FILE_DIR "icons/obj/pipes"
#define FILE_DIR "icons/obj/power_cond"
#define FILE_DIR "icons/pda_icons"
#define FILE_DIR "icons/spideros_icons"
#define FILE_DIR "icons/stamp_icons"
#define FILE_DIR "icons/Testing"
#define FILE_DIR "icons/turf"
#define FILE_DIR "icons/vending_icons"
#define FILE_DIR "nano"
#define FILE_DIR "nano/images"
#define FILE_DIR "sound"
#define FILE_DIR "sound/AI"
#define FILE_DIR "sound/ambience"
#define FILE_DIR "sound/effects"
#define FILE_DIR "sound/effects/turret"
#define FILE_DIR "sound/effects/wind"
#define FILE_DIR "sound/hallucinations"
#define FILE_DIR "sound/items"
#define FILE_DIR "sound/machines"
#define FILE_DIR "sound/mecha"
#define FILE_DIR "sound/misc"
#define FILE_DIR "sound/music"
#define FILE_DIR "sound/piano"
#define FILE_DIR "sound/turntable"
#define FILE_DIR "sound/violin"
#define FILE_DIR "sound/voice"
#define FILE_DIR "sound/voice/complionator"
#define FILE_DIR "sound/voice/Serithi"
#define FILE_DIR "sound/vox"
#define FILE_DIR "sound/vox_fem"
#define FILE_DIR "sound/weapons"
// END_FILE_DIR
// BEGIN_PREFERENCES
#define DEBUG
@@ -834,10 +892,10 @@
#include "code\modules\customitems\item_spawning.dm"
#include "code\modules\customitems\definitions\base.dm"
#include "code\modules\destilery\main.dm"
#include "code\modules\detectivework\detective_work.dm"
#include "code\modules\detectivework\evidence.dm"
#include "code\modules\detectivework\footprints_and_rag.dm"
#include "code\modules\detectivework\scanner.dm"
#include "code\modules\DetectiveWork\detective_work.dm"
#include "code\modules\DetectiveWork\evidence.dm"
#include "code\modules\DetectiveWork\footprints_and_rag.dm"
#include "code\modules\DetectiveWork\scanner.dm"
#include "code\modules\economy\Accounts.dm"
#include "code\modules\economy\Accounts_DB.dm"
#include "code\modules\economy\ATM.dm"
+1 -1
View File
@@ -286,4 +286,4 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
perform(targets)
return
return
+46
View File
@@ -16,6 +16,52 @@
if("No")
return
/obj/structure/ninjatele
name = "Long-Distance Teleportation Console"
desc = "A console used to send a Spider Clan agent long distances rapidly."
icon = 'icons/obj/ninjaobjects.dmi'
icon_state = "teleconsole"
anchored = 1
density = 0
var/list/teleportpoints = list()
attackby(obj/item/weapon/W as obj, mob/user as mob)
return attack_hand(user)
attack_hand(mob/user as mob)
for(var/obj/effect/landmark/L in landmarks_list)
if(L.name == "carpspawn")
teleportpoints.Add(L)
if (user.mind.special_role=="Ninja")
switch(alert("Phase Jaunt relay primed, target locked as [station_name()], initiate VOID-shift translocation? (Warning! Internals required!)",,"Yes","No"))
if("Yes")
if(user.z != src.z) return
user.loc.loc.Exited(user)
user.loc = pick(teleportpoints) // 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)
anim(user.loc,user,'icons/mob/mob.dmi',,"phasein",,user.dir)
user <<"\blue <b>VOID-Shift</b> translocation successful"
if("No")
user <<"\red <b>Process aborted!</b>"
return
else
user<< "\red <B>FĆAL �Rr�R</B>: µ§er n¤t rec¤gnized, c-c¤ntr-r¤£§-£§ £¤cked."
/obj/effect/mark
var/mark = ""
icon = 'icons/misc/mark.dmi'
+5
View File
@@ -512,6 +512,11 @@ proc/process_ghost_teleport_locs()
icon_state = "yellow"
requires_power = 0
/area/ninja_outpost
name = "\improper SpiderClan Outpost"
icon_state = "ninjabase"
requires_power = 0
/area/vox_station/transit
name = "\improper hyperspace"
icon_state = "shuttle"
+39 -33
View File
@@ -78,26 +78,29 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo
var/mob/living/carbon/human/U = affecting
var/turf/destination = get_teleport_loc(U.loc,U,9,1,3,1,0,1)
var/turf/mobloc = get_turf(U.loc)//To make sure that certain things work properly below.
if(destination&&istype(mobloc, /turf))//The turf check prevents unusual behavior. Like teleporting out of cryo pods, cloners, mechs, etc.
spawn(0)
playsound(U.loc, "sparks", 50, 1)
anim(mobloc,src,'icons/mob/mob.dmi',,"phaseout",,U.dir)
if(mobloc.loc != /area/ninja_outpost)
if(destination&&istype(mobloc, /turf))//The turf check prevents unusual behavior. Like teleporting out of cryo pods, cloners, mechs, etc.
spawn(0)
playsound(U.loc, "sparks", 50, 1)
anim(mobloc,src,'icons/mob/mob.dmi',,"phaseout",,U.dir)
handle_teleport_grab(destination, U)
U.loc = destination
handle_teleport_grab(destination, U)
U.loc = destination
spawn(0)
spark_system.start()
playsound(U.loc, 'sound/effects/phasein.ogg', 25, 1)
playsound(U.loc, "sparks", 50, 1)
anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir)
spawn(0)
spark_system.start()
playsound(U.loc, 'sound/effects/phasein.ogg', 25, 1)
playsound(U.loc, "sparks", 50, 1)
anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir)
//spawn(0)
//destination.kill_creatures(U)//Any living mobs in teleport area are gibbed. Check turf procs for how it does it.
s_coold = 1
cell.charge-=(C)
//spawn(0)
//destination.kill_creatures(U)//Any living mobs in teleport area are gibbed. Check turf procs for how it does it.
s_coold = 1
cell.charge-=(C)
else
U << "\red The VOID-shift device is malfunctioning, <B>teleportation failed</B>."
else
U << "\red The VOID-shift device is malfunctioning, <B>teleportation failed</B>."
U<< "\red Your <b>NINJA HONOR</b> prevents you from teleporting here!"
return
@@ -114,26 +117,29 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo
if(!ninjacost(C,1))
var/mob/living/carbon/human/U = affecting
var/turf/mobloc = get_turf(U.loc)//To make sure that certain things work properly below.
if((!T.density)&&istype(mobloc, /turf))
spawn(0)
playsound(U.loc, 'sound/effects/sparks4.ogg', 50, 1)
anim(mobloc,src,'icons/mob/mob.dmi',,"phaseout",,U.dir)
if(mobloc.loc != /area/ninja_outpost)
if((!T.density)&&istype(mobloc, /turf))
spawn(0)
playsound(U.loc, 'sound/effects/sparks4.ogg', 50, 1)
anim(mobloc,src,'icons/mob/mob.dmi',,"phaseout",,U.dir)
handle_teleport_grab(T, U)
U.loc = T
handle_teleport_grab(T, U)
U.loc = T
spawn(0)
spark_system.start()
playsound(U.loc, 'sound/effects/phasein.ogg', 25, 1)
playsound(U.loc, 'sound/effects/sparks2.ogg', 50, 1)
anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir)
spawn(0)
spark_system.start()
playsound(U.loc, 'sound/effects/phasein.ogg', 25, 1)
playsound(U.loc, 'sound/effects/sparks2.ogg', 50, 1)
anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir)
//spawn(0) // Commented out for now, possible implementation in a later upgrade tree.
//T.kill_creatures(U)
s_coold = 1
cell.charge-=(C)
//spawn(0) // Commented out for now, possible implementation in a later upgrade tree.
//T.kill_creatures(U)
s_coold = 1
cell.charge-=(C)
else
U << "\red You cannot teleport into solid walls or from solid matter"
else
U << "\red You cannot teleport into solid walls or from solid matter"
U<< "\red Your <b>NINJA HONOR</b> prevents you from teleporting here!"
return
//=======//EM PULSE//=======//
@@ -328,11 +334,11 @@ Or otherwise known as anime mode. Which also happens to be ridiculously powerful
set desc = "Utilizes the internal VOID-shift device to mutilate creatures in a straight line."
set category = "Ninja Ability"
set popup_menu = 0
if(!ninjacost())
var/mob/living/carbon/human/U = affecting
var/turf/destination = get_teleport_loc(U.loc,U,5)
var/turf/mobloc = get_turf(U.loc)//To make sure that certain things work properly below.
if(destination&&istype(mobloc, /turf))
U.say("Ai Satsugai!")
spawn(0)
+28 -23
View File
@@ -501,6 +501,7 @@ ________________________________________________________________________________
var/mob/living/carbon/human/U = affecting
var/mob/living/silicon/ai/A = AI
var/display_to = s_control ? U : A//Who do we want to display certain messages to?
var/turf/mobloc // For use later on during a check in Kamikaze
if(s_control)
if(!affecting||U.stat||!s_initialized)//Check to make sure the guy is wearing the suit after clicking and it's on.
@@ -594,31 +595,35 @@ ________________________________________________________________________________
if("Unlock Kamikaze")
if(input(U)=="Divine Wind")
if( !(U.stat||U.wear_suit!=src||!s_initialized) )
if( !(cell.charge<=1||s_busy) )
s_busy = 1
for(var/i, i<4, i++)
switch(i)
if(0)
U << "\blue Engaging mode...\n\black<b>CODE NAME</b>: \red <b>KAMIKAZE</b>"
if(1)
U << "\blue Re-routing power nodes... \nUnlocking limiter..."
if(2)
U << "\blue Power nodes re-routed. \nLimiter unlocked."
if(3)
grant_kamikaze(U)//Give them verbs and change variables as necessary.
U.regenerate_icons()//Update their clothing.
ninjablade()//Summon two energy blades.
message_admins("\blue [key_name_admin(U)] used KAMIKAZE mode.")//Let the admins know.
s_busy = 0
return
sleep(s_delay)
mobloc = get_turf(U.loc)
if(mobloc.loc != /area/ninja_outpost)
if( !(U.stat||U.wear_suit!=src||!s_initialized))
if( !(cell.charge<=1||s_busy) )
s_busy = 1
for(var/i, i<4, i++)
switch(i)
if(0)
U << "\blue Engaging mode...\n\black<b>CODE NAME</b>: \red <b>KAMIKAZE</b>"
if(1)
U << "\blue Re-routing power nodes... \nUnlocking limiter..."
if(2)
U << "\blue Power nodes re-routed. \nLimiter unlocked."
if(3)
grant_kamikaze(U)//Give them verbs and change variables as necessary.
U.regenerate_icons()//Update their clothing.
ninjablade()//Summon two energy blades.
message_admins("\blue [key_name_admin(U)] used KAMIKAZE mode.")//Let the admins know.
s_busy = 0
return
sleep(s_delay)
else
U << "\red <b>ERROR<b>: \black Unable to initiate mode."
else
U << "\red <b>ERROR<b>: \black Unable to initiate mode."
U << browse(null, "window=spideros")
s_busy = 0
return
else
U << browse(null, "window=spideros")
s_busy = 0
return
U << "\red Your <b>NINJA HONOR</b> prevents you from activating Kamikaze here!"
else
U << "\red ERROR: WRONG PASSWORD!"
k_unlock = 0
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

+4165 -4156
View File
File diff suppressed because it is too large Load Diff