mirror of
https://github.com/cybergirlvannie/OpenSS13.git
synced 2026-07-14 17:23:08 +01:00
Applied stephen's cellautomata-cleanup-trunk.patch file.
This commit is contained in:
+171
-357
@@ -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
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user