Skip to content

Commit

Permalink
Merge branch 'master' into LZ-detector-rework-2
Browse files Browse the repository at this point in the history
  • Loading branch information
cuberound authored Oct 14, 2023
2 parents 3ebbd7d + d06f537 commit d5b2ce1
Show file tree
Hide file tree
Showing 20 changed files with 327 additions and 44 deletions.
5 changes: 2 additions & 3 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,8 @@
/tools/docker/ @Fira
/Dockerfile @Fira

# MorrowWolf
# Zonespace

/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm @morrowwolf
/code/modules/gear_presets/survivors.dm @morrowwolf
/code/modules/gear_presets/survivors.dm @zonespace27

# MULTIPLE OWNERS
6 changes: 4 additions & 2 deletions code/game/gamemodes/cm_self_destruct.dm
Original file line number Diff line number Diff line change
Expand Up @@ -259,12 +259,12 @@ var/global/datum/authority/branch/evacuation/EvacuationAuthority //This is initi
var/list/alive_mobs = list() //Everyone who will be destroyed on the zlevel(s).
var/list/dead_mobs = list() //Everyone who only needs to see the cinematic.
for(var/mob/current_mob as anything in GLOB.mob_list) //This only does something cool for the people about to die, but should prove pretty interesting.
if(!current_mob || !current_mob.loc)
var/turf/current_turf = get_turf(current_mob)
if(!current_mob || !current_mob.loc || !current_turf)
continue //In case something changes when we sleep().
if(current_mob.stat == DEAD)
dead_mobs |= current_mob
continue
var/turf/current_turf = get_turf(current_mob)
if(current_turf.z in z_levels)
alive_mobs |= current_mob
shake_camera(current_mob, 110, 4)
Expand All @@ -286,6 +286,8 @@ var/global/datum/authority/branch/evacuation/EvacuationAuthority //This is initi
for(var/mob/current_mob in alive_mobs)
if(current_mob && current_mob.loc) //Who knows, maybe they escaped, or don't exist anymore.
var/turf/current_mob_turf = get_turf(current_mob)
if(!current_mob_turf)
continue
if(current_mob_turf.z in z_levels)
if(istype(current_mob.loc, /obj/structure/closet/secure_closet/freezer/fridge))
continue
Expand Down
12 changes: 6 additions & 6 deletions code/game/machinery/fax_machine.dm
Original file line number Diff line number Diff line change
Expand Up @@ -324,22 +324,22 @@ var/list/alldepartments = list()

