mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 14:07:51 +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:
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user