From ba998786d77d4ef5b39b0cf17976a688cc0c112b Mon Sep 17 00:00:00 2001 From: Nadyr Date: Tue, 22 Oct 2024 21:19:23 -0400 Subject: [PATCH 001/109] grindable ores, more grindable stacks, blacklisted slag --- code/__defines/chemistry.dm | 1 + .../objects/items/weapons/storage/bags.dm | 4 +- code/modules/reagents/machinery/grinder.dm | 89 +++++++++++++++---- 3 files changed, 74 insertions(+), 20 deletions(-) diff --git a/code/__defines/chemistry.dm b/code/__defines/chemistry.dm index 63ea0e136f..8213aa200f 100644 --- a/code/__defines/chemistry.dm +++ b/code/__defines/chemistry.dm @@ -41,6 +41,7 @@ #define CE_DARKSIGHT "darksight" // Gives perfect vision in dark #define REAGENTS_PER_SHEET 20 +#define REAGENTS_PER_ORE 20 // Attached to CE_ANTIBIOTIC #define ANTIBIO_NORM 1 diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index e27d9ade0c..d4aecf0279 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -141,7 +141,7 @@ to_chat(user, span_notice("\the [src] is too full to possibly fit anything else inside of it.")) return - if (istype(W, /obj/item/ore)) + if (istype(W, /obj/item/ore) && !istype(W, /obj/item/ore/slag)) var/obj/item/ore/ore = W stored_ore[ore.material]++ current_capacity++ @@ -178,6 +178,8 @@ if(current_pickup >= max_pickup) max_pickup_reached = 1 break + if(istype(O, /obj/item/ore/slag)) + continue var/obj/item/ore/ore = O stored_ore[ore.material]++ current_capacity++ diff --git a/code/modules/reagents/machinery/grinder.dm b/code/modules/reagents/machinery/grinder.dm index 096e89a943..a20920fc7e 100644 --- a/code/modules/reagents/machinery/grinder.dm +++ b/code/modules/reagents/machinery/grinder.dm @@ -1,3 +1,55 @@ +// Don't need a new list for every grinder in the game +var/global/list/sheet_reagents = list( //have a number of reagents divisible by REAGENTS_PER_SHEET (default 20) unless you like decimals. + /obj/item/stack/material/plastic = list("carbon","carbon","oxygen","chlorine","sulfur"), + /obj/item/stack/material/copper = list("copper"), + /obj/item/stack/material/wood = list("carbon","woodpulp","nitrogen","potassium","sodium"), + /obj/item/stack/material/stick = list("carbon","woodpulp","nitrogen","potassium","sodium"), + /obj/item/stack/material/log = list("carbon","woodpulp","nitrogen","potassium","sodium"), + /obj/item/stack/material/algae = list("carbon","nitrogen","nitrogen","phosphorus","phosphorus"), + /obj/item/stack/material/graphite = list("carbon"), + /obj/item/stack/material/aluminium = list("aluminum"), // The material is aluminium, but the reagent is aluminum... + /obj/item/stack/material/glass/reinforced = list("silicon","silicon","silicon","iron","carbon"), + /obj/item/stack/material/leather = list("carbon","carbon","protein","protein","triglyceride"), + /obj/item/stack/material/cloth = list("carbon","carbon","carbon","protein","sodium"), + /obj/item/stack/material/fiber = list("carbon","carbon","carbon","protein","sodium"), + /obj/item/stack/material/fur = list("carbon","carbon","carbon","sulfur","sodium"), + /obj/item/stack/material/deuterium = list("hydrogen"), + /obj/item/stack/material/glass/phoronrglass = list("silicon","silicon","silicon","phoron","phoron"), + /obj/item/stack/material/diamond = list("carbon"), + /obj/item/stack/material/durasteel = list("iron","iron","carbon","carbon","platinum"), + /obj/item/stack/material/wax = list("ethanol","triglyceride"), + /obj/item/stack/material/iron = list("iron"), + /obj/item/stack/material/uranium = list("uranium"), + /obj/item/stack/material/phoron = list("phoron"), + /obj/item/stack/material/gold = list("gold"), + /obj/item/stack/material/silver = list("silver"), + /obj/item/stack/material/platinum = list("platinum"), + /obj/item/stack/material/mhydrogen = list("hydrogen"), + /obj/item/stack/material/steel = list("iron", "carbon"), + /obj/item/stack/material/plasteel = list("iron", "iron", "carbon", "carbon", "platinum"), //8 iron, 8 carbon, 4 platinum, + /obj/item/stack/material/snow = list("water"), + /obj/item/stack/material/sandstone = list("silicon", "oxygen"), + /obj/item/stack/material/glass = list("silicon"), + /obj/item/stack/material/glass/phoronglass = list("platinum", "silicon", "silicon", "silicon"), //5 platinum, 15 silicon, + /obj/item/stack/material/supermatter = list("supermatter") + ) +var/global/list/ore_reagents = list( //have a number of reageents divisible by REAGENTS_PER_ORE (default 20) unless you like decimals. + /obj/item/ore/glass = list("silicon"), + /obj/item/ore/iron = list("iron"), + /obj/item/ore/coal = list("carbon"), + /obj/item/ore/phoron = list("phoron"), + /obj/item/ore/silver = list("silver"), + /obj/item/ore/gold = list("gold"), + /obj/item/ore/marble = list("silicon","aluminum","aluminum","sodium","calcium"), // Some nice variety here + /obj/item/ore/uranium = list("uranium"), + /obj/item/ore/diamond = list("carbon"), + /obj/item/ore/osmium = list("platinum"), // should contain osmium + /obj/item/ore/lead = list("lead"), + /obj/item/ore/hydrogen = list("hydrogen"), + /obj/item/ore/verdantium = list("radium","phoron","nitrogen","phosphorus","sodium"), // Some fun stuff to be useful with + /obj/item/ore/rutile = list("tungsten","oxygen") // Should be titanium +) + /obj/machinery/reagentgrinder name = "All-In-One Grinder" @@ -14,22 +66,6 @@ var/obj/item/reagent_containers/beaker = null var/limit = 10 var/list/holdingitems = list() - var/list/sheet_reagents = list( //have a number of reageents divisible by REAGENTS_PER_SHEET (default 20) unless you like decimals, - /obj/item/stack/material/iron = list("iron"), - /obj/item/stack/material/uranium = list("uranium"), - /obj/item/stack/material/phoron = list("phoron"), - /obj/item/stack/material/gold = list("gold"), - /obj/item/stack/material/silver = list("silver"), - /obj/item/stack/material/platinum = list("platinum"), - /obj/item/stack/material/mhydrogen = list("hydrogen"), - /obj/item/stack/material/steel = list("iron", "carbon"), - /obj/item/stack/material/plasteel = list("iron", "iron", "carbon", "carbon", "platinum"), //8 iron, 8 carbon, 4 platinum, - /obj/item/stack/material/snow = list("water"), - /obj/item/stack/material/sandstone = list("silicon", "oxygen"), - /obj/item/stack/material/glass = list("silicon"), - /obj/item/stack/material/glass/phoronglass = list("platinum", "silicon", "silicon", "silicon"), //5 platinum, 15 silicon, - /obj/item/stack/material/supermatter = list("supermatter") - ) var/static/radial_examine = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_examine") var/static/radial_eject = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_eject") @@ -137,7 +173,7 @@ return 0 - if(!sheet_reagents[O.type] && (!O.reagents || !O.reagents.total_volume)) + if(!global.sheet_reagents[O.type] && !global.ore_reagents[O.type] && (!O.reagents || !O.reagents.total_volume)) to_chat(user, "\The [O] is not suitable for blending.") return 1 @@ -228,10 +264,10 @@ if(remaining_volume <= 0) break - if(sheet_reagents[O.type]) + if(global.sheet_reagents[O.type]) var/obj/item/stack/stack = O if(istype(stack)) - var/list/sheet_components = sheet_reagents[stack.type] + var/list/sheet_components = global.sheet_reagents[stack.type] var/amount_to_take = max(0,min(stack.get_amount(),round(remaining_volume/REAGENTS_PER_SHEET))) if(amount_to_take) stack.use(amount_to_take) @@ -245,6 +281,21 @@ beaker.reagents.add_reagent(sheet_components, (amount_to_take*REAGENTS_PER_SHEET)) continue + if(global.ore_reagents[O.type]) + var/obj/item/ore/R = O + if(istype(R)) + var/list/ore_components = global.ore_reagents[R.type] + if(remaining_volume >= REAGENTS_PER_ORE) + holdingitems -= R + qdel(R) + if(islist(ore_components)) + var/amount_to_take = (REAGENTS_PER_ORE/(ore_components.len)) + for(var/i in ore_components) + beaker.reagents.add_reagent(i, amount_to_take) + else + beaker.reagents.add_reagent(ore_components, REAGENTS_PER_ORE) + continue + if(O.reagents) O.reagents.trans_to_obj(beaker, min(O.reagents.total_volume, remaining_volume)) if(O.reagents.total_volume == 0) From ec18de7d7913e54b9b5e745375fec197889d5f24 Mon Sep 17 00:00:00 2001 From: ShadowLarkens Date: Wed, 23 Oct 2024 05:47:09 -0700 Subject: [PATCH 002/109] Replace all air_master nonsense with SSair --- .../components/unary/heat_exchanger.dm | 6 ++--- code/ZAS/Atom.dm | 4 ++-- code/ZAS/Connection.dm | 16 +++++++------- code/ZAS/ConnectionGroup.dm | 20 ++++++++--------- code/ZAS/ConnectionManager.dm | 2 +- code/ZAS/Controller.dm | 4 +--- code/ZAS/Diagnostic.dm | 4 ++-- code/ZAS/Fire.dm | 8 +++---- code/ZAS/Turf.dm | 14 ++++++------ code/ZAS/Zone.dm | 18 +++++++-------- code/ZAS/_docs.dm | 2 +- code/_helpers/unsorted.dm | 2 +- code/controllers/subsystems/air.dm | 7 ++---- code/controllers/verbs.dm | 1 - code/game/machinery/doors/door.dm | 4 ++-- code/game/machinery/doors/firedoor.dm | 6 ++--- code/game/objects/effects/zone_divider.dm | 4 ++-- code/game/objects/items/blueprints.dm | 4 ++-- code/game/objects/items/blueprints_vr.dm | 8 +++---- code/game/turfs/simulated/wall_attacks.dm | 8 +++---- code/game/turfs/turf_changing.dm | 6 ++--- code/game/turfs/unsimulated/planetary.dm | 3 +-- code/modules/admin/verbs/buildmode.dm | 4 ++-- code/modules/admin/verbs/diagnostics.dm | 22 +++++++++---------- code/modules/admin/verbs/mapping.dm | 4 ++-- code/modules/hydroponics/seed.dm | 4 ++-- code/modules/mining/mine_turfs.dm | 4 ++-- code/modules/mob/living/carbon/breathe.dm | 2 +- code/modules/mob/living/carbon/human/life.dm | 2 +- .../silicon/robot/dogborg/dog_sleeper_vr.dm | 2 +- .../subtypes/vore/solargrub_larva.dm | 2 +- code/unit_tests/map_tests.dm | 4 ++-- 32 files changed, 97 insertions(+), 104 deletions(-) diff --git a/code/ATMOSPHERICS/components/unary/heat_exchanger.dm b/code/ATMOSPHERICS/components/unary/heat_exchanger.dm index 7b6a5621eb..078c97af8a 100644 --- a/code/ATMOSPHERICS/components/unary/heat_exchanger.dm +++ b/code/ATMOSPHERICS/components/unary/heat_exchanger.dm @@ -36,11 +36,11 @@ if(!partner) return 0 - if(!air_master || air_master.current_cycle <= update_cycle) + if(!SSair || SSair.current_cycle <= update_cycle) return 0 - update_cycle = air_master.current_cycle - partner.update_cycle = air_master.current_cycle + update_cycle = SSair.current_cycle + partner.update_cycle = SSair.current_cycle var/air_heat_capacity = air_contents.heat_capacity() var/other_air_heat_capacity = partner.air_contents.heat_capacity() diff --git a/code/ZAS/Atom.dm b/code/ZAS/Atom.dm index bfe6fa2ad4..eeb01b4249 100644 --- a/code/ZAS/Atom.dm +++ b/code/ZAS/Atom.dm @@ -36,11 +36,11 @@ //Convenience function for atoms to update turfs they occupy /atom/movable/proc/update_nearby_tiles(need_rebuild) - if(!air_master) + if(!SSair) return 0 for(var/turf/simulated/turf in locs) - air_master.mark_for_update(turf) + SSair.mark_for_update(turf) return 1 diff --git a/code/ZAS/Connection.dm b/code/ZAS/Connection.dm index 21be29d25e..e0549366cb 100644 --- a/code/ZAS/Connection.dm +++ b/code/ZAS/Connection.dm @@ -5,7 +5,7 @@ /* Overview: - Connections are made between turfs by air_master.connect(). They represent a single point where two zones converge. + Connections are made between turfs by SSair.connect(). They represent a single point where two zones converge. Class Vars: A - Always a simulated turf. @@ -60,19 +60,19 @@ Class Procs: /connection/New(turf/simulated/A, turf/simulated/B) #ifdef ZASDBG - ASSERT(air_master.has_valid_zone(A)) - //ASSERT(air_master.has_valid_zone(B)) + ASSERT(SSair.has_valid_zone(A)) + //ASSERT(SSair.has_valid_zone(B)) #endif src.A = A src.B = B zoneA = A.zone if(!istype(B)) mark_space() - edge = air_master.get_edge(A.zone,B) + edge = SSair.get_edge(A.zone,B) edge.add_connection(src) else zoneB = B.zone - edge = air_master.get_edge(A.zone,B.zone) + edge = SSair.get_edge(A.zone,B.zone) edge.add_connection(src) /connection/proc/mark_direct() @@ -108,7 +108,7 @@ Class Procs: erase() return - var/block_status = air_master.air_blocked(A,B) + var/block_status = SSair.air_blocked(A,B) if(block_status & AIR_BLOCKED) //to_world("Blocked connection.") erase() @@ -133,7 +133,7 @@ Class Procs: return else edge.remove_connection(src) - edge = air_master.get_edge(A.zone, B) + edge = SSair.get_edge(A.zone, B) edge.add_connection(src) zoneA = A.zone @@ -155,7 +155,7 @@ Class Procs: //to_world("Zones changed, \...") if(A.zone && B.zone) edge.remove_connection(src) - edge = air_master.get_edge(A.zone, B.zone) + edge = SSair.get_edge(A.zone, B.zone) edge.add_connection(src) zoneA = A.zone zoneB = B.zone diff --git a/code/ZAS/ConnectionGroup.dm b/code/ZAS/ConnectionGroup.dm index 0be44bb358..85b2545d36 100644 --- a/code/ZAS/ConnectionGroup.dm +++ b/code/ZAS/ConnectionGroup.dm @@ -2,7 +2,7 @@ Overview: These are what handle gas transfers between zones and into space. - They are found in a zone's edges list and in air_master.edges. + They are found in a zone's edges list and in SSair.edges. Each edge updates every air tick due to their role in gas transfer. They come in two flavors, /connection_edge/zone and /connection_edge/unsimulated. As the type names might suggest, they handle inter-zone and spacelike connections respectively. @@ -82,7 +82,7 @@ Class Procs: /connection_edge/proc/contains_zone(zone/Z) /connection_edge/proc/erase() - air_master.remove_edge(src) + SSair.remove_edge(src) //to_world("[type] Erased.") /connection_edge/proc/tick() @@ -169,19 +169,19 @@ Class Procs: if(equiv) if(direct) erase() - air_master.merge(A, B) + SSair.merge(A, B) return else A.air.equalize(B.air) - air_master.mark_edge_sleeping(src) + SSair.mark_edge_sleeping(src) - air_master.mark_zone_update(A) - air_master.mark_zone_update(B) + SSair.mark_zone_update(A) + SSair.mark_zone_update(B) /connection_edge/zone/recheck() // Edges with only one side being vacuum need processing no matter how close. if(!A.air.compare(B.air, vacuum_exception = 1)) - air_master.mark_edge_active(src) + SSair.mark_edge_active(src) //Helper proc to get connections for a zone. /connection_edge/zone/proc/get_connected_zone(zone/from) @@ -233,16 +233,16 @@ Class Procs: if(equiv) A.air.copy_from(air) - air_master.mark_edge_sleeping(src) + SSair.mark_edge_sleeping(src) - air_master.mark_zone_update(A) + SSair.mark_zone_update(A) /connection_edge/unsimulated/recheck() // Edges with only one side being vacuum need processing no matter how close. // Note: This handles the glaring flaw of a room holding pressure while exposed to space, but // does not specially handle the less common case of a simulated room exposed to an unsimulated pressurized turf. if(!A.air.compare(air, vacuum_exception = 1)) - air_master.mark_edge_active(src) + SSair.mark_edge_active(src) /proc/ShareHeat(datum/gas_mixture/A, datum/gas_mixture/B, connecting_tiles) //This implements a simplistic version of the Stefan-Boltzmann law. diff --git a/code/ZAS/ConnectionManager.dm b/code/ZAS/ConnectionManager.dm index 3890cd85f5..8d7e270cde 100644 --- a/code/ZAS/ConnectionManager.dm +++ b/code/ZAS/ConnectionManager.dm @@ -16,7 +16,7 @@ Class Procs: Preferable to accessing the connection directly because it checks validity. place(connection/c, d) - Called by air_master.connect(). Sets the connection in the specified direction to c. + Called by SSair.connect(). Sets the connection in the specified direction to c. update_all() Called after turf/update_air_properties(). Updates the validity of all connections on this turf. diff --git a/code/ZAS/Controller.dm b/code/ZAS/Controller.dm index 7f7b575246..d3ada5e311 100644 --- a/code/ZAS/Controller.dm +++ b/code/ZAS/Controller.dm @@ -1,5 +1,3 @@ -var/datum/controller/subsystem/air/air_master - var/tick_multiplier = 2 /* @@ -133,7 +131,7 @@ Class Procs: ASSERT(A != B) #endif - var/block = air_master.air_blocked(A,B) + var/block = SSair.air_blocked(A,B) if(block & AIR_BLOCKED) return var/direct = !(block & ZONE_BLOCKED) diff --git a/code/ZAS/Diagnostic.dm b/code/ZAS/Diagnostic.dm index fba2456802..7893ba4262 100644 --- a/code/ZAS/Diagnostic.dm +++ b/code/ZAS/Diagnostic.dm @@ -8,12 +8,12 @@ /* if(!check_rights(R_DEBUG)) return - var/result = air_master.Tick() + var/result = SSair.Tick() if(result) to_chat(src, "Successfully Processed.") else - to_chat(src, "Failed to process! ([air_master.tick_progress])") + to_chat(src, "Failed to process! ([SSair.tick_progress])") */ /client/proc/Zone_Info(turf/T as null|turf) diff --git a/code/ZAS/Fire.dm b/code/ZAS/Fire.dm index 5c3a24d882..8c1e4afa06 100644 --- a/code/ZAS/Fire.dm +++ b/code/ZAS/Fire.dm @@ -58,7 +58,7 @@ If it gains pressure too slowly, it may leak or just rupture instead of explodin fuel_objs.Cut() if(!fire_tiles.len) - air_master.active_fire_zones.Remove(src) + SSair.active_fire_zones.Remove(src) /zone/proc/remove_liquidfuel(var/used_liquid_fuel, var/remove_fire=0) if(!fuel_objs.len) @@ -94,7 +94,7 @@ If it gains pressure too slowly, it may leak or just rupture instead of explodin return 1 fire = new(src, fl) - air_master.active_fire_zones |= zone + SSair.active_fire_zones |= zone var/obj/effect/decal/cleanable/liquid_fuel/fuel = locate() in src zone.fire_tiles |= src @@ -191,7 +191,7 @@ If it gains pressure too slowly, it may leak or just rupture instead of explodin set_light(3, 1, color) firelevel = fl - air_master.active_hotspots.Add(src) + SSair.active_hotspots.Add(src) /obj/fire/proc/fire_color(var/env_temperature) var/temperature = max(4000*sqrt(firelevel/vsc.fire_firelevel_multiplier), env_temperature) @@ -209,7 +209,7 @@ If it gains pressure too slowly, it may leak or just rupture instead of explodin T.fire = null loc = null - air_master.active_hotspots.Remove(src) + SSair.active_hotspots.Remove(src) /turf/simulated/var/fire_protection = 0 //Protects newly extinguished tiles from being overrun again. diff --git a/code/ZAS/Turf.dm b/code/ZAS/Turf.dm index c05e708036..f8bfc5ae83 100644 --- a/code/ZAS/Turf.dm +++ b/code/ZAS/Turf.dm @@ -41,9 +41,9 @@ if(istype(unsim, /turf/simulated)) var/turf/simulated/sim = unsim - if(air_master.has_valid_zone(sim)) + if(SSair.has_valid_zone(sim)) - air_master.connect(sim, src) + SSair.connect(sim, src) /* Simple heuristic for determining if removing the turf from it's zone will not partition the zone (A very bad thing). @@ -162,7 +162,7 @@ var/turf/simulated/sim = unsim sim.open_directions |= reverse_dir[d] - if(air_master.has_valid_zone(sim)) + if(SSair.has_valid_zone(sim)) //Might have assigned a zone, since this happens for each direction. if(!zone) @@ -195,7 +195,7 @@ if(verbose) to_world("Connecting to [sim.zone]") #endif - air_master.connect(src, sim) + SSair.connect(src, sim) #ifdef ZASDBG @@ -210,7 +210,7 @@ if(!postponed) postponed = list() postponed.Add(unsim) - if(!air_master.has_valid_zone(src)) //Still no zone, make a new one. + if(!SSair.has_valid_zone(src)) //Still no zone, make a new one. var/zone/newzone = new/zone() newzone.add(src) @@ -223,7 +223,7 @@ //At this point, a zone should have happened. If it hasn't, don't add more checks, fix the bug. for(var/turf/T in postponed) - air_master.connect(src, T) + SSair.connect(src, T) /turf/proc/post_update_air_properties() if(connections) connections.update_all() @@ -279,7 +279,7 @@ /turf/simulated/return_air() if(zone) if(!zone.invalid) - air_master.mark_zone_update(zone) + SSair.mark_zone_update(zone) return zone.air else if(!air) diff --git a/code/ZAS/Zone.dm b/code/ZAS/Zone.dm index d07a280d04..db686ce8f0 100644 --- a/code/ZAS/Zone.dm +++ b/code/ZAS/Zone.dm @@ -56,7 +56,7 @@ Class Procs: /zone/var/list/graphic_remove = list() /zone/New() - air_master.add_zone(src) + SSair.add_zone(src) air.temperature = TCMB air.group_multiplier = 1 air.volume = CELL_VOLUME @@ -65,7 +65,7 @@ Class Procs: #ifdef ZASDBG ASSERT(!invalid) ASSERT(istype(T)) - ASSERT(!air_master.has_valid_zone(T)) + ASSERT(!SSair.has_valid_zone(T)) #endif var/datum/gas_mixture/turf_air = T.return_air() @@ -75,7 +75,7 @@ Class Procs: if(T.fire) var/obj/effect/decal/cleanable/liquid_fuel/fuel = locate() in T fire_tiles.Add(T) - air_master.active_fire_zones |= src + SSair.active_fire_zones |= src if(fuel) fuel_objs += fuel if(air.graphic) T.update_graphic(air.graphic) @@ -122,11 +122,11 @@ Class Procs: if(E.contains_zone(into)) continue //don't need to rebuild this edge for(var/turf/T in E.connecting_turfs) - air_master.mark_for_update(T) + SSair.mark_for_update(T) /zone/proc/c_invalidate() invalid = 1 - air_master.remove_zone(src) + SSair.remove_zone(src) #ifdef ZASDBG for(var/turf/simulated/T in contents) T.dbg(invalid_zone) @@ -141,7 +141,7 @@ Class Procs: T.update_graphic(graphic_remove = air_graphic) //we need to remove the overlays so they're not doubled when the zone is rebuilt //T.dbg(invalid_zone) T.needs_air_update = 0 //Reset the marker so that it will be added to the list. - air_master.mark_for_update(T) + SSair.mark_for_update(T) /zone/proc/add_tile_air(datum/gas_mixture/tile_air) //air.volume += CELL_VOLUME @@ -152,7 +152,7 @@ Class Procs: air.group_multiplier = contents.len+1 /zone/proc/tick() - if(air.temperature >= PHORON_FLASHPOINT && !(src in air_master.active_fire_zones) && air.check_combustability() && contents.len) + if(air.temperature >= PHORON_FLASHPOINT && !(src in SSair.active_fire_zones) && air.check_combustability() && contents.len) var/turf/T = pick(contents) if(istype(T)) T.create_fire(vsc.fire_firelevel_multiplier) @@ -171,7 +171,7 @@ Class Procs: to_chat(M,name) for(var/g in air.gas) to_chat(M, "[gas_data.name[g]]: [air.gas[g]]") - to_chat(M, "P: [air.return_pressure()] kPa V: [air.volume]L T: [air.temperature]°K ([air.temperature - T0C]°C)") + to_chat(M, "P: [air.return_pressure()] kPa V: [air.volume]L T: [air.temperature]�K ([air.temperature - T0C]�C)") to_chat(M, "O2 per N2: [(air.gas["nitrogen"] ? air.gas["oxygen"]/air.gas["nitrogen"] : "N/A")] Moles: [air.total_moles]") to_chat(M, "Simulated: [contents.len] ([air.group_multiplier])") //to_chat(M, "Unsimulated: [unsimulated_contents.len]") @@ -192,4 +192,4 @@ Class Procs: to_chat(M, "Space Edges: [space_edges] ([space_coefficient] connections)") //for(var/turf/T in unsimulated_contents) - // to_chat(M, "[T] at ([T.x],[T.y])") \ No newline at end of file + // to_chat(M, "[T] at ([T.x],[T.y])") diff --git a/code/ZAS/_docs.dm b/code/ZAS/_docs.dm index 382f1f0abb..822c8ac7b2 100644 --- a/code/ZAS/_docs.dm +++ b/code/ZAS/_docs.dm @@ -15,7 +15,7 @@ Every air tick: Important Functions: -air_master.mark_for_update(turf) +SSair.mark_for_update(turf) When stuff happens, call this. It works on everything. You basically don't need to worry about any other functions besides CanPass(). diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index 057f988dcb..59be2633d7 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -974,7 +974,7 @@ Turf and target are seperate in case you want to teleport some distance from a t if(toupdate.len) for(var/turf/simulated/T1 in toupdate) - air_master.mark_for_update(T1) + SSair.mark_for_update(T1) return copiedobjs diff --git a/code/controllers/subsystems/air.dm b/code/controllers/subsystems/air.dm index 1e5f1506ec..d84f591436 100644 --- a/code/controllers/subsystems/air.dm +++ b/code/controllers/subsystems/air.dm @@ -30,9 +30,6 @@ SUBSYSTEM_DEF(air) // This is used to tell CI WHERE the edges are. var/list/startup_active_edge_log = list() -/datum/controller/subsystem/air/PreInit() - air_master = src - /datum/controller/subsystem/air/Initialize(timeofday) report_progress("Processing Geometry...") @@ -109,7 +106,7 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun log_and_message_admins("SSair: Was told to start a new run, but the previous run wasn't finished! currentrun.len=[currentrun.len], current_step=[current_step]") resumed = TRUE else - current_cycle++ // Begin a new air_master cycle! + current_cycle++ // Begin a new SSair cycle! current_step = SSAIR_TURFS // Start with Step 1 of course INTERNAL_PROCESS_STEP(SSAIR_TURFS, TRUE, process_tiles_to_update, cost_turfs, SSAIR_EDGES) @@ -118,7 +115,7 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun INTERNAL_PROCESS_STEP(SSAIR_HOTSPOTS, FALSE, process_active_hotspots, cost_hotspots, SSAIR_ZONES) INTERNAL_PROCESS_STEP(SSAIR_ZONES, FALSE, process_zones_to_update, cost_zones, SSAIR_DONE) - // Okay, we're done! Woo! Got thru a whole air_master cycle! + // Okay, we're done! Woo! Got thru a whole SSair cycle! if(LAZYLEN(currentrun) || current_step != SSAIR_DONE) log_and_message_admins("SSair: Was not able to complete a full air cycle despite reaching the end of fire(). This shouldn't happen.") else diff --git a/code/controllers/verbs.dm b/code/controllers/verbs.dm index fee7da9b85..150d482360 100644 --- a/code/controllers/verbs.dm +++ b/code/controllers/verbs.dm @@ -89,7 +89,6 @@ //Goon PS stuff, and other yet-to-be-subsystem things. options["LEGACY: master_controller"] = master_controller - options["LEGACY: air_master"] = air_master options["LEGACY: job_master"] = job_master options["LEGACY: radio_controller"] = radio_controller options["LEGACY: emergency_shuttle"] = emergency_shuttle diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 2f70e0436e..8055af222c 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -437,12 +437,12 @@ return ..(M) /obj/machinery/door/update_nearby_tiles(need_rebuild) - if(!air_master) + if(!SSair) return 0 for(var/turf/simulated/turf in locs) update_heat_protection(turf) - air_master.mark_for_update(turf) + SSair.mark_for_update(turf) return 1 diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index d4477eeac0..4502ed9334 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -501,15 +501,15 @@ update_nearby_tiles(need_rebuild) - if(!air_master) return 0 + if(!SSair) return 0 var/turf/simulated/source = loc var/turf/simulated/destination = get_step(source,dir) update_heat_protection(loc) - if(istype(source)) air_master.tiles_to_update += source - if(istype(destination)) air_master.tiles_to_update += destination + if(istype(source)) SSair.tiles_to_update += source + if(istype(destination)) SSair.tiles_to_update += destination return 1 */ diff --git a/code/game/objects/effects/zone_divider.dm b/code/game/objects/effects/zone_divider.dm index fa2ea82531..3638219b20 100644 --- a/code/game/objects/effects/zone_divider.dm +++ b/code/game/objects/effects/zone_divider.dm @@ -13,8 +13,8 @@ // Special case to prevent us from being part of a zone during the first air master tick. // We must merge ourselves into a zone on next tick. This will cause a bit of lag on // startup, but it can't really be helped you know? - if(air_master && air_master.current_cycle == 0) + if(SSair && SSair.current_cycle == 0) spawn(1) - air_master.mark_for_update(get_turf(src)) + SSair.mark_for_update(get_turf(src)) return FALSE return is_zone ? FALSE : TRUE // Anything except zones can pass diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index 84b8d743f6..c0f82b0b15 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -251,9 +251,9 @@ if (!isturf(NT) || (NT in found) || (NT in pending)) continue // We ask ZAS to determine if its airtight. Thats what matters anyway right? - if(air_master.air_blocked(T, NT)) + if(SSair.air_blocked(T, NT)) // Okay thats the edge of the room - if(get_area_type(NT.loc) == AREA_SPACE && air_master.air_blocked(NT, NT)) + if(get_area_type(NT.loc) == AREA_SPACE && SSair.air_blocked(NT, NT)) found += NT // So we include walls/doors not already in any area continue if (istype(NT, /turf/space)) diff --git a/code/game/objects/items/blueprints_vr.dm b/code/game/objects/items/blueprints_vr.dm index 336a6219d9..214bbff518 100644 --- a/code/game/objects/items/blueprints_vr.dm +++ b/code/game/objects/items/blueprints_vr.dm @@ -678,9 +678,9 @@ if(!visual && forbiddenAreas[NT.loc.type]) return ROOM_ERR_FORBIDDEN // We ask ZAS to determine if its airtight. Thats what matters anyway right? - if(air_master.air_blocked(T, NT)) + if(SSair.air_blocked(T, NT)) // Okay thats the edge of the room - if(get_area_type(NT.loc) == AREA_SPACE && air_master.air_blocked(NT, NT)) + if(get_area_type(NT.loc) == AREA_SPACE && SSair.air_blocked(NT, NT)) found += NT // So we include walls/doors not already in any area continue if (istype(NT, /turf/space)) @@ -835,9 +835,9 @@ if(!get_new_area_type(NT.loc) == 1) //The contains somewhere that is NOT a buildable area. return 3 //NOT A BUILDABLE AREA - if(air_master.air_blocked(T, NT)) //Is the room airtight? + if(SSair.air_blocked(T, NT)) //Is the room airtight? // Okay thats the edge of the room - if(get_new_area_type(NT.loc) == 1 && air_master.air_blocked(NT, NT)) + if(get_new_area_type(NT.loc) == 1 && SSair.air_blocked(NT, NT)) found += NT // So we include walls/doors not already in any area continue if (istype(NT, /turf/space)) diff --git a/code/game/turfs/simulated/wall_attacks.dm b/code/game/turfs/simulated/wall_attacks.dm index d7630618e2..cfc998f72a 100644 --- a/code/game/turfs/simulated/wall_attacks.dm +++ b/code/game/turfs/simulated/wall_attacks.dm @@ -17,7 +17,7 @@ src.blocks_air = 0 set_opacity(0) for(var/turf/simulated/turf in loc) - air_master.mark_for_update(turf) + SSair.mark_for_update(turf) else can_open = WALL_OPENING //flick("[material.icon_base]fwall_closing", src) @@ -29,18 +29,18 @@ src.blocks_air = 1 set_opacity(1) for(var/turf/simulated/turf in loc) - air_master.mark_for_update(turf) + SSair.mark_for_update(turf) can_open = WALL_CAN_OPEN update_icon() /turf/simulated/wall/proc/update_air() - if(!air_master) + if(!SSair) return for(var/turf/simulated/turf in loc) update_thermal(turf) - air_master.mark_for_update(turf) + SSair.mark_for_update(turf) /turf/simulated/wall/proc/update_thermal(var/turf/simulated/source) diff --git a/code/game/turfs/turf_changing.dm b/code/game/turfs/turf_changing.dm index 72cb432e1b..11afc9e042 100644 --- a/code/game/turfs/turf_changing.dm +++ b/code/game/turfs/turf_changing.dm @@ -28,7 +28,7 @@ if(N == /turf/space) var/turf/below = GetBelow(src) - if(istype(below) && (air_master.has_valid_zone(below) || air_master.has_valid_zone(src)) && !(src.z in using_map.below_blocked_levels) && (!istype(below, /turf/unsimulated/wall) && !istype(below, /turf/simulated/sky))) // VOREStation Edit: Weird open space + if(istype(below) && (SSair.has_valid_zone(below) || SSair.has_valid_zone(src)) && !(src.z in using_map.below_blocked_levels) && (!istype(below, /turf/unsimulated/wall) && !istype(below, /turf/simulated/sky))) // VOREStation Edit: Weird open space N = /turf/simulated/open var/obj/fire/old_fire = fire @@ -75,8 +75,8 @@ if(tell_universe) universe.OnTurfChange(W) - if(air_master) - air_master.mark_for_update(W) + if(SSair) + SSair.mark_for_update(W) for(var/turf/space/S in range(W, 1)) S.update_starlight() diff --git a/code/game/turfs/unsimulated/planetary.dm b/code/game/turfs/unsimulated/planetary.dm index c6be94c5ed..d73201c166 100644 --- a/code/game/turfs/unsimulated/planetary.dm +++ b/code/game/turfs/unsimulated/planetary.dm @@ -33,7 +33,7 @@ // Force ZAS to reconsider our connections because our temperature has changed if(connections) connections.erase_all() - air_master.mark_for_update(src) + SSair.mark_for_update(src) // Normal station/earth air. /turf/unsimulated/wall/planetary/normal @@ -67,4 +67,3 @@ oxygen = MOLES_O2STANDARD nitrogen = MOLES_N2STANDARD temperature = 310.92 // About 37.7C / 100F - diff --git a/code/modules/admin/verbs/buildmode.dm b/code/modules/admin/verbs/buildmode.dm index 922e3c326e..aa3efca68d 100644 --- a/code/modules/admin/verbs/buildmode.dm +++ b/code/modules/admin/verbs/buildmode.dm @@ -830,9 +830,9 @@ if (!isturf(NT) || (NT in found) || (NT in pending)) continue // We ask ZAS to determine if its airtight. Thats what matters anyway right? - if(air_master.air_blocked(T, NT)) + if(SSair.air_blocked(T, NT)) // Okay thats the edge of the room - if(get_area_type_buildmode(NT.loc) == AREA_SPACE && air_master.air_blocked(NT, NT)) + if(get_area_type_buildmode(NT.loc) == AREA_SPACE && SSair.air_blocked(NT, NT)) found += NT // So we include walls/doors not already in any area continue if (istype(NT, /turf/space)) diff --git a/code/modules/admin/verbs/diagnostics.dm b/code/modules/admin/verbs/diagnostics.dm index 1ce73a7f74..3e9a81b319 100644 --- a/code/modules/admin/verbs/diagnostics.dm +++ b/code/modules/admin/verbs/diagnostics.dm @@ -2,12 +2,12 @@ set category = "Debug" set name = "Show Air Report" - if(!master_controller || !air_master) - tgui_alert_async(usr,"Master_controller or air_master not found.","Air Report") + if(!master_controller || !SSair) + tgui_alert_async(usr,"Master_controller or SSair not found.","Air Report") return - var/active_groups = air_master.active_zones - var/inactive_groups = air_master.zones.len - active_groups + var/active_groups = SSair.active_zones + var/inactive_groups = SSair.zones.len - active_groups var/hotspots = 0 for(var/obj/fire/hotspot in world) @@ -15,7 +15,7 @@ var/active_on_main_station = 0 var/inactive_on_main_station = 0 - for(var/zone/zone in air_master.zones) + for(var/zone/zone in SSair.zones) var/turf/simulated/turf = locate() in zone.contents if(turf?.z in using_map.station_levels) if(zone.needs_update) @@ -25,8 +25,8 @@ var/output = {"AIR SYSTEMS REPORT
General Processing Data
- Cycle: [air_master.current_cycle]
- Groups: [air_master.zones.len]
+ Cycle: [SSair.current_cycle]
+ Groups: [SSair.zones.len]
---- Active: [active_groups]
---- Inactive: [inactive_groups]

---- Active on station: [active_on_main_station]
@@ -36,7 +36,7 @@ Hotspot Processing: [hotspots]

Geometry Processing Data
- Tile Update: [air_master.tiles_to_update.len]
+ Tile Update: [SSair.tiles_to_update.len]
"} usr << browse(output,"window=airreport") @@ -127,11 +127,11 @@ to_chat(src, "Only administrators may use this command.") return - if(!air_master) + if(!SSair) to_chat(usr, "Cannot find air_system") return var/datum/air_group/dead_groups = list() - for(var/datum/air_group/group in air_master.air_groups) + for(var/datum/air_group/group in SSair.air_groups) if (!group.group_processing) dead_groups += group var/datum/air_group/dest_group = pick(dead_groups) @@ -149,7 +149,7 @@ to_chat(src, "Only administrators may use this command.") return - if(!air_master) + if(!SSair) to_chat(usr, "Cannot find air_system") return diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index c51b131b8e..9b43a08bf4 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -354,7 +354,7 @@ var/global/prevent_airgroup_regroup = 0 set name = "Break All Airgroups" /*prevent_airgroup_regroup = 1 - for(var/datum/air_group/AG in air_master.air_groups) + for(var/datum/air_group/AG in SSair.air_groups) AG.suspend_group_processing() message_admins("[src.ckey] used 'Break All Airgroups'")*/ @@ -365,7 +365,7 @@ var/global/prevent_airgroup_regroup = 0 to_chat(usr, span_red("Proc disabled.")) //Why not.. Delete the procs instead? /*prevent_airgroup_regroup = 0 - for(var/datum/air_group/AG in air_master.air_groups) + for(var/datum/air_group/AG in SSair.air_groups) AG.check_regroup() message_admins("[src.ckey] used 'Regroup All Airgroups Attempt'")*/ diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index 61b2ae4df5..150e345db6 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -254,11 +254,11 @@ var/no_los var/turf/last_turf = origin_turf for(var/turf/target_turf in getline(origin_turf,neighbor)) - if(air_master.air_blocked(last_turf, target_turf)) + if(SSair.air_blocked(last_turf, target_turf)) no_los = 1 break last_turf = target_turf - if(!no_los && air_master.air_blocked(origin_turf, neighbor)) + if(!no_los && SSair.air_blocked(origin_turf, neighbor)) no_los = 1 if(no_los) closed_turfs |= neighbor diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 3bab28eae2..f679591e2d 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -173,8 +173,8 @@ var/list/mining_overlay_cache = list() recalculate_directional_opacity() if(ticker && ticker.current_state == GAME_STATE_PLAYING) reconsider_lights() - if(air_master) - air_master.mark_for_update(src) + if(SSair) + SSair.mark_for_update(src) /turf/simulated/mineral/proc/get_cached_border(var/cache_id, var/direction, var/icon_file, var/icon_state, var/offset = 32) //Cache miss diff --git a/code/modules/mob/living/carbon/breathe.dm b/code/modules/mob/living/carbon/breathe.dm index f4d90e9712..009667dbf4 100644 --- a/code/modules/mob/living/carbon/breathe.dm +++ b/code/modules/mob/living/carbon/breathe.dm @@ -2,7 +2,7 @@ //Start of a breath chain, calls breathe() /mob/living/carbon/handle_breathing() - if(air_master.current_cycle%4==2 || failed_last_breath || (health < CONFIG_GET(number/health_threshold_crit))) //First, resolve location and get a breath + if(SSair.current_cycle%4==2 || failed_last_breath || (health < CONFIG_GET(number/health_threshold_crit))) //First, resolve location and get a breath breathe() /mob/living/carbon/proc/breathe() diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 7d64ac51cf..7463a72cb9 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1777,7 +1777,7 @@ stomach_contents.Remove(M) qdel(M) continue - if(air_master.current_cycle%3==1) + if(SSair.current_cycle%3==1) if(!(M.status_flags & GODMODE)) M.adjustBruteLoss(5) adjust_nutrition(10) diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm index 6c573330d4..0baa98d422 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm @@ -579,7 +579,7 @@ 'sound/vore/digest12.ogg') playsound(src, churnsound, vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/preference/toggle/digestion_noises) //If the timing is right, and there are items to be touched - if(air_master.current_cycle%3==1 && length(touchable_items)) + if(SSair.current_cycle%3==1 && length(touchable_items)) //Burn all the mobs or add them to the exclusion list for(var/mob/living/T in (touchable_items)) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/solargrub_larva.dm b/code/modules/mob/living/simple_mob/subtypes/vore/solargrub_larva.dm index 763e7386ab..f1c2ef7641 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/solargrub_larva.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/solargrub_larva.dm @@ -88,7 +88,7 @@ var/global/list/grub_machine_overlays = list() return if(istype(loc, /obj/machinery)) - if(machine_effect && air_master.current_cycle%30) + if(machine_effect && SSair.current_cycle%30) for(var/mob/M in player_list) M << machine_effect if(prob(10)) diff --git a/code/unit_tests/map_tests.dm b/code/unit_tests/map_tests.dm index e988835fc4..d6a9347784 100644 --- a/code/unit_tests/map_tests.dm +++ b/code/unit_tests/map_tests.dm @@ -124,10 +124,10 @@ /datum/unit_test/active_edges/start_test() - var/active_edges = air_master.active_edges.len + var/active_edges = SSair.active_edges.len var/list/edge_log = list() if(active_edges) - for(var/connection_edge/E in air_master.active_edges) + for(var/connection_edge/E in SSair.active_edges) var/a_temp = E.A.air.temperature var/a_moles = E.A.air.total_moles var/a_vol = E.A.air.volume From 2bb91dcf59283cc439d5e2fc9bfd9a42fb64e2d3 Mon Sep 17 00:00:00 2001 From: ShadowLarkens Date: Wed, 23 Oct 2024 05:48:57 -0700 Subject: [PATCH 003/109] Murder some old disabled admin verbs --- code/controllers/master_controller.dm | 2 - code/game/turfs/simulated.dm | 4 -- code/game/turfs/turf.dm | 3 - code/modules/admin/verbs/adminhelp.dm | 4 -- code/modules/admin/verbs/mapping.dm | 83 ------------------------- code/modules/admin/verbs/pray.dm | 4 -- code/modules/blob2/overmind/overmind.dm | 2 +- code/modules/client/verbs/ooc.dm | 7 --- code/modules/mentor/mentorhelp.dm | 4 -- code/modules/mob/living/say.dm | 2 +- code/modules/mob/say.dm | 7 --- code/modules/mob/say_vr.dm | 6 -- 12 files changed, 2 insertions(+), 126 deletions(-) diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index 857ce225f6..2955d9d721 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -11,8 +11,6 @@ var/global/datum/controller/game_controller/master_controller //Set in world.New var/global/controller_iteration = 0 var/global/last_tick_duration = 0 -var/global/pipe_processing_killed = 0 - /datum/controller/game_controller var/list/shuttle_list // For debugging and VV diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index 841ab7286b..1a9611c886 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -91,10 +91,6 @@ dirtoverlay.alpha = min((dirt - 50) * 5, 255) /turf/simulated/Entered(atom/A, atom/OL) - if(movement_disabled && usr.ckey != movement_disabled_exception) - to_chat(usr, span_danger("Movement is admin-disabled.")) //This is to identify lag problems - return - if (istype(A,/mob/living)) var/mob/living/M = A if(M.lying || M.flying) //VOREStation Edit diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 8751a72337..0b3b88a8d5 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -182,9 +182,6 @@ //There's a lot of QDELETED() calls here if someone can figure out how to optimize this but not runtime when something gets deleted by a Bump/CanPass/Cross call, lemme know or go ahead and fix this mess - kevinz000 /turf/Enter(atom/movable/mover, atom/oldloc) - if(movement_disabled && usr.ckey != movement_disabled_exception) - to_chat(usr, span_warning("Movement is admin-disabled.")) //This is to identify lag problems - return // Do not call ..() // Byond's default turf/Enter() doesn't have the behaviour we want with Bump() // By default byond will call Bump() on the first dense object in contents diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 6c3da08252..a99414f764 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -599,10 +599,6 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) set category = "Admin" set name = "Adminhelp" - if(say_disabled) //This is here to try to identify lag problems - to_chat(usr, span_danger("Speech is currently admin-disabled.")) - return - //handle muting and automuting if(prefs.muted & MUTE_ADMINHELP) to_chat(src, span_danger("Error: Admin-PM: You cannot send adminhelps (Muted).")) diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm index 9b43a08bf4..8ba2f059cb 100644 --- a/code/modules/admin/verbs/mapping.dm +++ b/code/modules/admin/verbs/mapping.dm @@ -146,12 +146,6 @@ var/list/debug_verbs = list ( ,/client/proc/print_jobban_old ,/client/proc/print_jobban_old_filter ,/client/proc/forceEvent - ,/client/proc/break_all_air_groups - ,/client/proc/regroup_all_air_groups - ,/client/proc/kill_pipe_processing - ,/client/proc/kill_air_processing - ,/client/proc/disable_communication - ,/client/proc/disable_movement ,/client/proc/Zone_Info ,/client/proc/Test_ZAS_Connection ,/client/proc/ZoneTick @@ -345,80 +339,3 @@ var/list/debug_verbs = list ( to_world("There are [count] objects of type [type_path] in the game world") feedback_add_details("admin_verb","mOBJ") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - -var/global/prevent_airgroup_regroup = 0 - -/client/proc/break_all_air_groups() - set category = "Mapping" - set name = "Break All Airgroups" - - /*prevent_airgroup_regroup = 1 - for(var/datum/air_group/AG in SSair.air_groups) - AG.suspend_group_processing() - message_admins("[src.ckey] used 'Break All Airgroups'")*/ - -/client/proc/regroup_all_air_groups() - set category = "Mapping" - set name = "Regroup All Airgroups Attempt" - - to_chat(usr, span_red("Proc disabled.")) //Why not.. Delete the procs instead? - - /*prevent_airgroup_regroup = 0 - for(var/datum/air_group/AG in SSair.air_groups) - AG.check_regroup() - message_admins("[src.ckey] used 'Regroup All Airgroups Attempt'")*/ - -/client/proc/kill_pipe_processing() - set category = "Mapping" - set name = "Kill pipe processing" - - to_chat(usr, span_red("Proc disabled.")) - - /*pipe_processing_killed = !pipe_processing_killed - if(pipe_processing_killed) - message_admins("[src.ckey] used 'kill pipe processing', stopping all pipe processing.") - else - message_admins("[src.ckey] used 'kill pipe processing', restoring all pipe processing.")*/ - -/client/proc/kill_air_processing() - set category = "Mapping" - set name = "Kill air processing" - - to_chat(usr, span_red("Proc disabled.")) - - /*air_processing_killed = !air_processing_killed - if(air_processing_killed) - message_admins("[src.ckey] used 'kill air processing', stopping all air processing.") - else - message_admins("[src.ckey] used 'kill air processing', restoring all air processing.")*/ - -//This proc is intended to detect lag problems relating to communication procs -var/global/say_disabled = 0 -/client/proc/disable_communication() - set category = "Mapping" - set name = "Disable all communication verbs" - - to_chat(usr, span_red("Proc disabled.")) - - /*say_disabled = !say_disabled - if(say_disabled) - message_admins("[src.ckey] used 'Disable all communication verbs', killing all communication methods.") - else - message_admins("[src.ckey] used 'Disable all communication verbs', restoring all communication methods.")*/ - -//This proc is intended to detect lag problems relating to movement -var/global/movement_disabled = 0 -var/global/movement_disabled_exception //This is the client that calls the proc, so he can continue to run around to gauge any change to lag. -/client/proc/disable_movement() - set category = "Mapping" - set name = "Disable all movement" - - to_chat(usr, span_red("Proc disabled.")) - - /*movement_disabled = !movement_disabled - if(movement_disabled) - message_admins("[src.ckey] used 'Disable all movement', killing all movement.") - movement_disabled_exception = usr.ckey - else - message_admins("[src.ckey] used 'Disable all movement', restoring all movement.")*/ diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index 9b056896a0..c81f313e0c 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -2,10 +2,6 @@ set category = "IC" set name = "Pray" - if(say_disabled) //This is here to try to identify lag problems - to_chat(usr, span_red("Speech is currently admin-disabled.")) - return - var/raw_msg = sanitize(tgui_input_text(usr, "Prayers are sent to staff but do not open tickets or go to Discord. If you have a technical difficulty or an event/spice idea/hook - please ahelp instead. Thank you!", "Pray", null, MAX_MESSAGE_LEN)) if(!raw_msg) return diff --git a/code/modules/blob2/overmind/overmind.dm b/code/modules/blob2/overmind/overmind.dm index 993a4126ac..73fe9978c5 100644 --- a/code/modules/blob2/overmind/overmind.dm +++ b/code/modules/blob2/overmind/overmind.dm @@ -116,7 +116,7 @@ var/list/overminds = list() if(client) if(message) client.handle_spam_prevention(MUTE_IC) - if((client.prefs.muted & MUTE_IC) || say_disabled) + if((client.prefs.muted & MUTE_IC)) to_chat(src, span_warning("You cannot speak in IC (Muted).")) return diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index 5e6d1b5f5d..561401ef92 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -3,9 +3,6 @@ set name = "OOC" set category = "OOC" - if(say_disabled) //This is here to try to identify lag problems - to_chat(usr, span_warning("Speech is currently admin-disabled.")) - return if(!mob) return if(IsGuestKey(key)) @@ -86,10 +83,6 @@ set desc = "Local OOC, seen only by those in view." set category = "OOC" - if(say_disabled) //This is here to try to identify lag problems - to_chat(usr, span_danger("Speech is currently admin-disabled.")) - return - if(!mob) return diff --git a/code/modules/mentor/mentorhelp.dm b/code/modules/mentor/mentorhelp.dm index cbf457083a..8ceb792e6b 100644 --- a/code/modules/mentor/mentorhelp.dm +++ b/code/modules/mentor/mentorhelp.dm @@ -420,10 +420,6 @@ GLOBAL_DATUM_INIT(mhelp_tickets, /datum/mentor_help_tickets, new) set category = "Admin" set name = "Mentorhelp" - if(say_disabled) //This is here to try to identify lag problems - to_chat(usr, span_danger("Speech is currently admin-disabled.")) - return - //handle muting and automuting if(prefs.muted & MUTE_ADMINHELP) to_chat(src, span_danger("Error: Mentor-PM: You cannot send adminhelps (Muted).")) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 94d1e093fc..6c81144e0e 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -149,7 +149,7 @@ var/list/channel_to_radio_key = new if(client) if(message) client.handle_spam_prevention(MUTE_IC) - if((client.prefs.muted & MUTE_IC) || say_disabled) + if((client.prefs.muted & MUTE_IC)) to_chat(src, span_warning("You cannot speak in IC (Muted).")) return diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index a5b7a6f00d..e2400e2c16 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -32,9 +32,6 @@ set desc = "Emote to nearby people (and your pred/prey)" set hidden = 1 - if(say_disabled) //This is here to try to identify lag problems - to_chat(usr, span_red("Speech is currently admin-disabled.")) - return //VOREStation Addition Start if(forced_psay) pme(message) @@ -56,10 +53,6 @@ usr.emote(message) /mob/proc/say_dead(var/message) - if(say_disabled) //This is here to try to identify lag problems - to_chat(usr, span_danger("Speech is currently admin-disabled.")) - return - if(!client) return // Clientless mobs shouldn't be trying to talk in deadchat. diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index 0ce22e0ec0..d2541b14b9 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -8,9 +8,6 @@ set desc = "Emote to nearby people (and your pred/prey)" set hidden = 1 - if(say_disabled) //This is here to try to identify lag problems - to_chat(usr, "Speech is currently admin-disabled.") - return if(forced_psay) pme(message) return @@ -30,9 +27,6 @@ set category = "IC" set desc = "Emote to nearby people, with ability to choose which specific portion of people you wish to target." - if(say_disabled) //This is here to try to identify lag problems - to_chat(usr, "Speech is currently admin-disabled.") - return if(forced_psay) pme(message) return From 0bc3a47dbec67462558803c1e93bd5313727ba93 Mon Sep 17 00:00:00 2001 From: ShadowLarkens Date: Wed, 23 Oct 2024 05:56:12 -0700 Subject: [PATCH 004/109] Move ZAS/Controller nonsense to air.dm properly --- code/ZAS/Controller.dm | 229 --------------------------- code/controllers/subsystems/air.dm | 240 ++++++++++++++++++++++++++++- vorestation.dme | 1 - 3 files changed, 237 insertions(+), 233 deletions(-) delete mode 100644 code/ZAS/Controller.dm diff --git a/code/ZAS/Controller.dm b/code/ZAS/Controller.dm deleted file mode 100644 index d3ada5e311..0000000000 --- a/code/ZAS/Controller.dm +++ /dev/null @@ -1,229 +0,0 @@ -var/tick_multiplier = 2 - -/* - -Overview: - The air controller does everything. There are tons of procs in here. - -Class Vars: - zones - All zones currently holding one or more turfs. - edges - All processing edges. - - tiles_to_update - Tiles scheduled to update next tick. - zones_to_update - Zones which have had their air changed and need air archival. - active_hotspots - All processing fire objects. - - active_zones - The number of zones which were archived last tick. Used in debug verbs. - next_id - The next UID to be applied to a zone. Mostly useful for debugging purposes as zones do not need UIDs to function. - -Class Procs: - - mark_for_update(turf/T) - Adds the turf to the update list. When updated, update_air_properties() will be called. - When stuff changes that might affect airflow, call this. It's basically the only thing you need. - - add_zone(zone/Z) and remove_zone(zone/Z) - Adds zones to the zones list. Does not mark them for update. - - air_blocked(turf/A, turf/B) - Returns a bitflag consisting of: - AIR_BLOCKED - The connection between turfs is physically blocked. No air can pass. - ZONE_BLOCKED - There is a door between the turfs, so zones cannot cross. Air may or may not be permeable. - - has_valid_zone(turf/T) - Checks the presence and validity of T's zone. - May be called on unsimulated turfs, returning 0. - - merge(zone/A, zone/B) - Called when zones have a direct connection and equivalent pressure and temperature. - Merges the zones to create a single zone. - - connect(turf/simulated/A, turf/B) - Called by turf/update_air_properties(). The first argument must be simulated. - Creates a connection between A and B. - - mark_zone_update(zone/Z) - Adds zone to the update list. Unlike mark_for_update(), this one is called automatically whenever - air is returned from a simulated turf. - - equivalent_pressure(zone/A, zone/B) - Currently identical to A.air.compare(B.air). Returns 1 when directly connected zones are ready to be merged. - - get_edge(zone/A, zone/B) - get_edge(zone/A, turf/B) - Gets a valid connection_edge between A and B, creating a new one if necessary. - - has_same_air(turf/A, turf/B) - Used to determine if an unsimulated edge represents a specific turf. - Simulated edges use connection_edge/contains_zone() for the same purpose. - Returns 1 if A has identical gases and temperature to B. - - remove_edge(connection_edge/edge) - Called when an edge is erased. Removes it from processing. - -*/ - -// -// The rest of the air subsystem is defined in air.dm -// - -/datum/controller/subsystem/air - //Geometry lists - var/list/zones = list() - var/list/edges = list() - //Geometry updates lists - var/list/tiles_to_update = list() - var/list/zones_to_update = list() - var/list/active_fire_zones = list() - var/list/active_hotspots = list() - var/list/active_edges = list() - - var/active_zones = 0 - var/current_cycle = 0 - var/next_id = 1 //Used to keep track of zone UIDs. - -/datum/controller/subsystem/air/proc/add_zone(zone/z) - zones.Add(z) - z.name = "Zone [next_id++]" - mark_zone_update(z) - -/datum/controller/subsystem/air/proc/remove_zone(zone/z) - zones.Remove(z) - zones_to_update.Remove(z) - -/datum/controller/subsystem/air/proc/air_blocked(turf/A, turf/B) - #ifdef ZASDBG - ASSERT(isturf(A)) - ASSERT(isturf(B)) - #endif - var/ablock = A.c_airblock(B) - if(ablock == BLOCKED) return BLOCKED - return ablock | B.c_airblock(A) - -/datum/controller/subsystem/air/proc/has_valid_zone(turf/simulated/T) - #ifdef ZASDBG - ASSERT(istype(T)) - #endif - return istype(T) && T.zone && !T.zone.invalid - -/datum/controller/subsystem/air/proc/merge(zone/A, zone/B) - #ifdef ZASDBG - ASSERT(istype(A)) - ASSERT(istype(B)) - ASSERT(!A.invalid) - ASSERT(!B.invalid) - ASSERT(A != B) - #endif - if(A.contents.len < B.contents.len) - A.c_merge(B) - mark_zone_update(B) - else - B.c_merge(A) - mark_zone_update(A) - -/datum/controller/subsystem/air/proc/connect(turf/simulated/A, turf/simulated/B) - #ifdef ZASDBG - ASSERT(istype(A)) - ASSERT(isturf(B)) - ASSERT(A.zone) - ASSERT(!A.zone.invalid) - //ASSERT(B.zone) - ASSERT(A != B) - #endif - - var/block = SSair.air_blocked(A,B) - if(block & AIR_BLOCKED) return - - var/direct = !(block & ZONE_BLOCKED) - var/space = !istype(B) - - if(!space) - if(min(A.zone.contents.len, B.zone.contents.len) < ZONE_MIN_SIZE || (direct && (equivalent_pressure(A.zone,B.zone) || current_cycle == 0))) - merge(A.zone,B.zone) - return - - var/a_to_b = get_dir(A,B) - var/b_to_a = get_dir(B,A) - - if(!A.connections) A.connections = new - if(!B.connections) B.connections = new - - if(A.connections.get(a_to_b)) return - if(B.connections.get(b_to_a)) return - if(!space) - if(A.zone == B.zone) return - - - var/connection/c = new /connection(A,B) - - A.connections.place(c, a_to_b) - B.connections.place(c, b_to_a) - - if(direct) c.mark_direct() - -/datum/controller/subsystem/air/proc/mark_for_update(turf/T) - #ifdef ZASDBG - ASSERT(isturf(T)) - #endif - if(T.needs_air_update) return - tiles_to_update |= T - #ifdef ZASDBG - T.add_overlay(mark) - #endif - T.needs_air_update = 1 - -/datum/controller/subsystem/air/proc/mark_zone_update(zone/Z) - #ifdef ZASDBG - ASSERT(istype(Z)) - #endif - if(Z.needs_update) return - zones_to_update.Add(Z) - Z.needs_update = 1 - -/datum/controller/subsystem/air/proc/mark_edge_sleeping(connection_edge/E) - #ifdef ZASDBG - ASSERT(istype(E)) - #endif - if(E.sleeping) return - active_edges.Remove(E) - E.sleeping = 1 - -/datum/controller/subsystem/air/proc/mark_edge_active(connection_edge/E) - #ifdef ZASDBG - ASSERT(istype(E)) - #endif - if(!E.sleeping) return - active_edges.Add(E) - E.sleeping = 0 - -/datum/controller/subsystem/air/proc/equivalent_pressure(zone/A, zone/B) - return A.air.compare(B.air) - -/datum/controller/subsystem/air/proc/get_edge(zone/A, zone/B) - - if(istype(B)) - for(var/connection_edge/zone/edge in A.edges) - if(edge.contains_zone(B)) return edge - var/connection_edge/edge = new/connection_edge/zone(A,B) - edges.Add(edge) - edge.recheck() - return edge - else - for(var/connection_edge/unsimulated/edge in A.edges) - if(has_same_air(edge.B,B)) return edge - var/connection_edge/edge = new/connection_edge/unsimulated(A,B) - edges.Add(edge) - edge.recheck() - return edge - -/datum/controller/subsystem/air/proc/has_same_air(turf/A, turf/B) - if(A.oxygen != B.oxygen) return 0 - if(A.nitrogen != B.nitrogen) return 0 - if(A.phoron != B.phoron) return 0 - if(A.carbon_dioxide != B.carbon_dioxide) return 0 - if(A.temperature != B.temperature) return 0 - return 1 - -/datum/controller/subsystem/air/proc/remove_edge(connection_edge/E) - edges.Remove(E) - if(!E.sleeping) active_edges.Remove(E) diff --git a/code/controllers/subsystems/air.dm b/code/controllers/subsystems/air.dm index d84f591436..91e67c0d2b 100644 --- a/code/controllers/subsystems/air.dm +++ b/code/controllers/subsystems/air.dm @@ -1,3 +1,64 @@ +/* +Overview: + SSair does everything. There are tons of procs in here. + +Class Vars: + zones - All zones currently holding one or more turfs. + edges - All processing edges. + + tiles_to_update - Tiles scheduled to update next tick. + zones_to_update - Zones which have had their air changed and need air archival. + active_hotspots - All processing fire objects. + + active_zones - The number of zones which were archived last tick. Used in debug verbs. + next_id - The next UID to be applied to a zone. Mostly useful for debugging purposes as zones do not need UIDs to function. + +Class Procs: + + mark_for_update(turf/T) + Adds the turf to the update list. When updated, update_air_properties() will be called. + When stuff changes that might affect airflow, call this. It's basically the only thing you need. + + add_zone(zone/Z) and remove_zone(zone/Z) + Adds zones to the zones list. Does not mark them for update. + + air_blocked(turf/A, turf/B) + Returns a bitflag consisting of: + AIR_BLOCKED - The connection between turfs is physically blocked. No air can pass. + ZONE_BLOCKED - There is a door between the turfs, so zones cannot cross. Air may or may not be permeable. + + has_valid_zone(turf/T) + Checks the presence and validity of T's zone. + May be called on unsimulated turfs, returning 0. + + merge(zone/A, zone/B) + Called when zones have a direct connection and equivalent pressure and temperature. + Merges the zones to create a single zone. + + connect(turf/simulated/A, turf/B) + Called by turf/update_air_properties(). The first argument must be simulated. + Creates a connection between A and B. + + mark_zone_update(zone/Z) + Adds zone to the update list. Unlike mark_for_update(), this one is called automatically whenever + air is returned from a simulated turf. + + equivalent_pressure(zone/A, zone/B) + Currently identical to A.air.compare(B.air). Returns 1 when directly connected zones are ready to be merged. + + get_edge(zone/A, zone/B) + get_edge(zone/A, turf/B) + Gets a valid connection_edge between A and B, creating a new one if necessary. + + has_same_air(turf/A, turf/B) + Used to determine if an unsimulated edge represents a specific turf. + Simulated edges use connection_edge/contains_zone() for the same purpose. + Returns 1 if A has identical gases and temperature to B. + + remove_edge(connection_edge/edge) + Called when an edge is erased. Removes it from processing. +*/ + // Air update stages #define SSAIR_TURFS 1 #define SSAIR_EDGES 2 @@ -30,6 +91,20 @@ SUBSYSTEM_DEF(air) // This is used to tell CI WHERE the edges are. var/list/startup_active_edge_log = list() + //Geometry lists + var/list/zones = list() + var/list/edges = list() + //Geometry updates lists + var/list/tiles_to_update = list() + var/list/zones_to_update = list() + var/list/active_fire_zones = list() + var/list/active_hotspots = list() + var/list/active_edges = list() + + var/active_zones = 0 + var/current_cycle = 0 + var/next_id = 1 //Used to keep track of zone UIDs. + /datum/controller/subsystem/air/Initialize(timeofday) report_progress("Processing Geometry...") @@ -302,9 +377,168 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun next_fire = world.time + wait can_fire = TRUE // Unpause -// -// The procs from the ZAS Air Controller are in ZAS/Controller.dm -// +/datum/controller/subsystem/air/proc/add_zone(zone/z) + zones.Add(z) + z.name = "Zone [next_id++]" + mark_zone_update(z) + +/datum/controller/subsystem/air/proc/remove_zone(zone/z) + zones.Remove(z) + zones_to_update.Remove(z) + +/datum/controller/subsystem/air/proc/air_blocked(turf/A, turf/B) + #ifdef ZASDBG + ASSERT(isturf(A)) + ASSERT(isturf(B)) + #endif + var/ablock = A.c_airblock(B) + if(ablock == BLOCKED) + return BLOCKED + return ablock | B.c_airblock(A) + +/datum/controller/subsystem/air/proc/has_valid_zone(turf/simulated/T) + #ifdef ZASDBG + ASSERT(istype(T)) + #endif + return istype(T) && T.zone && !T.zone.invalid + +/datum/controller/subsystem/air/proc/merge(zone/A, zone/B) + #ifdef ZASDBG + ASSERT(istype(A)) + ASSERT(istype(B)) + ASSERT(!A.invalid) + ASSERT(!B.invalid) + ASSERT(A != B) + #endif + if(A.contents.len < B.contents.len) + A.c_merge(B) + mark_zone_update(B) + else + B.c_merge(A) + mark_zone_update(A) + +/datum/controller/subsystem/air/proc/connect(turf/simulated/A, turf/simulated/B) + #ifdef ZASDBG + ASSERT(istype(A)) + ASSERT(isturf(B)) + ASSERT(A.zone) + ASSERT(!A.zone.invalid) + //ASSERT(B.zone) + ASSERT(A != B) + #endif + + var/block = SSair.air_blocked(A,B) + if(block & AIR_BLOCKED) return + + var/direct = !(block & ZONE_BLOCKED) + var/space = !istype(B) + + if(!space) + if(min(A.zone.contents.len, B.zone.contents.len) < ZONE_MIN_SIZE || (direct && (equivalent_pressure(A.zone,B.zone) || current_cycle == 0))) + merge(A.zone,B.zone) + return + + var/a_to_b = get_dir(A,B) + var/b_to_a = get_dir(B,A) + + if(!A.connections) + A.connections = new + if(!B.connections) + B.connections = new + + if(A.connections.get(a_to_b)) + return + if(B.connections.get(b_to_a)) + return + if(!space) + if(A.zone == B.zone) + return + + + var/connection/c = new /connection(A,B) + + A.connections.place(c, a_to_b) + B.connections.place(c, b_to_a) + + if(direct) c.mark_direct() + +/datum/controller/subsystem/air/proc/mark_for_update(turf/T) + #ifdef ZASDBG + ASSERT(isturf(T)) + #endif + if(T.needs_air_update) + return + tiles_to_update |= T + #ifdef ZASDBG + T.add_overlay(mark) + #endif + T.needs_air_update = 1 + +/datum/controller/subsystem/air/proc/mark_zone_update(zone/Z) + #ifdef ZASDBG + ASSERT(istype(Z)) + #endif + if(Z.needs_update) + return + zones_to_update.Add(Z) + Z.needs_update = 1 + +/datum/controller/subsystem/air/proc/mark_edge_sleeping(connection_edge/E) + #ifdef ZASDBG + ASSERT(istype(E)) + #endif + if(E.sleeping) + return + active_edges.Remove(E) + E.sleeping = 1 + +/datum/controller/subsystem/air/proc/mark_edge_active(connection_edge/E) + #ifdef ZASDBG + ASSERT(istype(E)) + #endif + if(!E.sleeping) + return + active_edges.Add(E) + E.sleeping = 0 + +/datum/controller/subsystem/air/proc/equivalent_pressure(zone/A, zone/B) + return A.air.compare(B.air) + +/datum/controller/subsystem/air/proc/get_edge(zone/A, zone/B) + if(istype(B)) + for(var/connection_edge/zone/edge in A.edges) + if(edge.contains_zone(B)) + return edge + var/connection_edge/edge = new /connection_edge/zone(A,B) + edges.Add(edge) + edge.recheck() + return edge + else + for(var/connection_edge/unsimulated/edge in A.edges) + if(has_same_air(edge.B,B)) + return edge + var/connection_edge/edge = new /connection_edge/unsimulated(A,B) + edges.Add(edge) + edge.recheck() + return edge + +/datum/controller/subsystem/air/proc/has_same_air(turf/A, turf/B) + if(A.oxygen != B.oxygen) + return FALSE + if(A.nitrogen != B.nitrogen) + return FALSE + if(A.phoron != B.phoron) + return FALSE + if(A.carbon_dioxide != B.carbon_dioxide) + return FALSE + if(A.temperature != B.temperature) + return FALSE + return TRUE + +/datum/controller/subsystem/air/proc/remove_edge(connection_edge/E) + edges.Remove(E) + if(!E.sleeping) + active_edges.Remove(E) #undef SSAIR_TURFS #undef SSAIR_EDGES diff --git a/vorestation.dme b/vorestation.dme index b11104cc70..97227e0088 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -4360,7 +4360,6 @@ #include "code\ZAS\Connection.dm" #include "code\ZAS\ConnectionGroup.dm" #include "code\ZAS\ConnectionManager.dm" -#include "code\ZAS\Controller.dm" #include "code\ZAS\Debug.dm" #include "code\ZAS\Diagnostic.dm" #include "code\ZAS\Fire.dm" From 53864d01910439514e36cacd332ed150be0aa7f9 Mon Sep 17 00:00:00 2001 From: ShadowLarkens Date: Wed, 23 Oct 2024 07:03:47 -0700 Subject: [PATCH 005/109] Inline SSair.has_valid_zone --- code/ZAS/Connection.dm | 4 ++-- code/ZAS/Turf.dm | 7 +++---- code/ZAS/Zone.dm | 2 +- code/__defines/ZAS.dm | 2 ++ code/controllers/subsystems/air.dm | 10 ---------- code/game/turfs/turf_changing.dm | 8 +++++++- 6 files changed, 15 insertions(+), 18 deletions(-) diff --git a/code/ZAS/Connection.dm b/code/ZAS/Connection.dm index e0549366cb..688eb12992 100644 --- a/code/ZAS/Connection.dm +++ b/code/ZAS/Connection.dm @@ -60,8 +60,8 @@ Class Procs: /connection/New(turf/simulated/A, turf/simulated/B) #ifdef ZASDBG - ASSERT(SSair.has_valid_zone(A)) - //ASSERT(SSair.has_valid_zone(B)) + ASSERT(HAS_VALID_ZONE(A)) + //ASSERT(HAS_VALID_ZONE(B)) #endif src.A = A src.B = B diff --git a/code/ZAS/Turf.dm b/code/ZAS/Turf.dm index f8bfc5ae83..a67970c63a 100644 --- a/code/ZAS/Turf.dm +++ b/code/ZAS/Turf.dm @@ -41,8 +41,7 @@ if(istype(unsim, /turf/simulated)) var/turf/simulated/sim = unsim - if(SSair.has_valid_zone(sim)) - + if(HAS_VALID_ZONE(sim)) SSair.connect(sim, src) /* @@ -162,7 +161,7 @@ var/turf/simulated/sim = unsim sim.open_directions |= reverse_dir[d] - if(SSair.has_valid_zone(sim)) + if(HAS_VALID_ZONE(sim)) //Might have assigned a zone, since this happens for each direction. if(!zone) @@ -210,7 +209,7 @@ if(!postponed) postponed = list() postponed.Add(unsim) - if(!SSair.has_valid_zone(src)) //Still no zone, make a new one. + if(!HAS_VALID_ZONE(src)) //Still no zone, make a new one. var/zone/newzone = new/zone() newzone.add(src) diff --git a/code/ZAS/Zone.dm b/code/ZAS/Zone.dm index db686ce8f0..b6d012afe7 100644 --- a/code/ZAS/Zone.dm +++ b/code/ZAS/Zone.dm @@ -65,7 +65,7 @@ Class Procs: #ifdef ZASDBG ASSERT(!invalid) ASSERT(istype(T)) - ASSERT(!SSair.has_valid_zone(T)) + ASSERT(!HAS_VALID_ZONE(T)) #endif var/datum/gas_mixture/turf_air = T.return_air() diff --git a/code/__defines/ZAS.dm b/code/__defines/ZAS.dm index ba2b4b73e7..c8289fdc27 100644 --- a/code/__defines/ZAS.dm +++ b/code/__defines/ZAS.dm @@ -11,3 +11,5 @@ #define ATMOS_PASS_NO 2 // Never blocks air or zones. #define ATMOS_PASS_DENSITY 3 // Blocks air and zones if density = TRUE, allows both if density = FALSE #define ATMOS_PASS_PROC 4 // Call CanZASPass() using c_airblock + +#define HAS_VALID_ZONE(T) (T.zone && !T.zone.invalid) diff --git a/code/controllers/subsystems/air.dm b/code/controllers/subsystems/air.dm index 91e67c0d2b..e008086d04 100644 --- a/code/controllers/subsystems/air.dm +++ b/code/controllers/subsystems/air.dm @@ -27,10 +27,6 @@ Class Procs: AIR_BLOCKED - The connection between turfs is physically blocked. No air can pass. ZONE_BLOCKED - There is a door between the turfs, so zones cannot cross. Air may or may not be permeable. - has_valid_zone(turf/T) - Checks the presence and validity of T's zone. - May be called on unsimulated turfs, returning 0. - merge(zone/A, zone/B) Called when zones have a direct connection and equivalent pressure and temperature. Merges the zones to create a single zone. @@ -396,12 +392,6 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun return BLOCKED return ablock | B.c_airblock(A) -/datum/controller/subsystem/air/proc/has_valid_zone(turf/simulated/T) - #ifdef ZASDBG - ASSERT(istype(T)) - #endif - return istype(T) && T.zone && !T.zone.invalid - /datum/controller/subsystem/air/proc/merge(zone/A, zone/B) #ifdef ZASDBG ASSERT(istype(A)) diff --git a/code/game/turfs/turf_changing.dm b/code/game/turfs/turf_changing.dm index 11afc9e042..54027edb89 100644 --- a/code/game/turfs/turf_changing.dm +++ b/code/game/turfs/turf_changing.dm @@ -21,6 +21,11 @@ if(istype(below)) below.update_icon() // To add or remove the 'ceiling-less' overlay. +/proc/has_valid_ZAS_zone(turf/simulated/T) + if(!istype(T)) + return FALSE + return HAS_VALID_ZONE(T) + //Creates a new turf /turf/proc/ChangeTurf(var/turf/N, var/tell_universe=1, var/force_lighting_update = 0, var/preserve_outdoors = FALSE) if (!N) @@ -28,7 +33,8 @@ if(N == /turf/space) var/turf/below = GetBelow(src) - if(istype(below) && (SSair.has_valid_zone(below) || SSair.has_valid_zone(src)) && !(src.z in using_map.below_blocked_levels) && (!istype(below, /turf/unsimulated/wall) && !istype(below, /turf/simulated/sky))) // VOREStation Edit: Weird open space + var/zones_present = has_valid_ZAS_zone(below) || has_valid_ZAS_zone(src) + if(istype(below) && zones_present && !(src.z in using_map.below_blocked_levels) && (!istype(below, /turf/unsimulated/wall) && !istype(below, /turf/simulated/sky))) // VOREStation Edit: Weird open space N = /turf/simulated/open var/obj/fire/old_fire = fire From 48695958550d9630450cd9eaf7458ae1d8c63ec6 Mon Sep 17 00:00:00 2001 From: Killian Date: Tue, 29 Oct 2024 00:23:23 +0000 Subject: [PATCH 006/109] ring/watch accessory transfer --- code/__defines/items_clothing.dm | 3 + code/datums/supplypacks/supply.dm | 6 +- code/datums/uplink/stealthy_weapons.dm | 6 - code/game/machinery/computer/arcade_vr.dm | 1 - code/game/objects/items/toys/toys_vr.dm | 29 --- .../crates_lockers/closets/misc_vr.dm | 2 +- .../loadout/loadout_fluffitems_vr.dm | 4 +- .../loadout/loadout_general_vr.dm | 1 - .../loadout/loadout_gloves.dm | 42 ++-- .../loadout/loadout_gloves_vr.dm | 4 +- .../{under => }/accessories/accessory.dm | 0 .../{under => }/accessories/accessory_vr.dm | 0 .../{under => }/accessories/altevian_vr.dm | 0 .../{under => }/accessories/armband.dm | 0 .../clothing/{under => }/accessories/armor.dm | 0 .../{under => }/accessories/badges.dm | 0 .../{under => }/accessories/badges_vr.dm | 0 .../{under => }/accessories/clothing.dm | 0 .../{under => }/accessories/clothing_vr.dm | 0 .../{under => }/accessories/holster.dm | 0 .../{under => }/accessories/holster_vr.dm | 0 .../{under => }/accessories/lockets.dm | 0 .../{under => }/accessories/permits.dm | 0 .../{under => }/accessories/permits_vr.dm | 0 code/modules/clothing/accessories/rings.dm | 201 ++++++++++++++++++ .../{under => }/accessories/shiny_vr.dm | 0 .../{under => }/accessories/storage.dm | 0 .../{under => }/accessories/storage_vr.dm | 0 .../accessories/temperature/poncho.dm | 0 .../clothing/{under => }/accessories/torch.dm | 0 .../{under => }/accessories/torch_vr.dm | 0 code/modules/clothing/accessories/watches.dm | 72 +++++++ code/modules/clothing/clothing.dm | 9 +- code/modules/clothing/gloves/antagonist.dm | 67 ------ code/modules/clothing/gloves/miscellaneous.dm | 62 ------ code/modules/clothing/rings/material.dm | 74 ------- code/modules/clothing/rings/rings.dm | 96 --------- code/modules/clothing/rings/rings_vr.dm | 17 -- code/modules/economy/vending_machines_vr.dm | 56 ++--- .../modules/materials/materials/_materials.dm | 2 +- .../materials/materials/organic/leather.dm | 2 +- .../human/ai_controlled/ai_controlled.dm | 2 +- .../mob/living/carbon/human/examine.dm | 19 +- code/modules/paperwork/paper.dm | 4 +- .../vore/fluffstuff/custom_boxes_vr.dm | 2 +- .../vore/fluffstuff/custom_clothes_vr.dm | 9 +- .../artifacts/replicator_vr.dm | 2 +- .../xenoarcheaology/finds/find_spawning.dm | 2 +- icons/inventory/accessory/mob.dmi | Bin 169683 -> 170119 bytes icons/inventory/hands/mob.dmi | Bin 31020 -> 31060 bytes vorestation.dme | 45 ++-- 51 files changed, 388 insertions(+), 453 deletions(-) rename code/modules/clothing/{under => }/accessories/accessory.dm (100%) rename code/modules/clothing/{under => }/accessories/accessory_vr.dm (100%) rename code/modules/clothing/{under => }/accessories/altevian_vr.dm (100%) rename code/modules/clothing/{under => }/accessories/armband.dm (100%) rename code/modules/clothing/{under => }/accessories/armor.dm (100%) rename code/modules/clothing/{under => }/accessories/badges.dm (100%) rename code/modules/clothing/{under => }/accessories/badges_vr.dm (100%) rename code/modules/clothing/{under => }/accessories/clothing.dm (100%) rename code/modules/clothing/{under => }/accessories/clothing_vr.dm (100%) rename code/modules/clothing/{under => }/accessories/holster.dm (100%) rename code/modules/clothing/{under => }/accessories/holster_vr.dm (100%) rename code/modules/clothing/{under => }/accessories/lockets.dm (100%) rename code/modules/clothing/{under => }/accessories/permits.dm (100%) rename code/modules/clothing/{under => }/accessories/permits_vr.dm (100%) create mode 100644 code/modules/clothing/accessories/rings.dm rename code/modules/clothing/{under => }/accessories/shiny_vr.dm (100%) rename code/modules/clothing/{under => }/accessories/storage.dm (100%) rename code/modules/clothing/{under => }/accessories/storage_vr.dm (100%) rename code/modules/clothing/{under => }/accessories/temperature/poncho.dm (100%) rename code/modules/clothing/{under => }/accessories/torch.dm (100%) rename code/modules/clothing/{under => }/accessories/torch_vr.dm (100%) create mode 100644 code/modules/clothing/accessories/watches.dm delete mode 100644 code/modules/clothing/rings/material.dm delete mode 100644 code/modules/clothing/rings/rings.dm delete mode 100644 code/modules/clothing/rings/rings_vr.dm diff --git a/code/__defines/items_clothing.dm b/code/__defines/items_clothing.dm index a7dba8be88..8ecdb1326c 100644 --- a/code/__defines/items_clothing.dm +++ b/code/__defines/items_clothing.dm @@ -40,6 +40,9 @@ #define ACCESSORY_SLOT_ARMOR_M 0x8000 #define ACCESSORY_SLOT_HELM_C 0x10000 //24 bit - higher than 0x80000 will overflow +#define ACCESSORY_SLOT_RING 0x20000 //rings +#define ACCESSORY_SLOT_WRIST 0x40000 //wristwatches, wrist PDA maybe? + // Bitmasks for the /obj/item/var/flags_inv variable. These determine when a piece of clothing hides another, i.e. a helmet hiding glasses. // WARNING: The following flags apply only to the external suit! #define HIDEGLOVES 0x1 diff --git a/code/datums/supplypacks/supply.dm b/code/datums/supplypacks/supply.dm index 0629a55d8e..96610a68c5 100644 --- a/code/datums/supplypacks/supply.dm +++ b/code/datums/supplypacks/supply.dm @@ -175,7 +175,7 @@ /obj/item/material/knife/tacknife/survival, /obj/item/material/knife/machete, /obj/item/clothing/accessory/holster/machete, - /obj/item/clothing/gloves/watch/survival + /obj/item/clothing/accessory/watch/survival ) cost=25 containertype = /obj/structure/closet/crate/secure/xion @@ -200,7 +200,7 @@ /obj/item/clothing/head/pilot_vr, /obj/item/clothing/under/rank/pilot1, /obj/item/gun/energy/gun/protector/pilotgun/locked, - /obj/item/clothing/gloves/watch/survival + /obj/item/clothing/accessory/watch/survival ) cost=20 containertype = /obj/structure/closet/crate/secure/xion @@ -236,7 +236,7 @@ /obj/item/clothing/accessory/holster/machete, /obj/item/storage/box/explorerkeys, /obj/item/mapping_unit, - /obj/item/clothing/gloves/watch/survival + /obj/item/clothing/accessory/watch/survival ) cost = 75 containertype = /obj/structure/closet/crate/secure/xion diff --git a/code/datums/uplink/stealthy_weapons.dm b/code/datums/uplink/stealthy_weapons.dm index 29c8009211..39cc3bf9ae 100644 --- a/code/datums/uplink/stealthy_weapons.dm +++ b/code/datums/uplink/stealthy_weapons.dm @@ -58,12 +58,6 @@ item_cost = 20 path = /obj/item/pen/blade/fountain -/datum/uplink_item/item/stealthy_weapons/angrybuzzer - name = "Morphium Shock Ring" - desc = "An enigmatic ring used to create powerful electric shocks when punching. Can be used as a brute-force method of defibrillation." - item_cost = 40 - path = /obj/item/clothing/gloves/ring/buzzer - /datum/uplink_item/item/stealthy_weapons/huntingtrap name = "Camonetted Beartraps" desc = "A box of unique beartraps which will partially cloak when deployed, allowing for more effective hunting." diff --git a/code/game/machinery/computer/arcade_vr.dm b/code/game/machinery/computer/arcade_vr.dm index a1d4ebb069..80daaceb52 100644 --- a/code/game/machinery/computer/arcade_vr.dm +++ b/code/game/machinery/computer/arcade_vr.dm @@ -22,7 +22,6 @@ /obj/item/toy/redbutton = 2, /obj/item/toy/gnome = 2, /obj/item/toy/AI = 2, - /obj/item/clothing/gloves/ring/buzzer/toy = 2, /obj/item/storage/box/handcuffs/fake = 2, /obj/item/toy/nuke = 2, /obj/item/toy/minigibber = 2, diff --git a/code/game/objects/items/toys/toys_vr.dm b/code/game/objects/items/toys/toys_vr.dm index b6df0bcafd..6a9b66f0c6 100644 --- a/code/game/objects/items/toys/toys_vr.dm +++ b/code/game/objects/items/toys/toys_vr.dm @@ -556,35 +556,6 @@ /obj/item/toy/AI/proc/cooldownreset() cooldown = 0 -/* - * Hand buzzer - */ -/obj/item/clothing/gloves/ring/buzzer/toy - name = "steel ring" - desc = "Torus shaped finger decoration. It has a small piece of metal on the palm-side." - icon_state = "seal-signet" - drop_sound = 'sound/items/drop/ring.ogg' - -/obj/item/clothing/gloves/ring/buzzer/toy/Touch(var/atom/A, var/proximity) - if(proximity && istype(usr, /mob/living/carbon/human)) - - return zap(usr, A, proximity) - return 0 - -/obj/item/clothing/gloves/ring/buzzer/toy/zap(var/mob/living/carbon/human/user, var/atom/movable/target, var/proximity) - . = FALSE - if(user.a_intent == I_HELP && battery.percent() >= 50) - if(isliving(target)) - var/mob/living/L = target - - to_chat(L, span_warning("You feel a powerful shock!")) - if(!.) - playsound(L, 'sound/effects/sparks7.ogg', 40, 1) - L.electrocute_act(battery.percent() * 0, src) - return . - - return 0 - /* * Toy cuffs */ diff --git a/code/game/objects/structures/crates_lockers/closets/misc_vr.dm b/code/game/objects/structures/crates_lockers/closets/misc_vr.dm index d8ccfd6025..225f3c463e 100644 --- a/code/game/objects/structures/crates_lockers/closets/misc_vr.dm +++ b/code/game/objects/structures/crates_lockers/closets/misc_vr.dm @@ -211,7 +211,7 @@ /obj/item/radio, /obj/item/gps/explorer, /obj/item/gun/energy/gun/protector/pilotgun/locked, - /obj/item/clothing/gloves/watch/survival, + /obj/item/clothing/accessory/watch/survival, /obj/item/clothing/accessory/storage/webbing/pilot1, /obj/item/clothing/accessory/storage/webbing/pilot2, /obj/item/emergency_beacon diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm index c63f709505..74f2b7329b 100644 --- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm @@ -271,7 +271,7 @@ // C CKEYS /datum/gear/fluff/cappy_watch - path = /obj/item/clothing/accessory/watch + path = /obj/item/clothing/accessory/watch/custom display_name = "Cappy's Pocket Watch" ckeywhitelist = list("cappycat") character_name = list("Cappy Fuzzlyfeathers") @@ -528,7 +528,7 @@ character_name = list("Elizabeth Bayou") /datum/gear/fluff/mercury_vopal_ring - path = /obj/item/clothing/gloves/ring/material/void_opal/fluff/mercury + path = /obj/item/clothing/accessory/ring/material/void_opal/fluff/mercury display_name = "Mercury's Mate Ring" ckeywhitelist = list("haloren") character_name = list("Mercury") diff --git a/code/modules/client/preference_setup/loadout/loadout_general_vr.dm b/code/modules/client/preference_setup/loadout/loadout_general_vr.dm index 3909acf199..86a89ddfa8 100644 --- a/code/modules/client/preference_setup/loadout/loadout_general_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_general_vr.dm @@ -56,7 +56,6 @@ toytype["Big Red Button"] = /obj/item/toy/redbutton toytype["Garden gnome"] = /obj/item/toy/gnome toytype["Toy AI"] = /obj/item/toy/AI - toytype["Hand buzzer"] = /obj/item/clothing/gloves/ring/buzzer/toy toytype["Toy nuke"] = /obj/item/toy/nuke toytype["Toy gibber"] = /obj/item/toy/minigibber toytype["Toy xeno"] = /obj/item/toy/toy_xeno diff --git a/code/modules/client/preference_setup/loadout/loadout_gloves.dm b/code/modules/client/preference_setup/loadout/loadout_gloves.dm index 859d6a0c4c..fa712ecd27 100644 --- a/code/modules/client/preference_setup/loadout/loadout_gloves.dm +++ b/code/modules/client/preference_setup/loadout/loadout_gloves.dm @@ -74,27 +74,27 @@ /datum/gear/gloves/ring display_name = "ring selection" description = "Choose from a number of rings." - path = /obj/item/clothing/gloves/ring + path = /obj/item/clothing/accessory/ring cost = 1 /datum/gear/gloves/ring/New() ..() var/ringtype = list() - ringtype["CTI ring"] = /obj/item/clothing/gloves/ring/cti - ringtype["Mariner University ring"] = /obj/item/clothing/gloves/ring/mariner - ringtype["engagement ring"] = /obj/item/clothing/gloves/ring/engagement - ringtype["signet ring"] = /obj/item/clothing/gloves/ring/seal/signet - ringtype["masonic ring"] = /obj/item/clothing/gloves/ring/seal/mason - ringtype["ring, glass"] = /obj/item/clothing/gloves/ring/material/glass - ringtype["ring, wood"] = /obj/item/clothing/gloves/ring/material/wood - ringtype["ring, plastic"] = /obj/item/clothing/gloves/ring/material/plastic - ringtype["ring, iron"] = /obj/item/clothing/gloves/ring/material/iron - ringtype["ring, bronze"] = /obj/item/clothing/gloves/ring/material/bronze - ringtype["ring, steel"] = /obj/item/clothing/gloves/ring/material/steel - ringtype["ring, copper"] = /obj/item/clothing/gloves/ring/material/copper - ringtype["ring, silver"] = /obj/item/clothing/gloves/ring/material/silver - ringtype["ring, gold"] = /obj/item/clothing/gloves/ring/material/gold - ringtype["ring, platinum"] = /obj/item/clothing/gloves/ring/material/platinum + ringtype["CTI ring"] = /obj/item/clothing/accessory/ring/cti + ringtype["Mariner University ring"] = /obj/item/clothing/accessory/ring/mariner + ringtype["engagement ring"] = /obj/item/clothing/accessory/ring/engagement + ringtype["signet ring"] = /obj/item/clothing/accessory/ring/seal/signet + ringtype["masonic ring"] = /obj/item/clothing/accessory/ring/seal/mason + ringtype["ring, glass"] = /obj/item/clothing/accessory/ring/material/glass + ringtype["ring, wood"] = /obj/item/clothing/accessory/ring/material/wood + ringtype["ring, plastic"] = /obj/item/clothing/accessory/ring/material/plastic + ringtype["ring, iron"] = /obj/item/clothing/accessory/ring/material/iron + ringtype["ring, bronze"] = /obj/item/clothing/accessory/ring/material/bronze + ringtype["ring, steel"] = /obj/item/clothing/accessory/ring/material/steel + ringtype["ring, copper"] = /obj/item/clothing/accessory/ring/material/copper + ringtype["ring, silver"] = /obj/item/clothing/accessory/ring/material/silver + ringtype["ring, gold"] = /obj/item/clothing/accessory/ring/material/gold + ringtype["ring, platinum"] = /obj/item/clothing/accessory/ring/material/platinum gear_tweaks += new/datum/gear_tweak/path(ringtype) @@ -105,14 +105,14 @@ /datum/gear/gloves/watch display_name = "wristwatch selector" description = "Pick from a range of wristwatches." - path = /obj/item/clothing/gloves/watch + path = /obj/item/clothing/accessory/watch /datum/gear/gloves/watch/New() ..() var/list/selector_watches = list( - "plain plastic"=/obj/item/clothing/gloves/watch, - "silver"=/obj/item/clothing/gloves/watch/silver, - "gold"=/obj/item/clothing/gloves/watch/gold, - "survival"=/obj/item/clothing/gloves/watch/survival + "plain plastic"=/obj/item/clothing/accessory/watch, + "silver"=/obj/item/clothing/accessory/watch/silver, + "gold"=/obj/item/clothing/accessory/watch/gold, + "survival"=/obj/item/clothing/accessory/watch/survival ) gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_watches)) diff --git a/code/modules/client/preference_setup/loadout/loadout_gloves_vr.dm b/code/modules/client/preference_setup/loadout/loadout_gloves_vr.dm index cfc0a6b105..fd25064e85 100644 --- a/code/modules/client/preference_setup/loadout/loadout_gloves_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_gloves_vr.dm @@ -1,10 +1,10 @@ /datum/gear/gloves/goldring display_name = "wedding ring, gold" - path = /obj/item/clothing/gloves/ring/wedding + path = /obj/item/clothing/accessory/ring/wedding /datum/gear/gloves/silverring display_name = "wedding ring, silver" - path = /obj/item/clothing/gloves/ring/wedding/silver + path = /obj/item/clothing/accessory/ring/wedding/silver /datum/gear/gloves/colored display_name = "gloves, colorable" diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/accessories/accessory.dm similarity index 100% rename from code/modules/clothing/under/accessories/accessory.dm rename to code/modules/clothing/accessories/accessory.dm diff --git a/code/modules/clothing/under/accessories/accessory_vr.dm b/code/modules/clothing/accessories/accessory_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/accessory_vr.dm rename to code/modules/clothing/accessories/accessory_vr.dm diff --git a/code/modules/clothing/under/accessories/altevian_vr.dm b/code/modules/clothing/accessories/altevian_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/altevian_vr.dm rename to code/modules/clothing/accessories/altevian_vr.dm diff --git a/code/modules/clothing/under/accessories/armband.dm b/code/modules/clothing/accessories/armband.dm similarity index 100% rename from code/modules/clothing/under/accessories/armband.dm rename to code/modules/clothing/accessories/armband.dm diff --git a/code/modules/clothing/under/accessories/armor.dm b/code/modules/clothing/accessories/armor.dm similarity index 100% rename from code/modules/clothing/under/accessories/armor.dm rename to code/modules/clothing/accessories/armor.dm diff --git a/code/modules/clothing/under/accessories/badges.dm b/code/modules/clothing/accessories/badges.dm similarity index 100% rename from code/modules/clothing/under/accessories/badges.dm rename to code/modules/clothing/accessories/badges.dm diff --git a/code/modules/clothing/under/accessories/badges_vr.dm b/code/modules/clothing/accessories/badges_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/badges_vr.dm rename to code/modules/clothing/accessories/badges_vr.dm diff --git a/code/modules/clothing/under/accessories/clothing.dm b/code/modules/clothing/accessories/clothing.dm similarity index 100% rename from code/modules/clothing/under/accessories/clothing.dm rename to code/modules/clothing/accessories/clothing.dm diff --git a/code/modules/clothing/under/accessories/clothing_vr.dm b/code/modules/clothing/accessories/clothing_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/clothing_vr.dm rename to code/modules/clothing/accessories/clothing_vr.dm diff --git a/code/modules/clothing/under/accessories/holster.dm b/code/modules/clothing/accessories/holster.dm similarity index 100% rename from code/modules/clothing/under/accessories/holster.dm rename to code/modules/clothing/accessories/holster.dm diff --git a/code/modules/clothing/under/accessories/holster_vr.dm b/code/modules/clothing/accessories/holster_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/holster_vr.dm rename to code/modules/clothing/accessories/holster_vr.dm diff --git a/code/modules/clothing/under/accessories/lockets.dm b/code/modules/clothing/accessories/lockets.dm similarity index 100% rename from code/modules/clothing/under/accessories/lockets.dm rename to code/modules/clothing/accessories/lockets.dm diff --git a/code/modules/clothing/under/accessories/permits.dm b/code/modules/clothing/accessories/permits.dm similarity index 100% rename from code/modules/clothing/under/accessories/permits.dm rename to code/modules/clothing/accessories/permits.dm diff --git a/code/modules/clothing/under/accessories/permits_vr.dm b/code/modules/clothing/accessories/permits_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/permits_vr.dm rename to code/modules/clothing/accessories/permits_vr.dm diff --git a/code/modules/clothing/accessories/rings.dm b/code/modules/clothing/accessories/rings.dm new file mode 100644 index 0000000000..855cce0212 --- /dev/null +++ b/code/modules/clothing/accessories/rings.dm @@ -0,0 +1,201 @@ +//Generic Ring + +/obj/item/clothing/accessory/ring + name = "generic ring" + desc = "Torus shaped finger decoration." + icon_state = "material" + drop_sound = 'sound/items/drop/ring.ogg' + slot = ACCESSORY_SLOT_RING + slot_flags = SLOT_GLOVES + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_gloves.dmi', + ) + gender = PLURAL + w_class = ITEMSIZE_SMALL + icon = 'icons/inventory/hands/item.dmi' + drop_sound = 'sound/items/drop/ring.ogg' + pickup_sound = 'sound/items/pickup/ring.ogg' + +///////////////////////////////////////// +//Standard Rings +/obj/item/clothing/accessory/ring/engagement + name = "engagement ring" + desc = "An engagement ring. It certainly looks expensive." + icon_state = "diamond" + +/obj/item/clothing/accessory/ring/engagement/attack_self(mob/user) + user.visible_message(span_warning("\The [user] gets down on one knee, presenting \the [src]."),span_warning("You get down on one knee, presenting \the [src].")) + +/obj/item/clothing/accessory/ring/cti + name = "CTI ring" + desc = "A ring commemorating graduation from CTI." + icon_state = "cti-grad" + +/obj/item/clothing/accessory/ring/mariner + name = "Mariner University ring" + desc = "A ring commemorating graduation from Mariner University." + icon_state = "mariner-grad" + + +///////////////////////////////////////// +//Reagent Rings + +/obj/item/clothing/accessory/ring/reagent + flags = OPENCONTAINER + origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 4) + +/obj/item/clothing/accessory/ring/reagent/New() + ..() + create_reagents(15) + +/obj/item/clothing/accessory/ring/reagent/equipped(var/mob/living/carbon/human/H) + ..() + if(istype(H) && H.gloves==src) + + if(reagents.total_volume) + to_chat(H, span_danger("You feel a prick as you slip on \the [src].")) + if(H.reagents) + var/contained = reagents.get_reagents() + var/trans = reagents.trans_to_mob(H, 15, CHEM_BLOOD) + add_attack_logs(usr, H, "Injected with [name] containing [contained] transferred [trans] units") + return + +//Sleepy Ring +/obj/item/clothing/accessory/ring/reagent/sleepy + name = "silver ring" + desc = "A ring made from what appears to be silver." + icon_state = "material" + origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 5) + +/obj/item/clothing/accessory/ring/reagent/sleepy/New() + ..() + reagents.add_reagent("chloralhydrate", 15) // Less than a sleepy-pen, but still enough to knock someone out + +///////////////////////////////////////// +//Seals and Signet Rings + +/obj/item/clothing/accessory/ring/seal + var/stamptext = null + +/obj/item/clothing/accessory/ring/seal/secgen + name = "Secretary-General's official seal" + desc = "The official seal of the Secretary-General of the Sol Central Government, featured prominently on a silver ring." + icon_state = "seal-secgen" + +/obj/item/clothing/accessory/ring/seal/mason + name = "\improper Masonic ring" + desc = "The Square and Compasses feature prominently on this Masonic ring." + icon_state = "seal-masonic" + +/obj/item/clothing/accessory/ring/seal/signet + name = "signet ring" + desc = "A signet ring, for when you're too sophisticated to sign letters." + icon_state = "seal-signet" + var/nameset = FALSE + +/obj/item/clothing/accessory/ring/seal/signet/attack_self(mob/user) + if(nameset) + to_chat(user, span_notice("The [src] has already been claimed!")) + return + + to_chat(user, span_notice("You claim the [src] as your own!")) + change_name(user) + nameset = TRUE + +/obj/item/clothing/accessory/ring/seal/signet/proc/change_name(var/signet_name = "Unknown") + name = "[signet_name]'s signet ring" + desc = "A signet ring belonging to [signet_name], for when you're too sophisticated to sign letters." + +/obj/item/clothing/accessory/ring/wedding + name = "golden wedding ring" + desc = "For showing your devotion to another person. It has a golden glimmer to it." + icon = 'icons/inventory/hands/item_vr.dmi' + icon_state = "wedring_g" + item_state = "wedring_g" + var/partnername = "" + +/obj/item/clothing/accessory/ring/wedding/attack_self(mob/user) + partnername = copytext(sanitize(input(user, "Would you like to change the holoengraving on the ring?", "Name your spouse", "Bae") as null|text),1,MAX_NAME_LEN) + name = "[initial(name)] - [partnername]" + +/obj/item/clothing/accessory/ring/wedding/silver + name = "silver wedding ring" + desc = "For showing your devotion to another person. It has a silver glimmer to it." + icon_state = "wedring_s" + item_state = "wedring_s" + +///////////////////////////////////////// +//Material Rings +/obj/item/clothing/accessory/ring/material + icon = 'icons/inventory/hands/item.dmi' + icon_state = "material" + +/obj/item/clothing/accessory/ring/material/New(var/newloc, var/new_material) + ..(newloc) + if(!new_material) + new_material = MAT_STEEL + material = get_material_by_name(new_material) + if(!istype(material)) + qdel(src) + return + name = "[material.display_name] ring" + desc = "A ring made from [material.display_name]." + color = material.icon_colour + +/obj/item/clothing/accessory/ring/material/get_material() + return material + +/obj/item/clothing/accessory/ring/material/wood/New(var/newloc) + ..(newloc, MAT_WOOD) + +/obj/item/clothing/accessory/ring/material/plastic/New(var/newloc) + ..(newloc, MAT_PLASTIC) + +/obj/item/clothing/accessory/ring/material/iron/New(var/newloc) + ..(newloc, MAT_IRON) + +/obj/item/clothing/accessory/ring/material/glass/New(var/newloc) + ..(newloc, MAT_GLASS) + +/obj/item/clothing/accessory/ring/material/steel/New(var/newloc) + ..(newloc, MAT_STEEL) + +/obj/item/clothing/accessory/ring/material/silver/New(var/newloc) + ..(newloc, MAT_SILVER) + +/obj/item/clothing/accessory/ring/material/gold/New(var/newloc) + ..(newloc, MAT_GOLD) + +/obj/item/clothing/accessory/ring/material/platinum/New(var/newloc) + ..(newloc, MAT_PLATINUM) + +/obj/item/clothing/accessory/ring/material/phoron/New(var/newloc) + ..(newloc, MAT_PHORON) + +/obj/item/clothing/accessory/ring/material/titanium/New(var/newloc) + ..(newloc, MAT_TITANIUM) + +/obj/item/clothing/accessory/ring/material/copper/New(var/newloc) + ..(newloc, MAT_COPPER) + +/obj/item/clothing/accessory/ring/material/bronze/New(var/newloc) + ..(newloc, MAT_BRONZE) + +/obj/item/clothing/accessory/ring/material/uranium/New(var/newloc) + ..(newloc, MAT_URANIUM) + +/obj/item/clothing/accessory/ring/material/osmium/New(var/newloc) + ..(newloc, MAT_OSMIUM) + +/obj/item/clothing/accessory/ring/material/lead/New(var/newloc) + ..(newloc, MAT_LEAD) + +/obj/item/clothing/accessory/ring/material/diamond/New(var/newloc) + ..(newloc, MAT_DIAMOND) + +/obj/item/clothing/accessory/ring/material/tin/New(var/newloc) + ..(newloc, MAT_TIN) + +/obj/item/clothing/accessory/ring/material/void_opal/New(var/newloc) + ..(newloc, MAT_VOPAL) diff --git a/code/modules/clothing/under/accessories/shiny_vr.dm b/code/modules/clothing/accessories/shiny_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/shiny_vr.dm rename to code/modules/clothing/accessories/shiny_vr.dm diff --git a/code/modules/clothing/under/accessories/storage.dm b/code/modules/clothing/accessories/storage.dm similarity index 100% rename from code/modules/clothing/under/accessories/storage.dm rename to code/modules/clothing/accessories/storage.dm diff --git a/code/modules/clothing/under/accessories/storage_vr.dm b/code/modules/clothing/accessories/storage_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/storage_vr.dm rename to code/modules/clothing/accessories/storage_vr.dm diff --git a/code/modules/clothing/under/accessories/temperature/poncho.dm b/code/modules/clothing/accessories/temperature/poncho.dm similarity index 100% rename from code/modules/clothing/under/accessories/temperature/poncho.dm rename to code/modules/clothing/accessories/temperature/poncho.dm diff --git a/code/modules/clothing/under/accessories/torch.dm b/code/modules/clothing/accessories/torch.dm similarity index 100% rename from code/modules/clothing/under/accessories/torch.dm rename to code/modules/clothing/accessories/torch.dm diff --git a/code/modules/clothing/under/accessories/torch_vr.dm b/code/modules/clothing/accessories/torch_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/torch_vr.dm rename to code/modules/clothing/accessories/torch_vr.dm diff --git a/code/modules/clothing/accessories/watches.dm b/code/modules/clothing/accessories/watches.dm new file mode 100644 index 0000000000..5a93cb94f0 --- /dev/null +++ b/code/modules/clothing/accessories/watches.dm @@ -0,0 +1,72 @@ +/obj/item/clothing/accessory/watch + name = "wristwatch" + desc = "A cheap plastic quartz-based wristwatch. Painfully archaic by modern standards, but there's something charming about it all the same." + icon_state = "wristwatch_basic" + siemens_coefficient = 1 + gender = "neuter" + slot = ACCESSORY_SLOT_WRIST + slot_flags = SLOT_GLOVES + icon = 'icons/inventory/hands/item.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_gloves.dmi', + ) + sprite_sheets = list( + SPECIES_TESHARI = 'icons/inventory/hands/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/hands/mob_vox.dmi' + ) + +/obj/item/clothing/accessory/watch/examine(mob/user) + . = ..() + + if(Adjacent(user)) + . += span_notice("The current station time is [stationtime2text()].") + +/obj/item/clothing/accessory/watch/silver + name = "silver wristwatch" + desc = "A humble silver (or maybe chrome) plated wristwatch. It's quite archaic, but nonetheless classy in its own way." + icon_state = "wristwatch_silver" + +/obj/item/clothing/accessory/watch/gold + name = "gold wristwatch" + desc = "A very fancy gold-plated wristwatch. For when you want to casually show off just how wealthy you are. It even tells the time!" + icon_state = "wristwatch_gold" + +/obj/item/clothing/accessory/watch/survival + name = "survival watch" + desc = "An overengineered wristwatch that purports to be both space and water proof, and includes a compass, micro GPS beacon, and temperature and pressure sensors. The beacon is off by default, and can only transmit its location: it cannot scan for other signals." + description_fluff = "Hold ALT whilst left-clicking on the survival watch to toggle the status of its micro-beacon." + icon_state = "wristwatch_survival" + + var/obj/item/gps/gps = null + +/obj/item/clothing/accessory/watch/survival/examine(mob/user) + . = ..() + + if(Adjacent(user)) + . += span_notice("You are currently facing [dir2text(user.dir)]. The micro beacon is [gps.tracking ? "on" : "off"].") + var/TB = user.loc + if(istype(TB, /turf/)) //no point returning light level if we're not on a turf (might be *in* someone!) + var/turf/TL = TB + var/light_level = TL.get_lumcount() + if(light_level) + . += span_notice("Light Level: [TL.get_lumcount()]") + else + . += span_notice("It's too dark to see the light level!") + if(istype(TB, /turf/simulated)) //no point returning atmospheric data from unsimulated tiles (they don't track pressure anyway, only temperature) + var/turf/simulated/T = TB + var/datum/gas_mixture/env = T.return_air() + . += span_notice("Pressure: [env.return_pressure()]kPa / Temperature: [env.temperature]K ") + +/obj/item/clothing/accessory/watch/survival/New() + gps = new/obj/item/gps/watch(src) + +/obj/item/gps/watch + gps_tag = "SRV-WTCH" + +/obj/item/clothing/accessory/watch/survival/AltClick(mob/user) + . = ..() + + if(Adjacent(user)) + gps.tracking = !gps.tracking + to_chat(user,span_notice("You turn the micro beacon [gps.tracking ? "on" : "off"].")) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index f45481622a..c416698a64 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -326,6 +326,13 @@ drop_sound = 'sound/items/drop/gloves.ogg' pickup_sound = 'sound/items/pickup/gloves.ogg' + valid_accessory_slots = (\ + ACCESSORY_SLOT_RING\ + |ACCESSORY_SLOT_WRIST) + restricted_accessory_slots = (\ + ACCESSORY_SLOT_RING\ + |ACCESSORY_SLOT_WRIST) + /obj/item/clothing/proc/set_clothing_index() return @@ -422,8 +429,6 @@ if(special_attack_type && ispath(special_attack_type)) special_attack = new special_attack_type - - ///////////////////////////////////////////////////////////////////// //Rings diff --git a/code/modules/clothing/gloves/antagonist.dm b/code/modules/clothing/gloves/antagonist.dm index 83e595a0dd..34574e2e53 100644 --- a/code/modules/clothing/gloves/antagonist.dm +++ b/code/modules/clothing/gloves/antagonist.dm @@ -88,70 +88,3 @@ if(proximity && istype(usr, /mob/living/carbon/human) && do_after(usr, 1 SECOND, A)) return pickpocket(usr, A, proximity) return 0 - -// Buzzer Ring - Traitor, Merc. -/obj/item/clothing/gloves/ring/buzzer - name = "ring" - desc = "A plain metal band." - description_antag = "This morphium-alloy ring continually generates an electric field, capable of electrocuting a target while not injuring the wearer.\ - The device is also capable of 'frankenstein'-ing a corpse, long after normal technology would be able to save them. The body will still be tied to the\ - normal damage limits for survival, however, so care must be taken." - icon_state = "material" - var/battery_type = /obj/item/cell/device/weapon/recharge - var/obj/item/cell/battery = null - -/obj/item/clothing/gloves/ring/buzzer/get_cell() - return battery - -/obj/item/clothing/gloves/ring/buzzer/Initialize() - . = ..() - if(!battery) - battery = new battery_type(src) - -/obj/item/clothing/gloves/ring/buzzer/Touch(var/atom/A, var/proximity) - if(proximity && istype(usr, /mob/living/carbon/human)) - return zap(usr, A, proximity) - return 0 - -/obj/item/clothing/gloves/ring/buzzer/proc/zap(var/mob/living/carbon/human/user, var/atom/movable/target, var/proximity) - . = FALSE - if(user.a_intent == I_HURT && battery.percent() >= 50) - if(isliving(target)) - var/mob/living/L = target - - if(ishuman(L) && battery.percent() >= 90) // Silent text-wise, for maximum potential for gimmicks. - var/mob/living/carbon/human/H = L - - if(H.stat == DEAD) - . = TRUE - - do_defib(H) - - to_chat(L, span_warning("You feel a powerful shock!")) - if(!.) - playsound(L, 'sound/effects/sparks7.ogg', 40, 1) - L.electrocute_act(battery.percent() * 0.25, src) - battery.emp_act(2) - return . - - return 0 - -/obj/item/clothing/gloves/ring/buzzer/proc/do_defib(var/mob/living/carbon/human/H = null) - if(!istype(H)) - return 0 - - dead_mob_list.Remove(H) - if((H in living_mob_list) || (H in dead_mob_list)) - WARNING("Mob [H] was ring-defibbed but already in the living or dead list still!") - living_mob_list += H - - H.timeofdeath = 0 - H.set_stat(UNCONSCIOUS) - H.failed_last_breath = 0 - H.reload_fullscreen() - - H.emote("gasp") - H.Weaken(rand(10,25)) - H.updatehealth() - - battery.emp_act(1) diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 3862469c85..cb5e214fd6 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -172,65 +172,3 @@ name = "water wings" desc = "Swim aids designed to help a wearer float in water and learn to swim." icon_state = "waterwings" - -/obj/item/clothing/gloves/watch - name = "wristwatch" - desc = "A cheap plastic quartz-based wristwatch. Painfully archaic by modern standards, but there's something charming about it all the same." - icon_state = "wristwatch_basic" - siemens_coefficient = 1 - gender = "neuter" - -/obj/item/clothing/gloves/watch/examine(mob/user) - . = ..() - - if(Adjacent(user)) - . += span_notice("The current station time is [stationtime2text()].") - -/obj/item/clothing/gloves/watch/silver - name = "silver wristwatch" - desc = "A humble silver (or maybe chrome) plated wristwatch. It's quite archaic, but nonetheless classy in its own way." - icon_state = "wristwatch_silver" - -/obj/item/clothing/gloves/watch/gold - name = "gold wristwatch" - desc = "A very fancy gold-plated wristwatch. For when you want to casually show off just how wealthy you are. It even tells the time!" - icon_state = "wristwatch_gold" - -/obj/item/clothing/gloves/watch/survival - name = "survival watch" - desc = "An overengineered wristwatch that purports to be both space and water proof, and includes a compass, micro GPS beacon, and temperature and pressure sensors. The beacon is off by default, and can only transmit its location: it cannot scan for other signals." - description_fluff = "Hold ALT whilst left-clicking on the survival watch to toggle the status of its micro-beacon." - icon_state = "wristwatch_survival" - - var/obj/item/gps/gps = null - -/obj/item/clothing/gloves/watch/survival/examine(mob/user) - . = ..() - - if(Adjacent(user) && src.loc == user) - . += span_notice("You are currently facing [dir2text(user.dir)]. The micro beacon is [gps.tracking ? "on" : "off"].") - var/TB = src.loc.loc - if(istype(TB, /turf/)) //no point returning light level if we're not on a turf (might be *in* someone!) - var/turf/TL = TB - var/light_level = TL.get_lumcount() - if(light_level) - . += span_notice("Light Level: [TL.get_lumcount()]") - else - . += span_notice("It's too dark to see the light level!") - if(istype(TB, /turf/simulated)) //no point returning atmospheric data from unsimulated tiles (they don't track pressure anyway, only temperature) - var/turf/simulated/T = TB - var/datum/gas_mixture/env = T.return_air() - . += span_notice("Pressure: [env.return_pressure()]kPa / Temperature: [env.temperature]K ") - -/obj/item/clothing/gloves/watch/survival/New() - gps = new/obj/item/gps/watch(src) - -/obj/item/gps/watch - gps_tag = "SRV-WTCH" - -/obj/item/clothing/gloves/watch/survival/AltClick(mob/user) - . = ..() - - if(Adjacent(user)) - gps.tracking = !gps.tracking - to_chat(user,span_notice("You turn the micro beacon [gps.tracking ? "on" : "off"].")) diff --git a/code/modules/clothing/rings/material.dm b/code/modules/clothing/rings/material.dm deleted file mode 100644 index 30242fef66..0000000000 --- a/code/modules/clothing/rings/material.dm +++ /dev/null @@ -1,74 +0,0 @@ -///////////////////////////////////////// -//Material Rings -/obj/item/clothing/gloves/ring/material - icon = 'icons/inventory/hands/item.dmi' - icon_state = "material" - -/obj/item/clothing/gloves/ring/material/New(var/newloc, var/new_material) - ..(newloc) - if(!new_material) - new_material = MAT_STEEL - material = get_material_by_name(new_material) - if(!istype(material)) - qdel(src) - return - name = "[material.display_name] ring" - desc = "A ring made from [material.display_name]." - color = material.icon_colour - -/obj/item/clothing/gloves/ring/material/get_material() - return material - -/obj/item/clothing/gloves/ring/material/wood/New(var/newloc) - ..(newloc, MAT_WOOD) - -/obj/item/clothing/gloves/ring/material/plastic/New(var/newloc) - ..(newloc, MAT_PLASTIC) - -/obj/item/clothing/gloves/ring/material/iron/New(var/newloc) - ..(newloc, MAT_IRON) - -/obj/item/clothing/gloves/ring/material/glass/New(var/newloc) - ..(newloc, MAT_GLASS) - -/obj/item/clothing/gloves/ring/material/steel/New(var/newloc) - ..(newloc, MAT_STEEL) - -/obj/item/clothing/gloves/ring/material/silver/New(var/newloc) - ..(newloc, MAT_SILVER) - -/obj/item/clothing/gloves/ring/material/gold/New(var/newloc) - ..(newloc, MAT_GOLD) - -/obj/item/clothing/gloves/ring/material/platinum/New(var/newloc) - ..(newloc, MAT_PLATINUM) - -/obj/item/clothing/gloves/ring/material/phoron/New(var/newloc) - ..(newloc, MAT_PHORON) - -/obj/item/clothing/gloves/ring/material/titanium/New(var/newloc) - ..(newloc, MAT_TITANIUM) - -/obj/item/clothing/gloves/ring/material/copper/New(var/newloc) - ..(newloc, MAT_COPPER) - -/obj/item/clothing/gloves/ring/material/bronze/New(var/newloc) - ..(newloc, MAT_BRONZE) - -/obj/item/clothing/gloves/ring/material/uranium/New(var/newloc) - ..(newloc, MAT_URANIUM) - -/obj/item/clothing/gloves/ring/material/osmium/New(var/newloc) - ..(newloc, MAT_OSMIUM) - -/obj/item/clothing/gloves/ring/material/lead/New(var/newloc) - ..(newloc, MAT_LEAD) - -/obj/item/clothing/gloves/ring/material/diamond/New(var/newloc) - ..(newloc, MAT_DIAMOND) - -/obj/item/clothing/gloves/ring/material/tin/New(var/newloc) - ..(newloc, MAT_TIN) - -/obj/item/clothing/gloves/ring/material/void_opal/New(var/newloc) - ..(newloc, MAT_VOPAL) \ No newline at end of file diff --git a/code/modules/clothing/rings/rings.dm b/code/modules/clothing/rings/rings.dm deleted file mode 100644 index 34678198e7..0000000000 --- a/code/modules/clothing/rings/rings.dm +++ /dev/null @@ -1,96 +0,0 @@ -//Generic Ring - -/obj/item/clothing/gloves/ring - name = "generic ring" - desc = "Torus shaped finger decoration." - icon_state = "material" - drop_sound = 'sound/items/drop/ring.ogg' - -///////////////////////////////////////// -//Standard Rings -/obj/item/clothing/gloves/ring/engagement - name = "engagement ring" - desc = "An engagement ring. It certainly looks expensive." - icon_state = "diamond" - -/obj/item/clothing/gloves/ring/engagement/attack_self(mob/user) - user.visible_message(span_warning("\The [user] gets down on one knee, presenting \the [src]."),span_warning("You get down on one knee, presenting \the [src].")) - -/obj/item/clothing/gloves/ring/cti - name = "CTI ring" - desc = "A ring commemorating graduation from CTI." - icon_state = "cti-grad" - -/obj/item/clothing/gloves/ring/mariner - name = "Mariner University ring" - desc = "A ring commemorating graduation from Mariner University." - icon_state = "mariner-grad" - - -///////////////////////////////////////// -//Reagent Rings - -/obj/item/clothing/gloves/ring/reagent - flags = OPENCONTAINER - origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 4) - -/obj/item/clothing/gloves/ring/reagent/New() - ..() - create_reagents(15) - -/obj/item/clothing/gloves/ring/reagent/equipped(var/mob/living/carbon/human/H) - ..() - if(istype(H) && H.gloves==src) - - if(reagents.total_volume) - to_chat(H, span_danger("You feel a prick as you slip on \the [src].")) - if(H.reagents) - var/contained = reagents.get_reagents() - var/trans = reagents.trans_to_mob(H, 15, CHEM_BLOOD) - add_attack_logs(usr, H, "Injected with [name] containing [contained] transferred [trans] units") - return - -//Sleepy Ring -/obj/item/clothing/gloves/ring/reagent/sleepy - name = "silver ring" - desc = "A ring made from what appears to be silver." - icon_state = "material" - origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 5) - -/obj/item/clothing/gloves/ring/reagent/sleepy/New() - ..() - reagents.add_reagent("chloralhydrate", 15) // Less than a sleepy-pen, but still enough to knock someone out - -///////////////////////////////////////// -//Seals and Signet Rings - -/obj/item/clothing/gloves/ring/seal - var/stamptext = null -/obj/item/clothing/gloves/ring/seal/secgen - name = "Secretary-General's official seal" - desc = "The official seal of the Secretary-General of the Sol Central Government, featured prominently on a silver ring." - icon_state = "seal-secgen" - -/obj/item/clothing/gloves/ring/seal/mason - name = "\improper Masonic ring" - desc = "The Square and Compasses feature prominently on this Masonic ring." - icon_state = "seal-masonic" - -/obj/item/clothing/gloves/ring/seal/signet - name = "signet ring" - desc = "A signet ring, for when you're too sophisticated to sign letters." - icon_state = "seal-signet" - var/nameset = FALSE - -/obj/item/clothing/gloves/ring/seal/signet/attack_self(mob/user) - if(nameset) - to_chat(user, span_notice("The [src] has already been claimed!")) - return - - to_chat(user, span_notice("You claim the [src] as your own!")) - change_name(user) - nameset = TRUE - -/obj/item/clothing/gloves/ring/seal/signet/proc/change_name(var/signet_name = "Unknown") - name = "[signet_name]'s signet ring" - desc = "A signet ring belonging to [signet_name], for when you're too sophisticated to sign letters." diff --git a/code/modules/clothing/rings/rings_vr.dm b/code/modules/clothing/rings/rings_vr.dm deleted file mode 100644 index 45306a7acc..0000000000 --- a/code/modules/clothing/rings/rings_vr.dm +++ /dev/null @@ -1,17 +0,0 @@ -/obj/item/clothing/gloves/ring/wedding - name = "golden wedding ring" - desc = "For showing your devotion to another person. It has a golden glimmer to it." - icon = 'icons/inventory/hands/item_vr.dmi' - icon_state = "wedring_g" - item_state = "wedring_g" - var/partnername = "" - -/obj/item/clothing/gloves/ring/wedding/attack_self(mob/user) - partnername = copytext(sanitize(input(user, "Would you like to change the holoengraving on the ring?", "Name your spouse", "Bae") as null|text),1,MAX_NAME_LEN) - name = "[initial(name)] - [partnername]" - -/obj/item/clothing/gloves/ring/wedding/silver - name = "silver wedding ring" - desc = "For showing your devotion to another person. It has a silver glimmer to it." - icon_state = "wedring_s" - item_state = "wedring_s" diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm index 8af2af8139..f8d5a98032 100644 --- a/code/modules/economy/vending_machines_vr.dm +++ b/code/modules/economy/vending_machines_vr.dm @@ -519,7 +519,7 @@ /obj/item/clothing/under/color/yellow = 5, /obj/item/clothing/shoes/black = 20, /obj/item/clothing/shoes/white = 20, - /obj/item/clothing/gloves/watch = 20 + /obj/item/clothing/accessory/watch = 20 ) prices = list() @@ -636,13 +636,13 @@ /obj/item/clothing/ears/earmuffs/headphones = 5, /obj/item/clothing/ears/earring/stud = 5, /obj/item/clothing/ears/earring/dangle = 5, - /obj/item/clothing/gloves/ring/mariner = 5, - /obj/item/clothing/gloves/ring/engagement = 5, - /obj/item/clothing/gloves/ring/seal/signet = 5, - /obj/item/clothing/gloves/ring/seal/mason = 5, - /obj/item/clothing/gloves/ring/material/plastic = 5, - /obj/item/clothing/gloves/ring/material/steel = 5, - /obj/item/clothing/gloves/ring/material/gold = 5, + /obj/item/clothing/accessory/ring/mariner = 5, + /obj/item/clothing/accessory/ring/engagement = 5, + /obj/item/clothing/accessory/ring/seal/signet = 5, + /obj/item/clothing/accessory/ring/seal/mason = 5, + /obj/item/clothing/accessory/ring/material/plastic = 5, + /obj/item/clothing/accessory/ring/material/steel = 5, + /obj/item/clothing/accessory/ring/material/gold = 5, /obj/item/clothing/glasses/eyepatch = 5, /obj/item/clothing/glasses/gglasses = 5, /obj/item/clothing/glasses/regular/hipster = 5, @@ -670,9 +670,9 @@ /obj/item/clothing/accessory/pride/lesbian = 5, /obj/item/clothing/accessory/pride/intersex = 5, /obj/item/clothing/accessory/pride/vore = 5, - /obj/item/clothing/gloves/watch = 5, - /obj/item/clothing/gloves/watch/silver = 5, - /obj/item/clothing/gloves/watch/gold = 5 + /obj/item/clothing/accessory/watch = 5, + /obj/item/clothing/accessory/watch/silver = 5, + /obj/item/clothing/accessory/watch/gold = 5 ) prices = list(/obj/item/clothing/accessory = 50, /obj/item/clothing/accessory/armband/med/color = 50, @@ -781,13 +781,13 @@ /obj/item/clothing/ears/earmuffs/headphones = 50, /obj/item/clothing/ears/earring/stud = 50, /obj/item/clothing/ears/earring/dangle = 50, - /obj/item/clothing/gloves/ring/mariner = 50, - /obj/item/clothing/gloves/ring/engagement = 50, - /obj/item/clothing/gloves/ring/seal/signet = 50, - /obj/item/clothing/gloves/ring/seal/mason = 50, - /obj/item/clothing/gloves/ring/material/plastic = 50, - /obj/item/clothing/gloves/ring/material/steel = 50, - /obj/item/clothing/gloves/ring/material/gold = 100, + /obj/item/clothing/accessory/ring/mariner = 50, + /obj/item/clothing/accessory/ring/engagement = 50, + /obj/item/clothing/accessory/ring/seal/signet = 50, + /obj/item/clothing/accessory/ring/seal/mason = 50, + /obj/item/clothing/accessory/ring/material/plastic = 50, + /obj/item/clothing/accessory/ring/material/steel = 50, + /obj/item/clothing/accessory/ring/material/gold = 100, /obj/item/clothing/glasses/eyepatch = 50, /obj/item/clothing/glasses/gglasses = 50, /obj/item/clothing/glasses/regular/hipster = 50, @@ -811,9 +811,9 @@ /obj/item/clothing/accessory/pride/lesbian = 50, /obj/item/clothing/accessory/pride/intersex = 50, /obj/item/clothing/accessory/pride/vore = 50, - /obj/item/clothing/gloves/watch = 50, - /obj/item/clothing/gloves/watch/silver = 100, - /obj/item/clothing/gloves/watch/gold = 200 + /obj/item/clothing/accessory/watch = 50, + /obj/item/clothing/accessory/watch/silver = 100, + /obj/item/clothing/accessory/watch/gold = 200 ) premium = list(/obj/item/bedsheet/rainbow = 1) contraband = list(/obj/item/clothing/mask/gas/clown_hat = 1, @@ -1985,13 +1985,13 @@ /obj/item/clothing/ears/earmuffs/headphones = 5, /obj/item/clothing/ears/earring/stud = 5, /obj/item/clothing/ears/earring/dangle = 5, - /obj/item/clothing/gloves/ring/mariner = 5, - /obj/item/clothing/gloves/ring/engagement = 5, - /obj/item/clothing/gloves/ring/seal/signet = 5, - /obj/item/clothing/gloves/ring/seal/mason = 5, - /obj/item/clothing/gloves/ring/material/plastic = 5, - /obj/item/clothing/gloves/ring/material/steel = 5, - /obj/item/clothing/gloves/ring/material/gold = 5, + /obj/item/clothing/accessory/ring/mariner = 5, + /obj/item/clothing/accessory/ring/engagement = 5, + /obj/item/clothing/accessory/ring/seal/signet = 5, + /obj/item/clothing/accessory/ring/seal/mason = 5, + /obj/item/clothing/accessory/ring/material/plastic = 5, + /obj/item/clothing/accessory/ring/material/steel = 5, + /obj/item/clothing/accessory/ring/material/gold = 5, /obj/item/clothing/glasses/eyepatch = 5, /obj/item/clothing/glasses/gglasses = 5, /obj/item/clothing/glasses/regular/hipster = 5, diff --git a/code/modules/materials/materials/_materials.dm b/code/modules/materials/materials/_materials.dm index ca710cb04f..322e5d7bea 100644 --- a/code/modules/materials/materials/_materials.dm +++ b/code/modules/materials/materials/_materials.dm @@ -361,7 +361,7 @@ var/list/name_to_material new /datum/stack_recipe("[display_name] armor plate", /obj/item/material/armor_plating, 1, time = 20, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), new /datum/stack_recipe("[display_name] armor plate insert", /obj/item/material/armor_plating/insert, 2, time = 40, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), new /datum/stack_recipe("[display_name] grave marker", /obj/item/material/gravemarker, 5, time = 50, supplied_material = "[name]", pass_stack_color = TRUE), - new /datum/stack_recipe("[display_name] ring", /obj/item/clothing/gloves/ring/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), + new /datum/stack_recipe("[display_name] ring", /obj/item/clothing/accessory/ring/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), new /datum/stack_recipe("[display_name] bracelet", /obj/item/clothing/accessory/bracelet/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE) ) diff --git a/code/modules/materials/materials/organic/leather.dm b/code/modules/materials/materials/organic/leather.dm index fe291e4d8d..607361d07e 100644 --- a/code/modules/materials/materials/organic/leather.dm +++ b/code/modules/materials/materials/organic/leather.dm @@ -33,7 +33,7 @@ new /datum/stack_recipe("pouch, melee", /obj/item/storage/pouch/baton, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add new /datum/stack_recipe("crude [display_name] bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"), new /datum/stack_recipe("[display_name] net", /obj/item/material/fishing_net, 10, time = 5 SECONDS, supplied_material = "[name]", pass_stack_color = TRUE), - new /datum/stack_recipe("[display_name] ring", /obj/item/clothing/gloves/ring/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), + new /datum/stack_recipe("[display_name] ring", /obj/item/clothing/accessory/ring/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), new /datum/stack_recipe("[display_name] bracelet", /obj/item/clothing/accessory/bracelet/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), new /datum/stack_recipe("[display_name] armor plate", /obj/item/material/armor_plating, 1, time = 20, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), new /datum/stack_recipe("empty sandbag", /obj/item/stack/emptysandbag, 2, time = 2 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]"), diff --git a/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm b/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm index 7beb027663..b1608dc51f 100644 --- a/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm +++ b/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm @@ -22,7 +22,7 @@ var/to_wear_r_radio = null var/to_wear_uniform = /obj/item/clothing/under/color/grey var/to_wear_suit = /obj/item/clothing/suit/armor/material/makeshift/glass - var/to_wear_gloves = /obj/item/clothing/gloves/ring/material/platinum + var/to_wear_gloves = /obj/item/clothing/accessory/ring/material/platinum var/to_wear_shoes = /obj/item/clothing/shoes/galoshes var/to_wear_belt = /obj/item/storage/belt/utility/full var/to_wear_l_pocket = /obj/item/soap diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 73913ba295..80dabf789d 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -107,12 +107,10 @@ if(w_uniform && !(skip_gear & EXAMINE_SKIPJUMPSUIT) && w_uniform.show_examine) //Ties var/tie_msg - var/tie_msg_warn if(istype(w_uniform,/obj/item/clothing/under) && !(skip_gear & EXAMINE_SKIPTIE)) var/obj/item/clothing/under/U = w_uniform if(LAZYLEN(U.accessories)) tie_msg += ". Attached to it is" - tie_msg_warn += "! Attached to it is" var/list/accessory_descs = list() if(skip_gear & EXAMINE_SKIPHOLSTER) for(var/obj/item/clothing/accessory/A in U.accessories) @@ -139,12 +137,10 @@ //suit/armour if(wear_suit) var/tie_msg - var/tie_msg_warn if(istype(wear_suit,/obj/item/clothing/suit)) var/obj/item/clothing/suit/U = wear_suit if(LAZYLEN(U.accessories)) tie_msg += ". Attached to it is" - tie_msg_warn += "! Attached to it is" var/list/accessory_descs = list() for(var/accessory in U.accessories) accessory_descs += "\a [accessory]" @@ -185,10 +181,21 @@ //gloves if(gloves && !(skip_gear & EXAMINE_SKIPGLOVES) && gloves.show_examine) + var/gloves_acc_msg + if(istype(gloves,/obj/item/clothing/gloves)) + var/obj/item/clothing/gloves/G = gloves + if(LAZYLEN(G.accessories)) + gloves_acc_msg += ". Attached to it is" + var/list/accessory_descs = list() + for(var/obj/item/clothing/accessory/A in G.accessories) + accessory_descs += "\a [A]" + + gloves_acc_msg += " [lowertext(english_list(accessory_descs))]." if(gloves.blood_DNA) - msg += span_warning("[T.He] [T.has] [icon2html(gloves,user.client)] [gloves.gender==PLURAL?"some":"a"] [(gloves.blood_color != "#030303") ? "blood" : "oil"]-stained [gloves.name] on [T.his] hands!") + msg += span_warning("[T.He] [T.has] [icon2html(gloves,user.client)] [gloves.gender==PLURAL?"some":"a"] [(gloves.blood_color != "#030303") ? "blood" : "oil"]-stained [gloves.name] on [T.his] hands![gloves_acc_msg]") else - msg += "[T.He] [T.has] [icon2html(gloves,user.client)] \a [gloves] on [T.his] hands." + msg += "[T.He] [T.has] [icon2html(gloves,user.client)] \a [gloves] on [T.his] hands.[gloves_acc_msg]" + else if(blood_DNA && !(skip_body & EXAMINE_SKIPHANDS)) msg += span_warning("[T.He] [T.has] [(hand_blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained hands!") diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 0b11efd130..883a4bd662 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -597,7 +597,7 @@ user << browse("[name][info_links][stamps]", "window=[name]") return - else if(istype(P, /obj/item/stamp) || istype(P, /obj/item/clothing/gloves/ring/seal)) + else if(istype(P, /obj/item/stamp) || istype(P, /obj/item/clothing/accessory/ring/seal)) if(istype(P, /obj/item/stamp)) var/obj/item/stamp/the_stamp = P if(the_stamp.stamptext) @@ -605,7 +605,7 @@ else stamps += (stamps=="" ? "
" : "
") + span_italics("This paper has been stamped with the [the_stamp.name].") else - var/obj/item/clothing/gloves/ring/seal/the_stamp = P + var/obj/item/clothing/accessory/ring/seal/the_stamp = P if(the_stamp.stamptext) stamps += (stamps=="" ? "
" : "
") + span_italics("[the_stamp.stamptext]") else diff --git a/code/modules/vore/fluffstuff/custom_boxes_vr.dm b/code/modules/vore/fluffstuff/custom_boxes_vr.dm index 741d3055a1..1ff0dbeada 100644 --- a/code/modules/vore/fluffstuff/custom_boxes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_boxes_vr.dm @@ -198,7 +198,7 @@ name = "Phi's Personal Items" has_items = list( /obj/item/clothing/accessory/medal/bronze_heart, - /obj/item/clothing/gloves/ring/seal/signet/fluff/phi) + /obj/item/clothing/accessory/ring/seal/signet/fluff/phi) // Tabiranth: Ascian /obj/item/grenade/spawnergrenade/spirit diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm index a4a102ce84..6361637d45 100644 --- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm @@ -1685,14 +1685,14 @@ Departamental Swimsuits, for general use item_state = "kilanosuit_p_mob" //Mewchild: Phi Vietsi -/obj/item/clothing/gloves/ring/seal/signet/fluff/phi +/obj/item/clothing/accessory/ring/seal/signet/fluff/phi name = "Phi's Bone Signet Ring" desc = "A signet ring belonging to Phi, carved from the bones of something long extinct, as a ward against bad luck." icon = 'icons/vore/custom_clothes_vr.dmi' icon_state = "phi_ring" -/obj/item/clothing/gloves/ring/seal/signet/fluff/phi/change_name(var/signet_name = "Unknown") +/obj/item/clothing/accessory/ring/seal/signet/fluff/phi/change_name(var/signet_name = "Unknown") name = "[signet_name]'s Bone Signet Ring" desc = "A signet ring belonging to [signet_name], carved from the bones of something long extinct, as a ward against bad luck." @@ -1949,12 +1949,13 @@ Departamental Swimsuits, for general use icon_override = 'icons/vore/custom_clothes_vr.dmi' //CappyCat:Cappy Fuzzlyfeathers -/obj/item/clothing/accessory/watch +/obj/item/clothing/accessory/watch/custom name = "silver pocket watch" desc = "A fancy silver-plated digital pocket watch. Looks expensive." icon = 'icons/obj/deadringer.dmi' icon_state = "deadringer" w_class = ITEMSIZE_SMALL + slot = ACCESSORY_SLOT_INSIGNIA slot_flags = SLOT_ID | SLOT_BELT | SLOT_TIE //Pimientopyro:Zaku Fyodorovna @@ -2706,7 +2707,7 @@ Departamental Swimsuits, for general use //Halored: Mercury -/obj/item/clothing/gloves/ring/material/void_opal/fluff/mercury +/obj/item/clothing/accessory/ring/material/void_opal/fluff/mercury name = "Mercury's Mate Ring" desc = "A band of void opal, given to Mercury by Lumen" diff --git a/code/modules/xenoarcheaology/artifacts/replicator_vr.dm b/code/modules/xenoarcheaology/artifacts/replicator_vr.dm index 144f51bd76..e8b1ff662a 100644 --- a/code/modules/xenoarcheaology/artifacts/replicator_vr.dm +++ b/code/modules/xenoarcheaology/artifacts/replicator_vr.dm @@ -347,7 +347,7 @@ var/list/created_items = list() var/list/tgui_vore_selection = list() var/list/viable_items = list( - /obj/item/clothing/gloves/ring, + /obj/item/clothing/accessory/ring, /obj/item/clothing/gloves/evening, /obj/item/clothing/gloves/black, /obj/item/clothing/under/swimsuit/black, diff --git a/code/modules/xenoarcheaology/finds/find_spawning.dm b/code/modules/xenoarcheaology/finds/find_spawning.dm index 7c262bd350..af11c748e7 100644 --- a/code/modules/xenoarcheaology/finds/find_spawning.dm +++ b/code/modules/xenoarcheaology/finds/find_spawning.dm @@ -576,7 +576,7 @@ apply_image_decorations = TRUE if(prob(25)) apply_material_decorations = FALSE - new_item = new /obj/item/clothing/gloves/ring/material(src.loc) + new_item = new /obj/item/clothing/accessory/ring/material(src.loc) item_type = new_item.name if(ARCHAEO_CLUB) diff --git a/icons/inventory/accessory/mob.dmi b/icons/inventory/accessory/mob.dmi index 587ec871283cc49f0247c646d0024adc7e2b92ff..9ec056adc92be7c369f6fae1c662d2da5da3a542 100644 GIT binary patch delta 10988 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 delta 10548 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 z zFGl)TNO0gBmABNfX1ynkjflX)P;3?kRYaA-U@+%BhM@-~h&P|?*}h<5AK*A2pC$LY zH*Rl>O!7b|jfnhaCCbvO`*~Zre>`_1I4zgs$e26N;i}ZgFkU3F8 zsuzXv+-sN08cWc#AByFQo9B>Kx$ytg#1%OtzJL(!QCz8u4Ks%3oUCM~c~TqHGgNRi zWoAGT$XM_H& z_3v6D0F$M`DV#BYAkO_5%=}A@ak=@!fva7b7IlvHo5whyNaY=Wdio1G9lbvO?ek^B zX9W;7DM>JpS&gAjsB$iyv0l5a-VeWmLSZkiR@#KES2TTY3Lme<&c*k{%e6l{XD1^X z+!VG?Vm{}vW^g~__)BBbg$v%}5x6a}$1aE$X8LFbLANn%-^a`L1s&(90RfTqhGm{Z zW;1f`$kgw0ZxhD!KcT^w-i@ETC!bsc|68o_OiKvF$ZjQ}DEK)Nide;VF2csdZ8BnY zaoNK_OxPujo3>ceqvCR4$_vWM3~bk!Wx08I?{1^~Pj=Fls;jD6_aM26&@uzCcUQz% zlxEIlk3SmbG6SXzN230r6F|g2cu0+~5k+WG`uimV|COAExzG`A^b8M0{aN$SxuuYs z{QAr4#zSKw4q8YcibXcTqs%cA{juNV1{5{H&DIVfkA~5{ak- zn=?9?+iwKWWk9&hH`12T;Gu-`Wf`)E@_(9efgfau<*vZ35UCK|qesI1b;_ zS>YU9Bg>VElIHvlbA$1Gts6&7!(F9oYnAa|;BSB$I}(<*Ek7;TM;hFj{m<$K`hE@K zua%p3x(DbW_2AOa1y-<6`*DA|H}TgU{^!~d=)b?+#Q5tGy&uo-2iZtCi)C-G(VaVy_q*Pe1QqU?V8O;E0e{zTONBff;@*WKMZE=51g23LD(-3 kcsS|5U*P|6%S^8NSa)^xH6JT5Fib~dhrT-Q(v9E$11=H%9{>OV delta 10410 zcmaiac|4Te`~Q@udRiofP|+ijy(~#$>dC&BJ zA%wyh`y@$b7%|2$>+eiG-_P&!`+h&)*Y6K=?sK1W-}iN{^S-X@eO<@k@`j4#4bPRV zpcf6OOSSwS1zY!h5Osgk#B|sDQM`Jke@si3M|Zt9zarUs3^=&^K<&6UgxI*4|m>G{O}P z=3(agiPF;DG;T8)!|u$#-jkobeS;(n27{{pgl)cY(ZSJCsnE`B0N%A{+nu!Xa%Fq| z2H7TRDYmc{qw<=9o;T!0k!+oBGy2B2Qz2j90TJ-D=I?j@w6OPhn#b-Z$xH6o$v(Jm z$L91a2v&|ZQRlv^?XD=2Y7tg(;f`4oMil7%k&Ov^s#lv>Mq^=P>r4X&I$5pd6 z${d1*L+#7bLR>TvP&)}Jfg|Z3rie&@l}}sJ#6(k;7`X~5W?7zRaYk}~OjC6e6W%W= zMCb5|<{2mjnPf{hx7?Cx^3c%XrEBAZjQSd$SCC|K$F!VWk}D*da_v-@`41+F(BI#$ zeBb~fCkZk&#l3j(BBzlTH6*JlwoM7mj}+pb@Z}Qq*btXA=Lu~*3M&!?pEo`3&~;aV zKC|-aP|m7e+)9E#M41u0Y({GJ1S5VKMOYq0Ovvra_>ehSifx;vXX`cpVTiFsVX88O zEx&c!Ly?JPwj7{jB_*Yly1L_mfq|c1*jid9zNoD=H#fhhM8ypyn>@`~y=U^YgeV&n z4oQM85IeHhZwthrV5M0v>~3dCIbU3;f~S$F=}AeROKe;!b7w0xivcbEX!^oLD1ucr zlE{1R8CA^ffSEMZ29uPrPL+?WbB~*!J$u`~Xra5SD=l6Y?GiOV{D+Q?&Y`fy71nKG z^q&)W-^4O+|L*&fgY_i03m4=ipu|8!9$0}Pch1(*-rnAc@QgwHfvs&xc#rq(##g~# zWX^PF3N&6eonvg^q~-VF?}?`9+#&L4ZE!lLdE<2;Q%*9Up`dHF*bp|*3+Youj!X3M z_Y>|6Re50FT{@<8nGA;m=!V7CSMZ(D5x5ZcvdC3geljl@Z`HuOG$cUhRD1MW7S5x|sjRGQ zsRFd0P_=Jo>B4{6M)E^Y?@Q3fBL^;zrcQb}tqc)~I=j$}{d^bIzx5TeDAGep2QwZNMk~2qdi|jn~Aba%WqsR9^Y|`dY|kiy<#B zz3O|>tX%zwb>G>@Xrbpp!RA($&EZGq=ZVL|TwSyAE7@a$_25zBhA&%APNr920z()s z&+=aIP(y+8BNhCdy^EQl2;R*=DlREnf$9%Qk6Ba6>jTj<(__td+f`Il?AsU3-={Sp z!&mmi%TTK8VtTZW)wI5zMS!g>t*Eg2gyNNrxZQrCbkSrxV2)p%iQE*F_`o#Yuj`qIP0qkm*X$r96G4UtlV z1egIr`^;(8oBR8hPGMm|T)}4Oi!@hadEi%#K*e>HqYsmMo18KXuZ*2mv)`h7df_5? zptF|#0m0YNn8d|!>*Ln9;J>x8tzCca)hVbi`6?0O707m)@^wb=3T?1ZDw%(&HPe6ZRC9wxH@^T73{BOF~TSL=<=Xwrxi5 zni&J$lOP`m)g8SN&n4H3nG(?cXuOp=U&a_fm|(np>KbUA*%0c!Av+s7bo zYgSxhAqzUj&ZwaH<0ED)*4yq8lHB-+yy4(Z7LvPm{VW^4?oZbB<;qGzeDSjkSxLTl z_Yg$w=+h75)}uMib5t^O8rt{r?F~=h{w&GKd^KwFtFM{xpa3#w+0?W-^pPi!OtS@D zv&Kbh#p~Q5FJ=O-X)JtZc^H{{opA=}oWIm@VCcYa2O(*zZ#4_lmQa&CcN$H%e<%U)oPX|f+D zYe$8JRe`?JI`3;IJ{nj3JjdpU*!f<=agBAyy)!AMGM`T2ypBFQwfz3j`FXXB8WH9` z-eJEZV$y3I2H1Sp1SfhHOU#(Y22Q2~vel{E*w0a7d7 z)VcFr>)f$sUOv208Ov~n^MieUB5XMwGY<4<%gL27=h$8Tz*0m%doP$8$u(A=aC*j^ z3mREj>@%ar8{~W=vMwg$=g628;I4tzQU<6ZC7w4q-!Q9|zyl14#6W3R4FVSi608^( z;PdC6e0mm3w`IdWVWnQ6*F&G*y}LP?rS~~RM_c>a3c8@Cq@>+@wMmO|Erv-W#+u$& zQIdYRGmr1rV~}oPZo3$dA70E1KT$EqJh^|TN+K6MH^=>$Mkn{OZkKfoF1Ff$_dCFs z{(4lUSQ#gsQs&9n1KA$=6yU(&Q4K#~B^ozAM_p2UWNz;0RATUoKHEpqDpH?ow<$jV zsJtT0NHg&J>!1^}XG^~p#Lz&PQ@6}iC%)+GFSZ0hvD<(-o*KyoAj@^+X12aOM3vcW zPl9Kgb+vDYX0sUNYg3Ez*+(I6%*Kuo4}PUA9OKAU_IjpP>IzklCnpu}28C-2V%UvP2W!NF(r zC4<4Zd)o&%6U8wsE@~0(aPC}6miT<-uEaJg5594tMCYYeM2SuA;Tpf*!54iM*;>Ao z7f_%;XJGIlg>_b3T)eXYK~R!=f>l&0ql=4<(6PFaxK>)z>4bzq>%0@;TJwb!oVx)f z)zeEa2eUcCcA_cfZdDoi`qB4+1(cK=wq`#YJ8d(L)sOP2DxvRiY{-YQZ8by;4Mkj^%ClUfsL$z++<*V*D8iv-%S6u5AV~t zdkmgw=;V6Ye?yJSdfZ>+d;^tP9ZzcmspM|?)Ww#I(Q%H})(;g!08mmRu0%3?6e3#y zV)QT;o$U|zMRH{%8%3TEvGcGBR?0 zu8B{!r;Z(K@wB0C@s4NJH5GXI`pA|J)qBSh@N@Cd??QlRR=t7WNwwRepBlbp-#>p_ zAni?`0oPOjl;}d8Fd&nTj_D<#wfH7&Eb;Vd(h{Vz>uBv>0UezxVQhhU zRY)C!#sB$-Z`*xwJfMtQH{X71*tz-k8Q=Bg83CI-M%_9>W1V#br1rI!orJo3fUB^< zpMYtGPyGodUo!py-e^bL1^pY7)aN}XyF7yr#s#+&R-C$O#$$Z^0}#npnUnG=A_pF^ zhhpEZqG2#eVUr!NJaNunmR<@dm2$dt)R=>^LTG5{?&OX(DkG==@dRUw{o8A&WcG@t z7|C5k2@?ioz-)!r{GFl=P;czq_wU539Q~8186KoZpGi7)9(rzfq-Z>j^KASNIb7nE zA%0}T)jXOZdQh}*KMYp7@3>&G#YII%qobom#l^-0H`LVB`T_k^P*8A%ONms;J~Yu; z*z?fD8Veu%d{pM4$-kH((hKl9K6pK6U?Dnz4CRC16Es>{Tcscz`*G{V_jXg|mRA>|U6$X7z;0Cgy;FG=wDz#=Qvb(~pQXaafNQc< zmDu)yW~ANYK9a&S;ySXj6qCnx73*ukKnpi_b_u#AD*{0ud>Q-s;Z z;-^oYQ7HJ}RfrRVf~NtBIcGppbE^yKq^u2lK+gc__U}FH;~!WCtN{Gx>E(vMa}0#R z^3?rbw$4*1(!aM}z(uXc8s2NWB*gZAip2&WbD)3Z_nfwCc8KUaG z$y32Pl>i+wY22tN_aw~O$*Dxut6ePoGbUFS6AF6+ ztu^O{83-uVO8NrM>QZ&q?!>k<8ZFFYIx;$1h0^l00e!Nqtqt$>dgFCIm)RpT`kYCI z5E7~`2f^*A`i-!sChahH1Y%JSwG!ZTTh;*OK%r8FJswKBL#&m###P7qz7q7wf8zcU zo9ibWDBVidP;ssj)A`LG3pn=EyI#KhwngfRfTSZI_T7jedP=laPj&X)yO{iB-0omVd8y+;~V&o}T?6b^vxG zMVKw+C7R-*dKkE}t?_TWfGacIp*0om;yTal=H1?6y}pBXYn`qD*RXZwmO=I<@Bdnw zE-ogzT(c-GEPQS6=~*=oSO?I^N>sGUti6)dXzGyRLo?l|6Z@SG&wT3w@7Q9f7&_$k zxy-==n99Bj{Ln2T_aB6hX{s^oA8B&f{)Z#E#SN}ttXtpq)KmpSLtVoBuy02#$>QyR zZLSma?L&6Nw+~VPyU_i<*?pJCT~tfN#Kp5Ec7vQNi@eBeW(>J?l{;d6XyXkLKR%!F z{oWzm&;6j9P3g(k2fTk0MOCwh^X%4{XJ)jnB+lHXnMYL9i#TKm9rdmn6Z@6g%uiC70q&ExahS$3L7|pYa4HvA+Hw=aPQAMOcS0(yi;J0@=2PZOm&`znc|${g z3@wk-`SNnk>gAxgLk1&^HDp_CA7fQHj?4W5lHU|Fvx^s}61<}$Bb6wta!&$fLAtf? zhJRmy8i*nwo(5_`EdvZ%g!x(_AKD@b~Flw@Bh3`S;s$-NR&{+ zM?ze%VnLV=VZR;wVB^jYZEO3YqO2Lo0ptSRir9JJWKkgd%a=<^YH9~wIU>$+cqGZ=eumqpNzm?oXku{Z&YgZDF`corgd%8m%%jdW;#zyGq)rxP3lGLS_R+{Uy?NKCWBJe_k&h9`Fk4_?VpdYSFlmXf_GCD5Z zjl}<0c=nOiVI9Iti^HiA-#`9gPfn_DLYEXI9nklS*<~0tpY`?YSC^CIWJ6l&o&}GH z%)6od(wS&YHYA=@#zLVQhnX?mK_&afDC-pAYQ^cx_P219SY?IT$mW;&fm7QN#C3^V0?{2#9|gN{E{)&MbN!{*_#l>4`EodY6V~vDjdjceLc_e=&?;(i#E&rLdlIu`npySt5nQ&$tj644QqxsFPgf7s>?>R%nRbl2l`=WOP;(!`TH zW(eFxU!C?CHaQiPe9oJCkAX|AtId(nZ(rPzxPB5@14LC2gv2By&|lKcot-l^SN#3V zb)&%5lhsFBVR>I?W^^NBl_p!$N?9Jv=H^UGYZ1S>@?R+sMTJcrDsdg~i%0FE78FrFV`YTh)>c zS^HuQkww*r9_$4eBD_#@4Q#UFyvi7{Yd&o#^oFQhvUWC!cn>U`!R7Nt&v5jP4 zW-ju(mwtmbZUAwp6KJh}wW!wikS5XoEidJe>Dro*66 zTzytlRPXw7QEUvm-j_+6kaJrhsS9UzEzfk%eCI!@9!=ogAX3)dDp(A`)4ce6fm?>U4!)@@%(c-0 zSY!v4alz^7)A&_1Io9F~N0GQqr+= z(944RiHU01!gOhLWe!qRB2|B}*`8z=J$b$K-KFYd=ivD+s^6ZeR2gFW`q$+M{un53 zXeD|0L|OdSJ%@MvMkuo{4I1^Q43^BuH~%17`^gH#xL` zMyopJ2+y}NaE)Z>4h%!ims%8U3j~4LdMqkBTBJEhR)sMjP_cZfc{lZee74nvh?B85x;#%gMtd|2zVLYyRTUxc^%+AxJ8=KzD^-fh5i%G_g!dK4OWMJr%Tz{uA0PPB+_}P z65-z&Yi#sjKOf-9-qz*5;fKFR!-(vWJ{DR1adeqej>!yJCJKDL-~9AJ-@RZ{8v?e=7;r7 zBDq)9k=a0_acz66G*22mKG&C{c%SH9jqJawbW9mvT&*qGDyM zI72Qap&x87fG71NZ((7<0)fEnzGsA|bpPBJ2y9G5i(F;_bw%diKBRRb}cp4bgOz={lN>+AI?>#bE)Ho!d9VmA1EU5ZvE%2HyH7I~{{P>Zf_ zz=!<=eeL7NExf&-f&-lFW8P4^FN6VFm#XqyTY8>gD!=RZET_eX;x1jZlZ$>&<4E>M$26U_*wz0Z-2K9%QtrC+wpRdsuL9aU z4ubZx@^4V^aGl}Lu z_t~EqtD>x&1_Uc65IjgrNZ{y#f`fGg#*p2Ps7L1mS4qoa2=4zc4iJ;lfdEzQCW^l_ zG{K6zKOn=0Do^nj&^(}rlAk`0=wR?8pRGgu*qComnccz6Os`E=R?t;X15i4D;X--f ztN#A;0*q;Vg=6=lOU-4VXQNL`|4=0M4GzpV7z&2|4VuQ5$LwdDP>i4k zkP|8F-wA92fC+zj8Zx;){ZJRUj49OUkG0K9Hqq@Yp>6AZ|d(y27tDoz&$SXTK1>Eg@D7AtYr)YhJ>WGdp!J-Ppe>v zz-1(s63Xbc>@`rI$Zv0NzZfHJNkuZJfxy2UC{9P8#(@K)Naz^vfc}#yXkqw=QW6va zZI+W0EN0~@BVZH~0|#}d zRz99}ZI%9o^UkjI(KyaR71GJp=@PdR`=45TL<_}qTU{9M=C|sH^WM%}QK6#%>PIue z_x_%`OVSAV-Q$qSb3&EHh^KRL7GWWv3~4HCkT)a(d$s=it5-+sNRCQ3XX-oOjA;25 z{ap(tx}JzB`7MKd{7c=_VxAo?gj~^pQMvdd4>8g*A}HfM71|&v`Fd_ohr*{%g@I#6 zrtx`(mt(Dn&Y?K$`7rm`RNra;>6Lra5z}9C_ltIIfI+>cu+5rwIQ1Z5OgWgY#70HsXW|TBPHK(UA>zUbr8QKJ z;_AKyhU4wGFGsugwzBdCRkD^f;^MWz>uyq<4KQzTE-!h;pLD&)S-(`wX1C5?N$D)* z8t81TxXIaM7>q4?i@!_jhT6eXHKo!Od z$Rd>)7;M*#n>%bUC)Dk?DVqB*WqJxJSdl8GQPg6J(w$U1&#GKdu!L`{22TRog`ISH(s9R-Bx0KtVSkcVNDVqcx z6(G%WFOQ6VLJBDpS>}&?JXmU*->;1uD78@ny&w0uroo_w@#}P@A_sSJlG7J!LL)31 zT6>dY$Z=hu+nxrJBV^I9&k*W!Ai2PMwHqYv||Jo|n>r(cHp8uLU*b-Na z4gHwa3T;{alEATV-W^}(M{2yw(I*8(qVz1JEfTliFxF+DE?z`7qhJ!61euW_!<)1C zP(SNcpBFf^`h{ghzdoloY*0ceeOd~TrH`ZiL~!zghm^@ z?s{)%Q;Fsjq&_8)eI`3b&#CO#_hpo~sPq%l1lp6OQ)GOeF6yh1* zH-FuGl<9nAwl^~SWK`Yq@;2X|9CrHly@row3$V=LiN1hiU&KFe>FQ2je%#``cjh(p zc=`181|^&s05)*Cz`6e9-2!~LKvc@Vw-s570#OAY=JC+i8!lt2;t*luid-&N^WvL# z6^3uT{JB>TTVYAF zDu+0rYgpZS4xqeWP&|F_&{w`*KCOe~7yjlMV>~c?ljM0Wr=I`uf7l+DAA)UWx||*u zUNn%fqrk_4ECjal?{5jkhNP3w6``Iu?uo}CSnX);LixY!H=Rznwgh?4&3%flttlLB3R5`+2}8xz3)xROePcGUA7BD{-jy>_3Kwq*F9g z;`!^zaOh*iHqOkfaTWj8{z>M|_a&w#k#Pf{;CF}4ZE~%Qi0Lfm^C}Vou4i%QOO3WA z8cS#Bc58?v|5x2ChPn5`3?_)THcJj3p6zur=5f?hn6#jb$Y9f-S@0uAIw5@OkN{7( z<`&zXvWD_)n?{-72rAv#ldK3KTIhWtA1;RP3@Fi8ak6;~mJZ)|L)5t?_mE)?Rm7cX?2 z=U!b|5tIb6o^fjG-$~-i_qVeQ{M_#dSTw-e@|QkHp|Y~Fk&XZJ@|o7s+FD0X&N{BB zwUtbZGC2TjS}IBi*ypXLj6lzjLm-E5IWSH2^@UT$Xer`|!T;Bep-?83f9%Qi|29#D zm%RFaZCjjM;d#IzYT-Il#95EAh2X$@X+z}%zaF~ZIO-5QH!JrVNef^ zKYh?EdOIxSjd<$RwqQW_H@jLSO&$O^U1sypoqgS@bnxG6<1asX8+&I5A?8p~J;Y}K zzE)j5>62GxzuLAx)FSu~kw;vhE7WRUX7XYNW6ROH>mawBFo40r+cs_7(Bua5+GF@H f7bdoMhA(tWVzD-0 Date: Tue, 29 Oct 2024 01:00:54 +0000 Subject: [PATCH 007/109] Update mob.dmi --- icons/inventory/accessory/mob.dmi | Bin 169760 -> 170195 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/inventory/accessory/mob.dmi b/icons/inventory/accessory/mob.dmi index 8b67d7d7decfa6b73633f5377250880492c85f5e..9c30c1c501d3e522274be1a0418177053dc61709 100644 GIT binary patch delta 11081 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 xU6WPF{%{{usJd9eTh delta 10643 zcmb8VWmr^Q)G$1hbc-}7Augn-g1jS5J2*P*++yHly5K~fqC=`QJR2EH-w z@44PT@AW?W$2o_+*4iufs=bG?uUMJoSdpYa8^!|=2&7KR`vwHUc;uq|-cHQG_LGgV zm7TGr1qkGnnwBygPRWPYJ-k)$!f;4kKYCza$3|WM%l8i(B&hLX31sg+`YFb(3czXl z<{d5^GUaS{9(d4(WHSU`uj=C8U#+(4-o0|WJL&J}Ru%7G9$Q|8E(kX9y)!yG+&Wwa z;2kO7IeTjFl_7c}mT;iX(%u!IUUB0)UBFn-w z$G7dbsy=Ew{yy>ML3Hx9IfNDJNstr|(C*U3a6fz_q|0bNXE_vJ@1lzR0>{nc=Qs>v ziuHcn(Pqzat(2M9QtRg1oH??27K4`7hOqn3n89F$gT|uB{!r<8PV9>?^)1K1xDiNf zz2!4oD_{94jtf_A+r&{UgM1IwCe)n^`Eg~+7eIOHI~V`yXV?}ApA*xpY`!lV1K(GT zzi&zl*@*tEG!-b+!jM#nr3k9ez3Vj6NqaWXHbZaxsbflAsqK5A6nZa=rf)h*CcNja zL6v9sCeO=y)Yl6;kbLr0a7&zr#gmdKVO=IHF8(nR$^6Ohjrj>JJ<-+mTyin7S8%dB z&DQFfZ)`AYa|=$v3$Ekvr^ieqhQ#E1_IcKw&CMEps;=J`|C1a0h^XHlhA zWe44d9x%a<8=sY2zh}V;TkMv`X9=c+^Sa8+ftq!wV7N3zT|I7bOK5#v1?u`{cdYzR z-Zn$b^EL_2iaJuiTI@dAl0j3<7YFn=#Q4>=`2vhQ4>u16jdGISiZVtGF#sZ6SJ-C- z`^2~;_Hw6mdC-XrqryjSz8Bgqt;NrxnI{~i++olr*NdB{d4yj|Uyg}4vF#KM8)iLE zxfI$u6WB6Xok>+l@-jJ>^$s%Mbuht$Y$%udE^H_QOzB0{NaBJ37dKB~k>hh^ zUfC;$Dw97Zw3hptLFpb*D1)}62xpDIFD03 z2gUQdpT_DT;k=QZ-tiBg04Q~g8tY2if_7r`7Z1aYDZ;>SDIY#xxXsKZBF8t$udZ~h zmAzkcSQZcMVQ>xYc^USGBo7zsk)?-xWe?d8r%LkFqc}m{b?%}p9&_TC)7D97^i>a; zxqf-0hbi_O)ehnqN)#uA8sHZv?4E1mbbnkAoU~o>q;3#@DU?Q_jOhLb= zj;*`q--X{Ko(}l4%{q$XEACSf+m>LvUc?2z+yj>K6Q!@wA3<&lyYqr+Bjx+s)OW)! z8shtm3rU1*9_b|_kTr98*`!QFKQ&5Py9flMU$Y&KQUSW4S;+WAXOlHl+L4ICZ(&(? zvI(dDpd9niQqpP>2oLfy+3*iXGf8M0id?^YozeT!*g9!fnahg7ZJqS#<5;yzBaLKG zv;BJBxM7Kep~r-s^mxYc?vv6=OV9>4{geeR3*O5dBc03>e`x}T@X--9nUIGtNyQf& z+j(h+2qFGxo%l-qTTxSkA+0QB$ukD_itF|;3!9TRU! z--72H{4{gFWL(Q7-a599E1XzoZQOJ{y75bnkenqo5jt;l*PY|YfjD$pKyM+n&|C|% z)+$bPuc|Hjxr{Qd1Ri9Oj8=#D(Dz}3g`ozy{J6<6`wUk3r3s~!ly1j98%pz{Rktqe z2g(L*MsVmcN=6}?Q>j%CT|Q}yr$AXuo5eP?WcC{x*%beD=v$z*vP$del2n?MUVs^s z1E+Nws)O3wPbG5zUF~WL#UYk&v~UXJ+b~Gh$`^?cK#td4lkqIWpmmA*Qpr1k^AMfj zp2>%;NvHU-k!PuCJQkDBCji{e-8;Qv=zPL`(~|NgTpH zsjoiQ95o9lyxI_P*Ydz%M85^e!&7=pqPyQ8c%Ilpk+PzL!+eDd2y(% z^M&MNVi6H!shCJR${9PR3wRD6q`=a`G5J*RVnH@tZlY`i)*)DMASD7^FS`zHy~A8| z6UwljlG4&ewcZl?JX3Al*IsxyN9oVbR+JpOY9hS5(wYlx0wCuX{vD_ zecpI~L;k?!rpH%WW=D4v@uk!b^TX~B>yV{0B6_XWFwD$~%>ZQ|++171mut;VGv61s z*gNHobH&}2AG?+p+WY?@93Q<2FvC@6;FFpI+`H9n3pxX zQj@wrFj>Qkud2p$8b1z6D-UJ}J`Jtx?*%UF&#ez%4r%YoIS51Wr2!XUND+{Rg~AmXC>HjZZGJO$ zFfmAsA^F_a=Eq_8hrP}`8s8i^bH#M;p$x$)U4Uh_E)(0?RPBSglMpqd0@*YXP0iWF z$gQg`mg?Ht+StRvgA2-lw9Yf}U$OhPCMG6|;G^BsZit$xxw$!ppU9gf5-dL|+(p!@ zg?@KTKM^Cq)KsZ~u)`0VbYyWcq9XvGQUU;=Y+CYMXftL8Ox2Z@oDWG!DJ9g^lPZgI zr1yaX8TjFH$5fLum#02K7AJ;@r6nYv%3`63JOH1z8-CEt=O97h$9tEPzjAq_yWqdb z3b(zzHNEfP^?;oYF9Xgg^n0^{cf?pro<9g=eF4k6B;B`V-c`MA*b$~E>;mOsof@ne zTme?cSy7#mCjjq)Ow{_#YibvIuTHT1QRTS-82m-z=?YVFA zv(wJL1eN<9)xCm}{jDj#?1wuRb_xmeo}wn|`&1$>TMVWOl+A~>7zNo_vI}mnZ`F4L z!3UvW@ZuUS`L09l`UUUov8!4K9+5jN{7eTNk_ zTc~0xnVQQfdH@0*kghuLBsCb!OSsWHrq!jabfi%3rbK>c@8~G1jMhNXf{8Ga{V(G# zs`jEn?-+yS(5x;#14-dNASym&e7(^H__hwiugs zWSF72|D%J0APMbyA0%#BS5uR6W@bhU5laXxWwI?l&>DNgOBpIz7^~(qrukqpcV7o- zeRF>P(^B=S?zm!h&sFx-%gu|+O|8n8?;pylqgYtImjNzgjWu%KCzQS$d=qLMlqQ*` z==-9b-OT!oa-kGsIhK2gPM+&7DW5yozPB^kN|w+xlh1&G5N57~-WbZT!o0jHDI$Xr z^LLHhTrsKHtw8RP)M!Ztv)S=)Y(ZjljBe5lwCVvK>8 zWeTP59`I6vSQ9zu4Is)B?czeSJoaB=njXw`v5)U|C;t&fdLeBL^J5h{Q$2Nqdeo$+ ztqDXG=7Z0!Zda|X`SPw{+R%XMrOFNvY7nvt4PMP?HA~{!HbhH(3|>~QKuHKHK3i-W z8pPs#t=wLugU&`gkwWMcmqKFYUFfUSjHmUq7(#ythOjK5Dqt44P}fN-m)&pJTd1~S zW)sPty|PLw)VLqqnJe`q7Gq4^wqN2@sJTm-tXD^33N(2>vD0RdZ32f>*fs#j;eke+ zUkrYf$7;)`X%m^^OqjOj)vjxur6lC3w$=Cd5`6F7hOnO~9{$qDSkp&LJ2N{eH=m~r z{GN_sS=wDdI@91IN9I$9Zy3lbw;B9LVw;W3rdd4c5yPhq-%znoZX+aI=a*A!ixWIa z^C6hpxEad|`f z*c5O-tB`COGA2?gtF-lwy)A*24V&DmD7OLbLNCr`nlY|Rk)b8S83PFL{1fnE-!#k0c>x zw`YdAq`c=%;qf6v^?bnArFNMTr0MuN?9Qz5Q3&IrvRH!ax-1Y$ zPd(toszzj4yyeO~PPd!wMfXM9)d~c8gageuvavUQ34p!#S1Pm$t=>9gF}9}5gH{Cd zHG+WwFz}n0P3dN<@UO^NEK7lb<=R7x@3Q7os*@#PJB!bnnVj3ZrX4>*#@Xdka@MYY z^e@M5FR ztB5Z0bhL0?wK?v^8u)oIcwvAC(w$w`6j~bzf4*J5xdUIbEg_-?IVh5@FWsrQR5ZcAAv9tWnmCUOOrc1 z=68quEsUS~k61sWK4{&3l$3I%bHmoD=iG?QP-9f$&LmB(8~1V4g|1CqYO3U)ot{3! z_7c0~albz02)Jzm53}oJAxh*sz?ib$$ken0(auT-8NMIR?uqmK@?x`sa1hbT! zY}odCfX-0T6uDgHpq8Vge)w5VEo<9Q8GX_S(BDBTg z;wGF=_z2~3PtS7@&0lS32W`5CcuawZh73FP!By|``O7JBWp(v5NCt71maQqw{KLpm z#_o@Jp?ef<53{?}qkk)PYFMdm4sIfQK-)owU6JM=xSh8PCQe6x%k^K+{ z5h(x0!;c^dv410%0EPEIBsxDbMA7*-m^(q?{}D(&d0_PyA3(gYI6Ue9BT)=QqWX^_ zO5}gdLzy?K)z0Ngp!s(js>Msyy-P2X%-T#L;kY;GqOPvqS05k$==rOeeaRbG^LZ%^ z27nsc6D5iI?QE9Hcs67YrS0(Wg^(6(I!dT?u2F^k*)vJL%~Qe5B2y`Ngk9@m#Kp(v zx>?=e_s{)_?JHiL*D%dQbbTbCoj0Nd1qUOpl9hcUTJIghJr3Z*8TURyFJJm*Wjz5| z-O>>J(Mr1n6U_<^hZ`9idr`HYU0eX4YR%^Gs!-0T&1xnk}(qj;r zr3X4Xdf29r(-+z46yYClo<9;*QzHd~!B+coe6g{yyrV6Tb)cZY#}@kfV)j-3QBj0} zAU2|)&@JL9tX5$Eb@QAWMr-RsadC0s=j6gj!j5oy7c~Jd%~~q?b2t;M6#|Tg)wJw< zfsBUPdrgN|TRv@vJifaAJlVW80JM!mvvW$@jWm7#ZI%vC7N~rq3JI62%~+UpGZmw4 ztyV)rBeX|Wr6uUgX4fIf?t4yj(9+4(;l(D~@<9lF-|WHG*6YUvo{I+(Dk>zP%;I7! zgt@=IANZB=){&-g64)F_`Xt~$58Bz=6SubJ@caRKL4dI|gmTtEjKm-#c;B*)1TVmD zc>qczj6eZ3tYFgnYG^7VgQn^b0L@`|`+3D{+Z(xoL?qu1r))PQLr~u=X?$~&)IIBi zA0*^${=r=!PsE|U+^PNRz2{ai6NmvgzjhO9vMxedZxI2WyE?}#9F9A9+!O!ap(rNf zBlm+%JFlo3$6p|;weGHG{I};5R<@WP;YPVSgg9^W1G|S^Y+aXJ|5hiaKL4#up1i{ zdCF?#Igrkll7CC1+yqk*C;oO^(JrDqo;D;7Xe^rY;ckc?%~!=@L0fXgdt+8$@TCQwn+|!z!8eIr!&Tv17O8tH;q$MVWuYb8}R!6kJ#1SgLA9JGMkDv1$9aa3Ta^(?FfiPinb@jvF zv)o|?gczuy9)%{h*)$DDPc`>_v?sHIqB_{WZcMRg1HOqCe2x1udvWDZis7zRYeWR- zP4}mmkwa`RABDXMJH(Z|lSbG<_$37zXm%E&si_mh)JIxJ(Sp>*s)=V*VFxD^KIVoh zw17IKqV=FU?RGIa2Wl!AeMx zBvrEmi?YCoJB*Iacd9fk+RYdUP*G`_mbQiY`M5psl%L7F50N8oO_tgd+qU9a(W`ZF zwd89bC1KoW|0rBHL}A+2nLsc?{6UCZj8IeIX!4y22!uN!CH7i*(qks>P^QkHAE~Sy zUQH-O^e4?YtIHzIE#U5)8iWVn6##ogBm>@6OO zMD2_G^9XlsjDU_>m8_uiuGleuprF=tt7TYjyt$ZLphlY#;lv{&k(FTHBRFYDSEfx_ zy_x$?y{^&M_c$ObOq!rS738UjNXiS09f#csp;T=6Wa}OG_V%{?__(iqn*4eGF0gkC zoe8kbT68-ZEUc*LfwjWT^Y+yF6fTONI#7`ydx5-nV0=F#@M%iNfKCdtm9I+X{Xh4n zO7@)h)SC+m(5nmwMJz2VM!A}mE$73V%L71bEtcujqb*x3iZ**zys0W} z@Ul&hEO+eQ8jAk@esg1fnur2vKI(|~q_U-$pJ9l7Eo^WoucHM27+1O+sd@z(7ob1} zp;|)Q7cuiA+XFIy=Icf)n_J==-a93!Wk8quo|b`@NyvV`nXJCzaHr-KNTA{Q)g^GS zd2z3-czHOz)_UI`4Mk{h^7+;lYYC)>xFmCqfR;nJxj*Ege3g|RwemmL$X;qckHZ7fjc;j)JIDflaUz)^xXqyO8ju!Y1m!HACaqxlW;yCLln)X_*Uo2}#L|eE5 zWvckx46S6uHx_-%oA*XvV&$@;$0*959;~z}8b|Fq-^*BnBk0wJn* zIcw#rh`Po!CT`juUM=sVjtm9aMQkQ-Av*R%qrzOeP!lJU#?kEtEgW22_40^K|Mmcr zu=`Z0wZo7q?a3r80s9JvNwO^Y7Xkf1F6ukBfVb%mHOH*gjZX{O#@J?leSea0?;qvE z2oq&wAFEJpLE`2^ORp`8x^r{In?%efh%(9%ceFCW5ZH}K^bgw$__QRk;^*+&F9pCg;S;(K_eC;6uFj=lWRbxsDTJk~P0XRL%SrIMI z5B;?~Q0TFbHd5ryYekx)(PpdY38`QL<-%C5vbL=#?sPQ8RgIMuf-(ST_DZgnEvkONm;_lUs20j8<8RaWC;y6x{V%&l#Crd4O(WQ@5#>MbF=+?OjdT0R^?@Y+`WXZS z_Z?twX;UPyKG$RMYN-u%u4fVWg6gbuiPhx zvvmCZ+scP#lVx09r;R2H4_RMA^x;$(j*$&x08QMeh}VAom2=WmO{1wjpMrukmvE_!Nw)+bDEzAEhjwvo8Zl1(RZeem9+*+&bNPa z?lXYHv!9sGt>|U*7HOw*J?Eh8#z@CpEpG*~vONip7XNw7KKE^_&xkRYP^^3X0wJUS1ZaLWiB;E9n@6pNBp% zW9^zb;8^2#R(IUcT*|)906oL>7W>68!vo+35|myII5&-vRdSOyy z_b8u;_@55zV+4b6rvsm*#6Dpac%i94G4v+p>sp;ph(3l+eMT` za$@9Zg&=)AT~0Lo;}h1hy;?Pqpb?2u$O8t^9_cYo6;oq#$o0tRjK!&p3Zts~na!S) zX(OB570CcnruGFi<%T7qvG}leJH4Fd`N)V9QV){g{N|LoF|dlZ$D0}QHC~thugw)+ zA>2y%B&n*K(*39#@pG7WAHiEZiZ#$cvAZ*P?W-O}NlC)&D7rINz82aubX(cz5~TI5 zK!;WfE<#Y!Z~he? zU{Qncs9&LiE_c3FOlcr7wARClJvfP%<;!1tQn>`xu19R}Al0M@Q(^mmK}3?KMl+TD zw>67In-tj!q^B1pEiU!`-PleA9I?BTnGHhkWvU+X=Oh>SY|v@fF{8U5J5gS|Mw+-d z)nGMm%48MyS`V+**X99q8O_PtpxV=Ps_d*OO=6;oZaOKQt}wmEe?6 z*Ej5Lg$^RX2dib#ng%!O#v9(GK-btEK_*0cIc^wMV|CoUpkkWsQxQ6gn~Sq19S4|O zN>SR1RZ23O&t{p`=2uAU!+OEhW)QJ2uIQs?JfB`vpcpznR+@BDhBf57S*A|8E6#;T zS8!?To`kts4(_yI%I;kz$z8n6xPJTF3bA3sY5?ox=b_Y~yE_kQsGaiGK|^*~=N-NC z5x+e`ESK5~zs5{ibMk^riZR*6>oWSZtO2pExTc-_B;rO67xNwo{z<{cc%J!kJ4G2h z_pBv1d{-D3A}|>FIE!)Zm7b z8`y?)MmF@nC?ZmJ%$=>jy4PQWC*PI=cB?{hlWz1jAx@tX>aH*MTw5X#20+}js^K%u zCh$$SJpXzhxFI&H3jfl8FY5nQrg1f{Wja}b72oyZ}>o8HA z1ExY>6ND^<6nV)i7le_v1@=9I@N!ctnprKWY}6p{Dc2l6__WPhviPsBsO$l;$py}n zjQK%}3(yR!8tHw=4-ggChjq+$P}f!mkM?gt3v3ETqS6Lpq>&!i%c=P3oFtuS-Gu#J z#K@bhZ9U3P#Yz^9-U22!P52}=P01z#O_b`>-{PB%Il6MQ;Mj<77q(3iv3-0hQs6@f zn~{T+6i|ko6qs^Nrb#q^XQ}9Afq!S9y_WnF^!tZ`ZV9v6k4gXMzDrR!6lrd}oB6-2 f@PF%T?rAx&&fus)q0WeZy#z^#%ZinY=z0HtJqDVe From 555ef7619781c557a79c1fa053f7104172ee49b7 Mon Sep 17 00:00:00 2001 From: Killian Date: Tue, 29 Oct 2024 01:09:42 +0000 Subject: [PATCH 008/109] Update drgnplateu.dmm --- maps/submaps/surface_submaps/wilderness/drgnplateu.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maps/submaps/surface_submaps/wilderness/drgnplateu.dmm b/maps/submaps/surface_submaps/wilderness/drgnplateu.dmm index 2f202bffda..7043f0230e 100644 --- a/maps/submaps/surface_submaps/wilderness/drgnplateu.dmm +++ b/maps/submaps/surface_submaps/wilderness/drgnplateu.dmm @@ -41,7 +41,7 @@ /obj/structure/flora/grass/green{ pixel_x = -8 }, -/obj/item/clothing/gloves/ring/material/gold, +/obj/item/clothing/accessory/ring/material/gold, /obj/item/clothing/ears/earring/stud/gold, /obj/item/gun/projectile/deagle/gold{ pixel_x = -11; From f865da7a6f5d216334abbfb3bc56bb17c0a45bd3 Mon Sep 17 00:00:00 2001 From: Killian Date: Tue, 29 Oct 2024 01:35:28 +0000 Subject: [PATCH 009/109] Update rings.dm --- code/modules/clothing/accessories/rings.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/clothing/accessories/rings.dm b/code/modules/clothing/accessories/rings.dm index 855cce0212..e7eb623f4c 100644 --- a/code/modules/clothing/accessories/rings.dm +++ b/code/modules/clothing/accessories/rings.dm @@ -45,8 +45,8 @@ flags = OPENCONTAINER origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 4) -/obj/item/clothing/accessory/ring/reagent/New() - ..() +/obj/item/clothing/accessory/ring/reagent/Initialize() + . = ..() create_reagents(15) /obj/item/clothing/accessory/ring/reagent/equipped(var/mob/living/carbon/human/H) @@ -68,8 +68,8 @@ icon_state = "material" origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 5) -/obj/item/clothing/accessory/ring/reagent/sleepy/New() - ..() +/obj/item/clothing/accessory/ring/reagent/sleepy/Initialize() + . = ..() reagents.add_reagent("chloralhydrate", 15) // Less than a sleepy-pen, but still enough to knock someone out ///////////////////////////////////////// From 878bab8abb23443b3b2d13f5c617b6c37e1c59a1 Mon Sep 17 00:00:00 2001 From: Killian Date: Fri, 1 Nov 2024 07:06:17 +0000 Subject: [PATCH 010/109] climbing/swimming trait tweak --- .../mob/living/carbon/human/species/species.dm | 3 +++ .../human/species/station/traits_vr/negative.dm | 4 ++-- .../human/species/station/traits_vr/positive.dm | 12 ++++++------ code/modules/multiz/ladders.dm | 7 ++++++- code/modules/multiz/movement.dm | 15 +++++++++++---- 5 files changed, 28 insertions(+), 13 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 72b4396d61..863e6cd0a9 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -212,6 +212,9 @@ var/can_space_freemove = FALSE // Can we freely move in space? var/can_zero_g_move = FALSE // What about just in zero-g non-space? + var/swim_mult = 1 //multiplier to our z-movement rate for swimming + var/climb_mult = 1 //multiplier to our z-movement rate for lattices/catwalks + var/item_slowdown_mod = 1 // How affected by item slowdown the species is. var/primitive_form // Lesser form, if any (ie. monkey for humans) var/greater_form // Greater form, if any, ie. human for monkeys. diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm index 84fba1d1cb..27dfcf6307 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm @@ -188,7 +188,7 @@ /datum/trait/negative/bad_swimmer name = "Bad Swimmer" - desc = "You can't swim very well, all water slows you down a lot and you drown in deep water." + desc = "You can't swim very well, all water slows you down a lot and you drown in deep water. You also swim up and down 25% slower." cost = -1 custom_only = FALSE - var_changes = list("bad_swimmer" = 1, "water_movement" = 4) + var_changes = list("bad_swimmer" = 1, "water_movement" = 4, "swim_mult" = 1.25) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index 7551915c9d..7457f9d687 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -246,7 +246,7 @@ /datum/trait/positive/wall_climber name = "Climber, Amateur" - desc = "You can climb certain walls without tools! This is likely a personal skill you developed." + desc = "You can climb certain walls without tools! This is likely a personal skill you developed. You can also climb lattices and ladders a little bit faster than everyone else." tutorial = "You must approach a wall and right click it and select the \ 'climb wall' verb to climb it. You suffer from a movement delay of 1.5 with this trait.\n \ Your total climb time is expected to be 17.5 seconds. Tools may reduce this. \n\n \ @@ -255,12 +255,12 @@ cost = 1 custom_only = FALSE banned_species = list(SPECIES_TAJ, SPECIES_VASILISSAN) // They got unique climbing delay. - var_changes = list("can_climb" = TRUE) + var_changes = list("can_climb" = TRUE, "climb_mult" = 0.9) excludes = list(/datum/trait/positive/wall_climber_pro, /datum/trait/positive/wall_climber_natural) /datum/trait/positive/wall_climber_natural name = "Climber, Natural" - desc = "You can climb certain walls without tools! This is likely due to the unique anatomy of your species. CUSTOM AND XENOCHIM ONLY" + desc = "You can climb certain walls without tools! This is likely due to the unique anatomy of your species. You can climb lattices and ladders slightly faster than everyone else. CUSTOM AND XENOCHIM ONLY" tutorial = "You must approach a wall and right click it and select the \ 'climb wall' verb to climb it. You suffer from a movement delay of 1.5 with this trait.\n \ Your total climb time is expected to be 17.5 seconds. Tools may reduce this. \n\n \ @@ -268,13 +268,13 @@ a climbable wall. To climbe like so, use the verb 'Climb Down Wall' in IC tab!" cost = 0 custom_only = FALSE - var_changes = list("can_climb" = TRUE) + var_changes = list("can_climb" = TRUE, "climb_mult" = 0.8) allowed_species = list(SPECIES_XENOCHIMERA, SPECIES_CUSTOM) //So that we avoid needless bloat for xenochim excludes = list(/datum/trait/positive/wall_climber_pro, /datum/trait/positive/wall_climber) /datum/trait/positive/wall_climber_pro name = "Climber, Professional" - desc = "You can climb certain walls without tools! You are a professional rock climber at this, letting you climb almost twice as fast!" + desc = "You can climb certain walls without tools! You are a professional rock climber at this, letting you climb almost twice as fast! You can also climb lattices and ladders a fair bit faster than everyone else!" tutorial = "You must approach a wall and right click it and select the \ 'climb wall' verb to climb it. Your movement delay is just 1.25 with this trait.\n \ Your climb time is expected to be 9 seconds. Tools may reduce this. \n\n \ @@ -282,7 +282,7 @@ a climbable wall. To climbe like so, use the verb 'Climb Down Wall' in IC tab!" cost = 2 custom_only = FALSE - var_changes = list("climbing_delay" = 1.25) + var_changes = list("climbing_delay" = 1.25, "climb_mult" = 0.6) varchange_type = TRAIT_VARCHANGE_LESS_BETTER excludes = list(/datum/trait/positive/wall_climber,/datum/trait/positive/wall_climber_natural) diff --git a/code/modules/multiz/ladders.dm b/code/modules/multiz/ladders.dm index db56742c03..7822a87d80 100644 --- a/code/modules/multiz/ladders.dm +++ b/code/modules/multiz/ladders.dm @@ -107,7 +107,12 @@ target_ladder.audible_message(span_notice("You hear something coming [direction] \the [src]"), runemessage = "clank clank") - if(do_after(M, climb_time, src)) + var/climb_modifier = 1 + if(istype(M, /mob/living/carbon/human)) + var/mob/living/carbon/human/MS = M + climb_modifier = MS.species.climb_mult + + if(do_after(M, (climb_time * climb_modifier), src)) var/turf/T = get_turf(target_ladder) for(var/atom/A in T) if(!A.CanPass(M, M.loc, 1.5, 0)) diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm index 66fe8d90ef..c43a57a17a 100644 --- a/code/modules/multiz/movement.dm +++ b/code/modules/multiz/movement.dm @@ -19,6 +19,13 @@ var/obj/mecha/mech = loc return mech.relaymove(src,direction) + var/swim_modifier = 1 + var/climb_modifier = 1 + if(istype(src,/mob/living/carbon/human)) + var/mob/living/carbon/human/MS = src + swim_modifier = MS.species.swim_mult + climb_modifier = MS.species.climb_mult + if(!can_ztravel()) to_chat(src, span_warning("You lack means of travel in that direction.")) return @@ -49,7 +56,7 @@ if(direction == DOWN) var/turf/simulated/floor/water/deep/ocean/diving/sink = start if(istype(sink) && !destination.density) - var/pull_up_time = max(3 SECONDS + (src.movement_delay() * 10), 1) + var/pull_up_time = max((3 SECONDS + (src.movement_delay() * 10) * swim_modifier), 1) to_chat(src, span_notice("You start diving underwater...")) src.audible_message(span_notice("[src] begins to dive under the water."), runemessage = "splish splosh") if(do_after(src, pull_up_time)) @@ -75,7 +82,7 @@ var/turf/simulated/floor/water/deep/ocean/diving/surface = destination if(lattice) - var/pull_up_time = max(5 SECONDS + (src.movement_delay() * 10), 1) + var/pull_up_time = max((5 SECONDS + (src.movement_delay() * 10) * climb_modifier), 1) to_chat(src, span_notice("You grab \the [lattice] and start pulling yourself upward...")) src.audible_message(span_notice("[src] begins climbing up \the [lattice]."), runemessage = "clank clang") if(do_after(src, pull_up_time)) @@ -85,7 +92,7 @@ return 0 else if(istype(surface)) - var/pull_up_time = max(5 SECONDS + (src.movement_delay() * 10), 1) + var/pull_up_time = max((5 SECONDS + (src.movement_delay() * 10) * swim_modifier), 1) to_chat(src, span_notice("You start swimming upwards...")) src.audible_message(span_notice("[src] begins to swim towards the surface."), runemessage = "splish splosh") if(do_after(src, pull_up_time)) @@ -95,7 +102,7 @@ return 0 else if(catwalk?.hatch_open) - var/pull_up_time = max(5 SECONDS + (src.movement_delay() * 10), 1) + var/pull_up_time = max((5 SECONDS + (src.movement_delay() * 10) * climb_modifier), 1) to_chat(src, span_notice("You grab the edge of \the [catwalk] and start pulling yourself upward...")) var/old_dest = destination destination = get_step(destination, dir) // mob's dir From 1c730349403b47f4af5bcd1d1f44b3d9bc24ca78 Mon Sep 17 00:00:00 2001 From: Killian Date: Fri, 1 Nov 2024 07:38:52 +0000 Subject: [PATCH 011/109] pro swimmer trait --- .../carbon/human/species/station/traits_vr/negative.dm | 2 ++ .../carbon/human/species/station/traits_vr/positive.dm | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm index 27dfcf6307..ffd9f10b88 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm @@ -192,3 +192,5 @@ cost = -1 custom_only = FALSE var_changes = list("bad_swimmer" = 1, "water_movement" = 4, "swim_mult" = 1.25) + varchange_type = TRAIT_VARCHANGE_LESS_BETTER + excludes = list(/datum/trait/positive/good_swimmer) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index 7457f9d687..4dc4a6f47c 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -292,3 +292,13 @@ /datum/trait/positive/wall_climber_pro/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..() S.can_climb = TRUE + +/datum/trait/positive/good_swimmer + name = "Pro Swimmer" + desc = "You were top of your group in swimming class! This is of questionable usefulness on most planets, but hey, maybe you'll get to visit a nice beach world someday?" + tutorial = "You move faster in water, and can move up and down z-levels faster than other swimmers!" + cost = 1 + custom_only = FALSE + var_changes = list("water_movement" = -0.5, "swim_mult" = 0.5) + varchange_type = TRAIT_VARCHANGE_LESS_BETTER + excludes = list(/datum/trait/negative/bad_swimmer) From 7fd0fba5559e169b523ca2445c00bae34622097c Mon Sep 17 00:00:00 2001 From: Killian Date: Fri, 1 Nov 2024 07:47:51 +0000 Subject: [PATCH 012/109] Update positive.dm --- .../living/carbon/human/species/station/traits_vr/positive.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index 4dc4a6f47c..c002ee0a88 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -299,6 +299,6 @@ tutorial = "You move faster in water, and can move up and down z-levels faster than other swimmers!" cost = 1 custom_only = FALSE - var_changes = list("water_movement" = -0.5, "swim_mult" = 0.5) + var_changes = list("water_movement" = -2, "swim_mult" = 0.5) varchange_type = TRAIT_VARCHANGE_LESS_BETTER excludes = list(/datum/trait/negative/bad_swimmer) From f214bde20c24a1cb96403463979582d0dbded5a3 Mon Sep 17 00:00:00 2001 From: Killian Date: Fri, 1 Nov 2024 07:52:41 +0000 Subject: [PATCH 013/109] Update station_vr.dm --- .../mob/living/carbon/human/species/station/station_vr.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/carbon/human/species/station/station_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_vr.dm index e623591f57..6532e7c749 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_vr.dm @@ -110,6 +110,7 @@ water_breather = TRUE water_movement = -4 //Negates shallow. Halves deep. + swim_mult = 0.5 flesh_color = "#AFA59E" base_color = "#777777" From 6507d7d2318859f042b6e09d969246f313bc2617 Mon Sep 17 00:00:00 2001 From: Killian Date: Fri, 1 Nov 2024 07:54:34 +0000 Subject: [PATCH 014/109] Update positive.dm --- .../living/carbon/human/species/station/traits_vr/positive.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index c002ee0a88..b53ef1d778 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -302,3 +302,4 @@ var_changes = list("water_movement" = -2, "swim_mult" = 0.5) varchange_type = TRAIT_VARCHANGE_LESS_BETTER excludes = list(/datum/trait/negative/bad_swimmer) + banned_species = list(SPECIES_AKULA) // They already swim better than this From a0a2bb27ea8113e8d6ba5ac1d415d3dc0a846e9f Mon Sep 17 00:00:00 2001 From: Killian Date: Mon, 4 Nov 2024 02:34:23 +0000 Subject: [PATCH 015/109] speed tweaks --- .../mob/living/carbon/human/species/station/station.dm | 2 ++ .../carbon/human/species/station/station_special_vr.dm | 2 ++ .../carbon/human/species/station/traits_vr/positive.dm | 9 +++------ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index c2d52b273b..cce23f9361 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -242,6 +242,8 @@ reagent_tag = IS_TAJARA allergens = ALLERGEN_STIMULANT + climb_mult = 0.75 + move_trail = /obj/effect/decal/cleanable/blood/tracks/paw heat_discomfort_level = 292 diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm index e2a346158a..997aac129f 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm @@ -384,6 +384,8 @@ silk_reserve = 500 silk_max_reserve = 1000 + climb_mult = 0.75 + /datum/species/spider/handle_environment_special(var/mob/living/carbon/human/H) if(H.stat == DEAD) // If they're dead they won't need anything. return diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index b53ef1d778..2647603e8f 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -241,9 +241,6 @@ cost = 1 var_changes = list("throwforce_absorb_threshold" = 10) - - - /datum/trait/positive/wall_climber name = "Climber, Amateur" desc = "You can climb certain walls without tools! This is likely a personal skill you developed. You can also climb lattices and ladders a little bit faster than everyone else." @@ -255,7 +252,7 @@ cost = 1 custom_only = FALSE banned_species = list(SPECIES_TAJ, SPECIES_VASILISSAN) // They got unique climbing delay. - var_changes = list("can_climb" = TRUE, "climb_mult" = 0.9) + var_changes = list("can_climb" = TRUE, "climb_mult" = 0.75) excludes = list(/datum/trait/positive/wall_climber_pro, /datum/trait/positive/wall_climber_natural) /datum/trait/positive/wall_climber_natural @@ -268,7 +265,7 @@ a climbable wall. To climbe like so, use the verb 'Climb Down Wall' in IC tab!" cost = 0 custom_only = FALSE - var_changes = list("can_climb" = TRUE, "climb_mult" = 0.8) + var_changes = list("can_climb" = TRUE, "climb_mult" = 0.75) allowed_species = list(SPECIES_XENOCHIMERA, SPECIES_CUSTOM) //So that we avoid needless bloat for xenochim excludes = list(/datum/trait/positive/wall_climber_pro, /datum/trait/positive/wall_climber) @@ -282,7 +279,7 @@ a climbable wall. To climbe like so, use the verb 'Climb Down Wall' in IC tab!" cost = 2 custom_only = FALSE - var_changes = list("climbing_delay" = 1.25, "climb_mult" = 0.6) + var_changes = list("climbing_delay" = 1.25, "climb_mult" = 0.5) varchange_type = TRAIT_VARCHANGE_LESS_BETTER excludes = list(/datum/trait/positive/wall_climber,/datum/trait/positive/wall_climber_natural) From c35bb9830a665671f61caf5141e2da260dbb61b3 Mon Sep 17 00:00:00 2001 From: Killian Date: Tue, 5 Nov 2024 11:42:27 +0000 Subject: [PATCH 016/109] headset refactor and selection --- code/_helpers/global_lists.dm | 5 +- code/datums/outfits/jobs/cargo.dm | 15 +- code/datums/outfits/jobs/civilian.dm | 15 +- code/datums/outfits/jobs/command.dm | 16 +- code/datums/outfits/jobs/engineering.dm | 11 +- code/datums/outfits/jobs/job.dm | 5 +- code/datums/outfits/jobs/medical.dm | 11 +- code/datums/outfits/jobs/science.dm | 11 +- code/datums/outfits/jobs/security.dm | 11 +- code/datums/outfits/outfit.dm | 10 +- code/datums/outfits/outfit_vr.dm | 20 +- code/datums/supplypacks/medical.dm | 2 +- code/datums/supplypacks/security.dm | 2 +- code/datums/supplypacks/supply.dm | 4 +- .../objects/items/devices/radio/headset.dm | 681 +++++++++++------- .../objects/items/devices/radio/headset_vr.dm | 131 ---- code/game/objects/random/mapping.dm | 4 +- .../crates_lockers/closets/job_closets.dm | 12 +- .../crates_lockers/closets/misc_vr.dm | 8 +- .../crates_lockers/closets/secure/cargo.dm | 12 +- .../closets/secure/engineering.dm | 9 +- .../closets/secure/hydroponics.dm | 4 +- .../crates_lockers/closets/secure/medical.dm | 10 +- .../closets/secure/scientist.dm | 3 +- .../crates_lockers/closets/secure/security.dm | 18 +- .../closets/secure/security_vr.dm | 15 +- .../crates_lockers/closets/wardrobe.dm | 2 +- .../crates_lockers/closets/wardrobe_vr.dm | 9 +- code/modules/awaymissions/corpse.dm | 2 +- .../preference_setup/general/04_equipment.dm | 14 + code/modules/client/preferences.dm | 1 + code/modules/economy/vending_machines.dm | 2 +- code/modules/economy/vending_machines_vr.dm | 2 +- .../human/ai_controlled/ai_controlled.dm | 2 +- .../mob/living/carbon/human/human_defines.dm | 1 + .../mob/new_player/preferences_setup.dm | 1 + icons/inventory/ears/mob.dmi | Bin 19096 -> 19037 bytes icons/inventory/ears/mob_teshari.dmi | Bin 2642 -> 2750 bytes icons/obj/radio_vr.dmi | Bin 24928 -> 25687 bytes maps/cynosure/cynosure-6.dmm | 8 +- maps/submaps/admin_use_vr/kk_mercship.dmm | 8 +- maps/submaps/depreciated_vr/mercbase.dmm | 8 +- vorestation.dme | 1 - 43 files changed, 642 insertions(+), 464 deletions(-) delete mode 100644 code/game/objects/items/devices/radio/headset_vr.dm diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index 72bed469c9..fdfb15d02e 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -52,8 +52,9 @@ GLOBAL_LIST_INIT(custom_species_bases, new) // Species that can be used for a Cu //Underwear var/datum/category_collection/underwear/global_underwear = new() - //Backpacks -var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt", "Messenger Bag", "Sports Bag", "Strapless Satchel") //VOREStation edit + //Customizables +var/global/list/headsetlist = list("Standard","Bowman","Earbud") +var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt", "Messenger Bag", "Sports Bag", "Strapless Satchel") var/global/list/pdachoicelist = list("Default", "Slim", "Old", "Rugged", "Holographic", "Wrist-Bound","Slider", "Vintage") var/global/list/exclude_jobs = list(/datum/job/ai,/datum/job/cyborg) diff --git a/code/datums/outfits/jobs/cargo.dm b/code/datums/outfits/jobs/cargo.dm index 30955983df..bed1308f39 100644 --- a/code/datums/outfits/jobs/cargo.dm +++ b/code/datums/outfits/jobs/cargo.dm @@ -1,17 +1,23 @@ /decl/hierarchy/outfit/job/cargo - l_ear = /obj/item/radio/headset/headset_cargo hierarchy_type = /decl/hierarchy/outfit/job/cargo + headset = /obj/item/radio/headset/cargo + headset_alt = /obj/item/radio/headset/alt/cargo + headset_earbud = /obj/item/radio/headset/earbud/cargo + /decl/hierarchy/outfit/job/cargo/qm name = OUTFIT_JOB_NAME("Cargo") uniform = /obj/item/clothing/under/rank/cargo - l_ear = /obj/item/radio/headset/headset_qm //VOREStation Add shoes = /obj/item/clothing/shoes/brown glasses = /obj/item/clothing/glasses/sunglasses l_hand = /obj/item/clipboard id_type = /obj/item/card/id/cargo/head pda_type = /obj/item/pda/quartermaster + headset = /obj/item/radio/headset/qm + headset_alt = /obj/item/radio/headset/alt/qm + headset_earbud = /obj/item/radio/headset/earbud/qm + /decl/hierarchy/outfit/job/cargo/cargo_tech name = OUTFIT_JOB_NAME("Cargo technician") uniform = /obj/item/clothing/under/rank/cargotech @@ -21,10 +27,13 @@ /decl/hierarchy/outfit/job/cargo/mining name = OUTFIT_JOB_NAME("Shaft miner") uniform = /obj/item/clothing/under/rank/miner - l_ear = /obj/item/radio/headset/headset_mine backpack = /obj/item/storage/backpack/industrial satchel_one = /obj/item/storage/backpack/satchel/eng id_type = /obj/item/card/id/cargo/miner pda_type = /obj/item/pda/shaftminer backpack_contents = list(/obj/item/tool/crowbar = 1, /obj/item/storage/bag/ore = 1) flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL + + headset = /obj/item/radio/headset/miner + headset_alt = /obj/item/radio/headset/miner + headset_earbud = /obj/item/radio/headset/miner diff --git a/code/datums/outfits/jobs/civilian.dm b/code/datums/outfits/jobs/civilian.dm index a62600a6ee..829e6f9c64 100644 --- a/code/datums/outfits/jobs/civilian.dm +++ b/code/datums/outfits/jobs/civilian.dm @@ -19,9 +19,12 @@ uniform = /obj/item/clothing/under/color/white /decl/hierarchy/outfit/job/service - l_ear = /obj/item/radio/headset/headset_service hierarchy_type = /decl/hierarchy/outfit/job/service + headset = /obj/item/radio/headset/service + headset_alt = /obj/item/radio/headset/alt/service + headset_earbud = /obj/item/radio/headset/earbud/service + /decl/hierarchy/outfit/job/service/bartender name = OUTFIT_JOB_NAME(JOB_BARTENDER) uniform = /obj/item/clothing/under/rank/bartender @@ -91,7 +94,6 @@ /decl/hierarchy/outfit/job/internal_affairs_agent name = OUTFIT_JOB_NAME("Internal affairs agent") - l_ear = /obj/item/radio/headset/ia uniform = /obj/item/clothing/under/rank/internalaffairs suit = /obj/item/clothing/suit/storage/toggle/internalaffairs shoes = /obj/item/clothing/shoes/brown @@ -100,6 +102,10 @@ id_type = /obj/item/card/id/civilian/internal_affairs pda_type = /obj/item/pda/lawyer + headset = /obj/item/radio/headset/ia + headset_alt = /obj/item/radio/headset/alt/ia + headset_earbud = /obj/item/radio/headset/earbud/ia + /decl/hierarchy/outfit/job/chaplain name = OUTFIT_JOB_NAME(JOB_CHAPLAIN) uniform = /obj/item/clothing/under/rank/chaplain @@ -114,10 +120,13 @@ mask = /obj/item/clothing/mask/gas/explorer suit = /obj/item/clothing/suit/storage/hooded/explorer gloves = /obj/item/clothing/gloves/black - l_ear = /obj/item/radio/headset id_slot = slot_wear_id id_type = /obj/item/card/id/exploration //VOREStation Edit pda_slot = slot_belt pda_type = /obj/item/pda/cargo // Brown looks more rugged r_pocket = /obj/item/gps/explorer id_pda_assignment = JOB_EXPLORER + + headset = /obj/item/radio/headset + headset_alt = /obj/item/radio/headset/alt + headset_earbud = /obj/item/radio/headset/earbud diff --git a/code/datums/outfits/jobs/command.dm b/code/datums/outfits/jobs/command.dm index 149020e4fe..e5a869d9dd 100644 --- a/code/datums/outfits/jobs/command.dm +++ b/code/datums/outfits/jobs/command.dm @@ -2,7 +2,7 @@ name = OUTFIT_JOB_NAME(JOB_ALT_CAPTAIN) // Keep Captain for now, not JOB_SITE_MANAGER glasses = /obj/item/clothing/glasses/sunglasses uniform = /obj/item/clothing/under/rank/captain - l_ear = /obj/item/radio/headset/heads/captain + shoes = /obj/item/clothing/shoes/brown backpack = /obj/item/storage/backpack/captain satchel_one = /obj/item/storage/backpack/satchel/cap @@ -10,6 +10,10 @@ id_type = /obj/item/card/id/gold pda_type = /obj/item/pda/captain + headset = /obj/item/radio/headset/heads/captain + headset_alt = /obj/item/radio/headset/alt/heads/captain + headset_earbud = /obj/item/radio/headset/earbud/heads/captain + /decl/hierarchy/outfit/job/captain/post_equip(var/mob/living/carbon/human/H) ..() if(H.age>49) @@ -26,19 +30,25 @@ /decl/hierarchy/outfit/job/hop name = OUTFIT_JOB_NAME(JOB_HEAD_OF_PERSONNEL) uniform = /obj/item/clothing/under/rank/head_of_personnel - l_ear = /obj/item/radio/headset/heads/hop shoes = /obj/item/clothing/shoes/brown id_type = /obj/item/card/id/silver/hop pda_type = /obj/item/pda/heads/hop + headset = /obj/item/radio/headset/heads/hop + headset_alt = /obj/item/radio/headset/alt/heads/hop + headset_earbud = /obj/item/radio/headset/earbud/heads/hop + /decl/hierarchy/outfit/job/secretary name = OUTFIT_JOB_NAME(JOB_COMMAND_SECRETARY) - l_ear = /obj/item/radio/headset/headset_com shoes = /obj/item/clothing/shoes/brown id_type = /obj/item/card/id/silver/secretary pda_type = /obj/item/pda/heads r_hand = /obj/item/clipboard + headset = /obj/item/radio/headset/headset_com + headset_alt = /obj/item/radio/headset/alt/headset_com + headset_earbud = /obj/item/radio/headset/earbud/headset_com + /decl/hierarchy/outfit/job/secretary/pre_equip(mob/living/carbon/human/H) ..() if(H.gender == FEMALE) diff --git a/code/datums/outfits/jobs/engineering.dm b/code/datums/outfits/jobs/engineering.dm index 16de1539c3..11c4a4cd3c 100644 --- a/code/datums/outfits/jobs/engineering.dm +++ b/code/datums/outfits/jobs/engineering.dm @@ -1,7 +1,6 @@ /decl/hierarchy/outfit/job/engineering hierarchy_type = /decl/hierarchy/outfit/job/engineering belt = /obj/item/storage/belt/utility/full/multitool - l_ear = /obj/item/radio/headset/headset_eng shoes = /obj/item/clothing/shoes/boots/workboots r_pocket = /obj/item/t_scanner backpack = /obj/item/storage/backpack/industrial @@ -10,15 +9,23 @@ pda_slot = slot_l_store flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL + headset = /obj/item/radio/headset/headset_eng + headset_alt = /obj/item/radio/headset/alt/headset_eng + headset_earbud = /obj/item/radio/headset/earbud/headset_eng + /decl/hierarchy/outfit/job/engineering/chief_engineer name = OUTFIT_JOB_NAME(JOB_CHIEF_ENGINEER) head = /obj/item/clothing/head/hardhat/white uniform = /obj/item/clothing/under/rank/chief_engineer - l_ear = /obj/item/radio/headset/heads/ce + gloves = /obj/item/clothing/gloves/black id_type = /obj/item/card/id/engineering/head pda_type = /obj/item/pda/heads/ce + headset = /obj/item/radio/headset/heads/ce + headset_alt = /obj/item/radio/headset/alt/heads/ce + headset_earbud = /obj/item/radio/headset/earbud/heads/ce + /decl/hierarchy/outfit/job/engineering/engineer name = OUTFIT_JOB_NAME(JOB_ENGINEER) head = /obj/item/clothing/head/hardhat diff --git a/code/datums/outfits/jobs/job.dm b/code/datums/outfits/jobs/job.dm index adfa938bf3..fdb7af5dbe 100644 --- a/code/datums/outfits/jobs/job.dm +++ b/code/datums/outfits/jobs/job.dm @@ -3,7 +3,6 @@ hierarchy_type = /decl/hierarchy/outfit/job uniform = /obj/item/clothing/under/color/grey - l_ear = /obj/item/radio/headset shoes = /obj/item/clothing/shoes/black id_slot = slot_wear_id @@ -13,6 +12,10 @@ flags = OUTFIT_HAS_BACKPACK + headset = /obj/item/radio/headset + headset_alt = /obj/item/radio/headset/alt + headset_earbud = /obj/item/radio/headset/earbud + /decl/hierarchy/outfit/job/equip_id(mob/living/carbon/human/H, rank, assignment) var/obj/item/card/id/C = ..() var/datum/job/J = job_master.GetJob(rank) diff --git a/code/datums/outfits/jobs/medical.dm b/code/datums/outfits/jobs/medical.dm index a78636ea63..6a4d120d37 100644 --- a/code/datums/outfits/jobs/medical.dm +++ b/code/datums/outfits/jobs/medical.dm @@ -1,16 +1,19 @@ /decl/hierarchy/outfit/job/medical hierarchy_type = /decl/hierarchy/outfit/job/medical - l_ear = /obj/item/radio/headset/headset_med shoes = /obj/item/clothing/shoes/white pda_type = /obj/item/pda/medical pda_slot = slot_l_store + backpack = /obj/item/storage/backpack/medic satchel_one = /obj/item/storage/backpack/satchel/med messenger_bag = /obj/item/storage/backpack/messenger/med + headset = /obj/item/radio/headset/headset_med + headset_alt = /obj/item/radio/headset/alt/headset_med + headset_earbud = /obj/item/radio/headset/earbud/headset_med + /decl/hierarchy/outfit/job/medical/cmo name = OUTFIT_JOB_NAME(JOB_CHIEF_MEDICAL_OFFICER) - l_ear =/obj/item/radio/headset/heads/cmo uniform = /obj/item/clothing/under/rank/chief_medical_officer suit = /obj/item/clothing/suit/storage/toggle/labcoat/cmo shoes = /obj/item/clothing/shoes/brown @@ -19,6 +22,10 @@ id_type = /obj/item/card/id/medical/head pda_type = /obj/item/pda/heads/cmo + headset = /obj/item/radio/headset/heads/cmo + headset_alt = /obj/item/radio/headset/alt/heads/cmo + headset_earbud = /obj/item/radio/headset/earbud/heads/cmo + /decl/hierarchy/outfit/job/medical/doctor name = OUTFIT_JOB_NAME(JOB_MEDICAL_DOCTOR) uniform = /obj/item/clothing/under/rank/medical diff --git a/code/datums/outfits/jobs/science.dm b/code/datums/outfits/jobs/science.dm index a9fe8a4437..eeeb84951d 100644 --- a/code/datums/outfits/jobs/science.dm +++ b/code/datums/outfits/jobs/science.dm @@ -1,23 +1,30 @@ /decl/hierarchy/outfit/job/science hierarchy_type = /decl/hierarchy/outfit/job/science - l_ear = /obj/item/radio/headset/headset_sci suit = /obj/item/clothing/suit/storage/toggle/labcoat shoes = /obj/item/clothing/shoes/white pda_type = /obj/item/pda/science + backpack = /obj/item/storage/backpack/toxins satchel_one = /obj/item/storage/backpack/satchel/tox messenger_bag = /obj/item/storage/backpack/messenger/tox sports_bag = /obj/item/storage/backpack/sport/tox + headset = /obj/item/radio/headset/headset_sci + headset_alt = /obj/item/radio/headset/alt/headset_sci + headset_earbud = /obj/item/radio/headset/earbud/headset_sci + /decl/hierarchy/outfit/job/science/rd name = OUTFIT_JOB_NAME("Research Director") - l_ear = /obj/item/radio/headset/heads/rd uniform = /obj/item/clothing/under/rank/research_director shoes = /obj/item/clothing/shoes/brown l_hand = /obj/item/clipboard id_type = /obj/item/card/id/science/head pda_type = /obj/item/pda/heads/rd + headset = /obj/item/radio/headset/heads/rd + headset_alt = /obj/item/radio/headset/alt/heads/rd + headset_earbud = /obj/item/radio/headset/earbud/heads/rd + /decl/hierarchy/outfit/job/science/scientist name = OUTFIT_JOB_NAME(JOB_SCIENTIST) uniform = /obj/item/clothing/under/rank/scientist diff --git a/code/datums/outfits/jobs/security.dm b/code/datums/outfits/jobs/security.dm index e73b45e06b..595601bbcd 100644 --- a/code/datums/outfits/jobs/security.dm +++ b/code/datums/outfits/jobs/security.dm @@ -1,22 +1,29 @@ /decl/hierarchy/outfit/job/security hierarchy_type = /decl/hierarchy/outfit/job/security glasses = /obj/item/clothing/glasses/sunglasses/sechud - l_ear = /obj/item/radio/headset/headset_sec gloves = /obj/item/clothing/gloves/black shoes = /obj/item/clothing/shoes/boots/jackboots + backpack = /obj/item/storage/backpack/security satchel_one = /obj/item/storage/backpack/satchel/sec backpack_contents = list(/obj/item/handcuffs = 1) messenger_bag = /obj/item/storage/backpack/messenger/sec sports_bag = /obj/item/storage/backpack/sport/sec + headset = /obj/item/radio/headset/headset_sec + headset_alt = /obj/item/radio/headset/alt/headset_sec + headset_earbud = /obj/item/radio/headset/earbud/headset_sec + /decl/hierarchy/outfit/job/security/hos name = OUTFIT_JOB_NAME(JOB_HEAD_OF_SECURITY) - l_ear = /obj/item/radio/headset/heads/hos uniform = /obj/item/clothing/under/rank/head_of_security id_type = /obj/item/card/id/security/head pda_type = /obj/item/pda/heads/hos + headset = /obj/item/radio/headset/heads/hos + headset_alt = /obj/item/radio/headset/alt/heads/hos + headset_earbud = /obj/item/radio/headset/earbud/heads/hos + /decl/hierarchy/outfit/job/security/warden name = OUTFIT_JOB_NAME(JOB_WARDEN) uniform = /obj/item/clothing/under/rank/warden diff --git a/code/datums/outfits/outfit.dm b/code/datums/outfits/outfit.dm index ed8e81f992..43fe69f0f2 100644 --- a/code/datums/outfits/outfit.dm +++ b/code/datums/outfits/outfit.dm @@ -52,6 +52,10 @@ var/list/outfits_decls_by_type_ var/id_pda_assignment + var/headset = /obj/item/radio/headset + var/headset_alt = /obj/item/radio/headset/alt + var/headset_earbud = /obj/item/radio/headset/earbud + var/backpack = /obj/item/storage/backpack var/satchel_one = /obj/item/storage/backpack/satchel/norm var/satchel_two = /obj/item/storage/backpack/satchel @@ -72,7 +76,11 @@ var/list/outfits_decls_by_type_ dd_insertObjectList(outfits_decls_, src) /decl/hierarchy/outfit/proc/pre_equip(mob/living/carbon/human/H) - if(flags & OUTFIT_HAS_BACKPACK) + switch(H.headset) + if(1) l_ear = headset + if(2) l_ear = headset_alt + if(3) l_ear = headset_earbud + if(flags && OUTFIT_HAS_BACKPACK) switch(H.backbag) if(2) back = backpack if(3) back = satchel_one diff --git a/code/datums/outfits/outfit_vr.dm b/code/datums/outfits/outfit_vr.dm index 97281f1a56..537f13d834 100644 --- a/code/datums/outfits/outfit_vr.dm +++ b/code/datums/outfits/outfit_vr.dm @@ -112,7 +112,6 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go name = OUTFIT_JOB_NAME(JOB_EXPLORER) shoes = /obj/item/clothing/shoes/boots/winter/explorer uniform = /obj/item/clothing/under/explorer - l_ear = /obj/item/radio/headset/explorer id_slot = slot_wear_id pda_slot = slot_l_store pda_type = /obj/item/pda/explorer @@ -123,6 +122,10 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go messenger_bag = /obj/item/storage/backpack/messenger/explorer flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL + headset = /obj/item/radio/headset/explorer + headset_alt = /obj/item/radio/headset/alt/explorer + headset_earbud = /obj/item/radio/headset/explorer + /decl/hierarchy/outfit/job/pilot name = OUTFIT_JOB_NAME(JOB_PILOT) shoes = /obj/item/clothing/shoes/black @@ -130,7 +133,6 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go suit = /obj/item/clothing/suit/storage/toggle/bomber/pilot gloves = /obj/item/clothing/gloves/fingerless glasses = /obj/item/clothing/glasses/fakesunglasses/aviator - l_ear = /obj/item/radio/headset/pilot/alt uniform_accessories = list(/obj/item/clothing/accessory/storage/webbing/pilot1 = 1) id_slot = slot_wear_id pda_slot = slot_belt @@ -139,12 +141,15 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go id_pda_assignment = JOB_PILOT flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL + headset = /obj/item/radio/headset/pilot + headset_alt = /obj/item/radio/headset/alt/pilot + headset_earbud = /obj/item/radio/headset/alt/pilot + /decl/hierarchy/outfit/job/medical/sar name = OUTFIT_JOB_NAME(JOB_FIELD_MEDIC) uniform = /obj/item/clothing/under/utility/blue //suit = /obj/item/clothing/suit/storage/hooded/wintercoat/medical/sar shoes = /obj/item/clothing/shoes/boots/winter/explorer - l_ear = /obj/item/radio/headset/sar l_hand = /obj/item/storage/firstaid/regular belt = /obj/item/storage/belt/medical/emt pda_slot = slot_l_store @@ -156,11 +161,14 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go messenger_bag = /obj/item/storage/backpack/messenger/explorer flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL + headset = /obj/item/radio/headset/sar + headset_alt = /obj/item/radio/headset/alt/sar + headset_earbud = /obj/item/radio/headset/sar + /decl/hierarchy/outfit/job/pathfinder name = OUTFIT_JOB_NAME(JOB_PATHFINDER) shoes = /obj/item/clothing/shoes/boots/winter/explorer uniform = /obj/item/clothing/under/explorer //TODO: Uniforms. - l_ear = /obj/item/radio/headset/pathfinder id_slot = slot_wear_id pda_slot = slot_l_store pda_type = /obj/item/pda/pathfinder @@ -168,6 +176,10 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go id_pda_assignment = JOB_PATHFINDER flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL + headset = /obj/item/radio/headset/pathfinder + headset_alt = /obj/item/radio/headset/alt/pathfinder + headset_earbud = /obj/item/radio/headset/pathfinder + /decl/hierarchy/outfit/job/assistant/explorer id_type = /obj/item/card/id/exploration flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL diff --git a/code/datums/supplypacks/medical.dm b/code/datums/supplypacks/medical.dm index 5621c37d02..5ccffa36bc 100644 --- a/code/datums/supplypacks/medical.dm +++ b/code/datums/supplypacks/medical.dm @@ -112,7 +112,7 @@ contains = list( /obj/item/storage/belt/medical = 3, /obj/item/clothing/glasses/hud/health = 3, - /obj/item/radio/headset/headset_med/alt = 3, + /obj/item/radio/headset/alt/headset_med = 3, /obj/item/clothing/suit/storage/hooded/wintercoat/medical = 3 ) cost = 10 diff --git a/code/datums/supplypacks/security.dm b/code/datums/supplypacks/security.dm index 1404b06e42..1f2cf06f89 100644 --- a/code/datums/supplypacks/security.dm +++ b/code/datums/supplypacks/security.dm @@ -444,7 +444,7 @@ contains = list( /obj/item/storage/belt/security = 3, /obj/item/clothing/glasses/sunglasses/sechud = 3, - /obj/item/radio/headset/headset_sec/alt = 3, + /obj/item/radio/headset/alt/headset_sec = 3, /obj/item/clothing/suit/storage/hooded/wintercoat/security = 3, /obj/item/clothing/glasses/sunglasses/sechud/tactical_sec_vis = 3 ) diff --git a/code/datums/supplypacks/supply.dm b/code/datums/supplypacks/supply.dm index 0629a55d8e..68a6b420c0 100644 --- a/code/datums/supplypacks/supply.dm +++ b/code/datums/supplypacks/supply.dm @@ -118,7 +118,7 @@ /obj/item/storage/backpack/industrial, /obj/item/storage/backpack/satchel/eng, /obj/item/clothing/suit/storage/hooded/wintercoat/miner, - /obj/item/radio/headset/headset_cargo, + /obj/item/radio/headset/miner, /obj/item/clothing/under/rank/miner, /obj/item/clothing/gloves/black, /obj/item/clothing/shoes/black, @@ -187,7 +187,7 @@ contains = list ( /obj/item/storage/backpack/parachute, /obj/item/radio/headset/pilot, - /obj/item/radio/headset/pilot/alt, + /obj/item/radio/headset/alt/pilot, /obj/item/clothing/mask/gas/half, /obj/item/flashlight/glowstick, /obj/item/stack/marker_beacon/thirty, diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index f6af18a4aa..540c8be963 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -8,7 +8,8 @@ subspace_transmission = 1 canhear_range = 0 // can't hear headsets from very far away slot_flags = SLOT_EARS - sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/ears/mob_teshari.dmi') + sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/ears/mob_teshari.dmi', + SPECIES_WEREBEAST = 'icons/inventory/ears/mob_vr_werebeast.dmi') var/translate_binary = 0 var/translate_hive = 0 @@ -83,254 +84,6 @@ /obj/item/radio/headset/tgui_state(mob/user) return GLOB.tgui_inventory_state -/obj/item/radio/headset/syndicate - origin_tech = list(TECH_ILLEGAL = 3) - syndie = 1 - ks1type = /obj/item/encryptionkey/syndicate - -/obj/item/radio/headset/syndicate/alt - icon_state = "syndie_headset" - item_state = "headset" - origin_tech = list(TECH_ILLEGAL = 3) - syndie = 1 - ks1type = /obj/item/encryptionkey/syndicate - -/obj/item/radio/headset/raider - origin_tech = list(TECH_ILLEGAL = 2) - syndie = 1 - ks1type = /obj/item/encryptionkey/raider - -/obj/item/radio/headset/raider/Initialize() - . = ..() - set_frequency(RAID_FREQ) - -/obj/item/radio/headset/binary - origin_tech = list(TECH_ILLEGAL = 3) - ks1type = /obj/item/encryptionkey/binary - -/obj/item/radio/headset/headset_sec - name = "security radio headset" - desc = "This is used by your elite security force." - icon_state = "sec_headset" - ks2type = /obj/item/encryptionkey/headset_sec - -/obj/item/radio/headset/headset_sec/alt - name = "security bowman headset" - desc = "This is used by your elite security force." - icon_state = "sec_headset_alt" - ks2type = /obj/item/encryptionkey/headset_sec - -/obj/item/radio/headset/headset_eng - name = "engineering radio headset" - desc = "When the engineers wish to chat like girls." - icon_state = "eng_headset" - ks2type = /obj/item/encryptionkey/headset_eng - -/obj/item/radio/headset/headset_eng/alt - name = "engineering bowman headset" - desc = "When the engineers wish to chat like girls." - icon_state = "eng_headset_alt" - ks2type = /obj/item/encryptionkey/headset_eng - -/obj/item/radio/headset/headset_rob - name = "robotics radio headset" - desc = "Made specifically for the roboticists who cannot decide between departments." - icon_state = "rob_headset" - ks2type = /obj/item/encryptionkey/headset_rob - -/obj/item/radio/headset/headset_med - name = "medical radio headset" - desc = "A headset for the trained staff of the medbay." - icon_state = "med_headset" - ks2type = /obj/item/encryptionkey/headset_med - -/obj/item/radio/headset/headset_med/alt - name = "medical bowman headset" - desc = "A headset for the trained staff of the medbay." - icon_state = "med_headset_alt" - ks2type = /obj/item/encryptionkey/headset_med - -/obj/item/radio/headset/headset_sci - name = "science radio headset" - desc = "A sciency headset. Like usual." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/headset_sci - -/obj/item/radio/headset/headset_medsci - name = "medical research radio headset" - desc = "A headset that is a result of the mating between medical and science." - icon_state = "med_headset" - ks2type = /obj/item/encryptionkey/headset_medsci - -/obj/item/radio/headset/headset_com - name = "command radio headset" - desc = "A headset with a commanding channel." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/headset_com - -/obj/item/radio/headset/headset_com/alt - name = "command bowman headset" - desc = "A headset with a commanding channel." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/headset_com - - -/obj/item/radio/headset/heads/captain - name = "site manager's headset" - desc = "The headset of the boss." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/captain - -/obj/item/radio/headset/heads/captain/alt - name = "site manager's bowman headset" - desc = "The headset of the boss." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/captain - -/obj/item/radio/headset/heads/captain/sfr - name = "SFR headset" - desc = "A headset belonging to a Sif Free Radio DJ. SFR, best tunes in the wilderness." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/captain - -/obj/item/radio/headset/heads/ai_integrated //No need to care about icons, it should be hidden inside the AI anyway. - name = "\improper AI subspace transceiver" - desc = "Integrated AI radio transceiver." - icon = 'icons/obj/robot_component.dmi' - icon_state = "radio" - item_state = "headset" - ks2type = /obj/item/encryptionkey/heads/ai_integrated - var/myAi = null // Atlantis: Reference back to the AI which has this radio. - var/disabledAi = 0 // Atlantis: Used to manually disable AI's integrated radio via intellicard menu. - -/obj/item/radio/headset/heads/ai_integrated/receive_range(freq, level) - if (disabledAi) - return -1 //Transciever Disabled. - return ..(freq, level, 1) - -/obj/item/radio/headset/heads/rd - name = "research director's headset" - desc = "Headset of the eccentric-in-chief." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/rd - -/obj/item/radio/headset/heads/rd/alt - name = "research director's bowman headset" - desc = "Headset of the eccentric-in-chief." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/rd - -/obj/item/radio/headset/heads/hos - name = "head of security's headset" - desc = "The headset of the hardass who protects your worthless lives." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/hos - -/obj/item/radio/headset/heads/hos/alt - name = "head of security's bowman headset" - desc = "The headset of the hardass who protects your worthless lives." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/hos - -/obj/item/radio/headset/heads/ce - name = "chief engineer's headset" - desc = "The headset of the clown who is in charge of the circus." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/ce - -/obj/item/radio/headset/heads/ce/alt - name = "chief engineer's bowman headset" - desc = "The headset of the clown who is in charge of the circus." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/ce - -/obj/item/radio/headset/heads/cmo - name = "chief medical officer's headset" - desc = "The headset of the highly trained medical chief." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/cmo - -/obj/item/radio/headset/heads/cmo/alt - name = "chief medical officer's bowman headset" - desc = "The headset of the highly trained medical chief." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/cmo - -/obj/item/radio/headset/heads/hop - name = "head of personnel's headset" - desc = "The headset of the poor fool who will one day be " + JOB_SITE_MANAGER + "." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/hop - -/obj/item/radio/headset/heads/hop/alt - name = "head of personnel's bowman headset" - desc = "The headset of the poor fool who will one day be " + JOB_SITE_MANAGER + "." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/hop - -/obj/item/radio/headset/headset_mine - name = "mining radio headset" - desc = "Headset used by miners. Has inbuilt short-band radio for when comms are down." - icon_state = "mine_headset" - adhoc_fallback = TRUE - ks2type = /obj/item/encryptionkey/headset_cargo - -/obj/item/radio/headset/headset_cargo - name = "supply radio headset" - desc = "A headset used by the QM and their cronies." - icon_state = "cargo_headset" - ks2type = /obj/item/encryptionkey/headset_cargo - -/obj/item/radio/headset/headset_cargo/alt - name = "supply bowman headset" - desc = "A bowman headset used by the QM and their cronies." - icon_state = "cargo_headset_alt" - ks2type = /obj/item/encryptionkey/headset_cargo - -/obj/item/radio/headset/headset_service - name = "service radio headset" - desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean." - icon_state = "srv_headset" - ks2type = /obj/item/encryptionkey/headset_service - -/obj/item/radio/headset/ert - name = "emergency response team radio headset" - desc = "The headset of the boss's boss." - icon_state = "com_headset" - centComm = 1 -// freerange = 1 - ks2type = /obj/item/encryptionkey/ert - -/obj/item/radio/headset/ert/alt - name = "emergency response team bowman headset" - desc = "The headset of the boss's boss." - icon_state = "com_headset_alt" -// freerange = 1 - ks2type = /obj/item/encryptionkey/ert - -/obj/item/radio/headset/omni //Only for the admin intercoms - ks2type = /obj/item/encryptionkey/omni - -/obj/item/radio/headset/ia - name = "internal affair's headset" - desc = "The headset of your worst enemy." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/hos - -/obj/item/radio/headset/mmi_radio - name = "brain-integrated radio" - desc = "MMIs and synthetic brains are often equipped with these." - icon = 'icons/obj/robot_component.dmi' - icon_state = "radio" - item_state = "headset" - var/mmiowner = null - var/radio_enabled = 1 - -/obj/item/radio/headset/mmi_radio/receive_range(freq, level) - if (!radio_enabled || istype(src.loc.loc, /mob/living/silicon) || istype(src.loc.loc, /obj/item/organ/internal)) - return -1 //Transciever Disabled. - return ..(freq, level, 1) - /obj/item/radio/headset/attackby(obj/item/W as obj, mob/user as mob) // ..() user.set_machine(src) @@ -387,7 +140,6 @@ return - /obj/item/radio/headset/recalculateChannels(var/setDescription = 0) src.channels = list() src.translate_binary = 0 @@ -451,3 +203,432 @@ radio_text += ", " radio_desc = radio_text + +/obj/item/radio/headset/mob_headset/receive_range(freq, level) + if(ismob(src.loc)) + return ..(freq, level, 1) + return -1 + +/obj/item/radio/headset/mob_headset/afterattack(var/atom/movable/target, mob/living/user, proximity) + if(!proximity) + return + if(istype(target,/mob/living/simple_mob)) + var/mob/living/simple_mob/M = target + if(!M.mob_radio) + user.drop_item() + forceMove(M) + M.mob_radio = src + return + if(M.mob_radio) + M.mob_radio.forceMove(M.loc) + M.mob_radio = null + return + ..() + +/obj/item/radio/headset/alt + name = "bowman radio headset" + desc = "A larger, sturdier radio headset. A bit bulky, but guaranteed to stay on no matter what." + icon_state = "headset_alt" + +/obj/item/radio/headset/earbud + name = "radio earbud" + desc = "A discreet radio earbud and low-profile mic. Simple and unobtrusive." + icon_state = "headset_earbud" + +/obj/item/radio/headset/headset_sec + name = "security radio headset" + icon_state = "sec_headset" + ks2type = /obj/item/encryptionkey/headset_sec + +/obj/item/radio/headset/alt/headset_sec + name = "security bowman headset" + icon_state = "sec_headset_alt" + ks2type = /obj/item/encryptionkey/headset_sec + +/obj/item/radio/headset/earbud/headset_sec + name = "security earbud" + icon_state = "sec_earbud" + ks2type = /obj/item/encryptionkey/headset_sec + +/obj/item/radio/headset/headset_eng + name = "engineering radio headset" + icon_state = "eng_headset" + ks2type = /obj/item/encryptionkey/headset_eng + +/obj/item/radio/headset/alt/headset_eng + name = "engineering bowman headset" + icon_state = "eng_headset_alt" + ks2type = /obj/item/encryptionkey/headset_eng + +/obj/item/radio/headset/earbud/headset_eng + name = "engineering earbud" + icon_state = "eng_earbud" + ks2type = /obj/item/encryptionkey/headset_eng + +/obj/item/radio/headset/headset_med + name = "medical radio headset" + icon_state = "med_headset" + ks2type = /obj/item/encryptionkey/headset_med + +/obj/item/radio/headset/alt/headset_med + name = "medical bowman headset" + icon_state = "med_headset_alt" + ks2type = /obj/item/encryptionkey/headset_med + +/obj/item/radio/headset/earbud/headset_med + name = "medical earbud" + icon_state = "med_earbud" + ks2type = /obj/item/encryptionkey/headset_med + +/obj/item/radio/headset/headset_sci + name = "science radio headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/headset_sci + +/obj/item/radio/headset/alt/headset_sci + name = "science bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/headset_sci + +/obj/item/radio/headset/earbud/headset_sci + name = "science earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/headset_sci + +/obj/item/radio/headset/headset_com + name = "command radio headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/headset_com + +/obj/item/radio/headset/alt/headset_com + name = "command bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/headset_com + +/obj/item/radio/headset/earbud/headset_com + name = "command earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/headset_com + +/obj/item/radio/headset/heads/captain + name = "site manager's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/captain + +/obj/item/radio/headset/heads/captain/sfr + name = "SFR headset" + desc = "A headset belonging to a Sif Free Radio DJ. SFR, best tunes in the wilderness." + icon_state = "com_headset_alt" + +/obj/item/radio/headset/alt/heads/captain + name = "site manager's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/captain + +/obj/item/radio/headset/earbud/heads/captain + name = "site manager's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/captain + +/obj/item/radio/headset/heads/rd + name = "research director's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/rd + +/obj/item/radio/headset/alt/heads/rd + name = "research director's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/rd + +/obj/item/radio/headset/earbud/heads/rd + name = "research director's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/rd + +/obj/item/radio/headset/heads/hos + name = "head of security's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/alt/heads/hos + name = "head of security's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/earbud/heads/hos + name = "head of security's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/heads/ce + name = "chief engineer's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/ce + +/obj/item/radio/headset/alt/heads/ce + name = "chief engineer's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/ce + +/obj/item/radio/headset/earbud/heads/ce + name = "chief engineer's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/ce + +/obj/item/radio/headset/heads/cmo + name = "chief medical officer's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/cmo + +/obj/item/radio/headset/alt/heads/cmo + name = "chief medical officer's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/cmo + +/obj/item/radio/headset/earbud/heads/cmo + name = "chief medical officer's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/cmo + +/obj/item/radio/headset/heads/hop + name = "head of personnel's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/hop + +/obj/item/radio/headset/alt/heads/hop + name = "head of personnel's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/hop + +/obj/item/radio/headset/earbud/heads/hop + name = "head of personnel's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/hop + +/obj/item/radio/headset/miner + name = "mining radio headset" + desc = "Headset used by miners. Has inbuilt short-band radio for when comms are down." + icon_state = "mine_headset" + adhoc_fallback = TRUE + ks2type = /obj/item/encryptionkey/headset_cargo + +/obj/item/radio/headset/cargo + name = "supply radio headset" + icon_state = "cargo_headset" + ks2type = /obj/item/encryptionkey/headset_cargo + +/obj/item/radio/headset/alt/cargo + name = "supply bowman headset" + icon_state = "cargo_headset_alt" + ks2type = /obj/item/encryptionkey/headset_cargo + +/obj/item/radio/headset/earbud/cargo + name = "supply earbud" + icon_state = "cargo_earbud" + ks2type = /obj/item/encryptionkey/headset_cargo + +/obj/item/radio/headset/qm + name = "qm radio headset" + icon_state = "cargo_headset" + ks2type = /obj/item/encryptionkey/qm + +/obj/item/radio/headset/alt/qm + name = "qm bowman headset" + icon_state = "cargo_headset_alt" + ks2type = /obj/item/encryptionkey/qm + +/obj/item/radio/headset/earbud/qm + name = "qm earbud" + icon_state = "cargo_earbud" + ks2type = /obj/item/encryptionkey/qm + +/obj/item/radio/headset/service + name = "service radio headset" + icon_state = "srv_headset" + ks2type = /obj/item/encryptionkey/headset_service + +/obj/item/radio/headset/alt/service + name = "service bowman headset" + icon_state = "srv_headset_alt" + ks2type = /obj/item/encryptionkey/headset_service + +/obj/item/radio/headset/earbud/service + name = "service earbud" + icon_state = "srv_earbud" + ks2type = /obj/item/encryptionkey/headset_service + +/obj/item/radio/headset/ert + name = "emergency response team radio headset" + icon_state = "com_headset" + centComm = 1 + ks2type = /obj/item/encryptionkey/ert + +/obj/item/radio/headset/alt/ert + name = "emergency response team bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/ert + +/obj/item/radio/headset/ia + name = "internal affairs headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/alt/ia + name = "internal affairs bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/earbud/ia + name = "internal affairs earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/centcom + name = "centcom radio headset" + icon_state = "cent_headset" + item_state = "headset" + centComm = 1 + ks2type = /obj/item/encryptionkey/ert + +/obj/item/radio/headset/alt/centcom + name = "centcom bowman headset" + icon_state = "com_headset_alt" + +/obj/item/radio/headset/nanotrasen + name = "\improper NT radio headset" + icon_state = "nt_headset" + centComm = 1 + ks2type = /obj/item/encryptionkey/ert + +/obj/item/radio/headset/alt/nanotrasen + name = "\improper NT bowman headset" + icon_state = "nt_headset_alt" + +/obj/item/radio/headset/pathfinder + name = "pathfinder's headset" + icon_state = "exp_headset" + adhoc_fallback = TRUE + ks2type = /obj/item/encryptionkey/pathfinder + +/obj/item/radio/headset/alt/pathfinder + name = "pathfinder's bowman headset" + icon_state = "exp_headset_alt" + +/obj/item/radio/headset/pilot + name = "pilot's headset" + icon_state = "pilot_headset" + adhoc_fallback = TRUE + +/obj/item/radio/headset/alt/pilot + name = "pilot's bowman headset" + icon_state = "pilot_headset_alt" + +/obj/item/radio/headset/explorer + name = "away team member's headset" + icon_state = "exp_headset" + adhoc_fallback = TRUE + ks2type = /obj/item/encryptionkey/explorer + +/obj/item/radio/headset/alt/explorer + name = "away team's bowman headset" + icon_state = "exp_headset_alt" + +/obj/item/radio/headset/sar + name = "search and rescue headset" + icon_state = "sar_headset" + adhoc_fallback = TRUE + ks2type = /obj/item/encryptionkey/sar + +/obj/item/radio/headset/alt/sar + name = "search and rescue bowman headset" + icon_state = "sar_headset_alt" + adhoc_fallback = TRUE + ks2type = /obj/item/encryptionkey/sar + +/obj/item/radio/headset/talon + name = "talon headset" + adhoc_fallback = TRUE + icon_state = "pilot_headset" + ks2type = /obj/item/encryptionkey/talon + +/obj/item/radio/headset/alt/talon + name = "talon bowman headset" + adhoc_fallback = TRUE + icon_state = "pilot_headset" + ks2type = /obj/item/encryptionkey/talon + +/obj/item/radio/headset/earbud/talon + name = "talon earbud" + adhoc_fallback = TRUE + icon_state = "pilot_headset" + ks2type = /obj/item/encryptionkey/talon + +/obj/item/radio/headset/headset_rob + name = "robotics radio headset" + icon_state = "rob_headset" + ks2type = /obj/item/encryptionkey/headset_rob + +// Special Antag/Admin/Event/Other headsets + +/obj/item/radio/headset/syndicate + origin_tech = list(TECH_ILLEGAL = 3) + syndie = 1 + ks1type = /obj/item/encryptionkey/syndicate + +/obj/item/radio/headset/alt/syndicate + origin_tech = list(TECH_ILLEGAL = 3) + syndie = 1 + ks1type = /obj/item/encryptionkey/syndicate + +/obj/item/radio/headset/earbud/syndicate + origin_tech = list(TECH_ILLEGAL = 3) + syndie = 1 + ks1type = /obj/item/encryptionkey/syndicate + +/obj/item/radio/headset/raider + origin_tech = list(TECH_ILLEGAL = 2) + syndie = 1 + ks1type = /obj/item/encryptionkey/raider + +/obj/item/radio/headset/raider/Initialize() + . = ..() + set_frequency(RAID_FREQ) + +/obj/item/radio/headset/binary + origin_tech = list(TECH_ILLEGAL = 3) + ks1type = /obj/item/encryptionkey/binary + +/obj/item/radio/headset/omni //Only for the admin intercoms + ks2type = /obj/item/encryptionkey/omni + +/obj/item/radio/headset/mmi_radio + name = "brain-integrated radio" + icon = 'icons/obj/robot_component.dmi' + icon_state = "radio" + item_state = "headset" + var/mmiowner = null + var/radio_enabled = 1 + +/obj/item/radio/headset/mmi_radio/receive_range(freq, level) + if (!radio_enabled || istype(src.loc.loc, /mob/living/silicon) || istype(src.loc.loc, /obj/item/organ/internal)) + return -1 //Transciever Disabled. + return ..(freq, level, 1) + +/obj/item/radio/headset/mob_headset //Adminbus headset for simplemob shenanigans. + name = "nonhuman radio receiver" + desc = "An updated, self-adhesive modular intercom that requires no hands to operate or ears to hold, just stick it on. Takes encryption keys" + +/obj/item/radio/headset/heads/ai_integrated //No need to care about icons, it should be hidden inside the AI anyway. + name = "\improper AI subspace transceiver" + desc = "Integrated AI radio transceiver." + icon = 'icons/obj/robot_component.dmi' + icon_state = "radio" + item_state = "headset" + ks2type = /obj/item/encryptionkey/heads/ai_integrated + var/myAi = null // Atlantis: Reference back to the AI which has this radio. + var/disabledAi = 0 // Atlantis: Used to manually disable AI's integrated radio via intellicard menu. + +/obj/item/radio/headset/heads/ai_integrated/receive_range(freq, level) + if (disabledAi) + return -1 //Transciever Disabled. + return ..(freq, level, 1) \ No newline at end of file diff --git a/code/game/objects/items/devices/radio/headset_vr.dm b/code/game/objects/items/devices/radio/headset_vr.dm deleted file mode 100644 index bad15ccd48..0000000000 --- a/code/game/objects/items/devices/radio/headset_vr.dm +++ /dev/null @@ -1,131 +0,0 @@ -/obj/item/radio/headset/centcom - name = "centcom radio headset" - desc = "The headset of the boss's boss." - icon_state = "cent_headset" - item_state = "headset" - centComm = 1 - ks2type = /obj/item/encryptionkey/ert - -/obj/item/radio/headset/centcom/alt - name = "centcom bowman headset" - icon_state = "com_headset_alt" - -/obj/item/radio/headset/nanotrasen - name = "\improper NT radio headset" - desc = "The headset of a Nanotrasen corporate employee." - icon_state = "nt_headset" - centComm = 1 - ks2type = /obj/item/encryptionkey/ert - -/obj/item/radio/headset/nanotrasen/alt - name = "\improper NT bowman headset" - icon_state = "nt_headset_alt" - -/obj/item/radio/headset - sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/ears/mob_teshari.dmi', - SPECIES_WEREBEAST = 'icons/inventory/ears/mob_vr_werebeast.dmi') - -/obj/item/radio/headset/mob_headset //Adminbus headset for simplemob shenanigans. - name = "nonhuman radio receiver" - desc = "An updated, self-adhesive modular intercom that requires no hands to operate or ears to hold, just stick it on. Takes encryption keys" - -/obj/item/radio/headset/mob_headset/receive_range(freq, level) - if(ismob(src.loc)) - return ..(freq, level, 1) - return -1 - -/obj/item/radio/headset/mob_headset/afterattack(var/atom/movable/target, mob/living/user, proximity) - if(!proximity) - return - if(istype(target,/mob/living/simple_mob)) - var/mob/living/simple_mob/M = target - if(!M.mob_radio) - user.drop_item() - forceMove(M) - M.mob_radio = src - return - if(M.mob_radio) - M.mob_radio.forceMove(M.loc) - M.mob_radio = null - return - ..() - -/obj/item/radio/headset/headset_cargo - desc = "A headset used by the QM's slaves." - -/obj/item/radio/headset/headset_cargo/alt - desc = "A bowman headset used by the QM's slaves." - -/obj/item/radio/headset/headset_qm - name = "qm radio headset" - desc = "A headset used by the QM." - icon_state = "cargo_headset" - ks2type = /obj/item/encryptionkey/qm - -/obj/item/radio/headset/headset_qm/alt - name = "qm bowman headset" - desc = "A bowman headset used by the QM." - icon_state = "cargo_headset_alt" - -/obj/item/radio/headset/pathfinder - name = "pathfinder's headset" - desc = "Headset used by pathfinders for exploring. Access to the explorer and command channels." - icon_state = "exp_headset" - adhoc_fallback = TRUE - ks2type = /obj/item/encryptionkey/pathfinder - -/obj/item/radio/headset/pathfinder/alt - name = "pathfinder's bowman headset" - desc = "Bowman headset used by pathfinders for exploring. Access to the explorer and command channels." - icon_state = "exp_headset_alt" - -/obj/item/radio/headset/pilot - name = "pilot's headset" - desc = "A headset used by pilots." - icon_state = "pilot_headset" - adhoc_fallback = TRUE - -/obj/item/radio/headset/pilot/alt - name = "pilot's bowman headset" - desc = "A bowman headset used by pilots." - icon_state = "pilot_headset_alt" - -/obj/item/radio/headset/explorer - name = "away team member's headset" - desc = "Headset used by the away team for exploring. Access to the away team channel." - icon_state = "exp_headset" - adhoc_fallback = TRUE - ks2type = /obj/item/encryptionkey/explorer - -/obj/item/radio/headset/explorer/alt - name = "away team's bowman headset" - desc = "Bowman headset used by the away team for exploring. Access to the away team channel." - icon_state = "exp_headset_alt" - -/obj/item/radio/headset/sar - name = "fm radio headset" - desc = "A headset for field medics." - icon_state = "sar_headset" - adhoc_fallback = TRUE - ks2type = /obj/item/encryptionkey/sar - -/obj/item/radio/headset/sar/alt - name = "fm radio bowman headset" - desc = "A bowman headset for field medics." - icon_state = "sar_headset_alt" - -/* //They're all volunteers now. -/obj/item/radio/headset/volunteer - name = "volunteer's headset" - desc = "A headset used by volunteers to expedition teams, has access to the Away Team channel." - icon_state = "pilot_headset" - adhoc_fallback = TRUE - ks2type = /obj/item/encryptionkey/explorer -*/ - -/obj/item/radio/headset/talon - name = "talon headset" - desc = "A headset for communication between the crew of the ITV Talon." - adhoc_fallback = TRUE - icon_state = "pilot_headset" - ks2type = /obj/item/encryptionkey/talon diff --git a/code/game/objects/random/mapping.dm b/code/game/objects/random/mapping.dm index 3496fe8bb0..aa2a1bb880 100644 --- a/code/game/objects/random/mapping.dm +++ b/code/game/objects/random/mapping.dm @@ -223,8 +223,8 @@ /obj/random/sfr/item_to_spawn() return pick(prob(25);/obj/item/radio/headset/heads/captain/sfr, - prob(25);/obj/item/radio/headset/headset_cargo/alt, - prob(25);/obj/item/radio/headset/headset_com/alt, + prob(25);/obj/item/radio/headset/alt/cargo, + prob(25);/obj/item/radio/headset/alt/headset_com, prob(25);/obj/item/radio/headset) // Mining Goodies diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index aa09e9fc5b..cb8732ecba 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -23,7 +23,9 @@ starts_with = list( /obj/item/clothing/head/that = 2, - /obj/item/radio/headset/headset_service = 2, + /obj/item/radio/headset/service = 2, + /obj/item/radio/headset/alt/service = 2, + /obj/item/radio/headset/earbud/service = 2, /obj/item/clothing/head/pin/flower, /obj/item/clothing/head/pin/flower/pink, /obj/item/clothing/head/pin/flower/yellow, @@ -51,7 +53,9 @@ starts_with = list( /obj/item/clothing/under/sundress, /obj/item/clothing/under/waiter = 2, - /obj/item/radio/headset/headset_service = 2, + /obj/item/radio/headset/service = 2, + /obj/item/radio/headset/alt/service = 2, + /obj/item/radio/headset/earbud/service = 2, /obj/item/storage/box/mousetraps = 2, /obj/item/clothing/under/rank/chef, /obj/item/clothing/head/chefhat, @@ -69,7 +73,9 @@ starts_with = list( /obj/item/clothing/under/rank/janitor, /obj/item/clothing/under/dress/maid/janitor, - /obj/item/radio/headset/headset_service, + /obj/item/radio/headset/service, + /obj/item/radio/headset/alt/service, + /obj/item/radio/headset/earbud/service, /obj/item/cartridge/janitor, /obj/item/clothing/suit/storage/hooded/wintercoat/janitor, /obj/item/clothing/gloves/black, diff --git a/code/game/objects/structures/crates_lockers/closets/misc_vr.dm b/code/game/objects/structures/crates_lockers/closets/misc_vr.dm index d8ccfd6025..1aba1626ec 100644 --- a/code/game/objects/structures/crates_lockers/closets/misc_vr.dm +++ b/code/game/objects/structures/crates_lockers/closets/misc_vr.dm @@ -63,7 +63,7 @@ /obj/item/clothing/shoes/boots/winter/explorer, /obj/item/clothing/gloves/black, /obj/item/radio/headset/explorer, - /obj/item/radio/headset/explorer/alt, + /obj/item/radio/headset/alt/explorer, /obj/item/cartridge/explorer, /obj/item/flashlight, /obj/item/gps/explorer, @@ -104,7 +104,7 @@ /obj/item/clothing/shoes/boots/winter/explorer, /obj/item/clothing/gloves/black, /obj/item/radio/headset/pathfinder, - /obj/item/radio/headset/pathfinder/alt, + /obj/item/radio/headset/alt/pathfinder, /obj/item/cartridge/explorer, /obj/item/flashlight, /obj/item/gps/explorer, @@ -153,7 +153,7 @@ /obj/item/clothing/suit/storage/hooded/wintercoat/medical/sar, /obj/item/clothing/shoes/boots/winter/explorer, /obj/item/radio/headset/sar, - /obj/item/radio/headset/sar/alt, + /obj/item/radio/headset/alt/sar, /obj/item/cartridge/sar, /obj/item/flashlight, /obj/item/tank/emergency/oxygen/engi, @@ -201,7 +201,7 @@ /obj/item/clothing/shoes/black, /obj/item/clothing/gloves/fingerless, /obj/item/radio/headset/pilot, - /obj/item/radio/headset/pilot/alt, + /obj/item/radio/headset/alt/pilot, /obj/item/flashlight, /obj/item/reagent_containers/food/snacks/liquidfood, /obj/item/reagent_containers/food/snacks/liquidprotein, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm index 34810bfe42..9ede8e655c 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -11,8 +11,9 @@ /obj/item/clothing/suit/storage/hooded/wintercoat/cargo, /obj/item/clothing/shoes/boots/winter/supply, /obj/item/clothing/shoes/black, - /obj/item/radio/headset/headset_cargo, - /obj/item/radio/headset/headset_cargo/alt, + /obj/item/radio/headset/cargo, + /obj/item/radio/headset/alt/cargo, + /obj/item/radio/headset/earbud/cargo, /obj/item/clothing/gloves/black, /obj/item/clothing/gloves/fingerless, /obj/item/clothing/head/soft) @@ -37,8 +38,9 @@ /obj/item/clothing/under/rank/cargo/jeans, /obj/item/clothing/under/rank/cargo/jeans/female, /obj/item/clothing/shoes/brown, - /obj/item/radio/headset/headset_qm, //VOREStation Edit, - /obj/item/radio/headset/headset_qm/alt, //VOREStation Edit, + /obj/item/radio/headset/qm, + /obj/item/radio/headset/alt/qm, + /obj/item/radio/headset/earbud/qm, /obj/item/clothing/under/rank/neo_qm, /obj/item/clothing/under/rank/neo_qm_skirt, /obj/item/clothing/under/rank/neo_qm_jacket, @@ -73,7 +75,7 @@ closet_appearance = /decl/closet_appearance/secure_closet/mining starts_with = list( - /obj/item/radio/headset/headset_mine, + /obj/item/radio/headset/miner, /obj/item/clothing/under/rank/miner, /obj/item/clothing/gloves/black, /obj/item/clothing/shoes/black, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 7186779efe..78018e247e 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -20,7 +20,8 @@ /obj/item/clothing/shoes/brown, /obj/item/cartridge/ce, /obj/item/radio/headset/heads/ce, - /obj/item/radio/headset/heads/ce/alt, + /obj/item/radio/headset/alt/heads/ce, + /obj/item/radio/headset/earbud/heads/ce, /obj/item/storage/toolbox/mechanical, /obj/item/clothing/suit/storage/hazardvest, ///obj/item/clothing/mask/gas, //VOREStation Removal: Locker bloat, grr. The fancy one below functions as a mask & helmet combined. @@ -92,7 +93,8 @@ /obj/item/clothing/accessory/storage/brown_vest, /obj/item/storage/toolbox/mechanical, /obj/item/radio/headset/headset_eng, - /obj/item/radio/headset/headset_eng/alt, + /obj/item/radio/headset/alt/headset_eng, + /obj/item/radio/headset/earbud/headset_eng, /obj/item/clothing/suit/storage/hazardvest, /obj/item/clothing/mask/gas, /obj/item/clothing/glasses/meson, @@ -129,7 +131,8 @@ /obj/item/extinguisher/atmo, ///obj/item/clamp, //VOREStation Removal: without leaks those are pointless, /obj/item/radio/headset/headset_eng, - /obj/item/radio/headset/headset_eng/alt, + /obj/item/radio/headset/alt/headset_eng, + /obj/item/radio/headset/earbud/headset_eng, /obj/item/clothing/suit/storage/hazardvest/atmos, //VOREStation edit. Eng locker gets regular haz-vest, atmos gets the themed one of their own /obj/item/clothing/mask/gas, /obj/item/cartridge/atmos, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm index e5fc9ce56e..5e4389f0ef 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm @@ -8,7 +8,9 @@ /obj/item/clothing/under/rank/hydroponics, /obj/item/clothing/gloves/botanic_leather, /obj/item/analyzer/plant_analyzer, - /obj/item/radio/headset/headset_service, + /obj/item/radio/headset/service, + /obj/item/radio/headset/alt/service, + /obj/item/radio/headset/earbud/service, /obj/item/clothing/head/greenbandana, /obj/item/shovel/spade, /obj/item/material/minihoe, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index a747bf9e3e..231b17b610 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -39,7 +39,8 @@ /obj/item/clothing/shoes/white, /obj/item/cartridge/medical, /obj/item/radio/headset/headset_med, - /obj/item/radio/headset/headset_med/alt, + /obj/item/radio/headset/alt/headset_med, + /obj/item/radio/headset/earbud/headset_med, /obj/item/clothing/suit/storage/hooded/wintercoat/medical, /obj/item/clothing/suit/storage/hooded/wintercoat/medical/alt, /obj/item/clothing/shoes/boots/winter/medical, @@ -108,7 +109,9 @@ /obj/item/clothing/suit/storage/toggle/labcoat/emt, /obj/item/clothing/suit/storage/hooded/wintercoat/medical/para, /obj/item/clothing/shoes/boots/winter/medical, - /obj/item/radio/headset/headset_med/alt, + /obj/item/radio/headset/headset_med, + /obj/item/radio/headset/alt/headset_med, + /obj/item/radio/headset/earbud/headset_med, /obj/item/cartridge/medical, /obj/item/storage/briefcase/inflatable, /obj/item/flashlight, @@ -143,7 +146,8 @@ /obj/item/clothing/under/rank/neo_cmo_turtle_skirt, /obj/item/clothing/under/rank/neo_cmo_gorka, /obj/item/radio/headset/heads/cmo, - /obj/item/radio/headset/heads/cmo/alt, + /obj/item/radio/headset/alt/heads/cmo, + /obj/item/radio/headset/earbud/heads/cmo, /obj/item/flash, /obj/item/reagent_containers/hypospray/vial, /obj/item/clothing/suit/storage/hooded/wintercoat/medical, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 5b5d4c42f2..f33d9ba9ae 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -45,7 +45,8 @@ /obj/item/clothing/shoes/laceup/brown, /obj/item/clothing/gloves/sterile/latex, /obj/item/radio/headset/heads/rd, - /obj/item/radio/headset/heads/rd/alt, + /obj/item/radio/headset/alt/heads/rd, + /obj/item/radio/headset/earbud/heads/rd, /obj/item/tank/air, /obj/item/clothing/mask/gas, /obj/item/flash, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 80d3bb90eb..90661f4dd4 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -10,7 +10,8 @@ /obj/item/cartridge/captain, /obj/item/storage/lockbox/medal, /obj/item/radio/headset/heads/captain, - /obj/item/radio/headset/heads/captain/alt, + /obj/item/radio/headset/alt/heads/captain, + /obj/item/radio/headset/earbud/heads/captain, /obj/item/gun/energy/gun, /obj/item/melee/telebaton, /obj/item/flash, @@ -27,7 +28,8 @@ /obj/item/clothing/head/helmet, /obj/item/cartridge/hop, /obj/item/radio/headset/heads/hop, - /obj/item/radio/headset/heads/hop/alt, + /obj/item/radio/headset/alt/heads/hop, + /obj/item/radio/headset/earbud/heads/hop, /obj/item/storage/box/ids = 2, /obj/item/gun/energy/gun/compact, /obj/item/storage/box/commandkeys, @@ -90,7 +92,8 @@ /obj/item/clothing/head/helmet/dermal, /obj/item/cartridge/hos, /obj/item/radio/headset/heads/hos, - /obj/item/radio/headset/heads/hos/alt, + /obj/item/radio/headset/alt/heads/hos, + /obj/item/radio/headset/earbud/heads/hos, /obj/item/clothing/glasses/sunglasses/sechud, /obj/item/taperoll/police, /obj/item/shield/riot, @@ -151,7 +154,8 @@ /obj/item/clothing/under/rank/neo_sec_gorka, /obj/item/cartridge/security, /obj/item/radio/headset/headset_sec, - /obj/item/radio/headset/headset_sec/alt, + /obj/item/radio/headset/alt/headset_sec, + /obj/item/radio/headset/earbud/headset_sec, /obj/item/clothing/glasses/sunglasses/sechud, /obj/item/taperoll/police, /obj/item/clothing/accessory/badge/holo/warden, @@ -189,7 +193,8 @@ /obj/item/clothing/head/helmet, /obj/item/cartridge/security, /obj/item/radio/headset/headset_sec, - /obj/item/radio/headset/headset_sec/alt, + /obj/item/radio/headset/alt/headset_sec, + /obj/item/radio/headset/earbud/headset_sec, /obj/item/storage/belt/security, /obj/item/flash, /obj/item/reagent_containers/spray/pepper, @@ -257,7 +262,8 @@ /obj/item/storage/belt/detective, /obj/item/storage/box/evidence, /obj/item/radio/headset/headset_sec, - /obj/item/radio/headset/headset_sec/alt, + /obj/item/radio/headset/alt/headset_sec, + /obj/item/radio/headset/earbud/headset_sec, /obj/item/clothing/suit/storage/vest/detective, /obj/item/taperoll/police, /obj/item/clothing/accessory/holster/armpit, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm b/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm index 7761b7f03f..e627ad4a49 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm @@ -31,7 +31,8 @@ /obj/item/clothing/head/helmet/HoS/hat/blue, /obj/item/clothing/head/helmet/dermal, /obj/item/radio/headset/heads/hos, - /obj/item/radio/headset/heads/hos/alt, + /obj/item/radio/headset/alt/heads/hos, + /obj/item/radio/headset/earbud/heads/hos, /obj/item/clothing/glasses/sunglasses/sechud, /obj/item/storage/belt/security, /obj/item/clothing/accessory/holster/waist, @@ -76,7 +77,8 @@ /obj/item/clothing/head/helmet, /obj/item/cartridge/security, /obj/item/radio/headset/headset_sec, - /obj/item/radio/headset/headset_sec/alt, + /obj/item/radio/headset/alt/headset_sec, + /obj/item/radio/headset/earbud/headset_sec, /obj/item/storage/belt/security, /obj/item/flash, /obj/item/reagent_containers/spray/pepper, @@ -122,7 +124,8 @@ /obj/item/clothing/head/helmet/dermal, /obj/item/cartridge/hos, /obj/item/radio/headset/heads/hos, - /obj/item/radio/headset/heads/hos/alt, + /obj/item/radio/headset/alt/heads/hos, + /obj/item/radio/headset/earbud/heads/hos, /obj/item/clothing/glasses/sunglasses/sechud, /obj/item/taperoll/police, /obj/item/shield/riot, @@ -169,7 +172,8 @@ /obj/item/clothing/head/helmet/warden, /obj/item/cartridge/security, /obj/item/radio/headset/headset_sec, - /obj/item/radio/headset/headset_sec/alt, + /obj/item/radio/headset/alt/headset_sec, + /obj/item/radio/headset/earbud/headset_sec, /obj/item/clothing/glasses/sunglasses/sechud, /obj/item/taperoll/police, /obj/item/clothing/accessory/badge/holo/warden, @@ -204,7 +208,8 @@ /obj/item/cartridge/captain, /obj/item/storage/lockbox/medal, /obj/item/radio/headset/heads/captain, - /obj/item/radio/headset/heads/captain/alt, + /obj/item/radio/headset/alt/heads/captain, + /obj/item/radio/headset/earbud/heads/captain, /obj/item/gunbox/captain, /obj/item/melee/telebaton, /obj/item/flash, diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index b920ecd8b7..f010c116e9 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -410,7 +410,7 @@ /obj/item/clothing/under/rank/centcom, /obj/item/clothing/under/ert, /obj/item/clothing/under/syndicate/combat, - /obj/item/radio/headset/ert/alt, + /obj/item/radio/headset/alt/ert, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/shoes/boots/swat, /obj/item/clothing/gloves/swat, diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe_vr.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe_vr.dm index 67deb1eec8..7f9956a855 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe_vr.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe_vr.dm @@ -3,13 +3,14 @@ closet_appearance = /decl/closet_appearance/tactical/alt //because ert lockers are red for some dumb reason starts_with = list( /obj/item/clothing/under/ert, - /obj/item/radio/headset/ert/alt, + /obj/item/radio/headset/ert, + /obj/item/radio/headset/alt/ert, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/shoes/boots/swat, /obj/item/clothing/gloves/swat, /obj/item/clothing/mask/balaclava/tactical, /obj/item/clothing/mask/balaclava) - + //would you believe mercs have no official locker? well, now they do. basically just a rebranded ERT locker but hey, it's an option. -Killian /obj/structure/closet/wardrobe/merc name = "mercenary equipment" @@ -18,7 +19,9 @@ starts_with = list( /obj/item/clothing/under/tactical, /obj/item/clothing/under/syndicate/combat, - /obj/item/radio/headset/syndicate/alt, + /obj/item/radio/headset/syndicate, + /obj/item/radio/headset/alt/syndicate, + /obj/item/radio/headset/earbud/syndicate, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/shoes/boots/combat, /obj/item/clothing/gloves/combat, diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index c61f8cd792..95a17a4f71 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -237,7 +237,7 @@ random_species = TRUE /obj/effect/landmark/corpse/miner - corpseradio = /obj/item/radio/headset/headset_cargo + corpseradio = /obj/item/radio/headset/miner corpseuniform = /obj/item/clothing/under/rank/miner corpsegloves = /obj/item/clothing/gloves/black corpseback = /obj/item/storage/backpack/industrial diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm index 14c56354f9..12ffc125a6 100644 --- a/code/modules/client/preference_setup/general/04_equipment.dm +++ b/code/modules/client/preference_setup/general/04_equipment.dm @@ -11,6 +11,7 @@ pref.all_underwear_metadata = check_list_copy(save_data["all_underwear_metadata"]) for(var/i in pref.all_underwear_metadata) pref.all_underwear_metadata[i] = path2text_list(pref.all_underwear_metadata[i]) + pref.headset = save_data["headset"] pref.backbag = save_data["backbag"] pref.pdachoice = save_data["pdachoice"] pref.communicator_visibility = save_data["communicator_visibility"] @@ -23,6 +24,7 @@ for(var/i in pref.all_underwear_metadata) underwear[i] = check_list_copy(pref.all_underwear_metadata[i]) save_data["all_underwear_metadata"] = underwear + save_data["headset"] = pref.headset save_data["backbag"] = pref.backbag save_data["pdachoice"] = pref.pdachoice save_data["communicator_visibility"] = pref.communicator_visibility @@ -72,6 +74,10 @@ var/global/list/valid_ringtones = list( pref.all_underwear -= underwear_category_name // TODO - Looks like this is duplicating the work of sanitize_character() if so, remove + if(pref.headset > headsetlist.len || pref.headset < 1) + pref.headset = 1 //Same as above + character.headset = pref.headset + if(pref.backbag > backbaglist.len || pref.backbag < 1) pref.backbag = 2 //Same as above character.backbag = pref.backbag @@ -107,6 +113,7 @@ var/global/list/valid_ringtones = list( for(var/underwear_metadata in pref.all_underwear_metadata) if(!(underwear_metadata in pref.all_underwear)) pref.all_underwear_metadata -= underwear_metadata + pref.headset = sanitize_integer(pref.headset, 1, headsetlist.len, initial(pref.headset)) pref.backbag = sanitize_integer(pref.backbag, 1, backbaglist.len, initial(pref.backbag)) pref.pdachoice = sanitize_integer(pref.pdachoice, 1, pdachoicelist.len, initial(pref.pdachoice)) pref.ringtone = sanitize(pref.ringtone, 20) @@ -123,6 +130,7 @@ var/global/list/valid_ringtones = list( . += " [gt.get_contents(get_metadata(UWC.name, gt))]" . += "
" + . += "Headset Type: [headsetlist[pref.headset]]
" . += "Backpack Type: [backbaglist[pref.backbag]]
" . += "PDA Type: [pdachoicelist[pref.pdachoice]]
" . += "Communicator Visibility: [(pref.communicator_visibility) ? "Yes" : "No"]
" @@ -149,6 +157,12 @@ var/global/list/valid_ringtones = list( /datum/category_item/player_setup_item/general/equipment/OnTopic(var/href,var/list/href_list, var/mob/user) + if(href_list["change_headset"]) + var/new_headset = tgui_input_list(user, "Choose your character's style of headset:", "Character Preference", headsetlist, headsetlist[pref.headset]) + if(!isnull(new_headset) && CanUseTopic(user)) + pref.headset = headsetlist.Find(new_headset) + return TOPIC_REFRESH_UPDATE_PREVIEW + if(href_list["change_backpack"]) var/new_backbag = tgui_input_list(user, "Choose your character's style of bag:", "Character Preference", backbaglist, backbaglist[pref.backbag]) if(!isnull(new_backbag) && CanUseTopic(user)) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index a6fbe93881..31899796a2 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -47,6 +47,7 @@ var/list/preferences_datums = list() var/spawnpoint = "Arrivals Shuttle" //where this character will spawn (0-2). var/b_type = "A+" //blood type (not-chooseable) var/blood_reagents = "default" //blood restoration reagents + var/headset = 1 //headset type var/backbag = 2 //backpack type var/pdachoice = 1 //PDA type var/shoe_hater = FALSE //RS ADD - if true, will spawn with no shoes diff --git a/code/modules/economy/vending_machines.dm b/code/modules/economy/vending_machines.dm index 7942381c9d..052cab2a26 100644 --- a/code/modules/economy/vending_machines.dm +++ b/code/modules/economy/vending_machines.dm @@ -1615,7 +1615,7 @@ /obj/item/clothing/head/soft/purple = 5, /obj/item/clothing/head/beret/purple = 5, /obj/item/clothing/head/headband/maid = 5, - /obj/item/radio/headset/headset_service = 5, + /obj/item/radio/headset/service = 5, /obj/item/clothing/under/rank/janitor = 5, /obj/item/clothing/under/dress/maid/janitor = 5, /obj/item/clothing/suit/storage/hooded/wintercoat/janitor = 5, diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm index c62361aee9..1952a30620 100644 --- a/code/modules/economy/vending_machines_vr.dm +++ b/code/modules/economy/vending_machines_vr.dm @@ -343,7 +343,7 @@ /obj/item/storage/box/syndie_kit/chameleon = 1, /obj/item/clothing/mask/bandana = 1, /obj/item/clothing/glasses/sunglasses = 1, - /obj/item/radio/headset/syndicate/alt = 1, + /obj/item/radio/headset/syndicate = 1, /obj/item/pda = 1, /obj/item/communicator = 1, /obj/item/tape_roll = 2, diff --git a/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm b/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm index 7beb027663..82243467c8 100644 --- a/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm +++ b/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm @@ -126,7 +126,7 @@ to_wear_helmet = /obj/item/clothing/head/helmet/dermal to_wear_glasses = /obj/item/clothing/glasses/goggles to_wear_mask = /obj/item/clothing/mask/gas/half - to_wear_l_radio = /obj/item/radio/headset/headset_rob + to_wear_l_radio = /obj/item/radio/headset to_wear_r_radio = null to_wear_uniform = /obj/item/clothing/under/color/grey to_wear_suit = /obj/item/clothing/suit/armor/vest diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index d182593d1f..8dca9ab08f 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -54,6 +54,7 @@ var/list/all_underwear = list() var/list/all_underwear_metadata = list() var/list/hide_underwear = list() + var/headset = 1 //Which headset type the player has chosen. var/backbag = 2 //Which backpack type the player has chosen. var/pdachoice = 1 //Which PDA type the player has chosen. diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 54a5f2cf29..b2a03e9cf9 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -29,6 +29,7 @@ all_underwear[WRC.name] = WRI.name + headset = rand(1,3) backbag = rand(1,6) pdachoice = rand(1,7) age = rand(current_species.min_age, current_species.max_age) diff --git a/icons/inventory/ears/mob.dmi b/icons/inventory/ears/mob.dmi index 95ec0e9c8a954c4865e18051e65bb2de6ecf3540..016c3d081d25304cbc40cf231e4847ae0f734bcf 100644 GIT binary patch literal 19037 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 IRqL1k3-yi@_W%F@ literal 19096 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 diff --git a/icons/inventory/ears/mob_teshari.dmi b/icons/inventory/ears/mob_teshari.dmi index d41f5d871f28ee1c3acce50994b548f47721ebf0..69b6b42b0bc36f69546ca7e7fb3bfa3b5041e22d 100644 GIT binary patch literal 2750 zcma)7cTm&W8vVgq0Clk-0!mXbvVaLiK!k)Y5ed>3R1idIQW7ZwK?%F;%0|Jgv`CTY zf*_~_q(lNFKqwD2AfZGlB9JIWKp`Q7l;6Ymhi`m;y>I5u{k}72=ALuz%)R(CsFOPs z)D!>!*nxC*@Bjdr2j7<5PaDYSjD5t$HhJc>mt$*dYh+}kySsb6x~u>qi{C5bBq#S; zTQ-N@0D(X<6%;P++=<8I;c)nc-Mg!+tBs6|Iw1gWNFAI6?>+9Q)53KbA_&8uP=B_vZ`T6+`cSrB4)NDX9aULj7z~*X8g5FC3cCL9wNj*bR^#G*&Jw$Ti&osR5Py{DHWyj_Fz#^XG7E1!o|rD9aJD{R?@ z@tdH1I9gPRWISFDu^|w^d+5B*QK*rNGwq5%=ZxK+O`H{GUi2@$F%l4$Pf)eiU|p zh;6@7&iwLRzT*`Wt*2S%_!vUpA786XYD%6&HR_@DGae{K_o3!uuMp(D38L*(ZI$<# z1xT$5Qh%GgF3#BS7W%hIUPaXQUReDRTK3DtqOBD&p|YmYTSK8oG~g$c(5{&SV4~|t z$8YKVO?xAh8*0&4%oEBc5~6>7=0<^ebJqv!A9TM6k82tid3F{=CYXa&b>@YsEiIM& zS>+QqEBy%bp=_qX);F{K<)tgGFFKADhbtclb*6U6Y>4@9sXd%nB7>L-+F~?J#bU^O z>=`eDDUF(^Hl^_*kaWLsI)h)&o^E}Xl8*%vSma;$Z-k_` z!V=-ytwZfqi}QTV_s6|Zsa}fr!HNQerKROBYy>WqD4pMt)gD|;Hh`+iO}p@qCw*OQ zsID9JBX+Tem&yWOO_Ti|?gOchLlwWU5IFlIG+JkHbt0A9hZb6M0s|MJLr}ah=Q4$D z;`NAXN^3}o6U;2WTuaEi08U~59vayClw_AH3PsCxvWa~z(wp9iDK1OeMD*2lsmBde zZ#fTJR_R6Tg7)M13f3etOtNCWNyH|>FE6lR0(QWJE=qEu)QfNpA9WfWd8&DVJ16I| zf!t7U9cn;}eHFo&96WJd)ql6Qo8Vu_h$x<)3Wz_+m4;QTf36`=gSImcA z)*8mi7*uHJgE@WoK2E+XocVfnwN~uk{3WI4v4}arQIO~l-dKe;M=43q1%SF61dOTL z(PHn(%6z8xuYy8)kJ38S&}uY*?4v^W0^3KOq--_OlT44H`9&eIeXa9R>O14M_4R%B z|0E5Ucd^Nn3%g7Fw&@RTn}$NiUx&C%fH0!~yA1wkpDiLbdEM}kSoghVxZzVl{c{w) zWVs?)LRR%jt1B22U5PF4aL;W~7lWm#`cVsr$TXap`&>yQQ_=Yp8N)A;6Ef6%g5g$C zwsszG)z=9J?er*p=I~2nzuWKp9=h(|^l*!1bEdL2F3p>z@JGRl`MvX;fV$g>QylcI z6r;UMcttY&nu)3Dl-*Wq;fFE`}M&!~=l-3oilt84Y{-ds6r2FHB+o4(hKRo0XdVQSUQI%V0* z2fN-Olvi;gC9jJAtl~{I#^M+=p3^${_vW&DU)5Z_Zd7>j{fD9XJ2l{7_JoE@p~c@P zaZ*ujs>INV6z4YhXZ9i|m-oTEOHZZO43>Nh`M!XXXrMlg;`EbL30HlTOCkhc-dtZj z-Qq&e2p<3ZsjEDQm^Z*=_%^4sxX7RX>yl27p2_7hMA}%lMgrHCvr;#1bvo@LCW-ez zLWbYAo`E%V@?ePX>c2Iq%J}=ZhxA7HY_l1}z;6ZWAq{Demkhl>9M1{J>Jcf2$Ems{{S67T>j%RR{Qr{zeZYv_?IC@%!fFOa zjlkVaxX}+D!*b}5)kqb)E7k$wpC)B$yW9oMMQJt}qz{HRy$Ot~&xr_j76<Zw&U_u=dLPl)twJY>w={v35v8m9_m*d1tyffa2Fq#A-7oee z@h-f%G-kR^cfsY5A>G71mo4NQphq(x_q@^z-}N55P&x*^`qwRCc-^Hc^p9cyAkewY xH%f;ITDml2yxhi4uoO^Cm-k&Y;bD!ahn{|&ugT<8D* literal 2642 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 literal 24928 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 diff --git a/maps/cynosure/cynosure-6.dmm b/maps/cynosure/cynosure-6.dmm index 56fe694d8c..95ac6376a5 100644 --- a/maps/cynosure/cynosure-6.dmm +++ b/maps/cynosure/cynosure-6.dmm @@ -10652,10 +10652,10 @@ /area/beach) "lQh" = ( /obj/structure/table/standard, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, /turf/unsimulated/floor{ icon_state = "lino" }, diff --git a/maps/submaps/admin_use_vr/kk_mercship.dmm b/maps/submaps/admin_use_vr/kk_mercship.dmm index 79a61b4b31..899fd7f736 100644 --- a/maps/submaps/admin_use_vr/kk_mercship.dmm +++ b/maps/submaps/admin_use_vr/kk_mercship.dmm @@ -6594,10 +6594,10 @@ /obj/item/radio/headset/syndicate, /obj/item/radio/headset/syndicate, /obj/item/radio/headset/syndicate, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, /obj/effect/floor_decal/techfloor{ dir = 10 }, diff --git a/maps/submaps/depreciated_vr/mercbase.dmm b/maps/submaps/depreciated_vr/mercbase.dmm index 097b6bf8a4..ca3b40f71b 100644 --- a/maps/submaps/depreciated_vr/mercbase.dmm +++ b/maps/submaps/depreciated_vr/mercbase.dmm @@ -419,10 +419,10 @@ /obj/item/radio/headset/syndicate, /obj/item/radio/headset/syndicate, /obj/item/radio/headset/syndicate, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, /turf/unsimulated/floor{ icon_state = "lino" }, diff --git a/vorestation.dme b/vorestation.dme index 9b8c8dcb74..cd766f12d6 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1311,7 +1311,6 @@ #include "code\game\objects\items\devices\radio\encryptionkey.dm" #include "code\game\objects\items\devices\radio\encryptionkey_vr.dm" #include "code\game\objects\items\devices\radio\headset.dm" -#include "code\game\objects\items\devices\radio\headset_vr.dm" #include "code\game\objects\items\devices\radio\intercom.dm" #include "code\game\objects\items\devices\radio\jammer.dm" #include "code\game\objects\items\devices\radio\jammer_vr.dm" From f7bcba989c1ecb64a99353a9d80be95443d2e2da Mon Sep 17 00:00:00 2001 From: Killian Date: Tue, 5 Nov 2024 12:04:39 +0000 Subject: [PATCH 017/109] Update headset.dm formatting --- code/game/objects/items/devices/radio/headset.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 540c8be963..24728cee21 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -114,15 +114,15 @@ keyslot2 = null recalculateChannels() - to_chat(user, "You pop out the encryption keys in the headset!") + to_chat(user, span_notice("You pop out the encryption keys in the headset!")) playsound(src, W.usesound, 50, 1) else - to_chat(user, "This headset doesn't have any encryption keys! How useless...") + to_chat(user, span_notice("This headset doesn't have any encryption keys! How useless...")) if(istype(W, /obj/item/encryptionkey/)) if(keyslot1 && keyslot2) - to_chat(user, "The headset can't hold another key!") + to_chat(user, span_notice("The headset can't hold another key!")) return if(!keyslot1) From e42899b6ef815c859e76b3efd2a828fa8aa8ba76 Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Wed, 6 Nov 2024 13:37:20 +0000 Subject: [PATCH 018/109] Update code/modules/client/preference_setup/general/04_equipment.dm Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com> --- code/modules/client/preference_setup/general/04_equipment.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm index 12ffc125a6..c1416d9934 100644 --- a/code/modules/client/preference_setup/general/04_equipment.dm +++ b/code/modules/client/preference_setup/general/04_equipment.dm @@ -160,7 +160,7 @@ var/global/list/valid_ringtones = list( if(href_list["change_headset"]) var/new_headset = tgui_input_list(user, "Choose your character's style of headset:", "Character Preference", headsetlist, headsetlist[pref.headset]) if(!isnull(new_headset) && CanUseTopic(user)) - pref.headset = headsetlist.Find(new_headset) + pref.headset = GLOB.headsetlist.Find(new_headset) return TOPIC_REFRESH_UPDATE_PREVIEW if(href_list["change_backpack"]) From f2a6b405232a2761c6a473c598126562ff996f97 Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Wed, 6 Nov 2024 13:37:28 +0000 Subject: [PATCH 019/109] Update code/_helpers/global_lists.dm Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com> --- code/_helpers/global_lists.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index fdfb15d02e..80abfae652 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -53,7 +53,7 @@ GLOBAL_LIST_INIT(custom_species_bases, new) // Species that can be used for a Cu var/datum/category_collection/underwear/global_underwear = new() //Customizables -var/global/list/headsetlist = list("Standard","Bowman","Earbud") +GLOBAL_LIST_INIT(headsetlist, list("Standard","Bowman","Earbud")) var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt", "Messenger Bag", "Sports Bag", "Strapless Satchel") var/global/list/pdachoicelist = list("Default", "Slim", "Old", "Rugged", "Holographic", "Wrist-Bound","Slider", "Vintage") var/global/list/exclude_jobs = list(/datum/job/ai,/datum/job/cyborg) From 9d9c2e925cd694ee02e2b39209810c16563756d8 Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Wed, 6 Nov 2024 13:37:33 +0000 Subject: [PATCH 020/109] Update code/modules/client/preference_setup/general/04_equipment.dm Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com> --- code/modules/client/preference_setup/general/04_equipment.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm index c1416d9934..ae41d525e1 100644 --- a/code/modules/client/preference_setup/general/04_equipment.dm +++ b/code/modules/client/preference_setup/general/04_equipment.dm @@ -113,7 +113,7 @@ var/global/list/valid_ringtones = list( for(var/underwear_metadata in pref.all_underwear_metadata) if(!(underwear_metadata in pref.all_underwear)) pref.all_underwear_metadata -= underwear_metadata - pref.headset = sanitize_integer(pref.headset, 1, headsetlist.len, initial(pref.headset)) + pref.headset = sanitize_integer(pref.headset, 1, GLOB.headsetlist.len, initial(pref.headset)) pref.backbag = sanitize_integer(pref.backbag, 1, backbaglist.len, initial(pref.backbag)) pref.pdachoice = sanitize_integer(pref.pdachoice, 1, pdachoicelist.len, initial(pref.pdachoice)) pref.ringtone = sanitize(pref.ringtone, 20) From 224f425a438b3ffe8713a2a0906f934bfc26833b Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Wed, 6 Nov 2024 13:37:39 +0000 Subject: [PATCH 021/109] Update code/modules/client/preference_setup/general/04_equipment.dm Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com> --- code/modules/client/preference_setup/general/04_equipment.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm index ae41d525e1..5ddedb9902 100644 --- a/code/modules/client/preference_setup/general/04_equipment.dm +++ b/code/modules/client/preference_setup/general/04_equipment.dm @@ -74,7 +74,7 @@ var/global/list/valid_ringtones = list( pref.all_underwear -= underwear_category_name // TODO - Looks like this is duplicating the work of sanitize_character() if so, remove - if(pref.headset > headsetlist.len || pref.headset < 1) + if(pref.headset > GLOB.headsetlist.len || pref.headset < 1) pref.headset = 1 //Same as above character.headset = pref.headset From 7879b00c30e4cef3b156a677179a63793b950d56 Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Wed, 6 Nov 2024 13:37:46 +0000 Subject: [PATCH 022/109] Update code/modules/client/preference_setup/general/04_equipment.dm Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com> --- code/modules/client/preference_setup/general/04_equipment.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm index 5ddedb9902..0319d713c5 100644 --- a/code/modules/client/preference_setup/general/04_equipment.dm +++ b/code/modules/client/preference_setup/general/04_equipment.dm @@ -130,7 +130,7 @@ var/global/list/valid_ringtones = list( . += " [gt.get_contents(get_metadata(UWC.name, gt))]" . += "
" - . += "Headset Type: [headsetlist[pref.headset]]
" + . += "Headset Type: [GLOB.headsetlist[pref.headset]]
" . += "Backpack Type: [backbaglist[pref.backbag]]
" . += "PDA Type: [pdachoicelist[pref.pdachoice]]
" . += "Communicator Visibility: [(pref.communicator_visibility) ? "Yes" : "No"]
" From 71772fefbfcb95744c25efb377f397b248ef1fcc Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Wed, 6 Nov 2024 13:37:52 +0000 Subject: [PATCH 023/109] Update code/modules/client/preference_setup/general/04_equipment.dm Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com> --- code/modules/client/preference_setup/general/04_equipment.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm index 0319d713c5..b76ff9ee38 100644 --- a/code/modules/client/preference_setup/general/04_equipment.dm +++ b/code/modules/client/preference_setup/general/04_equipment.dm @@ -158,7 +158,7 @@ var/global/list/valid_ringtones = list( /datum/category_item/player_setup_item/general/equipment/OnTopic(var/href,var/list/href_list, var/mob/user) if(href_list["change_headset"]) - var/new_headset = tgui_input_list(user, "Choose your character's style of headset:", "Character Preference", headsetlist, headsetlist[pref.headset]) + var/new_headset = tgui_input_list(user, "Choose your character's style of headset:", "Character Preference", GLOB.headsetlist, GLOB.headsetlist[pref.headset]) if(!isnull(new_headset) && CanUseTopic(user)) pref.headset = GLOB.headsetlist.Find(new_headset) return TOPIC_REFRESH_UPDATE_PREVIEW From 9fff34e6ad0bb045c56ffa8083bb1fc847ac9955 Mon Sep 17 00:00:00 2001 From: Killian Date: Thu, 7 Nov 2024 03:06:56 +0000 Subject: [PATCH 024/109] attachable knuckledusters and force transfer --- code/datums/autolathe/arms.dm | 2 +- .../game/objects/items/weapons/material/shards.dm | 3 +-- code/game/objects/random/misc.dm | 2 +- code/game/objects/random/mob_vr.dm | 2 +- code/game/objects/structures/trash_pile_vr.dm | 2 +- code/modules/clothing/accessories/accessory.dm | 9 +++++++++ code/modules/clothing/accessories/hands.dm | 13 +++++++++++++ code/modules/clothing/accessories/rings.dm | 2 ++ code/modules/clothing/gloves/miscellaneous.dm | 15 --------------- maps/redgate/cybercity.dmm | 2 +- maps/redgate/fantasy.dmm | 2 +- maps/submaps/admin_use_vr/kk_mercship.dmm | 4 ++-- maps/submaps/depreciated_vr/mercbase.dmm | 10 +++++----- vorestation.dme | 1 + 14 files changed, 39 insertions(+), 30 deletions(-) create mode 100644 code/modules/clothing/accessories/hands.dm diff --git a/code/datums/autolathe/arms.dm b/code/datums/autolathe/arms.dm index 9bceaf27e6..41caf5a74d 100644 --- a/code/datums/autolathe/arms.dm +++ b/code/datums/autolathe/arms.dm @@ -443,7 +443,7 @@ /datum/category_item/autolathe/arms/knuckledusters name = "knuckle dusters" - path =/obj/item/clothing/gloves/knuckledusters + path =/obj/item/clothing/accessory/knuckledusters hidden = 1 /datum/category_item/autolathe/arms/tacknife diff --git a/code/game/objects/items/weapons/material/shards.dm b/code/game/objects/items/weapons/material/shards.dm index ecd8df8456..3095bce584 100644 --- a/code/game/objects/items/weapons/material/shards.dm +++ b/code/game/objects/items/weapons/material/shards.dm @@ -65,8 +65,7 @@ var/light_glove_d = rand(2, 4) var/no_glove_d = rand(4, 6) var/list/forbidden_gloves = list( - /obj/item/clothing/gloves/sterile, - /obj/item/clothing/gloves/knuckledusters + /obj/item/clothing/gloves/sterile ) if(src == user.l_hand) diff --git a/code/game/objects/random/misc.dm b/code/game/objects/random/misc.dm index adc5226093..51c745c1ce 100644 --- a/code/game/objects/random/misc.dm +++ b/code/game/objects/random/misc.dm @@ -263,7 +263,7 @@ prob(6);/obj/item/material/butterflyblade, prob(6);/obj/item/material/butterflyhandle, prob(2);/obj/item/material/butterfly/switchblade, - prob(2);/obj/item/clothing/gloves/knuckledusters, + prob(2);/obj/item/clothing/accessory/knuckledusters, prob(1);/obj/item/material/knife/tacknife, prob(1);/obj/item/clothing/suit/storage/vest/heavy/merc, prob(1);/obj/item/beartrap, diff --git a/code/game/objects/random/mob_vr.dm b/code/game/objects/random/mob_vr.dm index 6b7dfa3967..e13801e149 100644 --- a/code/game/objects/random/mob_vr.dm +++ b/code/game/objects/random/mob_vr.dm @@ -154,7 +154,7 @@ prob(4);/obj/item/storage/pill_bottle/zoom, prob(4);/obj/item/material/butterfly, prob(2);/obj/item/material/butterfly/switchblade, - prob(2);/obj/item/clothing/gloves/knuckledusters, + prob(2);/obj/item/clothing/accessory/knuckledusters, prob(2);/obj/item/reagent_containers/syringe/drugs, prob(1);/obj/item/material/knife/tacknife, prob(1);/obj/item/clothing/suit/storage/vest/heavy/merc, diff --git a/code/game/objects/structures/trash_pile_vr.dm b/code/game/objects/structures/trash_pile_vr.dm index 26d9b82066..c53a14b659 100644 --- a/code/game/objects/structures/trash_pile_vr.dm +++ b/code/game/objects/structures/trash_pile_vr.dm @@ -292,7 +292,7 @@ prob(3);/obj/item/cracker, prob(3);/obj/item/material/butterfly, prob(3);/obj/item/material/butterfly/switchblade, - prob(3);/obj/item/clothing/gloves/knuckledusters, + prob(3);/obj/item/clothing/accessory/knuckledusters, prob(3);/obj/item/clothing/gloves/heavy_engineer, prob(3);/obj/item/reagent_containers/syringe/drugs, prob(2);/obj/item/implanter/sizecontrol, diff --git a/code/modules/clothing/accessories/accessory.dm b/code/modules/clothing/accessories/accessory.dm index 7c4b968b09..29721f42af 100644 --- a/code/modules/clothing/accessories/accessory.dm +++ b/code/modules/clothing/accessories/accessory.dm @@ -82,6 +82,11 @@ src.forceMove(S) has_suit.add_overlay(get_inv_overlay()) + has_suit.force += force + if(istype(S,/obj/item/clothing/gloves)) + var/obj/item/clothing/gloves/has_gloves = S + has_gloves.punch_force += force + if(user) to_chat(user, span_notice("You attach \the [src] to \the [has_suit].")) add_fingerprint(user) @@ -90,6 +95,10 @@ if(!has_suit) return has_suit.cut_overlay(get_inv_overlay()) + has_suit.force = initial(has_suit.force) + if(istype(has_suit,/obj/item/clothing/gloves)) + var/obj/item/clothing/gloves/has_gloves = has_suit + has_gloves.punch_force = initial(has_gloves.punch_force) has_suit = null if(user) usr.put_in_hands(src) diff --git a/code/modules/clothing/accessories/hands.dm b/code/modules/clothing/accessories/hands.dm new file mode 100644 index 0000000000..433dac69c2 --- /dev/null +++ b/code/modules/clothing/accessories/hands.dm @@ -0,0 +1,13 @@ +/obj/item/clothing/accessory/knuckledusters + name = "knuckle dusters" + desc = "A pair of brass knuckles. Generally used to enhance the user's punches." + icon_state = "knuckledusters" + slot = ACCESSORY_SLOT_RING + slot_flags = SLOT_GLOVES + matter = list(MAT_STEEL = 500) + attack_verb = list("punched", "beaten", "struck") + siemens_coefficient = 1 + force = 5 + icon = 'icons/inventory/hands/item.dmi' + drop_sound = 'sound/items/drop/metalboots.ogg' + pickup_sound = 'sound/items/pickup/toolbox.ogg' diff --git a/code/modules/clothing/accessories/rings.dm b/code/modules/clothing/accessories/rings.dm index e7eb623f4c..2be023e129 100644 --- a/code/modules/clothing/accessories/rings.dm +++ b/code/modules/clothing/accessories/rings.dm @@ -16,6 +16,8 @@ icon = 'icons/inventory/hands/item.dmi' drop_sound = 'sound/items/drop/ring.ogg' pickup_sound = 'sound/items/pickup/ring.ogg' + force = 2 + siemens_coefficient = 1 ///////////////////////////////////////// //Standard Rings diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index cb5e214fd6..31e641348a 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -121,21 +121,6 @@ heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE -/obj/item/clothing/gloves/knuckledusters - name = "knuckle dusters" - desc = "A pair of brass knuckles. Generally used to enhance the user's punches." - icon_state = "knuckledusters" - matter = list(MAT_STEEL = 500) - attack_verb = list("punched", "beaten", "struck") - flags = THICKMATERIAL // Stops rings from increasing hit strength - siemens_coefficient = 1 - fingerprint_chance = 100 - overgloves = 1 - force = 5 - punch_force = 5 - drop_sound = 'sound/items/drop/metalboots.ogg' - pickup_sound = 'sound/items/pickup/toolbox.ogg' - /obj/item/clothing/gloves/ranger var/glovecolor = "white" name = "ranger gloves" diff --git a/maps/redgate/cybercity.dmm b/maps/redgate/cybercity.dmm index b6ee042216..f805c026d8 100644 --- a/maps/redgate/cybercity.dmm +++ b/maps/redgate/cybercity.dmm @@ -9085,7 +9085,7 @@ /turf/simulated/floor/tiled/white, /area/redgate/city/supermarket) "lXc" = ( -/obj/item/clothing/gloves/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, /turf/simulated/floor/wood/alt/tile, /area/redgate/city/fightclub) "lXi" = ( diff --git a/maps/redgate/fantasy.dmm b/maps/redgate/fantasy.dmm index 55252e07c6..3ab8fa68a0 100644 --- a/maps/redgate/fantasy.dmm +++ b/maps/redgate/fantasy.dmm @@ -5126,7 +5126,7 @@ /area/redgate/fantasy/house) "FQ" = ( /obj/structure/table/woodentable, -/obj/item/clothing/gloves/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, /turf/simulated/floor/wood/alt, /area/redgate/fantasy/house) "FS" = ( diff --git a/maps/submaps/admin_use_vr/kk_mercship.dmm b/maps/submaps/admin_use_vr/kk_mercship.dmm index 79a61b4b31..ae2921fbf7 100644 --- a/maps/submaps/admin_use_vr/kk_mercship.dmm +++ b/maps/submaps/admin_use_vr/kk_mercship.dmm @@ -9996,8 +9996,8 @@ /obj/machinery/recharger/wallcharger{ pixel_y = 20 }, -/obj/item/clothing/gloves/knuckledusters, -/obj/item/clothing/gloves/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, /obj/item/flash, /obj/item/flash, /obj/item/laser_pointer/upgraded, diff --git a/maps/submaps/depreciated_vr/mercbase.dmm b/maps/submaps/depreciated_vr/mercbase.dmm index 097b6bf8a4..1c3ea488ff 100644 --- a/maps/submaps/depreciated_vr/mercbase.dmm +++ b/maps/submaps/depreciated_vr/mercbase.dmm @@ -2463,11 +2463,11 @@ }, /area/antag/antag_base) "dM" = ( -/obj/item/clothing/gloves/knuckledusters, -/obj/item/clothing/gloves/knuckledusters, -/obj/item/clothing/gloves/knuckledusters, -/obj/item/clothing/gloves/knuckledusters, -/obj/item/clothing/gloves/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, /obj/structure/table/steel, /obj/effect/floor_decal/borderfloorblack{ dir = 6 diff --git a/vorestation.dme b/vorestation.dme index 0d08bb68dc..b356b34d55 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2137,6 +2137,7 @@ #include "code\modules\clothing\accessories\badges_vr.dm" #include "code\modules\clothing\accessories\clothing.dm" #include "code\modules\clothing\accessories\clothing_vr.dm" +#include "code\modules\clothing\accessories\hands.dm" #include "code\modules\clothing\accessories\holster.dm" #include "code\modules\clothing\accessories\holster_vr.dm" #include "code\modules\clothing\accessories\lockets.dm" From 64fa9e5a78972ec4de1db09c8cbf100ac5a31667 Mon Sep 17 00:00:00 2001 From: Killian Date: Thu, 7 Nov 2024 19:13:09 +0000 Subject: [PATCH 025/109] Update headset.dm --- code/game/objects/items/devices/radio/headset.dm | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 24728cee21..bc676341d3 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -572,21 +572,13 @@ /obj/item/radio/headset/syndicate origin_tech = list(TECH_ILLEGAL = 3) - syndie = 1 - ks1type = /obj/item/encryptionkey/syndicate - -/obj/item/radio/headset/alt/syndicate - origin_tech = list(TECH_ILLEGAL = 3) - syndie = 1 - ks1type = /obj/item/encryptionkey/syndicate - -/obj/item/radio/headset/earbud/syndicate - origin_tech = list(TECH_ILLEGAL = 3) + icon_state = "syndie_headset" syndie = 1 ks1type = /obj/item/encryptionkey/syndicate /obj/item/radio/headset/raider origin_tech = list(TECH_ILLEGAL = 2) + icon_state = "syndie_headset" syndie = 1 ks1type = /obj/item/encryptionkey/raider From 7c0942e8b05b718692ca2ce5e3d248a104206870 Mon Sep 17 00:00:00 2001 From: Killian Date: Fri, 8 Nov 2024 10:49:57 +0000 Subject: [PATCH 026/109] restore bonus damage w/o gloves --- code/__defines/items_clothing.dm | 2 +- code/modules/clothing/accessories/accessory.dm | 2 ++ code/modules/clothing/accessories/hands.dm | 5 +++++ code/modules/clothing/accessories/rings.dm | 1 + code/modules/mob/living/carbon/human/human_attackhand.dm | 8 ++++++-- 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/code/__defines/items_clothing.dm b/code/__defines/items_clothing.dm index 8ecdb1326c..2a0b2ce9de 100644 --- a/code/__defines/items_clothing.dm +++ b/code/__defines/items_clothing.dm @@ -40,7 +40,7 @@ #define ACCESSORY_SLOT_ARMOR_M 0x8000 #define ACCESSORY_SLOT_HELM_C 0x10000 //24 bit - higher than 0x80000 will overflow -#define ACCESSORY_SLOT_RING 0x20000 //rings +#define ACCESSORY_SLOT_RING 0x20000 //rings, knuckledusters #define ACCESSORY_SLOT_WRIST 0x40000 //wristwatches, wrist PDA maybe? // Bitmasks for the /obj/item/var/flags_inv variable. These determine when a piece of clothing hides another, i.e. a helmet hiding glasses. diff --git a/code/modules/clothing/accessories/accessory.dm b/code/modules/clothing/accessories/accessory.dm index 29721f42af..56234bb5bb 100644 --- a/code/modules/clothing/accessories/accessory.dm +++ b/code/modules/clothing/accessories/accessory.dm @@ -12,6 +12,8 @@ var/image/inv_overlay = null // Overlay used when attached to clothing. var/image/mob_overlay = null var/overlay_state = null + var/punch_force = 0 // added melee damage + var/punch_damtype = BRUTE // added melee damage type var/concealed_holster = 0 var/mob/living/carbon/human/wearer = null // To check if the wearer changes, so species spritesheets change properly. var/list/on_rolled = list() // Used when jumpsuit sleevels are rolled ("rolled" entry) or it's rolled down ("down"). Set to "none" to hide in those states. diff --git a/code/modules/clothing/accessories/hands.dm b/code/modules/clothing/accessories/hands.dm index 433dac69c2..8422e5e786 100644 --- a/code/modules/clothing/accessories/hands.dm +++ b/code/modules/clothing/accessories/hands.dm @@ -7,7 +7,12 @@ matter = list(MAT_STEEL = 500) attack_verb = list("punched", "beaten", "struck") siemens_coefficient = 1 + punch_force = 5 force = 5 icon = 'icons/inventory/hands/item.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_gloves.dmi', + ) drop_sound = 'sound/items/drop/metalboots.ogg' pickup_sound = 'sound/items/pickup/toolbox.ogg' diff --git a/code/modules/clothing/accessories/rings.dm b/code/modules/clothing/accessories/rings.dm index 2be023e129..15f52a6b1c 100644 --- a/code/modules/clothing/accessories/rings.dm +++ b/code/modules/clothing/accessories/rings.dm @@ -17,6 +17,7 @@ drop_sound = 'sound/items/drop/ring.ogg' pickup_sound = 'sound/items/pickup/ring.ogg' force = 2 + punch_force = 2 siemens_coefficient = 1 ///////////////////////////////////////// diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 542dafb6f6..7911b33039 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -272,8 +272,12 @@ var/obj/item/clothing/gloves/G = H.gloves real_damage += G.punch_force hit_dam_type = G.punch_damtype - if(H.pulling_punches && !attack.sharp && !attack.edge) //SO IT IS DECREED: PULLING PUNCHES WILL PREVENT THE ACTUAL DAMAGE FROM RINGS AND KNUCKLES, BUT NOT THE ADDED PAIN, BUT YOU CAN'T "PULL" A KNIFE - hit_dam_type = AGONY + else if(istype(H.gloves, /obj/item/clothing/accessory)) + var/obj/item/clothing/accessory/G = H.gloves + real_damage += G.punch_force + hit_dam_type = G.punch_damtype + if(H.pulling_punches && !attack.sharp && !attack.edge) //SO IT IS DECREED: PULLING PUNCHES WILL PREVENT THE ACTUAL DAMAGE FROM RINGS AND KNUCKLES, BUT NOT THE ADDED PAIN, BUT YOU CAN'T "PULL" A KNIFE + hit_dam_type = AGONY real_damage *= damage_multiplier rand_damage *= damage_multiplier if(HULK in H.mutations) From 26503760bf63f1c6161e2315cf76b17c6d5c0500 Mon Sep 17 00:00:00 2001 From: Killian Date: Fri, 8 Nov 2024 11:06:49 +0000 Subject: [PATCH 027/109] melee damage adjustments --- code/modules/clothing/accessories/accessory.dm | 2 +- code/modules/clothing/accessories/hands.dm | 4 ++-- code/modules/clothing/accessories/rings.dm | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/clothing/accessories/accessory.dm b/code/modules/clothing/accessories/accessory.dm index 56234bb5bb..e005048399 100644 --- a/code/modules/clothing/accessories/accessory.dm +++ b/code/modules/clothing/accessories/accessory.dm @@ -87,7 +87,7 @@ has_suit.force += force if(istype(S,/obj/item/clothing/gloves)) var/obj/item/clothing/gloves/has_gloves = S - has_gloves.punch_force += force + has_gloves.punch_force = has_gloves.punch_force + punch_force if(user) to_chat(user, span_notice("You attach \the [src] to \the [has_suit].")) diff --git a/code/modules/clothing/accessories/hands.dm b/code/modules/clothing/accessories/hands.dm index 8422e5e786..26533291f1 100644 --- a/code/modules/clothing/accessories/hands.dm +++ b/code/modules/clothing/accessories/hands.dm @@ -7,8 +7,8 @@ matter = list(MAT_STEEL = 500) attack_verb = list("punched", "beaten", "struck") siemens_coefficient = 1 - punch_force = 5 - force = 5 + force = 10 //base punch strength is 5 + punch_force = 5 //added to base punch strength when added as a glove accessory icon = 'icons/inventory/hands/item.dmi' item_icons = list( slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi', diff --git a/code/modules/clothing/accessories/rings.dm b/code/modules/clothing/accessories/rings.dm index 15f52a6b1c..361c87c854 100644 --- a/code/modules/clothing/accessories/rings.dm +++ b/code/modules/clothing/accessories/rings.dm @@ -16,8 +16,8 @@ icon = 'icons/inventory/hands/item.dmi' drop_sound = 'sound/items/drop/ring.ogg' pickup_sound = 'sound/items/pickup/ring.ogg' - force = 2 - punch_force = 2 + force = 7 //base punch strength is 5 + punch_force = 2 //added to base punch strength when added as a glove accessory siemens_coefficient = 1 ///////////////////////////////////////// From 1099a4e3785800929845e68194b5452a52254940 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sat, 9 Nov 2024 22:06:34 +0100 Subject: [PATCH 028/109] we don't have a proper init order --- code/controllers/subsystems/assets.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/controllers/subsystems/assets.dm b/code/controllers/subsystems/assets.dm index d34d05ff55..83f5ae7f30 100644 --- a/code/controllers/subsystems/assets.dm +++ b/code/controllers/subsystems/assets.dm @@ -1,3 +1,7 @@ +/datum/configuration/load() + . = ..() + SSassets.OnConfigLoad() + SUBSYSTEM_DEF(assets) name = "Assets" init_order = INIT_ORDER_ASSETS @@ -23,7 +27,6 @@ SUBSYSTEM_DEF(assets) /datum/controller/subsystem/assets/Initialize() - OnConfigLoad() for(var/type in typesof(/datum/asset)) var/datum/asset/A = type From 70c6bde9bd7e3efaa93d87eb356dc508fcbf0bd5 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sat, 9 Nov 2024 22:17:07 +0100 Subject: [PATCH 029/109] chat assets --- code/_helpers/text.dm | 11 ++++++----- code/controllers/subsystems/assets.dm | 5 +---- code/modules/asset_cache/assets/chat.dm | 3 +-- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/code/_helpers/text.dm b/code/_helpers/text.dm index 520b98d39a..27e99a37a4 100644 --- a/code/_helpers/text.dm +++ b/code/_helpers/text.dm @@ -343,16 +343,17 @@ //The icon var could be local in the proc, but it's a waste of resources // to always create it and then throw it out. /var/icon/text_tag_icons = 'icons/chattags.dmi' -/var/list/text_tag_cache = list() +GLOBAL_LIST_EMPTY(text_tag_cache) + /proc/create_text_tag(var/tagname, var/tagdesc = tagname, var/client/C = null) if(!(C && C.prefs?.read_preference(/datum/preference/toggle/chat_tags))) return tagdesc - if(!text_tag_cache[tagname]) - var/icon/tag = icon(text_tag_icons, tagname) - text_tag_cache[tagname] = tag + if(!GLOB.text_tag_cache[tagname]) + var/datum/asset/spritesheet/chatassets = get_asset_datum(/datum/asset/spritesheet/chat) + GLOB.text_tag_cache[tagname] = chatassets.icon_tag(tagname) if(!C.tgui_panel.is_ready() || C.tgui_panel.oldchat) return "[tagdesc]" - return icon2html(text_tag_cache[tagname], C, extra_classes = "text_tag") + return GLOB.text_tag_cache[tagname] /proc/create_text_tag_old(var/tagname, var/tagdesc = tagname, var/client/C = null) if(!(C && C.prefs?.read_preference(/datum/preference/toggle/chat_tags))) diff --git a/code/controllers/subsystems/assets.dm b/code/controllers/subsystems/assets.dm index 83f5ae7f30..d34d05ff55 100644 --- a/code/controllers/subsystems/assets.dm +++ b/code/controllers/subsystems/assets.dm @@ -1,7 +1,3 @@ -/datum/configuration/load() - . = ..() - SSassets.OnConfigLoad() - SUBSYSTEM_DEF(assets) name = "Assets" init_order = INIT_ORDER_ASSETS @@ -27,6 +23,7 @@ SUBSYSTEM_DEF(assets) /datum/controller/subsystem/assets/Initialize() + OnConfigLoad() for(var/type in typesof(/datum/asset)) var/datum/asset/A = type diff --git a/code/modules/asset_cache/assets/chat.dm b/code/modules/asset_cache/assets/chat.dm index 0853ea542c..82d33e381b 100644 --- a/code/modules/asset_cache/assets/chat.dm +++ b/code/modules/asset_cache/assets/chat.dm @@ -2,5 +2,4 @@ name = "chat" /datum/asset/spritesheet/chat/create_spritesheets() - //honk - //This function has to be overridden otherwise it will generate runtimes + InsertAll("", text_tag_icons) //Chomp - OOC, LOOC ect icons From d929645c49f840e9a7c60c84bce2848326238f4e Mon Sep 17 00:00:00 2001 From: ShadowLarkens Date: Sun, 10 Nov 2024 00:19:03 -0800 Subject: [PATCH 030/109] Completely merk all traces of the skill system --- code/modules/admin/admin.dm | 17 -- code/modules/admin/admin_verb_lists.dm | 3 - code/modules/admin/admin_verb_lists_vr.dm | 3 - .../preference_setup/preference_setup.dm | 5 - .../client/preference_setup/skills/skills.dm | 89 -------- code/modules/client/preferences.dm | 56 ----- code/modules/events/meteors.dm | 12 +- .../mob/living/carbon/human/human_defines.dm | 4 - .../carbon/human/species/species_attack.dm | 2 - code/modules/mob/new_player/skill.dm | 213 ------------------ code/modules/mob/skillset.dm | 12 - .../file_system/programs/generic/game.dm | 4 - .../overmap/disperser/disperser_console.dm | 6 +- code/modules/overmap/overmap_shuttle.dm | 14 +- .../overmap/ships/computers/computer_shims.dm | 1 - code/modules/overmap/ships/computers/helm.dm | 6 - .../overmap/ships/computers/shuttle.dm | 4 - code/modules/overmap/ships/ship.dm | 6 - .../tgui/interfaces/OvermapDisperser.tsx | 1 - vorestation.dme | 3 - 20 files changed, 5 insertions(+), 456 deletions(-) delete mode 100644 code/modules/client/preference_setup/skills/skills.dm delete mode 100644 code/modules/mob/new_player/skill.dm delete mode 100644 code/modules/mob/skillset.dm diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index f7e33d15d3..4e67482292 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1284,23 +1284,6 @@ var/datum/announcement/minor/admin_min_announcer = new if(!ai_number) to_chat(usr, span_bold("No AIs located")) //Just so you know the thing is actually working and not just ignoring you. -/datum/admins/proc/show_skills() - set category = "Admin.Investigate" - set name = "Show Skills" - - if (!istype(src,/datum/admins)) - src = usr.client.holder - if (!istype(src,/datum/admins)) - to_chat(usr, "Error: you are not an admin!") - return - - var/mob/living/carbon/human/M = tgui_input_list(usr, "Select mob.", "Select mob.", human_mob_list) - if(!M) return - - show_skill_window(usr, M) - - return - /client/proc/update_mob_sprite(mob/living/carbon/human/H as mob) set category = "Admin.Game" set name = "Update Mob Sprite" diff --git a/code/modules/admin/admin_verb_lists.dm b/code/modules/admin/admin_verb_lists.dm index c0c031d244..44f5c6e1ca 100644 --- a/code/modules/admin/admin_verb_lists.dm +++ b/code/modules/admin/admin_verb_lists.dm @@ -84,7 +84,6 @@ var/list/admin_verbs_admin = list( /client/proc/cmd_admin_rejuvenate, /client/proc/toggleghostwriters, /client/proc/toggledrones, - /datum/admins/proc/show_skills, /client/proc/check_customitem_activity, /client/proc/man_up, /client/proc/global_man_up, @@ -355,7 +354,6 @@ var/list/admin_verbs_mod = list( /client/proc/colorooc, /client/proc/player_panel_new, /client/proc/dsay, - /datum/admins/proc/show_skills, /datum/admins/proc/show_player_panel, /client/proc/check_antagonists, /client/proc/aooc, @@ -472,7 +470,6 @@ var/list/admin_verbs_event_manager = list( /client/proc/cmd_admin_change_custom_event, /client/proc/cmd_admin_rejuvenate, /client/proc/toggleghostwriters, - /datum/admins/proc/show_skills, /client/proc/man_up, /client/proc/global_man_up, /client/proc/response_team, // Response Teams admin verb, diff --git a/code/modules/admin/admin_verb_lists_vr.dm b/code/modules/admin/admin_verb_lists_vr.dm index 4b29645516..fac337afb8 100644 --- a/code/modules/admin/admin_verb_lists_vr.dm +++ b/code/modules/admin/admin_verb_lists_vr.dm @@ -99,7 +99,6 @@ var/list/admin_verbs_admin = list( /client/proc/cmd_admin_rejuvenate, /client/proc/toggleghostwriters, /client/proc/toggledrones, - /datum/admins/proc/show_skills, /client/proc/check_customitem_activity, /client/proc/man_up, /client/proc/global_man_up, @@ -405,7 +404,6 @@ var/list/admin_verbs_mod = list( /client/proc/colorooc, /client/proc/player_panel_new, /client/proc/dsay, - /datum/admins/proc/show_skills, /datum/admins/proc/show_player_panel, /client/proc/check_antagonists, /client/proc/aooc, @@ -534,7 +532,6 @@ var/list/admin_verbs_event_manager = list( /client/proc/cmd_admin_change_custom_event, /client/proc/cmd_admin_rejuvenate, /client/proc/toggleghostwriters, - /datum/admins/proc/show_skills, /client/proc/man_up, /client/proc/global_man_up, /client/proc/response_team, // Response Teams admin verb, diff --git a/code/modules/client/preference_setup/preference_setup.dm b/code/modules/client/preference_setup/preference_setup.dm index 1aa899e744..d43fb0529c 100644 --- a/code/modules/client/preference_setup/preference_setup.dm +++ b/code/modules/client/preference_setup/preference_setup.dm @@ -7,11 +7,6 @@ sort_order = 1 category_item_type = /datum/category_item/player_setup_item/general -/datum/category_group/player_setup_category/skill_preferences - name = "Skills" - sort_order = 2 - category_item_type = /datum/category_item/player_setup_item/skills - /datum/category_group/player_setup_category/occupation_preferences name = "Occupation" sort_order = 3 diff --git a/code/modules/client/preference_setup/skills/skills.dm b/code/modules/client/preference_setup/skills/skills.dm deleted file mode 100644 index a77254d638..0000000000 --- a/code/modules/client/preference_setup/skills/skills.dm +++ /dev/null @@ -1,89 +0,0 @@ -/datum/category_item/player_setup_item/skills - name = "Skills" - sort_order = 1 - -/datum/category_item/player_setup_item/skills/load_character(list/save_data) - pref.skills = check_list_copy(save_data["skills"]) - pref.used_skillpoints = save_data["used_skillpoints"] - pref.skill_specialization = save_data["skill_specialization"] - -/datum/category_item/player_setup_item/skills/save_character(list/save_data) - save_data["skills"] = check_list_copy(pref.skills) - save_data["used_skillpoints"] = pref.used_skillpoints - save_data["skill_specialization"] = pref.skill_specialization - -/datum/category_item/player_setup_item/skills/sanitize_character() - if(SKILLS == null) setup_skills() - if(!pref.skills) pref.skills = list() - if(!pref.skills.len) pref.ZeroSkills() - if(pref.used_skillpoints < 0) pref.used_skillpoints = 0 - -// Moved from /datum/preferences/proc/copy_to() -/datum/category_item/player_setup_item/skills/copy_to_mob(var/mob/living/carbon/human/character) - character.skills = pref.skills - character.used_skillpoints = pref.used_skillpoints - -/datum/category_item/player_setup_item/skills/content() - . = list() - . += span_bold("Select your Skills") + "
" - . += "Current skill level: [pref.GetSkillClass(pref.used_skillpoints)] ([pref.used_skillpoints])
" - . += "Use preconfigured skillset
" - . += "" - for(var/V in SKILLS) - . += "" - for(var/datum/skill/S in SKILLS[V]) - var/level = pref.skills[S.ID] - . += "" - . += "" - . += skill_to_button(S, "Untrained", level, SKILL_NONE) - // secondary skills don't have an amateur level - if(S.secondary) - . += "" - else - . += skill_to_button(S, "Amateur", level, SKILL_BASIC) - . += skill_to_button(S, "Trained", level, SKILL_ADEPT) - . += skill_to_button(S, "Professional", level, SKILL_EXPERT) - . += "" - . += "
[V]" - . += "
[S.name]
" - . = jointext(.,null) - -/datum/category_item/player_setup_item/proc/skill_to_button(var/skill, var/level_name, var/current_level, var/selection_level) - if(current_level == selection_level) - return "" + span_linkOn("[level_name]") + "" - return "[level_name]" - -/datum/category_item/player_setup_item/skills/OnTopic(href, href_list, user) - if(href_list["skillinfo"]) - var/datum/skill/S = locate(href_list["skillinfo"]) - var/HTML = span_bold("[S.name]") + "
[S.desc]" - user << browse(HTML, "window=\ref[user]skillinfo") - return TOPIC_HANDLED - - else if(href_list["setskill"]) - var/datum/skill/S = locate(href_list["setskill"]) - var/value = text2num(href_list["newvalue"]) - pref.skills[S.ID] = value - pref.CalculateSkillPoints() - return TOPIC_REFRESH - - else if(href_list["preconfigured"]) - var/selected = tgui_input_list(user, "Select a skillset", "Skillset", SKILL_PRE) - if(!selected || !CanUseTopic(user)) return - - pref.ZeroSkills(1) - for(var/V in SKILL_PRE[selected]) - if(V == "field") - pref.skill_specialization = SKILL_PRE[selected]["field"] - continue - pref.skills[V] = SKILL_PRE[selected][V] - pref.CalculateSkillPoints() - - return TOPIC_REFRESH - - else if(href_list["setspecialization"]) - pref.skill_specialization = href_list["setspecialization"] - pref.CalculateSkillPoints() - return TOPIC_REFRESH - - return ..() diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 31899796a2..f2d0f5b2da 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -122,10 +122,6 @@ var/list/preferences_datums = list() //Keeps track of preferrence for not getting any wanted jobs var/alternate_option = 1 - var/used_skillpoints = 0 - var/skill_specialization = null - var/list/skills = list() // skills can range from 0 to 3 - // maps each organ to either null(intact), "cyborg" or "amputated" // will probably not be able to do this for head and torso ;) var/list/organ_data = list() @@ -233,58 +229,6 @@ var/list/preferences_datums = list() value_cache = null return ..() -/datum/preferences/proc/ZeroSkills(var/forced = 0) - for(var/V in SKILLS) for(var/datum/skill/S in SKILLS[V]) - if(!skills.Find(S.ID) || forced) - skills[S.ID] = SKILL_NONE - -/datum/preferences/proc/CalculateSkillPoints() - used_skillpoints = 0 - for(var/V in SKILLS) for(var/datum/skill/S in SKILLS[V]) - var/multiplier = 1 - switch(skills[S.ID]) - if(SKILL_NONE) - used_skillpoints += 0 * multiplier - if(SKILL_BASIC) - used_skillpoints += 1 * multiplier - if(SKILL_ADEPT) - // secondary skills cost less - if(S.secondary) - used_skillpoints += 1 * multiplier - else - used_skillpoints += 3 * multiplier - if(SKILL_EXPERT) - // secondary skills cost less - if(S.secondary) - used_skillpoints += 3 * multiplier - else - used_skillpoints += 6 * multiplier - -/datum/preferences/proc/GetSkillClass(points) - return CalculateSkillClass(points, age) - -/proc/CalculateSkillClass(points, age) - if(points <= 0) return "Unconfigured" - // skill classes describe how your character compares in total points - points -= min(round((age - 20) / 2.5), 4) // every 2.5 years after 20, one extra skillpoint - if(age > 30) - points -= round((age - 30) / 5) // every 5 years after 30, one extra skillpoint - switch(points) - if(-1000 to 3) - return "Terrifying" - if(4 to 6) - return "Below Average" - if(7 to 10) - return "Average" - if(11 to 14) - return "Above Average" - if(15 to 18) - return "Exceptional" - if(19 to 24) - return "Genius" - if(24 to 1000) - return "God" - /datum/preferences/proc/ShowChoices(mob/user) if(!user || !user.client) return diff --git a/code/modules/events/meteors.dm b/code/modules/events/meteors.dm index 12cbdb770c..ff11cb9c33 100644 --- a/code/modules/events/meteors.dm +++ b/code/modules/events/meteors.dm @@ -127,10 +127,8 @@ . = ..() if(!victim) return - var/skill = victim.get_helm_skill() var/speed = victim.get_speed() - if(skill >= SKILL_PROF) - . = round(. * 0.5) + . = round(. * 0.5) if(victim.is_still()) //Standing still means less shit flies your way . = round(. * 0.1) if(speed < SHIP_SPEED_SLOW) //Slow and steady @@ -140,10 +138,4 @@ //Smol ship evasion if(victim.vessel_size < SHIP_SIZE_LARGE && speed < SHIP_SPEED_FAST) - var/skill_needed = SKILL_PROF - if(speed < SHIP_SPEED_SLOW) - skill_needed = SKILL_ADEPT - if(victim.vessel_size < SHIP_SIZE_SMALL) - skill_needed = skill_needed - 1 - if(skill >= max(skill_needed, victim.skill_needed)) - . = round(. * 0.5) + . = round(. * 0.5) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 8dca9ab08f..b1244ee799 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -82,10 +82,6 @@ var/obj/item/l_store = null var/obj/item/s_store = null - var/used_skillpoints = 0 - var/skill_specialization = null - var/list/skills = list() - var/voice = "" //Instead of new say code calling GetVoice() over and over and over, we're just going to ask this variable, which gets updated in Life() var/special_voice = "" // For changing our voice. Used by a symptom. diff --git a/code/modules/mob/living/carbon/human/species/species_attack.dm b/code/modules/mob/living/carbon/human/species/species_attack.dm index cc02a1f64a..d4f5912d53 100644 --- a/code/modules/mob/living/carbon/human/species/species_attack.dm +++ b/code/modules/mob/living/carbon/human/species/species_attack.dm @@ -25,11 +25,9 @@ edge = TRUE /datum/unarmed_attack/claws/show_attack(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone, var/attack_damage) - var/skill = user.skills["combat"] var/obj/item/organ/external/affecting = target.get_organ(zone) var/datum/gender/T = gender_datums[user.get_visible_gender()] var/datum/gender/TT = gender_datums[target.get_visible_gender()] - if(!skill) skill = 1 attack_damage = CLAMP(attack_damage, 1, 5) if(target == user) diff --git a/code/modules/mob/new_player/skill.dm b/code/modules/mob/new_player/skill.dm deleted file mode 100644 index 98361e4bb6..0000000000 --- a/code/modules/mob/new_player/skill.dm +++ /dev/null @@ -1,213 +0,0 @@ -var/global/const - SKILL_NONE = 0 - SKILL_BASIC = 1 - SKILL_ADEPT = 2 - SKILL_EXPERT = 3 - SKILL_PROF = 4 - -/datum/skill/var - ID = "none" // ID of the skill, used in code - name = "None" // name of the skill - desc = "Placeholder skill" // detailed description of the skill - field = "Misc" // the field under which the skill will be listed - secondary = 0 // secondary skills only have two levels and cost significantly less - -var/global/list/SKILLS = null -var/list/SKILL_ENGINEER = list("field" = "Engineering", "EVA" = SKILL_BASIC, "construction" = SKILL_ADEPT, "electrical" = SKILL_BASIC, "engines" = SKILL_ADEPT) -var/list/SKILL_ORGAN_ROBOTICIST = list("field" = "Science", "devices" = SKILL_ADEPT, "electrical" = SKILL_BASIC, "computer" = SKILL_ADEPT, "anatomy" = SKILL_BASIC) -var/list/SKILL_SECURITY_OFFICER = list("field" = "Security", "combat" = SKILL_BASIC, "weapons" = SKILL_ADEPT, "law" = SKILL_ADEPT, "forensics" = SKILL_BASIC) -var/list/SKILL_CHEMIST = list("field" = "Science", "chemistry" = SKILL_ADEPT, "science" = SKILL_ADEPT, "medical" = SKILL_BASIC, "devices" = SKILL_BASIC) -var/global/list/SKILL_PRE = list(JOB_ENGINEER = SKILL_ENGINEER, JOB_ROBOTICIST = SKILL_ORGAN_ROBOTICIST, JOB_SECURITY_OFFICER = SKILL_SECURITY_OFFICER, JOB_CHEMIST = SKILL_CHEMIST) - -/datum/skill/management - ID = "management" - name = "Command" - desc = "Your ability to manage and commandeer other crew members." - -/datum/skill/combat - ID = "combat" - name = "Close Combat" - desc = "This skill describes your training in hand-to-hand combat or melee weapon usage. While expertise in this area is rare in the era of firearms, experts still exist among athletes." - field = "Security" - -/datum/skill/weapons - ID = "weapons" - name = "Weapons Expertise" - desc = "This skill describes your expertise with and knowledge of weapons. A low level in this skill implies knowledge of simple weapons, for example tazers and flashes. A high level in this skill implies knowledge of complex weapons, such as grenades, riot shields, pulse rifles or bombs. A low level in this skill is typical for security officers, a high level of this skill is typical for special agents and soldiers." - field = "Security" - -/datum/skill/EVA - ID = "EVA" - name = "Extra-vehicular activity" - desc = "This skill describes your skill and knowledge of space-suits and working in vacuum." - field = "Engineering" - secondary = 1 - -/datum/skill/forensics - ID = "forensics" - name = "Forensics" - desc = "Describes your skill at performing forensic examinations and identifying vital evidence. Does not cover analytical abilities, and as such isn't the only indicator for your investigation skill. Note that in order to perform autopsy, the surgery skill is also required." - field = "Security" - -/datum/skill/construction - ID = "construction" - name = "Construction" - desc = "Your ability to construct various buildings, such as walls, floors, tables and so on. Note that constructing devices such as APCs additionally requires the Electronics skill. A low level of this skill is typical for janitors, a high level of this skill is typical for engineers." - field = "Engineering" - -/datum/skill/management - ID = "management" - name = "Command" - desc = "Your ability to manage and commandeer other crew members." - -/datum/skill/knowledge/law - ID = "law" - name = "Corporate Law" - desc = "Your knowledge of corporate law and procedures. This includes Corporate Regulations, as well as general station rulings and procedures. A low level in this skill is typical for security officers, a high level in this skill is typical for Site Managers." - field = "Security" - secondary = 1 - -/datum/skill/devices - ID = "devices" - name = "Complex Devices" - desc = "Describes the ability to assemble complex devices, such as computers, circuits, printers, robots or gas tank assemblies(bombs). Note that if a device requires electronics or programming, those skills are also required in addition to this skill." - field = "Science" - -/datum/skill/electrical - ID = "electrical" - name = "Electrical Engineering" - desc = "This skill describes your knowledge of electronics and the underlying physics. A low level of this skill implies you know how to lay out wiring and configure powernets, a high level of this skill is required for working complex electronic devices such as circuits or bots." - field = "Engineering" - -/datum/skill/atmos - ID = "atmos" - name = "Atmospherics" - desc = "Describes your knowledge of piping, air distribution and gas dynamics." - field = "Engineering" - -/datum/skill/engines - ID = "engines" - name = "Engines" - desc = "Describes your knowledge of the various engine types common on space stations, such as the singularity or anti-matter engine." - field = "Engineering" - secondary = 1 - -/datum/skill/computer - ID = "computer" - name = "Information Technology" - desc = "Describes your understanding of computers, software and communication. Not a requirement for using computers, but definitely helps. Used in telecommunications and programming of computers and AIs." - field = "Science" - -/datum/skill/pilot - ID = "pilot" - name = "Heavy Machinery Operation" - desc = "Describes your experience and understanding of operating heavy machinery, which includes mechs and other large exosuits. Used in piloting mechs." - field = "Engineering" - -/datum/skill/medical - ID = "medical" - name = "Medicine" - desc = "Covers an understanding of the human body and medicine. At a low level, this skill gives a basic understanding of applying common types of medicine, and a rough understanding of medical devices like the health analyzer. At a high level, this skill grants exact knowledge of all the medicine available on the station, as well as the ability to use complex medical devices like the body scanner or mass spectrometer." - field = "Medical" - -/datum/skill/anatomy - ID = "anatomy" - name = "Anatomy" - desc = "Gives you a detailed insight of the human body. A high skill in this is required to perform surgery.This skill may also help in examining alien biology." - field = "Medical" - -/datum/skill/virology - ID = "virology" - name = "Virology" - desc = "This skill implies an understanding of microorganisms and their effects on humans." - field = "Medical" - -/datum/skill/genetics - ID = "genetics" - name = "Genetics" - desc = "Implies an understanding of how DNA works and the structure of the human DNA." - field = "Science" - -/datum/skill/chemistry - ID = "chemistry" - name = "Chemistry" - desc = "Experience with mixing chemicals, and an understanding of what the effect will be. This doesn't cover an understanding of the effect of chemicals on the human body, as such the medical skill is also required for medical chemists." - field = "Science" - -/datum/skill/botany - ID = "botany" - name = "Botany" - desc = "Describes how good a character is at growing and maintaining plants." - -/datum/skill/cooking - ID = "cooking" - name = "Cooking" - desc = "Describes a character's skill at preparing meals and other consumable goods. This includes mixing alcoholic beverages." - -/datum/skill/science - ID = "science" - name = "Science" - desc = "Your experience and knowledge with scientific methods and processes." - field = "Science" - -/datum/attribute/var - ID = "none" - name = "None" - desc = "This is a placeholder" - - -/proc/setup_skills() - if(SKILLS == null) - SKILLS = list() - for(var/T in subtypesof(/datum/skill)) - var/datum/skill/S = new T - if(S.ID != "none") - if(!SKILLS.Find(S.field)) - SKILLS[S.field] = list() - var/list/L = SKILLS[S.field] - L += S - - -/mob/living/carbon/human/proc/GetSkillClass(points) - return CalculateSkillClass(points, age) - -/proc/show_skill_window(var/mob/user, var/mob/living/carbon/human/M) - if(!istype(M)) return - if(SKILLS == null) - setup_skills() - - if(!M.skills || M.skills.len == 0) - to_chat(user, "There are no skills to display.") - return - - var/HTML = "" - HTML += span_bold("Select your Skills") + "
" - HTML += "Current skill level: [M.GetSkillClass(M.used_skillpoints)] ([M.used_skillpoints])
" - HTML += "" - for(var/V in SKILLS) - HTML += "" - for(var/datum/skill/S in SKILLS[V]) - var/level = M.skills[S.ID] - HTML += "" - HTML += "" - HTML += "" - // secondary skills don't have an amateur level - if(S.secondary) - HTML += "" - else - HTML += "" - HTML += "" - HTML += "" - HTML += "" - HTML += "
" + span_bold("[V]") - HTML += "
[S.name]\[Untrained\]\[Amateur\]\[Trained\]\[Professional\]
" - - user << browse(null, "window=preferences") - user << browse(HTML, "window=show_skills;size=600x800") - return - -/mob/living/carbon/human/verb/show_skills() - set category = "IC.Game" - set name = "Show Own Skills" - - show_skill_window(src, src) diff --git a/code/modules/mob/skillset.dm b/code/modules/mob/skillset.dm deleted file mode 100644 index 3afb7a97aa..0000000000 --- a/code/modules/mob/skillset.dm +++ /dev/null @@ -1,12 +0,0 @@ - -// We don't actually have a skills system, so return max skill for everything. -/mob/proc/get_skill_value(skill_path) - return SKILL_EXPERT - -// A generic way of modifying success probabilities via skill values. Higher factor means skills have more effect. fail_chance is the chance at SKILL_NONE. -/mob/proc/skill_fail_chance(skill_path, fail_chance, no_more_fail = SKILL_EXPERT, factor = 1) - var/points = get_skill_value(skill_path) - if(points >= no_more_fail) - return 0 - else - return fail_chance * 2 ** (factor*(SKILL_BASIC - points)) diff --git a/code/modules/modular_computers/file_system/programs/generic/game.dm b/code/modules/modular_computers/file_system/programs/generic/game.dm index 8cf049aff7..bffa14c512 100644 --- a/code/modules/modular_computers/file_system/programs/generic/game.dm +++ b/code/modules/modular_computers/file_system/programs/generic/game.dm @@ -39,7 +39,6 @@ if(istype(computer)) computer.update_icon() ticket_count += 1 - // user?.mind?.adjust_experience(/datum/skill/gaming, 50) sleep(10) else if(player_hp <= 0 || player_mp <= 0) heads_up = "You have been defeated... how will the station survive?" @@ -48,7 +47,6 @@ program_icon_state = "arcade_off" if(istype(computer)) computer.update_icon() - // user?.mind?.adjust_experience(/datum/skill/gaming, 10) sleep(10) // This handles the boss "AI". @@ -115,8 +113,6 @@ if(computer) printer = computer.nano_printer - // var/gamerSkillLevel = usr.mind?.get_skill_level(/datum/skill/gaming) - // var/gamerSkill = usr.mind?.get_skill_modifier(/datum/skill/gaming, SKILL_RANDS_MODIFIER) switch(action) if("Attack") var/attackamt = 0 //Spam prevention. diff --git a/code/modules/overmap/disperser/disperser_console.dm b/code/modules/overmap/disperser/disperser_console.dm index 928180711f..25571cca6d 100644 --- a/code/modules/overmap/disperser/disperser_console.dm +++ b/code/modules/overmap/disperser/disperser_console.dm @@ -6,9 +6,6 @@ icon_state = "computer" circuit = /obj/item/circuitboard/disperser - core_skill = /datum/skill/pilot - var/skill_offset = SKILL_ADEPT - 1 //After which skill level it starts to matter. -1, because we have to index from zero - icon_keyboard = "rd_key" icon_screen = "teleport" @@ -151,7 +148,6 @@ data["range"] = range data["next_shot"] = round(get_next_shot_seconds()) data["nopower"] = !data["faillink"] && (!front.powered() || !middle.powered() || !back.powered()) - data["skill"] = user.get_skill_value(core_skill) > skill_offset var/charge = "UNKNOWN ERROR" if(get_charge_type() == OVERMAP_WEAKNESS_NONE) @@ -184,7 +180,7 @@ . = TRUE if("skill_calibration") - for(var/i = 1 to min(caldigit, usr.get_skill_value(core_skill) - skill_offset)) + for(var/i = 1 to 2) calibration[i] = calexpected[i] . = TRUE diff --git a/code/modules/overmap/overmap_shuttle.dm b/code/modules/overmap/overmap_shuttle.dm index 4ef8a9be38..ac9c571184 100644 --- a/code/modules/overmap/overmap_shuttle.dm +++ b/code/modules/overmap/overmap_shuttle.dm @@ -9,8 +9,6 @@ var/obj/effect/overmap/visitable/ship/landable/myship //my overmap ship object category = /datum/shuttle/autodock/overmap - var/skill_needed = SKILL_BASIC - var/operator_skill = SKILL_BASIC /datum/shuttle/autodock/overmap/New(var/_name, var/obj/effect/shuttle_landmark/start_waypoint) ..(_name, start_waypoint) @@ -54,15 +52,7 @@ /datum/shuttle/autodock/overmap/get_travel_time() var/distance_mod = get_dist(waypoint_sector(current_location),waypoint_sector(next_location)) - var/skill_mod = 0.2*(skill_needed - operator_skill) - return move_time * (1 + distance_mod + skill_mod) - -/datum/shuttle/autodock/overmap/process_launch() - if(prob(10*max(0, skill_needed - operator_skill))) - var/places = get_possible_destinations() - var/place = pick(places) - set_destination(places[place]) - ..() + return move_time * (1 + distance_mod) /datum/shuttle/autodock/overmap/proc/set_destination(var/obj/effect/shuttle_landmark/A) if(A != current_location) @@ -187,4 +177,4 @@ // Walls hide stuff inside them, but we want to be visible. /obj/structure/fuel_port/hide() - return \ No newline at end of file + return diff --git a/code/modules/overmap/ships/computers/computer_shims.dm b/code/modules/overmap/ships/computers/computer_shims.dm index fd0d3abaef..449f3bd4be 100644 --- a/code/modules/overmap/ships/computers/computer_shims.dm +++ b/code/modules/overmap/ships/computers/computer_shims.dm @@ -49,7 +49,6 @@ // Skills // /obj/machinery/computer/ship - var/core_skill = /datum/skill/devices //The skill used for skill checks for this machine (mostly so subtypes can use different skills). var/ai_control = TRUE //VOREStation Edit // diff --git a/code/modules/overmap/ships/computers/helm.dm b/code/modules/overmap/ships/computers/helm.dm index 5895b3bb84..bbd1791999 100644 --- a/code/modules/overmap/ships/computers/helm.dm +++ b/code/modules/overmap/ships/computers/helm.dm @@ -20,7 +20,6 @@ GLOBAL_LIST_EMPTY(all_waypoints) icon_screen = "helm" light_color = "#7faaff" circuit = /obj/item/circuitboard/helm - core_skill = /datum/skill/pilot var/autopilot = 0 var/autopilot_disabled = TRUE var/list/known_sectors = list() @@ -77,13 +76,10 @@ GLOBAL_LIST_EMPTY(all_waypoints) // All other cases, move toward direction else if(speed + acceleration <= speedlimit) linked.accelerate(direction, accellimit) - linked.operator_skill = null//if this is on you can't dodge meteors return /obj/machinery/computer/ship/helm/relaymove(var/mob/user, direction) if(viewing_overmap(user) && linked) - if(prob(user.skill_fail_chance(/datum/skill/pilot, 50, linked.skill_needed, factor = 1))) - direction = turn(direction,pick(90,-90)) linked.relaymove(user, direction, accellimit) return 1 @@ -253,8 +249,6 @@ GLOBAL_LIST_EMPTY(all_waypoints) if("move") var/ndir = text2num(params["dir"]) - if(prob(usr.skill_fail_chance(/datum/skill/pilot, 50, linked.skill_needed, factor = 1))) - ndir = turn(ndir,pick(90,-90)) linked.relaymove(usr, ndir, accellimit) . = TRUE diff --git a/code/modules/overmap/ships/computers/shuttle.dm b/code/modules/overmap/ships/computers/shuttle.dm index 5ad197e050..bfa14482a2 100644 --- a/code/modules/overmap/ships/computers/shuttle.dm +++ b/code/modules/overmap/ships/computers/shuttle.dm @@ -34,10 +34,6 @@ to_chat(usr, span_warning("Unable to establish link with the shuttle.")) return TRUE - if(ismob(usr)) - var/mob/user = usr - shuttle.operator_skill = user.get_skill_value(/datum/skill/pilot) - switch(action) if("pick") var/list/possible_d = shuttle.get_possible_destinations() diff --git a/code/modules/overmap/ships/ship.dm b/code/modules/overmap/ships/ship.dm index 8394744fc3..cbacd0cb3e 100644 --- a/code/modules/overmap/ships/ship.dm +++ b/code/modules/overmap/ships/ship.dm @@ -39,8 +39,6 @@ var/engines_state = 0 //global on/off toggle for all engines var/thrust_limit = 1 //global thrust limit for all engines, 0..1 var/halted = 0 //admin halt or other stop. - var/skill_needed = SKILL_ADEPT //piloting skill needed to steer it without going in random dir - var/operator_skill //VOREStation add var/last_sound = 0 //The last time a ship sound was played //VOREStation add var/sound_cooldown = 10 SECONDS //VOREStation add @@ -67,7 +65,6 @@ /obj/effect/overmap/visitable/ship/relaymove(mob/user, direction, accel_limit) accelerate(direction, accel_limit) - operator_skill = user.get_skill_value(/datum/skill/pilot) /obj/effect/overmap/visitable/ship/proc/is_still() return !MOVING(speed[1]) && !MOVING(speed[2]) @@ -285,9 +282,6 @@ if(!SSshuttles.overmap_halted) halted = 0 -/obj/effect/overmap/visitable/ship/proc/get_helm_skill()//delete this mover operator skill to overmap obj - return operator_skill - /obj/effect/overmap/visitable/ship/populate_sector_objects() ..() for(var/obj/machinery/computer/ship/S in global.machines) diff --git a/tgui/packages/tgui/interfaces/OvermapDisperser.tsx b/tgui/packages/tgui/interfaces/OvermapDisperser.tsx index 7a2ec522ed..6987397c7b 100644 --- a/tgui/packages/tgui/interfaces/OvermapDisperser.tsx +++ b/tgui/packages/tgui/interfaces/OvermapDisperser.tsx @@ -21,7 +21,6 @@ type Data = { range: number; next_shot: number; nopower: BooleanLike; - skill: BooleanLike; chargeload: string | null; }; diff --git a/vorestation.dme b/vorestation.dme index 07be19acdd..6628acfad7 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2090,7 +2090,6 @@ #include "code\modules\client\preference_setup\loadout\loadout_xeno.dm" #include "code\modules\client\preference_setup\loadout\loadout_xeno_vr.dm" #include "code\modules\client\preference_setup\occupation\occupation.dm" -#include "code\modules\client\preference_setup\skills\skills.dm" #include "code\modules\client\preference_setup\volume_sliders\01_volume.dm" #include "code\modules\client\preference_setup\volume_sliders\02_media.dm" #include "code\modules\client\preference_setup\vore\01_ears.dm" @@ -2889,7 +2888,6 @@ #include "code\modules\mob\mob_transformation_simple.dm" #include "code\modules\mob\say.dm" #include "code\modules\mob\say_vr.dm" -#include "code\modules\mob\skillset.dm" #include "code\modules\mob\theme_lists.dm" #include "code\modules\mob\transform_procs.dm" #include "code\modules\mob\typing_indicator.dm" @@ -3456,7 +3454,6 @@ #include "code\modules\mob\new_player\poll.dm" #include "code\modules\mob\new_player\preferences_setup.dm" #include "code\modules\mob\new_player\preferences_setup_vr.dm" -#include "code\modules\mob\new_player\skill.dm" #include "code\modules\mob\new_player\sprite_accessories.dm" #include "code\modules\mob\new_player\sprite_accessories_ear.dm" #include "code\modules\mob\new_player\sprite_accessories_ear_vr.dm" From 13773b5f8002c3898fc0b6b71c4dbfda592495aa Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 10 Nov 2024 13:38:23 +0100 Subject: [PATCH 031/109] . --- code/modules/asset_cache/assets/chat.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/asset_cache/assets/chat.dm b/code/modules/asset_cache/assets/chat.dm index 82d33e381b..cbaf4ac35b 100644 --- a/code/modules/asset_cache/assets/chat.dm +++ b/code/modules/asset_cache/assets/chat.dm @@ -2,4 +2,4 @@ name = "chat" /datum/asset/spritesheet/chat/create_spritesheets() - InsertAll("", text_tag_icons) //Chomp - OOC, LOOC ect icons + InsertAll("", text_tag_icons) // OOC, LOOC ect icons From 361effe064d52a13539f12a2190612b552d66ecf Mon Sep 17 00:00:00 2001 From: Killian Date: Sun, 10 Nov 2024 15:11:05 +0000 Subject: [PATCH 032/109] bracelet refactor --- .../loadout/loadout_accessories.dm | 16 +- .../modules/clothing/accessories/accessory.dm | 151 ------------------ code/modules/clothing/accessories/hands.dm | 123 ++++++++++++++ code/modules/economy/vending_machines_vr.dm | 28 ++-- icons/inventory/hands/item.dmi | Bin 34196 -> 35895 bytes icons/inventory/hands/mob.dmi | Bin 31060 -> 31054 bytes 6 files changed, 145 insertions(+), 173 deletions(-) diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories.dm b/code/modules/client/preference_setup/loadout/loadout_accessories.dm index d22bdcc20e..dcd8cf03c3 100644 --- a/code/modules/client/preference_setup/loadout/loadout_accessories.dm +++ b/code/modules/client/preference_setup/loadout/loadout_accessories.dm @@ -360,18 +360,18 @@ /datum/gear/accessory/wristband_collection display_name = "wristbands (selection)" - path = /obj/item/clothing/accessory/wristbandcollection + path = /obj/item/clothing/accessory/wristband/collection /datum/gear/accessory/wristband_collection/New() ..() var/list/wristband_lists = list( - "Green, Blue and Yellow" = /obj/item/clothing/accessory/wristbandcollection, - "Pink, Black and Red" = /obj/item/clothing/accessory/wristbandcollection/pink, - "Red and Orange" = /obj/item/clothing/accessory/wristbandcollection/les, - "White, Pink and Blue" = /obj/item/clothing/accessory/wristbandcollection/trans, - "Blue, Purple and Pink" = /obj/item/clothing/accessory/wristbandcollection/bi, - "Black, White and Grey" = /obj/item/clothing/accessory/wristbandcollection/ace, - "Spiked" = /obj/item/clothing/accessory/wristband_spiked + "Green, Blue and Yellow" = /obj/item/clothing/accessory/wristband/collection, + "Pink, Black and Red" = /obj/item/clothing/accessory/wristband/collection/pink, + "Red and Orange" = /obj/item/clothing/accessory/wristband/collection/les, + "White, Pink and Blue" = /obj/item/clothing/accessory/wristband/collection/trans, + "Blue, Purple and Pink" = /obj/item/clothing/accessory/wristband/collection/bi, + "Black, White and Grey" = /obj/item/clothing/accessory/wristband/collection/ace, + "Spiked" = /obj/item/clothing/accessory/wristband/spiked ) gear_tweaks += new/datum/gear_tweak/path(wristband_lists) diff --git a/code/modules/clothing/accessories/accessory.dm b/code/modules/clothing/accessories/accessory.dm index e005048399..7610687a9a 100644 --- a/code/modules/clothing/accessories/accessory.dm +++ b/code/modules/clothing/accessories/accessory.dm @@ -387,85 +387,6 @@ icon_state = "tesh_neckscarf" species_restricted = list(SPECIES_TESHARI) -//bracelets - -/obj/item/clothing/accessory/bracelet - name = "bracelet" - desc = "A simple silver bracelet with a clasp." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "bracelet" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - -/obj/item/clothing/accessory/bracelet/friendship - name = "friendship bracelet" - desc = "A beautiful friendship bracelet in all the colors of the rainbow." - icon_state = "friendbracelet" - -/obj/item/clothing/accessory/bracelet/friendship/verb/dedicate_bracelet() - set name = "Dedicate Bracelet" - set category = "Object" - set desc = "Dedicate your friendship bracelet to a special someone." - var/mob/M = usr - if(!M.mind) - return 0 - - var/input = sanitizeSafe(input(usr, "Who do you want to dedicate the bracelet to?", ,""), MAX_NAME_LEN) - - if(src && input && !M.stat && in_range(M,src)) - desc = "A beautiful friendship bracelet in all the colors of the rainbow. It's dedicated to [input]." - to_chat(M, "You dedicate the bracelet to [input], remembering the times you've had together.") - return 1 - - -/obj/item/clothing/accessory/bracelet/material - icon_state = "materialbracelet" - -/obj/item/clothing/accessory/bracelet/material/New(var/newloc, var/new_material) - ..(newloc) - if(!new_material) - new_material = MAT_STEEL - material = get_material_by_name(new_material) - if(!istype(material)) - qdel(src) - return - name = "[material.display_name] bracelet" - desc = "A bracelet made from [material.display_name]." - color = material.icon_colour - -/obj/item/clothing/accessory/bracelet/material/get_material() - return material - -/obj/item/clothing/accessory/bracelet/material/wood/New(var/newloc) - ..(newloc, "wood") - -/obj/item/clothing/accessory/bracelet/material/plastic/New(var/newloc) - ..(newloc, "plastic") - -/obj/item/clothing/accessory/bracelet/material/iron/New(var/newloc) - ..(newloc, "iron") - -/obj/item/clothing/accessory/bracelet/material/steel/New(var/newloc) - ..(newloc, "steel") - -/obj/item/clothing/accessory/bracelet/material/silver/New(var/newloc) - ..(newloc, "silver") - -/obj/item/clothing/accessory/bracelet/material/gold/New(var/newloc) - ..(newloc, "gold") - -/obj/item/clothing/accessory/bracelet/material/platinum/New(var/newloc) - ..(newloc, "platinum") - -/obj/item/clothing/accessory/bracelet/material/phoron/New(var/newloc) - ..(newloc, "phoron") - -/obj/item/clothing/accessory/bracelet/material/glass/New(var/newloc) - ..(newloc, "glass") - - ..() - /obj/item/clothing/accessory/halfcape name = "half cape" desc = "A tasteful half-cape, suitible for European nobles and retro anime protagonists." @@ -484,78 +405,6 @@ icon_state = "sash" slot = ACCESSORY_SLOT_OVER -/obj/item/clothing/accessory/wristband - name = "wristband" - desc = "A simple plastic wristband." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "wristband" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - -/obj/item/clothing/accessory/wristbandcollection - name = "wristband collection" - desc = "A mix of colourable plastic wristbands." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "wristband_collection" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - -/obj/item/clothing/accessory/wristbandcollection/pink - name = "wristband collection" - desc = "A mix of colourable plastic wristbands." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "wristband_collection2" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - -/obj/item/clothing/accessory/wristbandcollection/les - name = "wristband collection" - desc = "A mix of colourable plastic wristbands." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "wristband_collection3" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - -/obj/item/clothing/accessory/wristbandcollection/trans - name = "wristband collection" - desc = "A mix of colourable plastic wristbands." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "wristband_collection4" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - -/obj/item/clothing/accessory/wristbandcollection/bi - name = "wristband collection" - desc = "A mix of colourable plastic wristbands." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "wristband_collection5" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - -/obj/item/clothing/accessory/wristbandcollection/ace - name = "wristband collection" - desc = "A mix of colourable plastic wristbands." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "wristband_collection6" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - -/obj/item/clothing/accessory/wristband_spiked - name = "wristband (spiked)" - desc = "A black wristband with short spikes around it." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "wristband_spiked" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - //Gaiter scarves /obj/item/clothing/accessory/gaiter name = "red neck gaiter" diff --git a/code/modules/clothing/accessories/hands.dm b/code/modules/clothing/accessories/hands.dm index 26533291f1..befe128fc7 100644 --- a/code/modules/clothing/accessories/hands.dm +++ b/code/modules/clothing/accessories/hands.dm @@ -16,3 +16,126 @@ ) drop_sound = 'sound/items/drop/metalboots.ogg' pickup_sound = 'sound/items/pickup/toolbox.ogg' + +//bracelets + +/obj/item/clothing/accessory/bracelet + name = "bracelet" + desc = "A simple silver bracelet with a clasp." + icon = 'icons/inventory/accessory/item.dmi' + icon_state = "bracelet" + w_class = ITEMSIZE_TINY + slot_flags = SLOT_GLOVES + slot = ACCESSORY_SLOT_WRIST + +/obj/item/clothing/accessory/bracelet/friendship + name = "friendship bracelet" + desc = "A beautiful friendship bracelet in all the colors of the rainbow." + icon_state = "friendbracelet" + +/obj/item/clothing/accessory/bracelet/friendship/verb/dedicate_bracelet() + set name = "Dedicate Bracelet" + set category = "Object" + set desc = "Dedicate your friendship bracelet to a special someone." + var/mob/M = usr + if(!M.mind) + return 0 + + var/input = sanitizeSafe(input(usr, "Who do you want to dedicate the bracelet to?", ,""), MAX_NAME_LEN) + + if(src && input && !M.stat && in_range(M,src)) + desc = "A beautiful friendship bracelet in all the colors of the rainbow. It's dedicated to [input]." + to_chat(M, "You dedicate the bracelet to [input], remembering the times you've had together.") + return 1 + + +/obj/item/clothing/accessory/bracelet/material + icon_state = "materialbracelet" + +/obj/item/clothing/accessory/bracelet/material/New(var/newloc, var/new_material) + ..(newloc) + if(!new_material) + new_material = MAT_STEEL + material = get_material_by_name(new_material) + if(!istype(material)) + qdel(src) + return + name = "[material.display_name] bracelet" + desc = "A bracelet made from [material.display_name]." + color = material.icon_colour + +/obj/item/clothing/accessory/bracelet/material/get_material() + return material + +/obj/item/clothing/accessory/bracelet/material/wood/New(var/newloc) + ..(newloc, "wood") + +/obj/item/clothing/accessory/bracelet/material/plastic/New(var/newloc) + ..(newloc, "plastic") + +/obj/item/clothing/accessory/bracelet/material/iron/New(var/newloc) + ..(newloc, "iron") + +/obj/item/clothing/accessory/bracelet/material/steel/New(var/newloc) + ..(newloc, "steel") + +/obj/item/clothing/accessory/bracelet/material/silver/New(var/newloc) + ..(newloc, "silver") + +/obj/item/clothing/accessory/bracelet/material/gold/New(var/newloc) + ..(newloc, "gold") + +/obj/item/clothing/accessory/bracelet/material/platinum/New(var/newloc) + ..(newloc, "platinum") + +/obj/item/clothing/accessory/bracelet/material/phoron/New(var/newloc) + ..(newloc, "phoron") + +/obj/item/clothing/accessory/bracelet/material/glass/New(var/newloc) + ..(newloc, "glass") + +//wristbands + +/obj/item/clothing/accessory/wristband + name = "wristband" + desc = "A simple plastic wristband." + icon = 'icons/inventory/accessory/item.dmi' + icon_state = "wristband" + w_class = ITEMSIZE_TINY + slot_flags = SLOT_GLOVES + slot = ACCESSORY_SLOT_WRIST + +/obj/item/clothing/accessory/wristband/spiked + name = "wristband (spiked)" + desc = "A black wristband with short spikes around it." + icon_state = "wristband_spiked" + +/obj/item/clothing/accessory/wristband/collection + name = "wristband collection" + desc = "A mix of colourable plastic wristbands." + icon_state = "wristband_collection" + +/obj/item/clothing/accessory/wristband/collection/pink + name = "wristband collection" + desc = "A mix of colourable plastic wristbands." + icon_state = "wristband_collection2" + +/obj/item/clothing/accessory/wristband/collection/les + name = "wristband collection" + desc = "A mix of colourable plastic wristbands." + icon_state = "wristband_collection3" + +/obj/item/clothing/accessory/wristband/collection/trans + name = "wristband collection" + desc = "A mix of colourable plastic wristbands." + icon_state = "wristband_collection4" + +/obj/item/clothing/accessory/wristband/collection/bi + name = "wristband collection" + desc = "A mix of colourable plastic wristbands." + icon_state = "wristband_collection5" + +/obj/item/clothing/accessory/wristband/collection/ace + name = "wristband collection" + desc = "A mix of colourable plastic wristbands." + icon_state = "wristband_collection6" diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm index cc91773128..47f4a765d4 100644 --- a/code/modules/economy/vending_machines_vr.dm +++ b/code/modules/economy/vending_machines_vr.dm @@ -614,13 +614,13 @@ /obj/item/clothing/accessory/wcoat/swvest/blue = 5, /obj/item/clothing/accessory/wcoat/swvest/red = 5, /obj/item/clothing/accessory/wristband = 5, - /obj/item/clothing/accessory/wristbandcollection = 5, - /obj/item/clothing/accessory/wristbandcollection/pink = 5, - /obj/item/clothing/accessory/wristbandcollection/les = 5, - /obj/item/clothing/accessory/wristbandcollection/bi = 5, - /obj/item/clothing/accessory/wristbandcollection/trans = 5, - /obj/item/clothing/accessory/wristbandcollection/ace = 5, - /obj/item/clothing/accessory/wristband_spiked = 5, + /obj/item/clothing/accessory/wristband/collection = 5, + /obj/item/clothing/accessory/wristband/collection/pink = 5, + /obj/item/clothing/accessory/wristband/collection/les = 5, + /obj/item/clothing/accessory/wristband/collection/bi = 5, + /obj/item/clothing/accessory/wristband/collection/trans = 5, + /obj/item/clothing/accessory/wristband/collection/ace = 5, + /obj/item/clothing/accessory/wristband/spiked = 5, /obj/item/clothing/accessory/belt = 5, /obj/item/clothing/accessory/belt/thick = 5, /obj/item/clothing/accessory/belt/strap = 5, @@ -759,13 +759,13 @@ /obj/item/clothing/accessory/wcoat/swvest/blue = 50, /obj/item/clothing/accessory/wcoat/swvest/red = 50, /obj/item/clothing/accessory/wristband = 10, - /obj/item/clothing/accessory/wristbandcollection = 30, - /obj/item/clothing/accessory/wristbandcollection/pink = 30, - /obj/item/clothing/accessory/wristbandcollection/les = 30, - /obj/item/clothing/accessory/wristbandcollection/bi = 30, - /obj/item/clothing/accessory/wristbandcollection/trans = 30, - /obj/item/clothing/accessory/wristbandcollection/ace = 30, - /obj/item/clothing/accessory/wristband_spiked = 20, + /obj/item/clothing/accessory/wristband/collection = 30, + /obj/item/clothing/accessory/wristband/collection/pink = 30, + /obj/item/clothing/accessory/wristband/collection/les = 30, + /obj/item/clothing/accessory/wristband/collection/bi = 30, + /obj/item/clothing/accessory/wristband/collection/trans = 30, + /obj/item/clothing/accessory/wristband/collection/ace = 30, + /obj/item/clothing/accessory/wristband/spiked = 20, /obj/item/clothing/accessory/belt = 50, /obj/item/clothing/accessory/belt/thick = 50, /obj/item/clothing/accessory/belt/strap = 50, diff --git a/icons/inventory/hands/item.dmi b/icons/inventory/hands/item.dmi index 228d79992399d2312e0fc5b7fa9aa30564bc98a1..3adca7d964f9c13efb0c51408af303840ead6739 100644 GIT binary patch literal 35895 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%0DbtUpI@cD5E7eXd#O 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

OzVa@`3h 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 WN+w=Bz9;z*_)?HjmM)Sq4*DO4eJ)P` diff --git a/icons/inventory/hands/mob.dmi b/icons/inventory/hands/mob.dmi index 3b8fdbf6ac480667548e0f7785ba66392b875659..bf041c8a0236c7e463a1c73fbf8ddd11126363ba 100644 GIT binary patch literal 31054 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 z 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 z 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 From d0aa7c266dbb5c08f13d5a06cad56c00ea16d728 Mon Sep 17 00:00:00 2001 From: Killian Date: Sun, 10 Nov 2024 15:21:18 +0000 Subject: [PATCH 033/109] redgate map fixes --- maps/redgate/cybercity.dmm | 2 +- maps/redgate/fantasy.dmm | 16 ++++++++-------- maps/redgate/fantasy_dungeon.dmm | 2 +- maps/redgate/hotsprings.dmm | 2 +- maps/redgate/islands_underwater.dmm | 2 +- maps/redgate/train_upper.dmm | 4 ++-- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/maps/redgate/cybercity.dmm b/maps/redgate/cybercity.dmm index a82478c952..b5b094ca1b 100644 --- a/maps/redgate/cybercity.dmm +++ b/maps/redgate/cybercity.dmm @@ -9484,7 +9484,7 @@ /obj/structure/closet/wardrobe, /obj/random/maintenance/cargo, /obj/item/clothing/glasses/goggles, -/obj/item/clothing/gloves/ring/material/plastic, +/obj/item/clothing/accessory/ring/material/plastic, /obj/item/clothing/under/cuttop/red, /turf/simulated/floor/wood, /area/redgate/city/apartments) diff --git a/maps/redgate/fantasy.dmm b/maps/redgate/fantasy.dmm index 3ab8fa68a0..072d62751c 100644 --- a/maps/redgate/fantasy.dmm +++ b/maps/redgate/fantasy.dmm @@ -550,7 +550,7 @@ /area/redgate/fantasy/butcher) "dw" = ( /obj/structure/table/woodentable, -/obj/item/clothing/gloves/ring/material/silver, +/obj/item/clothing/accessory/ring/material/silver, /obj/structure/window/basic{ dir = 4 }, @@ -2067,7 +2067,7 @@ /area/redgate/fantasy/redgate) "mW" = ( /obj/structure/table/woodentable, -/obj/item/clothing/gloves/ring/material/diamond, +/obj/item/clothing/accessory/ring/material/diamond, /obj/structure/window/basic{ dir = 4 }, @@ -2507,7 +2507,7 @@ /area/redgate/fantasy/grocery) "pq" = ( /obj/structure/table/woodentable, -/obj/item/clothing/gloves/ring/material/gold, +/obj/item/clothing/accessory/ring/material/gold, /obj/structure/window/basic{ dir = 4 }, @@ -2906,7 +2906,7 @@ /area/redgate/fantasy/church) "rO" = ( /obj/structure/table/woodentable, -/obj/item/clothing/gloves/ring/material/wood, +/obj/item/clothing/accessory/ring/material/wood, /turf/simulated/floor/wood/alt, /area/redgate/fantasy/jewler) "rP" = ( @@ -3465,7 +3465,7 @@ /area/redgate/fantasy/butcher) "vl" = ( /obj/structure/table/rack/shelf/wood, -/obj/item/clothing/gloves/ring/material/silver, +/obj/item/clothing/accessory/ring/material/silver, /obj/machinery/light/small/torch{ dir = 8 }, @@ -3489,7 +3489,7 @@ /area/redgate/fantasy/castle) "vp" = ( /obj/structure/table/woodentable, -/obj/item/clothing/gloves/ring/material/void_opal, +/obj/item/clothing/accessory/ring/material/void_opal, /obj/structure/window/basic{ dir = 4 }, @@ -7836,7 +7836,7 @@ /area/redgate/fantasy/butcher) "WW" = ( /obj/structure/table/rack/shelf/wood, -/obj/item/clothing/gloves/ring/material/gold, +/obj/item/clothing/accessory/ring/material/gold, /turf/simulated/floor/wood/alt, /area/redgate/fantasy/jewler) "WZ" = ( @@ -8255,7 +8255,7 @@ /area/redgate/fantasy/bard) "ZP" = ( /obj/structure/table/woodentable, -/obj/item/clothing/gloves/ring/material/iron, +/obj/item/clothing/accessory/ring/material/iron, /turf/simulated/floor/wood/alt, /area/redgate/fantasy/jewler) "ZS" = ( diff --git a/maps/redgate/fantasy_dungeon.dmm b/maps/redgate/fantasy_dungeon.dmm index 64436653a2..44cc56930b 100644 --- a/maps/redgate/fantasy_dungeon.dmm +++ b/maps/redgate/fantasy_dungeon.dmm @@ -209,7 +209,7 @@ /turf/simulated/floor/concrete, /area/redgate/fantasy/castle) "ez" = ( -/obj/item/clothing/gloves/ring/material/gold, +/obj/item/clothing/accessory/ring/material/gold, /turf/simulated/mineral/floor/ignore_cavegen/cave, /area/redgate/fantasy/caves) "eP" = ( diff --git a/maps/redgate/hotsprings.dmm b/maps/redgate/hotsprings.dmm index 725aafba2a..4a8eaccc54 100644 --- a/maps/redgate/hotsprings.dmm +++ b/maps/redgate/hotsprings.dmm @@ -1209,7 +1209,7 @@ /obj/random/mouseray, /obj/random/cash/huge, /obj/item/clothing/ears/earring/dangle/diamond, -/obj/item/clothing/gloves/ring/material/diamond, +/obj/item/clothing/accessory/ring/material/diamond, /obj/structure/closet/grave/dirthole, /obj/random/coin, /turf/simulated/floor/outdoors/dirt{ diff --git a/maps/redgate/islands_underwater.dmm b/maps/redgate/islands_underwater.dmm index 834ec9585a..5f25f246f3 100644 --- a/maps/redgate/islands_underwater.dmm +++ b/maps/redgate/islands_underwater.dmm @@ -848,7 +848,7 @@ /turf/simulated/floor/water/underwater/sand, /area/redgate/islands/ruins) "qY" = ( -/obj/item/clothing/gloves/ring/material/gold, +/obj/item/clothing/accessory/ring/material/gold, /turf/simulated/floor/water/underwater/sand, /area/redgate/islands/ruins) "rk" = ( diff --git a/maps/redgate/train_upper.dmm b/maps/redgate/train_upper.dmm index f5921a71d0..56b0847229 100644 --- a/maps/redgate/train_upper.dmm +++ b/maps/redgate/train_upper.dmm @@ -3121,8 +3121,8 @@ /obj/structure/closet/cabinet, /obj/item/clothing/under/suit_jacket, /obj/item/clothing/shoes/dress, -/obj/item/clothing/gloves/ring/wedding, -/obj/item/clothing/gloves/ring/wedding, +/obj/item/clothing/accessory/ring/wedding, +/obj/item/clothing/accessory/ring/wedding, /obj/item/clothing/accessory/bowtie/black, /turf/simulated/floor/wood, /area/redgate/train/dorm6) From 7c3788f095b9567a7748fb8085268001872e63f4 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 10 Nov 2024 17:42:08 +0100 Subject: [PATCH 034/109] initial --- .../mob/living/silicon/robot/drone/drone.dm | 3 - .../modules/mob/living/silicon/robot/login.dm | 7 +- .../modules/mob/living/silicon/robot/robot.dm | 105 ++--------------- .../silicon/robot/robot_modules/station.dm | 3 +- .../living/silicon/robot/robot_ui_module.dm | 106 ++++++++++++++++++ vorestation.dme | 1 + 6 files changed, 120 insertions(+), 105 deletions(-) create mode 100644 code/modules/mob/living/silicon/robot/robot_ui_module.dm diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index fd1132d05a..c7c1a1a2fb 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -203,9 +203,6 @@ var/list/mob_hat_cache = list() can_pick_shell = FALSE update_icon() -/mob/living/silicon/robot/drone/choose_icon() - return - /mob/living/silicon/robot/drone/pick_module() return diff --git a/code/modules/mob/living/silicon/robot/login.dm b/code/modules/mob/living/silicon/robot/login.dm index 89a136223e..ef25b1bece 100644 --- a/code/modules/mob/living/silicon/robot/login.dm +++ b/code/modules/mob/living/silicon/robot/login.dm @@ -11,11 +11,6 @@ repick_laws() // Forces synths to select an icon relevant to their module - if(!icon_selected) - icon_selection_tries = SSrobot_sprites.get_module_sprites_len(modtype, src) + 1 - choose_icon(icon_selection_tries) - - if(sprite_datum && module) - sprite_datum.do_equipment_glamour(module) + pick_module() plane_holder.set_vis(VIS_AUGMENTED, TRUE) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index a79310c02b..4e7ea7bd00 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -31,8 +31,7 @@ //Icon stuff var/datum/robot_sprite/sprite_datum // Sprite datum, holding all our sprite data - var/icon_selected = 1 // If icon selection has been completed yet - var/icon_selection_tries = 0 // Remaining attempts to select icon before a selection is forced + var/icon_selected = 0 // If icon selection has been completed yet var/list/sprite_extra_customization = list() var/rest_style = "Default" var/notransform @@ -336,46 +335,17 @@ return module_sprites */ /mob/living/silicon/robot/proc/pick_module() + if(icon_selected) + return if(module) - return - var/list/modules = list() - //VOREStatation Edit Start: shell restrictions - if(shell) - if(restrict_modules_to.len > 0) - modules.Add(restrict_modules_to) - else - modules.Add(shell_module_types) - else - if(restrict_modules_to.len > 0) - modules.Add(restrict_modules_to) - else - modules.Add(robot_module_types) - if(crisis || security_level == SEC_LEVEL_RED || crisis_override) - to_chat(src, span_red("Crisis mode active. Combat module available.")) - modules |= emergency_module_types - for(var/module_name in whitelisted_module_types) - if(is_borg_whitelisted(src, module_name)) - modules |= module_name - //VOREStatation Edit End: shell restrictions - modtype = tgui_input_list(usr, "Please, select a module!", "Robot module", modules) + var/list/module_sprites = SSrobot_sprites.get_module_sprites(module, src) + if(module_sprites.len == 1 || !client) + sprite_datum = module_sprites[1] + return + new/datum/tgui_module/robot_ui_module(src) + if(sprite_datum && module) + sprite_datum.do_equipment_glamour(module) - if(module) - return - if(!(modtype in robot_modules)) - return - if(!is_borg_whitelisted(src, modtype)) - return - - var/module_type = robot_modules[modtype] - transform_with_anim() //VOREStation edit: sprite animation - new module_type(src) - - hands.icon_state = get_hud_module_icon() - feedback_inc("cyborg_[lowertext(modtype)]",1) - updatename() - hud_used.update_robot_modules_display() - notify_ai(ROBOT_NOTIFICATION_NEW_MODULE, module.name) - robotact?.update_static_data_for_all_viewers() /mob/living/silicon/robot/proc/update_braintype() if(istype(mmi, /obj/item/mmi/digital/posibrain)) @@ -796,6 +766,7 @@ notify_ai(ROBOT_NOTIFICATION_MODULE_RESET, module.name) module.Reset(src) qdel(module) + icon_selected = 0 module = null updatename("Default") has_recoloured = FALSE @@ -1088,60 +1059,6 @@ return -/mob/living/silicon/robot/proc/choose_icon(var/triesleft) - var/robot_species = null - if(!SSrobot_sprites) - to_chat(src, "Robot Sprites have not been initialized yet. How are you choosing a sprite? Harass a coder.") - return - - var/list/module_sprites = SSrobot_sprites.get_module_sprites(modtype, src) - if(!module_sprites || !module_sprites.len) - to_chat(src, "Your module appears to have no sprite options. Harass a coder.") - return - - icon_selected = 0 - icon_selection_tries = triesleft - if(module_sprites.len == 1 || !client) - if(!(sprite_datum in module_sprites)) - sprite_datum = module_sprites[1] - else - var/selection = tgui_input_list(src, "Select an icon! [triesleft ? "You have [triesleft] more chance\s." : "This is your last try."]", "Robot Icon", module_sprites) - if(selection) - sprite_datum = selection - else - sprite_datum = module_sprites[1] - if(!istype(src,/mob/living/silicon/robot/drone)) - robot_species = sprite_datum.name - if(notransform) - to_chat(src, "Your current transformation has not finished yet!") - choose_icon(icon_selection_tries) - return - else - transform_with_anim() - - var/tempheight = vis_height - update_icon() - // This is bad but I dunno other way to 'reset' our resize offset based on vis_height changes other than resizing to normal and back. - if(tempheight != vis_height) - var/tempsize = size_multiplier - resize(1) - resize(tempsize) - - - if (module_sprites.len > 1 && triesleft >= 1 && client) - icon_selection_tries-- - var/choice = tgui_alert(usr, "Look at your icon - is this what you want?", "Icon Choice", list("Yes","No")) - if(choice == "No") - choose_icon(icon_selection_tries) - return - - icon_selected = 1 - icon_selection_tries = 0 - sprite_type = robot_species - if(hands) - update_hud() - to_chat(src, span_filter_notice("Your icon has been set. You now require a module reset to change it.")) - /mob/living/silicon/robot/proc/set_default_module_icon() if(!SSrobot_sprites) return diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index 8f8c0757e0..5764989ecf 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -73,7 +73,6 @@ var/global/list/robot_modules = list( R.radio.recalculateChannels() R.set_default_module_icon() - R.choose_icon(SSrobot_sprites.get_module_sprites_len(R.modtype, R) + 1) if(!R.client) R.icon_selected = FALSE // It wasnt a player selecting icon? Let them do it later! @@ -93,7 +92,7 @@ var/global/list/robot_modules = list( if(R.radio) R.radio.recalculateChannels() - R.choose_icon(0) + R.set_default_module_icon() R.scrubbing = FALSE diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm new file mode 100644 index 0000000000..addf1bf6ef --- /dev/null +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -0,0 +1,106 @@ +// Robot module selection +/datum/tgui_module/robot_ui_module + name = "Robot Module Configurator" + tgui_id = "RobotChoose" + var/selected_module + var/datum/robot_sprite/sprite_datum + +/datum/tgui_module/robot_ui_module/tgui_state(mob/user) + return GLOB.tgui_self_state + +/datum/tgui_module/robot_ui_module/tgui_static_data() + var/list/data = ..() + + var/mob/living/silicon/robot/R = host + + var/list/modules = list() + if(R.module) + modules = list(R.module) + selected_module = R.module + else + if(LAZYLEN(R.restrict_modules_to) > 0) + modules.Add(R.restrict_modules_to) + else if(R.shell) + modules.Add(shell_module_types) + else + modules.Add(robot_module_types) + if(R.crisis || security_level == SEC_LEVEL_RED || R.crisis_override) + to_chat(R, span_red("Crisis mode active. Combat module available.")) + modules |= emergency_module_types + for(var/module_name in whitelisted_module_types) + if(is_borg_whitelisted(R, module_name)) + modules |= module_name + data["possible_modules"] = modules + + return data + +/datum/tgui_module/robot_ui_module/tgui_data() + var/list/data = ..() + + var/mob/living/silicon/robot/R = host + + if(selected_module) + if(!SSrobot_sprites) + to_chat(R, span_warning("Robot Sprites have not been initialized yet. How are you choosing a sprite? Harass a coder.")) + selected_module = null + return + + var/list/module_sprites = SSrobot_sprites.get_module_sprites(selected_module, R) + if(!module_sprites || !module_sprites.len) + to_chat(R, span_warning("Your module appears to have no sprite options. Harass a coder.")) + selected_module = null + return + + data["possible_sprites"] = module_sprites + + return data + +/datum/tgui_module/robot_ui_module/tgui_act(action, params) + . = ..() + if(.) + return + + var/mob/living/silicon/robot/R = host + + switch(action) + if("pick_module") + if(R.module) + return + var/new_module = params["value"] + if(!(new_module in robot_modules)) + return + if(!is_borg_whitelisted(R, new_module)) + return + selected_module = new_module + . = TRUE + if("pick_icon") + var/sprite = params["value"] + if(!sprite) + return + var/list/module_sprites = SSrobot_sprites.get_module_sprites(selected_module, R) + sprite_datum = module_sprites[sprite] + . = TRUE + if("confirm") + R.icon_selected = 1 + var/module_type = robot_modules[selected_module] + R.module = new module_type(R) + R.hands.icon_state = R.get_hud_module_icon() + feedback_inc("cyborg_[lowertext(selected_module)]",1) + R.updatename() + R.hud_used.update_robot_modules_display() + R.notify_ai(ROBOT_NOTIFICATION_NEW_MODULE, R.module.name) + R.robotact?.update_static_data_for_all_viewers() + if(!istype(R,/mob/living/silicon/robot/drone)) + R.sprite_type = sprite_datum.name + R.transform_with_anim() + var/tempheight = R.vis_height + R.update_icon() + // This is bad but I dunno other way to 'reset' our resize offset based on vis_height changes other than resizing to normal and back. + if(tempheight != R.vis_height) + var/tempsize = R.size_multiplier + R.resize(1) + R.resize(tempsize) + if(R.hands) + R.update_hud() + to_chat(R, span_filter_notice("Your icon has been set. You now require a module reset to change it.")) + tgui_close() diff --git a/vorestation.dme b/vorestation.dme index 07be19acdd..576a9c1f1b 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -3163,6 +3163,7 @@ #include "code\modules\mob\living\silicon\robot\robot_movement.dm" #include "code\modules\mob\living\silicon\robot\robot_remote_control.dm" #include "code\modules\mob\living\silicon\robot\robot_ui.dm" +#include "code\modules\mob\living\silicon\robot\robot_ui_module.dm" #include "code\modules\mob\living\silicon\robot\dogborg\dog_modules_vr.dm" #include "code\modules\mob\living\silicon\robot\dogborg\dog_sleeper_vr.dm" #include "code\modules\mob\living\silicon\robot\drone\drone.dm" From dafcd12ecd83e15a76fc17b9f63cdb0df801db20 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 10 Nov 2024 17:45:14 +0100 Subject: [PATCH 035/109] . --- code/modules/mob/living/silicon/robot/robot_modules/station.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index 5764989ecf..bc54a72e63 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -73,6 +73,7 @@ var/global/list/robot_modules = list( R.radio.recalculateChannels() R.set_default_module_icon() + R.pick_module() if(!R.client) R.icon_selected = FALSE // It wasnt a player selecting icon? Let them do it later! From 48e75791fbbe43d05f0eb3a0cafd81fa91b95bdb Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 10 Nov 2024 17:56:32 +0100 Subject: [PATCH 036/109] . --- code/modules/mob/living/silicon/robot/robot.dm | 4 +--- code/modules/mob/living/silicon/robot/robot_ui_module.dm | 2 ++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 4e7ea7bd00..4b1bb55aec 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -341,11 +341,9 @@ var/list/module_sprites = SSrobot_sprites.get_module_sprites(module, src) if(module_sprites.len == 1 || !client) sprite_datum = module_sprites[1] + sprite_datum.do_equipment_glamour(module) return new/datum/tgui_module/robot_ui_module(src) - if(sprite_datum && module) - sprite_datum.do_equipment_glamour(module) - /mob/living/silicon/robot/proc/update_braintype() if(istype(mmi, /obj/item/mmi/digital/posibrain)) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index addf1bf6ef..708c3c2331 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -90,6 +90,7 @@ R.hud_used.update_robot_modules_display() R.notify_ai(ROBOT_NOTIFICATION_NEW_MODULE, R.module.name) R.robotact?.update_static_data_for_all_viewers() + R.sprite_datum = sprite_datum if(!istype(R,/mob/living/silicon/robot/drone)) R.sprite_type = sprite_datum.name R.transform_with_anim() @@ -102,5 +103,6 @@ R.resize(tempsize) if(R.hands) R.update_hud() + R.sprite_datum.do_equipment_glamour(module) to_chat(R, span_filter_notice("Your icon has been set. You now require a module reset to change it.")) tgui_close() From 0601585dd71924ae47cf6c3b88dc7f84c4934a76 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 10 Nov 2024 19:48:21 +0100 Subject: [PATCH 037/109] make the basics work --- .../modules/mob/living/silicon/robot/robot.dm | 5 +- .../mob/living/silicon/robot/robot_ui.dm | 4 ++ .../living/silicon/robot/robot_ui_module.dm | 18 +++++-- .../silicon/robot/subtypes/gravekeeper.dm | 1 + .../silicon/robot/subtypes/lost_drone.dm | 1 + .../silicon/robot/subtypes/syndicate.dm | 1 + tgui/packages/tgui/interfaces/RobotChoose.tsx | 52 +++++++++++++++++++ .../tgui/interfaces/Robotact/index.tsx | 2 +- .../tgui/interfaces/Robotact/types.ts | 1 + 9 files changed, 79 insertions(+), 6 deletions(-) create mode 100644 tgui/packages/tgui/interfaces/RobotChoose.tsx diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 4b1bb55aec..cf978597b2 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -46,6 +46,8 @@ var/shown_robot_modules = 0 //Used to determine whether they have the module menu shown or not var/obj/screen/robot_modules_background + var/ui_theme + //3 Modules can be activated at any one time. var/obj/item/robot_module/module = null var/module_active = null @@ -343,7 +345,8 @@ sprite_datum = module_sprites[1] sprite_datum.do_equipment_glamour(module) return - new/datum/tgui_module/robot_ui_module(src) + var/datum/tgui_module/robot_ui_module/ui = new(src) + ui.tgui_interact(src) /mob/living/silicon/robot/proc/update_braintype() if(istype(mmi, /obj/item/mmi/digital/posibrain)) diff --git a/code/modules/mob/living/silicon/robot/robot_ui.dm b/code/modules/mob/living/silicon/robot/robot_ui.dm index 7262f45364..7499fb198e 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui.dm @@ -63,6 +63,10 @@ data["health"] = R.health data["max_health"] = R.getMaxHealth() data["light_color"] = R.robot_light_col + if(R.emagged) + data["theme"] = "syndicate" + else if (R.ui_theme) + data["theme"] = R.ui_theme data["weapon_lock"] = R.weapon_lock diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 708c3c2331..e861cbabb8 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -31,6 +31,10 @@ if(is_borg_whitelisted(R, module_name)) modules |= module_name data["possible_modules"] = modules + if(R.emagged) + data["theme"] = "syndicate" + else if (R.ui_theme) + data["theme"] = R.ui_theme return data @@ -40,6 +44,7 @@ var/mob/living/silicon/robot/R = host if(selected_module) + data["selected_module"] = selected_module if(!SSrobot_sprites) to_chat(R, span_warning("Robot Sprites have not been initialized yet. How are you choosing a sprite? Harass a coder.")) selected_module = null @@ -52,6 +57,8 @@ return data["possible_sprites"] = module_sprites + if(sprite_datum) + data["sprite_datum"] = sprite_datum return data @@ -78,13 +85,16 @@ if(!sprite) return var/list/module_sprites = SSrobot_sprites.get_module_sprites(selected_module, R) - sprite_datum = module_sprites[sprite] + for(var/datum/robot_sprite/S in module_sprites) + if(S.name == sprite) + sprite_datum = S + break . = TRUE if("confirm") R.icon_selected = 1 var/module_type = robot_modules[selected_module] + R.modtype = selected_module R.module = new module_type(R) - R.hands.icon_state = R.get_hud_module_icon() feedback_inc("cyborg_[lowertext(selected_module)]",1) R.updatename() R.hud_used.update_robot_modules_display() @@ -103,6 +113,6 @@ R.resize(tempsize) if(R.hands) R.update_hud() - R.sprite_datum.do_equipment_glamour(module) + R.sprite_datum.do_equipment_glamour(R.module) to_chat(R, span_filter_notice("Your icon has been set. You now require a module reset to change it.")) - tgui_close() + close_ui() diff --git a/code/modules/mob/living/silicon/robot/subtypes/gravekeeper.dm b/code/modules/mob/living/silicon/robot/subtypes/gravekeeper.dm index 73357c1071..ccf1908c16 100644 --- a/code/modules/mob/living/silicon/robot/subtypes/gravekeeper.dm +++ b/code/modules/mob/living/silicon/robot/subtypes/gravekeeper.dm @@ -9,6 +9,7 @@ icon_selected = FALSE can_be_antagged = FALSE restrict_modules_to = list("Gravekeeper") + ui_theme = "malfunction" /mob/living/silicon/robot/gravekeeper/init() aiCamera = new/obj/item/camera/siliconcam/robot_camera(src) diff --git a/code/modules/mob/living/silicon/robot/subtypes/lost_drone.dm b/code/modules/mob/living/silicon/robot/subtypes/lost_drone.dm index 24e449c411..9f0aa11446 100644 --- a/code/modules/mob/living/silicon/robot/subtypes/lost_drone.dm +++ b/code/modules/mob/living/silicon/robot/subtypes/lost_drone.dm @@ -9,6 +9,7 @@ icon_selected = FALSE restrict_modules_to = list("Lost") var/law_retries = 5 + ui_theme = "malfunction" /mob/living/silicon/robot/lost/init() aiCamera = new/obj/item/camera/siliconcam/robot_camera(src) diff --git a/code/modules/mob/living/silicon/robot/subtypes/syndicate.dm b/code/modules/mob/living/silicon/robot/subtypes/syndicate.dm index 5dd72332e4..15a8257a49 100644 --- a/code/modules/mob/living/silicon/robot/subtypes/syndicate.dm +++ b/code/modules/mob/living/silicon/robot/subtypes/syndicate.dm @@ -8,6 +8,7 @@ idcard_type = /obj/item/card/id/syndicate icon_selected = FALSE restrict_modules_to = list("Protector", "Mechanist", "Combat Medic") + ui_theme = "syndicate" /mob/living/silicon/robot/syndicate/init() aiCamera = new/obj/item/camera/siliconcam/robot_camera(src) diff --git a/tgui/packages/tgui/interfaces/RobotChoose.tsx b/tgui/packages/tgui/interfaces/RobotChoose.tsx new file mode 100644 index 0000000000..670fba547c --- /dev/null +++ b/tgui/packages/tgui/interfaces/RobotChoose.tsx @@ -0,0 +1,52 @@ +import { useBackend } from 'tgui/backend'; +import { Window } from 'tgui/layouts'; +import { Button, Dropdown, Stack } from 'tgui-core/components'; + +type Data = { + possible_modules: string[]; + possible_sprites: string[]; + theme?: string; + selected_module?: string; + sprite_datum?: string; +}; + +export const RobotChoose = (props) => { + const { act, data } = useBackend(); + + const { + possible_modules, + possible_sprites, + selected_module, + sprite_datum, + theme, + } = data; + + return ( + + + + + act('pick_module', { value })} + selected={selected_module} + /> + + + act('pick_icon', { value })} + selected={sprite_datum} + /> + + + + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Robotact/index.tsx b/tgui/packages/tgui/interfaces/Robotact/index.tsx index 94b9725334..1ab5ea486a 100644 --- a/tgui/packages/tgui/interfaces/Robotact/index.tsx +++ b/tgui/packages/tgui/interfaces/Robotact/index.tsx @@ -18,7 +18,7 @@ export const Robotact = (props) => { } return ( - + {content} ); diff --git a/tgui/packages/tgui/interfaces/Robotact/types.ts b/tgui/packages/tgui/interfaces/Robotact/types.ts index bd33676d99..b4232ff6e4 100644 --- a/tgui/packages/tgui/interfaces/Robotact/types.ts +++ b/tgui/packages/tgui/interfaces/Robotact/types.ts @@ -31,6 +31,7 @@ export type Data = { max_health: number; light_color: string; + theme?: string; // Modules modules_static: Module[]; From 890548b14ffc69cbc3c4133aa0ec5f2671a11a12 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 10 Nov 2024 22:07:17 +0100 Subject: [PATCH 038/109] =?UTF-8?q?=C2=B4some=20ui=20basics?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../living/silicon/robot/robot_ui_module.dm | 12 +++-- tgui/packages/tgui/interfaces/RobotChoose.tsx | 52 ------------------- .../interfaces/RobotChoose/ModuleSection.tsx | 47 +++++++++++++++++ .../RobotChoose/SelectorElement.tsx | 36 +++++++++++++ .../interfaces/RobotChoose/SpriteSection.tsx | 48 +++++++++++++++++ .../tgui/interfaces/RobotChoose/index.tsx | 46 ++++++++++++++++ .../tgui/interfaces/RobotChoose/types.ts | 9 ++++ 7 files changed, 195 insertions(+), 55 deletions(-) delete mode 100644 tgui/packages/tgui/interfaces/RobotChoose.tsx create mode 100644 tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx create mode 100644 tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx create mode 100644 tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx create mode 100644 tgui/packages/tgui/interfaces/RobotChoose/index.tsx create mode 100644 tgui/packages/tgui/interfaces/RobotChoose/types.ts diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index e861cbabb8..8e8fbcb6aa 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -15,8 +15,8 @@ var/list/modules = list() if(R.module) - modules = list(R.module) - selected_module = R.module + modules = list(R.modtype) + selected_module = R.modtype else if(LAZYLEN(R.restrict_modules_to) > 0) modules.Add(R.restrict_modules_to) @@ -55,8 +55,11 @@ to_chat(R, span_warning("Your module appears to have no sprite options. Harass a coder.")) selected_module = null return + var/list/available_sprites = list() + for(var/datum/robot_sprite/S in module_sprites) + available_sprites += list(list("sprite" = S.name, "belly" = S.has_vore_belly_sprites)) - data["possible_sprites"] = module_sprites + data["possible_sprites"] = available_sprites if(sprite_datum) data["sprite_datum"] = sprite_datum @@ -79,6 +82,9 @@ if(!is_borg_whitelisted(R, new_module)) return selected_module = new_module + var/list/module_sprites = SSrobot_sprites.get_module_sprites(selected_module, R) + if(!R.sprite_datum in module_sprites) + sprite_datum = null . = TRUE if("pick_icon") var/sprite = params["value"] diff --git a/tgui/packages/tgui/interfaces/RobotChoose.tsx b/tgui/packages/tgui/interfaces/RobotChoose.tsx deleted file mode 100644 index 670fba547c..0000000000 --- a/tgui/packages/tgui/interfaces/RobotChoose.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { useBackend } from 'tgui/backend'; -import { Window } from 'tgui/layouts'; -import { Button, Dropdown, Stack } from 'tgui-core/components'; - -type Data = { - possible_modules: string[]; - possible_sprites: string[]; - theme?: string; - selected_module?: string; - sprite_datum?: string; -}; - -export const RobotChoose = (props) => { - const { act, data } = useBackend(); - - const { - possible_modules, - possible_sprites, - selected_module, - sprite_datum, - theme, - } = data; - - return ( - - - - - act('pick_module', { value })} - selected={selected_module} - /> - - - act('pick_icon', { value })} - selected={sprite_datum} - /> - - - - - - ); -}; diff --git a/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx new file mode 100644 index 0000000000..2a7fafc371 --- /dev/null +++ b/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx @@ -0,0 +1,47 @@ +import { createSearch } from 'common/string'; +import { useState } from 'react'; +import { Input, Section, Stack } from 'tgui-core/components'; + +import { SelectorElement } from './SelectorElement'; + +export const ModuleSection = (props: { + title: string; + sortable?: string[]; + selected?: string; +}) => { + const { title, sortable, selected } = props; + + const [searchText, setSearchText] = useState(''); + + const searcher = createSearch(searchText, (element: string) => { + return element; + }); + + const filtered = sortable?.filter(searcher); + + return ( +

+ + setSearchText(value)} + /> + + + + {filtered && + filtered.map((filter) => ( + + ))} + + +
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx b/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx new file mode 100644 index 0000000000..3335fa8192 --- /dev/null +++ b/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx @@ -0,0 +1,36 @@ +import { useBackend } from 'tgui/backend'; +import { Button, Flex, Icon, Stack } from 'tgui-core/components'; + +export const SelectorElement = (props: { + option: string; + action: string; + selected?: string; + belly?: boolean; +}) => { + const { act } = useBackend(); + const { option, action, selected, belly } = props; + + return ( + + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx new file mode 100644 index 0000000000..7c8782aa23 --- /dev/null +++ b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx @@ -0,0 +1,48 @@ +import { createSearch } from 'common/string'; +import { useState } from 'react'; +import { Input, Section, Stack } from 'tgui-core/components'; + +import { SelectorElement } from './SelectorElement'; +import { spriteOption } from './types'; + +export const SpriteSection = (props: { + title: string; + sortable?: { sprite: string; belly: boolean }[]; + selected?: string; +}) => { + const { title, sortable, selected } = props; + + const [searchText, setSearchText] = useState(''); + + const searcher = createSearch(searchText, (element: spriteOption) => { + return element.sprite; + }); + + const filtered = sortable?.filter(searcher); + return ( +
+ + setSearchText(value)} + /> + + + + {filtered && + filtered.map((filter) => ( + + ))} + + +
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx new file mode 100644 index 0000000000..fcb6e5c408 --- /dev/null +++ b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx @@ -0,0 +1,46 @@ +import { useBackend } from 'tgui/backend'; +import { Window } from 'tgui/layouts'; +import { Button, Stack } from 'tgui-core/components'; + +import { ModuleSection } from './ModuleSection'; +import { SpriteSection } from './SpriteSection'; +import { Data } from './types'; + +export const RobotChoose = (props) => { + const { act, data } = useBackend(); + + const { + possible_modules, + possible_sprites, + selected_module, + sprite_datum, + theme, + } = data; + + return ( + + + + + + + + + + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/RobotChoose/types.ts b/tgui/packages/tgui/interfaces/RobotChoose/types.ts new file mode 100644 index 0000000000..ac06afe56d --- /dev/null +++ b/tgui/packages/tgui/interfaces/RobotChoose/types.ts @@ -0,0 +1,9 @@ +export type Data = { + possible_modules: string[]; + possible_sprites?: spriteOption[]; + theme?: string; + selected_module?: string; + sprite_datum?: string; +}; + +export type spriteOption = { sprite: string; belly: boolean }; From 9b24439eac848a586e327d6e84873db1838202b7 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 10 Nov 2024 22:18:05 +0100 Subject: [PATCH 039/109] . --- code/modules/mob/living/silicon/robot/robot_ui_module.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 8e8fbcb6aa..8f2e4bbe93 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -83,7 +83,7 @@ return selected_module = new_module var/list/module_sprites = SSrobot_sprites.get_module_sprites(selected_module, R) - if(!R.sprite_datum in module_sprites) + if(!sprite_datum in module_sprites) sprite_datum = null . = TRUE if("pick_icon") From 6b88488c55d165facbc567474b37702d234df9ad Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 10 Nov 2024 23:10:29 +0100 Subject: [PATCH 040/109] divide by sprite type --- .../living/silicon/robot/robot_ui_module.dm | 7 ++- .../RobotChoose/SelectorElement.tsx | 1 - .../interfaces/RobotChoose/SpriteSection.tsx | 50 +++++++++++++++---- .../tgui/interfaces/RobotChoose/functions.ts | 47 +++++++++++++++++ .../tgui/interfaces/RobotChoose/types.ts | 2 +- 5 files changed, 95 insertions(+), 12 deletions(-) create mode 100644 tgui/packages/tgui/interfaces/RobotChoose/functions.ts diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 8f2e4bbe93..7ea6049d0e 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -57,7 +57,12 @@ return var/list/available_sprites = list() for(var/datum/robot_sprite/S in module_sprites) - available_sprites += list(list("sprite" = S.name, "belly" = S.has_vore_belly_sprites)) + var/model_type = "def" + if(istype(S, /datum/robot_sprite/dogborg)) + model_type = "wide" + if(istype(S, /datum/robot_sprite/dogborg/tall)) + model_type = "tall" + available_sprites += list(list("sprite" = S.name, "belly" = S.has_vore_belly_sprites, "type" = model_type)) data["possible_sprites"] = available_sprites if(sprite_datum) diff --git a/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx b/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx index 3335fa8192..d1beda36d0 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx @@ -15,7 +15,6 @@ export const SelectorElement = (props: { + } + > + {!!sprite && !!module && ( + <> + + + + + + + + + + + + + + )} + + ); +}; diff --git a/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx index 2a7fafc371..c90dbbe7be 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx @@ -31,7 +31,7 @@ export const ModuleSection = (props: { - {filtered && + {!!filtered && filtered.map((filter) => ( - {' '} diff --git a/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx index 31fb410700..13cba8fc05 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx @@ -63,7 +63,7 @@ export const SpriteSection = (props: { - {filtered && + {!!filtered && filtered.map((filter) => ( { - const { act, data } = useBackend(); + const { data } = useBackend(); const { possible_modules, @@ -31,14 +32,7 @@ export const RobotChoose = (props) => { sortable={possible_sprites} selected={sprite_datum} /> - - - + From b09bdf0397c9ce8c3420dd97262342a61c28a5a9 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 00:21:24 +0100 Subject: [PATCH 044/109] . --- code/modules/mob/living/silicon/robot/robot_ui_module.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 5dc30cfdbc..6037834bf1 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -92,7 +92,7 @@ return selected_module = new_module var/list/module_sprites = SSrobot_sprites.get_module_sprites(selected_module, R) - if(!sprite_datum in module_sprites) + if(!(sprite_datum in module_sprites)) sprite_datum = null . = TRUE if("pick_icon") From b563c08d04b2efe32cf86561c91125384701b5d9 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 00:31:32 +0100 Subject: [PATCH 045/109] . --- code/modules/asset_cache/asset_list_items.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index c229630221..699e48e99c 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -445,7 +445,6 @@ for(var/datum/robot_sprite/S as anything in typesof(/datum/robot_sprite)) if(!S.name) continue - to_world("[S.name]]") var/icon/I_S = icon(S.sprite_icon, S.sprite_icon_state, SOUTH) var/icon/I_N = icon(S.sprite_icon, S.sprite_icon_state, NORTH) var/icon/I_W = icon(S.sprite_icon, S.sprite_icon_state, WEST) From e6e6449c79b8ea6580b26a207d3eea2ea3ae1814 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 01:25:24 +0100 Subject: [PATCH 046/109] we only need out own asset --- code/modules/mob/living/silicon/robot/robot_ui_module.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 6037834bf1..435c524146 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -10,7 +10,9 @@ /datum/tgui_module/robot_ui_module/ui_assets(mob/user) - . += get_asset_datum(/datum/asset/spritesheet/robot_icons) + return list( + get_asset_datum(/datum/asset/spritesheet/robot_icons) + ) /datum/tgui_module/robot_ui_module/tgui_static_data() var/list/data = ..() From bbff768a4650bc2309775a1df0102fd2aafee215 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 01:27:51 +0100 Subject: [PATCH 047/109] we need sprite and module for it anyway --- code/modules/asset_cache/asset_list_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 699e48e99c..911dd62fb0 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -443,7 +443,7 @@ /datum/asset/spritesheet/robot_icons/create_spritesheets() for(var/datum/robot_sprite/S as anything in typesof(/datum/robot_sprite)) - if(!S.name) + if(!S.name || !S.module_type) continue var/icon/I_S = icon(S.sprite_icon, S.sprite_icon_state, SOUTH) var/icon/I_N = icon(S.sprite_icon, S.sprite_icon_state, NORTH) From 1ca37e1ad73ee9c317dbf8f4be1fa38c105600b4 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 02:05:08 +0100 Subject: [PATCH 048/109] some Ui things --- code/_helpers/text.dm | 5 +++++ code/modules/asset_cache/asset_list_items.dm | 11 ++++++----- .../mob/living/silicon/robot/robot_ui_module.dm | 4 +++- .../tgui/interfaces/RobotChoose/IconSection.tsx | 14 +++++++------- .../interfaces/RobotChoose/SelectorElement.tsx | 2 +- .../tgui/interfaces/RobotChoose/SpriteSection.tsx | 2 +- .../packages/tgui/interfaces/RobotChoose/index.tsx | 3 ++- tgui/packages/tgui/interfaces/RobotChoose/types.ts | 3 ++- 8 files changed, 27 insertions(+), 17 deletions(-) diff --git a/code/_helpers/text.dm b/code/_helpers/text.dm index 520b98d39a..3357116d30 100644 --- a/code/_helpers/text.dm +++ b/code/_helpers/text.dm @@ -620,3 +620,8 @@ return json_decode(data) catch return null + +/// Removes all non-alphanumerics from the text, keep in mind this can lead to id conflicts +/proc/sanitize_css_class_name(name) + var/static/regex/regex = new(@"[^a-zA-Z0-9]","g") + return replacetext(name, regex, "") diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 911dd62fb0..b0dc6223e6 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -443,7 +443,7 @@ /datum/asset/spritesheet/robot_icons/create_spritesheets() for(var/datum/robot_sprite/S as anything in typesof(/datum/robot_sprite)) - if(!S.name || !S.module_type) + if(!S.name) continue var/icon/I_S = icon(S.sprite_icon, S.sprite_icon_state, SOUTH) var/icon/I_N = icon(S.sprite_icon, S.sprite_icon_state, NORTH) @@ -461,10 +461,11 @@ var/icon/I_EE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", EAST) if(I_EE) I_E.Blend(I_EE, ICON_OVERLAY) - Insert(S.module_type + S.name + "_S", I_S) - Insert(S.module_type + S.name + "_N", I_N) - Insert(S.module_type + S.name + "_W", I_W) - Insert(S.module_type + S.name + "_E", I_E) + var/imgid = sanitize_css_class_name("[S.type]") + Insert(imgid + "_S", I_S) + Insert(imgid + "_N", I_N) + Insert(imgid + "_W", I_W) + Insert(imgid + "_E", I_E) //Cloning pod sprites for UIs diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 435c524146..1c3973d5dc 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -71,8 +71,10 @@ available_sprites += list(list("sprite" = S.name, "belly" = S.has_vore_belly_sprites, "type" = model_type)) data["possible_sprites"] = available_sprites + data["sprite_datum"] = sprite_datum + data["asset"] = null if(sprite_datum) - data["sprite_datum"] = sprite_datum + data["asset"] = sanitize_css_class_name("[sprite_datum.type]") return data diff --git a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx index f066f1b507..8f18137ea1 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx @@ -2,9 +2,9 @@ import { resolveAsset } from 'tgui/assets'; import { useBackend } from 'tgui/backend'; import { Button, Image, Section, Stack } from 'tgui-core/components'; -export const IconSection = (props: { module?: string; sprite?: string }) => { +export const IconSection = (props: { sprite?: string | null }) => { const { act } = useBackend(); - const { module, sprite } = props; + const { sprite } = props; return (
{ } > - {!!sprite && !!module && ( + {!!sprite && ( <> { { { { const { act } = useBackend(); diff --git a/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx index 13cba8fc05..b9906e252e 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx @@ -7,8 +7,8 @@ import { spriteOption } from './types'; export const SpriteSection = (props: { title: string; + selected?: string | null; sortable?: spriteOption[]; - selected?: string; }) => { const { title, sortable, selected } = props; diff --git a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx index 999b0c687f..3f04b68e77 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx @@ -16,6 +16,7 @@ export const RobotChoose = (props) => { selected_module, sprite_datum, theme, + asset, } = data; return ( @@ -32,7 +33,7 @@ export const RobotChoose = (props) => { sortable={possible_sprites} selected={sprite_datum} /> - + diff --git a/tgui/packages/tgui/interfaces/RobotChoose/types.ts b/tgui/packages/tgui/interfaces/RobotChoose/types.ts index 1fa9774eb9..60bab5ac9d 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/types.ts +++ b/tgui/packages/tgui/interfaces/RobotChoose/types.ts @@ -3,7 +3,8 @@ export type Data = { possible_sprites?: spriteOption[]; theme?: string; selected_module?: string; - sprite_datum?: string; + sprite_datum?: string | null; + asset?: string | null; }; export type spriteOption = { sprite: string; belly: boolean; type: string }; From f80786eb9d9b72ef4fb19e5ea1872a73ed97d6a6 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 02:38:48 +0100 Subject: [PATCH 049/109] getting there, thanks Shadow --- code/modules/asset_cache/asset_list_items.dm | 16 ++++---- .../living/silicon/robot/robot_ui_module.dm | 6 ++- .../interfaces/RobotChoose/IconSection.tsx | 41 ++++++------------- .../tgui/interfaces/RobotChoose/index.tsx | 5 ++- .../tgui/interfaces/RobotChoose/types.ts | 3 +- 5 files changed, 29 insertions(+), 42 deletions(-) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index b0dc6223e6..09cb6d2af9 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -445,16 +445,16 @@ for(var/datum/robot_sprite/S as anything in typesof(/datum/robot_sprite)) if(!S.name) continue - var/icon/I_S = icon(S.sprite_icon, S.sprite_icon_state, SOUTH) var/icon/I_N = icon(S.sprite_icon, S.sprite_icon_state, NORTH) + var/icon/I_S = icon(S.sprite_icon, S.sprite_icon_state, SOUTH) var/icon/I_W = icon(S.sprite_icon, S.sprite_icon_state, WEST) var/icon/I_E = icon(S.sprite_icon, S.sprite_icon_state, EAST) - var/icon/I_SE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", SOUTH) - if(I_SE) - I_S.Blend(I_SE, ICON_OVERLAY) var/icon/I_NE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", NORTH) if(I_NE) I_N.Blend(I_NE, ICON_OVERLAY) + var/icon/I_SE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", SOUTH) + if(I_SE) + I_S.Blend(I_SE, ICON_OVERLAY) var/icon/I_WE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", WEST) if(I_WE) I_W.Blend(I_WE, ICON_OVERLAY) @@ -462,10 +462,10 @@ if(I_EE) I_E.Blend(I_EE, ICON_OVERLAY) var/imgid = sanitize_css_class_name("[S.type]") - Insert(imgid + "_S", I_S) - Insert(imgid + "_N", I_N) - Insert(imgid + "_W", I_W) - Insert(imgid + "_E", I_E) + Insert(imgid + "N", I_N) + Insert(imgid + "S", I_S) + Insert(imgid + "W", I_W) + Insert(imgid + "E", I_E) //Cloning pod sprites for UIs diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 1c3973d5dc..1090c52714 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -48,6 +48,7 @@ var/list/data = ..() var/mob/living/silicon/robot/R = host + var/datum/asset/spritesheet/robot_icons/spritesheet = get_asset_datum(/datum/asset/spritesheet/robot_icons) if(selected_module) data["selected_module"] = selected_module @@ -72,9 +73,10 @@ data["possible_sprites"] = available_sprites data["sprite_datum"] = sprite_datum - data["asset"] = null + data["sprite_datum_class"] = null if(sprite_datum) - data["asset"] = sanitize_css_class_name("[sprite_datum.type]") + data["sprite_datum_class"] = sanitize_css_class_name("[sprite_datum.type]") + data["sprite_datum_size"] = spritesheet.icon_size_id(data["sprite_datum_class"] + "S") // just get the south icon's size, the rest will be the same return data diff --git a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx index 8f18137ea1..ac61e464a1 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx @@ -1,10 +1,13 @@ -import { resolveAsset } from 'tgui/assets'; import { useBackend } from 'tgui/backend'; -import { Button, Image, Section, Stack } from 'tgui-core/components'; +import { Box, Button, Section, Stack } from 'tgui-core/components'; +import { classes } from 'tgui-core/react'; -export const IconSection = (props: { sprite?: string | null }) => { +export const IconSection = (props: { + sprite?: string | null; + size?: string; +}) => { const { act } = useBackend(); - const { sprite } = props; + const { sprite, size } = props; return (
{ } > - {!!sprite && ( + {!!sprite && !!size && ( <> - + - + - + - + )} diff --git a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx index 3f04b68e77..e3fe8f5a0f 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx @@ -16,7 +16,8 @@ export const RobotChoose = (props) => { selected_module, sprite_datum, theme, - asset, + sprite_datum_class, + sprite_datum_size, } = data; return ( @@ -33,7 +34,7 @@ export const RobotChoose = (props) => { sortable={possible_sprites} selected={sprite_datum} /> - + diff --git a/tgui/packages/tgui/interfaces/RobotChoose/types.ts b/tgui/packages/tgui/interfaces/RobotChoose/types.ts index 60bab5ac9d..9f5f425e9d 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/types.ts +++ b/tgui/packages/tgui/interfaces/RobotChoose/types.ts @@ -4,7 +4,8 @@ export type Data = { theme?: string; selected_module?: string; sprite_datum?: string | null; - asset?: string | null; + sprite_datum_class?: string | null; + sprite_datum_size?: string; }; export type spriteOption = { sprite: string; belly: boolean; type: string }; From 9157d163bc1b25c8fa5fa194f632d9fec114d816 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 03:23:43 +0100 Subject: [PATCH 050/109] some styling --- code/modules/asset_cache/asset_list_items.dm | 4 +++ .../living/silicon/robot/robot_ui_module.dm | 1 + .../interfaces/RobotChoose/IconSection.tsx | 36 +++++++++++++++---- .../tgui/interfaces/RobotChoose/types.ts | 2 +- 4 files changed, 36 insertions(+), 7 deletions(-) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 09cb6d2af9..88211f7a4d 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -462,6 +462,10 @@ if(I_EE) I_E.Blend(I_EE, ICON_OVERLAY) var/imgid = sanitize_css_class_name("[S.type]") + I_N.Scale(120,120) + I_S.Scale(120,120) + I_W.Scale(120,120) + I_E.Scale(120,120) Insert(imgid + "N", I_N) Insert(imgid + "S", I_S) Insert(imgid + "W", I_W) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 1090c52714..78b9c592e4 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -74,6 +74,7 @@ data["possible_sprites"] = available_sprites data["sprite_datum"] = sprite_datum data["sprite_datum_class"] = null + data["sprite_datum_size"] = null if(sprite_datum) data["sprite_datum_class"] = sanitize_css_class_name("[sprite_datum.type]") data["sprite_datum_size"] = spritesheet.icon_size_id(data["sprite_datum_class"] + "S") // just get the south icon's size, the rest will be the same diff --git a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx index ac61e464a1..20a03b5cd0 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx @@ -1,10 +1,10 @@ import { useBackend } from 'tgui/backend'; -import { Box, Button, Section, Stack } from 'tgui-core/components'; +import { Box, Button, Flex, Section, Stack } from 'tgui-core/components'; import { classes } from 'tgui-core/react'; export const IconSection = (props: { sprite?: string | null; - size?: string; + size?: string | null; }) => { const { act } = useBackend(); const { sprite, size } = props; @@ -24,16 +24,40 @@ export const IconSection = (props: { {!!sprite && !!size && ( <> - + + + + + + + - + + + + + + + - + + + + + + + - + + + + + + + )} diff --git a/tgui/packages/tgui/interfaces/RobotChoose/types.ts b/tgui/packages/tgui/interfaces/RobotChoose/types.ts index 9f5f425e9d..18b57f6ce0 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/types.ts +++ b/tgui/packages/tgui/interfaces/RobotChoose/types.ts @@ -5,7 +5,7 @@ export type Data = { selected_module?: string; sprite_datum?: string | null; sprite_datum_class?: string | null; - sprite_datum_size?: string; + sprite_datum_size?: string | null; }; export type spriteOption = { sprite: string; belly: boolean; type: string }; From d2bb281b45a1d0e3b243a5345f8eb17b2cfff317 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 03:58:53 +0100 Subject: [PATCH 051/109] fix --- code/modules/asset_cache/asset_list_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 88211f7a4d..7e268c7773 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -443,7 +443,7 @@ /datum/asset/spritesheet/robot_icons/create_spritesheets() for(var/datum/robot_sprite/S as anything in typesof(/datum/robot_sprite)) - if(!S.name) + if(!S.name || !S.sprite_icon_state) // snowflake out those customs... they suck continue var/icon/I_N = icon(S.sprite_icon, S.sprite_icon_state, NORTH) var/icon/I_S = icon(S.sprite_icon, S.sprite_icon_state, SOUTH) From acb6f568d5ce8c1343573391dfa15e39ffe3da99 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 04:03:41 +0100 Subject: [PATCH 052/109] ensure eyes --- code/modules/asset_cache/asset_list_items.dm | 28 +++++++++++--------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 7e268c7773..54be950ed5 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -449,18 +449,22 @@ var/icon/I_S = icon(S.sprite_icon, S.sprite_icon_state, SOUTH) var/icon/I_W = icon(S.sprite_icon, S.sprite_icon_state, WEST) var/icon/I_E = icon(S.sprite_icon, S.sprite_icon_state, EAST) - var/icon/I_NE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", NORTH) - if(I_NE) - I_N.Blend(I_NE, ICON_OVERLAY) - var/icon/I_SE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", SOUTH) - if(I_SE) - I_S.Blend(I_SE, ICON_OVERLAY) - var/icon/I_WE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", WEST) - if(I_WE) - I_W.Blend(I_WE, ICON_OVERLAY) - var/icon/I_EE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", EAST) - if(I_EE) - I_E.Blend(I_EE, ICON_OVERLAY) + if(S.has_eye_sprites) + var/icon/I_NE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", NORTH) + if(I_NE) + I_N.Blend(I_NE, ICON_OVERLAY) + if(S.has_eye_sprites) + var/icon/I_SE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", SOUTH) + if(I_SE) + I_S.Blend(I_SE, ICON_OVERLAY) + if(S.has_eye_sprites) + var/icon/I_WE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", WEST) + if(I_WE) + I_W.Blend(I_WE, ICON_OVERLAY) + if(S.has_eye_sprites) + var/icon/I_EE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", EAST) + if(I_EE) + I_E.Blend(I_EE, ICON_OVERLAY) var/imgid = sanitize_css_class_name("[S.type]") I_N.Scale(120,120) I_S.Scale(120,120) From ba9b3e3676abaf83021962a42f133d40bcd0818f Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 08:53:52 +0100 Subject: [PATCH 053/109] include renaming --- code/game/objects/items/antag_spawners.dm | 1 - code/game/objects/items/robot/robot_parts.dm | 1 - code/game/objects/structures/ghost_pods/silicon.dm | 2 -- .../objects/structures/ghost_pods/silicon_vr.dm | 1 - code/modules/mob/living/silicon/robot/robot.dm | 13 +++++-------- .../mob/living/silicon/robot/robot_ui_module.dm | 11 +++++++++++ code/modules/mob/transform_procs.dm | 1 - .../tgui/interfaces/RobotChoose/IconSection.tsx | 13 +++++++++++-- tgui/packages/tgui/interfaces/RobotChoose/index.tsx | 7 ++++++- tgui/packages/tgui/interfaces/RobotChoose/types.ts | 1 + 10 files changed, 34 insertions(+), 17 deletions(-) diff --git a/code/game/objects/items/antag_spawners.dm b/code/game/objects/items/antag_spawners.dm index 8371f5b017..2881753189 100644 --- a/code/game/objects/items/antag_spawners.dm +++ b/code/game/objects/items/antag_spawners.dm @@ -118,7 +118,6 @@ to speak with your team, and learn what their plan is for today.")) R.key = C.key -// R.Namepick() // Apparnetly making someone a merc lets them pick a name, so this isn't needed. spawn(1) mercs.add_antagonist(R.mind, FALSE, TRUE, FALSE, FALSE, FALSE) diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 32af47b31a..2667b9d3f6 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -225,7 +225,6 @@ feedback_inc("cyborg_birth",1) callHook("borgify", list(O)) - O.namepick() qdel(src) else diff --git a/code/game/objects/structures/ghost_pods/silicon.dm b/code/game/objects/structures/ghost_pods/silicon.dm index 64ac8f5674..4f50784aed 100644 --- a/code/game/objects/structures/ghost_pods/silicon.dm +++ b/code/game/objects/structures/ghost_pods/silicon.dm @@ -31,7 +31,6 @@ from the pod is not a crewmember.")) R.ckey = M.ckey visible_message(span_warning("As \the [src] opens, the eyes of the robot flicker as it is activated.")) - R.namepick() log_and_message_admins("successfully opened \a [src] and got a Lost Drone.") ..() @@ -57,7 +56,6 @@ definiton of 'your gravesite' is where your pod is.")) R.ckey = M.ckey visible_message(span_warning("As \the [src] opens, the eyes of the robot flicker as it is activated.")) - R.namepick() ..() /obj/structure/ghost_pod/ghost_activated/swarm_drone diff --git a/code/game/objects/structures/ghost_pods/silicon_vr.dm b/code/game/objects/structures/ghost_pods/silicon_vr.dm index cfc3b781d2..1039349f2e 100644 --- a/code/game/objects/structures/ghost_pods/silicon_vr.dm +++ b/code/game/objects/structures/ghost_pods/silicon_vr.dm @@ -21,7 +21,6 @@ from the pod is not a crewmember.")) R.ckey = M.ckey visible_message(span_warning("As \the [src] opens, the eyes of the robot flicker as it is activated.")) - R.namepick() log_and_message_admins("successfully opened \a [src] and got a Lost Drone.") used = TRUE return TRUE diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index cf978597b2..28e680a0b7 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -407,15 +407,12 @@ to_chat(usr, "You can't pick another custom name. [isshell(src) ? "" : "Go ask for a name change."]") return 0 - spawn(0) - var/newname - newname = sanitizeSafe(tgui_input_text(src,"You are a robot. Enter a name, or leave blank for the default name.", "Name change","", MAX_NAME_LEN), MAX_NAME_LEN) - if (newname) - custom_name = newname - sprite_name = newname + var/newname = sanitizeSafe(tgui_input_text(src,"You are a robot. Enter a name, or leave blank for the default name.", "Name change","", MAX_NAME_LEN), MAX_NAME_LEN) + if (newname) + custom_name = newname + sprite_name = newname - updatename() - update_icon() + updatename() /mob/living/silicon/robot/verb/extra_customization() set name = "Customize Appearance" diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 78b9c592e4..883ad8c22c 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -3,6 +3,7 @@ name = "Robot Module Configurator" tgui_id = "RobotChoose" var/selected_module + var/newName var/datum/robot_sprite/sprite_datum /datum/tgui_module/robot_ui_module/tgui_state(mob/user) @@ -50,6 +51,8 @@ var/mob/living/silicon/robot/R = host var/datum/asset/spritesheet/robot_icons/spritesheet = get_asset_datum(/datum/asset/spritesheet/robot_icons) + data["currentName"] = newName ? newName : R.name + if(selected_module) data["selected_module"] = selected_module if(!SSrobot_sprites) @@ -112,7 +115,15 @@ sprite_datum = S break . = TRUE + if("rename") + var/name = params["value"] + if(name) + newName = sanitizeSafe(name, MAX_NAME_LEN) if("confirm") + if(!R.custom_name) + if (newName) + R.custom_name = newName + R.sprite_name = newName R.icon_selected = 1 var/module_type = robot_modules[selected_module] R.modtype = selected_module diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index a686e35de7..5d018586f1 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -190,7 +190,6 @@ O.custom_speech_bubble = B.custom_speech_bubble callHook("borgify", list(O)) - O.namepick() spawn(0) // Mobs still instantly del themselves, thus we need to spawn or O will never be returned qdel(src) diff --git a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx index 20a03b5cd0..5426dac0c1 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx @@ -1,13 +1,14 @@ import { useBackend } from 'tgui/backend'; -import { Box, Button, Flex, Section, Stack } from 'tgui-core/components'; +import { Box, Button, Flex, Input, Section, Stack } from 'tgui-core/components'; import { classes } from 'tgui-core/react'; export const IconSection = (props: { + currentName: string; sprite?: string | null; size?: string | null; }) => { const { act } = useBackend(); - const { sprite, size } = props; + const { currentName, sprite, size } = props; return (
} > + + act('rename', { value })} + maxLength={52} + /> + {!!sprite && !!size && ( <> diff --git a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx index e3fe8f5a0f..50288a56a6 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx @@ -16,6 +16,7 @@ export const RobotChoose = (props) => { selected_module, sprite_datum, theme, + currentName, sprite_datum_class, sprite_datum_size, } = data; @@ -34,7 +35,11 @@ export const RobotChoose = (props) => { sortable={possible_sprites} selected={sprite_datum} /> - + diff --git a/tgui/packages/tgui/interfaces/RobotChoose/types.ts b/tgui/packages/tgui/interfaces/RobotChoose/types.ts index 18b57f6ce0..4febf2232a 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/types.ts +++ b/tgui/packages/tgui/interfaces/RobotChoose/types.ts @@ -1,6 +1,7 @@ export type Data = { possible_modules: string[]; possible_sprites?: spriteOption[]; + currentName: string; theme?: string; selected_module?: string; sprite_datum?: string | null; From dde2880e50f8fb26f73839eab29f979aa7e87755 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 09:52:39 +0100 Subject: [PATCH 054/109] lock state --- code/modules/asset_cache/asset_list_items.dm | 8 ++++---- code/modules/mob/living/silicon/robot/robot.dm | 6 ++++-- .../mob/living/silicon/robot/robot_ui_module.dm | 11 +++++++++++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 54be950ed5..564b087948 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -466,10 +466,10 @@ if(I_EE) I_E.Blend(I_EE, ICON_OVERLAY) var/imgid = sanitize_css_class_name("[S.type]") - I_N.Scale(120,120) - I_S.Scale(120,120) - I_W.Scale(120,120) - I_E.Scale(120,120) + I_N.Scale(120, 120) + I_S.Scale(120, 120) + I_W.Scale(120, 120) + I_E.Scale(120, 120) Insert(imgid + "N", I_N) Insert(imgid + "S", I_S) Insert(imgid + "W", I_W) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 28e680a0b7..7b095cdc49 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -47,6 +47,7 @@ var/obj/screen/robot_modules_background var/ui_theme + var/selecting_module = FALSE //3 Modules can be activated at any one time. var/obj/item/robot_module/module = null @@ -345,8 +346,9 @@ sprite_datum = module_sprites[1] sprite_datum.do_equipment_glamour(module) return - var/datum/tgui_module/robot_ui_module/ui = new(src) - ui.tgui_interact(src) + if(!selecting_module) + var/datum/tgui_module/robot_ui_module/ui = new(src) + ui.tgui_interact(src) /mob/living/silicon/robot/proc/update_braintype() if(istype(mmi, /obj/item/mmi/digital/posibrain)) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 883ad8c22c..6b1ea6b2a6 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -9,6 +9,17 @@ /datum/tgui_module/robot_ui_module/tgui_state(mob/user) return GLOB.tgui_self_state +/datum/tgui_module/robot_ui_module/tgui_close(mob/user) + . = ..() + if(isrobot(user)) + var/mob/living/silicon/robot/R = user + R.selecting_module = FALSE + +/datum/tgui_module/robot_ui_module/tgui_interact(mob/user, datum/tgui/ui, datum/tgui/parent_ui) + . = ..() + if(isrobot(user)) + var/mob/living/silicon/robot/R = user + R.selecting_module = TRUE /datum/tgui_module/robot_ui_module/ui_assets(mob/user) return list( From fbb720a66d4ffbce2470f723cb426d41052f89b6 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 10:14:05 +0100 Subject: [PATCH 055/109] modify robot to spritesheet --- code/modules/admin/modify_robot.dm | 20 +++++++++------ .../ModifyRobotTabs/ModifyRobotComponent.tsx | 24 ++++++++++-------- .../ModifyRobotTabs/ModifyRobotModules.tsx | 25 +++++++++++-------- .../ModifyRobotTabs/ModifyRobotRadio.tsx | 21 ++++++++-------- .../ModifyRobotTabs/ModifyRobotUpgrades.tsx | 21 ++++++++-------- .../tgui/interfaces/ModifyRobot/types.ts | 9 +++---- 6 files changed, 67 insertions(+), 53 deletions(-) diff --git a/code/modules/admin/modify_robot.dm b/code/modules/admin/modify_robot.dm index f2847943f3..64f486824d 100644 --- a/code/modules/admin/modify_robot.dm +++ b/code/modules/admin/modify_robot.dm @@ -43,9 +43,16 @@ qdel(source) . = ..() +/datum/eventkit/modify_robot/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/spritesheet/robot_icons) + ) + /datum/eventkit/modify_robot/tgui_data(mob/user) . = list() // Target section for general data + var/datum/asset/spritesheet/robot_icons/spritesheet = get_asset_datum(/datum/asset/spritesheet/robot_icons) + if(target) .["target"] = list() .["target"]["name"] = target.name @@ -62,10 +69,8 @@ // Target section for options once a module has been selected if(target.module) .["target"]["active"] = target.icon_selected - .["target"]["front"] = icon2base64(get_flat_icon(target,dir=SOUTH,no_anim=TRUE)) - .["target"]["side"] = icon2base64(get_flat_icon(target,dir=WEST,no_anim=TRUE)) - .["target"]["side_alt"] = icon2base64(get_flat_icon(target,dir=EAST,no_anim=TRUE)) - .["target"]["back"] = icon2base64(get_flat_icon(target,dir=NORTH,no_anim=TRUE)) + .["target"]["sprite"] = sanitize_css_class_name("[target.sprite_datum.type]") + .["target"]["sprite_size"] = spritesheet.icon_size_id(.["target"]["sprite"] + "S") .["target"]["modules"] = get_target_items(user) var/list/module_options = list() for(var/module in robot_modules) @@ -110,7 +115,7 @@ .["access_options"] = access_options // Section for source data for the module we might want to salvage if(source) - .["source"] += get_module_source(user) + .["source"] += get_module_source(user, spritesheet) var/list/all_robots = list() for(var/mob/living/silicon/robot/R in silicon_mob_list) if(!R.loc) @@ -573,10 +578,11 @@ target_items += list(list("name" = item.name, "ref" = "\ref[item]", "icon" = icon2html(item, user, sourceonly=TRUE), "desc" = item.desc)) return target_items -/datum/eventkit/modify_robot/proc/get_module_source(var/mob/user) +/datum/eventkit/modify_robot/proc/get_module_source(var/mob/user, var/datum/asset/spritesheet/robot_icons/spritesheet) var/list/source_list = list() source_list["model"] = source.module - source_list["front"] = icon2base64(get_flat_icon(source,dir=SOUTH,no_anim=TRUE)) + source_list["sprite"] = sanitize_css_class_name("[source.sprite_datum.type]") + source_list["sprite_size"] = spritesheet.icon_size_id(source_list["sprite"] + "S") var/list/source_items = list() for(var/obj/item in (source.module.modules | source.module.emag)) var/exists diff --git a/tgui/packages/tgui/interfaces/ModifyRobot/ModifyRobotTabs/ModifyRobotComponent.tsx b/tgui/packages/tgui/interfaces/ModifyRobot/ModifyRobotTabs/ModifyRobotComponent.tsx index 293db7da7d..165b95af2e 100644 --- a/tgui/packages/tgui/interfaces/ModifyRobot/ModifyRobotTabs/ModifyRobotComponent.tsx +++ b/tgui/packages/tgui/interfaces/ModifyRobot/ModifyRobotTabs/ModifyRobotComponent.tsx @@ -2,16 +2,17 @@ import { capitalize } from 'common/string'; import { useState } from 'react'; import { useBackend } from 'tgui/backend'; import { + Box, Button, Divider, Flex, Icon, - Image, Input, Section, Stack, Tabs, } from 'tgui/components'; +import { classes } from 'tgui-core/react'; import { NoSpriteWarning } from '../components'; import { @@ -163,15 +164,18 @@ export const ModifyRobotComponent = (props: { - + + + + + + + diff --git a/tgui/packages/tgui/interfaces/ModifyRobot/ModifyRobotTabs/ModifyRobotModules.tsx b/tgui/packages/tgui/interfaces/ModifyRobot/ModifyRobotTabs/ModifyRobotModules.tsx index 045025ccd5..85ad5a6da4 100644 --- a/tgui/packages/tgui/interfaces/ModifyRobot/ModifyRobotTabs/ModifyRobotModules.tsx +++ b/tgui/packages/tgui/interfaces/ModifyRobot/ModifyRobotTabs/ModifyRobotModules.tsx @@ -13,6 +13,7 @@ import { Section, Stack, } from 'tgui/components'; +import { classes } from 'tgui-core/react'; import { NoSpriteWarning } from '../components'; import { prepareSearch } from '../functions'; @@ -47,7 +48,8 @@ export const ModifyRobotModules = (props: { /> {!!source && ( - + + + + + + + { /> - + + + + + + + { /> - + + + + + + + Date: Mon, 11 Nov 2024 10:26:17 +0100 Subject: [PATCH 056/109] returns and ui state --- code/modules/mob/living/silicon/robot/robot_ui_module.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 6b1ea6b2a6..91cd796c5a 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -17,7 +17,7 @@ /datum/tgui_module/robot_ui_module/tgui_interact(mob/user, datum/tgui/ui, datum/tgui/parent_ui) . = ..() - if(isrobot(user)) + if(isrobot(user) && ui) var/mob/living/silicon/robot/R = user R.selecting_module = TRUE @@ -130,6 +130,7 @@ var/name = params["value"] if(name) newName = sanitizeSafe(name, MAX_NAME_LEN) + . = TRUE if("confirm") if(!R.custom_name) if (newName) @@ -160,3 +161,4 @@ R.sprite_datum.do_equipment_glamour(R.module) to_chat(R, span_filter_notice("Your icon has been set. You now require a module reset to change it.")) close_ui() + . = TRUE From ea8ca79712550af533f7a8989d69b42208d19d88 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 11:47:29 +0100 Subject: [PATCH 057/109] update --- .../living/silicon/robot/robot_ui_module.dm | 1 + .../interfaces/RobotChoose/IconSection.tsx | 27 ++++++++++++++----- .../RobotChoose/SelectorElement.tsx | 2 +- .../interfaces/RobotChoose/SpriteSection.tsx | 8 +++--- .../tgui/interfaces/RobotChoose/functions.ts | 4 +-- .../tgui/interfaces/RobotChoose/index.tsx | 2 ++ .../tgui/interfaces/RobotChoose/types.ts | 1 + 7 files changed, 31 insertions(+), 14 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 91cd796c5a..7d37eca48f 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -63,6 +63,7 @@ var/datum/asset/spritesheet/robot_icons/spritesheet = get_asset_datum(/datum/asset/spritesheet/robot_icons) data["currentName"] = newName ? newName : R.name + data["isDefaultName"] = !newName if(selected_module) data["selected_module"] = selected_module diff --git a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx index 5426dac0c1..3fd39c36e1 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx @@ -2,13 +2,16 @@ import { useBackend } from 'tgui/backend'; import { Box, Button, Flex, Input, Section, Stack } from 'tgui-core/components'; import { classes } from 'tgui-core/react'; +import { Tooltip } from '../../components'; + export const IconSection = (props: { currentName: string; + isDefaultName: boolean; sprite?: string | null; size?: string | null; }) => { const { act } = useBackend(); - const { currentName, sprite, size } = props; + const { currentName, isDefaultName, sprite, size } = props; return (
- act('rename', { value })} - maxLength={52} - /> + + + Name: + + + + act('rename', { value })} + maxLength={52} + textColor={isDefaultName ? 'red' : undefined} + /> + + + {!!sprite && !!size && ( <> diff --git a/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx b/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx index 7da0a1ad32..3279ce7882 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx @@ -19,7 +19,7 @@ export const SelectorElement = (props: { > {option} - {belly && ( + {!!belly && ( <> diff --git a/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx index b9906e252e..d287792d02 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx @@ -14,13 +14,13 @@ export const SpriteSection = (props: { const [searchText, setSearchText] = useState(''); const [includeDefault, setIncludeDefault] = useState(false); - const [includeDog, setInclideDog] = useState(false); + const [includeWide, setInclideDog] = useState(false); const [includeTall, setIncludeTall] = useState(false); const filtered = robotSpriteSearcher( searchText, includeDefault, - includeDog, + includeWide, includeTall, sortable, ); @@ -39,8 +39,8 @@ export const SpriteSection = (props: { Def setInclideDog(!includeDog)} + checked={includeWide} + onClick={() => setInclideDog(!includeWide)} > Wide diff --git a/tgui/packages/tgui/interfaces/RobotChoose/functions.ts b/tgui/packages/tgui/interfaces/RobotChoose/functions.ts index 81b0688ad8..f42d00d83c 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/functions.ts +++ b/tgui/packages/tgui/interfaces/RobotChoose/functions.ts @@ -7,7 +7,7 @@ import { spriteOption } from './types'; export function robotSpriteSearcher( searchText: string, includeDefault: boolean, - includeDog: boolean, + includeWide: boolean, includeTall: boolean, sprites?: spriteOption[], ): spriteOption[] { @@ -19,7 +19,7 @@ export function robotSpriteSearcher( if (includeDefault) { subtypes.push('def'); } - if (includeDog) { + if (includeWide) { subtypes.push('wide'); } if (includeTall) { diff --git a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx index 50288a56a6..91d8dcb7d5 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx @@ -17,6 +17,7 @@ export const RobotChoose = (props) => { sprite_datum, theme, currentName, + isDefaultName, sprite_datum_class, sprite_datum_size, } = data; @@ -37,6 +38,7 @@ export const RobotChoose = (props) => { /> diff --git a/tgui/packages/tgui/interfaces/RobotChoose/types.ts b/tgui/packages/tgui/interfaces/RobotChoose/types.ts index 4febf2232a..06d691c589 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/types.ts +++ b/tgui/packages/tgui/interfaces/RobotChoose/types.ts @@ -2,6 +2,7 @@ export type Data = { possible_modules: string[]; possible_sprites?: spriteOption[]; currentName: string; + isDefaultName: boolean; theme?: string; selected_module?: string; sprite_datum?: string | null; From 455da0a4315e8d21481b3de806ab65422cd9ffec Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 12:08:31 +0100 Subject: [PATCH 058/109] fix ag janitor --- .../living/silicon/robot/robot_ui_module.dm | 8 ++++++-- icons/mob/robot/janitor.dmi | Bin 83218 -> 73403 bytes 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 7d37eca48f..74c6ad4cda 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -113,9 +113,13 @@ if(!is_borg_whitelisted(R, new_module)) return selected_module = new_module + var/new_datum var/list/module_sprites = SSrobot_sprites.get_module_sprites(selected_module, R) - if(!(sprite_datum in module_sprites)) - sprite_datum = null + for(var/datum/robot_sprite/S in module_sprites) + if(S.name == sprite_datum.name) + new_datum = S + break + sprite_datum = new_datum . = TRUE if("pick_icon") var/sprite = params["value"] diff --git a/icons/mob/robot/janitor.dmi b/icons/mob/robot/janitor.dmi index 7410b353a75514c1409b0b6109aee0dc6264d34a..3dbaa27a420e85e275ecd9be76fc98b9d7ef21c7 100644 GIT binary patch literal 73403 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 UlAf?)wgiElPMpk=Q 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 From a411368c80c34b4ed3288ccc988bf82420dc3683 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 12:50:04 +0100 Subject: [PATCH 059/109] theme should always be returned --- code/modules/mob/living/silicon/robot/robot_ui.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot_ui.dm b/code/modules/mob/living/silicon/robot/robot_ui.dm index 7499fb198e..11027cc20d 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui.dm @@ -52,6 +52,10 @@ var/mob/living/silicon/robot/R = host data["module_name"] = R.module ? "[R.module]" : null + if(R.emagged) + data["theme"] = "syndicate" + else if (R.ui_theme) + data["theme"] = R.ui_theme if(!R.module) return data @@ -63,10 +67,6 @@ data["health"] = R.health data["max_health"] = R.getMaxHealth() data["light_color"] = R.robot_light_col - if(R.emagged) - data["theme"] = "syndicate" - else if (R.ui_theme) - data["theme"] = R.ui_theme data["weapon_lock"] = R.weapon_lock From e5b47c5e49433f29a950f1f41da7b1b51acecdc2 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 12:51:44 +0100 Subject: [PATCH 060/109] less numbers --- code/modules/mob/living/silicon/robot/robot.dm | 4 ++-- code/modules/mob/living/silicon/robot/robot_ui_module.dm | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 7b095cdc49..f3161e0e09 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -31,7 +31,7 @@ //Icon stuff var/datum/robot_sprite/sprite_datum // Sprite datum, holding all our sprite data - var/icon_selected = 0 // If icon selection has been completed yet + var/icon_selected = FALSE // If icon selection has been completed yet var/list/sprite_extra_customization = list() var/rest_style = "Default" var/notransform @@ -766,7 +766,7 @@ notify_ai(ROBOT_NOTIFICATION_MODULE_RESET, module.name) module.Reset(src) qdel(module) - icon_selected = 0 + icon_selected = FALSE module = null updatename("Default") has_recoloured = FALSE diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 74c6ad4cda..25b199b47c 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -141,7 +141,7 @@ if (newName) R.custom_name = newName R.sprite_name = newName - R.icon_selected = 1 + R.icon_selected = TRUE var/module_type = robot_modules[selected_module] R.modtype = selected_module R.module = new module_type(R) From 3fd9c6e3d5477121c5cbaabb12076117238b66ad Mon Sep 17 00:00:00 2001 From: DigitalSquirrel95 <48812209+DigitalSquirrel95@users.noreply.github.com> Date: Mon, 11 Nov 2024 14:59:46 -0500 Subject: [PATCH 061/109] Removes ability for research cyborgs to self-upgrade Port of https://github.com/TS-Rogue-Star/Rogue-Star/pull/335 --- code/modules/mob/living/silicon/robot/robot.dm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index a79310c02b..d8b8e47966 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -737,6 +737,8 @@ update_icon() else to_chat(user, span_filter_notice("[span_red("Access denied.")]")) + if(user == src) //RS edit: No self-unlocking. + to_chat(user, "You are not allowed to manipulate your own lock.") else if(istype(W, /obj/item/borg/upgrade/)) var/obj/item/borg/upgrade/U = W @@ -744,6 +746,8 @@ to_chat(usr, span_filter_notice("You must access the borgs internals!")) else if(!src.module && U.require_module) to_chat(usr, span_filter_notice("The borg must choose a module before it can be upgraded!")) + else if(user == src) //RS edit: No self-upgrading. + to_chat(user, "You lack the reach to be able to upgrade yourself.") else if(U.locked) to_chat(usr, span_filter_notice("The upgrade is locked and cannot be used yet!")) else @@ -903,7 +907,10 @@ else if(istype(M, /mob/living/silicon/robot)) var/mob/living/silicon/robot/R = M if(check_access(R.get_active_hand()) || istype(R.get_active_hand(), /obj/item/card/robot)) - return 1 + if(R == src) //RS edit: No self-unlocking. + return FALSE + else + return TRUE return 0 /mob/living/silicon/robot/proc/check_access(obj/item/I) From 29577730c2536e8e6c1df0c5d9b4205fbd31bf60 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 21:02:11 +0100 Subject: [PATCH 062/109] early --- tgui/packages/tgui/interfaces/RobotChoose/functions.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tgui/packages/tgui/interfaces/RobotChoose/functions.ts b/tgui/packages/tgui/interfaces/RobotChoose/functions.ts index f42d00d83c..db60717e88 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/functions.ts +++ b/tgui/packages/tgui/interfaces/RobotChoose/functions.ts @@ -15,6 +15,9 @@ export function robotSpriteSearcher( searchText, (sprite: spriteOption) => sprite.sprite, ); + if (!sprites) { + return []; + } let subtypes: string[] = []; if (includeDefault) { subtypes.push('def'); @@ -25,9 +28,6 @@ export function robotSpriteSearcher( if (includeTall) { subtypes.push('tall'); } - if (!sprites) { - return []; - } return flow([ (sprites: spriteOption[]) => { if (!searchText) { From a16b3c7e9eda7f205b90adb9e09be5e2d07decf7 Mon Sep 17 00:00:00 2001 From: DigitalSquirrel95 <48812209+DigitalSquirrel95@users.noreply.github.com> Date: Mon, 11 Nov 2024 15:46:13 -0500 Subject: [PATCH 063/109] Update robot.dm --- code/modules/mob/living/silicon/robot/robot.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index d8b8e47966..c7c56639e9 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -738,7 +738,7 @@ else to_chat(user, span_filter_notice("[span_red("Access denied.")]")) if(user == src) //RS edit: No self-unlocking. - to_chat(user, "You are not allowed to manipulate your own lock.") + to_chat(user, span_filter_notice("You are not allowed to manipulate your own lock.")) else if(istype(W, /obj/item/borg/upgrade/)) var/obj/item/borg/upgrade/U = W @@ -747,7 +747,7 @@ else if(!src.module && U.require_module) to_chat(usr, span_filter_notice("The borg must choose a module before it can be upgraded!")) else if(user == src) //RS edit: No self-upgrading. - to_chat(user, "You lack the reach to be able to upgrade yourself.") + to_chat(user, span_filter_notice("You lack the reach to be able to upgrade yourself.")) else if(U.locked) to_chat(usr, span_filter_notice("The upgrade is locked and cannot be used yet!")) else From 3c12e7f6fca576b5098557872bfe3ebb3918b3bd Mon Sep 17 00:00:00 2001 From: Killian Date: Mon, 11 Nov 2024 20:49:24 +0000 Subject: [PATCH 064/109] salvage tech title --- code/__defines/jobs.dm | 1 + code/game/jobs/job/engineering_vr.dm | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/code/__defines/jobs.dm b/code/__defines/jobs.dm index c20f5e3cd9..70e38c6876 100644 --- a/code/__defines/jobs.dm +++ b/code/__defines/jobs.dm @@ -201,6 +201,7 @@ #define JOB_ALT_CONSTRUCTION_ENGINEER "Construction Engineer" #define JOB_ALT_ENGINEERING_CONTRACTOR "Engineering Contractor" #define JOB_ALT_COMPUTER_TECHNICIAN "Computer Technician" + #define JOB_ALT_SALVAGE_TECHNICIAN "Salvage Technician" #define JOB_ATMOSPHERIC_TECHNICIAN "Atmospheric Technician" // Atmospheric Technician alt titles diff --git a/code/game/jobs/job/engineering_vr.dm b/code/game/jobs/job/engineering_vr.dm index 17b70731db..bb784a8c96 100644 --- a/code/game/jobs/job/engineering_vr.dm +++ b/code/game/jobs/job/engineering_vr.dm @@ -48,6 +48,10 @@ title = JOB_ALT_COMPUTER_TECHNICIAN title_blurb = "A " + JOB_ALT_COMPUTER_TECHNICIAN + " fulfills similar duties to other engineers, but specializes in working with software and computers. They also often deal with integrated circuits." +/datum/alt_title/salvage_tech + title = JOB_ALT_SALVAGE_TECHNICIAN + title_blurb = "A " + JOB_ALT_SALVAGE_TECHNICIAN + " is responsible for breaking down debris and obsolete equipment to recover useful components and materials." + /datum/job/atmos spawn_positions = 3 pto_type = PTO_ENGINEERING From f7a873a3e55127e186a4ab870856d0bb344a76ea Mon Sep 17 00:00:00 2001 From: DigitalSquirrel95 <48812209+DigitalSquirrel95@users.noreply.github.com> Date: Mon, 11 Nov 2024 15:51:09 -0500 Subject: [PATCH 065/109] Update robot.dm --- code/modules/mob/living/silicon/robot/robot.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index c7c56639e9..fab9a64f2d 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -747,7 +747,7 @@ else if(!src.module && U.require_module) to_chat(usr, span_filter_notice("The borg must choose a module before it can be upgraded!")) else if(user == src) //RS edit: No self-upgrading. - to_chat(user, span_filter_notice("You lack the reach to be able to upgrade yourself.")) + to_chat(usr, span_warning("You lack the reach to be able to upgrade yourself.")) else if(U.locked) to_chat(usr, span_filter_notice("The upgrade is locked and cannot be used yet!")) else From 642b9d481e04d64c11008702b9db4a1dcdfcc4db Mon Sep 17 00:00:00 2001 From: SatinIsle Date: Tue, 12 Nov 2024 19:08:40 +0000 Subject: [PATCH 066/109] Fluff item [not approved yet] Do not merge yet, this application has not yet been approved, I will update the commit if/when it is. --- .../loadout/loadout_fluffitems_vr.dm | 7 +++ code/modules/games/tarot.dm | 56 ++++++++++++++++++ icons/obj/playing_cards.dmi | Bin 5738 -> 7317 bytes 3 files changed, 63 insertions(+) diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm index c63f709505..6db48e9160 100644 --- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm @@ -1239,6 +1239,13 @@ ckeywhitelist = list("satinisle") character_name = list("Parriz Tavakdavi") +/datum/gear/fluff/dark_tarot + path = /obj/item/deck/dark_tarot + display_name = "dark rose tarot deck" + ckeywhitelist = list("satinisle") + character_name = list("Millie Orlen") + + // T CKEYS /datum/gear/fluff/ascian_medal path = /obj/item/clothing/accessory/medal/silver/unity/tabiranth diff --git a/code/modules/games/tarot.dm b/code/modules/games/tarot.dm index 44407c9ca2..4ba7b26498 100644 --- a/code/modules/games/tarot.dm +++ b/code/modules/games/tarot.dm @@ -41,3 +41,59 @@ cooldown = world.time else return + +///Fluff item, using a separate item rather than a subitem to customise New() + +/obj/item/deck/dark_tarot + name = "dark rose tarot deck" + desc = "A limited edition tarot deck for the scene-girl inclined!" + icon_state = "dark_tarot" + +/obj/item/deck/dark_tarot/New() + ..() + + var/datum/playingcard/P + for(var/name in list("fool","magician","high priestess","empress","emperor","hierophant","lovers","chariot","strength","hermit","wheel of fortune","justice","hanged man","death","temperance","devil","tower","star","moon","sun","judgement","world","white dragon with blue eyes","charred lizard","dark lotus","bash","reverse","rules","acid","abyss","maw")) + P = new() + P.name = "[name]" + if(name == "high priestess") + P.card_icon = "dark_high_priestess" + else if(name == "wheel of fortune") + P.card_icon = "dark_wheel" + else if(name == "hanged man") + P.card_icon = "dark_hanged" + else if(name == "white dragon with blue eyes") + P.card_icon = "dark_dragon" + else if(name == "charred lizard") + P.card_icon = "dark_lizard" + else if(name == "dark lotus") + P.card_icon = "dark_lotus" + else + P.card_icon = "dark_[name]" + P.back_icon = "dark_back_tarot" + cards += P + for(var/suit in list("wands","pentacles","cups","swords")) + for(var/number in list("ace","two","three","four","five","six","seven","eight","nine","ten","page","knight","queen","king")) + P = new() + P.name = "[number] of [suit]" + P.card_icon = "dark_[suit]" + P.back_icon = "dark_back_tarot" + cards += P + +/obj/item/deck/dark_tarot/shuffle() + var/mob/living/user = usr + if (cooldown < world.time - 10) + var/list/newcards = list() + while(cards.len) + var/datum/playingcard/P = pick(cards) + P.name = replacetext(P.name," reversed","") + if(prob(50)) + P.name += " reversed" + newcards += P + cards -= P + cards = newcards + playsound(src, 'sound/items/cardshuffle.ogg', 50, 1) + user.visible_message("\The [user] shuffles [src].") + cooldown = world.time + else + return diff --git a/icons/obj/playing_cards.dmi b/icons/obj/playing_cards.dmi index 0f2e51923a79205e7a1c29cefe4b17c3819c0bbf..fd1679a3235b1dc4e8ecfce31dacd51fff04cf92 100644 GIT binary patch literal 7317 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 From 399795f9978345cebb198d51cde1c0eff25108e9 Mon Sep 17 00:00:00 2001 From: SatinIsle <98125273+SatinIsle@users.noreply.github.com> Date: Wed, 13 Nov 2024 17:24:45 +0000 Subject: [PATCH 067/109] Double whitelist (#16602) Approved here: https://forum.vore-station.net/viewtopic.php?f=45&t=2460 https://forum.vore-station.net/viewtopic.php?f=45&t=2459 --- config/alienwhitelist.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/alienwhitelist.txt b/config/alienwhitelist.txt index 9da41e180f..e604fe5f39 100644 --- a/config/alienwhitelist.txt +++ b/config/alienwhitelist.txt @@ -79,6 +79,7 @@ jademanique - Protean jademanique - Teppi jademanique - Xenochimera joltze - Black-Eyed Shadekin +jparker890 - Vox juney7 - Hanner kered2 - Protean khanivore - Protean @@ -221,3 +222,4 @@ yeehawguvnah - Xenochimera zalvine - Shadekin Empathy zammyman215 - Vox zeracyfr - Xenochimera +zwadstheiguana - Diona From 57ac142d1e82cc89e2017a9ed149403518088ced Mon Sep 17 00:00:00 2001 From: Guti <32563288+TheCaramelion@users.noreply.github.com> Date: Wed, 13 Nov 2024 18:26:00 +0100 Subject: [PATCH 068/109] Fixes (#16596) --- code/datums/diseases/advance/symptoms/fever.dm | 2 +- code/datums/diseases/advance/symptoms/flesh_eating.dm | 2 +- code/datums/diseases/advance/symptoms/heal.dm | 4 ++-- code/datums/diseases/advance/symptoms/shivering.dm | 2 +- code/modules/reagents/reagents/virology.dm | 3 ++- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/code/datums/diseases/advance/symptoms/fever.dm b/code/datums/diseases/advance/symptoms/fever.dm index a9e027da9c..6e252e56cd 100644 --- a/code/datums/diseases/advance/symptoms/fever.dm +++ b/code/datums/diseases/advance/symptoms/fever.dm @@ -35,6 +35,6 @@ Bonus return /datum/symptom/fever/proc/Heat(var/mob/living/M, var/datum/disease/advance/A) - var/get_heat = (sqrt(21+A.totalTransmittable()*2))+(sqrt(20+A.totalStageSpeed()*3)) + var/get_heat = (sqrtor0(21+A.totalTransmittable()*2))+(sqrtor0(20+A.totalStageSpeed()*3)) M.bodytemperature = min(M.bodytemperature + (get_heat * A.stage), BODYTEMP_HEAT_DAMAGE_LIMIT - 1) return TRUE diff --git a/code/datums/diseases/advance/symptoms/flesh_eating.dm b/code/datums/diseases/advance/symptoms/flesh_eating.dm index 28c9002c3a..e91efab1c7 100644 --- a/code/datums/diseases/advance/symptoms/flesh_eating.dm +++ b/code/datums/diseases/advance/symptoms/flesh_eating.dm @@ -37,6 +37,6 @@ Bonus return /datum/symptom/flesh_eating/proc/Flesheat(mob/living/M, datum/disease/advance/A) - var/get_damage = ((sqrt(16-A.totalStealth()))*5) + var/get_damage = ((sqrtor0(16-A.totalStealth()))*5) M.adjustBruteLoss(get_damage) return 1 diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index 1c21959872..f02ad95c32 100644 --- a/code/datums/diseases/advance/symptoms/heal.dm +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -33,7 +33,7 @@ Bonus return /datum/symptom/heal/proc/Heal(mob/living/M, datum/disease/advance/A) - var/get_damage = (sqrt(20+A.totalStageSpeed())*(1+rand())) + var/get_damage = (sqrtor0(20+A.totalStageSpeed())*(1+rand())) M.adjustToxLoss(-get_damage) return TRUE @@ -144,7 +144,7 @@ Bonus level = 5 /datum/symptom/heal/dna/Heal(var/mob/living/carbon/M, var/datum/disease/advance/A) - var/amt_healed = (sqrt(20+A.totalStageSpeed()*(3+rand())))-(sqrt(16+A.totalStealth()*rand())) + var/amt_healed = (sqrtor0(20+A.totalStageSpeed()*(3+rand())))-(sqrtor0(16+A.totalStealth()*rand())) M.adjustBrainLoss(-amt_healed) M.radiation = max(M.radiation - 3, 0) return TRUE diff --git a/code/datums/diseases/advance/symptoms/shivering.dm b/code/datums/diseases/advance/symptoms/shivering.dm index 375850ef40..f4a3059d7c 100644 --- a/code/datums/diseases/advance/symptoms/shivering.dm +++ b/code/datums/diseases/advance/symptoms/shivering.dm @@ -34,6 +34,6 @@ Bonus return /datum/symptom/shivering/proc/Chill(mob/living/M, datum/disease/advance/A) - var/get_cold = (sqrt(16+A.totalStealth()*2))+(sqrt(21+A.totalResistance()*2)) + var/get_cold = (sqrtor0(16+A.totalStealth()*2))+(sqrtor0(21+A.totalResistance()*2)) M.bodytemperature = max(M.bodytemperature - (get_cold * A.stage), BODYTEMP_COLD_DAMAGE_LIMIT + 1) return 1 diff --git a/code/modules/reagents/reagents/virology.dm b/code/modules/reagents/reagents/virology.dm index e2147f401d..de6e77e304 100644 --- a/code/modules/reagents/reagents/virology.dm +++ b/code/modules/reagents/reagents/virology.dm @@ -42,6 +42,7 @@ color = "#A69DA9" /datum/reagent/toxin/phoron/phoronvirusfood/weak - name = "Weakened phoronic virus food. This one seems to have been weakened, but still strong." + name = "Weakened phoronic virus food" id = "weakphoronvirusfood" + description = "Mutates viruses when mixed in blood. This one seems to have been weakened, but still strong." color = "#CEC3C6" From 7d6a37d5ba275a840ea747bb4806c86d4b84e588 Mon Sep 17 00:00:00 2001 From: Nadyr <41974248+Darlantanis@users.noreply.github.com> Date: Wed, 13 Nov 2024 13:34:19 -0500 Subject: [PATCH 069/109] fixes recursive_content_check (#16601) --- code/_helpers/game.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/_helpers/game.dm b/code/_helpers/game.dm index 1f76dcac9a..80d66f555d 100644 --- a/code/_helpers/game.dm +++ b/code/_helpers/game.dm @@ -172,7 +172,7 @@ if(ismob(I)) if(!sight_check || isInSight(I, O)) - L |= recursive_content_check(I, L, recursion_limit - 1, client_check, sight_check, include_mobs, include_objects) + L |= recursive_content_check(I, L, recursion_limit - 1, client_check, sight_check, include_mobs, include_objects, ignore_show_messages) if(include_mobs) if(client_check) var/mob/M = I @@ -185,7 +185,7 @@ var/obj/check_obj = I if(ignore_show_messages || check_obj.show_messages) if(!sight_check || isInSight(I, O)) - L |= recursive_content_check(I, L, recursion_limit - 1, client_check, sight_check, include_mobs, include_objects) + L |= recursive_content_check(I, L, recursion_limit - 1, client_check, sight_check, include_mobs, include_objects, ignore_show_messages) if(include_objects) L |= I From 35c9c2bf440c529f17429646366310e10bad12fa Mon Sep 17 00:00:00 2001 From: JParker890 <103277253+Mattjpark89@users.noreply.github.com> Date: Thu, 14 Nov 2024 21:13:50 -0700 Subject: [PATCH 070/109] Add Engineering Drake to plushies crate --- code/datums/supplypacks/misc.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/datums/supplypacks/misc.dm b/code/datums/supplypacks/misc.dm index d03ab2b620..bc1690c7d8 100644 --- a/code/datums/supplypacks/misc.dm +++ b/code/datums/supplypacks/misc.dm @@ -80,6 +80,7 @@ /obj/item/toy/plushie/slimeplushie, /obj/item/toy/plushie/box, /obj/item/toy/plushie/borgplushie, + /obj/item/toy/plushie/borgplushie/drake/eng, /obj/item/toy/plushie/borgplushie/medihound, /obj/item/toy/plushie/borgplushie/scrubpuppy, /obj/item/toy/plushie/foxbear, From cc6a449af9dc4d394084c1c84dda591ca97980fd Mon Sep 17 00:00:00 2001 From: SatinIsle Date: Fri, 15 Nov 2024 19:31:01 +0000 Subject: [PATCH 071/109] Fixes up shuffle procs --- code/modules/games/cards.dm | 9 ++++----- code/modules/games/tarot.dm | 3 +-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm index 448ea34b5f..df4e50d63b 100644 --- a/code/modules/games/cards.dm +++ b/code/modules/games/cards.dm @@ -211,8 +211,8 @@ ..() -/obj/item/deck/attack_self() - shuffle() +/obj/item/deck/attack_self(mob/user) + shuffle(user) /obj/item/deck/verb/verb_shuffle() @@ -220,10 +220,9 @@ set name = "Shuffle" set desc = "Shuffle the cards in the deck." set src in view(1) - shuffle() + shuffle(usr) -/obj/item/deck/proc/shuffle() - var/mob/living/user = usr +/obj/item/deck/proc/shuffle(mob/user) if (cooldown < world.time - 10) // 15 ticks cooldown var/list/newcards = list() while(cards.len) diff --git a/code/modules/games/tarot.dm b/code/modules/games/tarot.dm index 4ba7b26498..5489bb05fd 100644 --- a/code/modules/games/tarot.dm +++ b/code/modules/games/tarot.dm @@ -80,8 +80,7 @@ P.back_icon = "dark_back_tarot" cards += P -/obj/item/deck/dark_tarot/shuffle() - var/mob/living/user = usr +/obj/item/deck/dark_tarot/shuffle(mob/user) if (cooldown < world.time - 10) var/list/newcards = list() while(cards.len) From 5e393410bae7099a37df8ba8a8a5f3e9346664d7 Mon Sep 17 00:00:00 2001 From: SatinIsle Date: Sat, 16 Nov 2024 15:12:19 +0000 Subject: [PATCH 072/109] Allows non-custom species to take winged flight Changed Winged Flight to allow all species to take it. Seeing as all species have access to wings, there's no real reason to restrict it. --- .../living/carbon/human/species/station/traits_vr/positive.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index 7551915c9d..f109bd5c9a 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -121,6 +121,7 @@ name = "Winged Flight" desc = "Allows you to fly by using your wings. Don't forget to bring them!" cost = 0 + custom_only = FALSE has_preferences = list("flight_vore" = list(TRAIT_PREF_TYPE_BOOLEAN, "Flight Vore enabled on spawn", TRAIT_VAREDIT_TARGET_MOB, FALSE)) /datum/trait/positive/winged_flight/apply(var/datum/species/S,var/mob/living/carbon/human/H) From 24e798346f2c6299e0eac927e1c9b8b0b2448160 Mon Sep 17 00:00:00 2001 From: SatinIsle Date: Sun, 17 Nov 2024 10:40:04 +0000 Subject: [PATCH 073/109] Another approved fluff item --- .../preference_setup/loadout/loadout_fluffitems_vr.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm index 6db48e9160..9635b17925 100644 --- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm @@ -694,6 +694,12 @@ ckeywhitelist = list("john.wayne9392") character_name = list("Harmony Pretchl") +/datum/gear/fluff/vox_dylo_pills + path = /obj/item/storage/pill_bottle/dylovene + display_name = "Dylovene pill bottle" + ckeywhitelist = list("jparker890") + character_name = list("Krey-Timinine") + /datum/gear/fluff/koyo_box path = /obj/item/storage/box/fluff/koyoakimomi display_name = "Koyo's Box" From 3d0b040da58fedc2a76660ab5c8c34838588d0b9 Mon Sep 17 00:00:00 2001 From: SatinIsle Date: Sun, 17 Nov 2024 11:25:34 +0000 Subject: [PATCH 074/109] Potential partial revert to borg self-upgrading restrictions Pending staff discussion. This reverts the restriction of the borgs from upgrading themselves, for the most part. However, it keeps in place a restriction from them resetting their own module. --- code/modules/mob/living/silicon/robot/robot.dm | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 472e4b870a..d10451a520 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -707,8 +707,6 @@ update_icon() else to_chat(user, span_filter_notice("[span_red("Access denied.")]")) - if(user == src) //RS edit: No self-unlocking. - to_chat(user, span_filter_notice("You are not allowed to manipulate your own lock.")) else if(istype(W, /obj/item/borg/upgrade/)) var/obj/item/borg/upgrade/U = W @@ -716,8 +714,8 @@ to_chat(usr, span_filter_notice("You must access the borgs internals!")) else if(!src.module && U.require_module) to_chat(usr, span_filter_notice("The borg must choose a module before it can be upgraded!")) - else if(user == src) //RS edit: No self-upgrading. - to_chat(usr, span_warning("You lack the reach to be able to upgrade yourself.")) + else if(user == src && istype(W,/obj/item/borg/upgrade/utility/reset)) + to_chat(usr, span_warning("You are restricted from reseting your own module.")) else if(U.locked) to_chat(usr, span_filter_notice("The upgrade is locked and cannot be used yet!")) else @@ -878,10 +876,7 @@ else if(istype(M, /mob/living/silicon/robot)) var/mob/living/silicon/robot/R = M if(check_access(R.get_active_hand()) || istype(R.get_active_hand(), /obj/item/card/robot)) - if(R == src) //RS edit: No self-unlocking. - return FALSE - else - return TRUE + return TRUE return 0 /mob/living/silicon/robot/proc/check_access(obj/item/I) From 6d7ad6b24268c88ad5ce222a73f5dba6492a771a Mon Sep 17 00:00:00 2001 From: SatinIsle Date: Sun, 17 Nov 2024 20:29:25 +0000 Subject: [PATCH 075/109] Restricted aghosting to staff Changed the ghost verb so that it no longer gives the option to aghost to non-staff in some circumstances. --- code/modules/mob/dead/observer/observer.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 83a81d2c36..d0f1f66f9e 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -223,7 +223,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp announce_ghost_joinleave(ghostize(1)) else var/response - if(src.client && src.client.holder) + if(check_rights(R_ADMIN|R_SERVER|R_MOD,FALSE,src)) //No need to sanity check for client and holder here as that is part of check_rights response = tgui_alert(src, "You have the ability to Admin-Ghost. The regular Ghost verb will announce your presence to dead chat. Both variants will allow you to return to your body using 'aghost'.\n\nWhat do you wish to do?", "Are you sure you want to ghost?", list("Admin Ghost", "Ghost", "Stay in body")) if(response == "Admin Ghost") if(!src.client) From 66d31c496de3654cd03c8a59e2de2f99f72517a6 Mon Sep 17 00:00:00 2001 From: TankTheBirb <96669534+TankTheBirb@users.noreply.github.com> Date: Sun, 17 Nov 2024 15:37:44 -0500 Subject: [PATCH 076/109] Hides your eyes when wearing blindfolds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit eye flavor text is now hidden by blindfolds. Technically you could do this by putting it under sunglasses instead, but I didn't want to check every child of the sunglasses for what it'd do. 🆑 tweak: makes blindfolds cover the eyes flavor text /:cl: --- code/modules/clothing/glasses/glasses.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 572f45c0b5..f2002c95c6 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -422,6 +422,7 @@ BLIND // can't see anything icon_state = "blindfold" item_state_slots = list(slot_r_hand_str = "blindfold", slot_l_hand_str = "blindfold") flash_protection = FLASH_PROTECTION_MAJOR + body_parts_covered = EYES tint = BLIND drop_sound = 'sound/items/drop/gloves.ogg' pickup_sound = 'sound/items/pickup/gloves.ogg' @@ -436,6 +437,7 @@ BLIND // can't see anything desc = "A thin blindfold to help protect sensitive eyes while still allowing some sight" icon_state = "blindfoldwhite" flash_protection = FLASH_PROTECTION_MODERATE //not as thick, only offers some protection + body_parts_covered = EYES tint = TINT_HEAVY /obj/item/clothing/glasses/sunglasses/blindfold/tape @@ -445,6 +447,7 @@ BLIND // can't see anything icon_state = "tape_cross" item_state_slots = list(slot_r_hand_str = null, slot_l_hand_str = null) w_class = ITEMSIZE_TINY + body_parts_covered = EYES /obj/item/clothing/glasses/sunglasses/prescription name = "prescription sunglasses" From 479e60f9950fa214c5512ff7195ced43a3a97f79 Mon Sep 17 00:00:00 2001 From: SatinIsle Date: Sun, 17 Nov 2024 20:52:35 +0000 Subject: [PATCH 077/109] Fixed advanced who too --- code/modules/client/verbs/advanced_who.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/verbs/advanced_who.dm b/code/modules/client/verbs/advanced_who.dm index 4c4af542a4..3e39936cf5 100644 --- a/code/modules/client/verbs/advanced_who.dm +++ b/code/modules/client/verbs/advanced_who.dm @@ -7,7 +7,7 @@ var/list/Lines = list() - if(holder) + if(check_rights(R_ADMIN|R_SERVER|R_MOD,FALSE,src)) for(var/client/C in GLOB.clients) var/entry = "[C.key]" if(C.holder && C.holder.fakekey) From 429bd0f9807dc7a8240e40d1e717c44c1baaae18 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 17 Nov 2024 22:14:12 +0100 Subject: [PATCH 078/109] cleans up the robot ui code and fixes a runtime --- .../living/silicon/robot/robot_ui_module.dm | 88 +++++++++++-------- 1 file changed, 49 insertions(+), 39 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 25b199b47c..cf1444769f 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -3,7 +3,7 @@ name = "Robot Module Configurator" tgui_id = "RobotChoose" var/selected_module - var/newName + var/new_name var/datum/robot_sprite/sprite_datum /datum/tgui_module/robot_ui_module/tgui_state(mob/user) @@ -62,8 +62,8 @@ var/mob/living/silicon/robot/R = host var/datum/asset/spritesheet/robot_icons/spritesheet = get_asset_datum(/datum/asset/spritesheet/robot_icons) - data["currentName"] = newName ? newName : R.name - data["isDefaultName"] = !newName + data["currentName"] = new_name ? new_name : R.name + data["isDefaultName"] = !new_name if(selected_module) data["selected_module"] = selected_module @@ -113,13 +113,14 @@ if(!is_borg_whitelisted(R, new_module)) return selected_module = new_module - var/new_datum - var/list/module_sprites = SSrobot_sprites.get_module_sprites(selected_module, R) - for(var/datum/robot_sprite/S in module_sprites) - if(S.name == sprite_datum.name) - new_datum = S - break - sprite_datum = new_datum + if(sprite_datum) + var/new_datum + var/list/module_sprites = SSrobot_sprites.get_module_sprites(selected_module, R) + for(var/datum/robot_sprite/S in module_sprites) + if(S.name == sprite_datum.name) + new_datum = S + break + sprite_datum = new_datum . = TRUE if("pick_icon") var/sprite = params["value"] @@ -134,36 +135,45 @@ if("rename") var/name = params["value"] if(name) - newName = sanitizeSafe(name, MAX_NAME_LEN) + new_name = sanitizeSafe(name, MAX_NAME_LEN) . = TRUE if("confirm") - if(!R.custom_name) - if (newName) - R.custom_name = newName - R.sprite_name = newName - R.icon_selected = TRUE - var/module_type = robot_modules[selected_module] - R.modtype = selected_module - R.module = new module_type(R) - feedback_inc("cyborg_[lowertext(selected_module)]",1) - R.updatename() - R.hud_used.update_robot_modules_display() - R.notify_ai(ROBOT_NOTIFICATION_NEW_MODULE, R.module.name) - R.robotact?.update_static_data_for_all_viewers() - R.sprite_datum = sprite_datum - if(!istype(R,/mob/living/silicon/robot/drone)) - R.sprite_type = sprite_datum.name - R.transform_with_anim() - var/tempheight = R.vis_height - R.update_icon() - // This is bad but I dunno other way to 'reset' our resize offset based on vis_height changes other than resizing to normal and back. - if(tempheight != R.vis_height) - var/tempsize = R.size_multiplier - R.resize(1) - R.resize(tempsize) - if(R.hands) - R.update_hud() - R.sprite_datum.do_equipment_glamour(R.module) - to_chat(R, span_filter_notice("Your icon has been set. You now require a module reset to change it.")) + R.apply_name(new_name) + R.apply_module(sprite_datum, selected_module) + R.transform_module() close_ui() . = TRUE + +/mob/living/silicon/robot/proc/apply_name(var/new_name) + if(!custom_name) + if (new_name) + custom_name = new_name + sprite_name = new_name + +/mob/living/silicon/robot/proc/apply_module(var/datum/robot_sprite/sprite_datum, var/selected_module) + icon_selected = TRUE + var/module_type = robot_modules[selected_module] + modtype = selected_module + module = new module_type(src) + feedback_inc("cyborg_[lowertext(selected_module)]",1) + updatename() + hud_used.update_robot_modules_display() + notify_ai(ROBOT_NOTIFICATION_NEW_MODULE, module.name) + robotact?.update_static_data_for_all_viewers() + sprite_datum = sprite_datum + if(!istype(src,/mob/living/silicon/robot/drone)) + sprite_type = sprite_datum.name + +/mob/living/silicon/robot/proc/transform_module() + transform_with_anim() + var/tempheight = vis_height + update_icon() + // This is bad but I dunno other way to 'reset' our resize offset based on vis_height changes other than resizing to normal and back. + if(tempheight != vis_height) + var/tempsize = size_multiplier + resize(1) + resize(tempsize) + if(hands) + update_hud() + sprite_datum.do_equipment_glamour(module) + to_chat(src, span_filter_notice("Your icon has been set. You now require a module reset to change it.")) From 58e1bfba3f3eeca291334faccac29ac27a40d254 Mon Sep 17 00:00:00 2001 From: Casey Date: Sun, 17 Nov 2024 16:16:57 -0500 Subject: [PATCH 079/109] Map swap --- maps/~map_system/_map_selection.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/maps/~map_system/_map_selection.dm b/maps/~map_system/_map_selection.dm index 879f058f54..47ff0d984d 100644 --- a/maps/~map_system/_map_selection.dm +++ b/maps/~map_system/_map_selection.dm @@ -5,8 +5,8 @@ /* FOR LIVE SERVER */ /*********************/ -#define USE_MAP_TETHER -//#define USE_MAP_STELLARDELIGHT +//#define USE_MAP_TETHER +#define USE_MAP_STELLARDELIGHT //#define USE_MAP_GROUNDBASE // Debug From b163fbf439fa36378e9ca8df4c42f365812dc397 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 17 Nov 2024 22:19:04 +0100 Subject: [PATCH 080/109] . --- .../mob/living/silicon/robot/robot_ui_module.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index cf1444769f..1554549633 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -150,17 +150,17 @@ custom_name = new_name sprite_name = new_name -/mob/living/silicon/robot/proc/apply_module(var/datum/robot_sprite/sprite_datum, var/selected_module) +/mob/living/silicon/robot/proc/apply_module(var/datum/robot_sprite/new_datum, var/new_module) icon_selected = TRUE - var/module_type = robot_modules[selected_module] - modtype = selected_module + var/module_type = robot_modules[new_module] + modtype = new_module module = new module_type(src) - feedback_inc("cyborg_[lowertext(selected_module)]",1) + feedback_inc("cyborg_[lowertext(new_module)]",1) updatename() hud_used.update_robot_modules_display() notify_ai(ROBOT_NOTIFICATION_NEW_MODULE, module.name) robotact?.update_static_data_for_all_viewers() - sprite_datum = sprite_datum + sprite_datum = new_datum if(!istype(src,/mob/living/silicon/robot/drone)) sprite_type = sprite_datum.name From 9fe081733712b53a2837e4a8fe6e961b271bad6a Mon Sep 17 00:00:00 2001 From: SatinIsle Date: Mon, 18 Nov 2024 16:50:28 +0000 Subject: [PATCH 081/109] Allows wristbands and bracelets to attach to uniforms again Fixed wristbands and bracelets being unable to be attached to uniforms, causing them to spawn in the backpack and only one to be worn at a time. --- code/modules/clothing/accessories/hands.dm | 4 ++-- code/modules/clothing/clothing.dm | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/code/modules/clothing/accessories/hands.dm b/code/modules/clothing/accessories/hands.dm index befe128fc7..2ac4386e6a 100644 --- a/code/modules/clothing/accessories/hands.dm +++ b/code/modules/clothing/accessories/hands.dm @@ -25,7 +25,7 @@ icon = 'icons/inventory/accessory/item.dmi' icon_state = "bracelet" w_class = ITEMSIZE_TINY - slot_flags = SLOT_GLOVES + slot_flags = SLOT_GLOVES | SLOT_TIE slot = ACCESSORY_SLOT_WRIST /obj/item/clothing/accessory/bracelet/friendship @@ -102,7 +102,7 @@ icon = 'icons/inventory/accessory/item.dmi' icon_state = "wristband" w_class = ITEMSIZE_TINY - slot_flags = SLOT_GLOVES + slot_flags = SLOT_GLOVES | SLOT_TIE slot = ACCESSORY_SLOT_WRIST /obj/item/clothing/accessory/wristband/spiked diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index a69ddf2ab0..9f8d9e9db2 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -854,7 +854,9 @@ |ACCESSORY_SLOT_TIE\ |ACCESSORY_SLOT_RANK\ |ACCESSORY_SLOT_DEPT\ - |ACCESSORY_SLOT_OVER) + |ACCESSORY_SLOT_OVER\ + |ACCESSORY_SLOT_RING\ + |ACCESSORY_SLOT_WRIST) restricted_accessory_slots = (\ ACCESSORY_SLOT_UTILITY\ |ACCESSORY_SLOT_WEAPON\ From 52750d82314f41022b4d977d4ea7d142bbeea829 Mon Sep 17 00:00:00 2001 From: Nadyr Date: Mon, 18 Nov 2024 18:18:25 -0500 Subject: [PATCH 082/109] hand implant goes in hand --- code/modules/organs/internal/augment/armmounted.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/organs/internal/augment/armmounted.dm b/code/modules/organs/internal/augment/armmounted.dm index 28804311a0..3845de1072 100644 --- a/code/modules/organs/internal/augment/armmounted.dm +++ b/code/modules/organs/internal/augment/armmounted.dm @@ -62,6 +62,10 @@ icon_state = "augment_box" w_class = ITEMSIZE_SMALL + // Needs to be redefined here, or the switch statement beneath with no default case can never change target limb... Also prevents putting it in your shoulder when it's a hand implant. + organ_tag = O_AUG_R_HAND + parent_organ = BP_R_HAND + target_slot = slot_r_hand integrated_object_type = /obj/item/portable_scanner From 56b4ea6203911451cd4ae444acde99f80a403819 Mon Sep 17 00:00:00 2001 From: SatinIsle Date: Tue, 19 Nov 2024 23:55:15 +0000 Subject: [PATCH 083/109] Map tweaks Changes the contents of a chest now that it's well known. --- maps/redgate/jungle.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maps/redgate/jungle.dmm b/maps/redgate/jungle.dmm index de8eeff00d..b8a99f781a 100644 --- a/maps/redgate/jungle.dmm +++ b/maps/redgate/jungle.dmm @@ -1732,7 +1732,7 @@ key_id = "gold"; name = "gold key" }, -/obj/item/spellbook/oneuse/knock, +/obj/random/fantasy_item, /obj/random/fantasy_item, /turf/simulated/floor/tiled/yellow, /area/redgate/jungle/temple) From 765181b19bce1e05024f956103a8c13f76072207 Mon Sep 17 00:00:00 2001 From: SatinIsle Date: Wed, 20 Nov 2024 13:07:48 +0000 Subject: [PATCH 084/109] Flippable beds and sheets Added a verb to beds, bedsheets and sub-objects to allow them to be flipped to face the opposite direction (if they have directional sprites available). This applies to chairs too, because why not. If it's possible for me to just not display the verb for non-flippable subtypes, let me know how! Also swaps out some beds on the Stellar Delight to face the other direction so that their pillows are against the wall. --- code/game/objects/structures/bedsheet_bin.dm | 17 ++++++++++ code/game/objects/structures/pillows.dm | 1 + .../stool_bed_chair_nest/alien_nests.dm | 1 + .../structures/stool_bed_chair_nest/bed.dm | 27 +++++++++++++++ icons/obj/furniture.dmi | Bin 46311 -> 47173 bytes icons/obj/items.dmi | Bin 74655 -> 94456 bytes icons/obj/items_vr.dmi | Bin 19539 -> 25456 bytes icons/obj/pillows.dmi | Bin 5881 -> 7380 bytes maps/stellar_delight/stellar_delight1.dmm | 32 +++++++++++++----- 9 files changed, 70 insertions(+), 8 deletions(-) diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 62fa4b0be0..7800bba070 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -39,6 +39,23 @@ LINEN BINS return ..() +/obj/item/bedsheet/verb/turn_around() + set name = "Turn Around" + set category = "Object" + set src in oview(1) + + if(!usr || !isturf(usr.loc)) + return + if(usr.stat || usr.restrained()) + return + if(ismouse(usr) || (isobserver(usr) && !CONFIG_GET(flag/ghost_interaction))) + return + + if(dir >= 2) + src.set_dir(1) + else + src.set_dir(2) + /obj/item/bedsheet/blue icon_state = "sheetblue" diff --git a/code/game/objects/structures/pillows.dm b/code/game/objects/structures/pillows.dm index 9f251db31d..075046fd81 100644 --- a/code/game/objects/structures/pillows.dm +++ b/code/game/objects/structures/pillows.dm @@ -40,6 +40,7 @@ icon_state = "pillowpile_large_pink" var/pillowpilefront = "/obj/structure/bed/pillowpilefront" var/sourcepillow = "/obj/item/bedsheet/pillow" + flippable = FALSE /obj/structure/bed/pillowpilefront name = "pillow pile" diff --git a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm index ac1fa24867..8d31e3a3ad 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm @@ -7,6 +7,7 @@ icon_state = "nest" var/health = 100 unacidable = TRUE + flippable = FALSE /obj/structure/bed/nest/update_icon() return diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 90ecec8c8b..0d71e51820 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -21,6 +21,7 @@ var/datum/material/padding_material var/base_icon = "bed" var/applies_material_colour = 1 + var/flippable = TRUE /obj/structure/bed/New(var/newloc, var/new_material, var/new_padding_material) ..(newloc) @@ -168,6 +169,30 @@ if(padding_material) padding_material.place_sheet(get_turf(src), 1) +/obj/structure/bed/verb/turn_around() + set name = "Turn Around" + set category = "Object" + set src in oview(1) + + if(!flippable) + to_chat(usr,"\The [src] can't face the other direction.") + return + + if(!usr || !isturf(usr.loc)) + return + if(usr.stat || usr.restrained()) + return + if(ismouse(usr) || (isobserver(usr) && !CONFIG_GET(flag/ghost_interaction))) + return + if(dir == 2) + src.set_dir(1) + else if(dir == 1) + src.set_dir(2) + else if(dir == 4) + src.set_dir(8) + else if(dir == 8) + src.set_dir(4) + /obj/structure/bed/psych name = "psychiatrist's couch" desc = "For prime comfort during psychiatric evaluations." @@ -208,6 +233,7 @@ surgery_odds = 50 //VOREStation Edit var/bedtype = /obj/structure/bed/roller var/rollertype = /obj/item/roller + flippable = FALSE /obj/structure/bed/roller/adv name = "advanced roller bed" @@ -347,6 +373,7 @@ catalogue_data = list(/datum/category_item/catalogue/anomalous/precursor_a/alien_bed) icon = 'icons/obj/abductor.dmi' icon_state = "bed" + flippable = FALSE /obj/structure/bed/alien/update_icon() return // Doesn't care about material or anything else. diff --git a/icons/obj/furniture.dmi b/icons/obj/furniture.dmi index 6df4edab4832f92b6527ef557219906e88b5e2cf..1abe1e3843e838cce64e70568e8f00bb4241150c 100644 GIT binary patch literal 47173 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 DIKvuE literal 46311 zcmaI7bzD|m*DiX~U6KNl(j5}gB`qOcHz3`mbhk*iBAwFR4Fb|2(k&(34SVuD-@DKE zopbj7LtJb9V67Qrj&Y4^Tq9ihtuzKIF)9QC!H|`aRE0obR-XPLBZ4R1zuFSP&8ml* zmW!mR^Lr;t2Nz3wI|#%r?ORf(T^Bog$mkhE_Wls}>#|mb%<%38r;>>u+&H$8X`;RJ zhhw%Zfvh~dF%P2;?*-mwOx@nRuU0P}Rdhl;!PHGG+8DIv+)YE#F#XG-XhxuCD)HEd z^g`71?*LNIYqpxu0uwV*_rxM8&iQz|%*T6ak6%9;>ejxaj9|VNvtbu693yioi5zMV z+TKTYM&B~@&zp)uoN}US5eilg)JwCrLiP$12hS$vS(W-}-O=`m3DRQ4~>cz8He z_-9s1YRHh9cBTW;Arw%80*!_&{&)$-CcNE(fYRh*UNBWqQi zbWlnO*eK`tH)3Mo<&abFFws-dDdDRQ$>VFQ%|_ExTg}VAr4E!#pZ*ybTCzSIo%5vG zZ57TqA9UCrqjcaS#SHCEH82+c1_Lfu9kOv)JDwh`2Kmh>oBM$$e5=E7BY>%O|YB!)oRucv(3@z;=e1Q{TH?Qc3}5??~bOp<5DJ;?JMU^X52J{5ld{)~~4 z5jHQ?kxGI0b=Uo@)@C9Bw1cH1+}Z3_!FOk^kiG*#f|EXi=y&F>%}e!Xh0+2u6c<~^ ztN8nOlSwr-wao17fLsjgELAym^~4I#OFI`=*Bmg$l8neOdnqY|s;Vkw4UHdy<(lON zrtSjmG6*=3AANoJ`kqh2#O(&D{okh9z5cq7@-j z@~&$c2ii1bx8tKe2+nh``cf%q?4jK%K_bTp6sT&M?6ruua^for!5LxpDk?Z&oLY+- zyidbbQ+v6|Kao0u*fIIFEx3oj8i$ZD^!V6Ouysdwre;I^KW~zBbaWKOs%U7?BAg#5 zhQ)ei-i+vnVrm41@XgQeKVakb39{u7vQY_l) z-s|!qzBVaW3VWeK>Vwz-apoh%hd=QmCF>?VDYYaun?RGJAbTM+I92v z6d+(T*rWUbIl5?X#~5l7tNnIdIY@SzvV$`Yad6*zwub9B!#}`Yz!K9M%4T#CYz$LY zQgSA62mSfGR5$gaU9$N;l7#nr)#IFX`SAlArgMT@hldIj8XZdJ(Qp5y)$`H`$1Kcw z4D+284`ih=`2o&PH!Qb@?xlx*U);sTNA(rQrJPu&7ne}Se4LzQHCnI+(ta_(^-;{OcXisN-8ol&mq(G?Eeyh=kRM-R7@3Nzu zf7%RInY9ZBA%!4AzxgAA943UGjjb;PgCr$Pxn{ng_wwqBC<;o1<~Ga;5o!7{q!4tu zH=FbG*5_(9G!@miX5M$>D^%U|@p$>c-@SWxD3$Az&>)xjNCnSms+pDbBNk+3B2Pu| zLE#m|eKc8g1V`y=I71|~NAj{N(drEX?n2kMKaR{X$nv-01KtUr9#gE5QGOI5_U+WY z3;P!T8Q3<-Xwo9JXQa!DrdPHKuygtozwoPs&X-M$={b+xz?K2}{P6nJq1PhBV^ic8`hnKI-hf5Z)gQ&5M2s+}iTg&q=hX7x9gfJ@Z0Z zyC1ETZx&=VfJ>H-*Dt!FcfVL#GMIpjGlMxn8QTIi?*+Pws?i%bMmqF@YjG@VHAFefkSDRfg#tMoJ&dN<))ziYmQD`T^*LC&0q4v;Zkcha!1(qY0U2K?yFWfsODZ*}i>m4g3?0!LY4L9<;4gIqf;EcfG zDkerKd1+FR0L&1ZJk- z9!4e%B}Mo{5{�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

BXsfvE z{>|mva+lM5hvI_37P^%9;4)thG+dzS8hLPF2eQtr@89K+HI1kb^Ru&IwY9bBnV8-u zX}K!%UNgO!|A#bAk5bYh(Gtc3q-2diL`+nY^ToZ&9_U?~Xd3e-!ZE?wq@3aBIBd z$eKMcUgv5~znfH4RQy4O7?ie+E)NzJ zBvVQxvMz`;t7F7qwe{{N^64-!^3oS^G+{gQ}X^gzfWfrye>gA)&Zfkf|hTYzh1CiBT=uls8 zC*{jN;+~)EgL{(o-7kGU_OL<_qq%BZ9j;;THXhU8B+Z7`Rx&6Y4#$Dzj7i}BY!`~c zdmp_E^P=UI!Na)bgX;0=MsS>Si4;31`-tl6FMh5WRr4FLlLd#J)>DG>5zfnD)TcWG zI`a~80K*IELA@Rho!;K0`uzFj`dT8TN$NME=dy2{N?>GVyTR3uv|rXZyL_SGI|G$A z^|j5ze4pMazR+@%;4I69M!Q~mhtw*tRICSbNw^s=vh*L2i(9`#vg3+E{E)#*Za`hr zn`=1cKF$$rvD1$&5TnV{haYiEMead|mHpI0GuGjVqEI5eY2w~ik9~-FeE}TDZS=MP@$J6(mPQCg9 z9lE88kZ41E#dOxUq{GDk$itew^j*|&W$wpNN;{&#Wx1rb^6 z=h_J7wMNm6$IbzRyKx^(=s+6*) zSjl5t!-1X`B$!HXn6^*oRKlKYs-oZ3+q-r7)C1KJ_z5zPZOV4bi-W~MDJ{CN2HD<^ zuX{9E*|=TWes#F`{Q|Up&nO~X^J^;iC>Uqe0>lhpGH{U1mkrg24vND_-{QYyM%P%1M^YyPrfaX2lokdKpjSu- z%;ScV_{v}$uKJ_?KZ^o3M0JAw=b;vaf^)F_E($?Lj+lUiRp(It&F`CAl$T>^{lN#G zi6Mc3_@cEJmY&?5b7pHWN(U!_{{Ape^aExn;LdC$@(7VyrPT~bzmi3>lZvm5j{u6g zP-4Xeeuc+-7k_c)+);W=1sUq#A8F?m>@5Kk(ZYTVii*VukZMrN5^6CtLv~Dw|3Wp= z`O@3)&t+n)7~~)r`wyd4=@ptklWch+pEJ+MV`;>W(D|Rc<))dDJ`AyI5wNXU^G01| z(E>+co1&fle?A7rw}Ou$HNBu!Oea5Hp>Dhjj1<43ia{DmZ6u0(GfN(@L}}3&JL;5W z@v34EjsQ|m$czk|8q$+c%bzqL$43w<=4`^${W{7)(*L68$y;6Kq|6$j))lLhmzM`1LH;GB~_#`91vtt}i z`=PR;0vl8|=$V<(-6H=j)1soG_3j4hC#g2w<+jI;PB6%woj>ex;jVzdl~q&YqVfKH zjur_ZM7SDV?aUZ`E}{Fz858|7oN;ma;+}szFKTJ`ZW>-RrWPseO$2emV>YyYg7Kv5 z@+O|}Yn?Q=;L-Z0v;fzU%4Lq{*MWy3a)vGI2kPYb6G?P-_Yse$3lOxRoDUC0qOxRw137# zh=-S1S4RMbB&MN}w44D%nczNY$7{jxpmz(dy3>L?yLfQ%{;A5ijRXO-2lqLKz_+*K zW!xf8fgN7ocK`kjnA|zD>?=po)6roxSwsP<$xXG zI`(_=<1s&Z>wJ;D%ZfC{)QuR=wjB6l7VXnYf)=MMmlA`6MD4%A4IDDj1N^hvcE|6~ zlh2OjPe+51(`rk^J}SNQZSZ&?e8ex2eb*ezgiS=?MLpYaCmr4E@ulDX*Jv|p9si&f zm=3e*tcC`n`Xvu0aKLwYSyE}$bae+ylxF@TF|5)GCG(zOO-2KNNnA_}#)gLkQa>{Y zDuRb2l7|m?{j|HnT19@0C}MD;@845z4u37s4oVcCH{`);sHsuYsy4$IGOHHDhM%>R zIx{8#Y`U_Jj>mb2KU{T*2Ge90MPhmPhNzwm>5uXTr1qCRv?~)E@({m<89qKe%#_>3 z9e+%-3z!bCJUD8ZA9JK=A?3(dH`#b8M&clhLK~?JO?n_HaLY_Yq?^|b-j{jDW=xrL1>wb424Ik z*)jZ*MX*~ppz7*0V{0TbzrczxePSOxPeDUPg&l!GT)^-H;$@F83VA@t!FAlHHM<@r z-763<6_uAypJ9fL#k(3np@);S*F(e}xbQjS+sEJB3Z34?Jn>*SW|3?vSZ0g~%h+dt zq5~y_QT|rMK(V{V%`etR=jFaa`QQ+VmupCawOBLnrREUEL8(NMky8*qNi%u*gU(oE zh#XfV7q|iz^7ir-tL;IMBS zN}g>%6zSs&si#=**ezACL7IEiEVs7ozuN@B7Lp!`zGJS#tnIdPw(u8#=t@!<35lE3 zrB+!qCnH^|Hhq2l?23`Eyjb!{%$+Unr#<9OX}QOQuo~i^!2IMsy9R;0pp_zFA<)dR_!p4)ZE11c>Bj-X9Nf-JZK1AYdxQFz^_y;>DPrxse zOHq<{*(eg!5@8wmSd%uF>6Jo#ub+F2~uR|^3c^T%ji!TW6mesZ}n4yA69XOKe}HxhyOk)FE78uW~b3T!GXydXLxa~=*9lS-PC@H^F z&$_^|O`gm@)$m%yP_-(wxU_EBGTk<>#%1e!lq2TQZpXy13N|(^Y+&0852_QU!?I7^YZ`pTkWKbxd^{cdtocIPT&3>#>ZLJlLj6F9em!`+;>~) z;DhS%Ha$s+dqud7{kOi+Qav-~Az5-p!S|%wq~6u*CK01jwp+OLzAyXt@fWr8n;Yb< z8}`++6~2!?HnUZ|-Giv`vd!QIWXH4?_Md~kfnuJZ;IL?n*TGV&u4B5lnE0&K7Js}0 zhb1yRnmc0cVMSXT8P8Y6csiT<`BqYqIkbEcdCKY8{myAPAWWd3t{kAZ(HXlRhM}EC zn2YHzfM{xJDgn}V1eEbKr)>6rEiaEMc)_?{4M!EpU9r6-SNRrC-7sK+%>=D?&9;@a z0?yxu>-u_eeZ9ecmR)$47s3wN+Eiu0*yiUYtk?4tD>?IVb_$xcSQs4{?v>z;G&+PP z2#recrh@2Q3;}Mm{qS?Q1TPKfcGy~ihsw z)s@|q|CH?syt)gL1<*sTuzkJjlSj8Zg(ZjLA^RWC0v<~ z9B#1JCWTM{uanFQJ-NaVC5<@)b8M(*C!Zp(oW(p@>hfZ{?Mdfmdv`IbfVB3MthKxB zs7?jQO|a@Wsht|qubn3)CKfdjK2OMRpfS#FP^DYb1+nfW7C55cTN|sYIQ=*J4JQbTO@dxM zZyc(^a%IFVQH5K=}Fjjr-kCh^oh&cf5Clq|xjpyJyMNorz`V^p%7d!Ju>U zQDcJdi{zNxer*Qk?JLi2ZIF8jn~7iJZu=sIV8+*xr z>vu$%Fyx+VXmw@ z{xn0Wgeh_5hu;~PCK3b4Htn!BwK}~HT*q!ZDkC30e85e?GdkgN|7M0$=Hr^N3bI?R zXKaSk@1nmqEteIL;V1Q=U9Ai$kIA0|&-qkb8(In^Tu3|>^F?O7h7wM;9GaS&$H&H2 z03~cpmeWKSZ-0;pYJhfg=$x1sO6%jU;ai_lt)^$?7C5 zMSdLuf#}rcd)h=_uz^`6CCu9vI_x>g-2=kkq79R3(?~l@cCICilIxU~+UITo%tB!v zgtFa+NQ7b{d=&wJ2@qdm+5K?;$P~dEq=u>|h5F;dV^YTIsnm^j= znVIFgl>h;Fr_bSzBU|X@h`{0J_{Q#>oE%5cQ$e8l-O|pkO+j*|95Q%*`Ihx3PMxH2 zdUv9XS8{BMIVN3N)~$cHchm>IKkCE%yMAQsvv0$horL&T7@5)h$|@rD1b^`? zmL0u$5&Tn_%@@=BlW1VvS=m{^ywCsWIFy^b_~aq6r1-yk4hibqX^yaKU;&>Qq+YC1 z)JB`~N~U{UIJ6t*@3Uh-QxQkC_no@Fh=}pMCd;a+KpkN5`GdoY$bl6 z(E}dy%qQ0DpLev%^o}MI%8gVKbOQPHHqxaZeq3_$mg_W{2LiiBvqMn)y#<(QU&a;8 zI{~ChEq?~medifmWxpLUW)O%RUVm#clR@HmO#+s63v%{OS;J$@I?^|9U=vj z&wo99pA-W+CqvHEmZ)lCZY`iIs=%sgXh;cW&_)I5a*mCjer#A6WO4{vP2@TMWL(`Y z8!Ytw!Z9yLON7LTp`PM@gMSSsR_A>bk@Gz|iMDgQ_T=<^xQp>fmb>AW0K|ey^k0=R zCzc@xvBQ>ed>nR~x=G45C-cP*V%Oq_)3=cxHyY#_TJF?g_pb?+dJBE~~wzYi@nQ>QJ3qxe+@ z$umdeQ%1;j?LD;qQ|;oAv{aW1_8;6m|I-W z8kP?Ifp`~Ypfktqw<7@1Rt)64DM-FC+|P`ZS;Wtpe*9N1I&h94-yQVFC>zbxuFQT8kHhksEOFWptCG|2mQ(IM8*$;GC;Smz9|JJoX|9Ua0Bq9YG?fcV zAN%FR$NY4;`<=ojDG?{e$2_7S(fKD^3S!B=4Qrqr&)^F%%qP%&=6Rn_GZ|!MZJin! zQa5W;F>CWlDv|kjR-c6psJ;M&R#s*vgy$=UpYGm5-zYB}J=8cZd z1ffTw$o@4WAW$V6>gqJA_eF0X5u1{v;QW^K0rNkY6H9ro5MlZRib5c^&7cjgMw*xy z^uHY_#`+n<*jZak0EqGZYkggvhgzBy5VZFX4xSSIt9unkyvFvjm7@@PTQ)c{^4kPD zF!#f038m5Q`eftF9&UE+9lu?6_7Z6@pb-Jg-!+1lb4V8D#kIJAJ+YbAS&7CaHN3kro5o8!NJ!E-+Q z`nf9~LEnyF4z}^_UzYEbbAuu`w6~4_(E`kcU!2s>+RT8?HUQD6JhbH~EH4k2qhDG7 zhTo5j{ihi$wBR{%+$d;vWE!bv3qz8Z)M9w4r$7wbDV{F2FHllm9y)A>mP$7y2(PFF z=g3EDFsan4w`*rJR!}NEP0@C`*wc(5<6E|O)(y)xM-5yko!M`K1C~6S62#L;hlp60$0j7yGFYEt^Y;XTZcs% zwO^w{h!TP{Dvi=O2qGXcNH-E9NOzZX3?N;C2uP zPF?3Z{^0~Ou%8|GbH`fiPPk!t{_L6c9_rEPlT1x{SlRLHW`N&UZ^qM2vvDl;8@wXr zkp=TZ;vk*?s!@j0!wpc=9I|(8J&>gp@vxtBAOra9g@pxx{(0q4oS!f4$^g;5rO5L( z#K?3>33p2W;pS=m8dKuvD3_53=Bru&P^XP=yj^24Xxum-Nv_%dbLjt3{e47Vg#k!J z?Maw!+u|`7D=;{EU}#rAFCS^0Fxa6w7NMWE(8)&r7vYcwReuW}1n$9&n&?3{N#DyJ zY+7!hB*AyRVE?>#+x8>IrOmj*NCintPj|mx4bX3qdXC>@^kMZaEe`<$Gu3%mV8(er z5%W296?*`ltn%1>Yi?;7bsJdgpc~aci)~<1bwFmM_f9P+Q6Hb4=9QEv^o@>gFavO^ zP)4!L#V0yWMw}dOs^}TvZ)O;P?~3%psN}r05Gn!RD(t-i?vnvRjB{Q0B^|=G5F1HO zvni@vFe81bMf6Qpu1S!a`RORQzGr_~+Y=s=bvZUhU$>WQTSm#|&(q2h4kkly^PXIR zP)4$eV9tCIqU@koVga)x4(G2O6Tn@VpC<&cDZn^U|5zX*=bWex%%&|$6n6xSj%e(4 z;H{Vc$n@#ch+_fw0NFyXAZTe^O-RlJDiI)eMoNB*aS;jzcP=#}z8n^YSJ_hx029xg z#_7KHeGOL z3F9P_^B$I~P(~`?lF^d?&N9qMNcdepf!juoD@Ql}VWa?+yR~_1g2`Dp|H70KyXf{) z;L3!a&?8lg_}A_N--ulJ?-mx+pqT<-CvGhhD@?F_5#Ea5Mu8F@8uew%#AyG+&rDUe zKJAa)j!H^|t|H|CeP${Z+RE}7en3lXWtlsus6$Rp4*8`S->0Um9CMyZF8U7J?%4yW z8Z6;W-@<_7I!gTX^6iB?tIE*y=MGUn)xX4NoLRp-ORCDhHi;jPqmIQTV{GH{H)5&0 zc8IA6cM#Cbt5Xfv5V;ezE>`7z zWchmk?HjDUt*uT$ks&c1|BvM0)|8w4&KBx3`TA%Q8f%tWO! z5r$JGg@t&58;rc)5XLqsDf**6C#BQV+6ThJmi!>Y)8h)9Xn+BKKWiU0Yft65K|u8` zz%;JmR+CItzFEK9^);8pM4?J25DKaGIk81<64Q%DsH8t17OLbD5TI=F*d<8W>$uH8 z@j^r-RZ#M|!`!2_wYBA8!6l-U2EZo=_$TgRSBkv+*upV)jsas2sXVT%QPrldnS4_w z$~cN|zuiLJ2gkiv;RTdq053bICK8|TF zl>O~d|J?L6FR>1+ve)6xMN$usWhcQe*LO);0_LEnq)2r z^E|fVDqk9Fs23h}*si_f#YwO8$+2~?*)7Z3Lk862k}U(Yr0qAjj;5jE-VrUSRXt_Z zgTKD0K|;HrlV)8R97zWwwN6{Xe6a5b+zO-`|N7#Eymma2FF zw!E-W_6YZGlT0u--cvf970m08L}MOPC3sNH%> z(+)w3EOB$^f0%GK)$s&82Zkp)6rIV%+rk>Udx*8!K9O8851V40{}ob{Qm#0kqms>z z{tO4r+RLh{5-<8}^MGx1P9bgcAiV26I9|3DflkevtbXA5YrAIxu5~bpcwZg1qobpC zqNA~KV3IPVZ!$07})p=si_4Rxc zh@C0C_{xNF3MMBfy@vY>a;1L!w;E!?dE?PS2S`{L{I0F-;oBUkJ^q~C+5UPlF){k1 zxPs?>p1`dH#%Ror__OmR3IOcSM?4Y1Q)O>_y}S{OHaem53Xc_=E3g-m*PH;Php8;^ zY<(~ZDbJaO52C+OABEc54jsYzY?YU_)`3Tn0$XJkWVTC_@<(wqL#tL++3;63UN&po>-0wzMGj0$I9uM+MW8_fH{QK9t05n zaZ8G0X7}a_RnkM&*35f0gNH?|eDKQ_K8lNsg*q+9$4ye41+q0CGG(uG(tNUX{u|`Q z1E(wLL%45Hi(Pi*-y5TI&6IoN3;k1QY3BI-u6(~CHtIb|JbXs5yY7f;DW>9dG~Qg5 z&tzv6xtI>aC4`{n>>ZN_svh^1A(cp2-(gR;oGNmzA!Q z5X2hk>w8uI@YBf{!-FmV8=Ms{eQ4mB^Ss!Z_iH||FQ?X?*cVbR1uH5ftT0yYUwDoqj#}_Fh z>OTT~@7@+DrmI_z198z*KxM)VFZl|%_q{n0c@^Y{ZT~#o1rRr;T9^zTAXl>_4;EYK zd!1S~#Gm5Ig|9+JooO$A&Hc-gdl0~bZnC3V?lcZ(?|%1D{l_T|!|L3;({0EacMA^2 zQYzbH56!50cTz)-yZjs;$kO6C6J^Ng^QBYOOx7kG9qaf6yzAu1e79y-MOr41uEI*r z$IlOxe!>7~SAE$J|3B16yZ=%jRd`vdqz=yZqhn%-0Cneg(i_8$&QQYF2EKq@3f^D= z|C~)>r{Uq@)$ZHcfV{PO(97_~kM5gnG`#cIx4q&Z*ci)#119$l;Iyf#gy31;R|(BL z`7GU^SO2<5;y>k$yr+5afb6L37Ekbb9WmsQ{m-hGO}h>A*oa``EMcmDd&yImVm}u? zMo>G$r|TJ6B>P3bPiw+g87YF?cnL0)IoUT8V<#3i{2Fd-;?5=`(TCpRs0t@zx3!?& zgNkX{<4lJ$`K5Um+Be^Od3!TH97L8)-nY=C0H>4aSWye4&Z1;g(zI1*5+yp3`Ow;e z0+|C*^EqEfdwZe*L?W1$*GD;6ULirj@9pt&Pw7D>>E$fp`ceR+YUT^dNq(Eqy+N%@ z!~P`&Bcp6qtVLjJ-Yb87;l4#d@4Hi-v)>ctyZ24bWe#Y;SmJbsg@x(-k|p17JIi8@ zI|YIfV-{QS^!pOWfg}v#F%KP^u*wle2tVQCg^%)&rT;u73%l{TC&h8*6}kxVIt#y^ zS~z=INkhSYJUt;s$q5tWjS%kFTxwCRH(Bh|&tCGq%uH$Ir50lo$AUcbG47 zjqW$3`GqP@?POzAB;=k`LPQ$U=E>SGAU}}mKxqB!fmr9*&2-4L89i@mxKigPLe@md zGt~6y;{k9Y65l^Sb$GSsUZT!qK*{Jwv>jOHJWw_&wp+h5704{GA9%ta{(`}&^&rdy z=#9J#eYfQG`);8mJKe`ELV*tykBhx;+hz+t2fPLVw)+?#zoK4ZeZA+j>X!5GPDuy^ zELq9FSzrH(w4f|Cg+jOUQok3f=)3rzB(C}!o^!u|tscOSlaW0ijIMpNHx`yQAds-j z`5$H@GHMeWHJc*fv$q;KeJG%Q4p{7LLOw(NnT{w#A*sqnLj=NpV73U~gJ9APIG-z> zw>-P$N(AeHZDNH3EGXP-J?TyNkJ|A8hlOVMPQc9EbNQ-`-G-wLh*g*v>9$Mk>!7dZ^Hea{#YV0@f-S`vc1Z#`mE8*PtejLqPKOV zMYeSug%bB#bR~#{1yNFH)8}-p-0@kttBn#z)vjRT>0cn8mSL{rH3&ezXT-^#4B-R! zDl45v$IL3=BdQqc$jXLUqPQ;ufnwnYz(53wRd(V>RZdIdUEe=E6o9!tS_|%qt)eu> zHhBLdDSq4z`=E~;#(R~2h@wAp7lL-$r+t|}3s|@e%DYPX58stcz5sgnLh)8LaC$V+ zT-AUMPb_gLC}i_)uYwhe5kq%P@=|W*N;sywS9c1V*f(lk&(rcNkSsr0AV0oA0fm-a zmYrKEvXxOXC5&O%!lYWR4*BylpTb{>!^*6RRyqe(hPa8siRlR3>4j)jQzS1breX{4 zo;Ewzl0Y!}bCC19*QE;7n-|Mf!59@p5EL>o=1KklVO+EK@2^G#JUqQ^u^a0=U19rI z(7gi}W&(^bB^$HXO3#~6C%tIi0K>wWZ!&~6|2m^936=u3s_#GUgtnfS3f(YjWbu$4 z(Q;zc{xYh_ykQX>0g8mZn{=GPe!kITNx7+-IwS3CU>)No0 zTAY{njQNvGEp=(F%f)m#OJcH+vw$$veHQiMR5M|M)9P;pqdm*33Lm6gL+}$ z*Ng2OK78T~^8G6zVmLT(d8NU2%y1qCiBC)g*VV<`XX&)DnWMgkPi;9~TNQ?xCVaby z-edql7I8w#JRi=xrF;H2VU(BmN0A-PCFTmwZ6P6c)+ywO|7gRIc4Rg#1triS&dl46 zPW2cCCDSM|QzUUISOBhKwPYVAVs@D=Jb|;1DXx)XkuLEYWMRuAP~=u$??E$;ofHEi z*lTyP9c+YS!BlsP@5#SEo`AmnSYQ`y&Dt&oxWVM=L)pojOr7tTOvGqt{*vFOzIZWO zigY#3A@TMe{O44Oe7u-IOZZ0oa*e;Pj<(n8`5FDcM@an;co#?{ccCcOOg&cn!jCF-l^6$!cSB$4sLDV{FOMx z!@G1=>i7WOi=CX*g6xT-z(+sNLLeX%?&pHSP_v_e&^e0vOVUKyv#};%Sb%Do$Np*G z=Vj+Wcb1k;pC>bd8}I!Gq44XhGXa{r&ZCk3mRHf1Mt1#!KHn`!6P!CDU+9}hwOta!WfRzVyiGS*9YgI5IyFn ztz`Y)B-HdAaQ*YkIdr6)A_MhvqI!$WX^Qd3AL}P%v9IPseT1)dAj$@_dhfgVBh^ zChSYE$(u_MY_kVKMM6k7s!{}Bj4BkGi=IN&@O>hk^S>wtdhY$=5dGJV1GM-4rSHuk zZ|Vz`FC;6D3}RDtR>GCKH+sXGVJJSre9?^|O)_1D577*$Nmi zej}WTq)WAE$!!BWwkB4%x&o762+fzw`>yjr6#Wn8d$yYln!^OANRFUPTmN}KXx%0E_nL6@wgvj zi~RQcKddHZ;~+ibZs=%fDNx>6Ue|bxJ_C&uzt~4|UvmX%pfujoxe&ATCvwxXEZMA# znHmv%Yt+XvZ+>MO_bg~_F`VkT(;|1uuq8+>kyAzA3T(+@yQcz_?|K0K5kM+1F(%(N zYU!J6(Z9@nzuOlV7vdA3MqlQLE3MDq%!suJD2vb5%`Z8i&@=DYh}x_Vk1iK)4m;B@ zOYjh~O!B^~DixxwYS=YEuJynpDbG{Lt8f)suGrc3&cxa?;!?KfOw*3xBlWz5>6dA7 z2f~ysy~j915%-qB2D@zaI4OlbJwO{jLmI39mq>Hr6uera%UP~Ffl7AP?uh!||hPuLY8kw(XUz>~PkFp=Z@Z}}xqX#BnC zyZ_p6zlz$J%pZtEcIY{^g=S>XW(TpWbTLy@yKbni6s9|NHX^SbUeD-qQ;D802P>l< z^)cu(;^E=xq#idFfn*o*?DUj#B#z2QAVjQQpQ}yIv(aG6eIrAa^;9^E1@6SrMEcI~ z3Gb9zIh%CIdgpjK6El&rcL!$E`D8qcrZSJ@awBy)-l*qXH}1-=wgy$rYn#4y!IHDV zcmG~H?W67XuYZ5x9BoCb6{E_xRVDoyQzZzo$nQi>Mz9Jzn32y;KF6U-`YPQ*qIf=i zi)Z+EoNQgg6i>bRbhDDpn;AIi(^1Wb_Ua{C?G79jTI?^0dhp+eWK&s^;p6nz)vHY% zU7Izj?g1`Iszw{>>_)`b2f|I2L$ma@piG=q{0mNA!pB*;(9Pg@~? zX78r@3=qbB2TZ}rRwCLy_jmnFL2^K^UFAlrk5aJ1I?VBxkn)XvBqwg(9qT2%)Rboy zw!*RWn=&d6nV0uv3g_0!wQ`wsOr7ZM&q%kc17PsN ztg_+SyC_QcK=HEj@@~N1))1ha5m(pOkHIMAVHon4y1X>qpz5JaH*-b%2HeaRQp)RbcZH;ehK7v7Le|i32f%<=SI_~(1s%Y9 z4wQ#aOi#0VK2ZGtulahmSPqvX{0EdA5)TjK5mYSkU$w7*%ty|nhon)bzunvIQpJ3q z0}bo!8aU&Nd8jsCR!YXlC#$phxcFmd=GLw5S*8^$MrfLT*^s>J+g;SDb7w9@MfMC4 z=I$*?=5X}CF8{0Zf^3;K>hw%%!&4oM#lV>0|O@ih=R&B9t`HhI!KZue12fa+mFKdy#4nvf2@O?Xek8QoqkeW<0kCRE58PZCvE+ zIR);&iTNFhYKQsfK%I=tl3A9eJG$J0Rs8+|OQ!A*2(L+}w5v$Q3w#MxzVB%2b6nXl z2~sxy00OQh9LLY*3=jfWS8_v~vhPN=3OZCps@M!S9FHH)J-+?EkG7XBmY$9hK88}z zEbP{=;k}Q_Z1K!1Y#;`gUr9iCJyY?Ig;mk}-I4Rv+3(5ggmojtSx8!h41Cn+dVm=s zFGRT>%(EoEWR&$_-v9bx>wG;!_4G?tRoV|jD%V|T`#44IgxTBNQS+E}1NCiVP{sf3 z_N}K@t=1|2TFa03aXVP;^B$=G`@Foorun4wfldEY*UzA3Avl4#&^Ux^XM6Hha9d}=4rN0HKw%Acu;?4`Y zU5bdx(Y?k zzb-e-JMy>g0?~*9vCOP1R{{Ya0_jU$XwSd)r@v0Bt8-sL@lk8BP?b3kjHU8hUtAx^ zKic1I#(Nucxe~B{oloA$e);7LId|{`p%Wl8G-PNSb~6?0NlH)OIXW`>J=q?Yb&k5X z*3i%8=?l;On7Pxx@rKH&Z^dmtbI%?zp3#Yfg2Q3jQm?i5j>1Ax zPF=%97+VdkHaI2E4XmD~I3 zX}V+wQ}8irJ@X$BzlVz1%3d2H`0tN5!-c3mOG6DGs||mzNrTlBGSiBUKXlc&n-(bf zOZ)Vyck+y@B9vP)J5E`VnPlro)qFn6Wl{5C8V_Z%~~o30;Jr_avg^)87aAcCYV=T>V3<rJENqYw(XW+zT| zFpPOs99}{nwz0jl=2_EuUY9+Zq8>W3Ai~ox*R+p7C4zh+H3S2}#))t{8?!25ZJjd- zh%sj?cUr9RC`X%%?~K)-~1&fc9&lr%V$%Aj9 zRLvg-K0`4BPlpEP-+E~%!u@QDDb8co3d@q_I{@5Fm*{>!xO`oLOi6pm-yweDZI{q; zoCj|^@v`_SXr}i|)>4DYg1$F>b6|i;0Su!Kf<__HzN!F&I<7(h{^y{KSUBwu55xPd z2?2P78V0GUwN6^HioS0O&(VC@>T%T}{_E8DWm_B)s;UG*rqn_FFj{INabXXeb@ z?cg<$8P5OTV=VpcAg2eUy(_;zUiYm3awyF~8<75V0%;f|o$mig1JleS68@ z*yd3+s!1zj6&Cq5zTr%LN3UuOkb6%PNP&wKKfP_23B${^n$!-3ty=#`!fzYwM}^Np0DmA&kwsAMQy+u^vrAS-D8&`}Fg?f3?_GB>5M_ z-^}p)fZG%eMhH3Rd4swJz`nb5MsEUpdcqg3%%QSe;4+K`Hb^VS*~-hWcI%L!aJX)S zJ~1-$N4MjUuy2x?6rF#vcBg3UJVT0$P!Fl6!Elz7E0+ngNfAP5|BWDF#f7l1pAE_~ z3I9C0`r2QG#$4~&QsX1ent+qfcQ?nFdH-M=ia&JQrDJU0}O=+pqt0<~v)%RXYBY~Ba)3x2lX(s*CcQU9%9 zzuWl@g9#Y)KtTe`&RT>^+6(hyDtRQ3O%VF$`N|4YE6do;pP41;srBU5DZK}Yy5!$` z7fw&P$_^ACNS|ZgnXfGW{^OtXkb|WPP23wNn^&cO79)o%k&&o3+-7 zbw#cNuxpMWhL+r_XGD>+Dz}H=ldn3W0CUWs8P3{S`noI;h(`dqi7!AQ?F?R6ANcRu zseGJ`l_EBY{%+JM`32+rO~u!AUfu8S?Tx{0ypPU^b6uyWr>7W0q;>JLUM}!{^DT4ZdJ|@GQMND2ciNz2yXC8%vA{co|Yd+IAazJ zoWfVSy7yhv0ke#Q1j`R?CD?`2>kN*`j)&9(Iq`GG0&$;Oau*sp9HQ=f%Xc3>Ujxbt z9R5fKV4}7*+>RE2u$8UMKTt&}6Etb|2AbSc535>QL`qE=fgE2Lz@>sx3X>Ug=grNH z`i6$SeufJ?UR9F92%?S@ATzF)ctb;4{xdRbHU$LTtY3~6#rM(Y|&s|vrhg-0qm2i5x%C;IJ|~+q8M-z7SDbUD3y_&cF@1@#|A#xug_5(G^a%>Ss}o~f9XUs84UKO zm1scsCO;F$sSN3N*Cn+B>r)AmdnFNoL{X+;VDJH;moPRI&X=mB0oWSb&tJxmn)2ro`QIF6D~V<4VuZkddFbuvZG(G9 zZTDWTR5&lVdjs_(ldJQwej4E8f(#EeG2ILENcdMMK!9KerXT=pbp<%P@s1)iM4j6w zv6l;DV)uyf3g#yzyE403r-0=e410M1E;Z}yS|iTtvsAB|@p%Fv7Njieyzue@EDXi~ z(muG7ZyqK`!a`T#-YZy1vS;$XJi~eS-VRHJMC4x}U*ub`3zL>(2xPINlh+-8&tYyf^5;I|{o_Q5HsA4PeZl ze-@eb`a-HT&Ua5kD`1iHpn~}&uME)Q%Yk&G#3RZ2(yM;)*=b+sg!mGg6!Fd7cf|A0 zGj<76m-(~gzSEMq7#nmDq06eDxtu8%BH1Q8Ew}9BIaasg%1o_Acd~(=V8O35LI?mo z{oUNef=ChaVTe#!gfFa6r@LX#?QLx}Rtt{x)DMJ)lM4$ALn2kR4TC{^DH_!buQbfr?v=Rk|le?wX^?4ROl7Y8gBXk#{E$SuIkqq!k>mLLcC47Bb zI6Dt=dT1O$Dp5*_>;aWAqyMeMiuBP)ggK#V^B)gXjd2HdD08)&)z9%AJ<~@i#0)!# zKdOfXn8W|t^^an7&Cnbkv!?OhTr)mod{wIT_D8o!r)Icf_Wu8QxWJ;?6S=>ZfM)twMQP6~S9Z4Z5EgvBEvDca)XtCJ+l7PfY8fPRQ%$6>X<) zl^QVd!FJAEy=_#2pGnQ_mH26@OA_s zQJ}A}&MjAL(GhfOKoEKVzOSt2BqcR<8F}WQjzc$l-CHGYBTP!cT*;LpL44wZ3*CcH1JAx^fK^vycOJf{dQgxHs%w7^i12w&YF}xRs02!seYm&T zgx^yzZhFDzf8|AGBFpK4-rK1gJqtJ{gF{}qUleQwT<(+#yYiF)ufyr=+x)JQfdO4x zt9VD@49vUaqA2-`^JRRgxDK#(`OvYP`=%E`N4tY|5Qx}O46(Hi^}`X7`W-c4}JLm_2}FR zfnBU63;;k?sxzHx(TX-QGfc1Yi{7=zgBJgKh1rubm5P>F$CG)RtMYZdfzh{!_2zBs z$^HB{Qi^PtTQ=ZDBsm43<|}BHP@p3O=LY=qyH>FOCtwmRcIwTc_RxS%`B48U>W${r z2dOIz)Yo)3PAJwMo{fg>H|dEHqiCL!CRxtofPdGuTov*6(~zR%WqOE$ruAR`(}z3- z7lZuOm%S)*$8Bp&O1tbbxMi!fY{#vKBCk@f(ed@4q11$961Le}xqxX&*%-~6jJ|^z z`L~^@?seq$n?2G}>1VJS#cxMpefmh*kp+$j#B=akccGbi{qS6OurYDFw1{SIghw(d z;*Xp*M_qAtysIZcUS;IK(irxTG{#|{o1Z@bg^EYN8i2%7G!>7eoSfVPQ2>*U+#f0> z>zcQUy2H=1s%NnNwCW@=hHOQ-_akI}3Kul}xS_~K{o2qFi}`wWTmQYeiw3gA0x#=pi1MPrz zk{Yg(ZRC%RXZJ(GjBSn=PKS^jDkL{fa_GXjtP8>Qk;3$R2G5hYvxl}}0?nDaG14mr zH&q2=XHf+toMl3zdGC1%uLYb|ZPc;Gq@)@-?Xi^HpIoBfn1 z^nm1(-@Ts3L5A3G2GZcuzlg$6ftd2mNqu9J*W{ULXp7Iu7R5r;zXB*6A9w&7OF)(y zGeVd2m*o{XPztPTTXAM|5j6)McnvTMhzFc93?tl0P1qpl|w-`29!Jf?ANlmR5<74Eld;jm- z?#`_{!tvJwg9CYscB38KU?y3udd6>4lC4OO@kCaZ%d0EjT!tqT<3K82-_Wf0>KVu# zc#O!jBm71Eb)Qz0eP+S@I^0B9>3-$Vkumt{Z^M8xmNn_q%AsgSCV8!!Fx(X8EWt%D zmQvszEiDr30GE0l2)li-c?bdUShj_|%ad(aKsrrKcWlPT zbjCRaF+-+N-o7Td<{*RhN*O3Y!wV&^o-@N9axP>j8$EiXxHtos0g|P2!Bg&am0i81 z?#%;vE58i1(@@t~JHCxGxT>yKcGExAZa}x4tt%zP&NkQVoi$rY>26 z`Op5n?WX&&-6p-O<;tXW%6$@ii&BX}t77P=yDpOm|CUZAe%;FD*fyD`o1457cEO_z zpy3HzI;MMfFwKV`lW1lDfcuW=g@g&`YFOGa58~M*z%y{EjmLS9kw}@eV`9N41WC(i zbztLZg~PZS0433=&n4aWMvk7spW(>M2G_+Q^>v|=wO_=i~~?Kj7#Gq2UKxXDb^{Z8!3 zw@x|}<6R@9B(bQ{CEm;TJg9tEuy64uP$J(u{!sIxou;v>&#x{|9ZyQryK44*oCAC8q}`bdPf$AN?@KB{Ld$M(w@B^m{?7=!V(&h^e&)gCNCkYby!p2We?(Znt!=5M^B7 zf9rl4N)zBxbW2Z@edBM6J_e!;`Lllx8FKaRwRtUB@ljye)wY!=cv-&2_cx8-O?~}% zt1B)greS}|h<7DhV;Y>HQ)Wys{u z1)bA+g*RXU=ug;Ic|Zi5JqW`VfU!MTlw4v{q~KGU2u6#@QKH*?!lF3QysCc3)F;=w zzX_}4^4gN8zxL}^AHRG&i_0d$lue$51|tM~?WNuHps ze?5cNaQ~vfkM1|sUM}>Gw^%8Z*HNZY3gN(V1Pwj_EJG^*3X+2%K)irIod2#sFZK_W zPAoDt?RbLK>YkhS!^3wVi=gCiNePIqnzjBPj$NjwrW7*o1Yf=_xjGrpz0z-hGd~%OR_#MuLGNs?YNnw*DOdYrip)iP6lha4-e)i20!N&bfarq_e;^fmh&oD%Z*Xhn|J)z18h^(??x zX&CokFDSAGANVg?sDOH~aD~OY77|@KoKP-J8JdVk8Jj9$FT3*0Yk@g)|C_WZO$)P` zCt`dXVIdZ14Sq+j9+kPiqwq%!Im(bj-y9A~G*qZMT*KB5OykJDiv=qicZ#?vEy zqc+0DBPH$Eu)2Rp(*!~evJVS`PGhEBgt?llkc0V`G zXT4}(AXl_ftS6CjT6}|kcX4b2xeFJXu-N0PO zyL^9YAMO93;}vczfGO(xI+)w6c}>uQG&$%!YXN#rdCx z;y>(kF*5dr6-BeVv}7SQs^pQK7)PbRW;N^tLv6 zC2#wwinPWJG+Z$-4$70 z0qQ#S^1tDBfL#dKSfDafxdh-Fd(VNlcP;QCsXhppJdhoDeB7~dr0_Lx)8`a~I27%m z>D%Uvk*J}RlvHr)u0{Otx{-}of zb(Y%ks-Cjp#81dw83~&v073GN$2>K>ukO&Zhxd^sE(>;_In_c?N-q~0zkpxP0XmPM zoF5b|q-@wd1lwW1RqwT zF6SL!^WJtv-}3ot=S3C}sb+6Y<{ke#NI_TS#v~*Y)^m~a?x_BIF{fN_#fT>{VLrHm z+chm$_rv;?iB7Q6hpm%Ru?QJ$&wGIz*4R5&QC~kbKHFp+vkB@BWE0`Q!BJ$0<}_#Q zt>c3dNaM7>l(}gWt?TmXspn3ZVdWZ*2i(@f>DPqK! z3lXNdP?FS_#|qCJp23Gd55WdO733Bz7JtP`?&ql}rxOCV-QCE`t40x)qgM>#ZZR?` zCNwj~?D)|p8AH@t%v_J)qO>)$&`??-X4t-D$q!7}vhZL&2%rSFZ+b*DG3_WKPPX)R)|M zcRQ4zh|gopIUhQA#Er(Xm-co#J3N=Vwyd)Inzo%DUEY$t4B|g|Va^450Sx3TB)kF? z<0o<@a=_jK75QLtHr1w5GRxHjV1Qm=S7g0@k3LuLEgnU_dXqT@ch0-hdc11aWd63q zY~-wf+NjIGbBO?AZFm~ex!Ps^0Hm`7023?(fjGCjI|>9G*;F&+6W&Z?_#{m-%F^bj z%#wAdCX$pqBe8>9%wxTIl}|?c#D&BT+{ru_;9Q122LgV%6=|rKsWJIQR{19^w8Yyt zGmaY`nA-j=TEKvwHWYrgSpb5x@{*YO8K~p7yn|LI*o#CadhWg z+B5zBQ~)l7)+<-Rgw&D`zbx!!HH4ptoSJ2oi|@;2+_;RFwYB_~M@&mq?bR@GFyDkh zJN6K-vSiGi%GX|^^lR(uE8UUg=VNjH`H&yi48-A2!Jh=Z8+#ir2KsvO*PW(#*(X3R zLaXP1S>mx@^ppSOd2P6>K%#@aTxaT7KL-u#>&3lmigp=Wa#vbr78=|_vvbGtFdih&I0L$V9F zF?|yUG7|e`?H7>;wYNm1g&y{t!Tcw4pET#(X3NqYjM;*%USu0uThIF+0~!C!G_o-gX_q+ML(U9F6t3fH;Gc zjSUBoD&X5{0Udt;_j-t|#X|$gDOXhVbrmdZIDJR_ZKON3kWzOC9|R7r7Q^2F@a*#P zQdw@PFg<5?hp^^h+Rp0x`|(lol?o%JM6aHb$_~cRWgB0s#WE#)F(q5^BG0Wlf7^8# z2aQvfm_U{0?w%>P-Mzg8SF@cLN{(otqEd(xt>awCo`$jo_r`D>3jb?`TPT8N6a`zxwrm zJ=v2l^%I#iFA$Z&Y>Pxj+=%I%1_|Zpx*A%)GqHu;LL--Nmtx7GwDPZj`ulr;`)XNG zxbv9NVlMdOYZ|I$*pq8~Vo^`4Uk;OnKWGGtALb5hG>Rx;NmFIslc5Q$xThCNdN903 z;Cxc6w)PC_E2(=t)uZczP{kM}YxD}?(@OWF8a4_tld%3rAzUCr&h9Xr%2-}NO9 z3t{k&0X49LMyC&c&VE1UdeRFlJk^m%nYE*%ERf&_x)xQ|V|nUJji8!NK^;_$JbKdlwW-9U&4^a7^v+3J3TP^?*jb3KXwa_0#eRD;}E%e_vA z4bl09c|-s6CshOUj8!icpotL$;Yk)47-tA*N0j6Pid!|{#h_mmj(W)ZK4rCP`Ci;d zvb%#>9|nP4>_*I*J$R^F`En;1=c9Wxavly`fyQWz33!|KCf7$he^X^Adg!w@L?q{P zI5iNM}~Z`oPC@5!H(L^5cH4^_;qKf^vE*`t~)Q> zgW$mW-*c(Dffysr9tsZzyP6e34v-?l^c(h#;zw=B@S>dBD>a1Pbk@f$7Du^xx@BY|F)7@ zth`Oa-=#p+G`L3n2jjuELX1g#^Ok&^{140}%tRv?z$-xN+dlCB@yNL8(morO>Md?D z8a(imBpKGlTeHG#je|)TB(SPTg8NM~ZVEl1!3w$lAp&-%Bgq-BV|~<|MLZk2l?xba zJ(Nfr!HY~@Y#>GR`j<{>-zjRVtWrDqOH?l?De+r!Gt0moc>*M|_VsV}BtP$KrBYK; zrp`GzJKqbefKl|+%qXrOWMf+`dFCX3`Bbk z*g8utd7cZ7->g2GUvbtkKxb4qI`VbXG zYm3VJ0X13s({3RkV16f55~u5nb zXZ>~L9=yO);2;gx!Do|VeT{%5BSBtn_oem)xhbr8_D*qSCA8qq&y6Dv85tQ{*TVa) zhR~pnoJ3aVgVuU{)#{H6JC2i2m{_p!%Ao;{L9tStNmcV)OIo-3IPx{{R5{UZB*CkP zYV^8EuzRE${7JBvrwJdrdy3U!0yp0W`jL$$G~kCyYM>B3-JCTXhH?_^TCd0eY!s3~^N zSxf7(A6b<&7yX5RVSi969vC>rD~X9#Dd74McQ&1rebSpX@!7(36MVtfgYgqluXFU&ReFMNM18dOD^2m zhP*2k{Hifl4lYNJ|F}e)+}ywwW0Tl6_akn^!n!~S_bt8dwn-hdt+@Ek_ViaxBb<_YTpfd(LR_z* zl&8Q2=>o+}p{*7ky#`}z>pR)#tBnG|_v#jh05$R?7tWP4Fx7VvJ#Y0u|7MdTppDyp zHHeV85fB$#$3Snl8{~2jVIH#+S4~xI_0_QUqSiqnrv|9Xk6$j`#=}cI_}!b%N%Hg} zn%Q~a&ht+ctXx<_%FGYMxUJb%4Z(%95g!KDNm^K53O$dOISueScGM}el;6bkC< z6th1XYFK~YW2uzx+Y6sk?S8qDpB!Rw%XIvWC~%yXPkf#V39(x+$GRm2V6wP~h}PED zlzC8B9&_2mi?+)CaU?=_`t?OX%krV1mC>Jz-a+XRFi!w4F@=6>E`yjgya5{l96bzy zP(?-xDB+df>r0Da8S~QT>VBnm)l+US7En&Hu5)_at^HjpVro6xSy*zQ*=_LuXzV+H zqH4M}2L#DE4M9M{Fa#whksJgh=b*$PXHf(sBRNPG1j!;GX$T@2$shjW#i)g6gI_q=#RyW;kPpFO3T^LMA3@{f}q zU#SuNo-($S-Vt{G1EO?w8zq$>R)-E+n`tLX;3KYE{N<1qd!lbK^-)IHODqsQKjd!Q{oXO;-qNH@u%&(bVA?O67 zdqFpmc({~|-ls5n4HlZOqoe(RV+=HdXocsx%J~cqPh zp*knQL)Wjx$Wj&Z{sS11-35^I7A@3#u<3n&Z4S0lUS3`ppdAT}^br=VN7w(vH9N0D zt~}=J3FJ1^mdb;Q0DQq54Wc4-EFd5l7zMn6GAe9Li&swj#6gX}_qiSw`$D=emyE82 zdg*F9E*JrYG^=K9?zP`#)5QaEhc`|}TJH$Vq|PEvvvd)fIbe1;s$cY8>M7rkq(^Uf zmjeSNV7J;&^#rnr!)_CTSP{DDT8H(yCU35;@1Be6;FtjqQ1nQ1n)U%17>R<5gxS|_ z!sZy|J!b=|;;gyM9+@wQb47DAvnP(Ytg$`Aa&c5+NIfJOM`IN-z85<13bCipD<>3G z{NX~A%X&_Fq;LsUcdMluKnBbuxOs2o$(K8lK^>NAD)-wgsu=>$E`t`qM`}dL5}d{3 z(OM{x%)v)DOl|Y@4{xXMCRP0r=j)uDd2)Su(jSQ3$iq0tjk0sw63cl4LM!|(QjLJq zaQ=RxU2I3tj6M!soDyB^rcgqkL3vwjVMzU@5LKvogN|Zz;MhlO4*jc`LJxh4n*McN zBm_8i&cAWwS8pfO!3$UJ8jSD_CCx|4T{u3wW^hniX<*p71WyRid+M&$7*X^xfU zrjL6!!3@C8LXF-h`8?s`j(E2OLF4iR3=5&c!y~Rak%&&TY3<&d z!v$n_Qh-d}JqocAtY%PPum3tTP$o}-$ao^47$k%agM{N#$6Bu6Yv=uneX+gzIh>Gn z>uSbm)7~r2(aCgWxkMw6))eixHyf})N4qvsX?`nMW_MvBjd64M^PI4Q=dVRmNatt8 zHo;4ur#Qs%ivj*|tWq>)(B_JY;o6u%dKlxtCfbs^z##Ga)A88;S>%~dOOl9f|K(g=mB76M`AfHK)Hdw>1yH{I+qeG$8t zd9QcnS;--g<6xnF)d*KNY;C$Ka;wA5IvX`Od*)kX5h^yTH<0CRg;h4d9Qi{~zOk*RrUlTJZm&nl&%u24>OmKfXJbWAvd#)>Q zC|tEQinX7x2I>`~-N}IuTvbufM!hDSI>qcTF2)d{UqKDx$-ol=O5D_d_TMifsdaHP z^TbcDgr+wTwXaN0I?R*2uJed-1kuedSR6Ar(t&1@AKQ+7^ghOHjAd0E!-)rOhR(zb))k!j!85Y6UwkA?)&zf^o~2E8o7^ zynh&(?01cajfLr2&Qc*9?sOR|)}(s;2Ph)^YWDUq7q?<=skNz-2P+w;GW;{)OK;!q zxa_x^G4XcV{2^1e0;ls|ju*3<63E$8CYRQZY4vIwooZl1djyek(Q~hVXS|PiJS2jjf%Lz{J z;Qh7lpV!&F!RH)O8F?w=(Px_Jck0bhwtPL017{$l_fRb!-O`7>=r0?$sny68GECSm z#hrH*mLOQ&;MUjwqs##Y;pc>kQj$`#k`A@9DKQDq84%AHk?RadZL!7m_4FLm*(l>& zT4Ox$4nqTyJ=5UwwHC)5+L94V8`8JuWG%CUxkG0Oq73(TrSJniiBY?;bO zG`|f}Ki6xn)K#|_(J04ifk)4xrWXdj9G4#0$%|3W#cz4@F)?DfP#Dt+rX*|dmJQgf z_a#I&KJ%{2qM$U4%$olDb(ZY1WKn=Bw*vEWqnSpLpcU&^T*!x_*f4ty-tLc$%PL>k zU-j+>!yL06%<}XQN(CGUn z@LFHLY!)wPCt!@~VXL!PO)@tc_fR01yc&~tHil%-#rMK?BY;tC=Y0hZ~!bMG=W$rN%L z+4FbTg;pG?P>$M;lg#rs=lSb`^qq&RKL@f`oitF14~On@27}Ypw4riVY57jFLiO5W-Lg0t^5(}dS9U2SYUMO7*!+o@Jx)7wmbZU|4t5<*f z`x1kGcEqc3M@Dv+Coxc1umLm7+R6?tll6U)A~VLpq1bJ0VDQP|@hZ~x2v`EYx;mwH zWJ+Bi8uiyV9Y=&frIzN?Fsu}TVqbYH<0r@0qoz76_C6*~|I_gW{fog(bnwv!eqNgm zM2WV3i9wvHz&$E<_h)z1A zo?H`^$mpbZ6LQ!P8fYh{*}RsP8MFMwLP=roKy(LCA3com1+4BCd@e8H;W|yyG6Q%H zcxW~;c}6u?Dt6k$AbNU<@5>Jx$!z;+);kMim?WqrGki)P^7U}y_b2jd%?E+^K)-lJ z9~+_!w~=PPpOE$Ao!Y_-8>;apc4+27<*yrw4%y3$z2ll=ovOlVrWt&uYz=FcEk2b$ z?V~kZf*M@#@l)Fn=*w$R>QtdX^?dPXkRm#1+rP~Mg9i0ByYL{Rmh@5vr~Jte(|6AF z15-6XUdz|anNF!z26DKo2po5}fQA@*tW_Z%k-tvT*>8{6frln4NS*^&RsatB%&@5D z7>G8_;XlKrcOyu;Bj++p+4LlfinD zFE-=vas2{#hCAl>e1i)OIF$g-b0{u6_wiwa5;wO~PHV}0k1VsR{GA2(Uo<~PLAvK& z5@dp7*PYsmRY)+92fLy&VEv9NnG)?gyhTd_^gp329%rooECT(pH8e8bXXfTti{Rvx zhDLolzhMm$$R{XiYLbAxAkbIfUINA2DKgP=&eJ`Q;Qca)-E=o-ZDi;uc zwi0m4duw#{llAS7179pHA3;Rdol76$brE1jK#V>B62s0iUjk|zlv8FHn(DrTR&&?a z)ls?3R2k~I@o-4V75^cLPyn%kC}(q&S$8e#IMK~;5K%G?6mL#!q~%HvzNhAJCgl(P z2D%9>WWX~FrJjHJa$L-}s^MdUSkiAy8fqGA{`hxARas*oHU!=bsBspHK?9(#hC#g{ zur-W){Z*t3>{zE}3Uu&K7QJ6huD_23KIj)XflyjY5vYX=f<;RvrdNrtLLREC7t%_J zeHrttR`P(tqzXixfP~?iQ5W#3J0FF{#3~~dZW|H<-Qz;qc79%7MS1zqcbdK6TM#{n zGbb>oIqa={u*PdaG&gH_rKRX|CS?&q#%zOS2bCJDDz`1RdFNJ|QUw&u2k|OTv7^=F zDJ*Y{2PV}L+{B!u*G;csHo})xZt{;_?)xynuuxit|Mmf>9(5 z4?-BrHNPF>)pJ{Qkd5>+7&DwoH|JtXW+o;jptUv6l~utS6PN_#F^hVP$dF{UUZdID z+3O2btB*dKEQpgcd1VQVdGAltV+_d0pdD%Qq$jRLL~Y;@?;FZtC7sl~DfD)M_+OYV zu8T4YT-icpKjn0&r|M55)rT)DNbG?B71+#(un5Jc9{RU=@fyF06)-G4lQg}32ZVe; z)ItDQ>V#%K;Lk_`kUodB#oO84of@72%6;-VIr0^m%E&q%0<~6Bq$?UY&yguGiIeVy z>o*UrXng~Ab1PEBZ^!^LKH>n7tLWbcW9?7*BCUtz71bycKI5{{q|EF_%s$T~JnU%% z!O|UVvg(=a6jl(*D@W^dYNUS<m`Wxav4!9MBkRbV5K3MTeaz-MTlxs-k77j`v`=~Emn7V($nFB(BJz(@JAOI+X z`>!EbqvvKG$BAFRcwctuaoTdv^~J6m_<{`(I_KGBvxd3Sy|#S>eO!aov&O(lk{y9K zATSJog>RdM;sgaLDX9txi&>-lV?CK@O+SvR!c*r|3ndDzXC|bgirCSVLgg=&zfZ7_ zm&@CO$*%1f#}g!ds9AD02l6dkKY4=t2?a2C6N5s{nEm+rRV_)~jx=`lhvJ>=KVCmv2tg9Q;}U}czu4ty->^>IS4o&HJp*Y`F$Y`wf8(7N1Fp}}5xMz0XCeT9VuvOd zJQ)0l?UcPtDH?&TQ>UW8A4Sb8D-GmuAF`=|f(|7qSbSoNl!dpXZ`YQ0=%dH1C+&IG z9Kb4zd-xoGfFE@J?=epk8a?)|hZ{fq1%zjceg)t6Wk{`jnl@;H9SQ;RfC3^+D#{Tr z&O`eXNBV(_f^*BKk!LGwhfp57#ROIhMRi28RT!6~?uUB8>KTk{DT;?-+ZaG)cY6CS z9+Yg3rWy_bSq9xgwpwWjgfc=+N#3BVaAve@No86udhJD9tTC^z(J-#tdorK&j)^fU z8w#EqMO(l%-FykNOHJ~ug9s1GVS`H7g(}@jg(qMurA}jo?3gL#50#U91EGq^uzuLD zE{924;tJ3j5xrUp0_%8ItZjCF=m6El)v_(1&{M>k0GMxU?^kB{OVBiOc7*{S$ELlp znM@+r&EJE@2KQmQ*FB!c(u{Km%TcnHec`h8ZG337MSAy>4#p?k@GnjaUz_cRG zBcYgp{_ywj#JXX-H(0B`6*u@{#WVa-&`bppk#E~^K=>{%`PDiuG@AB12>kY3dg<=m zkK<3}S@Rf#PvSW#QfP=9m;$DCg z#-!EoZRA(Xy>896x1s1=Je8?LFi{}{10W&+WE4*Vs73$R>n9s1CVm8QU9OS&We_cX z$7F!MGu{Prwx#bd>G#*t3X%F-M1t!#i^&wfX=Nrmt$%a$DK;6%d=_mD@fPlsB*_x~ z=C)j8k)@*-HmJ}4d2Wn;gN}N~{lUsD*(cEV*jO`hzrXOSR9RPX30+@;{I}FEAJoC> z54sti!VU=2K^;A!u~U`C>doECiVBTOPzZvby+noT^?G?(+4xdPU7hgy>vfxN;V6qY zGJ(w>g0z9!m_f+oL9lKBmerQW8b7|}b4^5>Sz}xc96<$a{$oA_ues&covw|e_#yQi zq6p8Oi$Yc{)ExY&`|Y}<^15$v!#&jq1>0RzdCJs z_(qfubuG6&$@~RYSYrS9c+ZprMq$m`_J?z6uM&206i( zaS~GWm8Sr&fUG(e1hX*B{B6(Ams^?!xjMeCc+;LKw{2zypcF7-k;P6;_%7gD-!GfXL&G4r%UxLV!=ep_5Vyeu(Sh zC*8gRw+FoKa!QV6PDvIMXy8U5$x#$$_u{SfJ|~={5a&g8TWf&zB}o1@EG-QJjqyCb zB7OS&MrUc@BEE9R8E%BH_b%;*|9uHM!tbZa-Jh(#COBW$Q2CzqHVk1}b;us&b(dP9 zsy|%3(H(P}K3eKe%}n)cL`pAxT;=5_UHpSD2CN~S8)dJp{Qdm8*0Wyqhn%r{^k}Uq8@Y>KuVn; zU*1IjMi6(2H*Iq3;|lqb6o>|Of5%v^N}Kr5=jG+nz@;8AgY`p0cpMuV8fM#GJRim* zKWsCkD1|P;YQ>pIi$DwZQ{Rs+;z&OQQ?Kw%Zt(F}cZkk)T=W8H%fK0zKU9dX6TnMr zu_E}`)1#&=-?a~JxMK@ncaLrQ6HnJ^>0!)intNi1#p^VPVpfCPnyXp)wu_6)l$zus zPY=@mQax=F5rMD2;nsKejGqvh&3eeG6x#Mg<>^dc?u|BGY!am*?(wE<^)5)Mb|1HG}KD^@0(TIn1-3%XOI7m&Vn@N!$h#b0J-2$kQRQaaC^~vRJtlUtYOKp zZ1H*?p3&EbJsy@HD9uFrA#7je*QXb1U%&8I89Hto0{e8&^k!dPY{s4V^2Jbh>?=M@ z>})7#JHNt}-Nz%-yXd@Wf{RSBo36SlAv@UfF7-E>@4j}{j?fezJ;*+lWEwe1TDawn)^NEt?NKNwBSzDJ@1_ zBiBFX9((dB12l#d(>0e%1IR0R;;3$CoM&K?V5S)jeoszpstk*{4(qc;x2k?B{Q%_! zupEQ$oI3#swnC|p zkuYLX-DbJf&sn9O5gkZXKx26*Dmv=@hlZVs(i&`dL8KXM;aq-I`%DOvuf1BPToDV0>;e6TyXUML}Vh3R+zrUo}8*f$^37U&U4MSd$-sd zltAl39^(3La;74m_1_&X>rg*=q5HA{m{JYq_g2J{#VZd*>_>pY)yS`(bF6-_>Fr-< zdjIcvyIR0crnuPHHTQl2`vQAMi0%nxj3=BrmXTy;X69kG>^VqPs5c)3t8ZYjrPId< zCLkxn*{T5pr15%IQ|C+{S4$TzdIB6?{9K1G54q|m=QR5G*?VJ433Ua+VE&VHwxh{d zo&0yeYi4f498+n?e7LZTFh5o!}HBRZnXg>A)aQ!Q;p+S@!l5oQ0mD zd&t34jf>zzFH5r8>({+{XFS}O!oJZ9zdM!Ff4DPu8~#1IP@2-Rv4{@$Kypl~{A$J9 z3c(_HuKBXeS{3;leYvx%@iw~~w@-kX92yFp>^1U+$Y%BlI_TI!cYN}XS~ ze?-qSP-zI^?oeQAb|6ZS21VK_V2=T_GK}Vy)ZAN16csb3J?w+Hv=E|LWD>LPx}mt> z6nAIVW56c$x*9C`wUnER#gQ}HdKOfx4Bx5xqQKZ~=bW733 zIosPjKQOsw^}PBVrGzmM+nZMJvBzgVs}hC$oJyixTHVOW=5LLL*CM};42Th@@~wsE z`(B%Jemqp&y42Pk_`0&Ell|DqBypBbqxuz#Wc)>#0$%w1*DvYtBYkmvFAJ0BxnGd{nnHiwrQp=yoszFsS&ntV{ zTL_ub$Q=ed9jeZm2-1nPm27%SvnUCv5!K%*@aLHL<75&-A8EY@8y5=5;%H?<8Wm31 zG;B-ul5xq+u%&z3VbE6kKq+J?{vU!@3nrHbbNPK1Kxh}_5_NwZ8UQvT$S|vuvjw2x zULg^zsILo{;j;vWLGwQ?3C>%~%ZEIL%d%_G7yBPQ#Esr|{N!^4`9Y~MqX7Rwfvo%J zf0<(~$hC_mf;ZMsW2@(|k4v-vaO4LFJEG(+3EZ;cd-oi9%6+e?c z!e@W##?sQKVfXhMPk6{X0a$wm64<~E7gG`hJ7|S-Q(SLO@9P!0fApvhj6`D7TG>-K zF>6nPWXF!%9}d5rs+VqSFEa@>zce5~AO3&^b#;FsqKz5_`dV_!b$TO5h zpN7|Pqu1J>-Y-($i|vZS=7wdr#LczW1R>HF=^XWb93$spv+q}@m3*E)?f zEB)wS9{d+9&VMsiqi2J5x<26DdKHoB#Q>s+;i^CQRoucEbPqM|D4h<_2i)^x3QAr-*sYiy{ZW|E?IOqc0N-?dCYg^Y*cDUs1bnZ2>D#QJu%W$EWqaCGnc9Dlli zQ#>iWyu7aE-8>eGg)inhcqF>4I3LnTqQj-Z{n)|%K+zo1bpzIXRQB}rbV-hKjur;V z>Y1CzfzjG=0L6_0GsC;BeeW{IFh$AG3p>Z>!k^kh&k@9bWR9HD?$n_!Ete2O_EThA zFgMw`XmMt#*KMKAM{E@idDgWQv{o>fFc0s(&uz|uVBKh2-A6x_gP)UwS9kWVf`1B@ z@V~bcTsRXfW%p=OP!*^9!Popx-{Q!Y(SZu+GNpn-E8|PgDr>Y5+ltBFBh*d%pi7>| zXyViaFd#*r)_-wI@^^ePk_4+ZeR}!;KfDKE%csiJ7k}bhXoiAh81IFHw}6sHk&Hwt zkF@98ue_2qiV!`hYbv>bQsQLcvq(}+$ufRvx2(lafsS6B8+z@VbGH{JtkJnQERuGA z!pbFx8~*{;p~!A)QUCh@*guhG2Aij4WSu%@8#H+A>xqG>I=v?**H&GDC#@$hhy#Ug zcH7?VWJ%2J1OHW)9lWPx>!Q)$4ntHqS|4zov!jh-SFeKSXl8<%$Li9r8+a$|W#4{; z!kEGKO%U8tfQi%=>@OhE@g%wTk0}jbdYILWQH%?m=|9($PGpg+Kv|MSbte-@5aa)j zr(gG4l_Q4;IH`vkT&s3!Gm&6Lg>AW!Y|oEg&!>Nj`c8gk*+R)>XnqehN|c(8GBhWx z8x`Q&LZcboLc$z$1}VwGrJHM-qxo3fkU_B1FC^< zJJa6>K-coTmQ z($FB-&)#c9pf~q~<8J|@62xq;0i87VKTZk$y=bP1`BjjZ`Vc)Qd9wgCtBkx{lK zbTA&IH0R9kSX7`{0Z*lnd*5MR!*(Az+wQ$DtZ@(UVPQ^=ZA-S7;X5v@hsAV*tYUX| z=hAw?$QOn3l5o2yVOiH6ar){ z4X`JNAHqIRyg%)z|D?L4g7W>2SvAk)M!x&YL}w-hg{lgT^*C8vd=IaKbC2ABJTiT* zsV8$Vcg6^jTb(7pLV2G__`x%4&QkZ^&&Y6D3;J|n4?`7ryO63Xe{(kRDu;x<-q6YY z#m2LtdjFBY0DWs@J>ZWH!Z&s9$LVbQF$!p=NdXs?64^86Jl^m{hCu#m1%TWhY;4t=nAtv;Xl7V)->XK$jR*!r}m2TuwGeKz|kn&)$0(bz3l!qL(b1 zw%ud_krD{pN|vXEjBRvAMn(>hQy1Nt3~z5_JFj1m0r3yltKbTx=8AEv2@VAOQ&ZMb Js#35D`!82d#CiY# diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 80566ece9e43373a6ac60d448e03097ad2643b02..a7598b39a5348ea732d446dfb00f340b09c20fe4 100644 GIT binary patch literal 94456 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%0A$ZhnQ{L+im1067BH*EQCa(4LwYut8y- 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 z z+w!Q_dD|V#v$Cy?gyIlDZ-%vBdP7*1WfjV-X3Vp)Iw}E~(G&Z7!rO$OJ3J(yB?&~x zCUxg&=&4`5RA)|;W;FKg4_=uG96te$dzxKa+k)3I2?JNUL-oF zr$!e}x2tkvGY?R|XkXM@m?D@LgY9>Ze|ti7;jc%(JrF{fwe;001s?+Gbhw87*)kWz z?79$NwcA`76@ z`qqwqS5}%Ge&YNGeqKjMwkUa}b`*q_UwlL2yX-x8?K7?wXHV_hca&g zCKX`Bkil(geo)wGPC&29gv3J5rV+-F;b?cc+=MkyXAz7Shi_g$^7v4t-=?Onj;$@C z6Y1oQGaX2_wEbAdSyTgHKb3FI^dh75$C?-(_Mbc6`&$JOo*^$5FAje0jt2LNF*|D? z!WG45B}Wy9vdK@5%6JUCKl%O@V{N}drL`F0;;lgfoflGl(1K~}8*B5a8R=IM-yifV zEt7FQaWoLo8N7XYU1}n6kO}1+jLMg<-WSc4@nq{1TMXctyMwy6!yuJR5L2!>q(Jlq zB_}7V9jk92eYephswykyrOpgzsR$^R>eYpO|v$fduyIYTIOQQ34 zyN(LjFKw9wEX*u0${GO6Y2FYtl0~^n3Tt=1v=L<$6grf<;qEei^Uma}c#s zrpbKw_(%i6TuMr+-CgeCypsc%JcZn6frbm&4$#bbKs)w%g_}h6vxSA53T9Sj zyyND2`E$?Y3;^X*;XK#uus(Gz{6nUiqLo?E z__6I_09nI*A*_^=IW_URt$?#|?udi1&w*5>HVk0iitmTKj;`+YCPSqC{v}KPj3p

A)tM*q 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

  • 6j>aP;RdsU{ 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 diff --git a/icons/obj/pillows.dmi b/icons/obj/pillows.dmi index 276e8cb3c5fb34c00f13d27024a0d4146f3fc1e7..b11e83ee61771f24015a236b20e46e69f4786971 100644 GIT binary patch literal 7380 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 literal 5881 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 Td^f_rr3I)dX(^T|Siku{naNK# diff --git a/maps/stellar_delight/stellar_delight1.dmm b/maps/stellar_delight/stellar_delight1.dmm index 4a75431dda..f8b4bfdb6f 100644 --- a/maps/stellar_delight/stellar_delight1.dmm +++ b/maps/stellar_delight/stellar_delight1.dmm @@ -5791,8 +5791,12 @@ /turf/simulated/floor/tiled/dark, /area/security/lobby) "lC" = ( -/obj/item/bedsheet/bluedouble, -/obj/structure/bed/double/padded, +/obj/item/bedsheet/bluedouble{ + dir = 1 + }, +/obj/structure/bed/double/padded{ + dir = 1 + }, /obj/structure/curtain/black, /turf/simulated/floor/carpet, /area/stellardelight/deck1/dorms/dorm8) @@ -12874,8 +12878,12 @@ /turf/simulated/floor/tiled/steel_grid, /area/assembly/robotics) "AP" = ( -/obj/item/bedsheet/bluedouble, -/obj/structure/bed/double/padded, +/obj/item/bedsheet/bluedouble{ + dir = 1 + }, +/obj/structure/bed/double/padded{ + dir = 1 + }, /obj/structure/curtain/black, /turf/simulated/floor/carpet, /area/stellardelight/deck1/dorms/dorm5) @@ -21290,8 +21298,12 @@ /turf/simulated/floor, /area/maintenance/stellardelight/deck1/exploration) "Tc" = ( -/obj/item/bedsheet/orangedouble, -/obj/structure/bed/double/padded, +/obj/item/bedsheet/orangedouble{ + dir = 1 + }, +/obj/structure/bed/double/padded{ + dir = 1 + }, /obj/structure/curtain/black, /turf/simulated/floor/carpet/purcarpet, /area/stellardelight/deck1/dorms/dorm7) @@ -21619,8 +21631,12 @@ /turf/simulated/floor/tiled/dark, /area/security/armoury) "TN" = ( -/obj/item/bedsheet/orangedouble, -/obj/structure/bed/double/padded, +/obj/item/bedsheet/orangedouble{ + dir = 1 + }, +/obj/structure/bed/double/padded{ + dir = 1 + }, /obj/structure/curtain/black, /turf/simulated/floor/carpet/purcarpet, /area/stellardelight/deck1/dorms/dorm6) From 8b2c766db586b881333094f6fdad901fa0af2e02 Mon Sep 17 00:00:00 2001 From: SatinIsle Date: Wed, 20 Nov 2024 13:11:44 +0000 Subject: [PATCH 085/109] span_notice --- code/game/objects/structures/stool_bed_chair_nest/bed.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 0d71e51820..ffb9073731 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -175,7 +175,7 @@ set src in oview(1) if(!flippable) - to_chat(usr,"\The [src] can't face the other direction.") + to_chat(usr,span_notice("\The [src] can't face the other direction.")) return if(!usr || !isturf(usr.loc)) From e123df8cdc8fb7cb81506193aaf6cd1b6522e9ce Mon Sep 17 00:00:00 2001 From: Guti Date: Thu, 21 Nov 2024 00:00:05 +0100 Subject: [PATCH 086/109] Fixes --- code/datums/diseases/_MobProcs.dm | 2 +- code/datums/diseases/_disease.dm | 4 ++-- code/datums/diseases/advance/advance.dm | 7 ++++--- code/datums/diseases/advance/symptoms/heal.dm | 2 +- code/datums/diseases/cold.dm | 4 ++-- code/datums/diseases/flu.dm | 4 ++-- code/modules/events/disease_outbreak.dm | 15 ++++++++------- code/modules/events/event_container_vr.dm | 1 + code/modules/organs/blood.dm | 2 +- 9 files changed, 22 insertions(+), 19 deletions(-) diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index b664a349a6..d223679aa6 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -80,7 +80,7 @@ if(prob(15/D.permeability_mod)) return - if(nutrition > 300 && prob(nutrition/10)) + if(nutrition > 300 && prob(nutrition/50)) return var/list/zone_weights = list( diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 6ae5cdbb9e..18bff1bc9e 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -91,7 +91,7 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease)) var/cures_found = 0 for(var/C_id in cures) - if(affected_mob.reagents.has_reagent(C_id)) + if(affected_mob.bloodstr.has_reagent(C_id) || affected_mob.ingested.has_reagent(C_id)) cures_found++ if(needs_all_cures && cures_found < length(cures)) @@ -106,7 +106,7 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease)) if((spread_flags & SPECIAL || spread_flags & NON_CONTAGIOUS || spread_flags & BLOOD) && !force_spread) return - if(affected_mob.reagents.has_reagent("spaceacilin") || (affected_mob.nutrition > 300 && prob(affected_mob.nutrition/10))) + if(affected_mob.bloodstr.has_reagent("spaceacilin") || (affected_mob.nutrition > 300 && prob(affected_mob.nutrition/50))) return var/spread_range = 1 diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 4e593ea7f1..308d1c4de0 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -16,6 +16,7 @@ GLOBAL_LIST_INIT(advance_cures, list( spread_text = "Unknown" viable_mobtypes = list(/mob/living/carbon/human) + var/s_processing = FALSE var/list/symptoms = list() var/id = "" @@ -36,7 +37,7 @@ GLOBAL_LIST_INIT(advance_cures, list( return /datum/disease/advance/Destroy() - if(processing) + if(s_processing) for(var/datum/symptom/S in symptoms) S.End(src) return ..() @@ -46,8 +47,8 @@ GLOBAL_LIST_INIT(advance_cures, list( return FALSE if(symptoms && length(symptoms)) - if(!processing) - processing = TRUE + if(!s_processing) + s_processing = TRUE for(var/datum/symptom/S in symptoms) S.Start(src) diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index f02ad95c32..e3c2feed54 100644 --- a/code/datums/diseases/advance/symptoms/heal.dm +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -144,7 +144,7 @@ Bonus level = 5 /datum/symptom/heal/dna/Heal(var/mob/living/carbon/M, var/datum/disease/advance/A) - var/amt_healed = (sqrtor0(20+A.totalStageSpeed()*(3+rand())))-(sqrtor0(16+A.totalStealth()*rand())) + var/amt_healed = max(0, (sqrtor0(20+A.totalStageSpeed()*(3+rand())))-(sqrtor0(16+A.totalStealth()*rand()))) M.adjustBrainLoss(-amt_healed) M.radiation = max(M.radiation - 3, 0) return TRUE diff --git a/code/datums/diseases/cold.dm b/code/datums/diseases/cold.dm index c6b6cf0f17..4e942e0d2b 100644 --- a/code/datums/diseases/cold.dm +++ b/code/datums/diseases/cold.dm @@ -3,8 +3,8 @@ max_stages = 3 spread_text = "Airborne" spread_flags = AIRBORNE - cure_text = "Rest & Spaceacilin" - cures = list("spaceacilin") + cure_text = "Rest & Spaceacillin" + cures = list("spaceacillin", "chicken_soup") agent = "XY-rhinovirus" viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/human/monkey) permeability_mod = 0.5 diff --git a/code/datums/diseases/flu.dm b/code/datums/diseases/flu.dm index 6a30af6f85..9423b23f43 100644 --- a/code/datums/diseases/flu.dm +++ b/code/datums/diseases/flu.dm @@ -2,8 +2,8 @@ name = "The Flu" max_stages = 3 spread_text = "Airborne" - cure_text = "Spaceacilin" - cures = list("spaceacilin") + cure_text = "Spaceacillin" + cures = list("spaceacillin", "chicken_soup") cure_chance = 10 agent = "H13N1 flu virion" viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/human/monkey) diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm index 25e1ea5c4f..6f5e2b9497 100644 --- a/code/modules/events/disease_outbreak.dm +++ b/code/modules/events/disease_outbreak.dm @@ -24,7 +24,7 @@ GLOBAL_LIST_EMPTY(current_pending_diseases) else stack_trace("Disease Outbreak: Invalid Event Level [severity]. Expected: 1-2") virus = /datum/disease/cold - chosen_disease = new virus() + chosen_disease = new virus else if(severity == EVENT_LEVEL_MAJOR) chosen_disease = create_virus(severity * pick(2,3)) //50% chance for a major disease instead of a moderate one @@ -37,7 +37,7 @@ GLOBAL_LIST_EMPTY(current_pending_diseases) GLOB.current_pending_diseases += chosen_disease var/list/candidates = list() - for(var/mob/living/carbon/human/G in player_list) + for(var/mob/living/carbon/human/G in human_mob_list) if(G.mind && G.stat != DEAD && G.is_client_active(5) && !player_is_antag(G.mind)) var/area/A = get_area(G) if(!A) @@ -48,17 +48,18 @@ GLOBAL_LIST_EMPTY(current_pending_diseases) continue if(isbelly(G.loc)) continue - if(!G.CanContractDisease()) + if(G.species.virus_immune) continue candidates += G var/chosen_infect = rand(3, 5) while(chosen_infect) - var/mob/living/carbon/human/H = pick(candidates) - H.ContractDisease(chosen_disease) - candidates -= H - + if(!isemptylist(candidates)) + var/mob/living/carbon/human/H = pick(candidates) + H.ForceContractDisease(chosen_disease) + candidates -= H + chosen_infect-- //Creates a virus with a harmful effect, guaranteed to be spreadable by contact or airborne /datum/event/disease_outbreak/proc/create_virus(max_severity = 6) diff --git a/code/modules/events/event_container_vr.dm b/code/modules/events/event_container_vr.dm index 71911302b7..1410f4b17c 100644 --- a/code/modules/events/event_container_vr.dm +++ b/code/modules/events/event_container_vr.dm @@ -108,6 +108,7 @@ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Blob", /datum/event/blob, 10, list(ASSIGNMENT_ENGINEER = 60), 1), new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Wave", /datum/event/meteor_wave, 30, list(ASSIGNMENT_ENGINEER = 15), 1), new /datum/event_meta(EVENT_LEVEL_MAJOR, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Disease Outbreak", /datum/event/disease_outbreak, -30, list(ASSIGNMENT_MEDICAL = 30, ASSIGNMENT_ANY = 1), 1, min_jobs = list(ASSIGNMENT_MEDICAL = 2)), )) #undef ASSIGNMENT_ANY diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm index 3364d33068..ea0661c8cd 100644 --- a/code/modules/organs/blood.dm +++ b/code/modules/organs/blood.dm @@ -296,7 +296,7 @@ var/const/CE_STABLE_THRESHOLD = 0.5 var/datum/disease/D = ID if((D.spread_flags & SPECIAL) || (D.spread_flags & NON_CONTAGIOUS)) // You can't put non-contagius diseases in blood, but just in case continue - ContractDisease(D) + ForceContractDisease(D) if (injected.data["resistances"] && prob(5)) antibodies |= injected.data["resistances"] if (injected.data["antibodies"] && prob(5)) From fe7e26a09cc4730903e936c7805acdc9fec02636 Mon Sep 17 00:00:00 2001 From: Guti Date: Thu, 21 Nov 2024 00:08:07 +0100 Subject: [PATCH 087/109] Better not --- code/modules/organs/blood.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm index ea0661c8cd..3364d33068 100644 --- a/code/modules/organs/blood.dm +++ b/code/modules/organs/blood.dm @@ -296,7 +296,7 @@ var/const/CE_STABLE_THRESHOLD = 0.5 var/datum/disease/D = ID if((D.spread_flags & SPECIAL) || (D.spread_flags & NON_CONTAGIOUS)) // You can't put non-contagius diseases in blood, but just in case continue - ForceContractDisease(D) + ContractDisease(D) if (injected.data["resistances"] && prob(5)) antibodies |= injected.data["resistances"] if (injected.data["antibodies"] && prob(5)) From 61d13fd4ff522a86af3a677d3736496b9c81e4c6 Mon Sep 17 00:00:00 2001 From: Guti Date: Thu, 21 Nov 2024 00:20:38 +0100 Subject: [PATCH 088/109] Spelling mistakes --- code/datums/diseases/_disease.dm | 2 +- code/datums/diseases/advance/advance.dm | 2 +- code/datums/diseases/roanoake.dm | 4 ++-- code/game/objects/items/devices/scanners/guide.dm | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 18bff1bc9e..22cdabb1dd 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -106,7 +106,7 @@ GLOBAL_LIST_INIT(diseases, subtypesof(/datum/disease)) if((spread_flags & SPECIAL || spread_flags & NON_CONTAGIOUS || spread_flags & BLOOD) && !force_spread) return - if(affected_mob.bloodstr.has_reagent("spaceacilin") || (affected_mob.nutrition > 300 && prob(affected_mob.nutrition/50))) + if(affected_mob.bloodstr.has_reagent("spaceacillin") || (affected_mob.nutrition > 300 && prob(affected_mob.nutrition/50))) return var/spread_range = 1 diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 308d1c4de0..fc6b9be620 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -2,7 +2,7 @@ GLOBAL_LIST_EMPTY(archive_diseases) GLOBAL_LIST_INIT(advance_cures, list( "sodiumchloride", "sugar", "orangejuice", - "spaceacilin", "glucose", "ethanol", + "spaceacillin", "glucose", "ethanol", "dyloteane", "impedrezene", "hepanephrodaxon", "gold", "silver" )) diff --git a/code/datums/diseases/roanoake.dm b/code/datums/diseases/roanoake.dm index 91d476b3c7..412ff16ae7 100644 --- a/code/datums/diseases/roanoake.dm +++ b/code/datums/diseases/roanoake.dm @@ -4,9 +4,9 @@ stage_prob = 2 spread_text = "Blood and close contact" spread_flags = BLOOD - cure_text = "Spaceacilin" + cure_text = "Spaceacillin" agent = "Chimera cells" - cures = list("spaceacilin") + cures = list("spaceacillin") cure_chance = 10 viable_mobtypes = list(/mob/living/carbon/human) desc = "If left untreated, subject will become a xenochimera upon perishing." diff --git a/code/game/objects/items/devices/scanners/guide.dm b/code/game/objects/items/devices/scanners/guide.dm index 403a81f974..68bd33d8e8 100644 --- a/code/game/objects/items/devices/scanners/guide.dm +++ b/code/game/objects/items/devices/scanners/guide.dm @@ -102,7 +102,7 @@ if(D.visibility_flags & HIDDEN_SCANNER) continue else - dat += span_bold("Viral Infection") + " - Inform a Virologist or the Chief Medical Officer and administer antiviral chemicals such as Spaceacilin. Limit exposure to other personnel.
    " + dat += span_bold("Viral Infection") + " - Inform a Virologist or the Chief Medical Officer and administer antiviral chemicals such as Spaceacillin. Limit exposure to other personnel.
    " if(robotparts) dat += span_bold("Robotic body parts") + " - Should not be repaired by medical personnel, refer to robotics if damaged." From 617f882b50ee0e300ad5fbc12cdab824630fdc5c Mon Sep 17 00:00:00 2001 From: VerySoft Date: Thu, 21 Nov 2024 01:39:56 -0500 Subject: [PATCH 089/109] Turkey --- .../simple_mob/subtypes/animal/turkeygirl.dm | 101 ++++++++++++++++++ icons/mob/turkey.dmi | Bin 0 -> 3910 bytes vorestation.dme | 1 + 3 files changed, 102 insertions(+) create mode 100644 code/modules/mob/living/simple_mob/subtypes/animal/turkeygirl.dm create mode 100644 icons/mob/turkey.dmi diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/turkeygirl.dm b/code/modules/mob/living/simple_mob/subtypes/animal/turkeygirl.dm new file mode 100644 index 0000000000..918830f1fe --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/animal/turkeygirl.dm @@ -0,0 +1,101 @@ +//turkey - sprites and writing done by VerySoft +/mob/living/simple_mob/vore/turkeygirl + name = "turkeygirl" + desc = "A feathered woman! She looks like some kind of plump turkey!" + tt_desc = "Meleagris gallopian" + icon = 'icons/mob/turkey.dmi' + icon_state = "turkeygirl" + icon_living = "turkeygirl" + icon_dead = "turkeygirl-dead" + + health = 100 + maxHealth = 100 + + has_hands = TRUE + + faction = "turkey" + + response_help = "hugs" + response_disarm = "pushes" + response_harm = "punches" + attacktext = list("pecked") + + has_langs = list(LANGUAGE_GALCOM , LANGUAGE_ANIMAL) + + meat_amount = 100 + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/chicken + + ai_holder_type = /datum/ai_holder/simple_mob/passive + + say_list_type = /datum/say_list/turkey + + vore_active = 1 + vore_capacity = 2 + vore_bump_chance = 10 + vore_pounce_chance = 10 + vore_pounce_maxhealth = 999 + vore_ignores_undigestable = 0 + vore_default_mode = DM_SELECT + vore_icons = SA_ICON_LIVING + vore_stomach_name = "Stomach" + vore_default_contamination_flavor = "Wet" + vore_default_contamination_color = "grey" + vore_default_item_mode = IM_DIGEST + vore_standing_too = TRUE + +/mob/living/simple_mob/vore/turkeygirl/init_vore() + ..() + var/obj/belly/B = vore_selected + B.name = "stomach" + B.desc = "The hot churning stomach of a turkey girl! The doughy flesh presses inward to form to your figure, thick slime coating everything, and very shortly that includes you as well! There isn't any escaping that constant full body motion, as her body works to ball yours up into a tight little package. Gurgling and glubbing with every shifting movement, while her pulse throbs through the flesh all around you with every beat of her heart. All in all, one thing is for certain! You've become turkey stuffing! Oh no..." + B.mode_flags = DM_FLAG_THICKBELLY | DM_FLAG_NUMBING + B.belly_fullscreen = "anibelly" + B.digest_brute = 1 + B.digest_burn = 6 + B.digestchance = 0 + B.absorbchance = 0 + B.escapechance = 15 + B.colorization_enabled = TRUE + B.belly_fullscreen_color = "#521717" + +/datum/say_list/turkey + speak = list("Gobble!", "Gobble gobble!", "Gobble gobble gobble!", "Give me something to be thankful for~", "Could use something to gobble~", "Why don't you make a pilgrimage over here and give me something good to eat?", "I want a treat... I could bite you too if you like~", "What's your favorite time of year?", "Autumn is the best time of year~", "You just gonna let a girl go hungry?") + +/mob/living/simple_mob/vore/turkeygirl/update_icon() + . = ..() + if(stat == DEAD) + return + if(vore_fullness == 2 || nutrition >= 5000) + icon_state = "[icon_living]-2" + + else if(vore_fullness == 1 || nutrition >= 2500) + icon_state = "[icon_living]-1" + if(resting) + icon_state = "[icon_state]-resting" + +/mob/living/simple_mob/vore/turkeygirl/attackby(var/obj/item/weapon/reagent_containers/food/snacks/O as obj, var/mob/user as mob) + if(stat) + return ..() + + if(!istype(O, /obj/item/weapon/reagent_containers/food/snacks)) + return ..() + + if(nutrition >= max_nutrition) + if(user == src) + to_chat(src, "You're too full to eat another bite.") + return + to_chat(user, "\The [src] seems too full to eat.") + return + + user.setClickCooldown(user.get_attack_speed(O)) + if(O.reagents) + O.reagents.trans_to_mob(src, O.bitesize, CHEM_INGEST) + adjust_nutrition(O.bitesize * 20) + O.bitecount ++ + O.On_Consume(src) + if(O) + to_chat(user, "\The [src] takes a bite of \the [O].") + if(user != src) + to_chat(src, "\The [user] feeds \the [O] to you.") + playsound(src, 'sound/items/eatfood.ogg', 75, 1) + update_icon() diff --git a/icons/mob/turkey.dmi b/icons/mob/turkey.dmi new file mode 100644 index 0000000000000000000000000000000000000000..8f7d1db729aaebe8dc388e2d3aa4950039616451 GIT binary patch literal 3910 zcmV-M54rG(P)005u}0{{R3yb+fl0001-P)t-sz`($h zb!5Ywg*ZD(84U&@5eQ38Vlf{SK`9#m005d74RjF-qn2mb$B9=B2pJI#Ar}!rGAe5} zGFC%4YgI_Nn1zdSWR6Hfj&Wcr84nu{2NVkh#H5j1Nj`RBR-J-!d0|qTeQaw~MoKv_ zyPb=adu<#P4|HBpI4dMUGb^BMQUA@eUoaWQaYmI@HHbqXFcAj%zGrAE5>6lvapAUq z00001bW%=J06^y0W&i*Hka|>DbVOxyV{&P5bZKvH004NLQ&wmo1C_A+>J+mlBiHkEO zv#1!PlZ!L0C^0t`#5TmHRJSO#xFj<#ofIvGBq=7x1|yOblVd|lYGMjPy&;NvWd&D1 z7jP5+0NYu1zk9lxzyJUZyh%hsRCt{2oQrnaxE6--CD;RWj6o*O1QF9TP1^|xCGY=k zXYVb^S6z$^N!L2Fo6v%6`Lk}8etvZ_`IEwf_-qDScs|6ROxOo7aOB}g4}uW~gf|er zXRGHRm|CykOrK7z2LyD074XKhm7?|hp6Qk&?8#A#0h9(pDA-{77yJqIMNCBx`M0aU z^U6TFJUemf)Jn<5|)8UW|h`Ilfiw*dO;FU{xhS%8F#`9cr4__9F0fKJk6goT5( z4DGO8iTHtkb2FdMzbxi+*_GPqJ{)lq-iS6*rqhKeA;dzO&jT~yViC-#cte#>^G>l3 z5@D;O(8WCuyU={`H}xd(Nh95-J|=paU!_a%7%C^iI)>{TYM2t}fJoJ3vx;NiPnJm{ zJ4zi;mH`|B=fkDK=E+n@L>9}OZ^H8KJ;?`20GOt!9gq%)B2kkS#%h%$Nt(t$xK87! z3n;FUrT_?sHBXi|5XM#1#{$m_!$<
    -9Rd0g3|zU=)U;5>^mP2uO;3hOf}r>cgq0 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 Date: Thu, 21 Nov 2024 01:47:38 -0500 Subject: [PATCH 090/109] fix up types --- .../mob/living/simple_mob/subtypes/animal/turkeygirl.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/turkeygirl.dm b/code/modules/mob/living/simple_mob/subtypes/animal/turkeygirl.dm index 918830f1fe..7f2ddba220 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/turkeygirl.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/turkeygirl.dm @@ -23,7 +23,7 @@ has_langs = list(LANGUAGE_GALCOM , LANGUAGE_ANIMAL) meat_amount = 100 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/chicken + meat_type = /obj/item/reagent_containers/food/snacks/meat/chicken ai_holder_type = /datum/ai_holder/simple_mob/passive @@ -73,11 +73,11 @@ if(resting) icon_state = "[icon_state]-resting" -/mob/living/simple_mob/vore/turkeygirl/attackby(var/obj/item/weapon/reagent_containers/food/snacks/O as obj, var/mob/user as mob) +/mob/living/simple_mob/vore/turkeygirl/attackby(var/obj/item/reagent_containers/food/snacks/O as obj, var/mob/user as mob) if(stat) return ..() - if(!istype(O, /obj/item/weapon/reagent_containers/food/snacks)) + if(!istype(O, /obj/item/reagent_containers/food/snacks)) return ..() if(nutrition >= max_nutrition) From bc8d817ed3df328aa3d904192d383a8b1d403d0d Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Fri, 22 Nov 2024 00:01:04 +0100 Subject: [PATCH 091/109] surgery firstaid bags can carry bone clamps --- code/game/objects/items/weapons/storage/firstaid_vr.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/weapons/storage/firstaid_vr.dm b/code/game/objects/items/weapons/storage/firstaid_vr.dm index ac7a0668dc..35bd4f4dea 100644 --- a/code/game/objects/items/weapons/storage/firstaid_vr.dm +++ b/code/game/objects/items/weapons/storage/firstaid_vr.dm @@ -71,6 +71,7 @@ /obj/item/storage/firstaid/surgery can_hold = list( + /obj/item/surgical/bone_clamp, /obj/item/surgical/bonesetter, /obj/item/surgical/cautery, /obj/item/surgical/circular_saw, From 6552b55a8b6ffb94663abf249a53ce0a1f796a13 Mon Sep 17 00:00:00 2001 From: Guti Date: Fri, 22 Nov 2024 01:26:17 +0100 Subject: [PATCH 092/109] Fix --- code/datums/diseases/_MobProcs.dm | 5 +---- code/datums/diseases/advance/advance.dm | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index d223679aa6..6505817fb5 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -178,16 +178,13 @@ return FALSE var/disease = tgui_input_list(usr, "Choose virus", "Viruses", subtypesof(/datum/disease), subtypesof(/datum/disease)) - var/mob/living/carbon/human/H = tgui_input_list(usr, "Choose infectee", human_mob_list) + var/mob/living/carbon/human/H = tgui_input_list(usr, "Choose infectee", "Characters", human_mob_list) var/datum/disease/D = new disease if(isnull(D) || isnull(H)) return FALSE - if(H.stat == DEAD) - return FALSE - if(!H.HasDisease(D)) H.ForceContractDisease(D) diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index fc6b9be620..6eda375458 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -362,7 +362,7 @@ GLOBAL_LIST_INIT(advance_cures, list( for(var/datum/disease/advance/AD in active_diseases) AD.Refresh() - H = tgui_input_list(usr, "Choose infectee", human_mob_list) + H = tgui_input_list(usr, "Choose infectee", "Infectees", human_mob_list) if(isnull(H)) return FALSE From 8f89cc46dcffa49e734c83aadcf8c274faeefa97 Mon Sep 17 00:00:00 2001 From: VerySoft Date: Fri, 22 Nov 2024 16:28:28 -0500 Subject: [PATCH 093/109] attribution --- ATTRIBUTIONS.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ATTRIBUTIONS.md b/ATTRIBUTIONS.md index 3e5639a521..abaf97a0b9 100644 --- a/ATTRIBUTIONS.md +++ b/ATTRIBUTIONS.md @@ -80,3 +80,9 @@ **Creator:** VerySoft (https://github.com/TS-Rogue-Star/Rogue-Star/pull/435)
    **URL:** [Website](https://rogue-star.net/)
    **License:** Permission granting in writing for use by Virgo and Chomp with proper attribution +
    +**File:** `icons/mob/turkey.dmi` +**Title:** Turkey
    +**Creator:** VerySoft (https://github.com/TS-Rogue-Star/Rogue-Star/pull/669)
    +**URL:** [Website](https://rogue-star.net/)
    +**License:** Permission granted in writing for use by Virgo and Chomp with proper attribution From 3dc0636ebb1c98bbc4082167d573ba8c9b769d05 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sat, 23 Nov 2024 19:01:23 +0100 Subject: [PATCH 094/109] no old spans --- .../mob/living/simple_mob/subtypes/animal/turkeygirl.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/turkeygirl.dm b/code/modules/mob/living/simple_mob/subtypes/animal/turkeygirl.dm index 7f2ddba220..9c29db15a3 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/turkeygirl.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/turkeygirl.dm @@ -82,9 +82,9 @@ if(nutrition >= max_nutrition) if(user == src) - to_chat(src, "You're too full to eat another bite.") + to_chat(src, span_notice("You're too full to eat another bite.")) return - to_chat(user, "\The [src] seems too full to eat.") + to_chat(user, span_notice("\The [src] seems too full to eat.")) return user.setClickCooldown(user.get_attack_speed(O)) @@ -94,8 +94,8 @@ O.bitecount ++ O.On_Consume(src) if(O) - to_chat(user, "\The [src] takes a bite of \the [O].") + to_chat(user, span_notice("\The [src] takes a bite of \the [O].")) if(user != src) - to_chat(src, "\The [user] feeds \the [O] to you.") + to_chat(src, span_notice("\The [user] feeds \the [O] to you.")) playsound(src, 'sound/items/eatfood.ogg', 75, 1) update_icon() From c80b0df3d4b7d32828b069d6941489a88508fe70 Mon Sep 17 00:00:00 2001 From: Killian Date: Sat, 23 Nov 2024 22:45:20 +0000 Subject: [PATCH 095/109] recolourable fingerless gloves parity --- .../loadout/loadout_gloves.dm | 5 +++-- code/modules/clothing/gloves/color.dm | 3 +++ icons/inventory/hands/item.dmi | Bin 35895 -> 35910 bytes icons/inventory/hands/mob.dmi | Bin 31054 -> 31210 bytes 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/code/modules/client/preference_setup/loadout/loadout_gloves.dm b/code/modules/client/preference_setup/loadout/loadout_gloves.dm index fa712ecd27..29f22840e6 100644 --- a/code/modules/client/preference_setup/loadout/loadout_gloves.dm +++ b/code/modules/client/preference_setup/loadout/loadout_gloves.dm @@ -58,7 +58,7 @@ /datum/gear/gloves/fingerless display_name = "fingerless gloves" - description = "A pair of gloves that don't actually cover the fingers. Available in classic black or recolourable white." + description = "A pair of gloves that don't actually cover the fingers. Available in classic black or recolourable white, with or without cutouts." path = /obj/item/clothing/gloves/fingerless /datum/gear/gloves/fingerless/New() @@ -66,7 +66,8 @@ var/list/selector_uniforms = list( "black"=/obj/item/clothing/gloves/fingerless, "black, alt" =/obj/item/clothing/gloves/fingerless/alt, - "recolourable white"=/obj/item/clothing/gloves/fingerless_recolourable + "recolourable white"=/obj/item/clothing/gloves/fingerless_recolourable, + "recolourable, alt"=/obj/item/clothing/gloves/fingerless_recolourable/alt ) gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_uniforms)) gear_tweaks += gear_tweak_free_color_choice diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index 32012ed330..f71010a232 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -100,3 +100,6 @@ name = "fingerless gloves" icon_state = "fingerlessgloves_rc" fingerprint_chance = 100 + +/obj/item/clothing/gloves/fingerless_recolourable/alt + icon_state = "fingerlessgloves_rc_alt" diff --git a/icons/inventory/hands/item.dmi b/icons/inventory/hands/item.dmi index 3adca7d964f9c13efb0c51408af303840ead6739..104a112bf1af991d9b7fb5ad6e0449840c7ec2a0 100644 GIT binary patch delta 16275 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 Vq{>M8JOSw6V$Kb{ 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 LO~s#&&4T_n!B$8p diff --git a/icons/inventory/hands/mob.dmi b/icons/inventory/hands/mob.dmi index bf041c8a0236c7e463a1c73fbf8ddd11126363ba..ab825c3513d1a69d9e5d6449bd2d149b80428eef 100644 GIT binary patch delta 12613 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 It~fpVKWqds1ONa4 delta 12456 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 From 591674f0d4eb2a4c1582c12a1013a1293625b988 Mon Sep 17 00:00:00 2001 From: Killian Date: Sat, 23 Nov 2024 23:35:29 +0000 Subject: [PATCH 096/109] sd+tether cargo adjustments --- maps/stellar_delight/stellar_delight1.dmm | 26 +-- maps/stellar_delight/stellar_delight2.dmm | 230 +++++++++++----------- maps/tether/tether-05-station1.dmm | 68 +++++-- 3 files changed, 178 insertions(+), 146 deletions(-) diff --git a/maps/stellar_delight/stellar_delight1.dmm b/maps/stellar_delight/stellar_delight1.dmm index 4a75431dda..24dedd3d69 100644 --- a/maps/stellar_delight/stellar_delight1.dmm +++ b/maps/stellar_delight/stellar_delight1.dmm @@ -590,7 +590,6 @@ master_tag = "xenobio_airlock_control"; name = "Xenobiology Access Button"; pixel_y = -32; - req_access = null; req_one_access = list(47,55) }, /obj/machinery/door/airlock/angled_bay/standard/color{ @@ -3323,6 +3322,10 @@ /obj/machinery/recharger, /turf/simulated/floor/tiled/techfloor, /area/rnd/workshop) +"gv" = ( +/mob/living/simple_mob/animal/passive/mouse/jerboa/leggy, +/turf/simulated/floor/tiled/eris/steel/cargo, +/area/stellardelight/deck1/miningequipment) "gw" = ( /obj/structure/closet/crate, /obj/random/maintenance, @@ -3807,7 +3810,6 @@ master_tag = "xenobio_airlock_control"; name = "Xenobiology Access Button"; pixel_y = 32; - req_access = null; req_one_access = list(47,55) }, /obj/machinery/door/airlock/angled_bay/standard/color{ @@ -4507,7 +4509,6 @@ dir = 4; door_color = "#ffffff"; name = "maintenance access"; - req_one_access = null; stripe_color = "#5a19a8" }, /turf/simulated/floor/tiled/steel_ridged, @@ -4747,8 +4748,7 @@ /obj/machinery/button/crematorium{ id = "crematorium"; pixel_x = 25; - req_access = list(); - req_one_access = null + req_access = list() }, /turf/simulated/floor/tiled/dark, /area/chapel/chapel_morgue) @@ -4980,8 +4980,7 @@ /obj/machinery/button/remote/blast_door{ id = "librarywindowlockdown"; name = "Window Lockdown"; - pixel_y = 25; - req_access = null + pixel_y = 25 }, /turf/simulated/floor/carpet, /area/library) @@ -6503,7 +6502,6 @@ dir = 8; door_color = "#333333"; name = "Away Mission Meeting Room"; - req_one_access = null; stripe_color = "#5a19a8" }, /turf/simulated/floor/tiled/steel_ridged, @@ -9910,7 +9908,6 @@ /obj/machinery/door/airlock/angled_bay/standard/glass{ door_color = "#8c1d11"; name = "Brig"; - req_access = null; req_one_access = list(38,63); stripe_color = "#d27428" }, @@ -10494,7 +10491,6 @@ name = "EVA Shutter"; pixel_x = -5; pixel_y = 24; - req_access = null; req_one_access = list(18,19,43,67) }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -11712,7 +11708,6 @@ dir = 4; door_color = "#ffffff"; name = "maintenance access"; - req_one_access = null; stripe_color = "#5a19a8" }, /turf/simulated/floor/tiled/steel_ridged, @@ -13243,7 +13238,6 @@ dir = 4; door_color = "#333333"; name = "Shuttle Bay"; - req_one_access = null; stripe_color = "#5a19a8" }, /turf/simulated/floor/tiled/steel_ridged, @@ -15639,7 +15633,6 @@ door_color = "#a6753d"; name = "Shuttle Bay"; req_access = list(31); - req_one_access = null; stripe_color = "#3b2b1a" }, /turf/simulated/floor/tiled/steel_ridged, @@ -17497,7 +17490,6 @@ /obj/machinery/door/airlock/angled_bay/standard/glass{ door_color = "#8c1d11"; name = "Brig"; - req_access = null; req_one_access = list(38,63); stripe_color = "#d27428" }, @@ -17961,7 +17953,6 @@ dir = 4; door_color = "#a88860"; name = "Mining Shuttle"; - req_access = null; req_one_access = list(31,5); stripe_color = "#69461a" }, @@ -18065,7 +18056,6 @@ door_color = "#2e2e2e"; fill_color = "#2e2e2e"; name = "Chapel Morgue"; - req_access = null; stripe_color = "#deaf43" }, /turf/simulated/floor/tiled/steel_ridged, @@ -18373,7 +18363,6 @@ door_color = "#8c1d11"; name = "maintenance access"; req_access = list(4); - req_one_access = null; stripe_color = "#8c1d11" }, /obj/structure/cable/pink{ @@ -21421,7 +21410,6 @@ /obj/machinery/door/airlock/angled_bay/standard/glass{ door_color = "#ffffff"; name = "Xenobiology"; - req_access = null; req_one_access = list(47,55); stripe_color = "#5a19a8" }, @@ -33765,7 +33753,7 @@ pV xf aT MG -vC +gv vi xf ww diff --git a/maps/stellar_delight/stellar_delight2.dmm b/maps/stellar_delight/stellar_delight2.dmm index 15bb7139ee..a6d068408d 100644 --- a/maps/stellar_delight/stellar_delight2.dmm +++ b/maps/stellar_delight/stellar_delight2.dmm @@ -21,18 +21,9 @@ /turf/simulated/floor/tiled/eris/white/bluecorner, /area/medical/chemistry) "ae" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 8 - }, -/obj/effect/floor_decal/steeldecal/steel_decals4, -/obj/effect/floor_decal/steeldecal/steel_decals4{ - dir = 10 +/obj/machinery/requests_console/preset/cargo{ + dir = 8; + pixel_x = 30 }, /turf/simulated/floor/tiled/eris/steel/cargo, /area/quartermaster/storage) @@ -954,14 +945,14 @@ /turf/simulated/floor, /area/maintenance/stellardelight/deck2/portfore) "bQ" = ( -/obj/structure/closet/secure_closet/quartermaster, -/obj/item/storage/backpack/dufflebag, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, /obj/machinery/firealarm/angled{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, /turf/simulated/floor/wood, /area/quartermaster/qm) "bR" = ( @@ -1085,9 +1076,16 @@ /turf/simulated/floor/plating, /area/engineering/storage) "ce" = ( -/obj/machinery/vending/wardrobe/cargodrobe, -/obj/machinery/status_display/supply_display{ - pixel_y = 32 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/floor_decal/steeldecal/steel_decals4{ + dir = 4 + }, +/obj/effect/floor_decal/steeldecal/steel_decals4{ + dir = 9 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" }, /turf/simulated/floor/tiled/eris/steel/cargo, /area/quartermaster/storage) @@ -3355,18 +3353,14 @@ /turf/simulated/floor/tiled/techmaint, /area/engineering/atmos/storage) "gN" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, /obj/effect/floor_decal/steeldecal/steel_decals4{ dir = 4 }, /obj/effect/floor_decal/steeldecal/steel_decals4{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/tiled/eris/steel/brown_platform, /area/quartermaster/storage) "gO" = ( @@ -3580,7 +3574,6 @@ /obj/machinery/door/airlock/angled_bay/standard/glass{ door_color = "#e6ab22"; name = "Engineering EVA Storage"; - req_access = null; req_one_access = list(11,24); stripe_color = "#913013" }, @@ -4057,9 +4050,6 @@ /area/engineering/atmos/storage) "iB" = ( /obj/structure/filingcabinet/filingcabinet, -/obj/machinery/requests_console/preset/cargo{ - pixel_y = 30 - }, /turf/simulated/floor/tiled/eris/steel/brown_platform, /area/quartermaster/storage) "iC" = ( @@ -4433,6 +4423,20 @@ }, /turf/simulated/floor/tiled, /area/stellardelight/deck2/aftport) +"ju" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/fuel{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/turf/simulated/floor/tiled/eris/steel/cargo, +/area/quartermaster/storage) "jv" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 @@ -5249,26 +5253,10 @@ /turf/simulated/floor/tiled/eris/white/bluecorner, /area/medical/reception) "le" = ( -/obj/machinery/door/firedoor/glass, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/door/airlock/angled_bay/standard/color{ - dir = 4; - door_color = "#a6753d"; - fill_color = "#75736f"; - name = "Quartermaster"; - req_access = list(41); - stripe_color = "#3b2b1a" - }, -/turf/simulated/floor/tiled/steel_ridged, -/area/quartermaster/qm) +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/tiled/eris/steel/cargo, +/area/quartermaster/storage) "lf" = ( /obj/machinery/portable_atmospherics/hydroponics, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -6021,14 +6009,14 @@ /turf/simulated/floor/tiled/techfloor, /area/engineering/atmos/monitoring) "mE" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, /obj/structure/cable/yellow{ - icon_state = "4-8" + icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 + dir = 6 }, /turf/simulated/floor/wood, /area/quartermaster/qm) @@ -8177,7 +8165,6 @@ /obj/machinery/door/airlock/angled_bay/standard/glass{ door_color = "#e6ab22"; name = "Engineering Workshop"; - req_access = null; req_one_access = list(11,24); stripe_color = "#913013" }, @@ -9683,11 +9670,10 @@ /turf/simulated/floor/tiled/eris/steel/brown_platform, /area/crew_quarters/bar) "uY" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/simulated/floor/tiled/eris/steel/brown_platform, -/area/quartermaster/storage) +/obj/structure/closet/secure_closet/quartermaster, +/obj/item/storage/backpack/dufflebag, +/turf/simulated/floor/wood, +/area/quartermaster/qm) "uZ" = ( /obj/machinery/button/remote/blast_door{ dir = 8; @@ -9880,9 +9866,6 @@ /turf/simulated/floor, /area/engineering/atmos/monitoring) "vy" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, /obj/structure/cable/yellow{ icon_state = "2-8" }, @@ -10582,10 +10565,10 @@ /turf/simulated/floor/tiled/white, /area/medical/surgery) "xk" = ( -/obj/machinery/photocopier, /obj/machinery/light{ dir = 1 }, +/obj/machinery/vending/wardrobe/cargodrobe, /turf/simulated/floor/tiled/eris/steel/cargo, /area/quartermaster/storage) "xl" = ( @@ -11078,7 +11061,6 @@ door_color = "#e6ab22"; name = "maintenance access"; req_access = list(11,24); - req_one_access = null; stripe_color = "#e6ab22" }, /obj/structure/cable/orange{ @@ -12493,7 +12475,6 @@ /obj/machinery/door/firedoor/glass, /obj/machinery/door/airlock/angled_bay/standard/glass{ door_color = "#9c9c9c"; - fill_color = null; name = "Commons"; stripe_color = "#89bd66" }, @@ -12570,6 +12551,13 @@ /obj/machinery/camera/network/cargo, /obj/item/retail_scanner/cargo, /obj/item/stamp/accepted, +/obj/machinery/button/remote/blast_door{ + dir = 8; + id = "cargo_desk"; + name = "Cargo Shutter Control"; + pixel_x = 24; + pixel_y = 24 + }, /turf/simulated/floor/tiled/eris/steel/brown_platform, /area/quartermaster/storage) "BN" = ( @@ -13226,6 +13214,9 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, /turf/simulated/floor/wood, /area/quartermaster/qm) "Ds" = ( @@ -13889,18 +13880,9 @@ /turf/simulated/floor/tiled/white, /area/medical/surgery) "EM" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, /obj/machinery/light{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 8 - }, /turf/simulated/floor/tiled/eris/steel/brown_platform, /area/quartermaster/storage) "EN" = ( @@ -14101,9 +14083,7 @@ /obj/machinery/embedded_controller/radio/simple_docking_controller{ frequency = 1380; id_tag = "cargo_bay"; - pixel_y = 24; - req_one_access = null; - tag_door = null + pixel_y = 24 }, /obj/structure/cable{ icon_state = "4-8" @@ -16315,7 +16295,6 @@ }, /obj/machinery/door/airlock/angled_bay/standard/glass{ door_color = "#9c9c9c"; - fill_color = null; name = "Commons"; stripe_color = "#89bd66" }, @@ -16980,6 +16959,12 @@ req_access = list(50) }, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/blast/shutters{ + id = "cargo_desk"; + layer = 3.3; + name = "Cargo Shutters"; + dir = 2 + }, /turf/simulated/floor/tiled/monotile, /area/quartermaster/storage) "Lv" = ( @@ -18905,6 +18890,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 8 + }, /turf/simulated/floor/wood, /area/quartermaster/qm) "PE" = ( @@ -19441,9 +19429,7 @@ tag_east_con = 0.79; tag_north = 1; tag_north_con = 0.21; - tag_south = 2; - tag_south_con = null; - tag_west_con = null + tag_south = 2 }, /turf/simulated/floor/tiled/techmaint, /area/engineering/atmos/storage) @@ -19641,7 +19627,6 @@ /obj/machinery/door/airlock/angled_bay/standard/glass{ door_color = "#e6ab22"; name = "Engineering Monitoring Room"; - req_access = null; req_one_access = list(11,24); stripe_color = "#913013" }, @@ -19741,6 +19726,17 @@ }, /turf/simulated/floor/airless, /area/engineering/engine_room) +"Rt" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/simulated/floor/tiled/eris/steel/cargo, +/area/quartermaster/storage) "Ru" = ( /turf/simulated/floor/glass/reinforced, /area/stellardelight/deck2/starboard) @@ -19890,11 +19886,16 @@ /turf/simulated/floor/tiled/techmaint, /area/engineering/atmos/storage) "RO" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/door/firedoor/glass, +/obj/structure/window/bay/reinforced, +/obj/structure/low_wall/bay/reinforced/brown, +/obj/machinery/door/blast/shutters{ + id = "cargo_desk"; + layer = 3.3; + name = "Cargo Shutters"; + dir = 2 }, -/mob/living/simple_mob/animal/passive/mouse/jerboa/leggy, -/turf/simulated/floor/tiled/eris/steel/brown_platform, +/turf/simulated/floor, /area/quartermaster/storage) "RP" = ( /obj/structure/table/reinforced, @@ -20945,13 +20946,21 @@ /turf/simulated/floor/tiled/techfloor, /area/engineering/atmos/monitoring) "Um" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/firedoor/glass, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/eris/steel/brown_platform, -/area/quartermaster/storage) +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/angled_bay/standard/color{ + door_color = "#a6753d"; + fill_color = "#75736f"; + name = "Quartermaster"; + req_access = list(41); + stripe_color = "#3b2b1a" + }, +/turf/simulated/floor/tiled/steel_ridged, +/area/quartermaster/qm) "Un" = ( /obj/machinery/atmospherics/binary/pump/on{ dir = 1; @@ -21966,9 +21975,7 @@ /obj/machinery/firealarm/angled{ dir = 4 }, -/obj/structure/closet/crate/bin{ - anchored = 1 - }, +/obj/machinery/photocopier, /turf/simulated/floor/tiled/eris/steel/cargo, /area/quartermaster/storage) "WF" = ( @@ -22597,6 +22604,7 @@ pixel_y = 5 }, /obj/item/cartridge/quartermaster, +/obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/wood, /area/quartermaster/qm) "XY" = ( @@ -33004,7 +33012,7 @@ eB OP TS XN -NN +RO ou vy mw @@ -33148,7 +33156,7 @@ zj We Lu CS -vq +zj Rh gO vq @@ -33288,9 +33296,9 @@ eB dq zj GE -NN -BM RO +BM +zj pl LF oC @@ -33432,7 +33440,7 @@ zj GE do iB -vq +zj XJ MM nz @@ -33574,7 +33582,7 @@ wH Sv sk gN -Um +bB wR wR fz @@ -33716,7 +33724,7 @@ zj DV do EM -uY +zj hS hS bW @@ -33856,7 +33864,7 @@ eB gq HZ Nj -NN +RO ae gt WE @@ -33999,7 +34007,7 @@ YY Nf Nf YY -le +YY YY YY xk @@ -34138,16 +34146,16 @@ ZF ci eB cX -ed +uY du dJ mE bQ -YY +Um ce -BO -Ui -dN +Rt +le +ju pD jQ jQ diff --git a/maps/tether/tether-05-station1.dmm b/maps/tether/tether-05-station1.dmm index 010b2f41e2..712a50b3be 100644 --- a/maps/tether/tether-05-station1.dmm +++ b/maps/tether/tether-05-station1.dmm @@ -788,7 +788,6 @@ id = "EngineEmitterPortWest2"; name = "Engine Room Blast Doors"; pixel_x = 25; - req_access = null; req_one_access = list(11,24) }, /obj/machinery/atmospherics/unary/vent_scrubber/on{ @@ -2468,6 +2467,12 @@ icon_state = "1-2" }, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/blast/shutters{ + dir = 2; + id = "cargo_shutter"; + layer = 3.3; + name = "Cargo Shutters" + }, /turf/simulated/floor/tiled, /area/quartermaster/office) "aer" = ( @@ -8016,7 +8021,6 @@ /obj/machinery/door/airlock/multi_tile/glass{ dir = 2; name = "Gateway/EVA Prep Room"; - req_access = null; req_one_access = list(18,19,43,67) }, /turf/simulated/floor/tiled/steel_ridged, @@ -8588,6 +8592,12 @@ /obj/structure/grille, /obj/structure/window/reinforced/full, /obj/structure/disposalpipe/segment, +/obj/machinery/door/blast/shutters{ + dir = 2; + id = "cargo_shutter"; + layer = 3.3; + name = "Cargo Shutters" + }, /turf/simulated/floor/plating, /area/quartermaster/office) "avz" = ( @@ -12706,8 +12716,7 @@ /obj/structure/plasticflaps, /obj/machinery/conveyor{ dir = 8; - id = "miningops"; - movedir = null + id = "miningops" }, /turf/simulated/floor/plating, /area/quartermaster/belterdock/refinery) @@ -14869,6 +14878,19 @@ fancy_shuttle_tag = "secbus" }, /area/shuttle/securiship/engines) +"cbX" = ( +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/firedoor/glass, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/blast/shutters{ + dir = 2; + id = "cargo_shutter"; + layer = 3.3; + name = "Cargo Shutters" + }, +/turf/simulated/floor/plating, +/area/quartermaster/office) "cbY" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 @@ -20522,6 +20544,12 @@ /obj/structure/window/reinforced/full, /obj/machinery/door/firedoor/glass, /obj/structure/disposalpipe/segment, +/obj/machinery/door/blast/shutters{ + dir = 2; + id = "cargo_shutter"; + layer = 3.3; + name = "Cargo Shutters" + }, /turf/simulated/floor/plating, /area/quartermaster/office) "hUm" = ( @@ -27351,8 +27379,7 @@ "pty" = ( /obj/machinery/conveyor{ dir = 8; - id = "miningops"; - movedir = null + id = "miningops" }, /turf/simulated/floor/plating, /area/quartermaster/belterdock/refinery) @@ -29631,8 +29658,7 @@ dir = 4; id = "medivac blast"; name = "window blast shields"; - pixel_y = 1; - req_access = null + pixel_y = 1 }, /turf/simulated/floor/tiled, /area/shuttle/medivac/cockpit) @@ -29926,8 +29952,7 @@ /obj/machinery/mineral/input, /obj/machinery/conveyor{ dir = 8; - id = "miningops"; - movedir = null + id = "miningops" }, /turf/simulated/floor/plating, /area/quartermaster/belterdock/refinery) @@ -30435,7 +30460,14 @@ /obj/machinery/requests_console{ department = "Cargo Bay"; departmentType = 2; - pixel_y = 32 + pixel_y = 32; + pixel_x = -6 + }, +/obj/machinery/button/remote/blast_door{ + id = "cargo_shutter"; + name = "Cargo Shutter Control"; + pixel_x = 10; + pixel_y = 24 }, /turf/simulated/floor/tiled, /area/quartermaster/office) @@ -30943,8 +30975,7 @@ /obj/machinery/mineral/output, /obj/machinery/conveyor{ dir = 8; - id = "miningops"; - movedir = null + id = "miningops" }, /turf/simulated/floor/plating, /area/quartermaster/belterdock/refinery) @@ -31985,8 +32016,7 @@ frequency = 1380; id_tag = "securiship_bay"; pixel_x = 24; - pixel_y = -26; - req_one_access = null + pixel_y = -26 }, /turf/simulated/floor/tiled, /area/tether/station/dock_two) @@ -34459,6 +34489,12 @@ /obj/machinery/door/firedoor/glass, /obj/structure/grille, /obj/structure/window/reinforced/full, +/obj/machinery/door/blast/shutters{ + dir = 2; + id = "cargo_shutter"; + layer = 3.3; + name = "Cargo Shutters" + }, /turf/simulated/floor/plating, /area/quartermaster/office) @@ -44910,7 +44946,7 @@ oWu qkG mkL iDA -yjH +cbX tnC tWj jhJ From 93bbbf5da790b982bdf0ae111640b6dde084be46 Mon Sep 17 00:00:00 2001 From: Casey Date: Sun, 24 Nov 2024 15:44:54 -0500 Subject: [PATCH 097/109] Map Swap --- maps/~map_system/_map_selection.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/maps/~map_system/_map_selection.dm b/maps/~map_system/_map_selection.dm index 47ff0d984d..879f058f54 100644 --- a/maps/~map_system/_map_selection.dm +++ b/maps/~map_system/_map_selection.dm @@ -5,8 +5,8 @@ /* FOR LIVE SERVER */ /*********************/ -//#define USE_MAP_TETHER -#define USE_MAP_STELLARDELIGHT +#define USE_MAP_TETHER +//#define USE_MAP_STELLARDELIGHT //#define USE_MAP_GROUNDBASE // Debug From 78c6671330f966c111e253ca53d9ff6bc3ff6d0f Mon Sep 17 00:00:00 2001 From: Killian Date: Sun, 24 Nov 2024 23:03:24 +0000 Subject: [PATCH 098/109] jobs _vr file crunch --- code/game/jobs/job/assistant.dm | 115 +++++ code/game/jobs/job/assistant_vr.dm | 115 ----- code/game/jobs/job/captain.dm | 84 +++- code/game/jobs/job/captain_vr.dm | 78 ---- code/game/jobs/job/cargo.dm | 122 +++++ code/game/jobs/job/civilian.dm | 402 +++++++++++++---- code/game/jobs/job/civilian_chaplain.dm | 24 +- code/game/jobs/job/civilian_vr.dm | 426 ------------------ code/game/jobs/job/department.dm | 2 +- code/game/jobs/job/department_vr.dm | 6 - code/game/jobs/job/engineering.dm | 77 +++- code/game/jobs/job/engineering_vr.dm | 75 --- .../job/{exploration_vr.dm => exploration.dm} | 0 code/game/jobs/job/job.dm | 67 +++ code/game/jobs/job/job_vr.dm | 66 --- code/game/jobs/job/medical.dm | 98 +++- code/game/jobs/job/medical_vr.dm | 97 ---- .../jobs/job/{offduty_vr.dm => offduty.dm} | 0 code/game/jobs/job/science.dm | 132 +++++- code/game/jobs/job/science_vr.dm | 134 ------ code/game/jobs/job/security.dm | 74 ++- code/game/jobs/job/security_vr.dm | 75 --- code/game/jobs/job/silicon.dm | 8 +- code/game/jobs/job/silicon_vr.dm | 9 - .../jobs/job/{special_vr.dm => special.dm} | 0 vorestation.dme | 15 +- 26 files changed, 1052 insertions(+), 1249 deletions(-) delete mode 100644 code/game/jobs/job/assistant_vr.dm delete mode 100644 code/game/jobs/job/captain_vr.dm create mode 100644 code/game/jobs/job/cargo.dm delete mode 100644 code/game/jobs/job/civilian_vr.dm delete mode 100644 code/game/jobs/job/department_vr.dm delete mode 100644 code/game/jobs/job/engineering_vr.dm rename code/game/jobs/job/{exploration_vr.dm => exploration.dm} (100%) delete mode 100644 code/game/jobs/job/job_vr.dm delete mode 100644 code/game/jobs/job/medical_vr.dm rename code/game/jobs/job/{offduty_vr.dm => offduty.dm} (100%) delete mode 100644 code/game/jobs/job/science_vr.dm delete mode 100644 code/game/jobs/job/security_vr.dm delete mode 100644 code/game/jobs/job/silicon_vr.dm rename code/game/jobs/job/{special_vr.dm => special.dm} (100%) diff --git a/code/game/jobs/job/assistant.dm b/code/game/jobs/job/assistant.dm index 6aa9753352..e3eca95cd3 100644 --- a/code/game/jobs/job/assistant.dm +++ b/code/game/jobs/job/assistant.dm @@ -57,3 +57,118 @@ title_blurb = "A " + JOB_ALT_RESIDENT + " is an individual who resides on the station, frequently in a different part of the station than what is seen. \ They are considered to be part of the crew for most purposes, but have no real authority." title_outfit = /decl/hierarchy/outfit/job/assistant/resident + +////////////////////////////////// +// Intern +////////////////////////////////// + +/datum/job/intern + title = JOB_INTERN + flag = INTERN + departments = list(DEPARTMENT_CIVILIAN) + department_flag = ENGSEC // Ran out of bits + faction = FACTION_STATION + total_positions = -1 + spawn_positions = -1 + supervisors = "the staff from the department you're interning in" + selection_color = "#555555" + economic_modifier = 2 + access = list() //See /datum/job/intern/get_access() + minimal_access = list() //See /datum/job/intern/get_access() + outfit_type = /decl/hierarchy/outfit/job/assistant/intern + alt_titles = list(JOB_ALT_APPRENTICE_ENGINEER = /datum/alt_title/intern_eng, + JOB_ALT_MEDICAL_INTERN = /datum/alt_title/intern_med, + JOB_ALT_RESEARCH_INTERN = /datum/alt_title/intern_sci, + JOB_ALT_SECURITY_CADET = /datum/alt_title/intern_sec, + JOB_ALT_JR_CARGO_TECH = /datum/alt_title/intern_crg, + JOB_ALT_SERVER = /datum/alt_title/server, + JOB_ALT_ASSISTANT = /datum/alt_title/assistant) + job_description = "An " + JOB_INTERN + " does whatever is requested of them, often doing so in process of learning \ + another job. Though they are part of the crew, they have no real authority." + timeoff_factor = 0 // Interns, noh + requestable = FALSE + +/datum/alt_title/intern_eng + title = JOB_ALT_APPRENTICE_ENGINEER + title_blurb = "An " + JOB_ALT_APPRENTICE_ENGINEER + " attempts to provide whatever the Engineering department needs. They are not proper Engineers, and are \ + often in training to become an Engineer. An " + JOB_ALT_APPRENTICE_ENGINEER + " has no real authority." + title_outfit = /decl/hierarchy/outfit/job/assistant/engineer + +/datum/alt_title/intern_med + title = JOB_ALT_MEDICAL_INTERN + title_blurb = "A " + JOB_ALT_MEDICAL_INTERN + " attempts to provide whatever the Medical department needs. They are not proper Doctors, and are \ + often in training to become a Doctor. A " + JOB_ALT_MEDICAL_INTERN + " has no real authority." + title_outfit = /decl/hierarchy/outfit/job/assistant/medic + +/datum/alt_title/intern_sci + title = JOB_ALT_RESEARCH_INTERN + title_blurb = "A " + JOB_ALT_RESEARCH_INTERN + " attempts to provide whatever the Research department needs. They are not proper " + JOB_SCIENTIST + "s, and are \ + often in training to become a " + JOB_SCIENTIST + ". A " + JOB_ALT_RESEARCH_INTERN + " has no real authority." + title_outfit = /decl/hierarchy/outfit/job/assistant/scientist + +/datum/alt_title/intern_sec + title = JOB_ALT_SECURITY_CADET + title_blurb = "A " + JOB_ALT_SECURITY_CADET + " attempts to provide whatever the Security department needs. They are not proper Officers, and are \ + often in training to become an Officer. A " + JOB_ALT_SECURITY_CADET + " has no real authority." + title_outfit = /decl/hierarchy/outfit/job/assistant/officer + +/datum/alt_title/intern_crg + title = JOB_ALT_JR_CARGO_TECH + title_blurb = "A " + JOB_ALT_JR_CARGO_TECH + " attempts to provide whatever the Cargo department needs. They are not proper Cargo Technicians, and are \ + often in training to become a " + JOB_CARGO_TECHNICIAN + ". A " + JOB_ALT_JR_CARGO_TECH + " has no real authority." + title_outfit = /decl/hierarchy/outfit/job/assistant/cargo +/* +/datum/alt_title/intern_exp + title = "Jr. " + JOB_EXPLORER + "" + title_blurb = "A Jr. " + JOB_EXPLORER + " attempts to provide whatever the Exploration department needs. They are not proper " + JOB_EXPLORER + "s, and are \ + often in training to become an " + JOB_EXPLORER + ". A Jr. " + JOB_EXPLORER + " has no real authority." + title_outfit = /decl/hierarchy/outfit/job/assistant/explorer +*/ +/datum/alt_title/server + title = JOB_ALT_SERVER + title_blurb = "A " + JOB_ALT_SERVER + " helps out kitchen and diner staff with various tasks, primarily food delivery. A " + JOB_ALT_SERVER + " has no real authority." + title_outfit = /decl/hierarchy/outfit/job/service/server + +/datum/alt_title/assistant + title = JOB_ALT_ASSISTANT + title_blurb = "An " + JOB_ALT_ASSISTANT + " helps out wherever they might be needed. They have no authority, but can volunteer to help if help is needed." + title_outfit = /decl/hierarchy/outfit/job/service/server + +/datum/job/intern/New() + ..() + if(config) + total_positions = CONFIG_GET(number/limit_interns) + spawn_positions = CONFIG_GET(number/limit_interns) + +/datum/job/intern/get_access() + if(CONFIG_GET(flag/assistant_maint)) + return list(access_maint_tunnels) + else + return list() + +////////////////////////////////// +// Visitor +////////////////////////////////// + +/datum/job/assistant // Visitor + title = JOB_ALT_VISITOR + supervisors = "nobody! You don't work here" + job_description = "A " + JOB_ALT_VISITOR + " is just there to visit the place. They have no real authority or responsibility." + timeoff_factor = 0 + requestable = FALSE + alt_titles = list("Guest" = /datum/alt_title/guest, "Traveler" = /datum/alt_title/traveler) + +/datum/job/assistant/New() + ..() + if(config) + total_positions = CONFIG_GET(number/limit_visitors) + spawn_positions = CONFIG_GET(number/limit_visitors) + +/datum/job/assistant/get_access() + return list() + +/datum/alt_title/guest + title = "Guest" + +/datum/alt_title/traveler + title = "Traveler" diff --git a/code/game/jobs/job/assistant_vr.dm b/code/game/jobs/job/assistant_vr.dm deleted file mode 100644 index c28d801acb..0000000000 --- a/code/game/jobs/job/assistant_vr.dm +++ /dev/null @@ -1,115 +0,0 @@ -////////////////////////////////// -// Intern -////////////////////////////////// - -/datum/job/intern - title = JOB_INTERN - flag = INTERN - departments = list(DEPARTMENT_CIVILIAN) - department_flag = ENGSEC // Ran out of bits - faction = FACTION_STATION - total_positions = -1 - spawn_positions = -1 - supervisors = "the staff from the department you're interning in" - selection_color = "#555555" - economic_modifier = 2 - access = list() //See /datum/job/intern/get_access() - minimal_access = list() //See /datum/job/intern/get_access() - outfit_type = /decl/hierarchy/outfit/job/assistant/intern - alt_titles = list(JOB_ALT_APPRENTICE_ENGINEER = /datum/alt_title/intern_eng, - JOB_ALT_MEDICAL_INTERN = /datum/alt_title/intern_med, - JOB_ALT_RESEARCH_INTERN = /datum/alt_title/intern_sci, - JOB_ALT_SECURITY_CADET = /datum/alt_title/intern_sec, - JOB_ALT_JR_CARGO_TECH = /datum/alt_title/intern_crg, - JOB_ALT_SERVER = /datum/alt_title/server, - JOB_ALT_ASSISTANT = /datum/alt_title/assistant) - job_description = "An " + JOB_INTERN + " does whatever is requested of them, often doing so in process of learning \ - another job. Though they are part of the crew, they have no real authority." - timeoff_factor = 0 // Interns, noh - requestable = FALSE - -/datum/alt_title/intern_eng - title = JOB_ALT_APPRENTICE_ENGINEER - title_blurb = "An " + JOB_ALT_APPRENTICE_ENGINEER + " attempts to provide whatever the Engineering department needs. They are not proper Engineers, and are \ - often in training to become an Engineer. An " + JOB_ALT_APPRENTICE_ENGINEER + " has no real authority." - title_outfit = /decl/hierarchy/outfit/job/assistant/engineer - -/datum/alt_title/intern_med - title = JOB_ALT_MEDICAL_INTERN - title_blurb = "A " + JOB_ALT_MEDICAL_INTERN + " attempts to provide whatever the Medical department needs. They are not proper Doctors, and are \ - often in training to become a Doctor. A " + JOB_ALT_MEDICAL_INTERN + " has no real authority." - title_outfit = /decl/hierarchy/outfit/job/assistant/medic - -/datum/alt_title/intern_sci - title = JOB_ALT_RESEARCH_INTERN - title_blurb = "A " + JOB_ALT_RESEARCH_INTERN + " attempts to provide whatever the Research department needs. They are not proper " + JOB_SCIENTIST + "s, and are \ - often in training to become a " + JOB_SCIENTIST + ". A " + JOB_ALT_RESEARCH_INTERN + " has no real authority." - title_outfit = /decl/hierarchy/outfit/job/assistant/scientist - -/datum/alt_title/intern_sec - title = JOB_ALT_SECURITY_CADET - title_blurb = "A " + JOB_ALT_SECURITY_CADET + " attempts to provide whatever the Security department needs. They are not proper Officers, and are \ - often in training to become an Officer. A " + JOB_ALT_SECURITY_CADET + " has no real authority." - title_outfit = /decl/hierarchy/outfit/job/assistant/officer - -/datum/alt_title/intern_crg - title = JOB_ALT_JR_CARGO_TECH - title_blurb = "A " + JOB_ALT_JR_CARGO_TECH + " attempts to provide whatever the Cargo department needs. They are not proper Cargo Technicians, and are \ - often in training to become a " + JOB_CARGO_TECHNICIAN + ". A " + JOB_ALT_JR_CARGO_TECH + " has no real authority." - title_outfit = /decl/hierarchy/outfit/job/assistant/cargo -/* -/datum/alt_title/intern_exp - title = "Jr. " + JOB_EXPLORER + "" - title_blurb = "A Jr. " + JOB_EXPLORER + " attempts to provide whatever the Exploration department needs. They are not proper " + JOB_EXPLORER + "s, and are \ - often in training to become an " + JOB_EXPLORER + ". A Jr. " + JOB_EXPLORER + " has no real authority." - title_outfit = /decl/hierarchy/outfit/job/assistant/explorer -*/ -/datum/alt_title/server - title = JOB_ALT_SERVER - title_blurb = "A " + JOB_ALT_SERVER + " helps out kitchen and diner staff with various tasks, primarily food delivery. A " + JOB_ALT_SERVER + " has no real authority." - title_outfit = /decl/hierarchy/outfit/job/service/server - -/datum/alt_title/assistant - title = JOB_ALT_ASSISTANT - title_blurb = "An " + JOB_ALT_ASSISTANT + " helps out wherever they might be needed. They have no authority, but can volunteer to help if help is needed." - title_outfit = /decl/hierarchy/outfit/job/service/server - -/datum/job/intern/New() - ..() - if(config) - total_positions = CONFIG_GET(number/limit_interns) - spawn_positions = CONFIG_GET(number/limit_interns) - -/datum/job/intern/get_access() - if(CONFIG_GET(flag/assistant_maint)) - return list(access_maint_tunnels) - else - return list() - - -////////////////////////////////// -// Visitor -////////////////////////////////// - -/datum/job/assistant // Visitor - title = JOB_ALT_VISITOR - supervisors = "nobody! You don't work here" - job_description = "A " + JOB_ALT_VISITOR + " is just there to visit the place. They have no real authority or responsibility." - timeoff_factor = 0 - requestable = FALSE - alt_titles = list("Guest" = /datum/alt_title/guest, "Traveler" = /datum/alt_title/traveler) - -/datum/job/assistant/New() - ..() - if(config) - total_positions = CONFIG_GET(number/limit_visitors) - spawn_positions = CONFIG_GET(number/limit_visitors) - -/datum/job/assistant/get_access() - return list() - -/datum/alt_title/guest - title = "Guest" - -/datum/alt_title/traveler - title = "Traveler" diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index 6c16ac4376..a9ea549858 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -28,11 +28,16 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) ideal_age_by_species = list(SPECIES_HUMAN_VATBORN = 55) /// Vatborn live shorter, no other race eligible for captain besides human/skrell banned_job_species = list(SPECIES_UNATHI, SPECIES_TAJ, SPECIES_DIONA, SPECIES_PROMETHEAN, SPECIES_ZADDAT, "mechanical", "digital") + disallow_jobhop = TRUE + pto_type = PTO_CIVILIAN + dept_time_required = 80 //Pending something more complicated + outfit_type = /decl/hierarchy/outfit/job/captain job_description = "The " + JOB_SITE_MANAGER + " manages the other Command Staff, and through them the rest of the station. Though they have access to everything, \ they do not understand everything, and are expected to delegate tasks to the appropriate crew member. The " + JOB_SITE_MANAGER + " is expected to \ have an understanding of Standard Operating Procedure, and is subject to it, and legal action, in the same way as every other crew member." - alt_titles = list(JOB_ALT_OVERSEER= /datum/alt_title/overseer) + alt_titles = list(JOB_ALT_OVERSEER= /datum/alt_title/overseer, JOB_ALT_FACILITY_DIRECTOR = /datum/alt_title/facility_director, JOB_ALT_CHIEF_SUPERVISOR = /datum/alt_title/chief_supervisor, + JOB_ALT_CAPTAIN = /datum/alt_title/captain) /* @@ -45,11 +50,22 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) /datum/job/captain/get_access() return get_all_station_access().Copy() +/datum/job/captain/get_request_reasons() + return list("Training crew", "Assembling expedition team") // Captain Alt Titles /datum/alt_title/overseer title = JOB_ALT_OVERSEER +/datum/alt_title/facility_director + title = JOB_ALT_FACILITY_DIRECTOR + +/datum/alt_title/chief_supervisor + title = JOB_ALT_CHIEF_SUPERVISOR + +/datum/alt_title/captain + title = JOB_ALT_CAPTAIN + ////////////////////////////////// // Head of Personnel ////////////////////////////////// @@ -75,29 +91,51 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) ideal_age_by_species = list(SPECIES_UNATHI = 140, SPECIES_TESHARI = 27, "mechanical" = 20, SPECIES_HUMAN_VATBORN = 20) banned_job_species = list(SPECIES_PROMETHEAN, SPECIES_ZADDAT, "digital", SPECIES_DIONA) + disallow_jobhop = TRUE + pto_type = PTO_CIVILIAN + departments = list(DEPARTMENT_COMMAND, DEPARTMENT_CIVILIAN) + departments_managed = list(DEPARTMENT_CIVILIAN, DEPARTMENT_CARGO, DEPARTMENT_PLANET) + dept_time_required = 60 + outfit_type = /decl/hierarchy/outfit/job/hop job_description = "The " + JOB_HEAD_OF_PERSONNEL + " manages the Service department, the Exploration team, and most other civilians. They also \ manage the Supply department, through the " + JOB_QUARTERMASTER + ". In addition, the " + JOB_HEAD_OF_PERSONNEL + " oversees the personal accounts \ of the crew, including their money and access. If necessary, the " + JOB_HEAD_OF_PERSONNEL + " is first in line to assume Acting Command." - alt_titles = list(JOB_ALT_CREW_RESOURCE_OFFICER = /datum/alt_title/cro) + alt_titles = list(JOB_ALT_CREW_RESOURCE_OFFICER = /datum/alt_title/cro, JOB_ALT_DEPUTY_MANAGER = /datum/alt_title/deputy_manager, JOB_ALT_STAFF_MANAGER = /datum/alt_title/staff_manager, + JOB_ALT_FACILITY_STEWARD = /datum/alt_title/facility_steward, JOB_ALT_FIRST_MATE = /datum/alt_title/first_mate) access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, - access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, - access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, - access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, - access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, - access_hop, access_RC_announce, access_keycard_auth, access_gateway) - minimal_access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, - access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, - access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, - access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, - access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, - access_hop, access_RC_announce, access_keycard_auth, access_gateway) + access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, + access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, + access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, + access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, + access_hop, access_RC_announce, access_clown, access_tomfoolery, access_mime, access_keycard_auth, access_gateway, access_entertainment) + minimal_access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, + access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, + access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, + access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, + access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, + access_hop, access_RC_announce, access_clown, access_tomfoolery, access_mime, access_keycard_auth, access_gateway, access_entertainment) + +/datum/job/hop/get_request_reasons() + return list("ID modification", "Training crew", "Assembling expedition team") // HOP Alt Titles /datum/alt_title/cro title = JOB_ALT_CREW_RESOURCE_OFFICER +/datum/alt_title/deputy_manager + title = JOB_ALT_DEPUTY_MANAGER + +/datum/alt_title/staff_manager + title = JOB_ALT_STAFF_MANAGER + +/datum/alt_title/facility_steward + title = JOB_ALT_FACILITY_STEWARD + +/datum/alt_title/first_mate + title = JOB_ALT_FIRST_MATE + ////////////////////////////////// // Command Secretary ////////////////////////////////// @@ -116,9 +154,29 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) minimal_player_age = 5 economic_modifier = 7 + disallow_jobhop = TRUE + pto_type = PTO_CIVILIAN + alt_titles = list(JOB_ALT_COMMAND_LIAISON = /datum/alt_title/command_liaison, JOB_ALT_COMMAND_ASSISTANT = /datum/alt_title/command_assistant, JOB_ALT_COMMAND_INTERN = /datum/alt_title/command_intern, + JOB_ALT_BRIDGE_SECRETARY = /datum/alt_title/bridge_secretary, JOB_ALT_BRIDGE_ASSISTANT = /datum/alt_title/bridge_assistant) + access = list(access_heads, access_keycard_auth) minimal_access = list(access_heads, access_keycard_auth) outfit_type = /decl/hierarchy/outfit/job/secretary job_description = "A " + JOB_COMMAND_SECRETARY + " handles paperwork duty for the Heads of Staff, so they can better focus on managing their departments. \ They are not Heads of Staff, and have no real authority." + +/datum/alt_title/command_liaison + title = JOB_ALT_COMMAND_LIAISON + +/datum/alt_title/command_assistant + title = JOB_ALT_COMMAND_ASSISTANT + +/datum/alt_title/command_intern + title = JOB_ALT_COMMAND_INTERN + +/datum/alt_title/bridge_secretary + title = JOB_ALT_BRIDGE_SECRETARY + +/datum/alt_title/bridge_assistant + title = JOB_ALT_BRIDGE_ASSISTANT diff --git a/code/game/jobs/job/captain_vr.dm b/code/game/jobs/job/captain_vr.dm deleted file mode 100644 index c127d8dfd4..0000000000 --- a/code/game/jobs/job/captain_vr.dm +++ /dev/null @@ -1,78 +0,0 @@ -/datum/job/captain - disallow_jobhop = TRUE - pto_type = PTO_CIVILIAN - dept_time_required = 80 //Pending something more complicated - alt_titles = list(JOB_ALT_OVERSEER= /datum/alt_title/overseer, JOB_ALT_FACILITY_DIRECTOR = /datum/alt_title/facility_director, JOB_ALT_CHIEF_SUPERVISOR = /datum/alt_title/chief_supervisor, - JOB_ALT_CAPTAIN = /datum/alt_title/captain) - -/datum/alt_title/facility_director - title = JOB_ALT_FACILITY_DIRECTOR - -/datum/alt_title/chief_supervisor - title = JOB_ALT_CHIEF_SUPERVISOR - -/datum/alt_title/captain - title = JOB_ALT_CAPTAIN - -/datum/job/captain/get_request_reasons() - return list("Training crew", "Assembling expedition team") - -/datum/job/hop - disallow_jobhop = TRUE - pto_type = PTO_CIVILIAN - departments = list(DEPARTMENT_COMMAND, DEPARTMENT_CIVILIAN) - departments_managed = list(DEPARTMENT_CIVILIAN, DEPARTMENT_CARGO, DEPARTMENT_PLANET) - dept_time_required = 60 - - alt_titles = list(JOB_ALT_CREW_RESOURCE_OFFICER = /datum/alt_title/cro, JOB_ALT_DEPUTY_MANAGER = /datum/alt_title/deputy_manager, JOB_ALT_STAFF_MANAGER = /datum/alt_title/staff_manager, - JOB_ALT_FACILITY_STEWARD = /datum/alt_title/facility_steward, JOB_ALT_FIRST_MATE = /datum/alt_title/first_mate) - - access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, - access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, - access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, - access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, - access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, - access_hop, access_RC_announce, access_clown, access_tomfoolery, access_mime, access_keycard_auth, access_gateway, access_entertainment) - minimal_access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, - access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, - access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, - access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, - access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, - access_hop, access_RC_announce, access_clown, access_tomfoolery, access_mime, access_keycard_auth, access_gateway, access_entertainment) - -/datum/alt_title/deputy_manager - title = JOB_ALT_DEPUTY_MANAGER - -/datum/alt_title/staff_manager - title = JOB_ALT_STAFF_MANAGER - -/datum/alt_title/facility_steward - title = JOB_ALT_FACILITY_STEWARD - -/datum/alt_title/first_mate - title = JOB_ALT_FIRST_MATE - -/datum/job/hop/get_request_reasons() - return list("ID modification", "Training crew", "Assembling expedition team") - - -/datum/job/secretary - disallow_jobhop = TRUE - pto_type = PTO_CIVILIAN - alt_titles = list(JOB_ALT_COMMAND_LIAISON = /datum/alt_title/command_liaison, JOB_ALT_COMMAND_ASSISTANT = /datum/alt_title/command_assistant, JOB_ALT_COMMAND_INTERN = /datum/alt_title/command_intern, - JOB_ALT_BRIDGE_SECRETARY = /datum/alt_title/bridge_secretary, JOB_ALT_BRIDGE_ASSISTANT = /datum/alt_title/bridge_assistant) - -/datum/alt_title/command_liaison - title = JOB_ALT_COMMAND_LIAISON - -/datum/alt_title/command_assistant - title = JOB_ALT_COMMAND_ASSISTANT - -/datum/alt_title/command_intern - title = JOB_ALT_COMMAND_INTERN - -/datum/alt_title/bridge_secretary - title = JOB_ALT_BRIDGE_SECRETARY - -/datum/alt_title/bridge_assistant - title = JOB_ALT_BRIDGE_ASSISTANT diff --git a/code/game/jobs/job/cargo.dm b/code/game/jobs/job/cargo.dm new file mode 100644 index 0000000000..ad56749de6 --- /dev/null +++ b/code/game/jobs/job/cargo.dm @@ -0,0 +1,122 @@ +//Cargo +////////////////////////////////// +// Quartermaster +////////////////////////////////// +/datum/job/qm + title = JOB_QUARTERMASTER + flag = QUARTERMASTER + departments = list(DEPARTMENT_CARGO) + sorting_order = 1 // QM is above the cargo techs, but below the HoP. + departments_managed = list(DEPARTMENT_CARGO) + department_flag = CIVILIAN + faction = FACTION_STATION + total_positions = 1 + spawn_positions = 1 + pto_type = PTO_CARGO + supervisors = "the " + JOB_HEAD_OF_PERSONNEL + selection_color = "#9b633e" + economic_modifier = 5 + access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_RC_announce) + minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_RC_announce) + banned_job_species = list("digital", SPECIES_PROMETHEAN) + + ideal_character_age = 40 + dept_time_required = 20 + + outfit_type = /decl/hierarchy/outfit/job/cargo/qm + job_description = "The " + JOB_QUARTERMASTER + " manages the Supply department, checking cargo orders and ensuring supplies get to where they are needed." + alt_titles = list(JOB_ALT_SUPPLY_CHIEF = /datum/alt_title/supply_chief, JOB_ALT_LOGISTICS_MANAGER = /datum/alt_title/logistics_manager, JOB_ALT_CARGO_SUPERVISOR = /datum/alt_title/cargo_supervisor) + +/datum/job/qm/get_request_reasons() + return list("Training crew") + +// Quartermaster Alt Titles +/datum/alt_title/supply_chief + title = JOB_ALT_SUPPLY_CHIEF + +/datum/alt_title/logistics_manager + title = JOB_ALT_LOGISTICS_MANAGER + +/datum/alt_title/cargo_supervisor + title = JOB_ALT_CARGO_SUPERVISOR + +////////////////////////////////// +// Cargo Tech +////////////////////////////////// +/datum/job/cargo_tech + title = JOB_CARGO_TECHNICIAN + flag = CARGOTECH + departments = list(DEPARTMENT_CARGO) + department_flag = CIVILIAN + faction = FACTION_STATION + total_positions = 3 + spawn_positions = 3 + pto_type = PTO_CARGO + supervisors = "the " + JOB_QUARTERMASTER + " and the " + JOB_HEAD_OF_PERSONNEL + selection_color = "#7a4f33" + access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_mining, access_mining_station) + minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting) + + outfit_type = /decl/hierarchy/outfit/job/cargo/cargo_tech + job_description = "A " + JOB_CARGO_TECHNICIAN + " fills and delivers cargo orders. They are encouraged to return delivered crates to the Cargo Shuttle, \ + because Central Command gives a partial refund." + + alt_titles = list(JOB_ALT_CARGO_LOADER = /datum/alt_title/cargo_loader, JOB_ALT_CARGO_HANDLER = /datum/alt_title/cargo_handler, JOB_ALT_SUPPLY_COURIER = /datum/alt_title/supply_courier, + JOB_ALT_DISPOSALS_SORTER = /datum/alt_title/disposal_sorter) + +/datum/alt_title/supply_courier + title = JOB_ALT_SUPPLY_COURIER + title_blurb = "A " + JOB_ALT_SUPPLY_COURIER + " is usually tasked with delivering packages or cargo directly to whoever requires it." + +/datum/alt_title/cargo_loader + title = JOB_ALT_CARGO_LOADER + title_blurb = "A " + JOB_ALT_CARGO_LOADER + " is usually tasked with more menial labor within Supply department, such as loading and unloading supply shuttle." + +/datum/alt_title/cargo_handler + title = JOB_ALT_CARGO_HANDLER + title_blurb = "A " + JOB_ALT_CARGO_HANDLER + " is usually tasked with more menial labor within Supply department, such as loading and unloading supply shuttle." + +/datum/alt_title/disposal_sorter + title = JOB_ALT_DISPOSALS_SORTER + title_blurb = "A " + JOB_ALT_DISPOSALS_SORTER + " is usually tasked with operating disposals delivery system, sorting the trash and tagging parcels for delivery." + +////////////////////////////////// +// Shaft Miner +////////////////////////////////// + +/datum/job/mining + title = JOB_SHAFT_MINER + flag = MINER + departments = list(DEPARTMENT_CARGO) + department_flag = CIVILIAN + faction = FACTION_STATION + total_positions = 4 + spawn_positions = 4 + pto_type = PTO_CARGO + supervisors = "the " + JOB_QUARTERMASTER + " and the " + JOB_HEAD_OF_PERSONNEL + selection_color = "#7a4f33" + economic_modifier = 5 + access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_mining, access_mining_station) + minimal_access = list(access_mining, access_mining_station, access_mailsorting) + + outfit_type = /decl/hierarchy/outfit/job/cargo/mining + job_description = "A " + JOB_SHAFT_MINER + " mines and processes minerals to be delivered to departments that need them." + alt_titles = list(JOB_ALT_DEEP_SPACE_MINER = /datum/alt_title/deep_space_miner, JOB_ALT_DRILL_TECHNICIAN = /datum/alt_title/drill_tech, JOB_ALT_PROSPECTOR = /datum/alt_title/prospector, + JOB_ALT_EXCAVATOR = /datum/alt_title/excavator) + +/datum/job/mining/get_request_reasons() + return list("Assembling expedition team") + +/datum/alt_title/drill_tech + title = JOB_ALT_DRILL_TECHNICIAN + title_blurb = "A " + JOB_ALT_DRILL_TECHNICIAN + " specializes in operating and maintaining the machinery needed to extract ore from veins deep below the surface." + +/datum/alt_title/deep_space_miner + title = JOB_ALT_DEEP_SPACE_MINER + title_blurb = "A " + JOB_ALT_DEEP_SPACE_MINER + " specializes primarily in mining operations in zero-g environments, mostly in asteroid and debris fields." + +/datum/alt_title/prospector + title = JOB_ALT_PROSPECTOR + +/datum/alt_title/excavator + title = JOB_ALT_EXCAVATOR diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 663edab0a4..0604b872e4 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -12,6 +12,7 @@ faction = FACTION_STATION total_positions = 2 spawn_positions = 2 + pto_type = PTO_CIVILIAN supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_hydroponics, access_bar, access_kitchen) @@ -19,7 +20,7 @@ outfit_type = /decl/hierarchy/outfit/job/service/bartender job_description = "A " + JOB_BARTENDER + " mixes drinks for the crew. They generally have permission to charge for drinks or deny service to unruly patrons." - alt_titles = list(JOB_ALT_BARISTA = /datum/alt_title/barista) + alt_titles = list(JOB_ALT_BARKEEPR = /datum/alt_title/barkeeper, JOB_ALT_BARMAID = /datum/alt_title/barmaid, JOB_ALT_BARISTA = /datum/alt_title/barista, JOB_ALT_MIXOLOGIST = /datum/alt_title/mixologist) // Bartender Alt Titles /datum/alt_title/barista @@ -28,6 +29,15 @@ or deny service to unruly patrons." title_outfit = /decl/hierarchy/outfit/job/service/bartender/barista +/datum/alt_title/barkeeper + title = JOB_ALT_BARKEEPR + +/datum/alt_title/barmaid + title = JOB_ALT_BARMAID + +/datum/alt_title/mixologist + title = JOB_ALT_MIXOLOGIST + ////////////////////////////////// // Chef ////////////////////////////////// @@ -40,6 +50,7 @@ faction = FACTION_STATION total_positions = 2 spawn_positions = 2 + pto_type = PTO_CIVILIAN supervisors = "the "+ JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_hydroponics, access_bar, access_kitchen) @@ -47,13 +58,20 @@ outfit_type = /decl/hierarchy/outfit/job/service/chef job_description = "A " + JOB_CHEF + " cooks food for the crew. They generally have permission to charge for food or deny service to unruly diners." - alt_titles = list(JOB_ALT_COOK = /datum/alt_title/cook) + alt_titles = list(JOB_ALT_SOUSCHEF = /datum/alt_title/souschef, JOB_ALT_COOK = /datum/alt_title/cook, JOB_ALT_KITCHEN_WORKER = /datum/alt_title/kitchen_worker) // Chef Alt Titles /datum/alt_title/cook title = JOB_ALT_COOK title_blurb = "A " + JOB_ALT_COOK + " has the same duties, though they may be less experienced." +/datum/alt_title/souschef + title = JOB_ALT_SOUSCHEF + +/datum/alt_title/kitchen_worker + title = JOB_ALT_KITCHEN_WORKER + title_blurb = "A " + JOB_ALT_KITCHEN_WORKER + " has the same duties, though they may be less experienced." + ////////////////////////////////// // Botanist ////////////////////////////////// @@ -66,6 +84,7 @@ faction = FACTION_STATION total_positions = 2 spawn_positions = 2 + pto_type = PTO_CIVILIAN supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_hydroponics, access_bar, access_kitchen) @@ -73,89 +92,30 @@ outfit_type = /decl/hierarchy/outfit/job/service/gardener job_description = "A " + JOB_BOTANIST+ " grows plants for the " + JOB_CHEF + " and " + JOB_BARTENDER + "." - alt_titles = list(JOB_ALT_GARDENER = /datum/alt_title/gardener) + alt_titles = list(JOB_ALT_HYDROPONICIST = /datum/alt_title/hydroponicist, JOB_ALT_CULTIVATOR = /datum/alt_title/cultivator, JOB_ALT_FARMER = /datum/alt_title/farmer, + JOB_ALT_GARDENER = /datum/alt_title/gardener, JOB_ALT_FLORIST = /datum/alt_title/florsit, JOB_ALT_RANCHER = /datum/alt_title/rancher) //Botanist Alt Titles /datum/alt_title/gardener title = JOB_ALT_GARDENER title_blurb = "A " + JOB_ALT_GARDENER + " may be less professional than their counterparts, and are more likely to tend to the public gardens if they aren't needed elsewhere." -//Cargo -////////////////////////////////// -// Quartermaster -////////////////////////////////// -/datum/job/qm - title = JOB_QUARTERMASTER - flag = QUARTERMASTER - departments = list(DEPARTMENT_CARGO) - sorting_order = 1 // QM is above the cargo techs, but below the HoP. - departments_managed = list(DEPARTMENT_CARGO) - department_flag = CIVILIAN - faction = FACTION_STATION - total_positions = 1 - spawn_positions = 1 - supervisors = "the " + JOB_HEAD_OF_PERSONNEL - selection_color = "#9b633e" - economic_modifier = 5 - access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_RC_announce) - minimal_access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_RC_announce) - banned_job_species = list("digital", SPECIES_PROMETHEAN) +/datum/alt_title/hydroponicist + title = JOB_ALT_HYDROPONICIST - ideal_character_age = 40 +/datum/alt_title/cultivator + title = JOB_ALT_CULTIVATOR - outfit_type = /decl/hierarchy/outfit/job/cargo/qm - job_description = "The " + JOB_QUARTERMASTER + " manages the Supply department, checking cargo orders and ensuring supplies get to where they are needed." - alt_titles = list(JOB_ALT_SUPPLY_CHIEF = /datum/alt_title/supply_chief) +/datum/alt_title/farmer + title = JOB_ALT_FARMER -// Quartermaster Alt Titles -/datum/alt_title/supply_chief - title = JOB_ALT_SUPPLY_CHIEF +/datum/alt_title/florsit + title = JOB_ALT_FLORIST + title_blurb = "A " + JOB_ALT_FLORIST + " may be less professional than their counterparts, and are more likely to tend to the public gardens if they aren't needed elsewhere." -////////////////////////////////// -// Cargo Tech -////////////////////////////////// -/datum/job/cargo_tech - title = JOB_CARGO_TECHNICIAN - flag = CARGOTECH - departments = list(DEPARTMENT_CARGO) - department_flag = CIVILIAN - faction = FACTION_STATION - total_positions = 2 - spawn_positions = 2 - supervisors = "the " + JOB_QUARTERMASTER + " and the " + JOB_HEAD_OF_PERSONNEL - selection_color = "#7a4f33" - access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_mining, access_mining_station) - minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting) - - outfit_type = /decl/hierarchy/outfit/job/cargo/cargo_tech - job_description = "A " + JOB_CARGO_TECHNICIAN + " fills and delivers cargo orders. They are encouraged to return delivered crates to the Cargo Shuttle, \ - because Central Command gives a partial refund." - -////////////////////////////////// -// Shaft Miner -////////////////////////////////// - -/datum/job/mining - title = JOB_SHAFT_MINER - flag = MINER - departments = list(DEPARTMENT_CARGO) - department_flag = CIVILIAN - faction = FACTION_STATION - total_positions = 3 - spawn_positions = 3 - supervisors = "the " + JOB_QUARTERMASTER + " and the " + JOB_HEAD_OF_PERSONNEL - selection_color = "#7a4f33" - economic_modifier = 5 - access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_mining, access_mining_station) - minimal_access = list(access_mining, access_mining_station, access_mailsorting) - - outfit_type = /decl/hierarchy/outfit/job/cargo/mining - job_description = "A " + JOB_SHAFT_MINER + " mines and processes minerals to be delivered to departments that need them." - alt_titles = list(JOB_ALT_DRILL_TECHNICIAN = /datum/alt_title/drill_tech) - -/datum/alt_title/drill_tech - title = JOB_ALT_DRILL_TECHNICIAN - title_blurb = "A " + JOB_ALT_DRILL_TECHNICIAN + " specializes in operating and maintaining the machinery needed to extract ore from veins deep below the surface." +/datum/alt_title/rancher + title = JOB_ALT_RANCHER + title_blurb = "A " + JOB_ALT_RANCHER + " is tasked with the care, feeding, raising, and harvesting of livestock." //Service ////////////////////////////////// @@ -167,8 +127,9 @@ departments = list(DEPARTMENT_CIVILIAN) department_flag = CIVILIAN faction = FACTION_STATION - total_positions = 2 - spawn_positions = 2 + total_positions = 3 + spawn_positions = 3 + pto_type = PTO_CIVILIAN supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_janitor, access_maint_tunnels) @@ -176,12 +137,23 @@ outfit_type = /decl/hierarchy/outfit/job/service/janitor job_description = "A " + JOB_JANITOR + " keeps the station clean, as long as it doesn't interfere with active crime scenes." - alt_titles = list(JOB_ALT_CUSTODIAN = /datum/alt_title/custodian) + alt_titles = list(JOB_ALT_CUSTODIAN = /datum/alt_title/custodian, JOB_ALT_SANITATION_TECHNICIAN = /datum/alt_title/sanitation_tech, + JOB_ALT_MAID = /datum/alt_title/maid, JOB_ALT_GARBAGE_COLLECTOR = /datum/alt_title/garbage_collector) // Janitor Alt Titles /datum/alt_title/custodian title = JOB_ALT_CUSTODIAN +/datum/alt_title/sanitation_tech + title = JOB_ALT_SANITATION_TECHNICIAN + +/datum/alt_title/maid + title = JOB_ALT_MAID + +/datum/alt_title/garbage_collector + title = JOB_ALT_GARBAGE_COLLECTOR + title_blurb = "A " + JOB_ALT_GARBAGE_COLLECTOR + " keeps the station clean, though focuses moreso on collecting larger trash, with wet cleaning being secondary task." + //More or less assistants ////////////////////////////////// // Librarian @@ -192,8 +164,9 @@ departments = list(DEPARTMENT_CIVILIAN) department_flag = CIVILIAN faction = FACTION_STATION - total_positions = 1 - spawn_positions = 1 + total_positions = 2 + spawn_positions = 2 + pto_type = PTO_CIVILIAN supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_library, access_maint_tunnels) @@ -201,7 +174,9 @@ outfit_type = /decl/hierarchy/outfit/job/librarian job_description = "The " + JOB_LIBRARIAN + " curates the book selection in the Library, so the crew might enjoy it." - alt_titles = list(JOB_ALT_JOURNALIST = /datum/alt_title/journalist, JOB_ALT_WRITER = /datum/alt_title/writer) + alt_titles = list(JOB_ALT_JOURNALIST = /datum/alt_title/journalist, JOB_ALT_REPORTER = /datum/alt_title/reporter, JOB_ALT_WRITER = /datum/alt_title/writer, + JOB_ALT_HISTORIAN = /datum/alt_title/historian, JOB_ALT_ARCHIVIST = /datum/alt_title/archivist, JOB_ALT_PROFESSOR = /datum/alt_title/professor, + JOB_ALT_ACADEMIC = /datum/alt_title/academic, JOB_ALT_PHILOSOPHER = /datum/alt_title/philosopher, JOB_ALT_CURATOR = /datum/alt_title/curator) // Librarian Alt Titles /datum/alt_title/journalist @@ -213,6 +188,34 @@ title = JOB_ALT_WRITER title_blurb = "The " + JOB_ALT_WRITER + " uses the Library as a quiet place to write whatever it is they choose to write." +/datum/alt_title/reporter + title = JOB_ALT_REPORTER + title_blurb = "The " + JOB_ALT_REPORTER + " uses the Library as a base of operations, from which they can report the news and goings-on on the station with their camera." + +/datum/alt_title/historian + title = JOB_ALT_HISTORIAN + title_blurb = "The " + JOB_ALT_HISTORIAN + " uses the Library as a base of operation to record any important events occurring on station." + +/datum/alt_title/archivist + title = JOB_ALT_ARCHIVIST + title_blurb = "The " + JOB_ALT_ARCHIVIST + " uses the Library as a base of operation to record any important events occurring on station." + +/datum/alt_title/professor + title = JOB_ALT_PROFESSOR + title_blurb = "The " + JOB_ALT_PROFESSOR + " uses the Library as a base of operations to share their vast knowledge with the crew." + +/datum/alt_title/academic + title = JOB_ALT_ACADEMIC + title_blurb = "The " + JOB_ALT_ACADEMIC + " uses the Library as a base of operations to share their vast knowledge with the crew." + +/datum/alt_title/philosopher + title = JOB_ALT_PHILOSOPHER + title_blurb = "The " + JOB_ALT_PHILOSOPHER + " uses the Library as a base of operation to ruminate on nature of life and other great questions, and share their opinions with the crew." + +/datum/alt_title/curator + title = JOB_ALT_CURATOR + title_blurb = "The " + JOB_ALT_CURATOR + " uses the Library as a base of operation to gather the finest of art for display and preservation." + ////////////////////////////////// // Internal Affairs Agent ////////////////////////////////// @@ -226,6 +229,8 @@ faction = FACTION_STATION total_positions = 2 spawn_positions = 2 + pto_type = PTO_CIVILIAN + disallow_jobhop = TRUE supervisors = "company officials and Corporate Regulations" selection_color = "#515151" economic_modifier = 7 @@ -238,10 +243,233 @@ job_description = "An " + JOB_INTERNAL_AFFAIRS_AGENT + " makes sure that the crew is following Standard Operating Procedure. They also \ handle complaints against crew members, and can have issues brought to the attention of Central Command, \ assuming their paperwork is in order." + alt_titles = list(JOB_ALT_INTERNAL_AFFAIRS_LIAISON = /datum/alt_title/ia_liaison, JOB_ALT_INTERNAL_AFFAIRS_DELEGATE = /datum/alt_title/ia_delegate, + JOB_ALT_INTERNAL_AFFAIRS_INVESTIGATOR = /datum/alt_title/ia_investigator) -/* -/datum/job/lawyer/equip(var/mob/living/carbon/human/H) - . = ..() - if(.) - H.implant_loyalty(H) -*/ +/datum/alt_title/ia_liaison + title = JOB_ALT_INTERNAL_AFFAIRS_LIAISON + +/datum/alt_title/ia_delegate + title = JOB_ALT_INTERNAL_AFFAIRS_DELEGATE + +/datum/alt_title/ia_investigator + title = JOB_ALT_INTERNAL_AFFAIRS_INVESTIGATOR + +////////////////////////////////// +// Pilot +////////////////////////////////// + +/datum/job/pilot + title = JOB_PILOT + flag = PILOT + departments = list(DEPARTMENT_CIVILIAN) + department_flag = CIVILIAN + faction = FACTION_STATION + total_positions = 2 + spawn_positions = 2 + supervisors = "the " + JOB_HEAD_OF_PERSONNEL + selection_color = "#515151" + economic_modifier = 5 + minimal_player_age = 3 + pto_type = PTO_CIVILIAN + access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot) + minimal_access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot) + outfit_type = /decl/hierarchy/outfit/job/pilot + job_description = "A " + JOB_PILOT + " flies the various shuttles in the Virgo-Erigone System." + alt_titles = list(JOB_ALT_COPILOT = /datum/alt_title/co_pilot, JOB_ALT_NAVIGATOR = /datum/alt_title/navigator, JOB_ALT_HELMSMAN = /datum/alt_title/helmsman) + +/datum/alt_title/co_pilot + title = JOB_ALT_COPILOT + title_blurb = "A Co-" + JOB_ALT_COPILOT + " is there primarily to assist main pilot as well as learn from them" + +/datum/alt_title/navigator + title = JOB_ALT_NAVIGATOR + +/datum/alt_title/helmsman + title = JOB_ALT_HELMSMAN + +/datum/job/pilot/get_request_reasons() + return list("Assembling expedition team") + +////////////////////////////////// +// Entertainer +////////////////////////////////// + +/datum/job/entertainer + title = JOB_ENTERTAINER + flag = ENTERTAINER + departments = list(DEPARTMENT_CIVILIAN) + department_flag = CIVILIAN + faction = FACTION_STATION + total_positions = 4 + spawn_positions = 4 + supervisors = "the " + JOB_HEAD_OF_PERSONNEL + selection_color = "#515151" + access = list(access_entertainment) + minimal_access = list(access_entertainment) + pto_type = PTO_CIVILIAN + + outfit_type = /decl/hierarchy/outfit/job/assistant/entertainer + job_description = "An " + JOB_ENTERTAINER + " does just that, entertains! Put on plays, play music, sing songs, tell stories, or read your favorite fanfic." + alt_titles = list(JOB_ALT_PERFORMER = /datum/alt_title/performer, JOB_ALT_MUSICIAN = /datum/alt_title/musician, JOB_ALT_STAGEHAND = /datum/alt_title/stagehand, + JOB_ALT_ACTOR = /datum/alt_title/actor, JOB_ALT_DANCER = /datum/alt_title/dancer, JOB_ALT_SINGER = /datum/alt_title/singer, + JOB_ALT_MAGICIAN = /datum/alt_title/magician, JOB_ALT_COMEDIAN = /datum/alt_title/comedian, JOB_ALT_ARTIST = /datum/alt_title/tragedian, + JOB_ALT_ARTIST = /datum/alt_title/artist, JOB_ALT_GAME_MASTER = /datum/alt_title/game_master) + +// Entertainer Alt Titles +/datum/alt_title/actor + title = JOB_ALT_ACTOR + title_blurb = "An " + JOB_ALT_ACTOR + " is someone who acts out a role! Whatever sort of character it is, get into it and impress people with power of comedy and tragedy!" + +/datum/alt_title/performer + title = JOB_ALT_PERFORMER + title_blurb = "A " + JOB_ALT_PERFORMER + " is someone who performs! Whatever sort of performance will come to your mind, the world's a stage!" + +/datum/alt_title/musician + title = JOB_ALT_MUSICIAN + title_blurb = "A " + JOB_ALT_MUSICIAN + " is someone who makes music with a wide variety of musical instruments!" + +/datum/alt_title/stagehand + title = JOB_ALT_STAGEHAND + title_blurb = "A " + JOB_ALT_STAGEHAND + " typically performs everything the rest of the entertainers don't. Operate lights, shutters, windows, or narrate through your voicebox!" + +/datum/alt_title/dancer + title = JOB_ALT_DANCER + title_blurb = "A " + JOB_ALT_DANCER + " is someone who impresses people through power of their own body! From waltz to breakdance, as long as crowd as cheering!" + +/datum/alt_title/singer + title = JOB_ALT_SINGER + title_blurb = "A " + JOB_ALT_SINGER + " is someone with gift of melodious voice! Impress people with your vocal range!" + +/datum/alt_title/magician + title = JOB_ALT_MAGICIAN + title_blurb = "A " + JOB_ALT_MAGICIAN + " is someone who awes those around them with impossible! Show off your repertoire of magic tricks, while keeping the secret hidden!" + +/datum/alt_title/comedian + title = JOB_ALT_COMEDIAN + title_blurb = "A " + JOB_ALT_COMEDIAN + " will focus on making people laugh with the power of wit! Telling jokes, stand-up comedy, you are here to make others smile!" + +/datum/alt_title/tragedian + title = JOB_ALT_ARTIST + title_blurb = "A " + JOB_ALT_ARTIST + " will focus on making people think about life and world around them! Life is a tragedy, and who's better to convey its emotions than you?" + +/datum/alt_title/artist + title = JOB_ALT_ARTIST + title_blurb = "An " + JOB_ALT_ARTIST + "'s calling is to create beautiful arts! Whatever form may they take, create and have people astonished with your creativity." + +/datum/alt_title/game_master + title = JOB_ALT_GAME_MASTER + title_blurb = "A " + JOB_ALT_GAME_MASTER + " provides recreation for the crew by hosting variety of games. From cards to roleplaying to something more personalized." + +////////////////////////////////// +// Entrepreneur +////////////////////////////////// + +/datum/job/entrepreneur + title = JOB_ENTREPRENEUR + flag = ENTREPRENEUR + departments = list(DEPARTMENT_CIVILIAN) + department_flag = CIVILIAN + faction = FACTION_STATION + total_positions = 4 + spawn_positions = 4 + supervisors = "the " + JOB_HEAD_OF_PERSONNEL + selection_color = "#515151" + access = list() + minimal_access = list() + pto_type = PTO_CIVILIAN + + outfit_type = /decl/hierarchy/outfit/job/assistant/entrepreneur + job_description = "An " + JOB_ENTREPRENEUR + " is basically a visitor that obtained special permission to offer personal services to people on station. \ + They will offer people these services and, potentially, even demand payment!" + alt_titles = list(JOB_ALT_LAWYER = /datum/alt_title/lawyer, JOB_ALT_PRIVATE_EYE = /datum/alt_title/private_eye, JOB_ALT_BODYGUARD = /datum/alt_title/bodyguard, + JOB_ALT_PERSONAL_PHYSICIAN = /datum/alt_title/personal_physician, JOB_ALT_DENTIST = /datum/alt_title/dentist, JOB_ALT_FITNESS_INSTRUCTOR = /datum/alt_title/fitness_instructor, + JOB_ALT_YOGA_TEACHER = /datum/alt_title/yoga_teacher, JOB_ALT_MASSEUSE = /datum/alt_title/masseuse, JOB_ALT_TRADESPERSON = /datum/alt_title/tradesperson, + JOB_ALT_STREAMER = /datum/alt_title/streamer, JOB_ALT_INFLUENCER = /datum/alt_title/influencer, JOB_ALT_PARANORMAL_INVESTIGATOR = /datum/alt_title/paranormal_investigator, + JOB_ALT_PERSONAL_SECRETARY = /datum/alt_title/personal_secretary, JOB_ALT_STYLIST = /datum/alt_title/stylist, JOB_ALT_FISHER = /datum/alt_title/fisher, + JOB_ALT_FORTUNE_TELLER = /datum/alt_title/fortune_teller, JOB_ALT_SPIRIT_HEALER = /datum/alt_title/spirit_healer) + +/datum/alt_title/lawyer + title = JOB_ALT_LAWYER + title_blurb = "A " + JOB_ALT_LAWYER + " is knowledgable in various legal systems, including station's operations. They can try to offer their legal counsel, although nobody is really obliged to listen." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_secretary + +/datum/alt_title/private_eye + title = JOB_ALT_PRIVATE_EYE + title_blurb = "A " + JOB_ALT_PRIVATE_EYE + " is a detective that has no credentials or equipment. But if someone wants something found without security's knowledge, they are the one to go to." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/private_eye + +/datum/alt_title/bodyguard + title = JOB_ALT_BODYGUARD + title_blurb = "A " + JOB_ALT_BODYGUARD + " offers service of personal protection. They may not be allowed any weapons, but their own body is weapon enough." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/bodyguard + +/datum/alt_title/personal_physician + title = JOB_ALT_PERSONAL_PHYSICIAN + title_blurb = "A " + JOB_ALT_PERSONAL_PHYSICIAN + " is a doctor dedicated less to Hippocratic Oath and more to the moneymaking grind. Their license may be expired, but the grindset never will be." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_physician + +/datum/alt_title/dentist + title = JOB_ALT_DENTIST + title_blurb = "A " + JOB_ALT_DENTIST + " is a doctor that specializes in oral care. Company may not recognize them as a proper doctor, but surely their customers will." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/dentist + +/datum/alt_title/fitness_instructor + title = JOB_ALT_FITNESS_INSTRUCTOR + title_blurb = "A " + JOB_ALT_FITNESS_INSTRUCTOR + " dedicates themselves to improving the health of the crew through physical activity, and boy, do they need the help." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fitness_instructor + +/datum/alt_title/yoga_teacher + title = JOB_ALT_YOGA_TEACHER + title_blurb = "A " + JOB_ALT_YOGA_TEACHER + " is similar to a fitness instructor, but rather than turning the round bodies into firm ones, they focus on helping people find balance and harmony." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/yoga_teacher + +/datum/alt_title/masseuse + title = JOB_ALT_MASSEUSE + title_blurb = "A " + JOB_ALT_MASSEUSE + " is master of physical therapy and working others' bodies with their hands." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/masseuse + +/datum/alt_title/tradesperson + title = JOB_ALT_TRADESPERSON + title_blurb = "A " + JOB_ALT_TRADESPERSON + " is someone attempting to make money via the most obvious act of all - buying and selling. Now if only customs allowed you to bring your goods along..." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/tradesperson + +/datum/alt_title/streamer + title = JOB_ALT_STREAMER + title_blurb = "A " + JOB_ALT_STREAMER + " is here to entertain. Not the crew! Their audience across exonet!" + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/streamer + +/datum/alt_title/influencer + title = JOB_ALT_INFLUENCER + title_blurb = "An " + JOB_ALT_INFLUENCER + " has lucked out with some exonet following, and was given permission to go onstation to provide free exposure. Don't let it go to your head." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/influencer + +/datum/alt_title/paranormal_investigator + title = JOB_ALT_PARANORMAL_INVESTIGATOR + title_blurb = "A " + JOB_ALT_PARANORMAL_INVESTIGATOR + " looks beyond what is accepted by modern science, and searches for the true unknown. Aliens, alternate dimensions, ghosts... The truth is out there!" + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/paranormal_investigator + +/datum/alt_title/personal_secretary + title = JOB_ALT_PERSONAL_SECRETARY + title_blurb = "A " + JOB_ALT_PERSONAL_SECRETARY + " offers services of general assistance. Although it's doubtful anyone will ever actually need those." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_secretary + +/datum/alt_title/stylist + title = JOB_ALT_STYLIST + title_blurb = "A " + JOB_ALT_STYLIST + " offers fashion advice, as well as helps with adjusting appearance of the crew to better suit their beauty standards." + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/stylist + +/datum/alt_title/fisher + title = JOB_ALT_FISHER + title_blurb = "A " + JOB_ALT_FISHER + " is a capable angler, who is good at obtaining large amounts of marine goods. Whether you generously give them to station or attempt to make a quick thaler by selling, it's up to you!" + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fisher + +/datum/alt_title/fortune_teller + title = JOB_ALT_FORTUNE_TELLER + title_blurb = "A " + JOB_ALT_FORTUNE_TELLER + " peers into the future, and offers these visions to others. Occasionally those visions may even come true!" + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fortune_teller + +/datum/alt_title/spirit_healer + title = JOB_ALT_SPIRIT_HEALER + title_blurb = "A " + JOB_ALT_SPIRIT_HEALER + " offers alternative forms of medicine. Rituals, magic rocks, seances... It totally works. What's that about placebo?" + title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/spirit_healer diff --git a/code/game/jobs/job/civilian_chaplain.dm b/code/game/jobs/job/civilian_chaplain.dm index 1220e3ee88..a980fd2325 100644 --- a/code/game/jobs/job/civilian_chaplain.dm +++ b/code/game/jobs/job/civilian_chaplain.dm @@ -7,6 +7,7 @@ faction = FACTION_STATION total_positions = 1 spawn_positions = 1 + pto_type = PTO_CIVILIAN supervisors = "the " + JOB_HEAD_OF_PERSONNEL selection_color = "#515151" access = list(access_morgue, access_chapel_office, access_crematorium, access_maint_tunnels) @@ -14,13 +15,34 @@ outfit_type = /decl/hierarchy/outfit/job/chaplain job_description = "The " + JOB_CHAPLAIN + " ministers to the spiritual needs of the crew." - alt_titles = list(JOB_ALT_COUNSELOR = /datum/alt_title/counselor) + alt_titles = list(JOB_ALT_MISSIONARY = /datum/alt_title/missionary, JOB_ALT_PREACHER = /datum/alt_title/preacher, JOB_ALT_PRIEST = /datum/alt_title/priest, + JOB_ALT_NUN = /datum/alt_title/nun, JOB_ALT_MONK = /datum/alt_title/monk, JOB_ALT_COUNSELOR = /datum/alt_title/counselor, + JOB_ALT_GURU = /datum/alt_title/guru) // Chaplain Alt Titles /datum/alt_title/counselor title = JOB_ALT_COUNSELOR title_blurb = "The " + JOB_ALT_COUNSELOR + " attends to the emotional needs of the crew, without a specific medicinal or spiritual focus." +/datum/alt_title/guru + title = JOB_ALT_GURU + title_blurb = "The " + JOB_ALT_GURU + " primarily tries to offer spiritual guidance to those who come seeking it." + +/datum/alt_title/missionary + title = JOB_ALT_MISSIONARY + +/datum/alt_title/preacher + title = JOB_ALT_PREACHER + +/datum/alt_title/priest + title = JOB_ALT_PRIEST + +/datum/alt_title/nun + title = JOB_ALT_NUN + +/datum/alt_title/monk + title = JOB_ALT_MONK + /datum/job/chaplain/equip(var/mob/living/carbon/human/H, var/alt_title, var/ask_questions = TRUE) . = ..() if(!.) diff --git a/code/game/jobs/job/civilian_vr.dm b/code/game/jobs/job/civilian_vr.dm deleted file mode 100644 index bd4093e403..0000000000 --- a/code/game/jobs/job/civilian_vr.dm +++ /dev/null @@ -1,426 +0,0 @@ -/datum/job/bartender - pto_type = PTO_CIVILIAN - alt_titles = list(JOB_ALT_BARKEEPR = /datum/alt_title/barkeeper, JOB_ALT_BARMAID = /datum/alt_title/barmaid, JOB_ALT_BARISTA = /datum/alt_title/barista, JOB_ALT_MIXOLOGIST = /datum/alt_title/mixologist) - -/datum/alt_title/barkeeper - title = JOB_ALT_BARKEEPR - -/datum/alt_title/barmaid - title = JOB_ALT_BARMAID - -/datum/alt_title/mixologist - title = JOB_ALT_MIXOLOGIST - - -/datum/job/chef - total_positions = 2 //IT TAKES A LOT TO MAKE A STEW - spawn_positions = 2 //A PINCH OF SALT AND LAUGHTER, TOO - pto_type = PTO_CIVILIAN - alt_titles = list(JOB_ALT_SOUSCHEF = /datum/alt_title/souschef, JOB_ALT_COOK = /datum/alt_title/cook, JOB_ALT_KITCHEN_WORKER = /datum/alt_title/kitchen_worker) - -/datum/alt_title/souschef - title = JOB_ALT_SOUSCHEF - -/datum/alt_title/kitchen_worker - title = JOB_ALT_KITCHEN_WORKER - title_blurb = "A " + JOB_ALT_KITCHEN_WORKER + " has the same duties, though they may be less experienced." - - -/datum/job/hydro - spawn_positions = 2 - pto_type = PTO_CIVILIAN - alt_titles = list(JOB_ALT_HYDROPONICIST = /datum/alt_title/hydroponicist, JOB_ALT_CULTIVATOR = /datum/alt_title/cultivator, JOB_ALT_FARMER = /datum/alt_title/farmer, - JOB_ALT_GARDENER = /datum/alt_title/gardener, JOB_ALT_FLORIST = /datum/alt_title/florsit, JOB_ALT_RANCHER = /datum/alt_title/rancher) - -/datum/alt_title/hydroponicist - title = JOB_ALT_HYDROPONICIST - -/datum/alt_title/cultivator - title = JOB_ALT_CULTIVATOR - -/datum/alt_title/farmer - title = JOB_ALT_FARMER - -/datum/alt_title/florsit - title = JOB_ALT_FLORIST - title_blurb = "A " + JOB_ALT_FLORIST + " may be less professional than their counterparts, and are more likely to tend to the public gardens if they aren't needed elsewhere." - -/datum/alt_title/rancher - title = JOB_ALT_RANCHER - title_blurb = "A " + JOB_ALT_RANCHER + " is tasked with the care, feeding, raising, and harvesting of livestock." - - -/datum/job/qm - pto_type = PTO_CARGO - dept_time_required = 20 - alt_titles = list(JOB_ALT_SUPPLY_CHIEF = /datum/alt_title/supply_chief, JOB_ALT_LOGISTICS_MANAGER = /datum/alt_title/logistics_manager, JOB_ALT_CARGO_SUPERVISOR = /datum/alt_title/cargo_supervisor) - -/datum/alt_title/logistics_manager - title = JOB_ALT_LOGISTICS_MANAGER - -/datum/alt_title/cargo_supervisor - title = JOB_ALT_CARGO_SUPERVISOR - -/datum/job/qm/get_request_reasons() - return list("Training crew") - - -/datum/job/cargo_tech - total_positions = 3 - spawn_positions = 3 - pto_type = PTO_CARGO - alt_titles = list(JOB_ALT_CARGO_LOADER = /datum/alt_title/cargo_loader, JOB_ALT_CARGO_HANDLER = /datum/alt_title/cargo_handler, JOB_ALT_SUPPLY_COURIER = /datum/alt_title/supply_courier, - JOB_ALT_DISPOSALS_SORTER = /datum/alt_title/disposal_sorter) - -/datum/alt_title/supply_courier - title = JOB_ALT_SUPPLY_COURIER - title_blurb = "A " + JOB_ALT_SUPPLY_COURIER + " is usually tasked with delivering packages or cargo directly to whoever requires it." - -/datum/alt_title/cargo_loader - title = JOB_ALT_CARGO_LOADER - title_blurb = "A " + JOB_ALT_CARGO_LOADER + " is usually tasked with more menial labor within Supply department, such as loading and unloading supply shuttle." - -/datum/alt_title/cargo_handler - title = JOB_ALT_CARGO_HANDLER - title_blurb = "A " + JOB_ALT_CARGO_HANDLER + " is usually tasked with more menial labor within Supply department, such as loading and unloading supply shuttle." - -/datum/alt_title/disposal_sorter - title = JOB_ALT_DISPOSALS_SORTER - title_blurb = "A " + JOB_ALT_DISPOSALS_SORTER + " is usually tasked with operating disposals delivery system, sorting the trash and tagging parcels for delivery." - - -/datum/job/mining - total_positions = 4 - spawn_positions = 4 - pto_type = PTO_CARGO - alt_titles = list(JOB_ALT_DEEP_SPACE_MINER = /datum/alt_title/deep_space_miner, JOB_ALT_DRILL_TECHNICIAN = /datum/alt_title/drill_tech, JOB_ALT_PROSPECTOR = /datum/alt_title/prospector, - JOB_ALT_EXCAVATOR = /datum/alt_title/excavator) - -/datum/alt_title/deep_space_miner - title = JOB_ALT_DEEP_SPACE_MINER - title_blurb = "A " + JOB_ALT_DEEP_SPACE_MINER + " specializes primarily in mining operations in zero-g environments, mostly in asteroid and debris fields." - -/datum/alt_title/prospector - title = JOB_ALT_PROSPECTOR - -/datum/alt_title/excavator - title = JOB_ALT_EXCAVATOR - -/datum/job/mining/get_request_reasons() - return list("Assembling expedition team") - - -/datum/job/janitor //Lots of janitor substations on station. - total_positions = 3 - spawn_positions = 3 - pto_type = PTO_CIVILIAN - alt_titles = list(JOB_ALT_CUSTODIAN = /datum/alt_title/custodian, JOB_ALT_SANITATION_TECHNICIAN = /datum/alt_title/sanitation_tech, - JOB_ALT_MAID = /datum/alt_title/maid, JOB_ALT_GARBAGE_COLLECTOR = /datum/alt_title/garbage_collector) - -/datum/alt_title/sanitation_tech - title = JOB_ALT_SANITATION_TECHNICIAN - -/datum/alt_title/maid - title = JOB_ALT_MAID - -/datum/alt_title/garbage_collector - title = JOB_ALT_GARBAGE_COLLECTOR - title_blurb = "A " + JOB_ALT_GARBAGE_COLLECTOR + " keeps the station clean, though focuses moreso on collecting larger trash, with wet cleaning being secondary task." - - -/datum/job/librarian - total_positions = 2 - spawn_positions = 2 - alt_titles = list(JOB_ALT_JOURNALIST = /datum/alt_title/journalist, JOB_ALT_REPORTER = /datum/alt_title/reporter, JOB_ALT_WRITER = /datum/alt_title/writer, - JOB_ALT_HISTORIAN = /datum/alt_title/historian, JOB_ALT_ARCHIVIST = /datum/alt_title/archivist, JOB_ALT_PROFESSOR = /datum/alt_title/professor, - JOB_ALT_ACADEMIC = /datum/alt_title/academic, JOB_ALT_PHILOSOPHER = /datum/alt_title/philosopher, JOB_ALT_CURATOR = /datum/alt_title/curator) - pto_type = PTO_CIVILIAN - -/datum/alt_title/reporter - title = JOB_ALT_REPORTER - title_blurb = "The " + JOB_ALT_REPORTER + " uses the Library as a base of operations, from which they can report the news and goings-on on the station with their camera." - -/datum/alt_title/historian - title = JOB_ALT_HISTORIAN - title_blurb = "The " + JOB_ALT_HISTORIAN + " uses the Library as a base of operation to record any important events occurring on station." - -/datum/alt_title/archivist - title = JOB_ALT_ARCHIVIST - title_blurb = "The " + JOB_ALT_ARCHIVIST + " uses the Library as a base of operation to record any important events occurring on station." - -/datum/alt_title/professor - title = JOB_ALT_PROFESSOR - title_blurb = "The " + JOB_ALT_PROFESSOR + " uses the Library as a base of operations to share their vast knowledge with the crew." - -/datum/alt_title/academic - title = JOB_ALT_ACADEMIC - title_blurb = "The " + JOB_ALT_ACADEMIC + " uses the Library as a base of operations to share their vast knowledge with the crew." - -/datum/alt_title/philosopher - title = JOB_ALT_PHILOSOPHER - title_blurb = "The " + JOB_ALT_PHILOSOPHER + " uses the Library as a base of operation to ruminate on nature of life and other great questions, and share their opinions with the crew." - -/datum/alt_title/curator - title = JOB_ALT_CURATOR - title_blurb = "The " + JOB_ALT_CURATOR + " uses the Library as a base of operation to gather the finest of art for display and preservation." - -/datum/job/lawyer - disallow_jobhop = TRUE - pto_type = PTO_CIVILIAN - alt_titles = list(JOB_ALT_INTERNAL_AFFAIRS_LIAISON = /datum/alt_title/ia_liaison, JOB_ALT_INTERNAL_AFFAIRS_DELEGATE = /datum/alt_title/ia_delegate, - JOB_ALT_INTERNAL_AFFAIRS_INVESTIGATOR = /datum/alt_title/ia_investigator) - -/datum/alt_title/ia_liaison - title = JOB_ALT_INTERNAL_AFFAIRS_LIAISON - -/datum/alt_title/ia_delegate - title = JOB_ALT_INTERNAL_AFFAIRS_DELEGATE - -/datum/alt_title/ia_investigator - title = JOB_ALT_INTERNAL_AFFAIRS_INVESTIGATOR - - -/datum/job/chaplain - pto_type = PTO_CIVILIAN - alt_titles = list(JOB_ALT_MISSIONARY = /datum/alt_title/missionary, JOB_ALT_PREACHER = /datum/alt_title/preacher, JOB_ALT_PRIEST = /datum/alt_title/priest, - JOB_ALT_NUN = /datum/alt_title/nun, JOB_ALT_MONK = /datum/alt_title/monk, JOB_ALT_COUNSELOR = /datum/alt_title/counselor, - JOB_ALT_GURU = /datum/alt_title/guru) - -/datum/alt_title/guru - title = JOB_ALT_GURU - title_blurb = "The " + JOB_ALT_GURU + " primarily tries to offer spiritual guidance to those who come seeking it." - -/datum/alt_title/missionary - title = JOB_ALT_MISSIONARY - -/datum/alt_title/preacher - title = JOB_ALT_PREACHER - -/datum/alt_title/priest - title = JOB_ALT_PRIEST - -/datum/alt_title/nun - title = JOB_ALT_NUN - -/datum/alt_title/monk - title = JOB_ALT_MONK - - -////////////////////////////////// -// Pilot -////////////////////////////////// - -/datum/job/pilot - title = JOB_PILOT - flag = PILOT - departments = list(DEPARTMENT_CIVILIAN) - department_flag = CIVILIAN - faction = FACTION_STATION - total_positions = 2 - spawn_positions = 2 - supervisors = "the " + JOB_HEAD_OF_PERSONNEL - selection_color = "#515151" - economic_modifier = 5 - minimal_player_age = 3 - pto_type = PTO_CIVILIAN - access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot) - minimal_access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot) - outfit_type = /decl/hierarchy/outfit/job/pilot - job_description = "A " + JOB_PILOT + " flies the various shuttles in the Virgo-Erigone System." - alt_titles = list(JOB_ALT_COPILOT = /datum/alt_title/co_pilot, JOB_ALT_NAVIGATOR = /datum/alt_title/navigator, JOB_ALT_HELMSMAN = /datum/alt_title/helmsman) - -/datum/alt_title/co_pilot - title = JOB_ALT_COPILOT - title_blurb = "A Co-" + JOB_ALT_COPILOT + " is there primarily to assist main pilot as well as learn from them" - -/datum/alt_title/navigator - title = JOB_ALT_NAVIGATOR - -/datum/alt_title/helmsman - title = JOB_ALT_HELMSMAN - -/datum/job/pilot/get_request_reasons() - return list("Assembling expedition team") - -////////////////////////////////// -// Entertainer -////////////////////////////////// - -/datum/job/entertainer - title = JOB_ENTERTAINER - flag = ENTERTAINER - departments = list(DEPARTMENT_CIVILIAN) - department_flag = CIVILIAN - faction = FACTION_STATION - total_positions = 4 - spawn_positions = 4 - supervisors = "the " + JOB_HEAD_OF_PERSONNEL - selection_color = "#515151" - access = list(access_entertainment) - minimal_access = list(access_entertainment) - pto_type = PTO_CIVILIAN - - outfit_type = /decl/hierarchy/outfit/job/assistant/entertainer - job_description = "An " + JOB_ENTERTAINER + " does just that, entertains! Put on plays, play music, sing songs, tell stories, or read your favorite fanfic." - alt_titles = list(JOB_ALT_PERFORMER = /datum/alt_title/performer, JOB_ALT_MUSICIAN = /datum/alt_title/musician, JOB_ALT_STAGEHAND = /datum/alt_title/stagehand, - JOB_ALT_ACTOR = /datum/alt_title/actor, JOB_ALT_DANCER = /datum/alt_title/dancer, JOB_ALT_SINGER = /datum/alt_title/singer, - JOB_ALT_MAGICIAN = /datum/alt_title/magician, JOB_ALT_COMEDIAN = /datum/alt_title/comedian, JOB_ALT_ARTIST = /datum/alt_title/tragedian, - JOB_ALT_ARTIST = /datum/alt_title/artist, JOB_ALT_GAME_MASTER = /datum/alt_title/game_master) - -// Entertainer Alt Titles -/datum/alt_title/actor - title = JOB_ALT_ACTOR - title_blurb = "An " + JOB_ALT_ACTOR + " is someone who acts out a role! Whatever sort of character it is, get into it and impress people with power of comedy and tragedy!" - -/datum/alt_title/performer - title = JOB_ALT_PERFORMER - title_blurb = "A " + JOB_ALT_PERFORMER + " is someone who performs! Whatever sort of performance will come to your mind, the world's a stage!" - -/datum/alt_title/musician - title = JOB_ALT_MUSICIAN - title_blurb = "A " + JOB_ALT_MUSICIAN + " is someone who makes music with a wide variety of musical instruments!" - -/datum/alt_title/stagehand - title = JOB_ALT_STAGEHAND - title_blurb = "A " + JOB_ALT_STAGEHAND + " typically performs everything the rest of the entertainers don't. Operate lights, shutters, windows, or narrate through your voicebox!" - -/datum/alt_title/dancer - title = JOB_ALT_DANCER - title_blurb = "A " + JOB_ALT_DANCER + " is someone who impresses people through power of their own body! From waltz to breakdance, as long as crowd as cheering!" - -/datum/alt_title/singer - title = JOB_ALT_SINGER - title_blurb = "A " + JOB_ALT_SINGER + " is someone with gift of melodious voice! Impress people with your vocal range!" - -/datum/alt_title/magician - title = JOB_ALT_MAGICIAN - title_blurb = "A " + JOB_ALT_MAGICIAN + " is someone who awes those around them with impossible! Show off your repertoire of magic tricks, while keeping the secret hidden!" - -/datum/alt_title/comedian - title = JOB_ALT_COMEDIAN - title_blurb = "A " + JOB_ALT_COMEDIAN + " will focus on making people laugh with the power of wit! Telling jokes, stand-up comedy, you are here to make others smile!" - -/datum/alt_title/tragedian - title = JOB_ALT_ARTIST - title_blurb = "A " + JOB_ALT_ARTIST + " will focus on making people think about life and world around them! Life is a tragedy, and who's better to convey its emotions than you?" - -/datum/alt_title/artist - title = JOB_ALT_ARTIST - title_blurb = "An " + JOB_ALT_ARTIST + "'s calling is to create beautiful arts! Whatever form may they take, create and have people astonished with your creativity." - -/datum/alt_title/game_master - title = JOB_ALT_GAME_MASTER - title_blurb = "A " + JOB_ALT_GAME_MASTER + " provides recreation for the crew by hosting variety of games. From cards to roleplaying to something more personalized." - -////////////////////////////////// -// Entrepreneur -////////////////////////////////// - -/datum/job/entrepreneur - title = JOB_ENTREPRENEUR - flag = ENTREPRENEUR - departments = list(DEPARTMENT_CIVILIAN) - department_flag = CIVILIAN - faction = FACTION_STATION - total_positions = 4 - spawn_positions = 4 - supervisors = "the " + JOB_HEAD_OF_PERSONNEL - selection_color = "#515151" - access = list() - minimal_access = list() - pto_type = PTO_CIVILIAN - - outfit_type = /decl/hierarchy/outfit/job/assistant/entrepreneur - job_description = "An " + JOB_ENTREPRENEUR + " is basically a visitor that obtained special permission to offer personal services to people on station. \ - They will offer people these services and, potentially, even demand payment!" - alt_titles = list(JOB_ALT_LAWYER = /datum/alt_title/lawyer, JOB_ALT_PRIVATE_EYE = /datum/alt_title/private_eye, JOB_ALT_BODYGUARD = /datum/alt_title/bodyguard, - JOB_ALT_PERSONAL_PHYSICIAN = /datum/alt_title/personal_physician, JOB_ALT_DENTIST = /datum/alt_title/dentist, JOB_ALT_FITNESS_INSTRUCTOR = /datum/alt_title/fitness_instructor, - JOB_ALT_YOGA_TEACHER = /datum/alt_title/yoga_teacher, JOB_ALT_MASSEUSE = /datum/alt_title/masseuse, JOB_ALT_TRADESPERSON = /datum/alt_title/tradesperson, - JOB_ALT_STREAMER = /datum/alt_title/streamer, JOB_ALT_INFLUENCER = /datum/alt_title/influencer, JOB_ALT_PARANORMAL_INVESTIGATOR = /datum/alt_title/paranormal_investigator, - JOB_ALT_PERSONAL_SECRETARY = /datum/alt_title/personal_secretary, JOB_ALT_STYLIST = /datum/alt_title/stylist, JOB_ALT_FISHER = /datum/alt_title/fisher, - JOB_ALT_FORTUNE_TELLER = /datum/alt_title/fortune_teller, JOB_ALT_SPIRIT_HEALER = /datum/alt_title/spirit_healer) - -/datum/alt_title/lawyer - title = JOB_ALT_LAWYER - title_blurb = "A " + JOB_ALT_LAWYER + " is knowledgable in various legal systems, including station's operations. They can try to offer their legal counsel, although nobody is really obliged to listen." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_secretary - -/datum/alt_title/private_eye - title = JOB_ALT_PRIVATE_EYE - title_blurb = "A " + JOB_ALT_PRIVATE_EYE + " is a detective that has no credentials or equipment. But if someone wants something found without security's knowledge, they are the one to go to." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/private_eye - -/datum/alt_title/bodyguard - title = JOB_ALT_BODYGUARD - title_blurb = "A " + JOB_ALT_BODYGUARD + " offers service of personal protection. They may not be allowed any weapons, but their own body is weapon enough." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/bodyguard - -/datum/alt_title/personal_physician - title = JOB_ALT_PERSONAL_PHYSICIAN - title_blurb = "A " + JOB_ALT_PERSONAL_PHYSICIAN + " is a doctor dedicated less to Hippocratic Oath and more to the moneymaking grind. Their license may be expired, but the grindset never will be." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_physician - -/datum/alt_title/dentist - title = JOB_ALT_DENTIST - title_blurb = "A " + JOB_ALT_DENTIST + " is a doctor that specializes in oral care. Company may not recognize them as a proper doctor, but surely their customers will." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/dentist - -/datum/alt_title/fitness_instructor - title = JOB_ALT_FITNESS_INSTRUCTOR - title_blurb = "A " + JOB_ALT_FITNESS_INSTRUCTOR + " dedicates themselves to improving the health of the crew through physical activity, and boy, do they need the help." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fitness_instructor - -/datum/alt_title/yoga_teacher - title = JOB_ALT_YOGA_TEACHER - title_blurb = "A " + JOB_ALT_YOGA_TEACHER + " is similar to a fitness instructor, but rather than turning the round bodies into firm ones, they focus on helping people find balance and harmony." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/yoga_teacher - -/datum/alt_title/masseuse - title = JOB_ALT_MASSEUSE - title_blurb = "A " + JOB_ALT_MASSEUSE + " is master of physical therapy and working others' bodies with their hands." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/masseuse - -/datum/alt_title/tradesperson - title = JOB_ALT_TRADESPERSON - title_blurb = "A " + JOB_ALT_TRADESPERSON + " is someone attempting to make money via the most obvious act of all - buying and selling. Now if only customs allowed you to bring your goods along..." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/tradesperson - -/datum/alt_title/streamer - title = JOB_ALT_STREAMER - title_blurb = "A " + JOB_ALT_STREAMER + " is here to entertain. Not the crew! Their audience across exonet!" - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/streamer - -/datum/alt_title/influencer - title = JOB_ALT_INFLUENCER - title_blurb = "An " + JOB_ALT_INFLUENCER + " has lucked out with some exonet following, and was given permission to go onstation to provide free exposure. Don't let it go to your head." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/influencer - -/datum/alt_title/paranormal_investigator - title = JOB_ALT_PARANORMAL_INVESTIGATOR - title_blurb = "A " + JOB_ALT_PARANORMAL_INVESTIGATOR + " looks beyond what is accepted by modern science, and searches for the true unknown. Aliens, alternate dimensions, ghosts... The truth is out there!" - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/paranormal_investigator - -/datum/alt_title/personal_secretary - title = JOB_ALT_PERSONAL_SECRETARY - title_blurb = "A " + JOB_ALT_PERSONAL_SECRETARY + " offers services of general assistance. Although it's doubtful anyone will ever actually need those." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/personal_secretary - -/datum/alt_title/stylist - title = JOB_ALT_STYLIST - title_blurb = "A " + JOB_ALT_STYLIST + " offers fashion advice, as well as helps with adjusting appearance of the crew to better suit their beauty standards." - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/stylist - -/datum/alt_title/fisher - title = JOB_ALT_FISHER - title_blurb = "A " + JOB_ALT_FISHER + " is a capable angler, who is good at obtaining large amounts of marine goods. Whether you generously give them to station or attempt to make a quick thaler by selling, it's up to you!" - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fisher - -/datum/alt_title/fortune_teller - title = JOB_ALT_FORTUNE_TELLER - title_blurb = "A " + JOB_ALT_FORTUNE_TELLER + " peers into the future, and offers these visions to others. Occasionally those visions may even come true!" - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/fortune_teller - -/datum/alt_title/spirit_healer - title = JOB_ALT_SPIRIT_HEALER - title_blurb = "A " + JOB_ALT_SPIRIT_HEALER + " offers alternative forms of medicine. Rituals, magic rocks, seances... It totally works. What's that about placebo?" - title_outfit = /decl/hierarchy/outfit/job/assistant/entrepreneur/spirit_healer diff --git a/code/game/jobs/job/department.dm b/code/game/jobs/job/department.dm index 47d6de97ad..87ad819e24 100644 --- a/code/game/jobs/job/department.dm +++ b/code/game/jobs/job/department.dm @@ -60,7 +60,7 @@ name = "Miscellaneous" short_name = "Misc" color = "#666666" - sorting_order = 0 + sorting_order = -5 assignable = FALSE /datum/department/synthetic diff --git a/code/game/jobs/job/department_vr.dm b/code/game/jobs/job/department_vr.dm deleted file mode 100644 index 2af1d8e94f..0000000000 --- a/code/game/jobs/job/department_vr.dm +++ /dev/null @@ -1,6 +0,0 @@ -/datum/department/misc - name = "Off-Duty" - short_name = "Offduty" - color = "#666666" - sorting_order = -5 - assignable = FALSE \ No newline at end of file diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm index 576739d659..c4a6b350f8 100644 --- a/code/game/jobs/job/engineering.dm +++ b/code/game/jobs/job/engineering.dm @@ -22,15 +22,20 @@ ideal_age_by_species = list(SPECIES_UNATHI = 140, "mechanical" = 20, SPECIES_HUMAN_VATBORN = 20) banned_job_species = list(SPECIES_TESHARI, SPECIES_DIONA, SPECIES_PROMETHEAN, SPECIES_ZADDAT, "digital") + disallow_jobhop = TRUE + pto_type = PTO_ENGINEERING + dept_time_required = 60 access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, - access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, - access_heads, access_construction, access_sec_doors, - access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload) + access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, + access_heads, access_construction, + access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload, access_gateway) + minimal_access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, - access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, - access_heads, access_construction, access_sec_doors, - access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload) + access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, + access_heads, access_construction, + access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload, access_gateway) + alt_titles = list(JOB_ALT_HEAD_ENGINEER = /datum/alt_title/head_engineer, JOB_ALT_FOREMAN = /datum/alt_title/foreman, JOB_ALT_MAINTENANCE_MANAGER = /datum/alt_title/maintenance_manager) minimal_player_age = 7 outfit_type = /decl/hierarchy/outfit/job/engineering/chief_engineer @@ -38,6 +43,18 @@ of manpower as much as they handle hands-on operations and repairs. They are also expected to keep the rest of the station informed of \ any structural threats to the station that may be hazardous to health or disruptive to work." +/datum/job/chief_engineer/get_request_reasons() + return list("Engine setup", "Construction project", "Repairs necessary", "Training crew", "Assembling expedition team") + +/datum/alt_title/head_engineer + title = JOB_ALT_HEAD_ENGINEER + +/datum/alt_title/foreman + title = JOB_ALT_FOREMAN + +/datum/alt_title/maintenance_manager + title = JOB_ALT_MAINTENANCE_MANAGER + ////////////////////////////////// // Engineer ////////////////////////////////// @@ -52,10 +69,12 @@ supervisors = "the "+ JOB_CHIEF_ENGINEER selection_color = "#5B4D20" economic_modifier = 5 + pto_type = PTO_ENGINEERING + access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics) minimal_access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction) - alt_titles = list(JOB_ALT_MAINTENANCE_TECHNICIAN = /datum/alt_title/maint_tech, - JOB_ALT_ENGINE_TECHNICIAN = /datum/alt_title/engine_tech, JOB_ALT_ELECTRICIAN = /datum/alt_title/electrician) + alt_titles = list(JOB_ALT_MAINTENANCE_TECHNICIAN = /datum/alt_title/maint_tech, JOB_ALT_ENGINE_TECHNICIAN = /datum/alt_title/engine_tech, + JOB_ALT_ELECTRICIAN = /datum/alt_title/electrician, JOB_ALT_CONSTRUCTION_ENGINEER = /datum/alt_title/construction_engi, JOB_ALT_ENGINEERING_CONTRACTOR = /datum/alt_title/engineering_contractor, JOB_ALT_COMPUTER_TECHNICIAN = /datum/alt_title/computer_tech) minimal_player_age = 3 min_age_by_species = list(SPECIES_PROMETHEAN = 2) @@ -64,6 +83,9 @@ job_description = "An " + JOB_ENGINEER + " keeps the station running. They repair damages, keep the atmosphere stable, and ensure that power is being \ generated and distributed. On quiet shifts, they may be called upon to make cosmetic alterations to the station." +/datum/job/engineer/get_request_reasons() + return list("Engine setup", "Construction project", "Repairs necessary", "Assembling expedition team") + // Engineer Alt Titles /datum/alt_title/maint_tech title = JOB_ALT_MAINTENANCE_TECHNICIAN @@ -80,6 +102,23 @@ title_blurb = "An " + JOB_ALT_ELECTRICIAN + "'s primary duty is making sure power is properly distributed thoughout the station, utilizing solars, substations, and other \ methods to ensure every department has power in an emergency." +/datum/alt_title/construction_engi + title = JOB_ALT_CONSTRUCTION_ENGINEER + title_blurb = "A " + JOB_ALT_CONSTRUCTION_ENGINEER + " fulfills similar duties to other engineers, but usually occupies spare time with construction of extra facilities in dedicated areas or \ + as additions to station layout." + +/datum/alt_title/engineering_contractor + title = JOB_ALT_ENGINEERING_CONTRACTOR + title_blurb = "An " + JOB_ALT_ENGINEERING_CONTRACTOR + " fulfills similar duties to other engineers, but isn't directly employed by NT proper." + +/datum/alt_title/computer_tech + title = JOB_ALT_COMPUTER_TECHNICIAN + title_blurb = "A " + JOB_ALT_COMPUTER_TECHNICIAN + " fulfills similar duties to other engineers, but specializes in working with software and computers. They also often deal with integrated circuits." + +/datum/alt_title/salvage_tech + title = JOB_ALT_SALVAGE_TECHNICIAN + title_blurb = "A " + JOB_ALT_SALVAGE_TECHNICIAN + " is responsible for breaking down debris and obsolete equipment to recover useful components and materials." + ////////////////////////////////// // Atmos Tech ////////////////////////////////// @@ -90,16 +129,36 @@ department_flag = ENGSEC faction = FACTION_STATION total_positions = 3 - spawn_positions = 2 + spawn_positions = 3 + pto_type = PTO_ENGINEERING supervisors = "the " + JOB_CHIEF_ENGINEER selection_color = "#5B4D20" economic_modifier = 5 access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics, access_external_airlocks) minimal_access = list(access_eva, access_engine, access_atmospherics, access_maint_tunnels, access_emergency_storage, access_construction, access_external_airlocks) + alt_titles = list(JOB_ALT_ATMOSPHERIC_ENGINEER = /datum/alt_title/atmos_engi, JOB_ALT_ATMOSPHERIC_MAINTAINER = /datum/alt_title/atmos_maint, JOB_ALT_DISPOSALS_TECHNICIAN = /datum/alt_title/disposals_tech, + JOB_ALT_FUEL_TECHNICIAN = /datum/alt_title/refuel_tech) + minimal_player_age = 3 min_age_by_species = list(SPECIES_PROMETHEAN = 2) outfit_type = /decl/hierarchy/outfit/job/engineering/atmos job_description = "An " + JOB_ATMOSPHERIC_TECHNICIAN + " is primarily concerned with keeping the station's atmosphere breathable. They are expected to have a good \ understanding of the pipes, vents, and scrubbers that move gasses around the station, and to be familiar with proper firefighting procedure." + +/datum/job/atmos/get_request_reasons() + return list("Construction project", "Repairs necessary", "Assembling expedition team") + +/datum/alt_title/refuel_tech + title = JOB_ALT_FUEL_TECHNICIAN + +/datum/alt_title/atmos_maint + title = JOB_ALT_ATMOSPHERIC_MAINTAINER + +/datum/alt_title/atmos_engi + title = JOB_ALT_ATMOSPHERIC_ENGINEER + +/datum/alt_title/disposals_tech + title = JOB_ALT_DISPOSALS_TECHNICIAN + title_blurb = "A " + JOB_ALT_DISPOSALS_TECHNICIAN + " is an " + JOB_ATMOSPHERIC_TECHNICIAN + " still and can fulfill all the same duties, although specializes more in disposals delivery system's operations and configurations." diff --git a/code/game/jobs/job/engineering_vr.dm b/code/game/jobs/job/engineering_vr.dm deleted file mode 100644 index bb784a8c96..0000000000 --- a/code/game/jobs/job/engineering_vr.dm +++ /dev/null @@ -1,75 +0,0 @@ -/datum/job/chief_engineer - disallow_jobhop = TRUE - pto_type = PTO_ENGINEERING - dept_time_required = 60 - - access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, - access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, - access_heads, access_construction, - access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload, access_gateway) - - minimal_access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, - access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva, - access_heads, access_construction, - access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload, access_gateway) - alt_titles = list(JOB_ALT_HEAD_ENGINEER = /datum/alt_title/head_engineer, JOB_ALT_FOREMAN = /datum/alt_title/foreman, JOB_ALT_MAINTENANCE_MANAGER = /datum/alt_title/maintenance_manager) - -/datum/alt_title/head_engineer - title = JOB_ALT_HEAD_ENGINEER - -/datum/alt_title/foreman - title = JOB_ALT_FOREMAN - -/datum/alt_title/maintenance_manager - title = JOB_ALT_MAINTENANCE_MANAGER - -/datum/job/chief_engineer/get_request_reasons() - return list("Engine setup", "Construction project", "Repairs necessary", "Training crew", "Assembling expedition team") - - -/datum/job/engineer - pto_type = PTO_ENGINEERING - alt_titles = list(JOB_ALT_MAINTENANCE_TECHNICIAN = /datum/alt_title/maint_tech, JOB_ALT_ENGINE_TECHNICIAN = /datum/alt_title/engine_tech, - JOB_ALT_ELECTRICIAN = /datum/alt_title/electrician, JOB_ALT_CONSTRUCTION_ENGINEER = /datum/alt_title/construction_engi, JOB_ALT_ENGINEERING_CONTRACTOR = /datum/alt_title/engineering_contractor, JOB_ALT_COMPUTER_TECHNICIAN = /datum/alt_title/computer_tech) - -/datum/alt_title/construction_engi - title = JOB_ALT_CONSTRUCTION_ENGINEER - title_blurb = "A " + JOB_ALT_CONSTRUCTION_ENGINEER + " fulfills similar duties to other engineers, but usually occupies spare time with construction of extra facilities in dedicated areas or \ - as additions to station layout." - -/datum/alt_title/engineering_contractor - title = JOB_ALT_ENGINEERING_CONTRACTOR - title_blurb = "An " + JOB_ALT_ENGINEERING_CONTRACTOR + " fulfills similar duties to other engineers, but isn't directly employed by NT proper." - -/datum/job/engineer/get_request_reasons() - return list("Engine setup", "Construction project", "Repairs necessary", "Assembling expedition team") - -/datum/alt_title/computer_tech - title = JOB_ALT_COMPUTER_TECHNICIAN - title_blurb = "A " + JOB_ALT_COMPUTER_TECHNICIAN + " fulfills similar duties to other engineers, but specializes in working with software and computers. They also often deal with integrated circuits." - -/datum/alt_title/salvage_tech - title = JOB_ALT_SALVAGE_TECHNICIAN - title_blurb = "A " + JOB_ALT_SALVAGE_TECHNICIAN + " is responsible for breaking down debris and obsolete equipment to recover useful components and materials." - -/datum/job/atmos - spawn_positions = 3 - pto_type = PTO_ENGINEERING - alt_titles = list(JOB_ALT_ATMOSPHERIC_ENGINEER = /datum/alt_title/atmos_engi, JOB_ALT_ATMOSPHERIC_MAINTAINER = /datum/alt_title/atmos_maint, JOB_ALT_DISPOSALS_TECHNICIAN = /datum/alt_title/disposals_tech, - JOB_ALT_FUEL_TECHNICIAN = /datum/alt_title/refuel_tech) - -/datum/alt_title/atmos_maint - title = JOB_ALT_ATMOSPHERIC_MAINTAINER - -/datum/alt_title/atmos_engi - title = JOB_ALT_ATMOSPHERIC_ENGINEER - -/datum/alt_title/disposals_tech - title = JOB_ALT_DISPOSALS_TECHNICIAN - title_blurb = "A " + JOB_ALT_DISPOSALS_TECHNICIAN + " is an " + JOB_ATMOSPHERIC_TECHNICIAN + " still and can fulfill all the same duties, although specializes more in disposals delivery system's operations and configurations." - -/datum/alt_title/refuel_tech - title = JOB_ALT_FUEL_TECHNICIAN - -/datum/job/atmos/get_request_reasons() - return list("Construction project", "Repairs necessary", "Assembling expedition team") diff --git a/code/game/jobs/job/exploration_vr.dm b/code/game/jobs/job/exploration.dm similarity index 100% rename from code/game/jobs/job/exploration_vr.dm rename to code/game/jobs/job/exploration.dm diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index b191d67072..d01d60e4be 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -39,6 +39,29 @@ // Description of the job's role and minimum responsibilities. var/job_description = "This Job doesn't have a description! Please report it!" + //Requires a ckey to be whitelisted in jobwhitelist.txt + var/whitelist_only = 0 + + //Does not display this job on the occupation setup screen + var/latejoin_only = 0 + + //Every hour playing this role gains this much time off. (Can be negative for off duty jobs!) + var/timeoff_factor = 3 + + //What type of PTO is that job earning? + var/pto_type + + //Disallow joining as this job midround from off-duty position via going on-duty + var/disallow_jobhop = FALSE + + //Time required in the department as other jobs before playing this one (in hours) + var/dept_time_required = 0 + + //Do we forbid ourselves from earning PTO? + var/playtime_only = FALSE + + var/requestable = TRUE + /datum/job/New() . = ..() department_accounts = department_accounts || departments_managed @@ -184,3 +207,47 @@ if(brain_type in banned_job_species) return TRUE */ + + +// Check client-specific availability rules. +/datum/job/proc/player_has_enough_pto(client/C) + return timeoff_factor >= 0 || (C && LAZYACCESS(C.department_hours, pto_type) > 0) + +/datum/job/proc/player_has_enough_playtime(client/C) + return (available_in_playhours(C) == 0) + +/datum/job/proc/available_in_playhours(client/C) + if(C && CONFIG_GET(flag/use_playtime_restriction_for_jobs) && dept_time_required) + if(isnum(C.play_hours[pto_type])) // Has played that department before + return max(0, dept_time_required - C.play_hours[pto_type]) + else // List doesn't have that entry, maybe never played, maybe invalid PTO type (you should fix that...) + return dept_time_required // Could be 0, too, which is fine! They can play that + return 0 + +// Special treatment for some the more complicated heads + +// Captain gets every department combined +/datum/job/captain/available_in_playhours(client/C) + if(C && CONFIG_GET(flag/use_playtime_restriction_for_jobs) && dept_time_required) + var/remaining_time_needed = dept_time_required + for(var/key in C.play_hours) + if(isnum(C.play_hours[key]) && !(key == PTO_TALON)) + remaining_time_needed = max(0, remaining_time_needed - C.play_hours[key]) + return remaining_time_needed + return 0 + +// HoP gets civilian, cargo, and exploration combined +/datum/job/hop/available_in_playhours(client/C) + if(C && CONFIG_GET(flag/use_playtime_restriction_for_jobs) && dept_time_required) + var/remaining_time_needed = dept_time_required + if(isnum(C.play_hours[PTO_CIVILIAN])) + remaining_time_needed = max(0, remaining_time_needed - C.play_hours[PTO_CIVILIAN]) + if(isnum(C.play_hours[PTO_CARGO])) + remaining_time_needed = max(0, remaining_time_needed - C.play_hours[PTO_CARGO]) + if(isnum(C.play_hours[PTO_EXPLORATION])) + remaining_time_needed = max(0, remaining_time_needed - C.play_hours[PTO_EXPLORATION]) + return remaining_time_needed + return 0 + +/datum/job/proc/get_request_reasons() + return list() diff --git a/code/game/jobs/job/job_vr.dm b/code/game/jobs/job/job_vr.dm deleted file mode 100644 index 3796714b5e..0000000000 --- a/code/game/jobs/job/job_vr.dm +++ /dev/null @@ -1,66 +0,0 @@ -/datum/job - //Requires a ckey to be whitelisted in jobwhitelist.txt - var/whitelist_only = 0 - - //Does not display this job on the occupation setup screen - var/latejoin_only = 0 - - //Every hour playing this role gains this much time off. (Can be negative for off duty jobs!) - var/timeoff_factor = 3 - - //What type of PTO is that job earning? - var/pto_type - - //Disallow joining as this job midround from off-duty position via going on-duty - var/disallow_jobhop = FALSE - - //Time required in the department as other jobs before playing this one (in hours) - var/dept_time_required = 0 - - //Do we forbid ourselves from earning PTO? - var/playtime_only = FALSE - - var/requestable = TRUE - -// Check client-specific availability rules. -/datum/job/proc/player_has_enough_pto(client/C) - return timeoff_factor >= 0 || (C && LAZYACCESS(C.department_hours, pto_type) > 0) - -/datum/job/proc/player_has_enough_playtime(client/C) - return (available_in_playhours(C) == 0) - -/datum/job/proc/available_in_playhours(client/C) - if(C && CONFIG_GET(flag/use_playtime_restriction_for_jobs) && dept_time_required) - if(isnum(C.play_hours[pto_type])) // Has played that department before - return max(0, dept_time_required - C.play_hours[pto_type]) - else // List doesn't have that entry, maybe never played, maybe invalid PTO type (you should fix that...) - return dept_time_required // Could be 0, too, which is fine! They can play that - return 0 - -// Special treatment for some the more complicated heads - -// Captain gets every department combined -/datum/job/captain/available_in_playhours(client/C) - if(C && CONFIG_GET(flag/use_playtime_restriction_for_jobs) && dept_time_required) - var/remaining_time_needed = dept_time_required - for(var/key in C.play_hours) - if(isnum(C.play_hours[key]) && !(key == PTO_TALON)) - remaining_time_needed = max(0, remaining_time_needed - C.play_hours[key]) - return remaining_time_needed - return 0 - -// HoP gets civilian, cargo, and exploration combined -/datum/job/hop/available_in_playhours(client/C) - if(C && CONFIG_GET(flag/use_playtime_restriction_for_jobs) && dept_time_required) - var/remaining_time_needed = dept_time_required - if(isnum(C.play_hours[PTO_CIVILIAN])) - remaining_time_needed = max(0, remaining_time_needed - C.play_hours[PTO_CIVILIAN]) - if(isnum(C.play_hours[PTO_CARGO])) - remaining_time_needed = max(0, remaining_time_needed - C.play_hours[PTO_CARGO]) - if(isnum(C.play_hours[PTO_EXPLORATION])) - remaining_time_needed = max(0, remaining_time_needed - C.play_hours[PTO_EXPLORATION]) - return remaining_time_needed - return 0 - -/datum/job/proc/get_request_reasons() - return list() diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index 9298028eb9..c8a96efad9 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -16,11 +16,13 @@ req_admin_notify = 1 economic_modifier = 10 access = list(access_medical, access_medical_equip, access_morgue, access_genetics, access_heads, - access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, - access_keycard_auth, access_sec_doors, access_psychiatrist, access_eva, access_external_airlocks, access_maint_tunnels) + access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, + access_keycard_auth, access_psychiatrist, access_eva, access_external_airlocks, access_maint_tunnels, access_gateway) + minimal_access = list(access_medical, access_medical_equip, access_morgue, access_genetics, access_heads, - access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, - access_keycard_auth, access_sec_doors, access_psychiatrist, access_eva, access_external_airlocks, access_maint_tunnels) + access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, + access_keycard_auth, access_psychiatrist, access_eva, access_external_airlocks, access_maint_tunnels, access_gateway) + alt_titles = list(JOB_ALT_CHIEF_PHYSICIAN = /datum/alt_title/chief_physician, JOB_ALT_MEDICAL_DIRECTOR = /datum/alt_title/medical_director, JOB_ALT_HEALTHCARE_MANAGER = /datum/alt_title/healthcare_manager) minimum_character_age = 25 min_age_by_species = list(SPECIES_UNATHI = 70, "mechanical" = 10, SPECIES_HUMAN_VATBORN = 14) @@ -29,12 +31,28 @@ ideal_age_by_species = list(SPECIES_UNATHI = 140, "mechanical" = 20, SPECIES_HUMAN_VATBORN = 20) banned_job_species = list(SPECIES_TESHARI, SPECIES_DIONA, SPECIES_PROMETHEAN, SPECIES_ZADDAT, "digital") + disallow_jobhop = TRUE + pto_type = PTO_MEDICAL + dept_time_required = 60 + outfit_type = /decl/hierarchy/outfit/job/medical/cmo job_description = "The CMO manages the Medical department and is a position requiring experience and skill; their goal is to ensure that their \ staff keep the station's crew healthy and whole. They are primarily interested in making sure that patients are safely found and \ transported to Medical for treatment. They are expected to keep the crew informed about threats to their health and safety, and \ about the importance of Suit Sensors." +/datum/job/cmo/get_request_reasons() + return list("Surgery pending", "Viral outbreak", "Training crew", "Assembling expedition team") + +/datum/alt_title/chief_physician + title = JOB_ALT_CHIEF_PHYSICIAN + +/datum/alt_title/medical_director + title = JOB_ALT_MEDICAL_DIRECTOR + +/datum/alt_title/healthcare_manager + title = JOB_ALT_HEALTHCARE_MANAGER + ////////////////////////////////// // Medical Doctor ////////////////////////////////// @@ -45,7 +63,8 @@ department_flag = MEDSCI faction = FACTION_STATION total_positions = 5 - spawn_positions = 3 + spawn_positions = 5 + pto_type = PTO_MEDICAL supervisors = "the " + JOB_CHIEF_MEDICAL_OFFICER selection_color = "#013D3B" economic_modifier = 7 @@ -55,14 +74,15 @@ job_description = "A " + JOB_MEDICAL_DOCTOR + " is a Jack-of-All-Trades Medical title, covering a variety of skill levels and minor specializations. They are likely \ familiar with basic first aid, and a number of accompanying medications, and can generally save, if not cure, a majority of the \ patients they encounter." - alt_titles = list( - JOB_ALT_SURGEON = /datum/alt_title/surgeon, - JOB_ALT_EMERGENCY_PHYSICIAN = /datum/alt_title/emergency_physician, - JOB_ALT_NURSE = /datum/alt_title/nurse, - JOB_ALT_VIROLOGIST = /datum/alt_title/virologist) + alt_titles = list(JOB_ALT_PHYSICIAN = /datum/alt_title/physician, JOB_ALT_MEDICAL_PRACTITIONER = /datum/alt_title/medical_practitioner, JOB_ALT_SURGEON = /datum/alt_title/surgeon, + JOB_ALT_EMERGENCY_PHYSICIAN = /datum/alt_title/emergency_physician, JOB_ALT_NURSE = /datum/alt_title/nurse, JOB_ALT_ORDERLY = /datum/alt_title/orderly, + JOB_ALT_VIROLOGIST = /datum/alt_title/virologist, JOB_ALT_MEDICAL_CONTRACTOR = /datum/alt_title/medical_contractor) min_age_by_species = list(SPECIES_PROMETHEAN = 3) +/datum/job/doctor/get_request_reasons() + return list("Surgery pending", "Viral outbreak", "Assembling expedition team") + //Medical Doctor Alt Titles /datum/alt_title/surgeon title = JOB_ALT_SURGEON @@ -90,7 +110,22 @@ to produce the various types of virus foods or mutagens." title_outfit = /decl/hierarchy/outfit/job/medical/doctor/virologist -//Chemist is a medical job damnit //YEAH FUCK YOU SCIENCE -Pete //Guys, behave -Erro +/datum/alt_title/physician + title = JOB_ALT_PHYSICIAN + +/datum/alt_title/medical_practitioner + title = JOB_ALT_MEDICAL_PRACTITIONER + +/datum/alt_title/orderly + title = JOB_ALT_ORDERLY + title_blurb = "An " + JOB_ALT_ORDERLY + " acts as Medbay's general helping hand, assisting any doctor that might need some form of help, as well as handling manual \ + and dirty labor around the department." + title_outfit = /decl/hierarchy/outfit/job/medical/doctor/nurse + +/datum/alt_title/medical_contractor + title = JOB_ALT_MEDICAL_CONTRACTOR + title_blurb = "A " + JOB_ALT_MEDICAL_CONTRACTOR + " can be anything from a full-blown doctor to the likes of a nurse or orderly, but isn't directly employed by NT proper." + ////////////////////////////////// // Chemist ////////////////////////////////// @@ -102,6 +137,7 @@ faction = FACTION_STATION total_positions = 2 spawn_positions = 2 + pto_type = PTO_MEDICAL supervisors = "the " + JOB_CHIEF_MEDICAL_OFFICER selection_color = "#013D3B" economic_modifier = 5 @@ -113,13 +149,17 @@ outfit_type = /decl/hierarchy/outfit/job/medical/chemist job_description = "A " + JOB_CHEMIST + " produces and maintains a stock of basic to advanced chemicals for medical and occasionally research use. \ They are likely to know the use and dangers of many lab-produced chemicals." - alt_titles = list(JOB_ALT_PHARMACIST = /datum/alt_title/pharmacist) + alt_titles = list(JOB_ALT_PHARMACIST = /datum/alt_title/pharmacist, JOB_ALT_PHARMACOLOGIST = /datum/alt_title/pharmacologist) // Chemist Alt Titles /datum/alt_title/pharmacist title = JOB_ALT_PHARMACIST title_blurb = "A " + JOB_ALT_PHARMACIST + " focuses on the chemical needs of the Medical Department, and often offers to fill crew prescriptions at their discretion." +/datum/alt_title/pharmacologist + title = JOB_ALT_PHARMACOLOGIST + title_blurb = "A " + JOB_ALT_PHARMACOLOGIST + " focuses on the chemical needs of the Medical Department, primarily specializing in producing more advanced forms of medicine." + /* I'm commenting out Geneticist so you can't actually see it in the job menu, given that you can't play as one - Jon. ////////////////////////////////// // Geneticist @@ -154,6 +194,7 @@ faction = FACTION_STATION total_positions = 1 spawn_positions = 1 + pto_type = PTO_MEDICAL economic_modifier = 5 supervisors = "the " + JOB_CHIEF_MEDICAL_OFFICER selection_color = "#013D3B" @@ -162,7 +203,7 @@ outfit_type = /decl/hierarchy/outfit/job/medical/psychiatrist job_description = "A " + JOB_PSYCHIATRIST + " provides mental health services to crew members in need. They may also be called upon to determine whatever \ ails the mentally unwell, frequently under Security supervision. They understand the effects of various psychoactive drugs." - alt_titles = list(JOB_ALT_PSYCHOLOGIST = /datum/alt_title/psychologist) + alt_titles = list(JOB_ALT_PSYCHOLOGIST = /datum/alt_title/psychologist, JOB_ALT_PSYCHOANALYST = /datum/alt_title/psychoanalyst, JOB_ALT_PSYCHOTHERAPIST = /datum/alt_title/psychotherapist) banned_job_species = list(SPECIES_PROMETHEAN, SPECIES_DIONA) //Psychiatrist Alt Titles @@ -172,6 +213,18 @@ called upon to determine whatever ails the mentally unwell, frequently under Security supervision." title_outfit = /decl/hierarchy/outfit/job/medical/psychiatrist/psychologist +/datum/alt_title/psychoanalyst + title = JOB_ALT_PSYCHOANALYST + title_blurb = "A " + JOB_ALT_PSYCHOANALYST + " provides mental health services to crew members in need, focusing more on therapy than medication. They may also be \ + called upon to determine whatever ails the mentally unwell, frequently under Security supervision." + title_outfit = /decl/hierarchy/outfit/job/medical/psychiatrist/psychologist + +/datum/alt_title/psychotherapist + title = JOB_ALT_PSYCHOTHERAPIST + title_blurb = "A " + JOB_ALT_PSYCHOTHERAPIST + " provides mental health services to crew members in need, focusing more on therapy than medication. They may also be \ + called upon to determine whatever ails the mentally unwell, frequently under Security supervision." + title_outfit = /decl/hierarchy/outfit/job/medical/psychiatrist/psychologist + ////////////////////////////////// // Paramedic ////////////////////////////////// @@ -181,8 +234,9 @@ departments = list(DEPARTMENT_MEDICAL) department_flag = MEDSCI faction = FACTION_STATION - total_positions = 2 - spawn_positions = 2 + total_positions = 3 + spawn_positions = 3 + pto_type = PTO_MEDICAL supervisors = "the " + JOB_CHIEF_MEDICAL_OFFICER selection_color = "#013D3B" economic_modifier = 4 @@ -191,14 +245,26 @@ outfit_type = /decl/hierarchy/outfit/job/medical/paramedic job_description = "A " + JOB_PARAMEDIC + " is primarily concerned with the recovery of patients who are unable to make it to the Medical Department on their own. \ They may also be called upon to keep patients stable when Medical is busy or understaffed." - alt_titles = list(JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN = /datum/alt_title/emt) + alt_titles = list(JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN = /datum/alt_title/emt, JOB_ALT_MEDICAL_RESPONDER = /datum/alt_title/medical_responder, JOB_ALT_SEARCH_AND_RESCUE = /datum/alt_title/sar) banned_job_species = list(SPECIES_DIONA) min_age_by_species = list(SPECIES_PROMETHEAN = 2) +/datum/job/paramedic/get_request_reasons() + return list("Assembling expedition team") + // Paramedic Alt Titles /datum/alt_title/emt title = JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN title_blurb = "An " + JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN + " is primarily concerned with the recovery of patients who are unable to make it to the Medical Department on their \ own. They are capable of keeping a patient stabilized until they reach the hands of someone with more training." title_outfit = /decl/hierarchy/outfit/job/medical/paramedic/emt + +/datum/alt_title/medical_responder + title = JOB_ALT_MEDICAL_RESPONDER + title_blurb = "A " + JOB_ALT_MEDICAL_RESPONDER + " is primarily concerned with the recovery of patients who are unable to make it to the Medical Department on their \ + own. They are capable of keeping a patient stabilized until they reach the hands of someone with more training." + title_outfit = /decl/hierarchy/outfit/job/medical/paramedic/emt + +/datum/alt_title/sar + title = JOB_ALT_SEARCH_AND_RESCUE diff --git a/code/game/jobs/job/medical_vr.dm b/code/game/jobs/job/medical_vr.dm deleted file mode 100644 index 9d08fdfcf2..0000000000 --- a/code/game/jobs/job/medical_vr.dm +++ /dev/null @@ -1,97 +0,0 @@ -/datum/job/cmo - disallow_jobhop = TRUE - pto_type = PTO_MEDICAL - dept_time_required = 60 - - access = list(access_medical, access_medical_equip, access_morgue, access_genetics, access_heads, - access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, - access_keycard_auth, access_psychiatrist, access_eva, access_external_airlocks, access_maint_tunnels, access_gateway) - - minimal_access = list(access_medical, access_medical_equip, access_morgue, access_genetics, access_heads, - access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce, - access_keycard_auth, access_psychiatrist, access_eva, access_external_airlocks, access_maint_tunnels, access_gateway) - alt_titles = list(JOB_ALT_CHIEF_PHYSICIAN = /datum/alt_title/chief_physician, JOB_ALT_MEDICAL_DIRECTOR = /datum/alt_title/medical_director, JOB_ALT_HEALTHCARE_MANAGER = /datum/alt_title/healthcare_manager) - -/datum/alt_title/chief_physician - title = JOB_ALT_CHIEF_PHYSICIAN - -/datum/alt_title/medical_director - title = JOB_ALT_MEDICAL_DIRECTOR - -/datum/alt_title/healthcare_manager - title = JOB_ALT_HEALTHCARE_MANAGER - -/datum/job/cmo/get_request_reasons() - return list("Surgery pending", "Viral outbreak", "Training crew", "Assembling expedition team") - - -/datum/job/doctor - spawn_positions = 5 - pto_type = PTO_MEDICAL - alt_titles = list(JOB_ALT_PHYSICIAN = /datum/alt_title/physician, JOB_ALT_MEDICAL_PRACTITIONER = /datum/alt_title/medical_practitioner, JOB_ALT_SURGEON = /datum/alt_title/surgeon, - JOB_ALT_EMERGENCY_PHYSICIAN = /datum/alt_title/emergency_physician, JOB_ALT_NURSE = /datum/alt_title/nurse, JOB_ALT_ORDERLY = /datum/alt_title/orderly, - JOB_ALT_VIROLOGIST = /datum/alt_title/virologist, JOB_ALT_MEDICAL_CONTRACTOR = /datum/alt_title/medical_contractor) - -/datum/alt_title/physician - title = JOB_ALT_PHYSICIAN - -/datum/alt_title/medical_practitioner - title = JOB_ALT_MEDICAL_PRACTITIONER - -/datum/alt_title/orderly - title = JOB_ALT_ORDERLY - title_blurb = "An " + JOB_ALT_ORDERLY + " acts as Medbay's general helping hand, assisting any doctor that might need some form of help, as well as handling manual \ - and dirty labor around the department." - title_outfit = /decl/hierarchy/outfit/job/medical/doctor/nurse - -/datum/alt_title/medical_contractor - title = JOB_ALT_MEDICAL_CONTRACTOR - title_blurb = "A " + JOB_ALT_MEDICAL_CONTRACTOR + " can be anything from a full-blown doctor to the likes of a nurse or orderly, but isn't directly employed by NT proper." - -/datum/job/doctor/get_request_reasons() - return list("Surgery pending", "Viral outbreak", "Assembling expedition team") - - -/datum/job/chemist - pto_type = PTO_MEDICAL - alt_titles = list(JOB_ALT_PHARMACIST = /datum/alt_title/pharmacist, JOB_ALT_PHARMACOLOGIST = /datum/alt_title/pharmacologist) - -/datum/alt_title/pharmacologist - title = JOB_ALT_PHARMACOLOGIST - title_blurb = "A " + JOB_ALT_PHARMACOLOGIST + " focuses on the chemical needs of the Medical Department, primarily specializing in producing more advanced forms of medicine." - - -/datum/job/psychiatrist - pto_type = PTO_MEDICAL - alt_titles = list(JOB_ALT_PSYCHOLOGIST = /datum/alt_title/psychologist, JOB_ALT_PSYCHOANALYST = /datum/alt_title/psychoanalyst, JOB_ALT_PSYCHOTHERAPIST = /datum/alt_title/psychotherapist) - -/datum/alt_title/psychoanalyst - title = JOB_ALT_PSYCHOANALYST - title_blurb = "A " + JOB_ALT_PSYCHOANALYST + " provides mental health services to crew members in need, focusing more on therapy than medication. They may also be \ - called upon to determine whatever ails the mentally unwell, frequently under Security supervision." - title_outfit = /decl/hierarchy/outfit/job/medical/psychiatrist/psychologist - -/datum/alt_title/psychotherapist - title = JOB_ALT_PSYCHOTHERAPIST - title_blurb = "A " + JOB_ALT_PSYCHOTHERAPIST + " provides mental health services to crew members in need, focusing more on therapy than medication. They may also be \ - called upon to determine whatever ails the mentally unwell, frequently under Security supervision." - title_outfit = /decl/hierarchy/outfit/job/medical/psychiatrist/psychologist - - -/datum/job/paramedic - pto_type = PTO_MEDICAL - alt_titles = list(JOB_ALT_EMERGENCY_MEDICAL_TECHNICIAN = /datum/alt_title/emt, JOB_ALT_MEDICAL_RESPONDER = /datum/alt_title/medical_responder, JOB_ALT_SEARCH_AND_RESCUE = /datum/alt_title/sar) - total_positions = 3 - spawn_positions = 3 - -/datum/alt_title/medical_responder - title = JOB_ALT_MEDICAL_RESPONDER - title_blurb = "A " + JOB_ALT_MEDICAL_RESPONDER + " is primarily concerned with the recovery of patients who are unable to make it to the Medical Department on their \ - own. They are capable of keeping a patient stabilized until they reach the hands of someone with more training." - title_outfit = /decl/hierarchy/outfit/job/medical/paramedic/emt - -/datum/alt_title/sar - title = JOB_ALT_SEARCH_AND_RESCUE - -/datum/job/paramedic/get_request_reasons() - return list("Assembling expedition team") diff --git a/code/game/jobs/job/offduty_vr.dm b/code/game/jobs/job/offduty.dm similarity index 100% rename from code/game/jobs/job/offduty_vr.dm rename to code/game/jobs/job/offduty.dm diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index c67dbe59ad..10c87760f7 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -16,13 +16,13 @@ req_admin_notify = 1 economic_modifier = 15 access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, - access_tox_storage, access_teleporter, access_sec_doors, + access_tox_storage, access_teleporter, access_research, access_robotics, access_xenobiology, access_ai_upload, access_tech_storage, - access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_network) + access_RC_announce, access_keycard_auth, access_tcomsat, access_xenoarch, access_eva, access_network, access_xenobotany) minimal_access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, - access_tox_storage, access_teleporter, access_sec_doors, + access_tox_storage, access_teleporter, access_research, access_robotics, access_xenobiology, access_ai_upload, access_tech_storage, - access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_network) + access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_eva, access_network, access_xenobotany) minimum_character_age = 25 minimal_player_age = 14 @@ -30,19 +30,34 @@ ideal_character_age = 50 ideal_age_by_species = list(SPECIES_UNATHI = 140, "mechanical" = 20, SPECIES_HUMAN_VATBORN = 20) banned_job_species = list(SPECIES_TESHARI, SPECIES_DIONA, SPECIES_PROMETHEAN, SPECIES_ZADDAT, "digital") + disallow_jobhop = TRUE + pto_type = PTO_SCIENCE + dept_time_required = 60 outfit_type = /decl/hierarchy/outfit/job/science/rd job_description = "The " + JOB_RESEARCH_DIRECTOR + " manages and maintains the Research department. They are required to ensure the safety of the entire crew, \ at least with regards to anything occurring in the Research department, and to inform the crew of any disruptions that \ might originate from Research. The " + JOB_RESEARCH_DIRECTOR + " often has at least passing knowledge of most of the Research department, but \ are encouraged to allow their staff to perform their own duties." - alt_titles = list(JOB_ALT_RESEARCH_SUPERVISOR = /datum/alt_title/research_supervisor) + alt_titles = list(JOB_ALT_RESEARCH_SUPERVISOR = /datum/alt_title/research_supervisor, JOB_ALT_RESEARCH_MANAGER = /datum/alt_title/research_manager, + JOB_ALT_HEAD_OF_DEVELOPMENT = /datum/alt_title/head_of_development,JOB_ALT_HEAD_SCIENTIST = /datum/alt_title/head_scientist) +/datum/job/rd/get_request_reasons() + return list("Repairs needed", "Training crew", "Assembling expedition team") // " + JOB_RESEARCH_DIRECTOR + " Alt Titles /datum/alt_title/research_supervisor title = JOB_ALT_RESEARCH_SUPERVISOR +/datum/alt_title/research_manager + title = JOB_ALT_RESEARCH_MANAGER + +/datum/alt_title/head_of_development + title = JOB_ALT_HEAD_OF_DEVELOPMENT + +/datum/alt_title/head_scientist + title = JOB_ALT_HEAD_SCIENTIST + ////////////////////////////////// // Scientist ////////////////////////////////// @@ -53,11 +68,12 @@ department_flag = MEDSCI faction = FACTION_STATION total_positions = 5 - spawn_positions = 3 + spawn_positions = 5 + pto_type = PTO_SCIENCE supervisors = "the " + JOB_RESEARCH_DIRECTOR selection_color = "#633D63" economic_modifier = 7 - access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch) + access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch, access_xenobotany) minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch) min_age_by_species = list(SPECIES_PROMETHEAN = 2) banned_job_species = list("digital") @@ -68,8 +84,12 @@ job_description = "A " + JOB_SCIENTIST + " is a generalist working in the Research department, with general knowledge of the scientific process, as well as \ the principles and requirements of Research and Development. They may also formulate experiments of their own devising, if \ they find an appropriate topic." - alt_titles = list(JOB_ALT_XENOARCHAEOLOGIST = /datum/alt_title/xenoarch, JOB_ALT_ANOMALIST = /datum/alt_title/anomalist, \ - JOB_ALT_PHORON_RESEARCHER = /datum/alt_title/phoron_research) + alt_titles = list(JOB_ALT_RESEARCHER = /datum/alt_title/researcher, JOB_ALT_LAB_ASSISTANT = /datum/alt_title/lab_assistant, JOB_ALT_XENOARCHAEOLOGIST = /datum/alt_title/xenoarch, + JOB_ALT_XENOPALEONTOLOGIST = /datum/alt_title/xenopaleontologist, JOB_ALT_ANOMALIST = /datum/alt_title/anomalist, JOB_ALT_PHORON_RESEARCHER = /datum/alt_title/phoron_research, + JOB_ALT_GAS_PHYSICIST = /datum/alt_title/gas_physicist, JOB_ALT_CIRCUIT_DESIGNER = /datum/alt_title/circuit_designer, JOB_ALT_CIRCUIT_PROGRAMMER = /datum/alt_title/circuit_programmer) + +/datum/job/scientist/get_request_reasons() + return list("Assembling expedition team") // Scientist Alt Titles /datum/alt_title/xenoarch @@ -88,6 +108,35 @@ Many " + JOB_ALT_PHORON_RESEARCHER + "s are interested in the combustability and explosive properties of gaseous phoron, as well as the specific hazards \ of working with the substance in that state." +/datum/alt_title/researcher + title = JOB_ALT_RESEARCHER + +/datum/alt_title/lab_assistant + title = JOB_ALT_LAB_ASSISTANT + title_blurb = "A " + JOB_ALT_LAB_ASSISTANT + " is a lower-level member of research staff, whose main purpose is to help scientists with their specialized work in more menial fashion, while also \ + learning the specializations in process." + +/datum/alt_title/xenopaleontologist + title = JOB_ALT_XENOPALEONTOLOGIST + title_blurb = "A " + JOB_ALT_XENOPALEONTOLOGIST + " enters digsites in search of fossils and other ancient remants of alien life. These digsites are frequently in vacuum or other inhospitable \ + locations, and as such a " + JOB_ALT_XENOPALEONTOLOGIST + " should be prepared to handle hostile evironmental conditions." + +/datum/alt_title/gas_physicist + title = JOB_ALT_GAS_PHYSICIST + title_blurb = "A " + JOB_ALT_GAS_PHYSICIST + " is a specialist in various practical applications of gasses, but currently focuses their attention on phoron, and has knowledge of its practical uses and dangers. \ + Many " + JOB_ALT_GAS_PHYSICIST + "s are interested in the combustability and explosive properties of gaseous phoron, as well as the specific hazards \ + of working with the substance in that state." + +/datum/alt_title/circuit_designer + title = JOB_ALT_CIRCUIT_DESIGNER + title_blurb = "A " + JOB_ALT_CIRCUIT_DESIGNER + " is a " + JOB_SCIENTIST + " whose expertise is working with integrated circuits. They are familar with the workings and programming of those devices. \ + They work to create various useful devices using the capabilities of integrated circuitry." + +/datum/alt_title/circuit_programmer + title = JOB_ALT_CIRCUIT_PROGRAMMER + title_blurb = "A " + JOB_ALT_CIRCUIT_PROGRAMMER + " is a " + JOB_SCIENTIST + " whose expertise is working with integrated circuits. They are familar with the workings and programming of those devices. \ + They work to create various useful devices using the capabilities of integrated circuitry." + ////////////////////////////////// // Xenobiologist ////////////////////////////////// @@ -98,7 +147,8 @@ department_flag = MEDSCI faction = FACTION_STATION total_positions = 3 - spawn_positions = 2 + spawn_positions = 3 + pto_type = PTO_SCIENCE supervisors = "the " + JOB_RESEARCH_DIRECTOR selection_color = "#633D63" economic_modifier = 7 @@ -112,15 +162,21 @@ outfit_type = /decl/hierarchy/outfit/job/science/xenobiologist job_description = "A " + JOB_XENOBIOLOGIST + " studies esoteric lifeforms, usually in the relative safety of their lab. They attempt to find ways to benefit \ from the byproducts of these lifeforms, and their main subject at present is the Giant Slime." -/*VR edit start - alt_titles = list(JOB_XENOBOTANIST = /datum/alt_title/xenobot) + + alt_titles = list(JOB_ALT_XENOZOOLOGIST = /datum/alt_title/xenozoologist, JOB_ALT_XENOANTHROPOLOGIST = /datum/alt_title/xenoanthropologist) Xenibiologist Alt Titles /datum/alt_title/xenobot title = JOB_XENOBOTANIST title_blurb = "A " + JOB_XENOBOTANIST + " grows and cares for a variety of abnormal, custom made, and frequently dangerous plant life. When the products of these plants \ is both safe and beneficial to the station, they may choose to introduce it to the rest of the crew." -VR edit end*/ + +/datum/alt_title/xenozoologist + title = JOB_ALT_XENOZOOLOGIST + +/datum/alt_title/xenoanthropologist + title = JOB_ALT_XENOANTHROPOLOGIST + title_blurb = JOB_ALT_XENOANTHROPOLOGIST + " still heavily focuses their study on alien lifeforms, but their specialty leans more towards fellow sapient beings than simple animals." ////////////////////////////////// // Roboticist @@ -131,8 +187,9 @@ VR edit end*/ departments = list(DEPARTMENT_RESEARCH) department_flag = MEDSCI faction = FACTION_STATION - total_positions = 2 + total_positions = 3 spawn_positions = 2 + pto_type = PTO_SCIENCE supervisors = "the " + JOB_RESEARCH_DIRECTOR selection_color = "#633D63" economic_modifier = 5 @@ -145,7 +202,14 @@ VR edit end*/ outfit_type = /decl/hierarchy/outfit/job/science/roboticist job_description = "A " + JOB_ROBOTICIST + " maintains and repairs the station's synthetics, including crew with prosthetic limbs. \ They can also assist the station by producing simple robots and even pilotable exosuits." - alt_titles = list(JOB_ALT_BIOMECHANICAL_ENGINEER = /datum/alt_title/biomech, JOB_ALT_MECHATRONIC_ENGINEER = /datum/alt_title/mech_tech) + alt_titles = list( + JOB_ALT_ASSEMBLY_TECHNICIAN = /datum/alt_title/assembly_tech, + JOB_ALT_BIOMECHANICAL_ENGINEER = /datum/alt_title/biomech, + JOB_ALT_MECHATRONIC_ENGINEER = /datum/alt_title/mech_tech, + JOB_ALT_SOFTWARE_ENGINEER = /datum/alt_title/software_engi) + +/datum/job/roboticist/get_request_reasons() + return list("Repairs needed") // Roboticist Alt Titles /datum/alt_title/biomech @@ -157,3 +221,41 @@ VR edit end*/ title = JOB_ALT_MECHATRONIC_ENGINEER title_blurb = "A " + JOB_ALT_MECHATRONIC_ENGINEER + " focuses on the construction and maintenance of Exosuits, and should be well versed in their use. \ They may also be called upon to work on synthetics and prosthetics, if needed." + +/datum/alt_title/software_engi + title = JOB_ALT_SOFTWARE_ENGINEER + title_blurb = "A " + JOB_ALT_SOFTWARE_ENGINEER + " specializes in working with software and firmware. They also often deal with integrated circuits." + +/datum/alt_title/assembly_tech + title = JOB_ALT_ASSEMBLY_TECHNICIAN + +////////////////////////////////// +// Xenobotanist +////////////////////////////////// +/datum/job/xenobotanist + title = JOB_XENOBOTANIST + flag = XENOBOTANIST + departments = list(DEPARTMENT_RESEARCH) + department_flag = MEDSCI + faction = FACTION_STATION + total_positions = 2 + spawn_positions = 2 + supervisors = "the " + JOB_RESEARCH_DIRECTOR + selection_color = "#633D63" + economic_modifier = 7 + access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobotany, access_hydroponics) + minimal_access = list(access_research, access_xenobotany, access_hydroponics, access_tox_storage) + pto_type = PTO_SCIENCE + + minimal_player_age = 14 + + outfit_type = /decl/hierarchy/outfit/job/science/xenobiologist + job_description = "A " + JOB_XENOBOTANIST + " grows and cares for a variety of abnormal, custom made, and frequently dangerous plant life. When the products of these plants \ + are both safe and beneficial to the station, they may choose to introduce it to the rest of the crew." + alt_titles = list(JOB_ALT_XENOHYDROPONICIST = /datum/alt_title/xenohydroponicist, JOB_ALT_XENOFLORIST = /datum/alt_title/xenoflorist) + +/datum/alt_title/xenoflorist + title = JOB_ALT_XENOFLORIST + +/datum/alt_title/xenohydroponicist + title = JOB_ALT_XENOHYDROPONICIST \ No newline at end of file diff --git a/code/game/jobs/job/science_vr.dm b/code/game/jobs/job/science_vr.dm deleted file mode 100644 index c0505e4109..0000000000 --- a/code/game/jobs/job/science_vr.dm +++ /dev/null @@ -1,134 +0,0 @@ -/datum/job/rd - disallow_jobhop = TRUE - pto_type = PTO_SCIENCE - dept_time_required = 60 - - access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, - access_tox_storage, access_teleporter, - access_research, access_robotics, access_xenobiology, access_ai_upload, access_tech_storage, - access_RC_announce, access_keycard_auth, access_tcomsat, access_xenoarch, access_eva, access_network, access_xenobotany) - minimal_access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, - access_tox_storage, access_teleporter, - access_research, access_robotics, access_xenobiology, access_ai_upload, access_tech_storage, - access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_eva, access_network, access_xenobotany) - alt_titles = list(JOB_ALT_RESEARCH_SUPERVISOR = /datum/alt_title/research_supervisor, JOB_ALT_RESEARCH_MANAGER = /datum/alt_title/research_manager, - JOB_ALT_HEAD_OF_DEVELOPMENT = /datum/alt_title/head_of_development,JOB_ALT_HEAD_SCIENTIST = /datum/alt_title/head_scientist) - -/datum/alt_title/research_manager - title = JOB_ALT_RESEARCH_MANAGER - -/datum/alt_title/head_of_development - title = JOB_ALT_HEAD_OF_DEVELOPMENT - -/datum/alt_title/head_scientist - title = JOB_ALT_HEAD_SCIENTIST - -/datum/job/rd/get_request_reasons() - return list("Repairs needed", "Training crew", "Assembling expedition team") - - -/datum/job/scientist - spawn_positions = 5 - pto_type = PTO_SCIENCE - alt_titles = list(JOB_ALT_RESEARCHER = /datum/alt_title/researcher, JOB_ALT_LAB_ASSISTANT = /datum/alt_title/lab_assistant, JOB_ALT_XENOARCHAEOLOGIST = /datum/alt_title/xenoarch, - JOB_ALT_XENOPALEONTOLOGIST = /datum/alt_title/xenopaleontologist, JOB_ALT_ANOMALIST = /datum/alt_title/anomalist, JOB_ALT_PHORON_RESEARCHER = /datum/alt_title/phoron_research, - JOB_ALT_GAS_PHYSICIST = /datum/alt_title/gas_physicist, JOB_ALT_CIRCUIT_DESIGNER = /datum/alt_title/circuit_designer, JOB_ALT_CIRCUIT_PROGRAMMER = /datum/alt_title/circuit_programmer) - - - access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch, access_xenobotany) - minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch) // Unchanged (for now?), mostly here for reference - -/datum/alt_title/researcher - title = JOB_ALT_RESEARCHER - -/datum/alt_title/lab_assistant - title = JOB_ALT_LAB_ASSISTANT - title_blurb = "A " + JOB_ALT_LAB_ASSISTANT + " is a lower-level member of research staff, whose main purpose is to help scientists with their specialized work in more menial fashion, while also \ - learning the specializations in process." - -/datum/alt_title/xenopaleontologist - title = JOB_ALT_XENOPALEONTOLOGIST - title_blurb = "A " + JOB_ALT_XENOPALEONTOLOGIST + " enters digsites in search of fossils and other ancient remants of alien life. These digsites are frequently in vacuum or other inhospitable \ - locations, and as such a " + JOB_ALT_XENOPALEONTOLOGIST + " should be prepared to handle hostile evironmental conditions." - -/datum/alt_title/gas_physicist - title = JOB_ALT_GAS_PHYSICIST - title_blurb = "A " + JOB_ALT_GAS_PHYSICIST + " is a specialist in various practical applications of gasses, but currently focuses their attention on phoron, and has knowledge of its practical uses and dangers. \ - Many " + JOB_ALT_GAS_PHYSICIST + "s are interested in the combustability and explosive properties of gaseous phoron, as well as the specific hazards \ - of working with the substance in that state." - -/datum/alt_title/circuit_designer - title = JOB_ALT_CIRCUIT_DESIGNER - title_blurb = "A " + JOB_ALT_CIRCUIT_DESIGNER + " is a " + JOB_SCIENTIST + " whose expertise is working with integrated circuits. They are familar with the workings and programming of those devices. \ - They work to create various useful devices using the capabilities of integrated circuitry." - -/datum/alt_title/circuit_programmer - title = JOB_ALT_CIRCUIT_PROGRAMMER - title_blurb = "A " + JOB_ALT_CIRCUIT_PROGRAMMER + " is a " + JOB_SCIENTIST + " whose expertise is working with integrated circuits. They are familar with the workings and programming of those devices. \ - They work to create various useful devices using the capabilities of integrated circuitry." - -/datum/job/scientist/get_request_reasons() - return list("Assembling expedition team") - -/datum/job/xenobiologist - spawn_positions = 3 - pto_type = PTO_SCIENCE - alt_titles = list(JOB_ALT_XENOZOOLOGIST = /datum/alt_title/xenozoologist, JOB_ALT_XENOANTHROPOLOGIST = /datum/alt_title/xenoanthropologist) - -/datum/alt_title/xenozoologist - title = JOB_ALT_XENOZOOLOGIST - -/datum/alt_title/xenoanthropologist - title = JOB_ALT_XENOANTHROPOLOGIST - title_blurb = JOB_ALT_XENOANTHROPOLOGIST + " still heavily focuses their study on alien lifeforms, but their specialty leans more towards fellow sapient beings than simple animals." - - -/datum/job/roboticist - total_positions = 3 - pto_type = PTO_SCIENCE - alt_titles = list( - JOB_ALT_ASSEMBLY_TECHNICIAN = /datum/alt_title/assembly_tech, - JOB_ALT_BIOMECHANICAL_ENGINEER = /datum/alt_title/biomech, - JOB_ALT_MECHATRONIC_ENGINEER = /datum/alt_title/mech_tech, - JOB_ALT_SOFTWARE_ENGINEER = /datum/alt_title/software_engi) - -/datum/alt_title/software_engi - title = JOB_ALT_SOFTWARE_ENGINEER - title_blurb = "A " + JOB_ALT_SOFTWARE_ENGINEER + " specializes in working with software and firmware. They also often deal with integrated circuits." - -/datum/alt_title/assembly_tech - title = JOB_ALT_ASSEMBLY_TECHNICIAN - -/datum/job/roboticist/get_request_reasons() - return list("Repairs needed") - -////////////////////////////////// -// Xenobotanist -////////////////////////////////// -/datum/job/xenobotanist - title = JOB_XENOBOTANIST - flag = XENOBOTANIST - departments = list(DEPARTMENT_RESEARCH) - department_flag = MEDSCI - faction = FACTION_STATION - total_positions = 2 - spawn_positions = 2 - supervisors = "the " + JOB_RESEARCH_DIRECTOR - selection_color = "#633D63" - economic_modifier = 7 - access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobotany, access_hydroponics) - minimal_access = list(access_research, access_xenobotany, access_hydroponics, access_tox_storage) - pto_type = PTO_SCIENCE - - minimal_player_age = 14 - - outfit_type = /decl/hierarchy/outfit/job/science/xenobiologist - job_description = "A " + JOB_XENOBOTANIST + " grows and cares for a variety of abnormal, custom made, and frequently dangerous plant life. When the products of these plants \ - are both safe and beneficial to the station, they may choose to introduce it to the rest of the crew." - alt_titles = list(JOB_ALT_XENOHYDROPONICIST = /datum/alt_title/xenohydroponicist, JOB_ALT_XENOFLORIST = /datum/alt_title/xenoflorist) - -/datum/alt_title/xenoflorist - title = JOB_ALT_XENOFLORIST - -/datum/alt_title/xenohydroponicist - title = JOB_ALT_XENOHYDROPONICIST diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 372d459e62..db2a0e051c 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -16,26 +16,31 @@ req_admin_notify = 1 economic_modifier = 10 access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, - access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, - access_research, access_engine, access_mining, access_medical, access_construction, access_mailsorting, - access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks) + access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, + access_construction, + access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks) minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, - access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, - access_research, access_engine, access_mining, access_medical, access_construction, access_mailsorting, - access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks) + access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, + access_construction, + access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks) minimum_character_age = 25 min_age_by_species = list(SPECIES_HUMAN_VATBORN = 14) minimal_player_age = 14 ideal_character_age = 50 ideal_age_by_species = list(SPECIES_HUMAN_VATBORN = 20) banned_job_species = list(SPECIES_TESHARI, SPECIES_DIONA, SPECIES_PROMETHEAN, SPECIES_ZADDAT, "digital", SPECIES_UNATHI, "mechanical") + disallow_jobhop = TRUE + pto_type = PTO_SECURITY + dept_time_required = 60 outfit_type = /decl/hierarchy/outfit/job/security/hos job_description = " The " + JOB_HEAD_OF_SECURITY + " manages the Security Department, keeping the station safe and making sure the rules are followed. They are expected to \ keep the other Department Heads, and the rest of the crew, aware of developing situations that may be a threat. If necessary, the HoS may \ perform the duties of absent Security roles, such as distributing gear from the Armory." - alt_titles = list(JOB_ALT_SECURITY_COMMANDER = /datum/alt_title/sec_commander, JOB_ALT_CHIEF_OF_SECURITY = /datum/alt_title/sec_chief) + alt_titles = list(JOB_ALT_SECURITY_COMMANDER = /datum/alt_title/sec_commander, JOB_ALT_CHIEF_OF_SECURITY = /datum/alt_title/sec_chief, JOB_ALT_SECURITY_MANAGER = /datum/alt_title/security_manager) +/datum/job/hos/get_request_reasons() + return list("Wildlife management", "Forensic investigation", "Training crew", "Assembling expedition team") // Head of Security Alt Titles /datum/alt_title/sec_commander @@ -44,6 +49,9 @@ /datum/alt_title/sec_chief title = JOB_ALT_CHIEF_OF_SECURITY +/datum/alt_title/security_manager + title = JOB_ALT_SECURITY_MANAGER + ////////////////////////////////// // Warden ////////////////////////////////// @@ -59,17 +67,32 @@ supervisors = "the " + JOB_HEAD_OF_SECURITY selection_color = "#601C1C" economic_modifier = 5 + pto_type = PTO_SECURITY + dept_time_required = 20 access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_morgue, access_external_airlocks) minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_external_airlocks) minimal_player_age = 5 banned_job_species = list(SPECIES_ZADDAT, SPECIES_PROMETHEAN, SPECIES_TESHARI, SPECIES_DIONA) - + alt_titles = list(JOB_ALT_BRIG_SENTRY = /datum/alt_title/brig_sentry, JOB_ALT_ARMORY_SUPERINTENDENT = /datum/alt_title/armory_superintendent, JOB_ALT_MASTERATARMS = /datum/alt_title/master_at_arms) outfit_type = /decl/hierarchy/outfit/job/security/warden job_description = "The " + JOB_WARDEN + " watches over the physical Security Department, making sure the Brig and Armoury are secure and in order at all times. They oversee \ prisoners that have been processed and brigged, and are responsible for their well being. The " + JOB_WARDEN + " is also in charge of distributing \ Armoury gear in a crisis, and retrieving it when the crisis has passed. In an emergency, the " + JOB_WARDEN + " may be called upon to direct the \ Security Department as a whole." +/datum/job/warden/get_request_reasons() + return list("Wildlife management") + +//Warden Alt Titles +/datum/alt_title/brig_sentry + title = JOB_ALT_BRIG_SENTRY + +/datum/alt_title/armory_superintendent + title = JOB_ALT_ARMORY_SUPERINTENDENT + +/datum/alt_title/master_at_arms + title = JOB_ALT_MASTERATARMS + ////////////////////////////////// // Detective ////////////////////////////////// @@ -81,6 +104,7 @@ faction = FACTION_STATION total_positions = 2 spawn_positions = 2 + pto_type = PTO_SECURITY supervisors = "the " + JOB_HEAD_OF_SECURITY selection_color = "#601C1C" access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_eva, access_external_airlocks, access_brig) //Vorestation edit - access_brig @@ -92,7 +116,10 @@ outfit_type = /decl/hierarchy/outfit/job/security/detective job_description = "A " + JOB_DETECTIVE + " works to help Security find criminals who have not properly been identified, through interviews and forensic work. \ For crimes only witnessed after the fact, or those with no survivors, they attempt to piece together what they can from pure evidence." - alt_titles = list(JOB_ALT_FORENSIC_TECHNICIAN = /datum/alt_title/forensic_tech) + alt_titles = list(JOB_ALT_INVESTIGATOR = /datum/alt_title/investigator, JOB_ALT_SECURITY_INSPECTOR = /datum/alt_title/security_inspector, JOB_ALT_FORENSIC_TECHNICIAN = /datum/alt_title/forensic_tech) + +/datum/job/detective/get_request_reasons() + return list("Forensic investigation") // Detective Alt Titles /datum/alt_title/forensic_tech @@ -100,6 +127,12 @@ title_blurb = "A " + JOB_ALT_FORENSIC_TECHNICIAN + " works more with hard evidence and labwork than a " + JOB_DETECTIVE + ", but they share the purpose of solving crimes." title_outfit = /decl/hierarchy/outfit/job/security/detective/forensic +/datum/alt_title/investigator + title = JOB_ALT_INVESTIGATOR + +/datum/alt_title/security_inspector + title = JOB_ALT_SECURITY_INSPECTOR + ////////////////////////////////// // Security Officer ////////////////////////////////// @@ -109,8 +142,9 @@ departments = list(DEPARTMENT_SECURITY) department_flag = ENGSEC faction = FACTION_STATION - total_positions = 4 - spawn_positions = 4 + total_positions = 5 + spawn_positions = 5 + pto_type = PTO_SECURITY supervisors = "the " + JOB_HEAD_OF_SECURITY selection_color = "#601C1C" economic_modifier = 4 @@ -123,13 +157,29 @@ job_description = "A " + JOB_SECURITY_OFFICER + " is concerned with maintaining the safety and security of the station as a whole, dealing with external threats and \ apprehending criminals. A " + JOB_SECURITY_OFFICER + " is responsible for the health, safety, and processing of any prisoner they arrest. \ No one is above the Law, not Security or Command." - alt_titles = list(JOB_ALT_JUNIOR_OFFICER = /datum/alt_title/junior_officer) + alt_titles = list(JOB_ALT_PATROL_OFFICER = /datum/alt_title/patrol_officer, JOB_ALT_SECURITY_GUARD = /datum/alt_title/security_guard, + JOB_ALT_SECURITY_DEPUTY = /datum/alt_title/security_guard, JOB_ALT_JUNIOR_OFFICER = /datum/alt_title/junior_officer, JOB_ALT_SECURITY_CONTRACTOR = /datum/alt_title/security_contractor) min_age_by_species = list(SPECIES_PROMETHEAN = 3) +/datum/job/officer/get_request_reasons() + return list("Wildlife management", "Assembling expedition team") + // Security Officer Alt Titles /datum/alt_title/junior_officer title = JOB_ALT_JUNIOR_OFFICER title_blurb = "A " + JOB_ALT_JUNIOR_OFFICER + " is an inexperienced " + JOB_SECURITY_OFFICER + ". They likely have training, but not experience, and are frequently \ paired off with a more senior co-worker. Junior Officers may also be expected to take over the boring duties of other Officers \ including patrolling the station or maintaining specific posts." + +/datum/alt_title/patrol_officer + title = JOB_ALT_PATROL_OFFICER + +/datum/alt_title/security_guard + title = JOB_ALT_SECURITY_GUARD + +/datum/alt_title/security_deputy + title = JOB_ALT_SECURITY_DEPUTY + +/datum/alt_title/security_contractor + title = JOB_ALT_SECURITY_CONTRACTOR diff --git a/code/game/jobs/job/security_vr.dm b/code/game/jobs/job/security_vr.dm deleted file mode 100644 index b7c196b334..0000000000 --- a/code/game/jobs/job/security_vr.dm +++ /dev/null @@ -1,75 +0,0 @@ -/datum/job/hos - disallow_jobhop = TRUE - pto_type = PTO_SECURITY - dept_time_required = 60 - - access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, - access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, - access_construction, - access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks) - minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, - access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, - access_construction, - access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks) - alt_titles = list(JOB_ALT_SECURITY_COMMANDER = /datum/alt_title/sec_commander, JOB_ALT_CHIEF_OF_SECURITY = /datum/alt_title/sec_chief, JOB_ALT_SECURITY_MANAGER = /datum/alt_title/security_manager) - -/datum/alt_title/security_manager - title = JOB_ALT_SECURITY_MANAGER - -/datum/job/hos/get_request_reasons() - return list("Wildlife management", "Forensic investigation", "Training crew", "Assembling expedition team") - - -/datum/job/warden - pto_type = PTO_SECURITY - dept_time_required = 20 - alt_titles = list(JOB_ALT_BRIG_SENTRY = /datum/alt_title/brig_sentry, JOB_ALT_ARMORY_SUPERINTENDENT = /datum/alt_title/armory_superintendent, JOB_ALT_MASTERATARMS = /datum/alt_title/master_at_arms) - -/datum/alt_title/brig_sentry - title = JOB_ALT_BRIG_SENTRY - -/datum/alt_title/armory_superintendent - title = JOB_ALT_ARMORY_SUPERINTENDENT - -/datum/alt_title/master_at_arms - title = JOB_ALT_MASTERATARMS - -/datum/job/warden/get_request_reasons() - return list("Wildlife management") - - -/datum/job/detective - pto_type = PTO_SECURITY - alt_titles = list(JOB_ALT_INVESTIGATOR = /datum/alt_title/investigator, JOB_ALT_SECURITY_INSPECTOR = /datum/alt_title/security_inspector, JOB_ALT_FORENSIC_TECHNICIAN = /datum/alt_title/forensic_tech) - -/datum/alt_title/investigator - title = JOB_ALT_INVESTIGATOR - -/datum/alt_title/security_inspector - title = JOB_ALT_SECURITY_INSPECTOR - -/datum/job/detective/get_request_reasons() - return list("Forensic investigation") - - -/datum/job/officer - total_positions = 5 - spawn_positions = 5 - pto_type = PTO_SECURITY - alt_titles = list(JOB_ALT_PATROL_OFFICER = /datum/alt_title/patrol_officer, JOB_ALT_SECURITY_GUARD = /datum/alt_title/security_guard, - JOB_ALT_SECURITY_DEPUTY = /datum/alt_title/security_guard, JOB_ALT_JUNIOR_OFFICER = /datum/alt_title/junior_officer, JOB_ALT_SECURITY_CONTRACTOR = /datum/alt_title/security_contractor) - -/datum/alt_title/patrol_officer - title = JOB_ALT_PATROL_OFFICER - -/datum/alt_title/security_guard - title = JOB_ALT_SECURITY_GUARD - -/datum/alt_title/security_deputy - title = JOB_ALT_SECURITY_DEPUTY - -/datum/alt_title/security_contractor - title = JOB_ALT_SECURITY_CONTRACTOR - -/datum/job/officer/get_request_reasons() - return list("Wildlife management", "Assembling expedition team") diff --git a/code/game/jobs/job/silicon.dm b/code/game/jobs/job/silicon.dm index 6a5812af07..cce3f69603 100644 --- a/code/game/jobs/job/silicon.dm +++ b/code/game/jobs/job/silicon.dm @@ -19,6 +19,8 @@ has_headset = FALSE assignable = FALSE mob_type = JOB_SILICON_AI + disallow_jobhop = TRUE + pto_type = PTO_CIVILIAN outfit_type = /decl/hierarchy/outfit/job/silicon/ai job_description = "The " + JOB_AI + " oversees the operation of the station and its crew, but has no real authority over them. \ The " + JOB_AI + " is required to follow its Laws, and Lawbound Synthetics that are linked to it are expected to follow \ @@ -46,8 +48,10 @@ departments = list(DEPARTMENT_SYNTHETIC) department_flag = ENGSEC faction = FACTION_STATION - total_positions = 2 - spawn_positions = 2 + pto_type = PTO_CYBORG + minimal_player_age = 3 //1 day is a little too little time + total_positions = 4 //Along with one able to spawn later in the round. + spawn_positions = 3 //Let's have 3 able to spawn in roundstart supervisors = "your Laws and the " + JOB_AI //Nodrak selection_color = "#254C25" minimal_player_age = 1 diff --git a/code/game/jobs/job/silicon_vr.dm b/code/game/jobs/job/silicon_vr.dm deleted file mode 100644 index f5df1e3acf..0000000000 --- a/code/game/jobs/job/silicon_vr.dm +++ /dev/null @@ -1,9 +0,0 @@ -/datum/job/ai - disallow_jobhop = TRUE - pto_type = PTO_CIVILIAN - -/datum/job/cyborg - pto_type = PTO_CYBORG - minimal_player_age = 3 //1 day is a little too little time - total_positions = 4 //Along with one able to spawn later in the round. - spawn_positions = 3 //Let's have 3 able to spawn in roundstart \ No newline at end of file diff --git a/code/game/jobs/job/special_vr.dm b/code/game/jobs/job/special.dm similarity index 100% rename from code/game/jobs/job/special_vr.dm rename to code/game/jobs/job/special.dm diff --git a/vorestation.dme b/vorestation.dme index 4bf4bb73c1..a79e7ca30c 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -901,28 +901,19 @@ #include "code\game\jobs\whitelist_vr.dm" #include "code\game\jobs\job\_alt_title.dm" #include "code\game\jobs\job\assistant.dm" -#include "code\game\jobs\job\assistant_vr.dm" #include "code\game\jobs\job\captain.dm" -#include "code\game\jobs\job\captain_vr.dm" +#include "code\game\jobs\job\cargo.dm" #include "code\game\jobs\job\civilian.dm" #include "code\game\jobs\job\civilian_chaplain.dm" -#include "code\game\jobs\job\civilian_vr.dm" #include "code\game\jobs\job\department.dm" -#include "code\game\jobs\job\department_vr.dm" #include "code\game\jobs\job\engineering.dm" -#include "code\game\jobs\job\engineering_vr.dm" #include "code\game\jobs\job\job.dm" -#include "code\game\jobs\job\job_vr.dm" #include "code\game\jobs\job\medical.dm" -#include "code\game\jobs\job\medical_vr.dm" -#include "code\game\jobs\job\offduty_vr.dm" +#include "code\game\jobs\job\offduty.dm" #include "code\game\jobs\job\science.dm" -#include "code\game\jobs\job\science_vr.dm" #include "code\game\jobs\job\security.dm" -#include "code\game\jobs\job\security_vr.dm" #include "code\game\jobs\job\silicon.dm" -#include "code\game\jobs\job\silicon_vr.dm" -#include "code\game\jobs\job\special_vr.dm" +#include "code\game\jobs\job\special.dm" #include "code\game\machinery\adv_med.dm" #include "code\game\machinery\adv_med_vr.dm" #include "code\game\machinery\ai_slipper.dm" From 29267ddb9149d7565ff449bbb5fc0311a8749dd6 Mon Sep 17 00:00:00 2001 From: Killian Date: Sun, 24 Nov 2024 23:14:04 +0000 Subject: [PATCH 099/109] jobs _vr file crunch --- code/game/jobs/job/captain.dm | 17 ++++------------- code/game/jobs/job/science.dm | 2 +- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index a9ea549858..767ac32923 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -101,22 +101,13 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) job_description = "The " + JOB_HEAD_OF_PERSONNEL + " manages the Service department, the Exploration team, and most other civilians. They also \ manage the Supply department, through the " + JOB_QUARTERMASTER + ". In addition, the " + JOB_HEAD_OF_PERSONNEL + " oversees the personal accounts \ of the crew, including their money and access. If necessary, the " + JOB_HEAD_OF_PERSONNEL + " is first in line to assume Acting Command." + + access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, access_hop, access_RC_announce, access_clown, access_tomfoolery, access_mime, access_keycard_auth, access_gateway, access_entertainment) + minimal_access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers,access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads,access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer,access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, access_hop, access_RC_announce, access_clown, access_tomfoolery, access_mime, access_keycard_auth, access_gateway, access_entertainment) + alt_titles = list(JOB_ALT_CREW_RESOURCE_OFFICER = /datum/alt_title/cro, JOB_ALT_DEPUTY_MANAGER = /datum/alt_title/deputy_manager, JOB_ALT_STAFF_MANAGER = /datum/alt_title/staff_manager, JOB_ALT_FACILITY_STEWARD = /datum/alt_title/facility_steward, JOB_ALT_FIRST_MATE = /datum/alt_title/first_mate) - access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, - access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, - access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, - access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, - access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, - access_hop, access_RC_announce, access_clown, access_tomfoolery, access_mime, access_keycard_auth, access_gateway, access_entertainment) - minimal_access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers, - access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads, - access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue, - access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer, - access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station, - access_hop, access_RC_announce, access_clown, access_tomfoolery, access_mime, access_keycard_auth, access_gateway, access_entertainment) - /datum/job/hop/get_request_reasons() return list("ID modification", "Training crew", "Assembling expedition team") diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index 10c87760f7..a7d158ec30 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -165,7 +165,7 @@ alt_titles = list(JOB_ALT_XENOZOOLOGIST = /datum/alt_title/xenozoologist, JOB_ALT_XENOANTHROPOLOGIST = /datum/alt_title/xenoanthropologist) - Xenibiologist Alt Titles +// Xenobiologist Alt Titles /datum/alt_title/xenobot title = JOB_XENOBOTANIST title_blurb = "A " + JOB_XENOBOTANIST + " grows and cares for a variety of abnormal, custom made, and frequently dangerous plant life. When the products of these plants \ From ee64d020198012dacc414bcb6cb8829dd0b1601e Mon Sep 17 00:00:00 2001 From: Killian Date: Mon, 25 Nov 2024 05:18:49 +0000 Subject: [PATCH 100/109] Update tether_jobs.dm --- maps/tether/tether_jobs.dm | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/maps/tether/tether_jobs.dm b/maps/tether/tether_jobs.dm index 7dc03f38e2..758b707b9e 100644 --- a/maps/tether/tether_jobs.dm +++ b/maps/tether/tether_jobs.dm @@ -177,8 +177,6 @@ id_type = /obj/item/card/id/talon/captain id_slot = slot_wear_id pda_type = null - - l_ear = /obj/item/radio/headset/talon glasses = /obj/item/clothing/glasses/sunglasses uniform = /obj/item/clothing/under/rank/talon/command shoes = /obj/item/clothing/shoes/brown @@ -186,6 +184,10 @@ satchel_one = /obj/item/storage/backpack/satchel/talon messenger_bag = /obj/item/storage/backpack/messenger/talon + headset = /obj/item/radio/headset/talon + headset_alt = /obj/item/radio/headset/talon + headset_earbud = /obj/item/radio/headset/talon + /decl/hierarchy/outfit/job/talon_pilot name = OUTFIT_JOB_NAME(JOB_TALON_PILOT) @@ -194,7 +196,6 @@ pda_type = null flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL - l_ear = /obj/item/radio/headset/talon shoes = /obj/item/clothing/shoes/black head = /obj/item/clothing/head/pilot_vr/talon uniform = /obj/item/clothing/under/rank/talon/pilot @@ -206,6 +207,10 @@ satchel_one = /obj/item/storage/backpack/satchel/talon messenger_bag = /obj/item/storage/backpack/messenger/talon + headset = /obj/item/radio/headset/talon + headset_alt = /obj/item/radio/headset/talon + headset_earbud = /obj/item/radio/headset/talon + /decl/hierarchy/outfit/job/talon_doctor name = OUTFIT_JOB_NAME(JOB_TALON_DOCTOR) hierarchy_type = /decl/hierarchy/outfit/job @@ -214,7 +219,6 @@ id_slot = slot_wear_id pda_type = null - l_ear = /obj/item/radio/headset/talon shoes = /obj/item/clothing/shoes/white backpack = /obj/item/storage/backpack/medic satchel_one = /obj/item/storage/backpack/satchel/med @@ -227,6 +231,10 @@ satchel_one = /obj/item/storage/backpack/satchel/talon messenger_bag = /obj/item/storage/backpack/messenger/talon + headset = /obj/item/radio/headset/talon + headset_alt = /obj/item/radio/headset/talon + headset_earbud = /obj/item/radio/headset/talon + /decl/hierarchy/outfit/job/talon_security name = OUTFIT_JOB_NAME(JOB_ALT_TALON_SECURITY) hierarchy_type = /decl/hierarchy/outfit/job @@ -236,7 +244,6 @@ pda_type = null backpack_contents = list(/obj/item/handcuffs = 1) - l_ear = /obj/item/radio/headset/talon gloves = /obj/item/clothing/gloves/black shoes = /obj/item/clothing/shoes/boots/jackboots backpack = /obj/item/storage/backpack/security @@ -248,6 +255,10 @@ satchel_one = /obj/item/storage/backpack/satchel/talon messenger_bag = /obj/item/storage/backpack/messenger/talon + headset = /obj/item/radio/headset/talon + headset_alt = /obj/item/radio/headset/talon + headset_earbud = /obj/item/radio/headset/talon + /decl/hierarchy/outfit/job/talon_engineer name = OUTFIT_JOB_NAME(JOB_TALON_ENGINEER) hierarchy_type = /decl/hierarchy/outfit/job @@ -257,7 +268,6 @@ pda_type = null flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL - l_ear = /obj/item/radio/headset/talon belt = /obj/item/storage/belt/utility/full shoes = /obj/item/clothing/shoes/boots/workboots r_pocket = /obj/item/t_scanner @@ -270,6 +280,10 @@ satchel_one = /obj/item/storage/backpack/satchel/talon messenger_bag = /obj/item/storage/backpack/messenger/talon + headset = /obj/item/radio/headset/talon + headset_alt = /obj/item/radio/headset/talon + headset_earbud = /obj/item/radio/headset/talon + /decl/hierarchy/outfit/job/talon_miner name = OUTFIT_JOB_NAME(JOB_TALON_MINER) hierarchy_type = /decl/hierarchy/outfit/job @@ -279,7 +293,6 @@ pda_type = null flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL - l_ear = /obj/item/radio/headset/talon shoes = /obj/item/clothing/shoes/boots/workboots r_pocket = /obj/item/storage/bag/ore l_pocket = /obj/item/tool/crowbar @@ -287,3 +300,7 @@ backpack = /obj/item/storage/backpack/talon satchel_one = /obj/item/storage/backpack/satchel/talon messenger_bag = /obj/item/storage/backpack/messenger/talon + + headset = /obj/item/radio/headset/talon + headset_alt = /obj/item/radio/headset/talon + headset_earbud = /obj/item/radio/headset/talon From 88408477ec0b7699a8e4a5fa4bb6f3560e9542d0 Mon Sep 17 00:00:00 2001 From: Killian Date: Mon, 25 Nov 2024 12:45:52 +0000 Subject: [PATCH 101/109] headset sets --- code/datums/outfits/horror_killers.dm | 15 +++++++++++--- code/datums/outfits/jobs/special_vr.dm | 10 ++++++++-- code/datums/outfits/military/military.dm | 4 +++- code/datums/outfits/misc.dm | 10 ++++++++-- code/datums/outfits/nanotrasen.dm | 15 +++++++++++--- code/datums/outfits/outfit_vr.dm | 25 +++++++++++++++++++----- code/datums/outfits/spec_op.dm | 15 +++++++++++--- code/datums/outfits/wizardry.dm | 5 ++++- maps/southern_cross/job/outfits.dm | 15 +++++++++++--- 9 files changed, 91 insertions(+), 23 deletions(-) diff --git a/code/datums/outfits/horror_killers.dm b/code/datums/outfits/horror_killers.dm index aa45f4e23d..6f38c18df0 100644 --- a/code/datums/outfits/horror_killers.dm +++ b/code/datums/outfits/horror_killers.dm @@ -5,7 +5,6 @@ gloves = /obj/item/clothing/gloves/black mask = /obj/item/clothing/mask/gas/clown_hat head = /obj/item/clothing/head/chaplain_hood - l_ear = /obj/item/radio/headset glasses = /obj/item/clothing/glasses/thermal/plain/monocle suit = /obj/item/clothing/suit/storage/hooded/chaplain_hoodie r_pocket = /obj/item/bikehorn @@ -15,6 +14,10 @@ id_type = /obj/item/card/id/syndicate/station_access id_pda_assignment = "Tunnel Clown!" + headset = /obj/item/radio/headset + headset_alt = /obj/item/radio/headset/alt + headset_earbud = /obj/item/radio/headset/earbud + /decl/hierarchy/outfit/masked_killer name = "Masked Killer" uniform = /obj/item/clothing/under/overalls @@ -22,13 +25,16 @@ gloves = /obj/item/clothing/gloves/sterile/latex mask = /obj/item/clothing/mask/surgical head = /obj/item/clothing/head/welding - l_ear = /obj/item/radio/headset glasses = /obj/item/clothing/glasses/thermal/plain/monocle suit = /obj/item/clothing/suit/storage/apron l_pocket = /obj/item/material/knife/tacknife r_pocket = /obj/item/surgical/scalpel r_hand = /obj/item/material/twohanded/fireaxe + headset = /obj/item/radio/headset + headset_alt = /obj/item/radio/headset/alt + headset_earbud = /obj/item/radio/headset/earbud + /decl/hierarchy/outfit/masked_killer/post_equip(var/mob/living/carbon/human/H) var/victim = get_mannequin(H.ckey) for(var/obj/item/carried_item in H.get_equipped_items(TRUE)) @@ -39,7 +45,6 @@ uniform = /obj/item/clothing/under/suit_jacket{ starting_accessories=list(/obj/item/clothing/accessory/wcoat) } shoes = /obj/item/clothing/shoes/black gloves = /obj/item/clothing/gloves/black - l_ear = /obj/item/radio/headset glasses = /obj/item/clothing/glasses/sunglasses l_pocket = /obj/item/melee/energy/sword mask = /obj/item/clothing/mask/gas/clown_hat @@ -49,6 +54,10 @@ pda_slot = slot_belt pda_type = /obj/item/pda/heads + headset = /obj/item/radio/headset + headset_alt = /obj/item/radio/headset/alt + headset_earbud = /obj/item/radio/headset/earbud + /decl/hierarchy/outfit/professional/post_equip(var/mob/living/carbon/human/H) var/obj/item/storage/secure/briefcase/sec_briefcase = new(H) for(var/obj/item/briefcase_item in sec_briefcase) diff --git a/code/datums/outfits/jobs/special_vr.dm b/code/datums/outfits/jobs/special_vr.dm index bc88232d13..0e1fcf2a70 100644 --- a/code/datums/outfits/jobs/special_vr.dm +++ b/code/datums/outfits/jobs/special_vr.dm @@ -4,24 +4,30 @@ gloves = /obj/item/clothing/gloves/white shoes = /obj/item/clothing/shoes/laceup head = /obj/item/clothing/head/beret/centcom/officer - l_ear = /obj/item/radio/headset/centcom glasses = /obj/item/clothing/glasses/omnihud/all id_type = /obj/item/card/id/centcom pda_type = /obj/item/pda/centcom flags = OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL + headset = /obj/item/radio/headset/centcom + headset_alt = /obj/item/radio/headset/centcom + headset_earbud = /obj/item/radio/headset/centcom + /decl/hierarchy/outfit/job/emergency_responder name = OUTFIT_JOB_NAME("Emergency Responder") uniform = /obj/item/clothing/under/ert shoes = /obj/item/clothing/shoes/boots/swat gloves = /obj/item/clothing/gloves/swat - l_ear = /obj/item/radio/headset/ert glasses = /obj/item/clothing/glasses/sunglasses back = /obj/item/storage/backpack/satchel id_type = /obj/item/card/id/centcom/ERT pda_type = /obj/item/pda/centcom flags = OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL + headset = /obj/item/radio/headset/ert + headset_alt = /obj/item/radio/headset/ert + headset_earbud = /obj/item/radio/headset/ert + /decl/hierarchy/outfit/job/emergency_responder/post_equip(var/mob/living/carbon/human/H) ..() ert.add_antagonist(H.mind) diff --git a/code/datums/outfits/military/military.dm b/code/datums/outfits/military/military.dm index d3f9555794..fb47db35f5 100644 --- a/code/datums/outfits/military/military.dm +++ b/code/datums/outfits/military/military.dm @@ -2,4 +2,6 @@ name = "Military Uniform" hierarchy_type = /decl/hierarchy/outfit/military - l_ear = /obj/item/radio/headset \ No newline at end of file + headset = /obj/item/radio/headset + headset_alt = /obj/item/radio/headset + headset_earbud = /obj/item/radio/headset \ No newline at end of file diff --git a/code/datums/outfits/misc.dm b/code/datums/outfits/misc.dm index 556bf1d052..ef36b85038 100644 --- a/code/datums/outfits/misc.dm +++ b/code/datums/outfits/misc.dm @@ -29,7 +29,6 @@ /decl/hierarchy/outfit/soviet_soldier/admiral name = "Soviet admiral" head = /obj/item/clothing/head/hgpiratecap - l_ear = /obj/item/radio/headset/heads/captain glasses = /obj/item/clothing/glasses/thermal/plain/eyepatch suit = /obj/item/clothing/suit/hgpirate @@ -37,10 +36,13 @@ id_type = /obj/item/card/id/centcom //station id_pda_assignment = "Admiral" + headset = /obj/item/radio/headset/heads/captain + headset_alt = /obj/item/radio/headset/heads/captain + headset_earbud = /obj/item/radio/headset/heads/captain + /decl/hierarchy/outfit/merchant name = "Merchant" shoes = /obj/item/clothing/shoes/black - l_ear = /obj/item/radio/headset uniform = /obj/item/clothing/under/color/grey id_slot = slot_wear_id id_type = /obj/item/card/id/civilian //merchant @@ -48,6 +50,10 @@ pda_type = /obj/item/pda/chef //cause I like the look id_pda_assignment = "Merchant" + headset = /obj/item/radio/headset + headset_alt = /obj/item/radio/headset + headset_earbud = /obj/item/radio/headset + /decl/hierarchy/outfit/merchant/vox name = "Merchant - Vox" shoes = /obj/item/clothing/shoes/boots/jackboots/toeless diff --git a/code/datums/outfits/nanotrasen.dm b/code/datums/outfits/nanotrasen.dm index 4bf6c4f861..3fde80dd0b 100644 --- a/code/datums/outfits/nanotrasen.dm +++ b/code/datums/outfits/nanotrasen.dm @@ -3,7 +3,6 @@ uniform = /obj/item/clothing/under/rank/centcom shoes = /obj/item/clothing/shoes/laceup gloves = /obj/item/clothing/gloves/white - l_ear = /obj/item/radio/headset/heads/hop glasses = /obj/item/clothing/glasses/sunglasses id_slot = slot_wear_id @@ -11,6 +10,10 @@ pda_slot = slot_r_store pda_type = /obj/item/pda/heads + headset = /obj/item/radio/headset/heads/hop + headset_alt = /obj/item/radio/headset/heads/hop + headset_earbud = /obj/item/radio/headset/heads/hop + /decl/hierarchy/outfit/nanotrasen/representative name = "Nanotrasen representative" belt = /obj/item/clipboard @@ -19,14 +22,20 @@ /decl/hierarchy/outfit/nanotrasen/officer name = "Nanotrasen officer" head = /obj/item/clothing/head/beret/centcom/officer - l_ear = /obj/item/radio/headset/heads/captain belt = /obj/item/gun/energy id_pda_assignment = "NanoTrasen Navy Officer" + headset = /obj/item/radio/headset/heads/captain + headset_alt = /obj/item/radio/headset/heads/captain + headset_earbud = /obj/item/radio/headset/heads/captain + /decl/hierarchy/outfit/nanotrasen/captain name = "Nanotrasen captain" uniform = /obj/item/clothing/under/rank/centcom_captain - l_ear = /obj/item/radio/headset/heads/captain head = /obj/item/clothing/head/beret/centcom/captain belt = /obj/item/gun/energy id_pda_assignment = "NanoTrasen Navy Captain" + + headset = /obj/item/radio/headset/heads/captain + headset_alt = /obj/item/radio/headset/heads/captain + headset_earbud = /obj/item/radio/headset/heads/captain diff --git a/code/datums/outfits/outfit_vr.dm b/code/datums/outfits/outfit_vr.dm index 537f13d834..c343a36964 100644 --- a/code/datums/outfits/outfit_vr.dm +++ b/code/datums/outfits/outfit_vr.dm @@ -3,7 +3,6 @@ uniform = /obj/item/clothing/under/solgov/utility/army/urban shoes = /obj/item/clothing/shoes/boots/jackboots gloves = /obj/item/clothing/gloves/combat - l_ear = /obj/item/radio/headset/centcom r_pocket = /obj/item/ammo_magazine/m95 l_pocket = /obj/item/ammo_magazine/m95 l_hand = /obj/item/ammo_magazine/m95 @@ -15,6 +14,10 @@ suit = /obj/item/clothing/suit/armor/combat/USDF belt = /obj/item/storage/belt/security/tactical + headset = /obj/item/radio/headset/centcom + headset_alt = /obj/item/radio/headset/centcom + headset_earbud = /obj/item/radio/headset/centcom + /decl/hierarchy/outfit/USDF/Marine/equip_id(mob/living/carbon/human/H) var/obj/item/card/id/C = ..() C.name = "[H.real_name]'s military ID Card" @@ -29,7 +32,6 @@ name = "USDF officer" head = /obj/item/clothing/head/dress/army/command shoes = /obj/item/clothing/shoes/boots/jackboots - l_ear = /obj/item/radio/headset/centcom uniform = /obj/item/clothing/under/solgov/mildress/army/command back = /obj/item/storage/backpack/satchel belt = /obj/item/gun/projectile/revolver/consul @@ -38,6 +40,10 @@ r_hand = /obj/item/clothing/accessory/holster/hip l_hand = /obj/item/clothing/accessory/tie/black + headset = /obj/item/radio/headset/centcom + headset_alt = /obj/item/radio/headset/centcom + headset_earbud = /obj/item/radio/headset/centcom + /decl/hierarchy/outfit/USDF/Officer/equip_id(mob/living/carbon/human/H) var/obj/item/card/id/C = ..() C.name = "[H.real_name]'s military ID Card" @@ -51,7 +57,6 @@ /decl/hierarchy/outfit/solcom/representative name = "SolCom Representative" shoes = /obj/item/clothing/shoes/laceup - l_ear = /obj/item/radio/headset/centcom uniform = /obj/item/clothing/under/suit_jacket/navy back = /obj/item/storage/backpack/satchel l_pocket = /obj/item/pen/blue @@ -59,6 +64,10 @@ r_hand = /obj/item/pda/centcom l_hand = /obj/item/clipboard + headset = /obj/item/radio/headset/centcom + headset_alt = /obj/item/radio/headset/centcom + headset_earbud = /obj/item/radio/headset/centcom + /decl/hierarchy/outfit/solcom/representative/equip_id(mob/living/carbon/human/H) var/obj/item/card/id/C = ..() C.name = "[H.real_name]'s SolCom ID Card" @@ -74,7 +83,6 @@ head = /obj/item/clothing/head/helmet/combat/imperial shoes =/obj/item/clothing/shoes/leg_guard/combat/imperial gloves = /obj/item/clothing/gloves/arm_guard/combat/imperial - l_ear = /obj/item/radio/headset/syndicate uniform = /obj/item/clothing/under/imperial mask = /obj/item/clothing/mask/gas/imperial suit = /obj/item/clothing/suit/armor/combat/imperial @@ -86,12 +94,15 @@ l_hand = /obj/item/shield/energy/imperial suit_store = /obj/item/gun/energy/imperial + headset = /obj/item/radio/headset/syndicate + headset_alt = /obj/item/radio/headset/syndicate + headset_earbud = /obj/item/radio/headset/syndicate + /decl/hierarchy/outfit/imperial/officer name = "Imperial officer" head = /obj/item/clothing/head/helmet/combat/imperial/centurion shoes = /obj/item/clothing/shoes/leg_guard/combat/imperial gloves = /obj/item/clothing/gloves/arm_guard/combat/imperial - l_ear = /obj/item/radio/headset/syndicate uniform = /obj/item/clothing/under/imperial mask = /obj/item/clothing/mask/gas/imperial suit = /obj/item/clothing/suit/armor/combat/imperial/centurion @@ -102,6 +113,10 @@ l_hand = /obj/item/shield/energy/imperial suit_store = /obj/item/gun/energy/imperial + headset = /obj/item/radio/headset/syndicate + headset_alt = /obj/item/radio/headset/syndicate + headset_earbud = /obj/item/radio/headset/syndicate + /* SOUTHERN CROSS OUTFITS Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead goes in lockers. Keep this in mind if editing. diff --git a/code/datums/outfits/spec_op.dm b/code/datums/outfits/spec_op.dm index 8fd2cb6ae4..22da415b98 100644 --- a/code/datums/outfits/spec_op.dm +++ b/code/datums/outfits/spec_op.dm @@ -2,7 +2,6 @@ name = "Special ops - Officer" uniform = /obj/item/clothing/under/syndicate/combat suit = /obj/item/clothing/suit/armor/swat/officer - l_ear = /obj/item/radio/headset/ert glasses = /obj/item/clothing/glasses/thermal/plain/eyepatch mask = /obj/item/clothing/mask/smokable/cigarette/cigar/havana head = /obj/item/clothing/head/beret //deathsquad @@ -16,6 +15,10 @@ id_desc = "Special operations ID." id_pda_assignment = "Special Operations Officer" + headset = /obj/item/radio/headset/ert + headset_alt = /obj/item/radio/headset/ert + headset_earbud = /obj/item/radio/headset/ert + /decl/hierarchy/outfit/spec_op_officer/space name = "Special ops - Officer in space" suit = /obj/item/clothing/suit/armor/swat //obj/item/clothing/suit/space/void/swat @@ -29,7 +32,6 @@ uniform = /obj/item/clothing/under/ert shoes = /obj/item/clothing/shoes/boots/swat gloves = /obj/item/clothing/gloves/swat - l_ear = /obj/item/radio/headset/ert belt = /obj/item/gun/energy/gun glasses = /obj/item/clothing/glasses/sunglasses back = /obj/item/storage/backpack/satchel @@ -37,6 +39,10 @@ id_slot = slot_wear_id id_type = /obj/item/card/id/centcom/ERT + headset = /obj/item/radio/headset/ert + headset_alt = /obj/item/radio/headset/ert + headset_earbud = /obj/item/radio/headset/ert + /decl/hierarchy/outfit/death_command name = "Spec ops - Death commando" @@ -55,7 +61,6 @@ name = "Spec ops - Mercenary" uniform = /obj/item/clothing/under/syndicate shoes = /obj/item/clothing/shoes/boots/combat - l_ear = /obj/item/radio/headset/syndicate belt = /obj/item/storage/belt/security glasses = /obj/item/clothing/glasses/sunglasses gloves = /obj/item/clothing/gloves/swat @@ -66,4 +71,8 @@ id_type = /obj/item/card/id/syndicate id_pda_assignment = "Mercenary" + headset = /obj/item/radio/headset/syndicate + headset_alt = /obj/item/radio/headset/alt/syndicate + headset_earbud = /obj/item/radio/headset/earbud/syndicate + flags = OUTFIT_HAS_BACKPACK diff --git a/code/datums/outfits/wizardry.dm b/code/datums/outfits/wizardry.dm index 96836b3edc..0cb82f75f2 100644 --- a/code/datums/outfits/wizardry.dm +++ b/code/datums/outfits/wizardry.dm @@ -1,7 +1,6 @@ /decl/hierarchy/outfit/wizard uniform = /obj/item/clothing/under/color/lightpurple shoes = /obj/item/clothing/shoes/sandal - l_ear = /obj/item/radio/headset r_pocket = /obj/item/teleportation_scroll l_hand = /obj/item/staff r_hand = /obj/item/spellbook @@ -9,6 +8,10 @@ backpack_contents = list(/obj/item/storage/box = 1) hierarchy_type = /decl/hierarchy/outfit/wizard + headset = /obj/item/radio/headset + headset_alt = /obj/item/radio/headset + headset_earbud = /obj/item/radio/headset + /decl/hierarchy/outfit/wizard/blue name = "Wizard - Blue" head = /obj/item/clothing/head/wizard diff --git a/maps/southern_cross/job/outfits.dm b/maps/southern_cross/job/outfits.dm index 2a1cf6d67b..f2ef7db2ee 100644 --- a/maps/southern_cross/job/outfits.dm +++ b/maps/southern_cross/job/outfits.dm @@ -10,7 +10,6 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go name = OUTFIT_JOB_NAME("Explorer") shoes = /obj/item/clothing/shoes/boots/winter/explorer uniform = /obj/item/clothing/under/explorer - l_ear = /obj/item/radio/headset/explorer id_slot = slot_wear_id pda_slot = slot_l_store pda_type = /obj/item/pda/explorer //VORESTation Edit - Better Brown @@ -19,6 +18,10 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL backpack_contents = list(/obj/item/clothing/accessory/permit/gun/planetside = 1) + headset = /obj/item/radio/headset/explorer + headset_alt = /obj/item/radio/headset/explorer + headset_earbud = /obj/item/radio/headset/explorer + /decl/hierarchy/outfit/job/explorer2/post_equip(mob/living/carbon/human/H) ..() for(var/obj/item/clothing/accessory/permit/gun/planetside/permit in H.back.contents) @@ -43,7 +46,6 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go suit = /obj/item/clothing/suit/storage/toggle/bomber/pilot gloves = /obj/item/clothing/gloves/fingerless glasses = /obj/item/clothing/glasses/fakesunglasses/aviator - l_ear = /obj/item/radio/headset/pilot/alt uniform_accessories = list(/obj/item/clothing/accessory/storage/webbing/pilot1 = 1) id_slot = slot_wear_id pda_slot = slot_belt @@ -52,12 +54,15 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go id_pda_assignment = JOB_PILOT flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL + headset = /obj/item/radio/headset/pilot/alt + headset_alt = /obj/item/radio/headset/pilot/alt + headset_earbud = /obj/item/radio/headset/pilot/alt + /decl/hierarchy/outfit/job/medical/sar name = OUTFIT_JOB_NAME("Field Medic") //VOREStation Edit uniform = /obj/item/clothing/under/utility/blue //suit = /obj/item/clothing/suit/storage/hooded/wintercoat/medical/sar //VOREStation Edit shoes = /obj/item/clothing/shoes/boots/winter/explorer - l_ear = /obj/item/radio/headset/sar l_hand = /obj/item/storage/firstaid/regular belt = /obj/item/storage/belt/medical/emt pda_slot = slot_l_store @@ -65,3 +70,7 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go pda_type = /obj/item/pda/sar //VOREStation Add id_pda_assignment = "Field Medic" //VOREStation Edit flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL + + headset = /obj/item/radio/headset/sar + headset_alt = /obj/item/radio/headset/sar + headset_earbud = /obj/item/radio/headset/sar From 34be5fef539d99e8237958cdf6b870dc8728fa0d Mon Sep 17 00:00:00 2001 From: ShadowLarkens Date: Mon, 25 Nov 2024 07:33:59 -0800 Subject: [PATCH 102/109] Add emotes to ding and make microwave noises. --- code/modules/emotes/definitions/synthetics.dm | 18 ++++++++++++++++++ code/modules/mob/living/carbon/human/emote.dm | 2 ++ code/modules/mob/living/silicon/emote.dm | 2 ++ code/modules/mob/living/silicon/robot/emote.dm | 2 ++ 4 files changed, 24 insertions(+) diff --git a/code/modules/emotes/definitions/synthetics.dm b/code/modules/emotes/definitions/synthetics.dm index de1d8d34ed..e4024fc8e9 100644 --- a/code/modules/emotes/definitions/synthetics.dm +++ b/code/modules/emotes/definitions/synthetics.dm @@ -78,3 +78,21 @@ emote_message_3p = "chirps." emote_sound = 'sound/voice/robochirp.ogg' sound_vary = TRUE + +/decl/emote/audible/synth/ding + key = "ding" + emote_message_1p = "You ding at TARGET!" + emote_message_1p = "You ding." + emote_message_3p_target = "dings at TARGET!" + emote_message_3p = "dings." + emote_sound = 'sound/machines/ding.ogg' + sound_vary = TRUE + +/decl/emote/audible/synth/microwave + key = "microwave" + emote_message_1p = "You make microwave noises at TARGET!" + emote_message_1p = "You make microwave noises." + emote_message_3p_target = "makes microwave noises at TARGET!" + emote_message_3p = "makes microwave noises." + emote_sound = 'sound/machines/kitchen/microwave/microwave-mid2.ogg' + sound_vary = TRUE diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 21e87074bf..90156f2f5e 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -9,6 +9,8 @@ var/list/_human_default_emotes = list( /decl/emote/audible/synth/dwoop, /decl/emote/audible/synth/boop, /decl/emote/audible/synth/robochirp, + /decl/emote/audible/synth/ding, + /decl/emote/audible/synth/microwave, /decl/emote/visible/nod, /decl/emote/visible/shake, /decl/emote/visible/shiver, diff --git a/code/modules/mob/living/silicon/emote.dm b/code/modules/mob/living/silicon/emote.dm index 1a82c320cf..e791b2ee6a 100644 --- a/code/modules/mob/living/silicon/emote.dm +++ b/code/modules/mob/living/silicon/emote.dm @@ -9,6 +9,8 @@ var/list/_silicon_default_emotes = list( /decl/emote/audible/synth/dwoop, /decl/emote/audible/synth/boop, /decl/emote/audible/synth/robochirp, + /decl/emote/audible/synth/ding, + /decl/emote/audible/synth/microwave, /decl/emote/audible/synth/security, /decl/emote/audible/synth/security/halt ) diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm index 60a0bea5ab..6f92802684 100644 --- a/code/modules/mob/living/silicon/robot/emote.dm +++ b/code/modules/mob/living/silicon/robot/emote.dm @@ -25,6 +25,8 @@ var/list/_robot_default_emotes = list( /decl/emote/audible/synth/dwoop, /decl/emote/audible/synth/boop, /decl/emote/audible/synth/robochirp, + /decl/emote/audible/synth/ding, + /decl/emote/audible/synth/microwave, /decl/emote/audible/synth/security, /decl/emote/audible/synth/security/halt, //VOREStation Add From fc4de336feb4131c55c992a816b6332fe865fc32 Mon Sep 17 00:00:00 2001 From: Guti Date: Mon, 25 Nov 2024 17:10:24 +0100 Subject: [PATCH 103/109] Fixes --- code/datums/diseases/advance/symptoms/heal.dm | 2 +- code/datums/diseases/advance/symptoms/sensory.dm | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index e3c2feed54..1138d4adba 100644 --- a/code/datums/diseases/advance/symptoms/heal.dm +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -33,7 +33,7 @@ Bonus return /datum/symptom/heal/proc/Heal(mob/living/M, datum/disease/advance/A) - var/get_damage = (sqrtor0(20+A.totalStageSpeed())*(1+rand())) + var/get_damage = max(0, (sqrtor0(20+A.totalStageSpeed())*(1+rand()))) M.adjustToxLoss(-get_damage) return TRUE diff --git a/code/datums/diseases/advance/symptoms/sensory.dm b/code/datums/diseases/advance/symptoms/sensory.dm index 6f1f3ac9d3..8e19382f94 100644 --- a/code/datums/diseases/advance/symptoms/sensory.dm +++ b/code/datums/diseases/advance/symptoms/sensory.dm @@ -30,14 +30,14 @@ Bonus var/mob/living/M = A.affected_mob if(A.stage >= 3) - M.slurring = min(0, M.slurring-4) - M.druggy = min(0, M.druggy-4) + M.slurring = max(0, M.slurring-4) + M.druggy = max(0, M.druggy-4) M.reagents.remove_reagent("ethanol", 3) if(A.stage >= 4) - M.drowsyness = min(0, M.drowsyness-4) + M.drowsyness = max(0, M.drowsyness-4) if(M.reagents.has_reagent("bliss")) M.reagents.del_reagent("bliss") - M.hallucination = min(0, M.hallucination-4) + M.hallucination = max(0, M.hallucination-4) if(A.stage >= 5) if(M.reagents.get_reagent_amount("alkysine") < 10) M.reagents.add_reagent("alkysine", 5) From 2e9e1806cc4e19a53413737e03f0d48e28f36d3a Mon Sep 17 00:00:00 2001 From: Guti Date: Mon, 25 Nov 2024 18:27:41 +0100 Subject: [PATCH 104/109] Needs all cures set to false --- code/datums/diseases/cold.dm | 1 + code/datums/diseases/flu.dm | 1 + 2 files changed, 2 insertions(+) diff --git a/code/datums/diseases/cold.dm b/code/datums/diseases/cold.dm index 4e942e0d2b..487f466761 100644 --- a/code/datums/diseases/cold.dm +++ b/code/datums/diseases/cold.dm @@ -5,6 +5,7 @@ spread_flags = AIRBORNE cure_text = "Rest & Spaceacillin" cures = list("spaceacillin", "chicken_soup") + needs_all_cures = FALSE agent = "XY-rhinovirus" viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/human/monkey) permeability_mod = 0.5 diff --git a/code/datums/diseases/flu.dm b/code/datums/diseases/flu.dm index 9423b23f43..2962f48e9b 100644 --- a/code/datums/diseases/flu.dm +++ b/code/datums/diseases/flu.dm @@ -4,6 +4,7 @@ spread_text = "Airborne" cure_text = "Spaceacillin" cures = list("spaceacillin", "chicken_soup") + needs_all_cures = FALSE cure_chance = 10 agent = "H13N1 flu virion" viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/human/monkey) From 65c640cd68cebc459d76c37ca64ebbef5869c6d0 Mon Sep 17 00:00:00 2001 From: "C.L." Date: Mon, 25 Nov 2024 18:22:51 -0500 Subject: [PATCH 105/109] Janihud rework From Outpost21 --- code/game/objects/effects/chem/coating.dm | 2 ++ .../effects/decals/Cleanable/aliens.dm | 4 ++- .../effects/decals/Cleanable/humans.dm | 3 ++ .../effects/decals/Cleanable/robots.dm | 4 ++- .../effects/decals/Cleanable/tracks.dm | 1 + code/game/objects/effects/decals/cleanable.dm | 36 ++++++++++++------- code/game/objects/effects/decals/crayon.dm | 33 +++++++++++------ code/modules/recycling/conveyor2.dm | 2 -- 8 files changed, 59 insertions(+), 26 deletions(-) diff --git a/code/game/objects/effects/chem/coating.dm b/code/game/objects/effects/chem/coating.dm index 2e9ad26049..13a3cb4c39 100644 --- a/code/game/objects/effects/chem/coating.dm +++ b/code/game/objects/effects/chem/coating.dm @@ -34,3 +34,5 @@ /obj/effect/decal/cleanable/chemcoating/update_icon() ..() color = reagents.get_color() + cut_overlays() + add_janitor_hud_overlay() diff --git a/code/game/objects/effects/decals/Cleanable/aliens.dm b/code/game/objects/effects/decals/Cleanable/aliens.dm index 57a32434af..37cf4c29a7 100644 --- a/code/game/objects/effects/decals/Cleanable/aliens.dm +++ b/code/game/objects/effects/decals/Cleanable/aliens.dm @@ -13,6 +13,8 @@ /obj/effect/decal/cleanable/blood/gibs/xeno/update_icon() color = "#FFFFFF" + cut_overlays() + add_janitor_hud_overlay() /obj/effect/decal/cleanable/blood/gibs/xeno/up random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6","xgibup1","xgibup1","xgibup1") @@ -30,4 +32,4 @@ random_icon_states = list("xgibmid1", "xgibmid2", "xgibmid3") /obj/effect/decal/cleanable/blood/xtracks - basecolor = "#05EE05" \ No newline at end of file + basecolor = "#05EE05" diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 184bee8bed..a27bff7038 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -70,6 +70,8 @@ var/global/list/image/splatter_cache=list() else name = initial(name) desc = initial(desc) + cut_overlays() + add_janitor_hud_overlay() /obj/effect/decal/cleanable/blood/Crossed(mob/living/carbon/human/perp) if(perp.is_incorporeal()) @@ -210,6 +212,7 @@ var/global/list/image/splatter_cache=list() icon = blood cut_overlays() add_overlay(giblets) + add_janitor_hud_overlay() /obj/effect/decal/cleanable/blood/gibs/up random_icon_states = list("gib1", "gib2", "gib3", "gib5", "gib6","gibup1","gibup1","gibup1") diff --git a/code/game/objects/effects/decals/Cleanable/robots.dm b/code/game/objects/effects/decals/Cleanable/robots.dm index b0980966a3..26a4fb11af 100644 --- a/code/game/objects/effects/decals/Cleanable/robots.dm +++ b/code/game/objects/effects/decals/Cleanable/robots.dm @@ -10,6 +10,8 @@ /obj/effect/decal/cleanable/blood/gibs/robot/update_icon() color = "#FFFFFF" + cut_overlays() + add_janitor_hud_overlay() /obj/effect/decal/cleanable/blood/gibs/robot/dry() //pieces of robots do not dry up like return @@ -49,4 +51,4 @@ /obj/effect/decal/cleanable/blood/oil/streak random_icon_states = list("mgibbl1", "mgibbl2", "mgibbl3", "mgibbl4", "mgibbl5") - amount = 2 \ No newline at end of file + amount = 2 diff --git a/code/game/objects/effects/decals/Cleanable/tracks.dm b/code/game/objects/effects/decals/Cleanable/tracks.dm index 3d9e74ca6a..400a6124a4 100644 --- a/code/game/objects/effects/decals/Cleanable/tracks.dm +++ b/code/game/objects/effects/decals/Cleanable/tracks.dm @@ -142,6 +142,7 @@ var/global/list/image/fluidtrack_cache=list() stack[stack_idx]=track add_overlay(I) updatedtracks=0 // Clear our memory of updated tracks. + add_janitor_hud_overlay() /obj/effect/decal/cleanable/blood/tracks/footprints name = "wet footprints" diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 7338689e33..e5363e9897 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -12,7 +12,6 @@ generic_filth = TRUE means when the decal is saved, it will be switched out for var/generic_filth = FALSE var/age = 0 var/list/random_icon_states = list() - var/obj/effect/decal/jan_hud/jan_icon = null /obj/effect/decal/cleanable/Initialize(var/mapload, var/_age) if(!isnull(_age)) @@ -21,12 +20,11 @@ generic_filth = TRUE means when the decal is saved, it will be switched out for src.icon_state = pick(src.random_icon_states) if(!mapload || !CONFIG_GET(flag/persistence_ignore_mapload)) SSpersistence.track_value(src, /datum/persistent/filth) - jan_icon = new/obj/effect/decal/jan_hud(src.loc) . = ..() + update_icon() /obj/effect/decal/cleanable/Destroy() SSpersistence.forget_value(src, /datum/persistent/filth) - QDEL_NULL(jan_icon) . = ..() /obj/effect/decal/cleanable/clean_blood(var/ignore = 0) @@ -40,13 +38,27 @@ generic_filth = TRUE means when the decal is saved, it will be switched out for src.icon_state = pick(src.random_icon_states) ..() -/obj/effect/decal/jan_hud - plane = PLANE_JANHUD - layer = BELOW_MOB_LAYER - vis_flags = VIS_HIDE - persist_storable = FALSE - icon = 'icons/mob/hud.dmi' - mouse_opacity = 0 -/obj/effect/decal/jan_hud/Initialize() - src.icon_state = "janhud[rand(1,9)]" +/obj/effect/decal/cleanable/update_icon() + // Overrides should not inheret from this, and instead replace it entirely to match this in some form. + // add_janitor_hud_overlay() does not pre-cut overlays, so cut_overlays() must be called first. + // This is so it may be used with update_icon() overrides that use overlays, while adding the janitor overlay at the end. + cut_overlays() + add_janitor_hud_overlay() + + +/obj/effect/decal/cleanable/proc/add_janitor_hud_overlay() + // This was original a seperate object that followed the grime, it got stuck in everything you can imagine! + // It also likely doubled the memory use of every cleanable decal on station... + var/image/hud = image('icons/mob/hud.dmi', src, "janhud[rand(1,9)]") + hud.appearance_flags = (RESET_COLOR|PIXEL_SCALE|KEEP_APART) + hud.plane = PLANE_JANHUD + hud.layer = BELOW_MOB_LAYER + hud.mouse_opacity = 0 + //HUD VARIANT: Allows the hud to show up with it's normal alpha, even if the 'dirty thing' it's attached to has a low alpha (ex: dirt) + /* + hud.appearance_flags = RESET_ALPHA + hud.alpha = 255 + */ + //HUD VARIANT end + add_overlay(hud) diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index 493529cede..0f1803aa77 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -6,26 +6,39 @@ layer = DIRTY_LAYER anchored = TRUE -/obj/effect/decal/cleanable/crayon/New(location,main = "#FFFFFF",shade = "#000000",var/type = "rune") - ..() - loc = location + var/art_type + var/art_color + var/art_shade +/obj/effect/decal/cleanable/crayon/Initialize(var/ml, main = "#FFFFFF",shade = "#000000",var/type = "rune", new_age = 0) name = type desc = "A [type] drawn in crayon." + // Persistence vars. Unused here but used downstream. If someone updates the persistance code, it's here. + art_type = type + art_color = main + art_shade = shade + switch(type) if("rune") type = "rune[rand(1,6)]" if("graffiti") type = pick("amyjon","face","matt","revolution","engie","guy","end","dwarf","uboa") - var/icon/mainOverlay = new/icon('icons/effects/crayondecal.dmi',"[type]",2.1) - var/icon/shadeOverlay = new/icon('icons/effects/crayondecal.dmi',"[type]s",2.1) + . = ..(ml, new_age) // mapload, age - mainOverlay.Blend(main,ICON_ADD) - shadeOverlay.Blend(shade,ICON_ADD) +/obj/effect/decal/cleanable/crayon/update_icon() + cut_overlays() + var/icon/mainOverlay = new/icon('icons/effects/crayondecal.dmi',"[art_type]",2.1) + var/icon/shadeOverlay = new/icon('icons/effects/crayondecal.dmi',"[art_type]s",2.1) - add_overlay(mainOverlay) - add_overlay(shadeOverlay) + if(mainOverlay && shadeOverlay) + mainOverlay.Blend(art_color,ICON_ADD) + shadeOverlay.Blend(art_shade,ICON_ADD) - add_hiddenprint(usr) + add_overlay(mainOverlay) + add_overlay(shadeOverlay) + + add_janitor_hud_overlay() + return +// CHOMPEdit End diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index a3952a80ae..89bc7f2d88 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -113,8 +113,6 @@ for(var/atom/movable/A in affecting) if(istype(A,/obj/effect/abstract)) // Flashlight's lights are not physical objects continue - if(istype(A,/obj/effect/decal/jan_hud)) // Ignore these too - continue if(!A.anchored) if(A.loc == src.loc) // prevents the object from being affected if it's not currently here. step(A,movedir) From 7668ef66ce0440a6fc8e14dbbdaab8c11a90f1f7 Mon Sep 17 00:00:00 2001 From: Guti Date: Wed, 27 Nov 2024 18:05:05 +0100 Subject: [PATCH 106/109] Cough & Sneeze --- code/datums/diseases/advance/symptoms/cough.dm | 5 ++++- code/datums/diseases/advance/symptoms/sneeze.dm | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/code/datums/diseases/advance/symptoms/cough.dm b/code/datums/diseases/advance/symptoms/cough.dm index bdf04a9fdf..00a33e9ce6 100644 --- a/code/datums/diseases/advance/symptoms/cough.dm +++ b/code/datums/diseases/advance/symptoms/cough.dm @@ -10,7 +10,8 @@ Coughing Low Level. BONUS - Will force the affected mob to drop small items! + Will force the affected mob to drop small items. + Small spread if not wearing a mask ////////////////////////////////////// */ @@ -36,4 +37,6 @@ BONUS var/obj/item/I = M.get_active_hand() if(I && I.w_class == ITEMSIZE_SMALL) M.drop_item() + if(!M.wear_mask) // Small spread if not wearing a mask + A.spread(2) return diff --git a/code/datums/diseases/advance/symptoms/sneeze.dm b/code/datums/diseases/advance/symptoms/sneeze.dm index d60baaa11a..63f2ab00e1 100644 --- a/code/datums/diseases/advance/symptoms/sneeze.dm +++ b/code/datums/diseases/advance/symptoms/sneeze.dm @@ -34,8 +34,10 @@ Bonus M.emote("sniff") else M.emote("sneeze") - A.spread(5) - if(prob(30)) + if(!M.wear_mask) // Spread only if they're not covering their face + A.spread(5) + + if(prob(30) && !M.wear_mask) // Same for mucus var/obj/effect/decal/cleanable/mucus/icky = new(get_turf(M)) icky.viruses |= A.Copy() From 0b10e7770b82923a94328b3c5dfaa5b8266cd953 Mon Sep 17 00:00:00 2001 From: Heroman Date: Thu, 28 Nov 2024 05:35:09 +1000 Subject: [PATCH 107/109] Adds a turkey mob and reworks regular Turkey recipe --- code/__defines/faction.dm | 1 + code/datums/supplypacks/hydroponics.dm | 7 +++ code/game/objects/items/trash.dm | 6 +++ .../structures/crates_lockers/largecrate.dm | 4 ++ code/modules/food/food/snacks.dm | 50 ++++++++++++++++++ code/modules/food/food/snacks/meat.dm | 10 ++++ code/modules/food/recipes_oven.dm | 12 +++++ code/modules/mob/living/butchering.dm | 4 +- .../simple_mob/subtypes/vore/redpanda.dm | 2 +- .../living/simple_mob/subtypes/vore/turkey.dm | 43 +++++++++++++++ icons/mob/vore.dmi | Bin 448241 -> 454713 bytes icons/obj/food.dmi | Bin 217752 -> 220550 bytes icons/obj/trash.dmi | Bin 43823 -> 44591 bytes vorestation.dme | 2 +- 14 files changed, 138 insertions(+), 3 deletions(-) create mode 100644 code/modules/mob/living/simple_mob/subtypes/vore/turkey.dm diff --git a/code/__defines/faction.dm b/code/__defines/faction.dm index 2d975b6cbb..766c2d51aa 100644 --- a/code/__defines/faction.dm +++ b/code/__defines/faction.dm @@ -105,6 +105,7 @@ #define FACTION_SWARMER "swarmer" #define FACTION_TEPPI "teppi" #define FACTION_TUNNELCLOWN "tunnelclown" +#define FACTION_TURKEY "turkey" #define FACTION_WILD_ANIMAL "wild animal" #define FACTION_WOLFGIRL "wolfgirl" #define FACTION_WOLFTAUR "wolftaur" diff --git a/code/datums/supplypacks/hydroponics.dm b/code/datums/supplypacks/hydroponics.dm index 84712a9f74..fad0054a36 100644 --- a/code/datums/supplypacks/hydroponics.dm +++ b/code/datums/supplypacks/hydroponics.dm @@ -95,6 +95,13 @@ containername = "Chicken crate" access = access_hydroponics +/datum/supply_pack/hydro/turkey + name = "Turkey crate" + cost = 25 + containertype = /obj/structure/largecrate/animal/turkey + containername = "Turkey crate" + access = access_hydroponics + /datum/supply_pack/hydro/seeds name = "Seeds crate" contains = list( diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index 41bab1e08f..378ab6b450 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -115,6 +115,12 @@ drop_sound = 'sound/items/drop/food.ogg' pickup_sound = 'sound/items/pickup/food.ogg' +/obj/item/trash/turkeybones + name = "turkey bones" + icon_state = "turkeybones" + drop_sound = 'sound/items/drop/food.ogg' + pickup_sound = 'sound/items/pickup/food.ogg' + /obj/item/trash/pistachios name = "pistachios packet" icon_state = "pistachios_pack" diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index 86b7c70f27..2b706c4a67 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -127,6 +127,10 @@ name = "chicken crate" starts_with = list(/mob/living/simple_mob/animal/passive/chick = 5) +/obj/structure/largecrate/animal/chick + name = "turkey crate" + starts_with = list(/mob/living/simple_mob/vore/turkey) + /obj/structure/largecrate/animal/catslug name = "catslug carrier" starts_with = list(/mob/living/simple_mob/vore/alienanimals/catslug) diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm index 08d40416da..814ce55adc 100644 --- a/code/modules/food/food/snacks.dm +++ b/code/modules/food/food/snacks.dm @@ -334,10 +334,14 @@ S.food_inserted_micros = list() S.food_inserted_micros += F food_inserted_micros -= F + on_slice_extra() qdel(src) return +/obj/item/reagent_containers/food/snacks/proc/on_slice_extra() + return + /obj/item/reagent_containers/food/snacks/MouseDrop_T(mob/living/M, mob/user) if(!user.stat && istype(M) && (M == user) && Adjacent(M) && (M.get_effective_size(TRUE) <= 0.50) && food_can_insert_micro) if(!food_inserted_micros) @@ -3510,6 +3514,7 @@ trash = /obj/item/trash/plate bitesize = 2 +/* OLD RECIPE /obj/item/reagent_containers/food/snacks/sliceable/turkey name = "turkey" desc = "Tastes like chicken." @@ -3536,6 +3541,51 @@ icon_state = "turkey_drumstick" trash = /obj/item/trash/plate bitesize = 2 +*/ + +/obj/item/reagent_containers/food/snacks/sliceable/turkey + name = "turkey" + desc = "Tastes like chicken." + icon = 'icons/obj/food.dmi' + icon_state = "roastturkey" + slice_path = /obj/item/reagent_containers/food/snacks/turkeyslice + slices_num = 6 + w_class = 2 + nutriment_amt = 20 + nutriment_desc = list("turkey" = 20) + bitesize = 5 + trash = /obj/item/trash/turkeybones + var/list/extra_product = list(/obj/item/reagent_containers/food/snacks/turkeydrumstick = 2, + /obj/item/trash/turkeybones = 1) + +/obj/item/reagent_containers/food/snacks/sliceable/turkey/Initialize() + . = ..() + reagents.add_reagent("blackpepper", 1) + reagents.add_reagent("sodiumchloride", 1) + reagents.add_reagent("cookingoil", 1) + +/obj/item/reagent_containers/food/snacks/sliceable/turkey/on_slice_extra() + for(var/i in extra_product) + for(var/j=1 to extra_product[i]) + new i(src.loc) + +/obj/item/reagent_containers/food/snacks/turkeyslice + name = "turkey'n'mash" + desc = "Turkey slices with some delicious stuffing." + icon = 'icons/obj/food.dmi' + icon_state = "roastturkeynmash" + trash = /obj/item/trash/plate + bitesize = 2 + +/obj/item/reagent_containers/food/snacks/turkeydrumstick + name = "turkey drumstick" + desc = "The best part!" + icon = 'icons/obj/food.dmi' + icon_state = "roastturkeydrumstick" + trash = null + nutriment_amt = 8 + nutriment_desc = list("turkey" = 20) + bitesize = 2 /obj/item/reagent_containers/food/snacks/sliceable/suppermatter name = "suppermatter" diff --git a/code/modules/food/food/snacks/meat.dm b/code/modules/food/food/snacks/meat.dm index 1cd1671a5f..c08b33b886 100644 --- a/code/modules/food/food/snacks/meat.dm +++ b/code/modules/food/food/snacks/meat.dm @@ -131,6 +131,16 @@ reagents.add_reagent("spidertoxin",6) reagents.remove_reagent("pacid",6) +/obj/item/reagent_containers/food/snacks/rawturkey + name = "raw turkey" + desc = "Naked and hollow." + icon_state = "rawturkey" + bitesize = 2.5 + +/obj/item/reagent_containers/food/snacks/rawturkey/Initialize() + . = ..() + reagents.add_reagent("protein", 10) + /obj/item/reagent_containers/food/snacks/meat/fox name = "foxmeat" desc = "The fox doesn't say a goddamn thing, now." diff --git a/code/modules/food/recipes_oven.dm b/code/modules/food/recipes_oven.dm index c8e043ecd5..57a58cb57d 100644 --- a/code/modules/food/recipes_oven.dm +++ b/code/modules/food/recipes_oven.dm @@ -33,6 +33,7 @@ reagent_mix = RECIPE_REAGENT_REPLACE result = /obj/item/reagent_containers/food/snacks/ribplate +/* OLD RECIPE /datum/recipe/turkey appliance = OVEN reagents = list("sodiumchloride" = 1, "blackpepper" = 1) @@ -41,6 +42,17 @@ /obj/item/reagent_containers/food/snacks/stuffing ) result = /obj/item/reagent_containers/food/snacks/sliceable/turkey +*/ + +/datum/recipe/turkey + appliance = OVEN + fruit = list("potato" = 1) + reagents = list("sodiumchloride" = 1, "blackpepper" = 1) + items = list( + /obj/item/reagent_containers/food/snacks/rawturkey, + /obj/item/reagent_containers/food/snacks/stuffing + ) + result = /obj/item/reagent_containers/food/snacks/sliceable/turkey /datum/recipe/tofurkey appliance = OVEN diff --git a/code/modules/mob/living/butchering.dm b/code/modules/mob/living/butchering.dm index 05e064acbe..ad1eecfba6 100644 --- a/code/modules/mob/living/butchering.dm +++ b/code/modules/mob/living/butchering.dm @@ -3,6 +3,7 @@ /mob/living var/meat_amount = 0 // How much meat to drop from this mob when butchered var/obj/meat_type // The meat object to drop + var/name_the_meat = TRUE var/gib_on_butchery = FALSE var/butchery_drops_organs = TRUE // Do we spawn and/or drop organs when butchered? @@ -17,7 +18,8 @@ being_butchered = TRUE while(meat_amount > 0 && do_after(user, 0.5 SECONDS * (mob_size / 10), src)) var/obj/item/meat = new meat_type(get_turf(src)) - meat.name = "[src.name] [meat.name]" + if(name_the_meat) + meat.name = "[src.name] [meat.name]" new /obj/effect/decal/cleanable/blood/splatter(get_turf(src)) meat_amount-- being_butchered = FALSE diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/redpanda.dm b/code/modules/mob/living/simple_mob/subtypes/vore/redpanda.dm index 430e6efd4a..73005bc9b9 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/redpanda.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/redpanda.dm @@ -9,7 +9,7 @@ icon_rest = "wah_rest" icon = 'icons/mob/vore.dmi' - faction = FACTION_REDPANDA //stop naming stuff vaguely + faction = FACTION_REDPANDA maxHealth = 30 health = 30 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/turkey.dm b/code/modules/mob/living/simple_mob/subtypes/vore/turkey.dm new file mode 100644 index 0000000000..1b599f74f8 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/turkey.dm @@ -0,0 +1,43 @@ +/mob/living/simple_mob/vore/turkey + name = "turkey" + desc = "A large turkey, all ready for stuffing." + tt_desc = "Meleagris gallopavo" + + icon_state = "turkey" + icon_living = "turkey" + icon_dead = "turkeydead" + icon_rest = "turkeyrest" + icon = 'icons/mob/vore.dmi' + + faction = FACTION_TURKEY + maxHealth = 25 + health = 25 + + meat_amount = 1 + meat_type = /obj/item/reagent_containers/food/snacks/rawturkey + name_the_meat = FALSE + + response_help = "pats" + response_disarm = "gently pushes aside" + response_harm = "hits" + + harm_intent_damage = 3 + melee_damage_lower = 3 + melee_damage_upper = 1 + attacktext = list("pecked") + + say_list_type = /datum/say_list/turkey + ai_holder_type = /datum/ai_holder/simple_mob/passive + + allow_mind_transfer = TRUE + + vore_active = 1 + vore_bump_chance = 10 + vore_bump_emote = "greedily leaps at" + vore_default_mode = DM_HOLD + vore_icons = SA_ICON_LIVING + +/datum/say_list/turkey + speak = list("GOBBLEGOBBLE!","Gobble?","Gobblegobble...") + emote_hear = list("gobbles!") + emote_see = list("flaps its wings","pecks something on the floor","puffs up its feathers") diff --git a/icons/mob/vore.dmi b/icons/mob/vore.dmi index 67209c83d730f99182bee489cb3fb7e7bb38243d..33cc2020b0698413d97a80585258e0cd0af45040 100644 GIT binary patch delta 25781 zcmb4pbzBs0+wZ{A-Jrx$0@4B^y`-QZB_WL%beH7NEg>K%tstTTf^;{CG)Q-M#{vs` zhTro%=X~DxJ?D=zA7*EEW|+P2>%Q{)y$%ZLtLN$C*)haR?$F`h<$dXqxJh=4PzZ&a5LGL)qSsJ%Lwg}e24cEcNfObr1he10Qv}0H5;NnPy zf{4>uDVZp46FA5%xe=fHOOA#egW{eD0fF;#s)u9~Ba-U=3REGtI<$=EV+AokEqz_W z?8!b0n$i{U)FeCZJejTTW(|UI^YgZ-;HAn^s3fXX?1s3#Q_p`ohv0T}*Uj_Z+ax*m zlF3r{)Yt!enR(<^^DWc6&nqD_b5=S16DUu9JZq3=uyXi*;eku{`B9QHziC~B?W$B% zTi^kJMZR64?B6+j&2^S5Jhwl>@5xBfx8r!rpG`T=-O+ygD89&Np#?kta-#ZFV{t1s zmL&Zu3k?878j-C5&#HgsP+=z>6)BCs6VLm3$K9x)KE**{m*;j=LCluDFSpdE7*N1H z-HUSWR<3-idOl@%{HW>IhojlX&R_FtH@_POSv-|tA8l`I>oPX$W~I}9Gl{mLO|g-u zj%*KH&XQrncxGVrqW^kl{1;d&hWO-GD|^^zee`;FhSZGmQqoqlsFQYv-J;e=pymB` zMFdGs&1w>FiYLOCI8D@XwQivi5eQB{ab4?K@cGm$MI5dd#jHbYRO4V_!@jpcW?O!e z&Zln_XQ9=gb7gebUvqcJ-6WFv$JOpsv7)ji{Wn|nNNi{0E5wkDN%@>E@2m7!^|ilz z2AB1YAQ+_6m3Dv{!Q~ebk=yye)F*THkZjq@l||%h?FR33DLo8`jvzA*@t7?!*=wB=UwJKsNX}PwtZlRO{8LVaQ`u0F z!Smo6?|UzfZ6)!HZ`^!S^jk#@H)h5FDer+`hgp)edV0ND#u;hp_1N{mjHOWAH{)JR zraXu<$vNp3w2vLyV(~5|QZTne= zNd)(}LnEWtgLc>uIG^LMO+%kVnPIJYIC(&`#(u^nl zTr#?VwVe??X!Rph;3&YGp!MrLG4EqKZXTZJboX(RlaoIo*S=qBascmSkI$!Up9|6n z9>r~80IlJqo*NvldIh6kvdZ$^kyANpj|`TLo(HJ?g;oqe7+uAL6O577SWg4!glAE- z)L*gFaAcf^nW36cGNi9a`UL$pel2ccz;Mjh1(>h^U0i0sZn`Q#(zDNb;L&53tNy#x zQzNrHEHiV}u4_M?KO6V>ZWUJ6MUjd{Jy%hJYb-UMj2iKS>`Wkta#rW2OQ5&AMxED< zP%9t7!w80u%Wu*UX2?txM!S-dk~gS>&WwtQr`O2}Pm(FyB%lzd%Vq z4wZLKhT)#`MD^OF+^FYw?^=VMLKbci`Z}Q6b#))+E`b_hc1n|c$xbuPhjMsD+)b@S zM$wp*y%(M@55BLA-_?JTeTO_|G>;yOaMz!#TH&DuWK+n391Q4xb;(1@=lm}B()EG_ z8YX!3m+tMHjg;@Wb0X}wzJ`4f^kaK*>F$#cqicioF&)|J5vLC-FB z$<7L&V-vgbuGtAn9p7SFuJze(%^~nDJ$xD$hb^3$)s35d^+}M9?mfeLBxa45PX~zt-bhpOd$+deiaAMV($;OuyM;*8OLnr!m`(-t7PN#=2IT1}@#UB1RM^yPH>3q@I+bA3+Ly8h^-|A!E(l zMeUA!Vm>V&!O9TH7$9g#4=5H>7mYy{F!<;p==^&|QTLU#$>jSs1`2p5AC(1W(3EPH zh$a>7U1gwD)Xm-9dxiA~XBN-(dfvq?3$rJ1laT0hM+7T#Bq%O!aJ@ZrCt|MTMW^}p z_`Qf&=Q_QjC1M@URPDZ}_syGt`0U&;Xp;$w&psujjf{q;_B$FkkOgR(w@hdnEC_>g zR%wkFPwb2vG^fK|(8R>VbP{e~H~qs%;YE`;8svRDDHXzOd3&TBy%=9{B<=wL6a5WA z`tVG`;O2l|=p#7YMKrDwZuUn!JlWNE1S3w(`euH~mw(KzTX@d)Y<;!dw2VU}C>QG@ z_xSV2$Dj3NA+pfLXK0g(zFK$#M<0lwT=LzhWlZxGEGs`>7?qmFwUf%+nd(RHjE8N0eEN-3Lc1Z|7hH9#m9(V# z^Zw4(NvZLoyM)w!6RdRS#k+U=M`@1Ac6Pj_t}gLONg<__oH|RtPHP>&I`wetr@M+S zj?K)kYVqrL&c5x~Y^j7_tdZQ>5Mf#ow(rh}7~A-{|KQKFOFt{{>%FD(0#cx+zdE>tclgymFdT&D^HSppW?3BrAh5`9i z#Yu~No>j~#U2`OOZy~|`6;5e<;HJRVypsb<}mbdqe z-+WE;k?cziMFGwrrNq63=X<+yaVAdalW`v`2`RgcZ)bBW4hZSUy;9H5%$#r!p9ic+ zm3@zZ=qTV*V1yNuFI9L%m+2WEXOGXb)CY!6G7m8`OiWU%4?O~{NK!8srBPp!jZnLe z6yJu1g%zLkiet6zcYv{sOKx!3)@gswsD1BM z_LSd&on-7HT^KQaSZ->YDW5D^%d6d|@NZ2Nxzy>_jqEllDf)Py<~TRHGXDk~DB&>p zQ+EBv?4ZU+gVSd%XCg+8fr)wp98hRu_%ueaxW5tAfM(Oi{bs*`trhYG>4N)Bj)r!Q zw52MvDJM9V0plD*V~T6myNh7TRy&J2LP2Zwz4t(R1oXMQ{Ic2V2R1WGl%4Zc_HmnC z1M^yNz@eE#dheE7jm!bY0$N<6nunaw%*&8|FchDO}|E<8xWq~wxH(9 zS?VT=I@vk9@RghM-s0O0#ATX4Iy#beAxv0biG=MPbi&uJ4^tZVsi~>eXY^+~Qd%-# zgNaBRaB4uxnLT&?#5+}uW5T3DX`n$0cQL%0o9?CsFaO`C(O`R3r~LLb^T2eegY z-VU+y9eWQdsA2$HbI-QiOK9$P87N(TempTl0S>BO7#c{^18N+J<22sT|Npg=9=&d= zME8H!6N}>T635MVt3?z&yR(Y*^VD|mTJuH6(Nj2c2{&ZH9Ipp|Y0pb&xf9Xe{s=I% zeyzK=cvv+qc2KUvuvO*}6_hGW?sS=$>B|A$>#GMc_~Tx(a&j`UOwu?_EH(+0oCCD;+5>`8 z-X`AiZ+7|xrS#)#&VdMvwBvHO4-_Ntm4`WR2=Qr#WV%Nk=O1fyMb{39j#Pq=zqY?` z;OFX6_Nr#atG3S#&lV-4@ULSsNKA2h_<~RE3r%lm_4lF%An_40^A6`LK*Ly8wOI3& zk++--r!n9>6B1YLvSeqvDO3342UY00Y?TH^`2O_l37wfKKirFpNRk!{(H!`=#qr0w zEH;st+rT{(J(+Rt#>Oo_hOet2O*r0qci_j&OcwtXE>bFSdLp}2ZC2K?;Uw?n zC5TLmH4Y=uH@~s5{dw+|EZH^WzXk?0&fg+Oj4C)!5?q|1rw9LVyR21C5KkUoP%ikQd)1D{u z=)3&5nk>%>`F`SfEbZwOx}59wVgL7JvHhh2F$G%X2dhfEz{an`^877;#Q9({VeEt) zWAFM*(hG=C1tSzDe!Frph+|24lVJoXV~NFjs?CjEF6L9x&~*?|(zu_=e!U*FeZ1vP z))a$FH-jg+iY00oPN<(>jiK!XgnI#V5R2x)V?QOROtYiFicmK>8rHsWoXul_? zsKaiK`(-yRWG3-+Va;rol_YSt%p))w=-_jX@%-8MXjfQCHZ^BeP+N z1AkDgWJH#~4l2SvbmbZ2l7&5fC&s-)=ou97tN+n9ouo&M{sD|H>>X11YNkq<*!s>} zF>f6*m9K&@eBm;t$nqia0zbJb$mUjM-Ek5NupzTrM8lYU8zCDp7b?##F*V^O72%~( z&Dwjw+!JbZ>O$oN#~Aoa_M~9y`-w#@Xt!G%7KWqsm36>Li=tUVLSkTY)3>D?sw$c9 z4d%R7t;A-gY{4PE&EDZqKTg8k$I`1cL85Pe^fJTA3L$53tPphrOt8yT5H%+FAg|Bs z{!WIDkJGhvwl|Fog^kTQ+wB#sEA#WlQ5;ibRu#)Lnh`HEeLnlHUreLaso4jjl_Me} zDWd~_nARJP$~b12&7L;8JS*a{YHoah`EwMN2>ejGW3?iaw?o2?p0(Ib7x!fj*}G9X z5!{bO`dmL@KR>E{`mTllD*3ewya1o79W6vVb?r$Bbgf3~v`h~%6MTa%>AN#ZB)HR< z5hVT&$@0IzhswGLthNdhu2&;^4aJbw35ar(u_PUW#Wypm6S2tFTn%wIlL&Za^iQrJbj9ci|y zWEQ&l~G68!zYf zmLFkFAB;FSKoRcTD4JtQF?lJdBjpsl>W8IXP84I{@ypBdV{uQy_m_tIbX#Qd5#q_X zxVf9!&TD&?hv+lMsp{JIeT%|HT}_PN^N-*Hp8PEZyJw*@(`B4r4%vPwf9jkydV8zh z!t5m$>t|MS^4|-f;t76p;Vp~+m=Mlu^U1?0q{(;0(rXzX$*hd`JEGT+M?kv*`I-!Ojj#o4>}C*OcR?Qm1}=PiyZn%VJ+}x^ zFfQR_&Kk=!!$wli{ycV;(rWz+!gcvBIsfj{0CCN{pU-$djX%Dz47HG9irvKrqdt0f z4WghF%+km|xzDqFj%@udlBI%wioxIKg5sbv7BkJ9?xaXNbFY zyb^+{EpRd2^Q4#d)f8sXXA-BL&z6F8@u{g1po2g4SdSOgMK0F3k9V6`chs-lu*T9; zLi+?gK0SFub49C>2dLc?G*?st^qdaIH8w#efwc7CYg0mU_N0TnR=MPOk`w|_W8y7> zGGr@~)bTnwI}!!=p2xT*hKK0hhrBTPEqX%G$4Byq-gmoo=D;?xv|bKM7OTyWK-h|d z=52!dW3#Nbq2xx_TUlYw#eN6&&i?w}b^SH-S>pP_WVjiPf^kVbBA81`1~97Da}8N+ zL8~bZzx__?@6Rq32K*h#*5}|9kSEm16s&XCnWfYE`7X-**c&?I3U9=835+>a=m(+9 z$tmZ#BmBVer8ZFj-7|?$`jMFmz2&pMT_;pHw?WZZ%pc`LGU<2W>&^>R*ull4fk}-Z z(>r}Qp9*cw!x}RaW7dZpa=KVVikEl%x-o)Uoix3_m0o>h%-Z#}qk;dWe7oGkURGJb zc83Ss^Lk5dHgk6_J)qWfviFIRGdl~`Jbz;a}*Z*k~n?>8HC__Q|3#s&#_L`YG@ zr^mAQlE3pjCkZh7Kl-@=%H|KV2s|*`CXKR%>IvPy)EKlMP1;jhvXIjaewQx^({&@S zwx;%+N#_t*8XyB*+-UU9_*JQ379+kM1dMg|GreI5ususfWIrx5t3RRDTK>dR^)v-_ zD`{$L&u-bcyj3^G$+1x~9vGjTs;F8EW!*E881hTp9$fxb-){uSbH$6@9Hzy;MDe8(3;*O#l5{3z9f@HuoQ zE;Gs6uQI|1_c5Kx8+^}QW?u?5+mtVM^Asz(ySu|Nq6T931qE%BiA!nCGBj z7AEs;B`qy28V;hg++6Qwe8d{{AH8;RXyhC?JPVhVXAVqv)@JD+Uh5~_P2QO@IEa%W zkxjM)Kr!#WE9{PO9<1e9|4|R@pUcV3Kjq>6l(&xy zG(Pj-%t}uVxv0R&ZO>zYti13^p^Dlg#g}gERa_(&LEpoWvjaz{tnNpuvTl=0uSd?454JYn z=D|y|kMm%@E>yId@ONQnl=fDmBJO_s%Zmc9j9-d83JK{C63Q}@GR0Q)RJ2w-XUhV{ zwi4@H@*lM~+FjxFrJZUuV}aPR8`G9p6gfc7fbvGt{kj`*|Pr;CFhF3WOqOerxwHu#J*K7Ou&Pth8Q+f;Zhj4$Ja~5$bodP@>W$&%+-x5 zq?o#?3N*MM1ihFVn%zAL6^n%LP~<#!@|H04nb8ECR+9BU<>j@n)LCKO*9w`pL*@vl zaL#*Y3I~}MD{E_0_@fS#fgof89Xu}UHbZC-1n}Gdnpx$D^r<}(L-aLR6{JmejHCYj z>RZ6-+7Xt`Vn*W>6xw#VJ*Uz1*! zut);|wIyLnVXZMkPMz1ge7tgXxj4FMXN4p>|QE{}KzHrzf& z2ING|ktn&GPAdd7!L+e(e&s$DQI7!MJ%%>h7yw z9inQ7gM$;M$vo1C&WZi6w-mND&%m!swcU3ZEO2YkuP~Xbza;J6rO<{FU#Ho!?72** ztOtDa!^6TrS3BHt$09!XVDC124aSl;91!GRUrb{o6%YCVhHD29iOS#g-E?=(hR;-c zs)d=-()R4L#E~-Rmf#QhwXT0exCj-3%^U76!>KcEUbQph*jh9FpsmEoA}iu*?x?* z=M*)_Jj+p1S;D37hV_4X_d!k???#elIzp7PRwOMk=>1hh65a_TQnS-DSyil!#2p_~ww6a3oHR?!aqLa^K6Q9H| z2aC~qy*5M5|rZ*3rH{1FnB}tIM zAqMPsLLt41swYAQ@cefNLRMc>#=;Ts<>!0a_e92>gR#@`1OR{;cmyiS=|p?Jr#fn{ zjO{c5$0N5=>_bdx!=Xdl&DTYvPFsJnY$RY_>eihZOrGTu&*U4uYTtJ9M-*p=Sq*m% zdQx$)?ky1HN%k5Q{s5|Aa~fcfx&p3%;B{*p=z+rDTOwV``e(wp@4!I}l@=8*FYLtw z0#0fW#ADAs*4Ly@g62FAU4kaJ;7-ro*U(`kS;OMjMiOzTf@N1>w_3O>I*t_W-|*WMUX&U0e(UbIXV~b3)dt9Ydm#2AxE9%Yc?$2l$MhT ziGQz}?cPR_nN4PEZms`B{@j!I>g(>#a-bwWi{LdQp7ON<_9|db0zk@ksA1j-$89-) z(nimK1MnO&9%W`^+$UN{rR+>LdCHgW4VvU}{5+-=Ys(-K5s~WXTuPP+iYWXe$-)D! zvn|TpjGuFz;w7uO(voeR8zW{UcwKgf2mQ*lFkVTLY00R^MdtSHO}U-7;MqNYDIZGy%=((a13uZ1jWjoc!q~0Cd2Noc3o- zSTryoZUe|} zcm~f!E(7x*g+E~~tES*Z)&V>dMLB-JSr>=+$L^pDc-L%Qk6v$KetMDKfAFv+QaIr& zqRAxI+mGVY3x+K(Ng@$QHpXdr#DF6C0QI!rF2ODqH)y$-RcVg$!8!RvOTuaRII2M( zZ^VILf(5r;9%Z}v7M}iz?$GZ6%Q1-xE^hNj-2H;WO8}@uB=Gpa?Ls!^jr7d~B=@gg z4-y>wBA(+P;Vp8Tqe@iA3fc&I{x5Cp!I+0s(fHaNMQGlcwJ&omczp{EK>C=)fpN9rqd=RZS-#A*_;z(22^pTpdWamg>;9?iiuFqt* zxw#d58y>LD8gubtEYpwf-T_mu%gv_)^vxm*7N3DBgJi^$+cXwm`r+9)h?m+YYu&*3)W9LSfnNOx6cN|0Xp;oibtZf5Xxnzakn*e|gLPcR z!We?c>OIRdevbszO`~Lj{@&y>@26@2*J#h(>dAV6qbCzm+WoFoteo`9UThEJjJq*p zZ%F&Kn6+k;M1t$AC-X&*lwQ2}jI6E{b2MzCrCR>OeT1oLA6;ru3_gGw0%Abg_$bHT z-uwmQh{Vs;=Wb15?KL#OWk>QVeOFHPp;SmtW6R|{32gUIBojLhPEBv0lQ)`1Yo53x zP&x9(dna~MTkI{A#^b@M;K1RoA3uAG>fcL^BS3!WAN@e+ys>%%QngW zq^@o75UvOjC@jpTU`*3PX>RQ+ff4tcG4j>-S)y*Grj08jBvy{J zRz+!%HuAx7gR|vFBaDcF*iK|>su=s7JEs$I+UwvU)s4awcm3{Yk1kY6o8{U~nH-0Z zHW)6)V)}v9=1{HE%wHbVg?19X<Nc0<3zGj6r2JJ=&M8tGm|klm4lkF!(P zjpT&Vtr)wxX2B={80p8Qa1xmSCjcNTBV_h|f@>}>xFo>+A@aniGP=Jx3cks3qyN1i z_|IIoin^)i;Nk|1Bhi5MJv?TlLUA%{{5{rNvitlY>&ue)oeV-y)P~&NuO*Fj@N(ij z9Drt@bpTo)_3unol4_T5-n~l>MQ;Eoz+2iN$%_@5)G&3B>ESyO{9rg8#eY-q*301k zest^WH;?6o=ocE?GJ~N1*S8ILuNlMVRuefMv`lN0P8PRY1VX()m)zoaVSGN)wBM%X z?qa@A(a-*3m>TS;;t)N~;ixEahYsDhPzc~LXJe)dHT*;m;04&6ha>`AR|~iSrNg>h z3<(D}el5fsAo!oQaIVh<%)EX~=e^ z0fguRs9nH(AY0Bq8U&i+coOUT|MZ4GAE8@bS*2(9?= zY3b{8`eaHKk!@8vD4&K{%YAQ2m3|K19(A1IpT&NQuJlODnnbVf6gZ7qS zgUXvHtZGn#r(DD%zvS4T({9&(BfLeTfceqeW-n!*B$#^V#vA1rxyVbN0a-i4U>#OLnZW^?84%N2ZOXX z(GFt^ViHac>;m*iqY6UhnX2OUJOUv(I9`^ z@a@w|2Dd@EMbmJuWy*T82QlM1w`5OG+=>{oQEE;bk?M+?FD+o-2xEU^p4~GMaC83J9 z{f1Q#^7ufam zO~6>9A-IRZ+^EmWNcfYlK7i&I^-U_MD$q2# zvXyDFRD%z94N%xtef&5C;%loXF)=zC(PZgCPn=fY9TB%&Uqln$yQ2gbS?CqkL|d5w zxx+(IN_T`yECyLYk@Vt@D5Yqfy(sHjZ~!t!+8bX!-0Ab`PcTM#t|avuIf z5`(<43jT<#gnh-WVgI`%?RL{2!XU2>1PB{pX+?#wThpVc{Z(?gxw^uCk6^m0O79Ob zcM=E?Q@pnhNl)j6R85Tv1EX_)?z3{-bErS(Tc3nk6Y>n}i6-Sm2utgifL<_i%^Tbl zw~EvG8VNRkgvH0d6Owmhv$-2PG{dB6u^4gYfq&BO(9`rtD{=q!&jHs`qQp258c z2vv%GKkQxhR``aq{DlKp<7?$l01i_#e2u&u{Q8UCct4TT1%}nEY0)c}^_pas3i? zx7S$Ehv-_F(I}V%vNkHmxM<~3YQ7)SS3>7(`gNFBTs z78ZW$tC1y1DJvu_6jED;e$(psfY}uY$$}E2_!T@_+)|1hnSV;=hBdhC`VG{C(E&Cd zPs|+t;ge}XrpVM9?cz@p1O!a~Rtid)l&IiWUKxW{?l*%owm95rDBQ)zGAqq!)A@M) zUh$Icod|Mhg8%8m`q<8vGCf}MLeOKIPO($WlxGZIgbuxlSFu!xSe8}NV!(62HdiKL z_a<;?GhdeVG=N4aW#|u9x8nx+to@-5^5YyZf!p>59`k4MT$isdx~!RTUrX07Q10HO z%RZzjku9nd8{98nzy8*cQj;C!$QaiXL)5lG(e8UvBbK#_Pxw!@t=~bwi3_+g{~>ok zsgiFlK^O%r1%1#-Ek6Tc7?3aiCnr2@RK{e^$!3Ow5I+3r=&fvVIRmC@HeELo>O9fW z)tBAWBcy`R#`EP|A_F@}v0YqB6*~>p)oGwE8%>9F#{ES2WWGp)iwd9L7bRc$s>A*! z+4ZtAi>uL{XEhdg0rQQhyl0K>wZpXn4W>lmQ+*k*Uih1j-w$KQzQmnbKzCL8`%WZr zK~Lz|K18jmv=&+EIftqi({<5sI$^}4LN_}x<9r0c3^AKs1mAf|6i9E%@OC;YlZ+?! zeMS+5#^G^|*xxg6lk|1E+(e;zev&bPDK4MW@@D}8o&m7)%g^PorbJ@_cieztU*rXP zPXOKQ#*F(8eZ4755&}!j07KT!als}eE*%>3sbDtJlLs*5rP0wPEaK+wj?c^tT&L@l z7`)fQCT&tAi_?4mO)=v=ZhhMeY8iOa47&=#^$e(r_qOGE(IU35gv& zRO?%WJUijHV@8sSmMtSJzdErMj85Mqd9_s6>-A-Hut*TtpZR!RYgVtJ51DsoKJT>PflXsky)>&z{Wnm;lnh7bf6|C1Y`iZ$|)jWAbvD0Zu)tcRztf7 z4#nq~4nt=oU++_h;>a$Uz5P{_|9Q!?HV~40 z@_$F4!1vs}KdlqY&SH>=l(_+KqEsg^=1F~>nQ?_Gjwh!2VUem6f!n0x=gP=T5QqVx z0Yfzagy=x8hb-jKB{U~XB17F+{qM7aMQ&-R%=rwV>BcDx1`Pofe>dE$tiIB=Gh3@! zlax6?8Oou{5ln_1{A*DXq4WUnMJGY1c+i5VE3FwJ#ydz9%;r;T;hMHIyQOZrSuN+V z+5ufZf`ECd$cjF zG$tVd!1-v{2Qs|tau4R(;9`49yUUNo~S zmvWQHNX2chbjMd0{z$J8Eze+ckT)PCvt-r;LB32^Pve*}dTn)MJ|ULLVyn9shASUp`OuJ|7qvWfS;K=+3zAe&~<}{?TRJy=?B=#?43e7deR>pDg zFHs5DNxhpv>$%NDXr)e)A>dDL6F z3@L7`hQ3>GoDG;kaOB4D!XV`H4+AiSY-mbE_tw-%tSc`^_Omzx+jA|6%ynO1e&OY; zJoh=jRLE}dT#+@cwJD4Vmc6>>a&`I*?)~&Mn%8`C4Nl^Q=ZyXSxWZuTN`^2&ae8%%h$(Pq<9Kg8z)a~ zxnFKk%}FqA$y^K-2M@b)(?0LMa(v?~!bNMgr1Am-T&L71-_}=~>)MbK&baCU_ZuUd*EE_D57$=D%5_ z<+|Q@*+*?A!mfFj7lNH6+_U~!1gF+CB!oov`^kmUoigz&6joD0E2<|t_Y4Z=b(P?n z&&xZVzuRu{HG)9fGdEh(+lcr%1SWCG`-U&$%?)_jdr~te`m1?3X8vIAw4^IDjHJYN z=UaKazdmXuORTr2XWP|Pt{a1y2saI)F-HFW^}1r*4+nwLIi@?l=X@?_Mj8)T%2v&Y zw^3|T{Rn@WS~)7y7)zcDVzh`EKM44~GMRrWWrieGG&alWz^)&Q0x>Vqr2S~HJhdAg zY=$URh*^2WP>IPrPiBEv6v9=o#Z88(#`Qw-kHUxGkpdd40}Z|gVJm9H^ttD19os?g zgk@mFOqPpNO7#1CmkM^4oaRID`LpZqhHpp)l~^S^g906`fHSe2ox* zXxY4I_A#8ou(p2|s!!27<+lI^KR)b}&SLlkxu#Z+0RodOT>8dF4`5eUY+M;QB4w}6 zR%;awFBPO9xyyNjp0mTEZwOqBRc63GhOU6toZAsOU$rYczb@!^$*@6vt<@tL+tGO2 zgy^!j+E`L9rMCn2&}qkwMO2u{BrglkIe#9JLRdLUfjDP%Ztm*xcC;dy{LfHk&x3La zbne(T8iBe-|FyWF?_|S>5B%@j0;t`d`zTR9LtbT}0uK)&xc=MLnn%d-f8p+oJIpbe z|NUs|oq%9_dsK5pg^Vk?gpq$i=LtuOCi8gpKY$fPU_l$$j3xW8Gn_F0*qg^gP`+wi z{o$aFn^Of!J8tUsRA)%fIl+Pm?{Ukh@PY z00g}!UxNg%j=aoI%LiZ$<-7Z~XKnORZ=wtgO@`N86?Vz)rCiN1)!9KAIt0BKt3yBJ z+w?CwFgVgF<{x$rMgJ*zLKGM{hB*(7 z`5dZGXf*tj_x|_DZ+ON3Lmq+*7U4Jb*qko^0@=TK&LWp;;}_o}5j&#vB>H-vetf}s zb^pGYu|cFq8ecYRJWm3fjKuAO!NG4?*3v|}_||E`_~liGWf=#15?OyT(3(rXm1z%u zTW_Qq2;l;P+^+%M1#*oY@t>BJ8uk__vl=K~5v2(Dx&Sv!W#ZhwnacILY1X8F@s!h= z$8u1y@o#+MCN~O)qoGN3+t>`eqUZ2Q`a6<6^V+o$hRAmNcy}%wGn|K~1iV}i$nKc- za|58c;@sy5gt(@v1Gt)E`G@n03kf=xaC4n*bM}`nTZSgMq6CdCL?$=4;^PzUM#s6A4$j%?=Er^4lHpKcjh;Rd` zH$SX8(pc!SptVNmgb$S2uDC$L@f-PPa zHp*%?*Oyysu|4EVh7$A%kb3x6__h;NDro<{QktjutfaLid+uyES2M9ReIq6T-hrH- zvbeHjPN3B6GmOdir)zKV%KWxoGjJjJ3EYf7y{Kx)zga8fLH{ZtkpOZVAi`e9R4k6B z6p+IEFH~wIM6{N^;!x#0uBpm4!6HxcGTt>u{ekere^aNp(A@qc+z6)5FelWxHH?L$ zh9YA|O3gk)u-qN|^eatS&F#)e8>=JZqasC4AR=z;H&fsIcjPirU;672cyq|F29jLL z*nb(uV>QSv3ltWSx6=aS)%Lg~N$}2o$BdXX_;o&)TG^|*5ZFp*iR%;z&~&_bOQowz z5i$)8{-1xp>*bWy;C$A`ku(W+EMMSm{rjy?u;nY5)XY^_)V!(teY%7FOy9_l5vi9p zK8ou=7d|6^rUuimRO6;w42>=soK;M{U?0NK(YLK&Lp_En~LsG2#t&DIM2+O;qq+U-&_j z2n2bTZ5zKVf3n;dF;o2L*8cy6ueEX2Gs2I-b#aF1TOdf1DCXb212;&9CUg3E+}oHo zNarqk+;{0h^l&EQOBP#Q3(0@@n=)61o19`rCi= zV-_#;ZxuZ}DPXM6BK*@u{P1!Ly(1SlB>~pI!O8S?zE83}@%E`Z?SOX)l>9r+TIk9x z&v=eS&Q*fGx`A0}UicsV@&!qt@vAq+g9rRADbM;zpB!vgxm9?vg04%f0PJ8UCcnhD zV|cM4e{TL+zk!Sb2I|czgUuB0&2(pAW0{*HX_;^VU?_cr9&Q;!6t%iZC?{3)l)tG!@i zD3?c2nWOe#O^~l&>z>7>k3rAxYxHpz)N+XmQBWQpwc`ek=A8IZv*+H+yMz=wa*>o7 zPfnXQ_16wcNlP9xUlbfklD#6g8v8)C9OKGami%{wIi8j3##51E-^c_CwrXkK^j~QE zn{4StElz_QJHI>nMtplHEK~F97BIisp@dw2|LV=jThe=%&2vj@mFgXk;#++$R&el5 z(s%udak!A$9Ypy!o%c%4z1oHAYrcZ1HB)WAsWG2KBVZ10MLtC~@Zo&;Ag-bw+xp}) zaaT`IGjyo3F2gul9R#a`kqeg;3kT8tJ53K8P3ZhVJBqGQsyvZ!QiXC2~_CQHCFlsl3VCa@lZl^P7@Tu+BS1UNGAt^=*=rDF#+wT!u$R7oS!#qqLD)O z(yM+o6yjNS7=YqKjzzok%2Z9k+fV?9LbSPqUDLHAsrLvRyh$(f7qXV2esG)s!8*6G z-F`v)O?xqe3s{kmF<%2`c%lw!!N^{05Jd?kGW#vx9lx#0?)1Km3*zS|wly`2=JdZb zdUVCcjv@ygy>`YHe zNQiucK3Nld-mQ}qb31ZUl+g5|AKg|Oo&u#O5u2wDDd|ws9Ss&-#zhrrf=pb9SeTE; zXGxaxcURJ`p^p+dLM1}uTWoRXp_N{$@bicI?@mq@*`9HtyOC~ZS6#n1v(r(qrhn@6 zy^mpRoZo}}4{-5z5K!H5!$h}wEu2FS#UI}=um9?xx(UDb7Xj%SIy2=nuM?|(BrTE_ z!tmrniY-D!_#+WTt3J_?zF6bc^W;W&PZQ_WS#N}uo-RKvwaNhmEkzld4_$e|3XY-)5GvuxOvUyJp51~B z#rBjb&XI!_a(J>bL?hH+{X|f%kZVMqfBmjGwVLW#SWtlR`j_r#-KQlC!k)f2gYKVoaF!eIYMOaD3a z%2ZP+1*#!q@gs=f=>(bAWM5Xf&6mUC_n~~o|FBAaTiTeWED_Xhn3^Wew=$xvvL&fb~**C4$rB z(S?FEw)$?3+q6L6_;&zEJS@^Q0nPr315Nu~Qk_EZMelcGBPEQ$#VJgVhrGi;izEsk zsEs4Rvr4;#_B$fryjBSODk_YI>WNR!%tJ^#e0W@32%d|)hn6ug^`kTqi1vEI3z&Ds zCcf$R*Fs4N36YDFwNa{CvYAf(9DISBFyi+R^Buo>Dz3xi$kb2UGs`Z~>4?=;j@;bb zsQxw8Msh?70YWFHC7F=#TW?PyARk+46h_iaYl*E+sU6zo4TWxGON(pY}l^KIMIkK%CzUrzi_Fgb&sQTvrEFlOOwlfN`1v z9>>ekUUhM(IHW~C?#y>1QFM_XtuSyB6*aoAvB40La=T>)W8Iycteo4kjQ5#B0AQ~5 zTkVE$e?ww{(p-}**;rJr;Z40NuDFTaq}NDr)}QGQQdIO8oyEAkH*=uhSkT*X08Q?;u6lcK$=PdBLen~ zFJ?n?b9Yuv48yuU(@023am;#fy>gok+d_$Z)SNq+$Ft&EXFo&^>q%B_fhPOeH8e^S|& zz*z2s{jfH||ydgyDFOOA?!nJpe zZ;#K>c3a(KWj`O>64!qUA@XJixIa_Ga7aN}S(A8K#BdFh>{knkuQg6!7C)7&8anuK zQniCN7DO4rGK=4_ma_GPFyH!jIbr~G)96%#9>Qs2X~^J;J_SNf<8teqmE1ek!VjVd zN?V{WKpCvd-GE?pY6Sg%vcem!7u#NUKSU`+p&WQ6YcW3^=^RstP&5}HJPmPk+DRjp z6CHk6+L5Bru9vqqV_jn6`?=3X4>A8*9Rv0tp*Wt^ibb@c=0s2Nh~e@%i*l)SMUYTD zT3Q8T$HMJ0Jj6HFbM+amDPz-^g6!b9MaEY!R!E6>vZ5;wi;MF~NyYz;zv8wEAZMaa zeJDLo+?T`QOZ2;b#^azAyg%X~`G6m`Y z%i~wp;9+xT71`&H=mwyW&D7{^Bd%W)7B`Xilw|-NA74pvWhn$wTPMLKB@7!Je6oDy zapxkHbl}}Axks$_O_~FMi49~^{Av`uQOTYpbRJrFe%)_LfuyxN(wLh-Y%9x^jfs*g z6s`ZAYqI>{e3Y~EM6hz&1+{#+-<|nWGskr|jo4_6ZX0GW*+A2Efrm|CvrI;-Qv{U_ zI$#>R9BXI&U4RcqlnooXr9xU|Fu=1;jpm`o;&n|48;CMqpzJ{s4&F#A$iL0CwgcJq z84jF_g#=X_5OdJV`+=^J-00jw3se>RKJujScU@G>zLvLU;-3GjHMpYlV<)}$qX;=@ zD4~DO@H3|t|M@AT&GiI^3z=5c6Koe@Hj|rgB0_C**)B z`3V$@`}mk11=~?03iwemG~mF;CM+LFBDEQY8#Z3V15Bof3Nnv*9gAE_uk$F$#Qm zx1?_d#x6wk7z?5CqbxpujQ&tQbR7T$P3W(k=CDFU$7!tb;fRTS2 z7!FJgfHh$QZ6!Y$E5xaYJ?(>Nw+f2JN*NpGwn+;en8tg~F#$&s?_Sy^){=P&# zW)D;Os5h*{nfi65ZSgHM*g~sJvpxP`TMxdmdx0;%gF!Mdegn<(=p`BsdvyIce4ts@ z9OTUo9-s}p^L9$=|Tt48wURF+7S3HH@D1M)22ILIkMhX(dOx%Yi zkk7JzxV4H*!YD&`uR+&$sd6MPPS#10hYH(ckPF1EL9b<&CFF6om_|_5`~FqWsI1el zS}YEGV28xCx5xz&c|z&MRGgG?_l_44O*9R?iu za^BWN=KGIn0@5fQ@|;Q*6t`c+Cnct#^36AoUixz_7c^M(m|3Z^d!b(Xn9A>uD#ras z*0JPUM5(E9-WPicS})qy{PiDZp+k-x~x|}WC+UX$s&wB93%bSst4sMSGxm(w6TSZgz-i*L~h9ose=&++oHYz$T&A=d2 zMik86v@J!fF)JxI2ccay6oO7rzCtT|*fVw>RzevtqS`&#ldZGD<{x}r!pk4oJG6NH zafXle4c|+(;P)AX0C4mS!9+-=t_+4mdR7<5Qkk-#N-1~$f%wHRudEBh&VHaH6FKf33g=5 z&B&K19qoOCDcRdoym`CgG3tmXChiSJ`5kWV1jJ$e=~dQc(8phc_4yr0vHWKWu^F{3niE<&=S*G+aC9$fDZK;;IAMi{r<)*R4=pW5g5^@u?#Y*K;q72xDc52MlQa`3})_D;5ZR$7h zVgqgp1c+C%zK>_FbP3~+;a$9i!R5PRllFW{!vc;8wJLkS(4mUrEoF)v=`G`CX7@(6 ze(Wik5&V*@&h3KeuJ=JVGb|`ECx@l>nTtra5c@MYk=iG!zKe%oCvOm;tgTJ4fL^po z8)#uRlM0R;|E&005JQ-MKov-&H;h-R}i063g4SOj^CFdGTM* zIxVn@+jYWEM&1mM83_MMp(9fN$H#i{;2=4(fIlfRca1;FJYCR2zzuu#bL~b9DxGbr z21TqCL}kc6W5{{#$M&X!ijz33?;kTBkIh0N^prB?afG;d^_9-=#hC&PM<*vh&DpHU z_^Q6{`=^o;#!0#-9mjC_i1y4(zukQ3{5n||qP?MbhkmhH#~87Q6zp+kPR=hk z_aMfA+0_4LRNQ5^_DDZ>SoRga&JeLHlBgP@o>I4xB6!yclGK*f_(0UYO=UQ%$|2RR(^K}Xv|e5 z{^g)d*GJ~ZVT!KMQ1qrFNGN1be*Wt$uB7!PYwl^mcLAn2rLD?$+zWZEdu(>p{nfWw=gaN*Ir~(wFUW$C}gY zU#vekq4wT9;JtDYM8}vJYw+Pfc?fv<8+X6+pVZ+EY9NbA1ScNYcg9v`E$kR@AtfK2 z19t$!?0b-7d2-6e5P4ZO(C+K*)|N$nfD2Iw0`Nk>!|V6vK&42CM5#TCdJv8?`^svg zjuq{oFI#so6@Eau-xNG}-bP!b_;ehEFm)J-k1_WK=*ciSzO1t<*-O0XMSnO z^9dt8{5u#xE|8+4gwJB_mLsN&X%JLY+N=DJ)(6c7Mz0b~j}P`(Vu^u+Yx2In>Wn6J zUW(C%Qc#Z`fSwyVQ}3VTx7@kFQCeFr$7iLxzLX&oY`}T)gnT)`N!8?d#7)Wmi|*&o zP79n1lRx{H2&-5^ebWC-vnaNE;P4(aKy4NZF{%GGko|zXq*ZP-FSGUt-3VsmrH`E% z5_b0{#%I9d-WY#??+&2xH4JA3-f&ev>k^!!e9<5+kntv#K>v1r%1&T=VWdy+mbvx* zobjrX_qv$Znp45=F}Bl2WOxS8P!H-M3|zS4E=KxSF}#?();%lX*R)(9MjBbW49tDC zez@{ydLw@kcB@O#y%qXv9YIEjeY&LgV0D^$ve2iYiV5Im6cg=Bjmst(kz=BelNP5g zk>PJuupohKZaUJy-^RmhuXa`n)yJQSN`G_Dr*W^on08R%(SPnO&aLuXCFlxL9)#v- zMxMK~KyLoe{fvof^xy$M0{4Kle_!i6)ZqhbY>h~u=7YG@eXGG8XU~Fj9u?0DKbNJ5 zDF7UFm7cBw+x_{5I>+157Ox}L_~~sf!)y>ugZBKKT-17|0b>Vs{NM`>D1V4#vzoiW zJ;?fvg}R6My*ylp@7$2vuxRxSeB|m5AA)DT(P}1|Tj|!j39qi-?&a_hJm|fCgu81c z-@FWbwJ=e;JnSY=--pM~j{$cMHLl*GCx;g}x?B%#sVeeeYgzaD-yVDtzB+)Pvff6N z7pOnd*7#ISW+z!B?^>syHl9N_?v6Rk4|Y&B2uAxgWsD;-EDOg?Az&57q6V}4S12LdX6~?bcW)* z@Vn~|DP0#tXe&}KzJsXyo{QgD^ePF$*P1<`4%+w?ifkX|9{5+%!nYbj(Yz zraYA@yP>vI2jc6JW-rq%`UIg_k?Q${TEirOFK8`yu>`#?jIDjV z=RE^12@^p1LNc{>JXIwI-SUAj;lx9_~ z>ZMBXO5IF{U*t5N#g<%~k_a1?f#;bnMA+mb%G=_V zC=D$rB9H-V(Lr9OGViNQ031jL7CX~)k-_^*0>iunF)QCR;v$eQoYHd5{zMb@KHzED zLfrbBryUyO7Adu13##`DkNA@cUTn7)u9;(Qz4=i=5XE%5Kf+0*ybZ(Io8^}O17@QZ%-(A z{o6vm8HgQTlI;~1d^B+;P<9ROmTGA#)E8zRxO~$5I;`M6R`Z+U=Nh;KMiOj=!QNv+ zJzwMF9z8}82}Qi3Tb2vx>YbwQV*eO@(lq!DR~d~^(3Nkn{JD41v$ z?x#-~#e%mqrx{r53rAQzQMB1kIXlS^frSkUY^|V-h10QcYaQ26&k&-R>P6i^S5^Uo&ao`n{HZ=xny^>$1sDt-u!?v-><9E^Gw-XT+q3e~5q#p9b8z9CP6G+E_RCY+V}_-2Yfd*)WQ#5Y=-u1I-==r^~<0)WZvNe75h_b_dsI zvSrV&!yfwWMGW!^DkPVZaEXnM(p*9g5v$FMR;#;91R9+9c3+A(u0Pz7u(%|KfX{Ap zq&}eqI%&El-I~v+NB(Hst{L_E8xZ2O&89H>B>7OoW_I6Y)90I>X%LH)Op~bX5w!p8 z8LM&v64F)^%us_~QFD;eOh{2K$`-Ue<^u~iuC3x8uY9sn&wXcuDCrV}-LlUQBAd8; zJzx1S%>+3>LJ=@W>1B9T-mR91P;Dvt{Cq6{JXJVvp$`)}-Euqg1b&}n(q>vAGFm7M z{JbSX(c)o#>6H$ODYjMF-fi!K+yosf+#vh!(97V?vQcGsYXr0!xi1#Zmdn*d)Sn=~ zXVT1-QdS(d>_#Rq*`-LVP7-Q62s=tKJWhinYgww)1l!Ad*idD9S|CO$(OXDBJ{#X1 zFzwDMb@xJ_Vr{=uE%ocmox!Ao{7JlPW_X*^kJk)>sdp=Y)$){N_Fv8H5v&12T;g70dtE1TiSw90U6gT-K=ygc&r?=LUap_T(Z%NPQpmi13TF zso~!y1wd$godZaf*VeZ3z7@|=v422y>A8Gf&Lix4b8Wh=Ugq1?2SK8?KtVc>#q)KbIL$5+Be zeZ3ntrKPQ5ce6pSnkwAnhpUvO{N#8C&r_>u9GAh~wo=I>D<~ldqer@_Z~;0?eyT&v zH6T0oAo#0E5Eaep?}RA42$S#JY-XT;eXC)AhI`qvt@e_E`Go2|-yRQSUlvI;QkzHcR4&WL-4jF+YvJ-#EL-O3JKSMl?0FYvA@RzGWAo^NNmB?O#3IdrQ_<+`kl<@pC8aVoj_cAHQ|M|B z{F%?CLGW79?;z68c!j_isWM_VAEk&_H}B0TX;B0uNt9ON&ZYm!4de5%-m*hAHXq$?>w2VRn1~- z+103PEp~s(mjFREq{m&12E;jf2(K3mF>B$mp-+|a4D8)OJSv^RsIE6(;-QolZBo#U zd(>1opAcLuZ1l9uVV@q6#iQWiu+}nF`v9hGXQs&DzmnueQS#g*(NipMGe3TjCQW94 zaQ7XbSQ@*yJUNIY#f31X?spxW3rb#^_ul&Er9P|m!vXn8*OnLXEIEwh0sR-^O z!J}{fWFa9dARw&8$lGk0zWVQNNKt?rRmdtzML3PCjBRB_4)s_B?je5uq#(KGP=fV% z8dc%smG829e=UwB&M8LlPePdxm}zT(s-2LJ<@x15&m=kNw}Om-0)B2 z)rgk>vE>~ywfItDf7L54BFm2*G=`S92^G51_5VHrQnQzq$iSnCBH%{`JjV*of$#4? z&(O8dk`-u-f5=ul-5?gED_!uUJz`=kM>>j>6Jrcl51J~wkzj*UCIL6?`jgHgg8I8B8=Z{UvRowp&O#Y8)AFVy$qSCuUrvRp z6XU=Cps*Q6WGRvy_XGyMJQe2yFk*5O_%@&V3SS_fPSx>eUzSKcfj|g(G(aO*We3lLl&cG@qJ;?zU9Xdh{ju|QY^MLqi551lczjGDJ- znK{Z?i`33wd!&L_k{`>~mJ8M#rc0t4HW?(qUZ@6#?hB;%zn#nqfRV9bVeZ~;|8ygP z{RxAbTJ+L}l-s+ojSZ>f*RQQJ25ow$8&#z@0=)U_>}}b7kvpSSFJ@J)xLob*pqXQ< z_hITL;A0k; zO##2g>h2uw`@NogVEJBgJFN%8R1)YQ-%`DyKhuaLIMZt?rLt6u<^ z^{*V)?risi9%r4)#er#ifu`@zsB!qvntOA0=;-O!Ka%^^&7*%W=qxW_Y7;pCoY|Ky zAmXgkmzeVh7ibt9ME?HO*yn*`d}&yycUO_QUGowtrqgEt_bbL$>$5MFD-d>Mt$D`T zH?Ehg^}^RLS7+lQS`=pR;^bSZkVTzNx6~;$Yw8@9-XZ~9h`MR@*ggBo@O9+wX;hp` z3b)+JD()!-#gb;(-wU>u2xUm9!$)&=Th-n$bBt6)qKfiM0#2jK>iDRU@}a{uz5$fG zRs;P<3&)qheDpR6|Pkl5F_!627J@ac8%J|&e7$c9t`YU+P*c0y7oKVyB6VH(x7B|CLmA;TU9 zK`J@qo8{`nxtv6lhi%Gi|zW zw;bqB#>I8TKk};SlNnljZ1CexBoN-$P0}#>e=$%%zL`Kw%6S% zDndyPtrx~}p?wXp1VHZ`rJMMkdn-6Y5O@Cgv#)$~*UDzq-shM0)BbTNQ{pgKLTN~6 z!jFAji{Lx$LB=etY(OBaCue+|xl_1SHYrmDP%+X#Uz2$v&AlelM`wE|!565fkgr<_ zWsaE)iBp}ZGFB1HMuwGEB`dBkTKK{J2eiwY&PDStQ*)+qfw>i=&4Plx`?ieR=udT( za&xYnPwQzOo^#Bl{P;_mXUcQwF;UndOC5!mn4Y2}iV3#p^rLtg7 z;A5qjNpvm~hWJ+wW?UG9nY27zvIvN$hkd3y@|_T(*S9l{(^&}R3HC5bnqZuxZDBdr z^LFLl42k~+;F6E~?$(tFVj8LGB@v2Z$Dds^|C(t7JJHb%#c@%42}>{7Brp|A zf|!)|3=M~eA}VScnc0|9Ryus=XbK?o@~rB3PH^b3u+ceb*! zGTtzNM;e36-iFPXuN51yhs#3>pvw+Dt3{!*-&7CuM=M#HcinFhvM=L67A-92s?Sx| ze46&$D_Ro@e#_F#<}Ve)ATIcM^_W*3d+oXWbvZ}KfKE?H8#Ay@PiYvaDP6+tzd8h1 zLloDRRPqPSu0})Dt?!`$PTsaJH@yRWUkp)O;1%^!gklqxCunFNfarH3b$%Nf?hXy1 zH;%j;uwi{JvVn-V-_D?emA7-*d|;bfdHYIxiLxWVr~arr)Q_8I6PLWwvBfkp(SMJ6 zRC2u>(*NP2Ol9{a{&y5Ia&1&+KC3XQ&L4YzY>WP3f+m7&jAk z;*buDpLy`b6JmJ_#k^y=4(2*0uOJ|-li5Vs<>bg-Ypod8Uw$PG#X{drR1dfN^h7|w OKMhrFl}aV6@c#k-*B(fu2F$^7Fa0Y5XMKrg?#AC$CC9I#}jT`IKJf~>g_}V9$Ve~e?>WD}*PMyTE@l>-gkH|eDKUaTQitNF2 zkGBKcFa1>)iEXM@_v&wdU?XQ{y_CgG{&@Mz+GQ2Pciu0?pNJOar=8rrI8NHy+1m0% zuAW=Fn28;FeF2Hyzke^$dq0WegFaF6+tm+_os-OBesULfLoMX zL%UuIIp~*Dj!KtOIqn~=B29{$Jr2I!e8|)M?QJKstq11vJndqtYzHhD@bK{1UvEY; z0xf^|5@{0C1%-}se7t{G-Lfmr68_d|&6zo|XwGpFQfCBiEJ@QM*%*d8sQLRdf*DDM zt~rX(SyB)4uO`3bZIa!#gxQ|F;!K}ZXMk@GkBkUv8KC5NC7Er&%uofE%#dCq{^Q)! zPGDTQvdm+^Wox!VkDl@6WlAEdx$1qzQG1EO%jtSU&zG&#GbToX)7)*zv@SR4GtQ4X zlFA$QH#NY$@s&PR0TdZKNB!G%KeBF2rBY&@#O4d~q#HWFg*>ba=-yIWWp01?D*Wq{ z(aZO5PwX1cpP5ou-!T1PkN!DfploMAoumvFDFsn(V53f81(cJw3E<>KJ(Fz=0!j&#N zV85T1(6#YjALDvqUsv;qcp1MOPK zkP{#gaw4!i!-31);hD+DsC!38r|DqJ^$Cmk0<{OMS=l+v_q^~`hgDyyKD`~IP}~tB z!?|qt%Ig(oWy52+L<4O5j4doIqh%oH#Th^%O7tf~2~#Y-^(E<%t{XmLqYCRNnp#c} z)OoMOcHJ~G*va$o*6&n?-XuL+i(5zYFW--YTMji(MAyz%?)Q1zxDlSVe?v#F$J9%A z-LTe@TNUQ(<14%Eh`D?}(uXi=Wp9q|O2|Y7x2Md~gncaJySOz^GHQ|dxa!u!hvvA6 zK7Pi0-zrm{aV_~s%by>?M4Z-mlai8D#JmWhgZd%Q_?ARCjx6EOMM;Uo`}dEiur-7r z!2AB-Pvn%zce8>UrZ=TRhQuraW(@zNoP|Dpe_#T%EHX}{H8jxeHaC$1B=yLfUHTyW z`jrh}zO(cMaG~J%#xKVZ1p_jl=z=$!4r~D4UI5?cMY51wt`Y(1<42Fuv5%xG`qru# z-hsJFsXuaFX!9RdP3VU{5F<|@kpKm}n8UHZtV%v!M!9X3b+8WcW>}Y+_I&O#dQBG& zCUCT##qNKzPCO8$;GcxU;d_(D5d>cyvrwD$NgG5#WaGC5_0dvlVeRq18_k~pZI{{m z*>2PS<&!`SnWsU~LRTjia;4bT&Rgi(2qIg8i+-Dpodfe1j6QHPNL5?_6LzyYSk34-(EFlC4 zv)rKT=#cE}7XLe54;6;JCA*6|`#Y4)5oenAkYSlnZj{{dTgkiCg21JT^x8Y}7+T#9 zoY?hKj(#cT%!a|RyC&WoNZ!$4JKnn(+NJezZ3*?B0|+l6lknOD&%J2&&UxqQTYSs` z{RnEbm;TY|$B$;4IVIIQ9Z2n>(kpRn3dib#@^es{k<*eovFX1&5>CGuRe?0GOT$CQ45%1}YA ztSNq4z61ywsB4)Fk%#k9lW7>A+;4&9l|kwqV2K-jF8t2u+0%Lw;`JwvDvvFGQQjU+((PNVv+fT50jU!tga^G^S@PXP%C>0DexcgMMMdZrpQZCR9JNI#i;V3 z$HFUXch8S?WN6Iv^z^$K=Ly)3`N5yA0Oz1s$m44cT=GePyl+XwS=L$sVCSL(xv)B? z7jkgm;EA%s5>0q5Pg@eEMG;>UkGW_1+VwjUd$~HSz|+XOdCF+zIp#E^=TFGL2zmNq zMHmdG2|~Jk*;9?xs_3I__Liat2f4$-2Cnp9T|Y@m_|EexY#K2;UOT_UaDtorVILP- zt)VvB?TtJeoiiC5dgID|PH?_$>dgiSH3)^N^o^dN8Y2ug}lrPjc2M*0LHX!1RnE>Yulg|76`F zj?PltxO-uGOBWe|`zP~U*(O22!+QQ_`JOu6=>Sh*iQoQ7O7$|)$3XBPE z)9EO;T0akX*z78MTCC4{VG09Bia8|;=5oWDg_#M^Vo2ECd1X9R>8ut+!VJ+{pqwNN zrA8?DQdPjTnPkp~(Hj|!UOhd({fN0}{a5u|M#5@jp+Q0lb5`OQq${%}LQN$?D+>#C{x2Mk!^;kZ6#;d+wtrUs6ecQGD$y~1I#FP|+qN~yN4i9H zzf9R07CwBB-kvkn9OUW?xLIc9GHwjgMp&^4=3OW&5IH!+IqJIR%Aoa=^mcoYC-dZ_ znORx*kJhLB^nHx{t;&^+69_(&o7?B0qw{A52lEoVcURK)id~?<_6c2rOL^TVWU3pB zbW%D0LiJc!ev#ytWQVZwU7J)RQbs#E6oT0-&AqU{kWHWsoG?rKY_+&J@1|Y^oNV8S zr5MEUs1RCK!oq>UK?kHR6uchK*rf4MJejdc5GezoNC$8<->7|bF5++`_I{()Ah7_H z=8OAH2)y@b-v;uT7sULOXy{Q3}dD*tF3eBO-4aYpsT=&*A4?bIt=E;vjw_T(+-8XS4AFMf)K@53*3FG~BdbYnLap!F-^l;(0?}p31 zs&eN5s|Q*tlQ&^#;(h-0#>U3IBQhq=5x2*wUz)sY*ykS1)Tt*DxE&-YrqoOZ;s#P< zk5I`HO=%^KCrL-0ED@dA+1V7P*Q3^N%Ms2RgAt-^jYq=@4#vjDgIk3bOQHTf;$f^! zL*^DKB5>6dC3aozc(Z!V^7`J4k(pw?AjkseogNR(%zWhoncoh`P9wShY1?UDs4Gg! z2YK;CX3wON!O~cj?VCN5ktVnSmR9`7$^xb%xtX=KT3%j#f)g#v4*3-lp+QsOi>wd9 zBhO{m0ss(f)}%f*dB_~AC3TURSWbjLqTpGK6r}~A;kBu?yK|Ho%jqZPE>Tz$8)w7e zERK%(TZq%8jVjATpt$)qG=!^I{X7M{5Y7)5G@}yTxKW(RPPXKEK>!5uHM#}ViSe_j zd2uHhdwmfbBfoBjYYQHn4yPhOJ*M~<^;D5Svq8Wg1>e{LnitWw^7B6iR_6DJI#hUV zN!qExiM2YK=|w)Bej%}K5G`HBS>JwS*8}X0$760+4}38_j8pGMb@CSHaUFl}F1Uif~YW z&!8;apb|9Y38+`R@Z<)IMXQsJ{*<#t4nW@@A=^4G^D z^pyRQwoTjg`RU7ITD@X6mX@mF7X0PPzCQcEN3eOn2h+CS=Q%ymAOR8g@Z!SeNCfe2 zb96K{`tHp6L`x;b$0Jzrsz&H}aU@LBR+g6w=k7fqG9xP2SBQ5TER*2NY=iGid*B-h zyXEq;v!Q9VcVdncy^fyXakLxg>x=!Gp62C7;8D&HyiB%_Y8~i%86cE)m(-#LC%)(F zCk0Ji^$;aj9rgV{8XvHcfv4TX{O$Nm-BG+YNnyIJ=Wc!Y&B`05$Yrw#)zj1AY6f-Vm%@|KGxJXnpmC?StsZLT?(wzH?{ntZ z5;v8d0iS@Cif7f2-Yw!k{o?KRwEHCwi-Z;aFbZ@>zgU-G!PNS0&u+5U z@Omr;LV4og+#Jz6hsY26QnJbem8RtGEI(i^WjDhy1{W8*3(!xG^@=hHEh$UVcc@ek zTxFxpSM^uqHT2i{+SM;H11XREwu-o%PLEom;s}r(#uhapgEcA4q=9%|US6HOz3SnS z&e+S5p!yB9*QOxISb$lO1AL(9ZeYOJpkJ~eB7sJKFL?^N3{QrL99#4Ll<$rMqU?zM zR?3?bb9JbgcdrgZ(^pB;JNvpuXpp*~)h5yc?7U>D2qEv|*?)|wSa*?Kwfl}6UuMN!*)ez;bUVK7YPy6Xx#P_4| z@82W1|Mr)PfquQLcdon4;8`*@ro?VN}^30WRb)p^?5k6=iqoCIJ48b zTKVENU81J63YETuL}vS+VLLnyy?b4Bx2Ks??vihL!JnA*r%=4|tmspLWAhrHxP<+z zxkoSJB+DmjVMGWwvv>lxYU9f{zN=NPjMFcEBcNwlT3^2jg#|d~N*WqGYjkZvr%G7z zvf0SYjOd?>8yv>zF49xi-GXpv3PN)dww>1j;?mMbg}5$m>>tjE&=2=ocObKHAT0|+x%(IBuuii|po!60jLeVNG0ZXNYhOGI zk7fenyBL%aaQJXkTq0?F{dEvqes}L&_64H*M@XK}%bRj1uQHZspG_Gbp*~XUtGwut z{DhUs$~7;D@oj+YAqgdwe16;JVzYiZ;Kx7cOg^8l<46)iPO}f=yJ|(%i71(#VIs!Z zKHesz+ahsrySO9C9Re|cAzq=+ax@c}omd_bMiSDEZMrp$nbQH%U?7jGa&EnzpgJe^ zLiMN3nxv4XCq;bEN5|FvyDTht`99j!Ju@?Rj6ZMM*`RluDsEmqcXv}sh1MRuT?iH> z9A6w><%so%Qv?ye#XK04QqE~&uHT~6?KQbR-WGSQD%|38s>mT<4)s6_lvRq`VQxnp zFtd!|M3m6N9!-HFo?8My+9ki#Fa0d|;MA|+5gY1vOT9O3Oj$SH6#^Ztj5gZOJf1mMdqhoVNOCz7E zy2YqPYsCZb!<@s~W)Qku*bD3|_l%lzd&b zcJG4F+_*h$Dn9AMC`G=kT%3L7d0zC_L|k#)1DRFhg(ZV%*QPz9xBH0MyVRdJNocWg zbC(9hK$Du*{fiM3-DEA2DKeAr&X!O0*dU(9!}o3|R8&%8ND~8(?KJw)Q6{4-jwhac z^=jrC9`HBg+7?eR?aR@V2r1ueez6j|1py`tw`{+3}@xPETL zuVlKV;go!v$^tqv5&iAy67^%n@g}`PRv+qY+xexxd@<<~BM`xRl~rG_Bd8Oc$Zu|; zD8flh-JJQbJTY1-fX0WK=a|OqQ>w^2T(M@xeDMB#``Y@wi9UpkogEKw&$y_eL3bPe z!0c0%9!bg(bQ`nD8z`QP@$LTN)*ttzQh{&yw1~JbFE4lY_qQ7eW9g7ydl&XAVIKx| zHI~-QQ*KP4<2Fl1rBbRiBSgLjspdC#){kQ~1z8Xm^QVFEVb?_;U+3?V6tu{$qJWE zR+^9w;3i7^8o7y_M5)nU*0?{MK!7;M5rh>W*olwtv)(3uI=Fx6lDrV--{7gt$LD|rEFHFQfSYzx`|CS0 zyU{XdBau(;5{bsU^X3?m>|g@h%6WL2_;6gsniaG)(f71Yx;Y-E{L|^fDtDH(OexC} z%k@3g>h{QXKiDAAufQ01n7YbmJ1PPpX}&4Ze45MG?A~FFriF+B2Jb!2@{|Had|V*D zE;h?w9lV1gYVZ*zz$+&MkttaG#<|zMD@S*T7_={Z6px!H-6`<;ahAmS$ct#d#NC1l zh_A)V4tch2X6E#_p)>a6+mrzts}8k({UTgub+x*-iYYWY@sb4K@l$r_h#-ETj=&A9!o&eEi(@8M$DPGjJ?c|;pt zpX9~rgudzv?u`%ihGWX&rWf%ylCxBfuia*u+GHe!13Y?lS?j}!GXWBbfn|%zo3U-g zM0wXaKvSQW)GAkaY>wIUb4V?RwmR=Ta+kfd=l`BW94A8uhSxP~!{Uwb1{DE{9!bif zb`x~qXLhY4>hmEokONPp{?Pf9Ls+o4<{Egp-(ecxLlDv7w^`E6(AU=|L2@lK_{9h3 zkBSNkv~ZZbh_QO_Nm%w~=F9h?At8HR>_{+gN*AU0;=|^^vGNK^=0jXF0w3m!Z`vL# zt)CUKyZd!)>&fIFMhQ4@g8^rLFn^DlhQH($JodwO$I@ndSFykgVM9H%;A*iEI@s`- zz~}Vz0U>fIi~02(5ZH?wbM2`mcx16@*-_K`PWFY|_w4KOk)mw0`ET?g$J#+?`o~V1f;a9!X=xWzsrzEEWUHO? z!}!op`FDTT7D}Z*I8!YyTPPEAE zGB|+bD-mwHE)=(=D>T=9qrD#7>2onfMt}NVt_&eWTzqNk^)lOq!Y4C`5Ao>_W zh3;ZYKpKB5a?yEcK` zMD`w&1&%c%(g$fj43Rs1Gr+U(Y?9@L?=GUBKBM#{AB_{fQzV3XzJIml@V+1}yjn_! zL9cwGS%#9wF$c|!YO(?A@E$W|&Z zz(6|#pSd<@@F!Yp-d==@ABXaGGm-C<7E5hQ?)F<9^ri~(c3%M3rQ&e&r#}?{^DnVc z?+=aacRUs!H}bLFaa{aXmc*ZNBF?n*vbkR#FG*3H4==W|?8hbLQgnW9R~`wDX<^$h zL2bmjRB4z7NHIhrG#xepR!e1^&k3-2^BM&+R^fE=lKlLiS8tqze8%;b|G5Bt8RlI2 z|J~3 z5kvbDara~-k>y7+BsyMzz8ZzYcum6Dc+%0X?tp1^Hl*Fvk>l=yfuaVrddA$8`* zW3n5Gw&GyhJT7qiTe6+6gGE^dojcyJ?ajBIkLeTB7-zB#z7XZIjP&mjN02e4ml2oI z-@F}vtSpA6e37x+!v5I1yhF+9;@{)ZE|{@|*X4C7cXdUq1yzA5YKGaQ-SL6sdIg^W z^E*c^GwXZ;9x44P34U7PFQ=e+nSupmX`>GrDA$Zm&CZQZSKc^&fAcxN3nkM{09+7J zlZfdDdAYueV~KWN$rNO|%|FV`qGa{s!K4lD7aJ=z&_DH)Vv3Db1!rXl&7AEK(U&*{ zs%dxf-=zhr`n4u}KCN{ATG&71h$vPRsb|Jg-~$DC>%Vi(D`!=(7Q=w7r~84&=4dT& ze2xUI=Hqi76O)Vs&3Aj-#=^ovGTkvVNy@olU%a)$^w!x6`f7A= zFzDn&D9Aai9iMq5A`GFt3or}fWD1gG@*PQzaDO2Y9!J2%PbjTiQh;qRcs)v3z+ z3$7kA+*^!*?u=KG%#%emSgYUeR*B7zhlRpZF623WyU>R>Clf+ArMpbMDE4a1&ySLG zzRFIXKKy_t_Rk110s(E%o2#`VkA>AhLA=N?Fe)HG+GN2z+5$svl18GDN9z7hDs47o z-j)^?VRfY8$R=hFcOoWk7>kUg39kOuEEjaj+rDqun$rs@w<;@P+-xOfyk`4`F`9+N z5clQ@t(~;AiBT_t;>nAlg*PoZ)GrjAD6Bt{iYv+FxX-f>hvvN55jCi4AaUG1-vA?B zT%Aw9uXk2%v-%sN@mMo4!5{bm5j>w`WqmZU7zSUqeTi(7(dW1s^#)y)kdD3Pz6fd3 zv|YnXGKNb$wNji$!8NcD?L^G8|}964R@tz=3^f}!E)e)UB#BLh$f+r+kus-=L0`6JfB|~?Kx+$I7~=2@9UD3 zou5w3(J^Y^hyQD5C9t=;Sr1Pj0_J;%8_N=Ff}8-|H4W)pejQ^V8P<(?k8fXJIL=?RcUvAehGT1gl-Dda-DgX^HknB9 z^RF%v^aIygV1Ndqs2P_LjJ`Pg3Hb;B+#Enrzt!(}-rdwFqkhO98ztE;#}U&R#9vjW zTtnVxF6GGnaKs|Scz)+vNXI2! ztdJpEg3@|i?_*g~+XFmqm4LE3Q;yg1cL%AAiI%jiJnzK&DXKj1J6>7+xmgX$P0!8+ zQWt8>({dK>_as%FK`Us`Y{Z2w6BX`a)I8DOSFClCzwYB$aR0~?b=fKY8T;r|=XJn+ z$DMfSOl_LZXGOAQ0~$3(2fOgWfynK;ShAX^8@qerwrQFWBLfW3iPX^a|9H5%2&uql zGzJ{vm(dpixexvc9R*#KbqRq@q&4brpS?B$QG|d5Qh_nsK;q)}(q|GgDYY?I;>+V<4Q+gzIS%2Xn04E#gm03|Tq2VvK_mv^A9Pb6gq~ zR~VfssOBPW#rKGs{P?GAhdW;9t6$IZr$%PKQcRgq1P=8q=%dIQ9K!e;sEUTvEryiN zsy%d!b8xocDTBzkb@DzFga6yIku&n8k!NQuWoEx!2c9dCHMK$_P&l2bASe1HSV&~> zWE!$oTXY~^3J$cx&}zc|pVh4MG-?Q|_4jpYgvZ46`A!)~9j=-XeQ>rTJn$Q@7HCY3EgQuunpA#vQ} z!dJ=FY0A;ua-xU&AJZ_KIQ#9^=XB9J_DhuyhyiKO1I}}G1bPw#V`{cTjm4dVS^0Tx6@m7+W-%6SFyoJ~+rOQz8xRTseSz&~>3(EsbO12v zf+IPw4k%8-z~$(+ys0`puS!nujGh)0con96mps083eTxzHHq05O^t^F@8H*3FvSz@ zlzI2=QTupNKX*D19hytzJq$cnRzjbj#hlG~i(yp^uRb>uTXA-fg3cTZ^j|5 zdt|Opbj5U`U0hv%F4*VU#6gI@tIZ$jS0YDjh7uAiO2VARdoLb16gr2rXN~+s5wUCI zk^AHmrie9_V_Ru_q?hH`@Ki1rh>@S6~X#nd-fQn}lK@_Q2>_?Rf=lbRS``>6{ ze*N4yQzzv6q6uoaGJ>=2x#Q*VQcTxZto^@%?@I-yD;@DaE)v?|@Z{U6U_z*xBi&}6c(5lNN&vzb5n{H7WWb*g_rA@=4Aod=r0-(JaO8B` z&(YxKXj1yeMP`5!G_0JI?>lUs(ta30CyGcW@!d&{Ws@GUZo^u+2<6U)1??y7xN^4^ zXTI<}ydVWENT0j3?rt_^Y2|`8_sj>rj6Lly9S`%lr$RY>XUsKuy2balY1xC7|zV7bXR_(m)5J81_m(e2$4UK_)S@+8S}9I0V{igx?(U zq3HXpRnc>oo~r|F{ji@PSWj1B#yQaCf8WVAmSZ#IsvQXG3WBbCcK#vpiT)~RX}BMZJsI#2{Q}Jz_6?j>1pDT zzVFUqKx{C(WM(%PH~7m>B9JsQSL0lU7UA7siK`0E)YaE7g?vX5t!74OXUp~p@X_|^ zwlnh{+E`@Vx8vd<%;a1=(A4;}MD?wjs%|YUG4~%koxJx>&Zqg*xUV~Mi+8^i z`ckm&oLfJ~W^&)NQuQOPYH=#{w%k_*)|(p5sgpHFg2xfe)tDJ_RYda&`|B89R?qTUgN zlxNgOq#VSUsX}DPojZ5N2z)HRManJpUXj}jKnq60H{`a;3z|DtH+&wym-a!U5#Mv^xZVuXwmsjm3K(<0`d1S5Re|4KMUge^0y|uJrjtoA- zx5uW*+zR`D&aC^^kKoyjy?47Xo^iCe;@OC=C3ro0G_|&~Gj39qh_lIvkk6SX!0(9; zy^cuZnvy)(^UnIsU%OoKMf~s5;&xZlkm(cODk$3Z@hUVd?Bg$biZ5;?B2L5+BShY zWj=3!*%Jch0A$R`zP+oAU9OnBKduTP#HQV6%zbIju4@?tDq+cxbW$eacK}}7mqg%W zmoT+HCisumB0hL4B*mfG*#M}da88{xjr-zpk!~x~PHCfjku7qo!ni{uOlK4a5Gj-5 z%kGrDxk+BKFTpl8nx73(k!w!XI0F%6)_a$3rm0ejDVjczrWLX=k*{Gq)&}1|4LLt~ zE4ZmNv9dJ)OQ!NVd<$-)*f0oQ@N@eehkcAXH=m&KX-(i$8?~0??0Z>vk=1-56}0)a z1}}E)45hhH-m=w_M}l(U^Ru^6*35raT3;ev_Em@}MhfH`3Dh4bwswEo zVC_rGw~zcFiWO=x;Jt!@5=kT<(q(O{v4T{^-etVbmiM6t@ZmT_?0IPp zIuw*ZckVz-x> zlGhXIt@P31N$V9yJ%=hn*_xtLDZFn!pps_E%zP9(2Q+quF&#XM{e+P7_|pT-lbAg0 ziuNsHAL@W$1ET2DOFUW6f2-tBFk)fcz-Aw3+`yBhTI}YJJ3c-_F`*fFm9ohTxlV1Oy}%bNWz!li6R-pXFarAY{l(aeEIozZz4Z0)O?kd zP4s26nvZsTj;5Y}Hb4Sqp&ARE^aFGpc!^)+g)-<()9Se>4-Q$h!78wgXshw?_CNKz z_yJbNg@WX}2Oo#$EFTuTprsCX*TZ+^$x7zf#&$|H!sDT^#`oq2{?7>`D)r^<3f{X2 z#>7w7RSilqW{OMx_x@Jc&^D_2(QJpYt0Cj6d_=jR*csZoh$&giL(U z<|zq*!Uc(T_@dS2*SVhY9qmI+CL&Y6ukq>hab2N@jt~!6_HW~fc%No6)P4f>omg1Z z4jjcW{>r5>n9Ke=TfrV;+S0hVVc$^ zk!3nIx9`50s;&M?<8DbQ#}3?|r35U!_G;{v<%(RT>)c|k$e5L~KZ-OVyO|yqWVXp@ z$M)&v2{H~9x-!?kYAZQZE4UGsdEB8~!2TX8W*4k-S=9PyvSQ%5ER@wnvsv%MoXdSQ zcYx&c3u9+OaaPmDVSd19jAa~)bvv%+$D2|_2U-!9!(c6*n5dLhMqrZ+Ed4L{@a9I# z&W>%0_3QEi3)KLKoP>7qo1B8i=Z2?W@!m>HCwVj8(qTjzslk+mgxf{=xzlJYQN3c_ zXDmw*<$LYR=7x|KsJ##gG0;^n_}137A}uKPcFCdkrLMZA`=!YQ^36509@V~&aV+fF z$}=t)LK>NQW&#IAD(E+u*7nW7kDQ#Q&p*~(d~WWA{!po1e1#FX zoCxi?0yEA^sN-?Od)W*tU48m6=rTAS(=b@B-vtBqFEOprzScRI*XB$Wm?)?>IpWV# zY?>S7CX}xPL{W&jd!ywl|2$X^sa@XIXm`vcDNOlI;+#I=o}=`z4bprgc-EE5K(zat zgrR%ww|c~l4_~@yo*zvb5&8AzLEgmjROe1^|FT17W}orvyhtZk*TQ{JD#l6|qjF=> z_t-oEa60`6XTJ9M+AlsrqPCJ512Q0Q#=uU;v*m1Ox*-Hk2bDzY-{TYDtKRESG1Paa z<`Rx$5sQ}buctIOg9T(_q!akqbV|J@)4@Z*0fk$IW}7FaFdqR4t9`ry*@yRQ-7Kx> zq4*u7^V;r5x&b0W2YhXZo7VdaHU6aPner_OifwwsiYvjW7DK+nE$ANJRPW@Xapi7u zS6qrO9T}uI4S)6KU$x1>yx|8R`{3YKt@D0NN9ruv*DlXrJiG+O1dFS3IXkRKGi?C+ z2I{-aH;bfE1{ zkK^jO(0z=V$9}16b{HC;==+u1Xs-Zd=76Mp>2}*0AmHlvyiFLdE?K?4S-&qR!*3|L zp6r*y-aSZv4BQ=0pB=ZznC3$goT5>O>gim4w@n^_b>~;kap{C+Yr7k-k8Xoxm<-I} zgYHu3mp_~S^dCl&_dVukH@WuBfd826Br#XGsnC1kDoGx^mNog^;@t2$aF4RoY}4gw zgLm?+&~s`?Vn2%J7&-ZYAMXTBfK~}ESf@V>rIYGQ_eqmK(yl3;1EP%2zC1kW6TbEF zce@fAM+_^wa!BU$7xsg2KV4`8ugh!MK|+B7PN~_JU>R*rjhHYyBh>6RI6F(FA*_P3 zc6Akom@1Z#nVFgJtI)FkiRatPD^@|9G-P*M1Kww0{gjh!kvD|L$kcP(V4&y|-R;A&PN zOiOwIl$xFE9UO8tg(NX;lNWvZp7xD;qN-ZRin~EdtpM_ko8!fJ00g6bJ3YOTq;L!- zh@ESvI65z^1*;`(57gEHzzDlR;cQ&kN6ll<0`o$o!Gp-G*C6X{sM~J0QlewCli}WT z-QT+lGf$u{3J)f4G!k}60#tnhsdlnO8~63rAyGSwT}lCI8wy2V^Kk(665agI#@#6w z*%!dEhvU2^|Au$9D7Rx;$;C}ekOa=XE?Egdo*R$(K`?A_Vy8p~3N8XL!01vl=nr_f zHC17+bpJIYWi(Eyd8lH*UiZCFLDPS9FdQIw&GJG8)(I_X#KLfVH=>E;?lI%m3B&dM zH9LPTSf_Miw#&usb|N%}dnaUdsA+_Nw%vtIlC@KR>6%@P_*<8~3jO^fjWm@V9B z#VbO_B`B&q*(}Um`+WzdQg?0mFjwDt)LIP!Z5uA95pB-)?(Or;ip|*YfthO$6pG%p zY61bR`~_g>B;kH*ICZ82zLjvD$fsBF_F8vCx(;atKc}MX&R?{YJ$7GIAC*>nib7ne zMEbe#oA$J4gspa%;I(P=-VXgnFj5OO(xuDMn5U37tJ%rP^-q$Qi{}8<`}0-(Hb(xF z*56bD6cXDQ_muUmpAv_5!(qa&!AsWJ-(KVdwP4~M$M)`BMnI5i<|Fk|@;RC%FSP0` z#c0}#LVWIh-DU|-JVn_hCg>MYk2oQ&*+gB{CX=_u;uumOmG{k$$mHu8gg(Rc*6Z=B z3(!uz1c?@h7=2c%Wt6#^r53z5*V+8XP_*BnJ$R4VKMxBp*dIQ4yHq-aZ0{lPL3n%y zJ8tn%q5FbpIioYa1Y9$f4A#;xqu~t> zqc5UE!GjVl&5}XseZM!ap!kN+T%k|2`##Iha$^5LqNZFE<|xui>VnIL0h-Ty%$A3; zLRISqM_KMLnWbL)7<#Xmwx8Wl+zE6JW?O0AxdS^wm+-7ry#fIVrIu!BV55F`s0@~X z3_}I%wUiU#v>aJ;ZM2`Bq7=p=FrWytv{NI^O{Gw18Xl@@H&!kS~1OX*iCm96{N3q6$T#( zLh$$@8OzPDV8ca(AXOrh|BSRs&DrZzaM%%pRc^w9nF;&t!JU8!O~9LfU&Wp){i(@o z%vWq0F%!7O$^?D*UoYL-|9@gl7iVjGBl^_E`35YMcM`=ZYAawWhwl>q@e2NfxG5So z{mK6t3bt}}s~zXVHk<5h@)v=In&jJ;W*`6(HcXihEvqrhxTY4n8kfi3edrXi?YK>o{FA+P8-j|Tlwq*%DOU9ed` z!t0Kxeo1!OaiSS&BG?dAqjaIa^VX_YFHqVDREzn_M?7wzP`*BJwd4CY4_QGbr-LVS zN*D-FvEGzByTV!^|BA!9!aNV5-Z|)jZ&g#bwLku6G;{Pe+te}p;cC|bTtvq7$D;?7 z%Ae!&*&<&BC7Lg03_Pv)V6VrGEj3}#7mKtECFEh0jf2kg2Tyz0UX%-54?AX*hyQ2v zIGma{AOwj*J`(ULtXDqNgg)sgeK=;vRy2PjhB9iCX(=G}a<1H+(hRhr1TMI7^U%BJ zL!`fD;n$LP+KEXcR;?O9^Km25Qk^*W^ zJ;x5Yw>c)=WNYvYDDe`oljxo~B5{OW3K^dS+G1{6~KqC|5QD0}08BFy+ zUOw{6xPKE4thiXLrVceI%)}!4l~~&BWhG25T@hplI=dY#J{z`LiV?7A=D?}~Q}L~= z`1uz!!G~Qr|4ybYNE0E;z7TxJFK}_!%NV9Drg;s})YSCEWwd*RA98F)m(sVG)M}N1mt;+t&7nr;t@D91-1e+;W_ttro0`8H3gu{o=311jpCF z0ZQis@QMXmM2E+XZFtaP9Y31BYx7c5tRpXTq|3?uHjV@AXsTtsw-JUCd*n4u>|+3g zJ{kPI(kzNnTZu`~i;YSOnU+@=`4U zH!S5;nHC;I~V|Zcr8is%!O}OIq$t&Qc^_Ab`uk2=f@f@=BcF*9p z$ia^6t&)_X%p29N22Ei-JEUs};~Wa+&s|_1Jz%4wN%4g9VIMCWP}SEL)`y~vzpr&v zomA_%%2sy`T8$!Z&@TYL($5#Kbo-A1Ba$0eTh#%l$ZTyKL8fJj1)-}La+Is_h#Km<+lZ8PvV0nR%Mix zg}LjWj5@zgVERtN_u~O&d#C4cMhuo5O@o6u6VF3oQSIeO>WcMa|AOds|4)gWm_lK$?=1p~=x2 zKlI11Ij~SsRmJrW*B8`tOZ8>SCEOO`IXR%^_oCH}>XIk#{{eU(Rf&{x2h>ExT7B=; z2PCF_OS}Dvh3*rz;rl>NElJya9JHv7mIDjl;6?t84*A!4MRTtMKZ?1Dby-*tip3gFbz#2U*!xZm`LBQl!Q&V!Dr$8F!OfL4t{ntIX znjRFbR}|`Ii_>*^03bojLA?Z5!oC#&x$C}B&`u-XQ|Imdr(%rWO-s184`A0<^IA+e zAwSf2l0nRT2Z0)(1Fa$ByuW|7sGR7sPP)5qOw0(~FP;LG(vcMIOEM`bxPX|2by)qA z0+viJllMiPk12=D+bPstfwR(dJY@YWy_%jDXdEqtl_lq=Sn6{z`LAtor<#XWky&yP zZI+6uic1moczq}WY0VWzv-j;|g2#Zy!w3X;`lTcTI=$kA`hE~T<4eZ@((n`G)PwSdhhmh_L2Z0=dYYKycL~I(cyAbXcpgJAKLG7B?}NkF8)tE zS(bEVf*u1DxL3MajqoCOJnQQ&M!#3%Sm>ANmTQhkbt+o)BFpc$**l-UWeA37U~O-l z(*I!d;9qdw=mJlC!RESPgi9sXeuA-d=SkWGgCY7p_kaA0T{xx+v>Iz*<8QSXa;+Z) zg&3sG%<@(gq~wAvkJjQ12d(pmn9QD-X60Bes%Tl9Lwl3R!unesKJG*rRK5u9C`EO? z7905{@;7SpMg!#RO`u!ZSistR6Rx}-A)xm{F@50&+f{cIUTY+dtn0;`doC4JneRc+ zMAET~VJv}4qr<&lI>`?sW@dkdZNzcf^kLFMODb$^pe~g$hoA@n+VnW;H!X4L%~RCA zi*1bmnfw5XHtyc*BT5oz$i<7$_5v+^BWY?FARU_U43tI^3%%B^bn@7Em3f~4bB29n#k~h^77W40wYkb}d*E z)Ha%GK6_tyOh$Dvg*g8+_u30bI4-Phwb+$KJ%EFp7t<@?4JB9!g%Lp{;&m6r%@@i+ z;O5tEA9CZ5J-DTKneesgHj*DzqHnSZzn3GzjC8zky04rURz(x^c!Lf%uE4B3gDLl{ znlJqfAoZLa^j$uz_~|X(>?I{fEauwygn7vnGP=v!%^7Ht&-mN5t8*Eu<31NikJ$Tf zGuksW{nc-BbC&#&yPy(aL zTS3j!biqA5lEe(xx5AF!8NRF^9f>f<{#n{-fkK0vk~+-CDIPINBkp2?v$k6^&9^gb z&!JEw^i3YG4!Ch!qIp)HQUpS;Ij^_oZE94S^5KmeKwuX-oZ+|>vjVoDrVGJ{i6^X% zvI2}LiHXm|-ZnIfyw((9@h>0zU<&)#ZJBWzM&*vsm*BbyeQ$4ORv<0+6lOlkpicBl zI9!U_I;GJK-dr?{xXIGXh4yPiUPI$BaXx%lu=}jEjAnZf*^4l=h+mZr(XVB zH?%#+znmF;_nSW94M@Wl9NZ0L)nEPvr0ob?O!fVL?kM`(+gMi-8hw`GKz|+oaFu>y z*XAOq#|^G;+R-H+M}$vhO3Oj%HQu!Z@r)?(6^Sene*UPq&jAc28iM*i`e@`$*Y@3? z=`l!I7#P*&r5t^!fwFMb>WE5`^llRqu3s-WSgasd2cjD9SvF?o7e-;2%QloHEt}d3 z5nuV;ktd8Ln5YclUS>X=W4*Ft&1^&)sbGLn*7CJL5o12cN@7y*1p&XA?_}}5q^Pux=INVdV(Tzuj5fI(etY!7vgidQ&r&P@#|6BB6gQ_Ty7jQ@n_m?Ys5>FV3$# z1)4lBoa2}G zC3CJEtu~VU0#rBCL00hJ%7GXzBfFv4nx6N>;q^8H#xL1x3m@vGWW66i$P|8_iO|Zf zzl7#%46%$UQ>4BBvbgW&&}39GS1DD#3+UBZkA31g@dm%zl=4OFS*st#- zNADy@+Jd0$pk3Xd5r;(54tFEGz-^l84jTG%vjkqI3(kk?a4lGdyWjst9Wo9scuRrmIU-d&~9M{V?tY zkQPwR2OKe_B`wq0rGr4+?(Xmo%CQ@ai@a-K8Jy1yCp1&d7yr3>$!PbP3hI0GIzBZc zY=g5U+oLCfzUs(Uqs#vAyyGKzPs>%*v$cBLH~J$5%q2XV zGGnJNlDH{+K&o)+A`;z1K1|)Hh+uizFdj4rxJIG&O+V*XIO|htvwzUx>1nUeQ!2aA zx*6*Nw(#U&LVtgEd zu`4oh&&I(b>D$t|_Mkaw7ch)Q)L#lTX#&-|H{SkGA-U`9fWkXwU{=-9GyeM~Yj|&`>AXUkTA!Tl4XqLkN%$=GJ zplz~s9Wo2Vq`F4qtD??D_XnfWb+>?m2Xf*uP!XW0Y`Y9?UnKhDM?;>pylt^VFmbyA zeZc4To3rq%J{3qwdu=T@>xA|pfFzE8nu9U7tYFstofCYuf^TDu@0|R!^dfah9qL>H zDgo?T_%F5F$6)Agcnzb4fxbI1sQ`PSL@@v0@jiNB=DXerLiaLS( zh%>UY&LUx3R*tTaoq(OQ*Le;qydHV}_UeXR0JOB6ZBHiyVW65(gV zdzLNA(gJ4g3u}b-HGE-D-=o|RZgI9jaC`+%thFlym7YBxd?6-lojC{0#n5v6^IGG_ zB7AG|!c9JVC8!c{7g{vA3*jUEf76C;y3 z-qD6Q)K2R#GRuo;5pnmn)@Ka{`U)bgxMRgU&cVz5i)zQzO}9p@@NJNi=$q6by3?sJ zlz78?jA!zHAjDOuAqlbIv1w@lZ#`Mg29ImpVoqL&Re>Y%^cM6yAhB(O<903(v$C<3;!z%}kFOa(4cnDM#+2E*TF`U?Hgp&qg3w zJaVVA5kVlWQW)fWj!rPE6>81nh{>9;VU;dB^pYZ1$G(twLKLpaO(kUvGBo-Y0DYiv zR;IV^AtVXaCbzwbx3Z3}zO|gxHYBk(uCdo1=QRN5d|c}$*sA`R92S}us`p3=G$HW) NwBOsK%I)ND{{jsTP1*ne diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index 0729f894288fc49a12203b76e9a18025657849b3..0133201cba5975468660779f85f18aba9a6b7835 100644 GIT binary patch delta 115080 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

    {fq~1eR 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

    !l_wr!RWU z#5_M3K(ny2G2E#g4mCBOF}=|J6A+=jIuHwavM+SfI(m%&AH(JG>##F0E~k%15M=gB z38y$1&wz#R^Cn_?Gcsyu=f+^A+{_o$!(&z$(Xmh7Hr!5{96mQYaF9uyw@JBHuDv`m z2t_>Ht0tQ;MSW7RN)PIy6bhYZWP5S1l@L{RRZ%ED zw6@=ZQIIVRwW%P*piWL+3WmB1zGnJHcrfE$1fan~Szpf-*V_1sV(dIBgSqkSW}w7$ykK<&R@Y>cC3vtdNESarf!j38ZKT&>mx*M|{z z^Tzv6(>yU6aKMVZ@9+ z0FY_x8qt3k+TEQsA2<30#B?~&tNrP5&SFh>MHhHvacr=m=r%A+@=*!uAj*c^i zAF64Hk-8FlE996W*Fc-qbAi{^RXVJ%*cpX{Qgb#`a@+MxSQvDjRvvC^<5xMGc7XJ(vc3B?NtR>b93wH8V)^UjlE(1f7 zkLPoKT|+HZ?Cjn+Zx4Mrny(Q~4W7T>EJ{9B$&*`Eij4<3(1u~2ZpB-wgjb;Qo8+;) zLqD^!g|F`KwcXtF6S}l!q>4JxPgSBR`lG$Qt$p?KEyh&!gZC6kIle;1MF*?sr;Y&# zk|G&XnU1PWr$nq|RW^#oHe4a??zc5FUsGXLh_?$g1g$@d-g!cn?CGiCj20J*kDcrv6)sK5W71=o)k@puMVIgK}W8!2mz|R;C5=@ax#YC z2XqQe*}j|&wa8(z!5hOTG%N_)lH=L&*3(H9zQHzl6)Ev~*M(-|yelwWQaUI%gaK=V zJS%$R$*%dXQ2lFG=J0m=TBLHZ`YTSvN2z#FNbaM!Mr4(}o99>ryXd*gtkc5Syw?

    62L%|ueH?I? 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 z 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 Kw&I;d$o~PX#nO2I literal 43823 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
  • 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

    {)#{KwKqH)8I#NgVo^A^hPei(j^r<@17^8 zX7_Sfs5P%LZt1sI-7iOh3Ij9XCasg@^j74b)gG)TsqqE+J%ABs>Ig!~-o7j%GSW4^+O;fA_lBC9I_ig9cw$OQ z=%}^j&+iLpx<8N7_?uH*QkHynB=U8;0cSfKSEUq79@-pJuO z{C#gzti#2{rJ2Z(JMDZC0mWisW=80TF%2I(O1@ zFHcHMElN&F@m7U{ZXu3(!UQzgPSaM7GbUhtRq%NQ_Nd^w8@l|yUCgn+>_fclSDnMN#(>)LojFJ+8JAN`xTw-;~^N>Is ze#3BA>1v_>yipVLH|eZ^Go@wZ#`3kcTMq5a^MfUa^*p6%@szh zZ$3Y@%5jNf+kRvnqF`EZ%AvkqK&IChEVR6um`%|sacu8q)}<^*5tYZb`ZhV2EEc3yKz|y?Df`3I)`gR* z13~ha4}mg!dMIHCA*4Fl=-W5do#piLw220Z_4o}--<)YDWMwT`HH`tW zbV5}rfJNCn;?cPgn_9CmuKS_7uY5ajPzjlt#KvZQhVZ~10h`rUdsstcRMb=)$@!(~ zhRCvgI=M^>BnqDh-`sC1Wx}n^Es*((HK9e*qoiw4T3Q;=jd;wBz~)bE)R`-Va57a= zB93-#)k*W;V5fBjg;{kB7IT6dWfL>L8r*W+9T7*e_f$RyBol;#v%m@t1PZiPKx;D6 z0qSH#lUGDt3rqh)q0Po8H>*)|4NXa}-H8B*!o|gn_-U3C39IdNS!Z{bPddz0L*lrg zFZHQ3H;G)F3^vk1wjCxO z=8}43shc2$$e&pCMf!R^QXw7n6ccGX_W%sDM`xCOcTN{R?Rm6uQiN#1t6mNxviwbc z=(dQF1g7Z24 z5ox6Pl49TPfBioFz_Bs#6MXiS5()SEsZc1{eZ0AsX&I)^`Nz@jZ9h5XdzE>2ZT0Pn zCa@RTEN`0$%x54QHO7}CQRG<*AT`&@cV2B%GZUdLxD$N*mJm2M@BRIy*I_)?+ZPn_ z3JMgowB@!m>pro2f6iX6D>MOSiU`-lr z4{G(A*`+h~OUy%ltkF-N4Z2PmNIFZwnzTnOY$!%Z=2&Tjob{xyNH* zU#8=T4M|j3M(a6Oc3UOX|IDx%U00U_eSJ;4_!!V17giG=ft(e{-kqGD{)BlmKFADM z4XukW@7FtpP7;0kXH{2w_^Zf}yoUa{3V@FHl%bzPWSZ%4EWa_xBRw7XyVas4Y)%HM zrg@Ql>aLM*$$n}yoHu?mrFLp1YndY&1d;N2uFLoz&!;)p z01*t(^m>B5D-P9t<+7#Pzz44DMUm>kLR8e$r~v*{1RFtcLmj=NN-W`FE`H)dJb$1o z<3m{^ZBoZ;H~>j*B6!YY{<;`=reKLU(n$rr!U2{eW@N^XEJ*XP>H;OPE%E|jwDV{M z@4No78OJAU>!_6#a{!mCNQfF#;Z?Ry388ve+S)L_LE8$15SUlSgB?fj!J-bvzS~Kq zy>her(h;B2JhE4*?E!Jt0&*1*QbT#349#*)b-irH2f*l&;G?ei zW3Wx5VO;l|Zme*K2txTDFCII!Uip+5pP7@7r97-1Sq%cU$fe6qNq@p++#we!CN_$u z%Jh_XfQ4A$GPZnApsFsAt8a|RV{#~Fy1+|Sk_c<(EbbL9fU+jW{{L@x*D|ttUr`H~ SQ9Tgw^ Date: Thu, 28 Nov 2024 05:39:13 +1000 Subject: [PATCH 108/109] Last minute typo fix --- code/game/objects/structures/crates_lockers/largecrate.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index 2b706c4a67..5557a27cf7 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -127,7 +127,7 @@ name = "chicken crate" starts_with = list(/mob/living/simple_mob/animal/passive/chick = 5) -/obj/structure/largecrate/animal/chick +/obj/structure/largecrate/animal/turkey name = "turkey crate" starts_with = list(/mob/living/simple_mob/vore/turkey) From da88e49778338636f5a88ff250020633fada15d1 Mon Sep 17 00:00:00 2001 From: Cameron Lennox Date: Wed, 27 Nov 2024 14:52:17 -0500 Subject: [PATCH 109/109] Enables hud variant --- code/game/objects/effects/decals/cleanable.dm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index e5363e9897..a56798eae9 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -55,10 +55,8 @@ generic_filth = TRUE means when the decal is saved, it will be switched out for hud.plane = PLANE_JANHUD hud.layer = BELOW_MOB_LAYER hud.mouse_opacity = 0 - //HUD VARIANT: Allows the hud to show up with it's normal alpha, even if the 'dirty thing' it's attached to has a low alpha (ex: dirt) - /* + //HUD VARIANT: Allows the hud to show up with it's normal alpha, even if the 'dirty thing' it's attached to has a low alpha (ex: dirt). If you want to disable it, simply comment out the lines between the 'HUD VARIANT' tag! hud.appearance_flags = RESET_ALPHA hud.alpha = 255 - */ //HUD VARIANT end add_overlay(hud)

  • ITW64e|On3cOGGBEGPW@VU1N^ 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