some deathmatch fixes (#84472)

## About The Pull Request

firstly and most importantly polymorphing works now
fixes field gens in OSHA Violator
map names are sorted alphabetically
binary chat may not be used in deathmatch arenas
Chef and Clown final destination loadout names were renamed to avoid
confusion with loadouts of the same name


## Why It's Good For The Game

fixes #82791
fixes #82802
a feature of a deathmatch map working is good
loadout confusion = bad
also i guess sorting the list looks cool

## Changelog
🆑
fix: deathmatch OSHA Violator map has actually functioning field gens
now
fix: being polymorphed in deathmatch does not count you dead
fix: deathmatch cyborgs may not talk in binary
qol: deathmatch map names are sorted alphabetically
spellcheck: deathmatch final destination clown and chef loadouts have
been renamed to avoid confusion
/🆑
This commit is contained in:
jimmyl
2024-07-03 22:48:43 +02:00
committed by GitHub
parent 9068f0f832
commit 539bc1bf8d
8 changed files with 94 additions and 24 deletions
@@ -51,6 +51,8 @@ no power level overlay is currently in the overlays list.
var/list/obj/machinery/field/generator/connected_gens = list()
///Check for asynk cleanups for this and the connected gens
var/clean_up = FALSE
/// we warm up and cool down instantly
var/instantenous = FALSE
/datum/armor/field_generator
melee = 25
@@ -207,8 +209,11 @@ no power level overlay is currently in the overlays list.
can_atmos_pass = ATMOS_PASS_YES
air_update_turf(TRUE, FALSE)
INVOKE_ASYNC(src, PROC_REF(cleanup))
addtimer(CALLBACK(src, PROC_REF(cool_down)), 5 SECONDS)
RemoveElement(/datum/element/give_turf_traits, string_list(list(TRAIT_CONTAINMENT_FIELD)))
if(instantenous)
warming_up = 0
return
addtimer(CALLBACK(src, PROC_REF(cool_down)), 5 SECONDS)
/obj/machinery/field/generator/proc/cool_down()
if(active || warming_up <= 0)
@@ -219,9 +224,14 @@ no power level overlay is currently in the overlays list.
addtimer(CALLBACK(src, PROC_REF(cool_down)), 5 SECONDS)
/obj/machinery/field/generator/proc/turn_on()
AddElement(/datum/element/give_turf_traits, string_list(list(TRAIT_CONTAINMENT_FIELD)))
if(instantenous)
active = FG_ONLINE
warming_up = 3
start_fields()
return
active = FG_CHARGING
addtimer(CALLBACK(src, PROC_REF(warm_up)), 5 SECONDS)
AddElement(/datum/element/give_turf_traits, string_list(list(TRAIT_CONTAINMENT_FIELD)))
/obj/machinery/field/generator/proc/warm_up()
if(!active)
@@ -420,9 +430,20 @@ no power level overlay is currently in the overlays list.
state = FG_WELDED
/obj/machinery/field/generator/starts_on/Initialize(mapload)
. = ..()
return INITIALIZE_HINT_LATELOAD
/obj/machinery/field/generator/starts_on/post_machine_initialize()
. = ..()
turn_on()
/obj/machinery/field/generator/starts_on/magic
power_level = 6 //forces the highest level overlay
instantenous = TRUE
/obj/machinery/field/generator/starts_on/magic/process()
return PROCESS_KILL // this is the only place calc_power is called, and doing it here avoids one unnecessary proc call
#undef FG_UNSECURED
#undef FG_SECURED
#undef FG_WELDED