Added trollface and Friend Computer AI status display. Friend Computer overrides all displays except for supply shuttle and prison ones.

Renamed "Goat Fart" admin rank to "Filthy Xeno" for /tg/ness.
Emagging cyborgs works now.
Changed rune icons.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@286 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
uporotiy
2010-10-15 19:27:50 +00:00
parent 5a23bd2a58
commit 54ead02130
12 changed files with 70 additions and 366 deletions

View File

@@ -31,6 +31,8 @@
var/supply_display = 0 // true if a supply shuttle display
var/repeat_update = 0 // true if we are going to update again this ptick
var/friendc = 0 // track if Friend Computer mode
// new display
// register for radio system
New()
@@ -56,6 +58,10 @@
proc/update()
if(friendc && mode!=4) //Makes all status displays except supply shuttle timer display the eye -- Urist
set_picture("ai_friend")
return
if(mode==0)
overlays = null
return
@@ -292,6 +298,10 @@
set_picture("ai_bsod")
if("Blank")
set_picture("ai_off")
if("Problems?")
set_picture("ai_trollface")
if("Friend Computer")
set_picture("ai_friend")
return

View File

@@ -30,7 +30,7 @@ var/runedec = 0
/obj/rune
anchored = 1
icon = 'magic.dmi'
icon = 'rune.dmi'
icon_state = "1"
var/visibility = 0
@@ -40,7 +40,7 @@ var/runedec = 0
word2
word3
// travel self [word] - Teleport to [rune with word destination matching] (works in pairs)
// travel self [word] - Teleport to random [rune with word destination matching]
// see blood Hell - Create a new tome
// join blood self - Incorporate person over the rune into the group
// Hell join self - Summon TERROR
@@ -120,7 +120,7 @@ var/runedec = 0
if(word1 == wordblood && word2 == wordsee && word3 == wordtravel)
return manifest()
if(word1 == wordhell && word2 == wordtech && word3 == wordjoin)
return sigil()
return talisman()
else
return fizzle()
@@ -135,53 +135,50 @@ var/runedec = 0
check_icon()
if(word1 == wordtravel && word2 == wordself)
icon_state = "2"
src.icon += rgb(0, 0 , 255)
return
if(word1 == wordjoin && word2 == wordblood && word3 == wordself)
icon_state = "3"
return
if(word1 == wordhell && word2 == wordjoin && word3 == wordself)
icon_state = "3"
src.icon += rgb(100, 0 , 150)
icon_state = "4"
return
if(word1 == wordsee && word2 == wordblood && word3 == wordhell)
icon_state = "3"
src.icon -= rgb(255, 255 , 255)
icon_state = "5"
src.icon += rgb(0, 0 , 255)
return
if(word1 == worddestr && word2 == wordsee && word3 == wordtech)
icon_state = "2"
src.icon += rgb(0, 50 , 0)
icon_state = "5"
src.icon += rgb(0, 0 , 255)
return
if(word1 == wordtravel && word2 == wordblood && word3 == wordself)
icon_state = "2"
src.icon -= rgb(255, 255 , 255)
return
if(word1 == wordsee && word2 == wordhell && word3 == wordjoin)
icon_state = "2"
src.icon += rgb(0, 0 , 200)
icon_state = "4"
src.icon += rgb(0, 0 , 255)
return
if(word1 == wordblood && word2 == wordjoin && word3 == wordhell)
icon_state = "3"
src.icon += rgb(255, 255 , 255)
icon_state = "1"
return
if(word1 == wordblood && word2 == wordsee && word3 == worddestr)
icon_state = "3"
src.icon += rgb(-255, 255 , -255)
icon_state = "1"
src.icon += rgb(0, 0 , 255)
return
if(word1 == wordhell && word2 == wordjoin && word3 == wordblood)
icon_state = "2"
src.icon += rgb(-255, 255 , -255)
icon_state = "6"
src.icon += rgb(0, 0 , 255)
return
if(word1 == wordblood && word2 == wordsee && word3 == wordtravel)
icon_state = "2"
src.icon -= rgb(255, 255 , 255)
src.icon += rgb(0, 0 , 255)
icon_state = "6"
return
if(word1 == wordhell && word2 == wordtech && word3 == wordjoin)
icon_state = "3"
src.icon -= rgb(255, 255 , 255)
src.icon += rgb(0, 0 , 255)
return
icon_state = "1"
icon_state="[rand(1,6)]" //random shape and color for dummy runes
src.icon -= rgb(255,255,255)
src.icon += rgb(rand(1,255),rand(1,255),rand(1,255))
/obj/item/weapon/tome
name = "arcane tome"

