mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 20:16:55 +01:00
#Fixed ninja teleporting. It will not blackscreen when Phase Jaunting near the map edge.
#Phase Shift will no-longer show up in the Ninja verb panel. You can right-click on turfs only to use it. #Ninjas can now spawn a sword in their active hand. Besides killing dudes, it's also useful for slicing through doors, lockers, walls, and so on. It'll disappear if dropped or thrown, and it cannot be placed in containers. #Ninja mask now works differently when mimicking voice. You start out as "Unknown" and when toggling the voice changer it will randomly change your name with some variations. #If you switch the name back to "Unknown" you will re-active voice masking which is much less silly this time. The only way for someone to determine your true name is to remove the mask. Postmodern Space Bushido demands that you only reveal your identity in honorable combat! #Slightly updated sprites for ninja suit and accessories. Or as I'd like to call them, the Tron suit. Probably wip until I get enough motivation to redo it from scratch. #People that respawn as death commandos are now manually chosen by an admin. #Death commandos use the new suit sprites. #Added a global proc for animations. Currently only used by ninjas. #Moved around suit icons so they are grouped better. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1433 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -345,12 +345,45 @@ NINJA MASK
|
||||
set name = "Toggle Voice"
|
||||
set desc = "Toggles the voice synthesizer on or off."
|
||||
set category = "Object"
|
||||
if(src.vchange==0)
|
||||
src.vchange=1
|
||||
usr << "You enable the voice voice synthesizer."
|
||||
var/vchange = (alert("Would you like to synthesize a new name or turn off the voice synthesizer?",,"New Name","Turn Off"))
|
||||
if(vchange=="New Name")
|
||||
var/chance = rand(1,100)
|
||||
switch(chance)
|
||||
if(1 to 50)//High chance of a regular name.
|
||||
var/g = pick(0,1)
|
||||
var/first = null
|
||||
var/last = pick(last_names)
|
||||
if(g==0)
|
||||
first = pick(first_names_female)
|
||||
else
|
||||
first = pick(first_names_male)
|
||||
voice = "[first] [last]"
|
||||
if(51 to 80)//Smaller chance of a clown name.
|
||||
var/first = pick(clown_names)
|
||||
voice = "[first]"
|
||||
if(81 to 90)//Small chance of a wizard name.
|
||||
var/first = pick(wizard_first)
|
||||
var/last = pick(wizard_second)
|
||||
voice = "[first] [last]"
|
||||
if(91 to 100)//Small chance of an existing crew name.
|
||||
var/list/names = new()
|
||||
for(var/mob/living/carbon/human/M in world)
|
||||
if(M==usr||!M.client||!M.real_name) continue
|
||||
names.Add(M)
|
||||
if(!names.len)
|
||||
voice = "Cuban Pete"//Smallest chance to be the man.
|
||||
else
|
||||
var/mob/picked = pick(names)
|
||||
voice = picked.real_name
|
||||
usr << "You are now mimicking <B>[voice]</B>."
|
||||
return
|
||||
else
|
||||
src.vchange=0
|
||||
usr << "You disable the voice synthesizer."
|
||||
if(voice!="Unknown")
|
||||
usr << "You deactivate the voice synthesizer."
|
||||
voice = "Unknown"
|
||||
else
|
||||
usr << "The voice synthesizer is already deactivated."
|
||||
return
|
||||
|
||||
/obj/item/clothing/mask/gas/space_ninja/verb/switchm()
|
||||
set name = "Switch Mode"
|
||||
@@ -388,4 +421,4 @@ NINJA MASK
|
||||
else
|
||||
voice = "active"
|
||||
usr << "<B>[mode]</B> is active."
|
||||
usr << "Voice mimicking algorithm is <B>[voice]</B>."
|
||||
usr << "Voice mimicking algorithm is set to <B>[voice]</B>."
|
||||
@@ -1,9 +1,9 @@
|
||||
/*
|
||||
CONTAINS:
|
||||
SWORD
|
||||
BLADE
|
||||
AXE
|
||||
STUN BATON
|
||||
|
||||
*/
|
||||
|
||||
|
||||
@@ -51,6 +51,19 @@ STUN BATON
|
||||
New()
|
||||
color = "red"
|
||||
|
||||
|
||||
// BLADE
|
||||
//Two procs to delete the item if dropped or thrown.
|
||||
//Most of the other special functions are handled in their own files.
|
||||
|
||||
/obj/item/weapon/blade/dropped()
|
||||
del(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/blade/proc/throw()
|
||||
del(src)
|
||||
return
|
||||
|
||||
// AXE
|
||||
|
||||
/obj/item/weapon/axe/attack(target as mob, mob/user as mob)
|
||||
@@ -71,9 +84,6 @@ STUN BATON
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
// STUN BATON
|
||||
|
||||
/obj/item/weapon/baton/update_icon()
|
||||
|
||||
@@ -94,16 +94,19 @@
|
||||
|
||||
/obj/item/weapon/secstorage/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
..()
|
||||
if ((W.w_class > 3 || istype(W, /obj/item/weapon/secstorage)))
|
||||
return
|
||||
if ((istype(W, /obj/item/weapon/card/emag)) && (src.locked == 1) && (!src.emagged))
|
||||
if ( (istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/blade)) && (src.locked == 1) && (!src.emagged))
|
||||
emagged = 1
|
||||
src.overlays += image('storage.dmi', icon_sparking)
|
||||
sleep(6)
|
||||
src.overlays = null
|
||||
overlays += image('storage.dmi', icon_locking)
|
||||
locked = 0
|
||||
user << "You short out the lock on [src]."
|
||||
if(istype(W, /obj/item/weapon/blade))
|
||||
user << "You slice through the lock on [src]."
|
||||
else
|
||||
user << "You short out the lock on [src]."
|
||||
return
|
||||
if ((W.w_class > 3 || istype(W, /obj/item/weapon/secstorage)))
|
||||
return
|
||||
if ((istype(W, /obj/item/weapon/screwdriver)) && (src.locked == 1))
|
||||
sleep(6)
|
||||
|
||||
@@ -167,13 +167,16 @@
|
||||
else if(src.broken)
|
||||
user << "\red It appears to be broken."
|
||||
return
|
||||
else if(istype(W, /obj/item/weapon/card/emag) && !src.broken)
|
||||
else if( (istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/blade)) && !src.broken)
|
||||
src.broken = 1
|
||||
src.locked = 0
|
||||
src.icon_state = src.icon_broken
|
||||
for(var/mob/O in viewers(user, 3))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O << text("\blue The locker has been broken by [user] with an electromagnetic card!")
|
||||
if(istype(W, /obj/item/weapon/blade))
|
||||
for(var/mob/O in viewers(user, 3))
|
||||
O.show_message(text("\blue The locker has been sliced open by [] with an energy blade!", user), 1, text("\red You hear metal being sliced and sparks flying."), 2)
|
||||
else
|
||||
for(var/mob/O in viewers(user, 3))
|
||||
O.show_message(text("\blue The locker has been broken by [] with an electromagnetic card!", user), 1, text("You hear a faint electrical spark."), 2)
|
||||
else if(src.allowed(user))
|
||||
src.locked = !src.locked
|
||||
for(var/mob/O in viewers(user, 3))
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
overlays = null
|
||||
overlays += redlight
|
||||
return
|
||||
else if (istype(W, /obj/item/weapon/card/emag) && locked &&!broken)
|
||||
else if ( (istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/blade)) && locked &&!broken)
|
||||
overlays = null
|
||||
overlays += emag
|
||||
overlays += sparks
|
||||
|
||||
@@ -125,6 +125,13 @@
|
||||
if(isrobot(user))
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/weapon/blade))
|
||||
for(var/mob/O in viewers(user, 4))
|
||||
O.show_message(text("\blue The table was sliced apart by []!", user), 1, text("\red You hear metal coming apart."), 2)
|
||||
new /obj/item/weapon/table_parts( src.loc )
|
||||
del(src)
|
||||
return
|
||||
|
||||
user.drop_item()
|
||||
if(W && W.loc) W.loc = src.loc
|
||||
return
|
||||
@@ -180,6 +187,14 @@
|
||||
return
|
||||
if(isrobot(user))
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/weapon/blade))
|
||||
for(var/mob/O in viewers(user, 4))
|
||||
O.show_message(text("\blue The reinforced table was sliced apart by []!", user), 1, text("\red You hear metal coming apart."), 2)
|
||||
new /obj/item/weapon/table_parts/reinforced( src.loc )
|
||||
del(src)
|
||||
return
|
||||
|
||||
user.drop_item()
|
||||
if(W && W.loc) W.loc = src.loc
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user