switch(target_department)
if(DEPARTMENT_HC)
GLOB.USCMFaxes.Add("<a href='?FaxView=\ref[faxcontents]'>\[view message at [world.timeofday]\]</a> <a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];USCMFaxReply=\ref[user];originfax=\ref[src]'>REPLY</a>")
GLOB.USCMFaxes.Add("<a href='?FaxView=\ref[faxcontents]'>\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\]</a> <a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];USCMFaxReply=\ref[user];originfax=\ref[src]'>REPLY</a>")
msg_admin += "(<a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];USCMFaxReply=\ref[user];originfax=\ref[src]'>RPLY</a>)</b>: "
if(DEPARTMENT_PROVOST)
GLOB.ProvostFaxes.Add("<a href='?FaxView=\ref[faxcontents]'>\[view message at [world.timeofday]\]</a> <a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];USCMFaxReply=\ref[user];originfax=\ref[src]'>REPLY</a>")
GLOB.ProvostFaxes.Add("<a href='?FaxView=\ref[faxcontents]'>\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\]</a> <a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];USCMFaxReply=\ref[user];originfax=\ref[src]'>REPLY</a>")
msg_admin += "(<a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];USCMFaxReply=\ref[user];originfax=\ref[src]'>RPLY</a>)</b>: "
if(DEPARTMENT_CMB)
GLOB.CMBFaxes.Add("<a href='?FaxView=\ref[faxcontents]'>\[view message at [world.timeofday]\]</a> <a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];CMBFaxReply=\ref[user];originfax=\ref[src]'>REPLY</a>")
GLOB.CMBFaxes.Add("<a href='?FaxView=\ref[faxcontents]'>\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\]</a> <a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];CMBFaxReply=\ref[user];originfax=\ref[src]'>REPLY</a>")
msg_admin += "(<a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];CMBFaxReply=\ref[user];originfax=\ref[src]'>RPLY</a>)</b>: "
if(DEPARTMENT_WY)
GLOB.WYFaxes.Add("<a href='?FaxView=\ref[faxcontents]'>\[view message at [world.timeofday]\]</a> <a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];CLFaxReply=\ref[user];originfax=\ref[src]'>REPLY</a>")
GLOB.WYFaxes.Add("<a href='?FaxView=\ref[faxcontents]'>\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\]</a> <a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];CLFaxReply=\ref[user];originfax=\ref[src]'>REPLY</a>")
msg_admin += "(<a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];CLFaxReply=\ref[user];originfax=\ref[src]'>RPLY</a>)</b>: "
if(DEPARTMENT_PRESS)
GLOB.PressFaxes.Add("<a href='?FaxView=\ref[faxcontents]'>\[view message at [world.timeofday]\]</a> <a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];PressFaxReply=\ref[user];originfax=\ref[src]'>REPLY</a>")
GLOB.PressFaxes.Add("<a href='?FaxView=\ref[faxcontents]'>\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\]</a> <a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];PressFaxReply=\ref[user];originfax=\ref[src]'>REPLY</a>")
msg_admin += "(<a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];PressFaxReply=\ref[user];originfax=\ref[src]'>RPLY</a>)</b>: "
else
GLOB.GeneralFaxes.Add("<a href='?FaxView=\ref[faxcontents]'>\[view message at [world.timeofday]\]</a> <a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];CLFaxReply=\ref[user];originfax=\ref[src]'>REPLY</a>")
GLOB.GeneralFaxes.Add("<a href='?FaxView=\ref[faxcontents]'>\['[original_fax.name]' from [key_name(usr)], [scan] at [time2text(world.timeofday, "hh:mm:ss")]\]</a> <a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];CLFaxReply=\ref[user];originfax=\ref[src]'>REPLY</a>")
msg_admin += "(<a href='?_src_=admin_holder;[HrefToken(forceGlobal = TRUE)];USCMFaxReply=\ref[user];originfax=\ref[src]'>RPLY</a>)</b>: "

msg_admin += SPAN_STAFF_IC("Receiving fax via secure connection ... <a href='?FaxView=\ref[faxcontents]'>view message</a>")
Expand Down
197 changes: 197 additions & 0 deletions code/game/objects/effects/spawners/faction_spawners.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
/*
* USCM weapons
*/
/obj/effect/spawner/random/gun/uscm_primary
name = "USCM primary weapon spawner"
desc = "spawns USCM primary weapons"
mags_max = 2
mags_min = 1
guns = list(
/obj/item/weapon/gun/rifle/m41a = /obj/item/ammo_magazine/rifle,
/obj/item/weapon/gun/rifle/m41a/tactical = /obj/item/ammo_magazine/rifle,
/obj/item/weapon/gun/smg/m39 = /obj/item/ammo_magazine/smg/m39,
/obj/item/weapon/gun/smg/m39 = /obj/item/ammo_magazine/smg/m39,
/obj/item/weapon/gun/shotgun/pump = /datum/ammo/bullet/shotgun/buckshot
)

/obj/effect/spawner/random/gun/uscm_primary/lowchance
spawn_nothing_percentage = 80
icon_state = "loot_rifle_20"

/obj/effect/spawner/random/gun/uscm_primary/midchance
spawn_nothing_percentage = 50
icon_state = "loot_rifle_50"

/obj/effect/spawner/random/gun/uscm_primary/highchance
spawn_nothing_percentage = 20
icon_state = "loot_rifle_80"

/obj/effect/spawner/random/gun/uscm_secondary
name = "USCM secondary weapon spawner"
desc = "spawns USCM secondary weapons"
spawn_nothing_percentage = 0
mags_max = 2
mags_min = 1
guns = list(
/obj/item/weapon/gun/pistol/m4a3 = /obj/item/ammo_magazine/pistol,
/obj/item/weapon/gun/revolver/m44 = /obj/item/ammo_magazine/handful/revolver/marksman
)

/obj/effect/spawner/random/gun/uscm_secondary/lowchance
spawn_nothing_percentage = 80
icon_state = "loot_pistol_20"

