Applied stephen's cellautomata-cleanup-trunk.patch file.

This commit is contained in:
Zjm7891
2008-07-14 08:11:29 +00:00
parent af99e180e6
commit 414228d020
2 changed files with 175 additions and 358 deletions
+171 -357
View File
@@ -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!\n<font face=vivaldi>Capture the Flag</font>"
//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 = "<B>Boot Player:</B><HR>"
for(var/mob/M in world)
for(var/mob/M in world)
dat += text("<A href='?src=\ref[];boot2=\ref[]'>N:[] R:[] (K:[]) (IP:[])</A><BR>", 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 = "<B>Keys:</B><HR>"
for(var/mob/M in world)
if(M.cliented())
if(M.cliented())
dat += text("[]<BR>", M.client.ckey)
usr << browse(dat, "window=keys")
if (href_list["l_players"])
@@ -682,23 +667,6 @@
dat += "<A href='?src=\ref[usr];priv_msg=\ref[M]'>N:[M.name] R:[M.rname] (K:[(M.client ? M.client : "Formerly [M.lastKnownCKey]")])</A><BR>"
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-<B><A href='?src=\ref[];p_send2=\ref[]'>[]</A></B>: []", M.client.holder, usr, usr.key, t)
else
M.client_mob() << text("\blue Admin PM from-<B>[]</B>: []", usr.key, t)
usr.client_mob() << text("\blue Admin PM to-<B><A href='?src=\ref[];p_send2=\ref[]'>[]</A></B>: []", 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 @@
<A href='?src=\ref[src];secrets2=monkey'>Turn all humans into monkies</A><BR>
<A href='?src=\ref[src];secrets2=power'>Make all areas powered</A><BR>
<A href='?src=\ref[src];secrets2=wave'>Spawn a wave of meteors</A><BR>
<A href='?src=\ref[src];secrets2=burningo2'>Self-igniting oxygen (Not at normal oxygen amounts, but a bit higher)</A><BR>"}
<A href='?src=\ref[src];secrets2=burningo2'>Self-igniting oxygen (Not at normal oxygen amounts, but a bit higher)</A><BR>"}
usr << browse(dat, "window=secrets")
if (href_list["repopMap"])
if (src.a_level >= 5)
world << "\red<h1>Replacing destroyed objects and mobs.</h1>"
world.Repop()
usr << browse(dat, "window=secrets")
if (href_list["repopMap"])
if (src.a_level >= 5)
world << "\red<h1>Replacing destroyed objects and mobs.</h1>"
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 += "<A href='?src=\ref[src];dna=1'>List DNA</A><br>"
dat += "<A href='?src=\ref[src];l_keys=1'>List Keys</A><br>"
dat += "<A href='?src=\ref[src];l_players=1'>List Players/Keys</A><br>"
dat += "<BR>"
if(a_level >= 5 )
dat += "<A href='?src=\ref[src];repopMap=1'>Recreate Destroyed Mobs and Objects</A><br>"
dat += "<A href='?src=\ref[src];l_players=1'>List Players/Keys</A><br>"
dat += "<BR>"
if(a_level >= 5 )
dat += "<A href='?src=\ref[src];repopMap=1'>Recreate Destroyed Mobs and Objects</A><br>"
dat += "<A href='?src=\ref[src];g_send=1'>Send Global Message</A><br>"
@@ -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("<B>Secret Base Nuke Code</B>: []<BR>", 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 << "<B>The emergency shuttle is leaving!</B>"
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 << "<B>Welcome to the Space Station 13!</B>\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 << "<b>Your laws have been changed!</b>"
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 << "<b>Your laws have been changed!</b>"
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 << "<B>The current game mode is - Meteor!</B>"
@@ -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 += "<B>Objective:</B> Get at least 50% of the station population to evacuate on the shuttle, or kill everyone."
aiKiller << "<b>Your laws have been changed!</b>"
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 << "\red<font size=3><B>You are the traitor!</B> Be the lone survivor on the emergency shuttle.</font>"
@@ -2148,21 +2052,21 @@
aiKiller << "<B>You don't have to be the lone survivor. Just don't get caught.</B>"
aiKiller.memory += text("<B>Objective:</B> Assassinate [], and whoever else you have to, and don't get deactivated.", t1)
aiKiller << "<b>Your laws have been changed!</b>"
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 << "<b>Your laws have been changed!</b>"
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("\red<font size=3><B>You are the traitor!</B> You must assassinate [] and then escape.</font>", 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 = "<FONT size = 2><B>Cent. Com. Update</B> Enemy communication intercept. Security Level Elevated</FONT><HR>"
switch(src.objective)
if("alone")
dat += "\red <B>Transmission suggests future attempts of hijacking of emergency shuttle.</B><BR>"
if("assassinate")
dat += "\red <B>Transmission suggests future attempts of assassinating of key personnel.</B><BR>"
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 <B>Perceived target: [] - Position: [] ([]% certainty)</B><BR>", src.target.rname, t1, rand(30, 100))
else
var/mob/temp = pick(backup)
dat += text("\red <B>Perceived target: [] - Position: [] ([]% certainty)</B><BR>", temp.rname, t1, rand(10, 95))
if("theft")
dat += "\red <B>Transmission suggests future attempts of theft of critical items.</B><BR>"
if (prob(50))
dat += text("\red <B>Perceived target: []</B><BR>", item)
else
world << "unknown traitor objective"
if (prob(10))
dat += text("\red <B>Transmission names enemy operative: [] ([]% certainty)</B><BR>", src.killer.rname, rand(30, 100))
else
var/mob/M = pick(backup)
dat += text("\red <B>Transmission names enemy operative: [] ([]% certainty)</B><BR>", 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 << "<FONT size = 2><B>Cent. Com. Update</B> Enemy communication intercept. Security Level Elevated</FONT>"
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
+4 -1
View File
@@ -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