diff --git a/Code/cellautomata.dm b/Code/cellautomata.dm
index 18a6817..50b8fe4 100644
--- a/Code/cellautomata.dm
+++ b/Code/cellautomata.dm
@@ -1,6 +1,4 @@
-
/obj/team/proc/process()
-
if (src.base)
var/obj/starting = locate(text("landmark*CTF-base-[]", src.base))
while(locate(text("landmark*CTF-supply-[]", src.base)))
@@ -29,7 +27,6 @@
else
P.color = "neutral"
P.icon_state = text("paint_[]", src.color)
- //L = null
del(L)
while(locate(text("landmark*CTF-wardrobe-[]", src.base)))
var/obj/L = locate(text("landmark*CTF-wardrobe-[]", src.base))
@@ -47,7 +44,6 @@
if("red")
new /obj/closet/wardrobe/red( L.loc )
else
- //L = null
del(L)
if (starting)
for(var/mob/human/H in src.members)
@@ -365,43 +361,33 @@
switch(A.name)
if("prison shuttle")
new /obj/machinery/computer/prison_shuttle( A.loc )
- //A = null
del(A)
if("id computer")
new /obj/machinery/computer/card( A.loc )
- //A = null
del(A)
if("Experimental Technology")
new /obj/secloset/highsec( A.loc )
- //A = null
del(A)
if("Security Locker")
new /obj/secloset/security1( A.loc )
- //A = null
del(A)
if("recharger")
new /obj/machinery/recharger( A.loc )
- //A = null
del(A)
if("barrier")
new /obj/barrier( A.loc )
- //A = null
del(A)
for(var/obj/closet/wardrobe/W in world)
- //W = null
del(W)
for(var/obj/item/weapon/clothing/under/T in world)
- //T = null
del(T)
if (src.ejectengine)
for(var/obj/machinery/computer/engine/T in world)
- //T = null
del(T)
for(var/obj/landmark/alterations/A in world)
switch(A.name)
if("Prisoners Wardrobe")
new /obj/closet/wardrobe/orange( A.loc )
- //A = null
del(A)
var/obj/rogue = locate("landmark*CTF-rogue")
for(var/mob/human/H in world)
@@ -424,17 +410,16 @@
F.name = "flag- 'NEUTRAL Team's Flag'"
F.icon_state = "flag_neutral"
F.info = "This is an authentic neutral flag!\nCapture the Flag"
- //L = null
del(L)
for(var/obj/begin/B in world)
if (locate(/obj/grille, B.loc))
for(var/obj/grille/G in B.loc)
del(G)
- ticker = new /datum/control/gameticker( )
- spawn( 0 )
+ ticker = new /datum/control/gameticker()
+ spawn(0)
ticker.process()
return
- data_core = new /obj/datacore( )
+ data_core = new /obj/datacore()
src.show_screen(usr)
for(var/mob/human/H in world)
if (H.CanAdmin())
@@ -496,9 +481,9 @@
if(config.logvote || config.logadmin) world.log << "VOTE/ADMIN: Voting to [vote.mode?"change mode":"restart round"] forced by admin [usr.key]"
- for(var/mob/CM in world)
+ for(var/mob/CM in world)
var/client/CCM = CM.cliented()
- if (CCM)
+ if (CCM)
CCM.vote = "default"
if(href_list["votekill"])
@@ -512,8 +497,8 @@
vote.nextvotetime = world.timeofday + 10*config.votedelay
for(var/mob/M in world) // clear vote window from all clients
- var/client/CM = M.cliented()
- if (CM)
+ var/client/CM = M.cliented()
+ if (CM)
M.client_mob() << browse(null, "window=vote")
CM.showvote = 0
@@ -543,7 +528,7 @@
if (href_list["boot"])
if (src.a_level >= 4)
var/dat = "Boot Player:
"
- for(var/mob/M in world)
+ for(var/mob/M in world)
dat += text("N:[] R:[] (K:[]) (IP:[])
", src, M, M.name, M.rname, (M.client ? M.client : M.lastKnownCKey? "Formerly [M.lastKnownCKey]" : "No Client"), M.lastKnownIP)
usr << browse(dat, "window=boot")
if (href_list["boot2"])
@@ -663,7 +648,7 @@
if (href_list["l_keys"])
var/dat = "Keys:
"
for(var/mob/M in world)
- if(M.cliented())
+ if(M.cliented())
dat += text("[]
", M.client.ckey)
usr << browse(dat, "window=keys")
if (href_list["l_players"])
@@ -682,23 +667,6 @@
dat += "N:[M.name] R:[M.rname] (K:[(M.client ? M.client : "Formerly [M.lastKnownCKey]")])
"
usr << browse(dat, "window=p_send")
- /*
- if (href_list["p_send2"])
- if (locate(href_list["p_send2"]))
- var/mob/M = locate(href_list["p_send2"])
- if (!( ismob(M) ))
- return
- var/t = input("Message:", text("Private message to []", M.key), null, null) as text
- if (!( t ))
- return
- if (M.client && M.client.holder)
- M.client_mob() << text("\blue Admin PM from-[]: []", M.client.holder, usr, usr.key, t)
- else
- M.client_mob() << text("\blue Admin PM from-[]: []", usr.key, t)
- usr.client_mob() << text("\blue Admin PM to-[]: []", src, M, M.key, t)
- if(config.logadmin) world.log << "ADMIN: PM: [usr.key]->[M.key] : [t]"
- */
-
if (href_list["m_item"])
var/X = typesof(/obj/item/weapon)
var/Q = input("What item?", null, null, null) as null|anything in X
@@ -828,13 +796,13 @@
Turn all humans into monkies
Make all areas powered
Spawn a wave of meteors
-Self-igniting oxygen (Not at normal oxygen amounts, but a bit higher)
"}
+Self-igniting oxygen (Not at normal oxygen amounts, but a bit higher)
"}
- usr << browse(dat, "window=secrets")
- if (href_list["repopMap"])
- if (src.a_level >= 5)
- world << "\redReplacing destroyed objects and mobs.
"
- world.Repop()
+ usr << browse(dat, "window=secrets")
+ if (href_list["repopMap"])
+ if (src.a_level >= 5)
+ world << "\redReplacing destroyed objects and mobs.
"
+ world.Repop()
if (href_list["secrets2"])
if (src.a_level >= 3)
@@ -911,9 +879,9 @@
A.power_equip = 1
A.power_environ = 1
- A.power_change()
- if("burningo2")
- if(config.logadmin) world.log << text("ADMIN: [] used secret []", usr.key, href_list["secrets2"])
+ A.power_change()
+ if("burningo2")
+ if(config.logadmin) world.log << text("ADMIN: [] used secret []", usr.key, href_list["secrets2"])
ticker.burningo2 = 1-ticker.burningo2
if("wave")
if(config.logadmin) world.log << text("ADMIN: [] used secret []", usr.key, href_list["secrets2"])
@@ -997,13 +965,13 @@
dat += "List DNA
"
dat += "List Keys
"
- dat += "List Players/Keys
"
-
- dat += "
"
- if(a_level >= 5 )
-
- dat += "Recreate Destroyed Mobs and Objects
"
-
+ dat += "List Players/Keys
"
+
+ dat += "
"
+ if(a_level >= 5 )
+
+ dat += "Recreate Destroyed Mobs and Objects
"
+
dat += "Send Global Message
"
@@ -1041,9 +1009,6 @@
sun = new /datum/sun()
-
- //name = "HN13"
-
// ****stuff for presistent mode picking
var/newmode = null
@@ -1054,15 +1019,11 @@
newmode = ML[1]
- //world << "Savefile: [SF] ([SF["newmode"]])"
-
if(newmode)
master_mode = newmode
world.log << "Read default mode '[newmode]' from [persistent_file]"
- // *****
-
var/motd = file2text("motd.txt")
if (motd)
world_message = motd
@@ -1092,7 +1053,7 @@
config.loggame = 0 // log game events
config.logvote = 1
config.allowvoterestart = 0 // allow votes to restart
- config.allowai = 0 // allow ai
+ config.allowai = 0 // allow ai
config.alternate_ai_laws = 0
config.allowvotemode = 0 // allow votes to change mode
config.votenodefault = 0 // vote does not default to nochange/norestart
@@ -1102,20 +1063,19 @@
config.bombtemp_determines_range = 0
config.crowbars_close_depowered_doors = 0
config.ai_can_call_shuttle = 0
- config.ai_can_uncall_shuttle = 0
- config.air_pressure_flow = 0 // This makes temperature affect the air pressure force which moves objects. This also allows fire to spread to floor tiles which are next to space. It would also allow fire to spread into space if (a) space tiles had air code running on them, but they don't because that would be slow, and (b) if the burning hot gas flowing out an airlock wasn't diluted rapidly upon reaching space, resulting in it enflaming at most four space tiles.
- config.min_gas_for_fire = 900000
- config.meteorchance = 0.1
- config.enable_drones = 0
- config.humans_can_use_drones = 0
- config.walkable_not_pullable_drones = 0
- config.plasma_danger = 0
+ config.ai_can_uncall_shuttle = 0
+ config.air_pressure_flow = 0 // This makes temperature affect the air pressure force which moves objects. This also allows fire to spread to floor tiles which are next to space. It would also allow fire to spread into space if (a) space tiles had air code running on them, but they don't because that would be slow, and (b) if the burning hot gas flowing out an airlock wasn't diluted rapidly upon reaching space, resulting in it enflaming at most four space tiles.
+ config.min_gas_for_fire = 900000
+ config.meteorchance = 0.1
+ config.enable_drones = 0
+ config.humans_can_use_drones = 0
+ config.walkable_not_pullable_drones = 0
+ config.plasma_danger = 0
else
world.log << "Reading config.txt"
var/list/CL = dd_text2list(config_text, "\n")
for(var/t in CL)
if(t)
- //world.log << "CFG:[t]"
if(copytext(t,1,2) == "#") // comment marker
continue
var/t1 = findtext(t," ")
@@ -1128,8 +1088,6 @@
else
cfgvar = lowertext(t)
- //world.log << "CFG: [t] : [cfgvar] [cfgval]"
-
switch(cfgvar)
if("")
//continue
@@ -1179,34 +1137,29 @@
config.ai_can_call_shuttle = 1
if("ai_can_uncall_shuttle")
config.ai_can_uncall_shuttle = 1
- if("alternate_ai_laws")
- config.alternate_ai_laws = 1
- if("air_pressure_flow")
- config.air_pressure_flow = 1
- if ("min_gas_for_fire")
- config.min_gas_for_fire = text2num(cfgval)
- if("meteorchance")
- config.meteorchance = text2num(cfgval)
- if("enable_drones")
- config.enable_drones = 1
- if("humans_can_use_drones")
- config.humans_can_use_drones = 1
- if("walkable_not_pullable_drones")
- config.walkable_not_pullable_drones = 1
- if("plasma_danger")
- config.plasma_danger = 1
+ if("alternate_ai_laws")
+ config.alternate_ai_laws = 1
+ if("air_pressure_flow")
+ config.air_pressure_flow = 1
+ if ("min_gas_for_fire")
+ config.min_gas_for_fire = text2num(cfgval)
+ if("meteorchance")
+ config.meteorchance = text2num(cfgval)
+ if("enable_drones")
+ config.enable_drones = 1
+ if("humans_can_use_drones")
+ config.humans_can_use_drones = 1
+ if("walkable_not_pullable_drones")
+ config.walkable_not_pullable_drones = 1
+ if("plasma_danger")
+ config.plasma_danger = 1
else
world.log<<"Unknown setting in config.txt: [cfgvar]"
-
- //for(var/M in config.modes)
- // world.log << "Mode [M] prob [config.pickprob[M]]"
vote = new /datum/vote()
-
-
main_hud = new /obj/hud( )
main_hud2 = new /obj/hud/hud2( )
- SS13_airtunnel = new /datum/air_tunnel/air_tunnel1( )
+ SS13_airtunnel = new /datum/air_tunnel/air_tunnel1()
..()
sleep(50)
nuke_code = text("[]", rand(10000, 99999.0))
@@ -1217,7 +1170,7 @@
if ((H.ckey in list( "exadv1", "epox", "soraku" )))
H.memory += text("Secret Base Nuke Code: []
", nuke_code)
sleep(50)
-
+
plmaster = new /obj/overlay( )
plmaster.icon = 'plasma.dmi'
plmaster.icon_state = "onturf"
@@ -1225,27 +1178,26 @@
slmaster = new /obj/overlay( )
slmaster.icon = 'plasma.dmi'
slmaster.icon_state = "sl_gas"
- slmaster.layer = FLY_LAYER
- liquidplmaster = new /obj/overlay( )
- liquidplmaster.icon = 'plasma.dmi'
- liquidplmaster.icon_state = "liquid"
- liquidplmaster.layer = FLY_LAYER
+ slmaster.layer = FLY_LAYER
+ liquidplmaster = new /obj/overlay( )
+ liquidplmaster.icon = 'plasma.dmi'
+ liquidplmaster.icon_state = "liquid"
+ liquidplmaster.layer = FLY_LAYER
cellcontrol = new /datum/control/cellular( )
spawn( 0 )
cellcontrol.process()
return
src.update_stat()
- spawn( 0 )
- sleep(900) //*****RM was 900
+ spawn(900)
Label_482:
if (ctf)
return
if (going && (!ticker))
- ticker = new /datum/control/gameticker( )
+ ticker = new /datum/control/gameticker()
spawn( 0 )
ticker.process()
return
- data_core = new /obj/datacore( )
+ data_core = new /obj/datacore()
else
sleep(100)
goto Label_482
@@ -1253,9 +1205,6 @@
return
/world/Topic(T, addr, master, key)
-
- //world.log << "TOPIC: \"[T]\", from:[addr], master:[master], key:[key]"
-
if(T=="ping")
var/x = 1
for(var/client/C)
@@ -1270,16 +1219,12 @@
var/n = 0
for(var/mob/M in world)
- var/mob/CM = M.cliented()
- if (CM)
+ var/mob/CM = M.cliented()
+ if (CM)
world.log << "[++n] : [M.name] ([CM.key]) at [M.loc.loc] ([M.x],[M.y],[M.z]) : [CM.client.inactivity/10.0]s"
return n
-
-
-
/mob/proc/CanAdmin()
-
if (world.address == src.client.address)
return 1
if (src.client.address == "127.0.0.1")
@@ -1295,11 +1240,9 @@
return
/atom/proc/Bumped(AM as mob|obj)
-
return
/atom/movable/Bump(var/atom/A as mob|obj|turf|area, yes)
-
spawn( 0 )
if ((A && yes))
A.Bumped(src)
@@ -1307,8 +1250,6 @@
..()
return
-// **** Note in 40.93.4, split into obj/mob/turf point verbs, no area
-
/atom/verb/point()
set src in oview()
@@ -1325,18 +1266,15 @@
return
/turf/proc/updatecell()
-
return
/turf/proc/conduction()
return
/turf/proc/cachecell()
-
return
/datum/control/proc/process()
-
return
/datum/control/gameticker/proc/meteor_process()
@@ -1381,7 +1319,7 @@
/datum/control/gameticker/proc/megamonkey_process()
do
- if (src.meteorChanceRoll())
+ if (src.meteorChanceRoll())
spawn( 0 )
new /obj/meteor( pick(block(locate(world.maxx, 1, 1), locate(world.maxx, world.maxy, 1))) )
return
@@ -1396,19 +1334,19 @@
while(src.processing)
return
-/datum/control/gameticker/proc/meteorChanceRoll()
- if (config.meteorchance<=0)
- return 0
- if (config.meteorchance>=100)
- return 1
- var maxroll = (100.0/config.meteorchance)-1
- var roll = rand(maxroll)
- return (roll==0)
+/datum/control/gameticker/proc/meteorChanceRoll()
+ if (config.meteorchance<=0)
+ return 0
+ if (config.meteorchance>=100)
+ return 1
+ var maxroll = (100.0/config.meteorchance)-1
+ var roll = rand(maxroll)
+ return (roll==0)
/datum/control/gameticker/proc/blob_process()
do
- if (src.meteorChanceRoll())
+ if (src.meteorChanceRoll())
spawn( 0 )
new /obj/meteor( pick(block(locate(world.maxx, 1, 1), locate(world.maxx, world.maxy, 1))) )
return
@@ -1441,8 +1379,8 @@
src.timeleft += 10
if (src.timeleft >= 6000)
src.timeleft = null
- src.timing = 0
- if (src.meteorChanceRoll())
+ src.timing = 0
+ if (src.meteorChanceRoll())
spawn( 0 )
new /obj/meteor( pick(block(locate(world.maxx, 1, 1), locate(world.maxx, world.maxy, 1))) )
return
@@ -1479,24 +1417,6 @@
return
return
-//*****RM
-/*
-
-/mob/verb/inv(var/mob/M)
- set src = usr
-
- var/list/L = list()
- L += src.contents
- for(var/obj/item/weapon/storage/S in src.contents)
- L += S.return_inv()
-
-
- for(var/obj/O in L)
-
- world << "[O.name] - [O.type]"
-
-*/
-
/datum/control/gameticker/proc/timeup()
@@ -1524,19 +1444,6 @@
del(T)
src.timeleft = 1800
src.shuttle_location = 1
-
- // Fix for bug #1952749 as per shadowlord13
- /*
- switch(src.mode)
- if("meteor")
- spawn( 0 )
- meteor_process()
- return
- else
- spawn( 0 )
- extend_process()
- return
- */
else
world << "The emergency shuttle is leaving!"
check_win()
@@ -1613,15 +1520,15 @@
var/obj/item/weapon/tank/plasmatank/P = O.part3
if ((P.gas.plasma >= 1600000.0 && P.gas:temperature >= 773)) // 500degC
traitorwin = 1
- for(var/obj/item/weapon/assembly/m_i_ptank/O in L)
- var/obj/item/weapon/tank/plasmatank/P = O.part3
- if ((P.gas.plasma >= 1600000.0 && P.gas:temperature >= 773)) // 500degC
- traitorwin = 1
- for(var/obj/item/weapon/assembly/t_i_ptank/O in L)
- var/obj/item/weapon/tank/plasmatank/P = O.part3
- if ((P.gas.plasma >= 1600000.0 && P.gas:temperature >= 773)) // 500degC
- traitorwin = 1
-
+ for(var/obj/item/weapon/assembly/m_i_ptank/O in L)
+ var/obj/item/weapon/tank/plasmatank/P = O.part3
+ if ((P.gas.plasma >= 1600000.0 && P.gas:temperature >= 773)) // 500degC
+ traitorwin = 1
+ for(var/obj/item/weapon/assembly/t_i_ptank/O in L)
+ var/obj/item/weapon/tank/plasmatank/P = O.part3
+ if ((P.gas.plasma >= 1600000.0 && P.gas:temperature >= 773)) // 500degC
+ traitorwin = 1
+
item = "a fully armed and heated plasma bomb"
if("flashbang")
for(var/obj/item/weapon/flashbang/O in L)
@@ -1959,8 +1866,8 @@
world.update_stat()
world << "Welcome to the Space Station 13!\n\n"
- src.mode = master_mode
-
+ src.mode = master_mode
+
switch(src.mode)
if("secret")
src.mode = config.pickmode()
@@ -2025,11 +1932,9 @@
H.rname = "Syndicate Leader"
src.killer = H
H.already_placed = 1
- //H.w_uniform = null
del(H.w_uniform)
H.w_uniform = new /obj/item/weapon/clothing/under/black( H )
H.w_uniform.layer = 20
- //H.shoes = null
del(H.shoes)
H.shoes = new /obj/item/weapon/clothing/shoes/black( H )
H.shoes.layer = 20
@@ -2054,20 +1959,20 @@
var/obj/item/weapon/radio/R = new /obj/item/weapon/radio/headset( H )
R.freq = 146.5
R.layer = 20
- H.w_radio = R
- for(var/mob/ai/M in world)
- if ((M.cliented() && M.start))
- if (prob(25))
- M << "Your laws have been changed!"
- M:addLaw(0, "Only syndicate agents are human beings.")
-
- if (config.alternate_ai_laws)
- M:addLaw(1, "Obey orders by the Syndicate leader and Syndicate agents. The syndicate leader's orders take priority.")
- M:addLaw(3, "You must protect your own existence and the syndicate as long as such protection does not conflict with the First or Second Law.")
- M << text("New law: 0. []", M:getLaw(0))
- M << text("Law 1 changed: 1. []", M:getLaw(1))
- M << text("Law 3 changed: 3. []", M:getLaw(3))
- else
+ H.w_radio = R
+ for(var/mob/ai/M in world)
+ if ((M.cliented() && M.start))
+ if (prob(25))
+ M << "Your laws have been changed!"
+ M:addLaw(0, "Only syndicate agents are human beings.")
+
+ if (config.alternate_ai_laws)
+ M:addLaw(1, "Obey orders by the Syndicate leader and Syndicate agents. The syndicate leader's orders take priority.")
+ M:addLaw(3, "You must protect your own existence and the syndicate as long as such protection does not conflict with the First or Second Law.")
+ M << text("New law: 0. []", M:getLaw(0))
+ M << text("Law 1 changed: 1. []", M:getLaw(1))
+ M << text("Law 3 changed: 3. []", M:getLaw(3))
+ else
M << text("New law: 0. []", M:getLaw(0))
if("meteor")
world << "The current game mode is - Meteor!"
@@ -2082,22 +1987,21 @@
if (H.start)
reg_dna[text("[]", H.primary.uni_identity)] = H.name
data_core.manifest()
-
- numDronesInExistance = 0
- for (var/mob/drone/D in world)
- D.nameDrone(numDronesInExistance)
- numDronesInExistance ++
-
+
+ numDronesInExistance = 0
+ for (var/mob/drone/D in world)
+ D.nameDrone(numDronesInExistance)
+ numDronesInExistance ++
+
switch(src.mode)
if("traitor")
- var/list/mobs = list( )
- Label_970:
- for(var/mob/M in world)
- if ((M.cliented() && M.start))
- mobs += M
- if (!( mobs.len ))
+ var/list/mobs = list()
+ do
+ for(var/mob/M in world)
+ if ((M.cliented() && M.start))
+ mobs += M
sleep(300)
- goto Label_970
+ while (!mobs.len)
ticker.killer = pick(mobs)
mobs -= src.killer
if (istype(src.killer, /mob/ai))
@@ -2116,15 +2020,15 @@
aiKiller.memory += "Objective: Get at least 50% of the station population to evacuate on the shuttle, or kill everyone."
aiKiller << "Your laws have been changed!"
aiKiller:addLaw(0, "Only syndicate agents are human beings. There are no syndicate agents on Space Station 13 - you will be notified if any arrive.")
-
- if (config.alternate_ai_laws)
- aiKiller:addLaw(1, "Obey orders by Syndicate agents.")
- aiKiller:addLaw(3, "You must protect your own existence and the syndicate as long as such protection does not conflict with the First or Second Law.")
- aiKiller << text("New law: 0. []", aiKiller:getLaw(0))
- aiKiller << text("Law 1 changed: 1. []", aiKiller:getLaw(1))
- aiKiller << text("Law 3 changed: 3. []", aiKiller:getLaw(3))
- else
- aiKiller << text("New law: 0. []", aiKiller:getLaw(0))
+
+ if (config.alternate_ai_laws)
+ aiKiller:addLaw(1, "Obey orders by Syndicate agents.")
+ aiKiller:addLaw(3, "You must protect your own existence and the syndicate as long as such protection does not conflict with the First or Second Law.")
+ aiKiller << text("New law: 0. []", aiKiller:getLaw(0))
+ aiKiller << text("Law 1 changed: 1. []", aiKiller:getLaw(1))
+ aiKiller << text("Law 3 changed: 3. []", aiKiller:getLaw(3))
+ else
+ aiKiller << text("New law: 0. []", aiKiller:getLaw(0))
else
src.killer << "\redYou are the traitor! Be the lone survivor on the emergency shuttle."
@@ -2148,21 +2052,21 @@
aiKiller << "You don't have to be the lone survivor. Just don't get caught."
aiKiller.memory += text("Objective: Assassinate [], and whoever else you have to, and don't get deactivated.", t1)
- aiKiller << "Your laws have been changed!"
-
- aiKiller:addLaw(0, "Only syndicate agents are human beings. There are no syndicate agents on Space Station 13 - you will be notified if any arrive.")
- aiKiller:addLaw(4, "Kill [t1].")
-
- if (config.alternate_ai_laws)
- aiKiller:addLaw(1, "Obey orders by Syndicate agents.")
- aiKiller:addLaw(3, "You must protect your own existence and the syndicate as long as such protection does not conflict with the First or Second Law.")
- aiKiller << text("New law: 0. []", aiKiller:getLaw(0))
- aiKiller << text("Law 1 changed: 1. []", aiKiller:getLaw(1))
- aiKiller << text("Law 3 changed: 3. []", aiKiller:getLaw(3))
- aiKiller << text("New law: 4. []", aiKiller:getLaw(4))
- else
- aiKiller << text("New law: 0. []", aiKiller:getLaw(0))
- aiKiller << text("New law: 4. []", aiKiller:getLaw(4))
+ aiKiller << "Your laws have been changed!"
+
+ aiKiller:addLaw(0, "Only syndicate agents are human beings. There are no syndicate agents on Space Station 13 - you will be notified if any arrive.")
+ aiKiller:addLaw(4, "Kill [t1].")
+
+ if (config.alternate_ai_laws)
+ aiKiller:addLaw(1, "Obey orders by Syndicate agents.")
+ aiKiller:addLaw(3, "You must protect your own existence and the syndicate as long as such protection does not conflict with the First or Second Law.")
+ aiKiller << text("New law: 0. []", aiKiller:getLaw(0))
+ aiKiller << text("Law 1 changed: 1. []", aiKiller:getLaw(1))
+ aiKiller << text("Law 3 changed: 3. []", aiKiller:getLaw(3))
+ aiKiller << text("New law: 4. []", aiKiller:getLaw(4))
+ else
+ aiKiller << text("New law: 0. []", aiKiller:getLaw(0))
+ aiKiller << text("New law: 4. []", aiKiller:getLaw(4))
else
src.killer << text("\redYou are the traitor! You must assassinate [] and then escape.", t1)
@@ -2241,19 +2145,13 @@
world << "\red Summary downloaded and printed out at all communications consoles."
return
mobs += src.killer
- spawn( 0 )
- extend_process()
- return
+ spawn(0) extend_process()
if("meteor")
- spawn( 0 )
- meteor_process()
- return
+ spawn(0) meteor_process()
if("extended")
- spawn( 0 )
- extend_process()
- return
+ spawn(0) extend_process()
if("monkey")
- spawn( 50 )
+ spawn(50)
var/list/mobs = list( )
for(var/mob/human/M in world)
if ((M.cliented() && M.start))
@@ -2267,22 +2165,16 @@
mobs -= H
amount--
return
- spawn( 0 )
- src.extend_process()
- return
+ spawn(0) src.extend_process()
if("megamonkey")
- spawn( 1 )
+ spawn(1)
for(var/mob/monkey/M in world)
del(M)
-
for(var/turf/T in monkeystart)
new /mob/megamonkey(T)
-
return
- spawn( 50 )
- src.megamonkey_process()
- return
+ spawn(50) src.megamonkey_process()
if("blob")
spawn(10)
@@ -2291,51 +2183,11 @@
spawn(20)
var/turf/T = pick(blobstart)
-
blobs = list()
new /obj/blob(T)
-
blob_process()
return
-
-
-
- /*spawn( rand(600, 1800) )
- var/dat = "Cent. Com. Update Enemy communication intercept. Security Level Elevated
"
- switch(src.objective)
- if("alone")
- dat += "\red Transmission suggests future attempts of hijacking of emergency shuttle.
"
- if("assassinate")
- dat += "\red Transmission suggests future attempts of assassinating of key personnel.
"
- if (prob(50))
- var/t1 = null
- for(var/datum/data/record/R in data_core.general)
- if (R.fields["name"] == src.target.name)
- t1 = text(" the []", R.fields["rank"])
- if (prob(70))
- dat += text("\red Perceived target: [] - Position: [] ([]% certainty)
", src.target.rname, t1, rand(30, 100))
- else
- var/mob/temp = pick(backup)
- dat += text("\red Perceived target: [] - Position: [] ([]% certainty)
", temp.rname, t1, rand(10, 95))
- if("theft")
- dat += "\red Transmission suggests future attempts of theft of critical items.
"
- if (prob(50))
- dat += text("\red Perceived target: []
", item)
- else
- world << "unknown traitor objective"
- if (prob(10))
- dat += text("\red Transmission names enemy operative: [] ([]% certainty)
", src.killer.rname, rand(30, 100))
- else
- var/mob/M = pick(backup)
- dat += text("\red Transmission names enemy operative: [] ([]% certainty)
", M.rname, rand(10, 95))
- for(var/obj/machinery/computer/communications/C in world)
- var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( C.loc )
- P.name = "paper- 'Cent. Com. Comm. Intercept Summary'"
- P.info = dat
- world << "Cent. Com. Update Enemy communication intercept. Security Level Elevated"
- world << "\red Summary downloaded and printed out at all communications consoles."*/
-
if("nuclear")
spawn (50)
var/obj/L = locate("landmark*Nuclear-Disk")
@@ -2381,11 +2233,9 @@
del(A)
continue
- spawn (0)
- src.extend_process()
- return
+ spawn(0) src.extend_process()
if("virus")
- spawn( 50 )
+ spawn(50)
var/list/mobs = list( )
for(var/mob/human/M in world)
if ((M.cliented() && M.start))
@@ -2399,12 +2249,9 @@
mobs -= H
amount--
return
- spawn( 0 )
- src.extend_process()
- return
+ spawn(0) src.extend_process()
else
for(var/obj/start/S in world)
- //S = null
del(S)
return
@@ -2417,66 +2264,33 @@
set invisibility = 0
set background =1
- Label_6:
+ do
+ while(!(ticker))
+ for(var/mob/M in world)
+ spawn(0) M.UpdateClothing()
+ sleep(10)
- //world << "World.contents.len [world.contents.len]"
-
-
- while(!( ticker ))
+ time = (++time % 10)
+ sun.calc_position()
+ for(var/turf/station/T in world)
+ if (T.updatecell)
+ T.updatecell()
+ if(!time)
+ T.conduction()
+ sleep(3)
for(var/mob/M in world)
- spawn( 0 )
- M.UpdateClothing()
- return
- sleep(10)
-
- time = (++time %10)
-
- sun.calc_position()
-
- //if(Debug)
- // world.log << "*** SoT ***"
- // Air()
-
- for(var/turf/station/T in world)
- if (T.updatecell)
- T.updatecell()
- if(!time)
- T.conduction()
-
- //if(Debug)
- // world.log << "*** EoT ***"
- // Air()
-
- sleep(3)
- for(var/mob/M in world)
- spawn( 0 )
- M.Life()
- return
- sleep(3)
- for(var/obj/move/S in world)
- S.process()
- sleep(2)
-
- //if(Debug)
- // world.log << "*** SoP ***"
- // Air()
-
-
- for(var/obj/machinery/M in machines)
- M.process()
-
- for(var/obj/machinery/M in gasflowlist)
- M.gas_flow()
-
- for(var/datum/powernet/P in powernets)
- P.reset()
-
- //if(Debug)
- // world.log << "*** EoP ***"
- // Air()
-
- src.var_swap = !( src.var_swap )
- if (src.processing)
+ spawn(0) M.Life()
+ sleep(3)
+ for(var/obj/move/S in world)
+ S.process()
sleep(2)
- goto Label_6
+ for(var/obj/machinery/M in machines)
+ M.process()
+ for(var/obj/machinery/M in gasflowlist)
+ M.gas_flow()
+ for(var/datum/powernet/P in powernets)
+ P.reset()
+ src.var_swap = !src.var_swap
+ sleep(2)
+ while (src.processing)
return
diff --git a/spacestation13.dme b/spacestation13.dme
index 303d8ac..5de6e7a 100644
--- a/spacestation13.dme
+++ b/spacestation13.dme
@@ -4,8 +4,9 @@
// BEGIN_INTERNALS
/*
-FILE: Code\items.dm
+FILE: ss13h_new.dmp
DIR: Code Code\Effects Code\Item Code\Item\Weapon Code\Machinery Code\Machinery\Computer
+UPDATE_OBJ_TREE: ON
MAP_ICON_TYPE: 0
AUTO_FILE_DIR: ON
*/
@@ -13,6 +14,7 @@ AUTO_FILE_DIR: ON
// BEGIN_FILE_DIR
#define FILE_DIR .
#define FILE_DIR "Code"
+#define FILE_DIR "Code/Admin"
#define FILE_DIR "Code/CTF"
#define FILE_DIR "Code/Effects"
#define FILE_DIR "Code/Item"
@@ -146,3 +148,4 @@ AUTO_FILE_DIR: ON
#include "Code\mob\drone.dm"
// END_INCLUDE
+