/obj/effect/spawner/random/gun/uscm_secondary/midchance
spawn_nothing_percentage = 50
icon_state = "loot_pistol_50"

/obj/effect/spawner/random/gun/uscm_secondary/highchance
spawn_nothing_percentage = 80
icon_state = "loot_pistol_80"


/*
* UPP weapons
*/
/obj/effect/spawner/random/gun/upp_primary
name = "UPP primary weapon spawner"
desc = "spawns UPP primary weapons"
mags_max = 2
mags_min = 1
guns = list(
/obj/item/weapon/gun/smg/bizon/upp = /obj/item/ammo_magazine/smg/bizon,
/obj/item/weapon/gun/rifle/type71 = /obj/item/ammo_magazine/rifle/type71,
/obj/item/weapon/gun/rifle/type71/carbine = /obj/item/ammo_magazine/rifle/type71
)

/obj/effect/spawner/random/gun/upp_primary/lowchance
spawn_nothing_percentage = 80
icon_state = "loot_rifle_20"

/obj/effect/spawner/random/gun/upp_primary/midchance
spawn_nothing_percentage = 50
icon_state = "loot_rifle_50"

/obj/effect/spawner/random/gun/upp_primary/highchance
spawn_nothing_percentage = 80
icon_state = "loot_rifle_80"

/obj/effect/spawner/random/gun/upp_secondary
name = "UPP secondary weapon spawner"
desc = "spawns UPP secondary weapons"
mags_max = 2
mags_min = 1
guns = list(
/obj/item/weapon/gun/pistol/t73 = /obj/item/ammo_magazine/pistol/t73,
/obj/item/weapon/gun/pistol/np92 = /obj/item/ammo_magazine/pistol/np92,
/obj/item/weapon/gun/revolver/upp = /obj/item/ammo_magazine/revolver/upp
)

/obj/effect/spawner/random/gun/upp_secondary/lowchance
spawn_nothing_percentage = 80
icon_state = "loot_pistol_20"

/obj/effect/spawner/random/gun/upp_secondary/medchance
spawn_nothing_percentage = 50
icon_state = "loot_pistol_50"

/obj/effect/spawner/random/gun/upp_secondary/highchance
spawn_nothing_percentage = 20
icon_state = "loot_pistol_80"
/*
* PMC weapons
*/
/obj/effect/spawner/random/gun/pmc_primary
name = "PMC primary weapon spawner"
desc = "spawns PMC primary weapons"
mags_max = 2
mags_min = 1
guns = list(
/obj/item/weapon/gun/rifle/m41a/elite = /obj/item/ammo_magazine/rifle/ap,
/obj/item/weapon/gun/rifle/m41a/elite = /obj/item/ammo_magazine/rifle/extended,
/obj/item/weapon/gun/smg/m39/elite = /obj/item/ammo_magazine/smg/m39/ap,
/obj/item/weapon/gun/smg/m39/elite = /obj/item/ammo_magazine/smg/m39/extended,
/obj/item/weapon/gun/rifle/nsg23 = /obj/item/ammo_magazine/rifle/nsg23/ap,
/obj/item/weapon/gun/rifle/nsg23 = /obj/item/ammo_magazine/rifle/nsg23/extended
)

/obj/effect/spawner/random/gun/pmc_primary/lowchance
spawn_nothing_percentage = 80
icon_state = "loot_rifle_20"

/obj/effect/spawner/random/gun/pmc_primary/midchance
spawn_nothing_percentage = 50
icon_state = "loot_rifle_50"

/obj/effect/spawner/random/gun/pmc_primary/highchance
spawn_nothing_percentage = 80
icon_state = "loot_rifle_80"

/obj/effect/spawner/random/gun/pmc_secondary
name = "PMC secondary weapon spawner"
desc = "spawns PMC secondary weapons"
mags_max = 2
mags_min = 1
guns = list(
/obj/item/weapon/gun/pistol/vp78 = /obj/item/ammo_magazine/pistol/vp78,
/obj/item/weapon/gun/pistol/mod88 = /obj/item/ammo_magazine/pistol/mod88
)

/obj/effect/spawner/random/gun/pmc_secondary/lowchance
spawn_nothing_percentage = 80
icon_state = "loot_pistol_20"