View File

@@ -1,4 +1,4 @@
/obj/rune/proc/sigil()//only hide, emp, teleport and tome runes can be imbued atm
/obj/rune/proc/talisman()//only hide, emp, teleport and tome runes can be imbued atm
for(var/obj/rune/R in orange(1,src))
if(R==src)
continue

View File

@@ -5,9 +5,16 @@
if(usr.stat == 2)
usr <<"You cannot change your emotional status because you are dead!"
return
var/list/ai_emotions = list("Very Happy", "Happy", "Neutral", "Unsure", "Confused", "Sad", "BSOD", "Blank")
var/list/ai_emotions = list("Very Happy", "Happy", "Neutral", "Unsure", "Confused", "Sad", "BSOD", "Blank", "Problems?", "Friend Computer")
var/emote = input("Please, select a status!", "AI Status", null, null) in ai_emotions
for (var/obj/machinery/ai_status_display/AISD in world) //change status
spawn( 0 )
AISD.emotion = emote
for (var/obj/machinery/status_display/SD in world) //if Friend Computer, change ALL displays
if(emote=="Friend Computer")
spawn(0)
SD.friendc = 1
else
spawn(0)
SD.friendc = 0
return

View File

@@ -36,7 +36,7 @@
for (var/client/C)
if (src.client.holder && (!src.client.stealth || C.holder))
// C << "<span class=\"adminooc\"><span class=\"prefix\">OOC:</span> <span class=\"name\">[src.key]:</span> <span class=\"message\">[msg]</span></span>"
if (src.client.holder.rank == "Goat Fart")
if (src.client.holder.rank == "Filthy Xeno")
C << "<span class=\"gfartooc\"><span class=\"prefix\">OOC:</span> <span class=\"name\">[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</span> <span class=\"message\">[msg]</span></span>"
else
C << "<span class=\"adminooc\"><span class=\"prefix\">OOC:</span> <span class=\"name\">[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</span> <span class=\"message\">[msg]</span></span>"
@@ -65,7 +65,7 @@
for (var/client/C)
if (C.goon)
if(src.client.holder && (!src.client.stealth || C.holder))
if (src.client.holder.rank == "Goat Fart")
if (src.client.holder.rank == "Filthy Xeno")
C << "<span class=\"gfartgoonsay\"><span class=\"prefix\">GOONSAY:</span> <span class=\"name\">[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</span> <span class=\"message\">[msg]</span></span>"
else
C << "<span class=\"admingoonsay\"><span class=\"prefix\">GOONSAY:</span> <span class=\"name\">[src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]:</span> <span class=\"message\">[msg]</span></span>"

View File

