#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:
noisomehollow@lycos.com
2011-04-10 22:41:23 +00:00
parent ae1d99ee73
commit 7b280b791a
28 changed files with 295 additions and 127 deletions
+20 -10
View File
@@ -12,13 +12,6 @@
var/imax = rand(5,20)
for(var/i = 0,i<imax,i++)
message += "E"
if(src.mutantrace == "golem")
if(copytext(message, 1, 2) != "*")
if(copytext(message, 1, 2) == ";")
message = ";"
else
message = ""
message += "..."
if(istype(src.virus, /datum/disease/pierrot_throat))
var/list/temp_message = dd_text2list(message, " ")
var/list/pick_list = list()
@@ -31,10 +24,26 @@
temp_message[H] = "HONK"
pick_list -= H
message = dd_list2text(temp_message, " ")
//Ninja mask obscures text but not voice. You should still come up as your own name.
if(istype(src.wear_mask, /obj/item/clothing/mask/gas/space_ninja)&&!src.wear_mask:vchange)
//Ninja mask obscures text and voice if set to do so.
if(istype(src.wear_mask, /obj/item/clothing/mask/gas/space_ninja)&&src.wear_mask:voice=="Unknown")
if(copytext(message, 1, 2) != "*")
//This text is hilarious.
var/list/temp_message = dd_text2list(message, " ")
var/list/pick_list = list()
for(var/i = 1, i <= temp_message.len, i++)
pick_list += i
for(var/i=1, i <= abs(temp_message.len/3), i++)
var/H = pick(pick_list)
if(findtext(temp_message[H], "*") || findtext(temp_message[H], ";") || findtext(temp_message[H], ":")) continue
temp_message[H] = ninjaspeak(temp_message[H])
pick_list -= H
message = dd_list2text(temp_message, " ")
message = dd_replaceText(message, "o", "¤")
message = dd_replaceText(message, "p", "þ")
message = dd_replaceText(message, "l", "£")
message = dd_replaceText(message, "s", "§")
message = dd_replaceText(message, "u", "µ")
message = dd_replaceText(message, "b", "ß")
/*This text is hilarious but also absolutely retarded.
message = dd_replaceText(message, "l", "r")
message = dd_replaceText(message, "rr", "ru")
message = dd_replaceText(message, "v", "b")
@@ -60,6 +69,7 @@
message = dd_replaceText(message, "than", "sen")
message = dd_replaceText(message, ".", "")
message = lowertext(message)
*/
..(message)
/mob/living/carbon/human/say_understands(var/other)
+2 -1
View File
@@ -278,9 +278,10 @@
if (italics)
message_a = "<i>[message_a]</i>"
if (!istype(src, /mob/living/carbon/human) || istype(src.wear_mask, /obj/item/clothing/mask/gas/voice))
rendered = "<span class='game say'><span class='name'>[src.name]</span> <span class='message'>[message_a]</span></span>"
else if (istype(src.wear_mask, /obj/item/clothing/mask/gas/space_ninja))
rendered = "<span class='game say'><span class='name'>[src.wear_mask:voice]</span> <span class='message'>[message_a]</span></span>"
else
rendered = "<span class='game say'><span class='name'>[src.real_name]</span>[alt_name] <span class='message'>[message_a]</span></span>"
+36 -10
View File
@@ -229,15 +229,15 @@
/proc/stutter(n)
var/te = html_decode(n)
var/t = ""
n = length(n)
var/t = ""//placed before the message. Not really sure what it's for.
n = length(n)//length of the entire word
var/p = null
p = 1
while(p <= n)
var/n_letter = copytext(te, p, p + 1)
p = 1//1 is the start of any word
while(p <= n)//while P, which starts at 1 is less or equal to N which is the length.
var/n_letter = copytext(te, p, p + 1)//copies text from a certain distance. In this case, only one letter at a time.
if (prob(80))
if (prob(10))
n_letter = text("[n_letter][n_letter][n_letter][n_letter]")
n_letter = text("[n_letter][n_letter][n_letter][n_letter]")//replaces the current letter with this instead.
else
if (prob(20))
n_letter = text("[n_letter][n_letter][n_letter]")
@@ -246,8 +246,34 @@
n_letter = null
else
n_letter = text("[n_letter][n_letter]")
t = text("[t][n_letter]")//since the above is ran through for each letter, the text just adds up back to the original word.
p++//for each letter p is increased to find where the next letter will be.
return copytext(sanitize(t),1,MAX_MESSAGE_LEN)
/proc/ninjaspeak(n)
//The difference with stutter is that this proc can stutter more than 1 letter
//The issue here is that anything that does not have a space is treated as one word (in many instances). For instance, "LOOKING," is a word, including the comma.
//It's fairly easy to fix if dealing with single letters but not so much with compounds of letters./N
var/te = html_decode(n)
var/t = ""
n = length(n)
var/p = 1
while(p <= n)
var/n_letter
var/n_mod = rand(1,4)
if(p+n_mod>n+1)
n_letter = copytext(te, p, n+1)
else
n_letter = copytext(te, p, p+n_mod)
if (prob(50))
if (prob(30))
n_letter = text("[n_letter]-[n_letter]-[n_letter]")
else
n_letter = text("[n_letter]-[n_letter]")
else
n_letter = text("[n_letter]")
t = text("[t][n_letter]")
p++
p=p+n_mod
return copytext(sanitize(t),1,MAX_MESSAGE_LEN)
/proc/shake_camera(mob/M, duration, strength=1)
@@ -977,16 +1003,16 @@
..()
return
/mob/proc/show_message(msg, type, alt, alt_type)
/mob/proc/show_message(msg, type, alt, alt_type)//Message, type of message (1 or 2), alternative message, alt message type (1 or 2)
if(!src.client) return
if (type)
if ((type & 1 && (src.sdisabilities & 1 || (src.blinded || src.paralysis))))
if ((type & 1 && (src.sdisabilities & 1 || (src.blinded || src.paralysis))))//Vision related
if (!( alt ))
return
else
msg = alt
type = alt_type
if ((type & 2 && (src.sdisabilities & 4 || src.ear_deaf)))
if ((type & 2 && (src.sdisabilities & 4 || src.ear_deaf)))//Hearing related
if (!( alt ))
return
else