/obj/effect/spawner/random/gun/pmc_secondary/medchance
spawn_nothing_percentage = 50
icon_state = "loot_pistol_50"

/obj/effect/spawner/random/gun/pmc_secondary/highchance
spawn_nothing_percentage = 20
icon_state = "loot_pistol_80"

/*
* CLF weapons
*/
/obj/effect/spawner/random/gun/clf_primary
name = "CLF primary weapon spawner"
desc = "spawns CLF primary weapons"
mags_max = 2
mags_min = 1
guns = list(
/obj/item/weapon/gun/rifle/m16 = /obj/item/ammo_magazine/rifle/m16,
/obj/item/weapon/gun/rifle/mar40/carbine = /obj/item/ammo_magazine/rifle/mar40
)

/obj/effect/spawner/random/gun/clf_primary/lowchance
spawn_nothing_percentage = 80
icon_state = "loot_rifle_20"

/obj/effect/spawner/random/gun/clf_primary/midchance
spawn_nothing_percentage = 50
icon_state = "loot_rifle_50"

/obj/effect/spawner/random/gun/clf_primary/highchance
spawn_nothing_percentage = 80
icon_state = "loot_rifle_80"

/obj/effect/spawner/random/gun/clf_secondary
name = "CLF secondary weapon spawner"
desc = "spawns CLF secondary weapons"
mags_max = 2
mags_min = 1
guns = list(
/obj/item/weapon/gun/pistol/kt42 = /obj/item/ammo_magazine/pistol/kt42,
/obj/item/weapon/gun/pistol/b92fs = /obj/item/ammo_magazine/pistol/b92fs
)

/obj/effect/spawner/random/gun/clf_secondary/lowchance
spawn_nothing_percentage = 80
icon_state = "loot_pistol_20"

/obj/effect/spawner/random/gun/clf_secondary/medchance
spawn_nothing_percentage = 50
icon_state = "loot_pistol_50"

/obj/effect/spawner/random/gun/clf_secondary/highchance
spawn_nothing_percentage = 20
icon_state = "loot_pistol_80"
2 changes: 1 addition & 1 deletion code/modules/admin/tabs/event_tab.dm
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@
if(!admin_holder)
return

var/list/options = list("Weyland-Yutani", "High Command", "Provost", "Press", "Other", "Cancel")
var/list/options = list("Weyland-Yutani", "High Command", "Provost", "Press", "CMB", "Other", "Cancel")
var/answer = tgui_input_list(src, "Which kind of faxes would you like to see?", "Faxes", options)
switch(answer)
if("Weyland-Yutani")
Expand Down
17 changes: 8 additions & 9 deletions code/modules/admin/topic/topic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1310,11 +1310,10 @@
if(send_choice != "Send")
return
GLOB.fax_contents += fax_message // save a copy

GLOB.USCMFaxes.Add("<a href='?FaxView=\ref[fax_message]'>\[view reply at [world.timeofday]\]</a>")

var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null

GLOB.USCMFaxes.Add("<a href='?FaxView=\ref[fax_message]'>\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]</a>")

var/msg_ghost = SPAN_NOTICE("<b><font color='#1F66A0'>PRESS REPLY: </font></b> ")
msg_ghost += "Transmitting '[customname]' via secure connection ... "
msg_ghost += "<a href='?FaxView=\ref[fax_message]'>view message</a>"
Expand Down Expand Up @@ -1393,10 +1392,10 @@
return
GLOB.fax_contents += fax_message // save a copy

GLOB.USCMFaxes.Add("<a href='?FaxView=\ref[fax_message]'>\[view reply at [world.timeofday]\]</a>")

var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null

GLOB.USCMFaxes.Add("<a href='?FaxView=\ref[fax_message]'>\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]</a>")

var/msg_ghost = SPAN_NOTICE("<b><font color='#1F66A0'>USCM FAX REPLY: </font></b> ")
msg_ghost += "Transmitting '[customname]' via secure connection ... "
msg_ghost += "<a href='?FaxView=\ref[fax_message]'>view message</a>"
Expand Down Expand Up @@ -1472,12 +1471,12 @@
return
GLOB.fax_contents += fax_message // save a copy

GLOB.WYFaxes.Add("<a href='?FaxView=\ref[fax_message]'>\[view reply at [world.timeofday]\]</a>") //Add replies so that mods know what the hell is goin on with the RP