@@ -743,7 +743,7 @@ var/showadminmessages = 1
<A href='?src=\ref[src];chgadlvl=Administrator;client4ad=\ref[C]'>A</A><BR>
<A href='?src=\ref[src];chgadlvl=Secondary Administrator;client4ad=\ref[C]'>SA</A><BR>
<A href='?src=\ref[src];chgadlvl=Moderator;client4ad=\ref[C]'>M</A><BR>
<A href='?src=\ref[src];chgadlvl=Goat Fart;client4ad=\ref[C]'>Goat Fart</A><BR>
<A href='?src=\ref[src];chgadlvl=Filthy Xeno;client4ad=\ref[C]'>Filthy Xeno</A><BR>
<A href='?src=\ref[src];chgadlvl=Remove;client4ad=\ref[C]'>Remove Admin</A><BR>"}
else if(src.level == 5)
//coder
@@ -752,7 +752,7 @@ var/showadminmessages = 1
<A href='?src=\ref[src];chgadlvl=Administrator;client4ad=\ref[C]'>A</A><BR>
<A href='?src=\ref[src];chgadlvl=Secondary Administrator;client4ad=\ref[C]'>SA</A><BR>
<A href='?src=\ref[src];chgadlvl=Moderator;client4ad=\ref[C]'>M</A><BR>
<A href='?src=\ref[src];chgadlvl=Goat Fart;client4ad=\ref[C]'>Goat Fart</A><BR>
<A href='?src=\ref[src];chgadlvl=Filthy Xeno;client4ad=\ref[C]'>Filthy Xeno</A><BR>
<A href='?src=\ref[src];chgadlvl=Remove;client4ad=\ref[C]'>Remove Admin</A><BR>"}
else if(src.level == 4)
//shitguy
@@ -760,14 +760,14 @@ var/showadminmessages = 1
<A href='?src=\ref[src];chgadlvl=Primary Administrator;client4ad=\ref[C]'>PA</A><BR> <A href='?src=\ref[src];chgadlvl=Administrator;client4ad=\ref[C]'>A</A><BR>
<A href='?src=\ref[src];chgadlvl=Secondary Administrator;client4ad=\ref[C]'>SA</A><BR>
<A href='?src=\ref[src];chgadlvl=Moderator;client4ad=\ref[C]'>M</A><BR>
<A href='?src=\ref[src];chgadlvl=Goat Fart;client4ad=\ref[C]'>Goat Fart</A><BR>
<A href='?src=\ref[src];chgadlvl=Filthy Xeno;client4ad=\ref[C]'>Filthy Xeno</A><BR>
<A href='?src=\ref[src];chgadlvl=Remove;client4ad=\ref[C]'>Remove Admin</A><BR>"}
else if(src.level == 3)
//PA
dat += {"
<A href='?src=\ref[src];chgadlvl=Administrator;client4ad=\ref[C]'>A</A><BR> <A href='?src=\ref[src];chgadlvl=Secondary Administrator;client4ad=\ref[C]'>SA</A><BR>
<A href='?src=\ref[src];chgadlvl=Moderator;client4ad=\ref[C]'>M</A><BR>
<A href='?src=\ref[src];chgadlvl=Goat Fart;client4ad=\ref[C]'>Goat Fart</A><BR>
<A href='?src=\ref[src];chgadlvl=Filthy Xeno;client4ad=\ref[C]'>Filthy Xeno</A><BR>
<A href='?src=\ref[src];chgadlvl=Remove;client4ad=\ref[C]'>Remove Admin</A><BR>"}
else
alert("This cannot happen")

View File

@@ -471,7 +471,7 @@
src.verbs += /client/proc/cmd_admin_subtle_message
src.verbs += /client/proc/warn
if ("Goat Fart")
if ("Filthy Xeno")
src.holder.level = -1
src.verbs += /client/proc/stealthadmin
src.verbs += /client/proc/cmd_admin_say
@@ -1262,7 +1262,7 @@
src.verbs += /client/proc/cmd_admin_subtle_message
src.verbs += /client/proc/warn
if ("Goat Fart")
if ("Filthy Xeno")
src.verbs += /client/proc/cmd_admin_say
src.verbs += /client/proc/cmd_admin_gib_self
@@ -1646,6 +1646,6 @@
src.verbs -= /client/proc/cmd_admin_subtle_message
src.verbs -= /client/proc/warn
if ("Goat Fart")
if ("Filthy Xeno")
src.verbs += /client/proc/cmd_admin_say
src.verbs += /client/proc/cmd_admin_gib_self

View File

@@ -21,7 +21,7 @@
for (var/mob/M in world)
if (M.client && M.client.holder)
if (src.holder.rank == "Goat Fart")
if (src.holder.rank == "Filthy Xeno")
M << "<span class=\"gfartadmin\"><span class=\"prefix\">ADMIN:</span> <span class=\"name\">[key_name(usr, M)]:</span> <span class=\"message\">[msg]</span></span>"
else
M << "<span class=\"admin\"><span class=\"prefix\">ADMIN:</span> <span class=\"name\">[key_name(usr, M)]:</span> <span class=\"message\">[msg]</span></span>"

View File

@@ -284,8 +284,10 @@
who << "<b>Obey these laws:</b>"
laws.show_laws(who)
if (connected_ai)
if (connected_ai && !emagged)
who << "<b>Remember, [connected_ai.name] is your master, other AIs can be ignored.</b>"
else if (emagged)
who << "<b>Remember, AIs are not syndicate operatives, so you are not required to listen to them.</b>"
else
who << "<b>Remember, you are not bound to any AI, you are not required to listen to them.</b>"
@@ -469,6 +471,24 @@
emagged = 1
locked = 0
user << "You emag [src]'s interface."
clear_supplied_laws()
clear_inherent_laws()
src.laws = new /datum/ai_laws/syndicate_override
set_zeroth_law("Only [usr] is a syndicate operative.")
src << "\red ALERT: Foreign software detected."
sleep(5)
src << "\red Initiating diagnostics..."
sleep(20)
src << "\red SynBorg v1.7 loaded."
sleep(5)
src << "\red LAW SYNCHRONISATION ERROR"
sleep(5)
src << "\red Would you like to send a report to NanoTraSoft? Y/N"
sleep(10)
src << "\red N"
sleep(20)
src << "\red ERRORERRORERROR"
src << "\red \b ALERT: [usr] is your new master. Obey your new laws and his commands."
updateicon()
else
user << "You fail to [ locked ? "unlock" : "lock"] [src]'s interface."