Fixed up Deeaych's round-start cyborgs, they no longer spawn on the title screen

As a side effect of fixing this, since digging into the related code to make it not the case would be a chore and a half, round-start cyborgs are capable of being traitors, receiving the same objective/law set as an AI would. Much like a traitor AI, they can use a robotics terminal to hack themselves to unlock the emag module, at the cost of RED ANTENNA ROUGE BORG.

It has been suggested that they get additional perks, such as immunity to robotics terminal detonation/lockdown, but I am wary of adding such things right off the bat. We shall see.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1204 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
n3ophyt3@gmail.com
2011-03-18 21:06:38 +00:00
parent 74b90c6e84
commit f5350a0119
10 changed files with 5751 additions and 5723 deletions
@@ -18,13 +18,17 @@
else
src.lawsync()
src << "<b>Laws synced with AI, be sure to note any changes.</b>"
if (mind.special_role == "traitor")
src << "<b>Remember, your AI does NOT share or know about your law 0."
else
src << "<b>No AI selected to sync laws with, disabling lawsync protocol.</b>"
src.lawupdate = 0
who << "<b>Obey these laws:</b>"
laws.show_laws(who)
if (connected_ai)
if (mind.special_role == "traitor" && connected_ai)
who << "<b>Remember, [connected_ai.name] is technically your master, but your objective comes first.</b>"
else if (connected_ai)
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>"
@@ -64,8 +68,9 @@
if (length(temp) > 0)
src.laws.ion[index] = temp
temp = master.zeroth
src.laws.zeroth = temp
if (!checktraitor(src))
temp = master.zeroth
src.laws.zeroth = temp
src.laws.inherent.len = master.inherent.len
for (var/index = 1, index <= master.inherent.len, index++)
+6 -3
View File
@@ -260,8 +260,8 @@ mob/new_player
//for(var/datum/data/record/t in data_core.general)
// if((t.fields["name"] == character.real_name) && (t.fields["rank"] == "Unassigned"))
// t.fields["rank"] = rank
ManifestLateSpawn(character)
if(character.mind.assigned_role != "Cyborg")
ManifestLateSpawn(character)
if(ticker)
if (ticker.current_state == GAME_STATE_PLAYING)
var/list/mob/living/silicon/ai/ailist = list()
@@ -270,10 +270,13 @@ mob/new_player
ailist += A
if (ailist.len)
var/mob/living/silicon/ai/announcer = pick(ailist)
announcer.say("[character.real_name] has signed up as [rank].")
if(character.mind.assigned_role != "Cyborg")
announcer.say("[character.real_name] has signed up as [rank].")
var/starting_loc = pick(latejoin)
character.loc = starting_loc
if(character.mind.assigned_role == "Cyborg")
character.Robotize()
del(src)
else
+4 -3
View File
@@ -839,9 +839,10 @@ datum/preferences
character.update_body()
spawn(10)
character.client.midis = midis
character.client.ooccolor = ooccolor
character.client.be_alien = be_alien
if(character)
character.client.midis = midis
character.client.ooccolor = ooccolor
character.client.be_alien = be_alien
/*
+12 -3
View File
@@ -188,7 +188,7 @@
// cyborgs produced by Robotize get an automatic power cell
O.cell = new(O)
O.cell.maxcharge = 7500
O.cell.charge = 1500
O.cell.charge = 7500
O.gender = src.gender
@@ -196,8 +196,17 @@
O.name = "Cyborg"
O.real_name = "Cyborg"
O.lastKnownIP = src.client.address
if (src.client)
src.client.mob = O
if (src.mind)
src.mind.transfer_to(O)
if (src.mind.assigned_role == "Cyborg")
src.mind.original = O
else //welp
src.mind = new /datum/mind( )
src.mind.key = src.key
src.mind.current = O
src.mind.original = O
src.mind.transfer_to(O)
ticker.minds += O.mind
O.loc = src.loc
O << "<B>You are playing a Robot. A Robot can interact with most electronic objects in its view point.</B>"
O << "<B>You must follow the laws that the AI has. You are the AI's assistant to the station basically.</B>"