Tg 1 28 sync testing/confirmation (#5178)
* maps, tgui, tools * defines and helpers * onclick and controllers * datums fucking caught that hulk reversal too. * game and shuttle modular * module/admin * oh god they fucking moved antag shit again * haaaaate. Haaaaaaaaaate. * enables moff wings * more modules things * tgstation.dme before I forget something important * some mob stuff * s'more mob/living stuff * some carbon stuff * ayy lmaos and kitchen meat * Human stuff * species things moff wings have a 'none' version too * the rest of the module stuff. * some strings * misc * mob icons * some other icons. * It compiles FUCK BORERS FUCK BORERS
This commit is contained in:
@@ -44,7 +44,7 @@
|
||||
..(user)
|
||||
|
||||
/obj/machinery/computer/apc_control/proc/check_apc(obj/machinery/power/apc/APC)
|
||||
return APC.z == z && !APC.malfhack && !APC.aidisabled && !APC.emagged && !APC.stat && !istype(APC.area, /area/ai_monitored) && !APC.area.outdoors
|
||||
return APC.z == z && !APC.malfhack && !APC.aidisabled && !(APC.obj_flags & EMAGGED) && !APC.stat && !istype(APC.area, /area/ai_monitored) && !APC.area.outdoors
|
||||
|
||||
/obj/machinery/computer/apc_control/interact(mob/living/user)
|
||||
var/dat
|
||||
@@ -71,7 +71,7 @@
|
||||
[APC.aidisabled || APC.panel_open ? "<font color='#FF0000'>APC does not respond to interface query.</font>" : "<font color='#00FF00'>APC responds to interface query.</font>"]<br><br>"
|
||||
dat += "<a href='?src=[REF(src)];check_logs=1'>Check Logs</a><br>"
|
||||
dat += "<a href='?src=[REF(src)];log_out=1'>Log Out</a><br>"
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
dat += "<font color='#FF0000'>WARNING: Logging functionality partially disabled from outside source.</font><br>"
|
||||
dat += "<a href='?src=[REF(src)];restore_logging=1'>Restore logging functionality?</a><br>"
|
||||
else
|
||||
@@ -80,7 +80,7 @@
|
||||
dat += "[entry]<br>"
|
||||
else
|
||||
dat += "<i>No activity has been recorded at this time.</i><br>"
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
dat += "<a href='?src=[REF(src)];clear_logs=1'><font color='#FF0000'>@#%! CLEAR LOGS</a>"
|
||||
dat += "<a href='?src=[REF(src)];check_apcs=1'>Return</a>"
|
||||
operator = user
|
||||
@@ -117,7 +117,7 @@
|
||||
auth_id = "\[NULL\]"
|
||||
if(href_list["restore_logging"])
|
||||
to_chat(usr, "<span class='robot notice'>[icon2html(src, usr)] Logging functionality restored from backup data.</span>")
|
||||
emagged = FALSE
|
||||
obj_flags &= ~EMAGGED
|
||||
LAZYADD(logs, "<b>-=- Logging restored to full functionality at this point -=-</b>")
|
||||
if(href_list["access_apc"])
|
||||
playsound(src, "terminal_type", 50, 0)
|
||||
@@ -193,15 +193,15 @@
|
||||
interact(usr) //Refresh the UI after a filter changes
|
||||
|
||||
/obj/machinery/computer/apc_control/emag_act(mob/user)
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
return
|
||||
user.visible_message("<span class='warning'>You emag [src], disabling precise logging and allowing you to clear logs.</span>")
|
||||
log_game("[key_name(user)] emagged [src] at [get_area(src)], disabling operator tracking.")
|
||||
playsound(src, "sparks", 50, 1)
|
||||
emagged = TRUE
|
||||
obj_flags |= EMAGGED
|
||||
|
||||
/obj/machinery/computer/apc_control/proc/log_activity(log_text)
|
||||
var/op_string = operator && !emagged ? operator : "\[NULL OPERATOR\]"
|
||||
var/op_string = operator && !(obj_flags & EMAGGED) ? operator : "\[NULL OPERATOR\]"
|
||||
LAZYADD(logs, "<b>([worldtime2text()])</b> [op_string] [log_text]")
|
||||
|
||||
/mob/proc/using_power_flow_console()
|
||||
|
||||
@@ -212,9 +212,9 @@
|
||||
gameover = FALSE
|
||||
turtle = 0
|
||||
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
Reset()
|
||||
emagged = FALSE
|
||||
obj_flags &= ~EMAGGED
|
||||
|
||||
add_fingerprint(usr)
|
||||
updateUsrDialog()
|
||||
@@ -227,19 +227,19 @@
|
||||
temp = "[enemy_name] has fallen! Rejoice!"
|
||||
playsound(loc, 'sound/arcade/win.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
new /obj/effect/spawner/newbomb/timer/syndicate(loc)
|
||||
new /obj/item/clothing/head/collectable/petehat(loc)
|
||||
message_admins("[key_name_admin(usr)] has outbombed Cuban Pete and been awarded a bomb.")
|
||||
log_game("[key_name(usr)] has outbombed Cuban Pete and been awarded a bomb.")
|
||||
Reset()
|
||||
emagged = FALSE
|
||||
obj_flags &= ~EMAGGED
|
||||
else
|
||||
prizevend()
|
||||
SSblackbox.record_feedback("nested tally", "arcade_results", 1, list("win", (emagged ? "emagged":"normal")))
|
||||
SSblackbox.record_feedback("nested tally", "arcade_results", 1, list("win", (obj_flags & EMAGGED ? "emagged":"normal")))
|
||||
|
||||
|
||||
else if (emagged && (turtle >= 4))
|
||||
else if ((obj_flags & EMAGGED) && (turtle >= 4))
|
||||
var/boomamt = rand(5,10)
|
||||
temp = "[enemy_name] throws a bomb, exploding you for [boomamt] damage!"
|
||||
playsound(loc, 'sound/arcade/boom.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
@@ -257,9 +257,9 @@
|
||||
sleep(10)
|
||||
temp = "You have been drained! GAME OVER"
|
||||
playsound(loc, 'sound/arcade/lose.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
usr.gib()
|
||||
SSblackbox.record_feedback("nested tally", "arcade_results", 1, list("loss", "mana", (emagged ? "emagged":"normal")))
|
||||
SSblackbox.record_feedback("nested tally", "arcade_results", 1, list("loss", "mana", (obj_flags & EMAGGED ? "emagged":"normal")))
|
||||
|
||||
else if ((enemy_hp <= 10) && (enemy_mp > 4))
|
||||
temp = "[enemy_name] heals for 4 health!"
|
||||
@@ -277,16 +277,16 @@
|
||||
gameover = TRUE
|
||||
temp = "You have been crushed! GAME OVER"
|
||||
playsound(loc, 'sound/arcade/lose.ogg', 50, 1, extrarange = -3, falloff = 10)
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
usr.gib()
|
||||
SSblackbox.record_feedback("nested tally", "arcade_results", 1, list("loss", "hp", (emagged ? "emagged":"normal")))
|
||||
SSblackbox.record_feedback("nested tally", "arcade_results", 1, list("loss", "hp", (obj_flags & EMAGGED ? "emagged":"normal")))
|
||||
|
||||
blocked = FALSE
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/computer/arcade/battle/emag_act(mob/user)
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
return
|
||||
temp = "If you die in the game, you die for real!"
|
||||
player_hp = 30
|
||||
@@ -296,7 +296,7 @@
|
||||
gameover = FALSE
|
||||
blocked = FALSE
|
||||
|
||||
emagged = TRUE
|
||||
obj_flags |= EMAGGED
|
||||
|
||||
enemy_name = "Cuban Pete"
|
||||
name = "Outbomb Cuban Pete"
|
||||
@@ -415,21 +415,21 @@
|
||||
else
|
||||
if(food <= 0)
|
||||
dat += "<br>You ran out of food and starved."
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
user.nutrition = 0 //yeah you pretty hongry
|
||||
to_chat(user, "<span class='userdanger'>Your body instantly contracts to that of one who has not eaten in months. Agonizing cramps seize you as you fall to the floor.</span>")
|
||||
if(fuel <= 0)
|
||||
dat += "<br>You ran out of fuel, and drift, slowly, into a star."
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
var/mob/living/M = user
|
||||
M.adjust_fire_stacks(5)
|
||||
M.IgniteMob() //flew into a star, so you're on fire
|
||||
to_chat(user, "<span class='userdanger'>You feel an immense wave of heat emanate from the arcade machine. Your skin bursts into flames.</span>")
|
||||
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
to_chat(user, "<span class='userdanger'>You're never going to make it to Orion...</span>")
|
||||
user.death()
|
||||
emagged = FALSE //removes the emagged status after you lose
|
||||
obj_flags &= ~EMAGGED //removes the emagged status after you lose
|
||||
gameStatus = ORION_STATUS_START
|
||||
name = "The Orion Trail"
|
||||
desc = "Learn how our ancestors got to Orion, and have fun in the process!"
|
||||
@@ -491,7 +491,7 @@
|
||||
event = ORION_TRAIL_LING_ATTACK
|
||||
event()
|
||||
turns += 1
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
var/mob/living/carbon/M = usr //for some vars
|
||||
switch(event)
|
||||
if(ORION_TRAIL_RAIDERS)
|
||||
@@ -605,7 +605,7 @@
|
||||
if(prob(75))
|
||||
event = ORION_TRAIL_BLACKHOLE
|
||||
event()
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
playsound(loc, 'sound/effects/supermatter.ogg', 100, 1)
|
||||
say("A miniature black hole suddenly appears in front of [src], devouring [usr] alive!")
|
||||
if(isliving(usr))
|
||||
@@ -632,12 +632,12 @@
|
||||
|
||||
if(settlers.len == 0 || alive == 0)
|
||||
say("The last crewmember [sheriff], shot themselves, GAME OVER!")
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
usr.death(0)
|
||||
emagged = FALSE
|
||||
obj_flags &= EMAGGED
|
||||
gameStatus = ORION_STATUS_GAMEOVER
|
||||
event = null
|
||||
else if(emagged)
|
||||
else if(obj_flags & EMAGGED)
|
||||
if(usr.name == sheriff)
|
||||
say("The crew of the ship chose to kill [usr.name]!")
|
||||
usr.death(0)
|
||||
@@ -696,7 +696,7 @@
|
||||
if(prob(success*5))
|
||||
var/lost_crew = remove_crewmember()
|
||||
last_spaceport_action = "You failed to raid the spaceport! You lost [FU*-1] Fuel and [FO*-1] Food, AND [lost_crew] in your scramble to escape! ([FU]FI,[FO]FO,-Crew)"
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
say("WEEWOO! WEEWOO! Spaceport security en route!")
|
||||
playsound(src, 'sound/items/weeoo1.ogg', 100, FALSE)
|
||||
for(var/i, i<=3, i++)
|
||||
@@ -1024,24 +1024,24 @@
|
||||
/obj/machinery/computer/arcade/orion_trail/proc/win()
|
||||
gameStatus = ORION_STATUS_START
|
||||
say("Congratulations, you made it to Orion!")
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
new /obj/item/orion_ship(loc)
|
||||
message_admins("[key_name_admin(usr)] made it to Orion on an emagged machine and got an explosive toy ship.")
|
||||
log_game("[key_name(usr)] made it to Orion on an emagged machine and got an explosive toy ship.")
|
||||
else
|
||||
prizevend()
|
||||
emagged = FALSE
|
||||
obj_flags &= ~EMAGGED
|
||||
name = "The Orion Trail"
|
||||
desc = "Learn how our ancestors got to Orion, and have fun in the process!"
|
||||
|
||||
/obj/machinery/computer/arcade/orion_trail/emag_act(mob/user)
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You override the cheat code menu and skip to Cheat #[rand(1, 50)]: Realism Mode.</span>")
|
||||
name = "The Orion Trail: Realism Edition"
|
||||
desc = "Learn how our ancestors got to Orion, and try not to die in the process!"
|
||||
newgame()
|
||||
emagged = TRUE
|
||||
obj_flags |= EMAGGED
|
||||
|
||||
/mob/living/simple_animal/hostile/syndicate/ranged/orion
|
||||
name = "spaceport security"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
icon_screen = "cameras"
|
||||
icon_keyboard = "security_key"
|
||||
var/list/z_lock = list() // Lock use to these z levels
|
||||
var/station_lock_override = FALSE
|
||||
var/lock_override = NONE
|
||||
var/mob/camera/aiEye/remote/eyeobj
|
||||
var/mob/living/current_user = null
|
||||
var/list/networks = list("SS13")
|
||||
@@ -16,8 +16,15 @@
|
||||
|
||||
/obj/machinery/computer/camera_advanced/Initialize()
|
||||
. = ..()
|
||||
if(station_lock_override)
|
||||
z_lock = SSmapping.levels_by_trait(ZTRAIT_STATION)
|
||||
if(lock_override)
|
||||
if(lock_override & CAMERA_LOCK_STATION)
|
||||
z_lock |= SSmapping.levels_by_trait(ZTRAIT_STATION)
|
||||
if(lock_override & CAMERA_LOCK_MINING)
|
||||
z_lock |= SSmapping.levels_by_trait(ZTRAIT_MINING)
|
||||
if(lock_override & CAMERA_LOCK_CENTCOM)
|
||||
z_lock |= SSmapping.levels_by_trait(ZTRAIT_CENTCOM)
|
||||
if(lock_override & CAMERA_LOCK_REEBE)
|
||||
z_lock |= SSmapping.levels_by_trait(ZTRAIT_REEBE)
|
||||
|
||||
/obj/machinery/computer/camera_advanced/syndie
|
||||
icon_keyboard = "syndie_key"
|
||||
|
||||
@@ -449,7 +449,7 @@
|
||||
scantemp = "<font class='bad'>Subject's brain is not responding to scanning stimuli.</font>"
|
||||
playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0)
|
||||
return
|
||||
if((mob_occupant.has_disability(DISABILITY_NOCLONE)) && (src.scanner.scan_level < 2))
|
||||
if((mob_occupant.has_trait(TRAIT_NOCLONE)) && (src.scanner.scan_level < 2))
|
||||
scantemp = "<font class='bad'>Subject no longer contains the fundamental materials required to create a living clone.</font>"
|
||||
playsound(src, 'sound/machines/terminal_alert.ogg', 50, 0)
|
||||
return
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
if((20 in I.access))
|
||||
authenticated = 2
|
||||
playsound(src, 'sound/machines/terminal_on.ogg', 50, 0)
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
authenticated = 2
|
||||
auth_id = "Unknown"
|
||||
to_chat(M, "<span class='warning'>[src] lets out a quiet alarm as its login is overriden.</span>")
|
||||
@@ -297,7 +297,7 @@
|
||||
|
||||
// OMG SYNDICATE ...LETTERHEAD
|
||||
if("MessageSyndicate")
|
||||
if((authenticated==2) && (emagged))
|
||||
if((authenticated==2) && (obj_flags & EMAGGED))
|
||||
if(!checkCCcooldown())
|
||||
to_chat(usr, "<span class='warning'>Arrays recycling. Please stand by.</span>")
|
||||
playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0)
|
||||
@@ -315,7 +315,7 @@
|
||||
if("RestoreBackup")
|
||||
to_chat(usr, "<span class='notice'>Backup routing data restored!</span>")
|
||||
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0)
|
||||
emagged = FALSE
|
||||
obj_flags &= ~EMAGGED
|
||||
updateDialog()
|
||||
|
||||
if("nukerequest") //When there's no other way
|
||||
@@ -421,9 +421,9 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/communications/emag_act(mob/user)
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
return
|
||||
emagged = TRUE
|
||||
obj_flags |= EMAGGED
|
||||
if(authenticated == 1)
|
||||
authenticated = 2
|
||||
to_chat(user, "<span class='danger'>You scramble the communication routing circuits!</span>")
|
||||
@@ -485,7 +485,7 @@
|
||||
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=changeseclevel'>Change Alert Level</A> \]"
|
||||
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=emergencyaccess'>Emergency Maintenance Access</A> \]"
|
||||
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=nukerequest'>Request Nuclear Authentication Codes</A> \]"
|
||||
if(!emagged)
|
||||
if(!(obj_flags & EMAGGED))
|
||||
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=MessageCentCom'>Send Message to CentCom</A> \]"
|
||||
else
|
||||
dat += "<BR>\[ <A HREF='?src=[REF(src)];operation=MessageSyndicate'>Send Message to \[UNKNOWN\]</A> \]"
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
if(connected && connected.is_operational())
|
||||
if(connected.occupant) //set occupant_status message
|
||||
viable_occupant = connected.occupant
|
||||
if(viable_occupant.has_dna() && (!(RADIMMUNE in viable_occupant.dna.species.species_traits)) && (!(viable_occupant.has_disability(DISABILITY_NOCLONE)) || (connected.scan_level == 3))) //occupant is viable for dna modification
|
||||
if(viable_occupant.has_dna() && (!(RADIMMUNE in viable_occupant.dna.species.species_traits)) && (!(viable_occupant.has_trait(TRAIT_NOCLONE)) || (connected.scan_level == 3))) //occupant is viable for dna modification
|
||||
occupant_status += "[viable_occupant.name] => "
|
||||
switch(viable_occupant.stat)
|
||||
if(CONSCIOUS)
|
||||
@@ -528,7 +528,7 @@
|
||||
var/mob/living/carbon/viable_occupant = null
|
||||
if(connected)
|
||||
viable_occupant = connected.occupant
|
||||
if(!istype(viable_occupant) || !viable_occupant.dna || (RADIMMUNE in viable_occupant.dna.species.species_traits) || (viable_occupant.has_disability(DISABILITY_NOCLONE)))
|
||||
if(!istype(viable_occupant) || !viable_occupant.dna || (RADIMMUNE in viable_occupant.dna.species.species_traits) || (viable_occupant.has_trait(TRAIT_NOCLONE)))
|
||||
viable_occupant = null
|
||||
return viable_occupant
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
/obj/machinery/computer/launchpad/interact(mob/user)
|
||||
var/list/t = list()
|
||||
if(!LAZYLEN(launchpads))
|
||||
in_use = FALSE //Yeah so if you deconstruct teleporter while its in the process of shooting it wont disable the console
|
||||
obj_flags &= ~IN_USE //Yeah so if you deconstruct teleporter while its in the process of shooting it wont disable the console
|
||||
t += "<div class='statusDisplay'>No launchpad located.</div><BR>"
|
||||
else
|
||||
for(var/i in 1 to LAZYLEN(launchpads))
|
||||
|
||||
@@ -154,7 +154,7 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E
|
||||
|
||||
/obj/machinery/computer/telecrystals/boss/proc/getDangerous()//This scales the TC assigned with the round population.
|
||||
..()
|
||||
var/list/nukeops = get_antagonists(/datum/antagonist/nukeop)
|
||||
var/list/nukeops = get_antag_minds(/datum/antagonist/nukeop)
|
||||
var/danger = GLOB.joined_player_list.len - nukeops.len
|
||||
danger = CEILING(danger, 10)
|
||||
scaleTC(danger)
|
||||
|
||||
Reference in New Issue
Block a user