var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null
if(!customname)
return

GLOB.WYFaxes.Add("<a href='?FaxView=\ref[fax_message]'>\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]</a>") //Add replies so that mods know what the hell is goin on with the RP

var/msg_ghost = SPAN_NOTICE("<b><font color='#1F66A0'>WEYLAND-YUTANI FAX REPLY: </font></b> ")
msg_ghost += "Transmitting '[customname]' via secure connection ... "
msg_ghost += "<a href='?FaxView=\ref[fax_message]'>view message</a>"
Expand Down Expand Up @@ -1554,12 +1553,12 @@
return
GLOB.fax_contents += fax_message // save a copy

GLOB.CMBFaxes.Add("<a href='?FaxView=\ref[fax_message]'>\[view reply at [world.timeofday]\]</a>") //Add replies so that mods know what the hell is goin on with the RP

var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null
if(!customname)
return

GLOB.CMBFaxes.Add("<a href='?FaxView=\ref[fax_message]'>\[view '[customname]' from [key_name(usr)] at [time2text(world.timeofday, "hh:mm:ss")]\]</a>") //Add replies so that mods know what the hell is goin on with the RP

var/msg_ghost = SPAN_NOTICE("<b><font color='#1b748c'>COLONIAL MARSHAL BUREAU FAX REPLY: </font></b> ")
msg_ghost += "Transmitting '[customname]' via secure connection ... "
msg_ghost += "<a href='?FaxView=\ref[fax_message]'>view message</a>"
Expand Down
18 changes: 11 additions & 7 deletions code/modules/client/client_procs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -330,13 +330,8 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list(
prefs.last_ip = address //these are gonna be used for banning
prefs.last_id = computer_id //these are gonna be used for banning
fps = prefs.fps
xeno_prefix = prefs.xeno_prefix
xeno_postfix = prefs.xeno_postfix
xeno_name_ban = prefs.xeno_name_ban
if(!xeno_prefix || xeno_name_ban)
xeno_prefix = "XX"
if(!xeno_postfix || xeno_name_ban)
xeno_postfix = ""

load_xeno_name()

human_name_ban = prefs.human_name_ban

Expand Down Expand Up @@ -790,3 +785,12 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list(
if(admin_holder)
admin_holder.particle_test = new /datum/particle_editor(in_atom)
admin_holder.particle_test.tgui_interact(mob)

/client/proc/load_xeno_name()
xeno_prefix = prefs.xeno_prefix
xeno_postfix = prefs.xeno_postfix
xeno_name_ban = prefs.xeno_name_ban
if(!xeno_prefix || xeno_name_ban)
xeno_prefix = "XX"
if(!xeno_postfix || xeno_name_ban)
xeno_postfix = ""
4 changes: 4 additions & 0 deletions code/modules/client/preferences.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1409,6 +1409,7 @@ var/const/MAX_SAVE_SLOTS = 10

if(length(new_xeno_prefix)==0)
xeno_prefix = "XX"
owner.load_xeno_name()
else
var/all_ok = TRUE
for(var/i=1, i<=length(new_xeno_prefix), i++)
Expand All @@ -1420,6 +1421,7 @@ var/const/MAX_SAVE_SLOTS = 10
all_ok = FALSE //everything else - won't
if(all_ok)
xeno_prefix = new_xeno_prefix
owner.load_xeno_name()
else
to_chat(user, "<font color='red'>Invalid Xeno Prefix. Your Prefix can contain either single letter or two letters.</font>")

Expand All @@ -1444,6 +1446,7 @@ var/const/MAX_SAVE_SLOTS = 10
return
else if(length(new_xeno_postfix)==0)
xeno_postfix = ""
owner.load_xeno_name()
else
var/all_ok = TRUE
var/first_char = TRUE
Expand All @@ -1469,6 +1472,7 @@ var/const/MAX_SAVE_SLOTS = 10
first_char = FALSE
if(all_ok)
xeno_postfix = new_xeno_postfix
owner.load_xeno_name()
else
to_chat(user, "<font color='red'>Invalid Xeno Postfix. Your Postfix can contain single letter and an optional digit after it.</font>")

Expand Down
Loading

0 comments on commit d5b2ce1

Please sign in to comment.