From 3f4576dc589b84fbfbe11fe6ccb3eadf70e53bd6 Mon Sep 17 00:00:00 2001 From: Belsima <31827220+Belsima@users.noreply.github.com> Date: Mon, 19 Feb 2018 14:52:50 -0500 Subject: [PATCH 1/7] rainbow --- code/modules/organs/robolimbs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/organs/robolimbs.dm b/code/modules/organs/robolimbs.dm index ffdc0e54937..e5988cf96c6 100644 --- a/code/modules/organs/robolimbs.dm +++ b/code/modules/organs/robolimbs.dm @@ -21,7 +21,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\ scroll=ipc_scroll;\ console=ipc_console;\ glider=ipc_gol_glider;\ - rainnbow=ipc_rainbow;\ + rainbow=ipc_rainbow;\ smiley=ipc_smiley;\ database=ipc_database" From 6a641f620e100d8177b290fe4870b3379aad08f4 Mon Sep 17 00:00:00 2001 From: zaredman Date: Tue, 20 Feb 2018 11:36:19 -0500 Subject: [PATCH 2/7] Fixes some tile overlays on z1 (#4886) * Fixes some tile overlays on z1 * More tile & floor fixes. --- maps/southern_cross/southern_cross-1.dmm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm index cb16c6ce102..55424e74361 100644 --- a/maps/southern_cross/southern_cross-1.dmm +++ b/maps/southern_cross/southern_cross-1.dmm @@ -1022,8 +1022,8 @@ "atH" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) "atI" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/borderfloorwhite/corner{dir = 1},/obj/effect/floor_decal/corner/paleblue/bordercorner{dir = 1},/obj/structure/table/glass,/obj/machinery/recharger,/obj/structure/closet/secure_closet/medical_wall/pills{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) "atJ" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/tech_supply,/obj/item/weapon/storage/toolbox/mechanical,/obj/random/powercell,/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled/techmaint,/area/ai_monitored/storage/eva/pilot) -"atK" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) -"atL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) +"atK" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/firstdeck/port) +"atL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "atM" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/tcomm/tcomstorage) "atN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/tcomm/tcomstorage) "atO" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/obj/item/weapon/stock_parts/subspace/analyzer,/turf/simulated/floor,/area/tcomm/tcomstorage) @@ -1086,7 +1086,7 @@ "auT" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) "auU" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/effect/floor_decal/borderfloorwhite/corner,/obj/effect/floor_decal/corner/paleblue/bordercorner,/turf/simulated/floor/tiled/white,/area/ai_monitored/storage/eva/pilot) "auV" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/brown/border,/obj/structure/closet/medical_wall{pixel_y = -31},/obj/item/roller,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"auW" = (/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/brown/bordercorner{dir = 8},/obj/structure/closet/secure_closet/medical_wall{name = "defibrillator closet"; pixel_y = -31},/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) +"auW" = (/obj/structure/closet/secure_closet/medical_wall{name = "defibrillator closet"; pixel_y = -31},/obj/item/device/defib_kit/loaded,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/brown/border,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "auX" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/item/weapon/stock_parts/subspace/amplifier,/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/turf/simulated/floor,/area/tcomm/tcomstorage) "auY" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor,/area/tcomm/tcomstorage) "auZ" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/tcomm/tcomstorage) @@ -1135,12 +1135,12 @@ "avQ" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/brown/bordercorner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/brown/bordercorner,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avS" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/extinguisher_cabinet{pixel_y = -30},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/brown/border,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"avT" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) +"avT" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/brown/border,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avU" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/brown/border,/obj/effect/floor_decal/borderfloor/corner2{dir = 9},/obj/effect/floor_decal/corner/brown/bordercorner2{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avV" = (/obj/effect/floor_decal/steeldecal/steel_decals4,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avW" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled/steel_grid,/area/hallway/primary/firstdeck/port) "avX" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) -"avY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/obj/effect/floor_decal/borderfloor/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) +"avY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "avZ" = (/obj/machinery/camera/network/first_deck{c_tag = "First Deck - Port Hallway One"; dir = 1},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/effect/floor_decal/borderfloor/corner,/obj/effect/floor_decal/corner/green/bordercorner,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "awa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) "awb" = (/obj/effect/floor_decal/borderfloor,/obj/effect/floor_decal/corner/green/border,/turf/simulated/floor/tiled,/area/hallway/primary/firstdeck/port) @@ -10673,7 +10673,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUarTaooajUarUarUarUarUarUaqXarVarWarXarYarZasaasbascaoyasdaoyaoyaoyaoyaseasfasgashaoGaoGaoGaoGasiacJaqYaqYacJasCaqYcwFaslasmasnasoaspalEalEasqalEasrakQakQakQakQastastastastastasuasvaswasxasyaszasAasBasuasEasDasGasFasIasHasLasJadcasLasLasLasLapkapkapkapkasKasNasMasUapqapqapqapqasOapqasPasQasRasSasTasLasVasXasWatSatSatSatSatSakzakXakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaafaaaaaaaaaasYasZaooajUarUarUarUarUarUataatbatcatdateatfatgathatiateatjathatkatbatlatmatnatoatpatpatpatqatratsattatuatvatwassatyatzatpatAatBatCatDatxaziatEatGatFatIatHatJayrastastastastastasuatMatNatOasyatPatQatRasuatUatTatWatVatYatXauaatZaucaubaueaudaugaufatVauhatYatYauiarJatVaujaulaukaugaumatVaunaugauoaupatVaurauqatYaveatSatSatSatSatSakzausakXautaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafasYaooauuajUarUarUarUarUarUauvauwauxauyauyauzauAauAauBauCauDauAauEauAauAauFauGauHauAauAauCauAauAauEauAauIauJatLatKauAauMauAauAauNauOauAauKauPauLauRauQauTauSauUayrastastastastastasuauXauYauZavaavbavcavdasuavgavfaviavhavhavjavhavkavmavlavoavnavqavpavpavravpavpavtavsavpavpavravuavpavvavpavwavpavpavyavxavxavzawravAatSatSatSatSatSakzavBakXautaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaafaaaaaaaaaasYaooavCajUarUarUarUarUarUavDavEavFavGavHavIavJavKavLavMavNavOavEavEavPavQasfavRavEauVavSauWavTavKavUavVavWavXavYavZawaawbawcawdaweatDawfaziawgawiawhawkawjawlayrastastastastastasuawmawnawoasyavdawpawqasuawtawsawuasjawwawvawyawxawzaubawBawAawDawCawEaxjaxkawwawFarJasjawGawwawHawJawIasjawKawDawLawMasjawOawNawwaxpatSatSatSatSatSakzawPakXautaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaafaaaaaaaaaasYaooavCajUarUarUarUarUarUavDavEavFavGavHavIavJavKavLavMavNavOavEavEavPavQasfavRavEauVavSauWavTavEavUavVavWavXavYavZawaawbawcawdaweatDawfaziawgawiawhawkawjawlayrastastastastastasuawmawnawoasyavdawpawqasuawtawsawuasjawwawvawyawxawzaubawBawAawDawCawEaxjaxkawwawFarJasjawGawwawHawJawIasjawKawDawLawMasjawOawNawwaxpatSatSatSatSatSakzawPakXautaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaajUaooaooajUawQarUarUarUarUaqXawRawSaqYawTawUawVawWawXawVawYawVawVawVawVawZasfaxaaqYaqYaqYaqYaqYaqYaqYaqYaqYaxbaxcaqYaxdaxeaxfaxgaxhaxiaypaykayqazjaykaykaykaykayraxlastastastastasuaxmaxnaxoasyaszasAaszasuaxraxqaxuaxsasVaxyasLaxzaxvasLasLasLasLaxwaxwaxwaxwaxxaxIaxAaxJaxBaxBaxBaxBaxCaxBaxDaxEaxFaxGaxHaxKasVayJasWayKatSatSatSatSakzaxLakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaajUaxMaooajUajUajUajUajUajUaqXaqYaqYaqYaxNaooawVaxOaxPaxQaxRaxSaxPaxTawVaxUaxVaxWaxbaxXaxYaxZayaayaaybaycaydayeayfaxbarsarsaygayhayiayjaykaylaymaynayoaykazkazlayrayraysaytayuayrasuasuasuasuasuasuayvasuasuaywayxayyayzarIarIaxvayAayBayCayDayEayFaxwaKuayHaNfaxwazqarJazBaxBayLayMaxBayNayOayPaxBayQayRaySayTayTayTayUakzakzakzakzakzakzaqVakXakzaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaajUajUaooaooaooaooapHapHapHapHapHayVayWayWayXawVaxOaxPaxPayYaxPaxPaxTawVayZazaazaazbaxZaxZazcazcazcazcazcazcazcazdaxbaaaaaaazeazfazgazhazmaACaABaAEaADazmaznazoazpazCazrazsaztazuazvazwazxazyazzazAazJazOazzazDazEazFazGaaaaaaaxvazHayBazIazIazIazIazPazKazLazMazNaBNaBuaBuaxBazQazRazSayNazTazUaxBazVazWazXazYazZaAaaAbaAcaAdaAdaAeaqVaqVaqVakzakzaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 8712d7e902f824f2424ddafe391b02fd2fd6154c Mon Sep 17 00:00:00 2001 From: PrismaticGynoid Date: Tue, 20 Feb 2018 08:39:03 -0800 Subject: [PATCH 3/7] Two organ bugfixes (#4877) * Two organ bugfixes First, allows FBPs with synthetic brains (posis and drones) to actually die from massive brain damage. Before, although the damage would still affect them, robotic vital organs taking 60+ damage would never actually kill the owner. Second, stops the zombie organs bug from popping up in normal play. You were able to repair all the damage on an organ, but not the ORGAN_DEAD status, leading to "dead" organs that still functioned (and that you could never die from them taking damage). Now, repairing the damage surgically will remove that. * Repair for dead undamaged organs too --- code/modules/organs/organ.dm | 14 +++++++------- code/modules/surgery/organs_internal.dm | 7 ++++--- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 7f4599ecdd9..29b98d26634 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -83,10 +83,9 @@ var/list/organ_cache = list() blood_DNA[dna.unique_enzymes] = dna.b_type /obj/item/organ/proc/die() - if(robotic >= ORGAN_ROBOT) - return + if(robotic < ORGAN_ROBOT) + status |= ORGAN_DEAD damage = max_damage - status |= ORGAN_DEAD processing_objects -= src if(owner && vital) owner.death() @@ -107,6 +106,11 @@ var/list/organ_cache = list() return if(preserved) return + + //check if we've hit max_damage + if(damage >= max_damage) + die() + //Process infections if(robotic >= ORGAN_ROBOT || (owner && owner.species && (owner.species.flags & IS_PLANT || (owner.species.flags & NO_INFECT)))) germ_level = 0 @@ -132,10 +136,6 @@ var/list/organ_cache = list() handle_rejection() handle_germ_effects() - //check if we've hit max_damage - if(damage >= max_damage) - die() - /obj/item/organ/examine(mob/user) ..(user) if(status & ORGAN_DEAD) diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index 49fe150c4e0..d54a4aff146 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -73,7 +73,7 @@ return var/is_organ_damaged = 0 for(var/obj/item/organ/I in affected.internal_organs) - if(I.damage > 0) + if(I && (I.damage > 0 || I.status == ORGAN_DEAD)) is_organ_damaged = 1 break return ..() && is_organ_damaged @@ -91,7 +91,7 @@ var/obj/item/organ/external/affected = target.get_organ(target_zone) for(var/obj/item/organ/I in affected.internal_organs) - if(I && I.damage > 0) + if(I && (I.damage > 0 || I.status == ORGAN_DEAD)) if(!(I.robotic >= ORGAN_ROBOT)) user.visible_message("[user] starts treating damage to [target]'s [I.name] with [tool_name].", \ "You start treating damage to [target]'s [I.name] with [tool_name]." ) @@ -111,11 +111,12 @@ var/obj/item/organ/external/affected = target.get_organ(target_zone) for(var/obj/item/organ/internal/I in affected.internal_organs) - if(I && I.damage > 0) + if(I && (I.damage > 0 || I.status == ORGAN_DEAD)) if(!(I.robotic >= ORGAN_ROBOT)) user.visible_message("[user] treats damage to [target]'s [I.name] with [tool_name].", \ "You treat damage to [target]'s [I.name] with [tool_name]." ) I.damage = 0 + I.status = 0 if(I.organ_tag == O_EYES) target.sdisabilities &= ~BLIND if(I.organ_tag == O_LUNGS) From 0261cc4771178bf1bd91f22b9553ff27841dd13b Mon Sep 17 00:00:00 2001 From: Anewbe Date: Tue, 20 Feb 2018 14:36:05 -0600 Subject: [PATCH 4/7] Explorer gasmasks can be equipped through their hoods (#4867) --- code/modules/clothing/masks/gasmask.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 299680b8642..52e50216f3d 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -73,7 +73,6 @@ icon_state = "explorer" item_state_slots = list(slot_r_hand_str = "gas", slot_l_hand_str = "gas") armor = list(melee = 10, bullet = 5, laser = 5,energy = 5, bomb = 0, bio = 50, rad = 0) - body_parts_covered = HEAD|FACE|EYES siemens_coefficient = 0.9 /obj/item/clothing/mask/gas/clown_hat From 25a1f47a30d26529b99bb712e0227e2771aa724f Mon Sep 17 00:00:00 2001 From: Anewbe Date: Tue, 20 Feb 2018 14:36:22 -0600 Subject: [PATCH 5/7] Headset sprites, planetside headset functionality (#4869) --- code/datums/outfits/jobs/cargo.dm | 1 + .../objects/items/devices/radio/headset.dm | 40 +++--------------- .../crates_lockers/closets/secure/cargo.dm | 2 +- html/changelogs/Anewbe - Headsets.yml | 37 ++++++++++++++++ icons/mob/ears.dmi | Bin 13510 -> 15628 bytes maps/southern_cross/items/headset_sc.dm | 5 +-- 6 files changed, 46 insertions(+), 39 deletions(-) create mode 100644 html/changelogs/Anewbe - Headsets.yml diff --git a/code/datums/outfits/jobs/cargo.dm b/code/datums/outfits/jobs/cargo.dm index e8974f09f9f..bbfe6f59f54 100644 --- a/code/datums/outfits/jobs/cargo.dm +++ b/code/datums/outfits/jobs/cargo.dm @@ -20,6 +20,7 @@ /decl/hierarchy/outfit/job/cargo/mining name = OUTFIT_JOB_NAME("Shaft miner") uniform = /obj/item/clothing/under/rank/miner + l_ear = /obj/item/device/radio/headset/headset_mine backpack = /obj/item/weapon/storage/backpack/industrial satchel_one = /obj/item/weapon/storage/backpack/satchel/eng id_type = /obj/item/weapon/card/id/cargo/mining diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 3b703f703b9..01b52affc52 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -92,77 +92,66 @@ name = "security radio headset" desc = "This is used by your elite security force." icon_state = "sec_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_sec /obj/item/device/radio/headset/headset_sec/alt name = "security bowman headset" desc = "This is used by your elite security force." icon_state = "sec_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_sec /obj/item/device/radio/headset/headset_eng name = "engineering radio headset" desc = "When the engineers wish to chat like girls." icon_state = "eng_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_eng /obj/item/device/radio/headset/headset_eng/alt name = "engineering bowman headset" desc = "When the engineers wish to chat like girls." icon_state = "eng_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_eng /obj/item/device/radio/headset/headset_rob name = "robotics radio headset" desc = "Made specifically for the roboticists who cannot decide between departments." icon_state = "rob_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_rob /obj/item/device/radio/headset/headset_med name = "medical radio headset" desc = "A headset for the trained staff of the medbay." icon_state = "med_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_med /obj/item/device/radio/headset/headset_med/alt name = "medical bowman headset" desc = "A headset for the trained staff of the medbay." icon_state = "med_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_med /obj/item/device/radio/headset/headset_sci name = "science radio headset" desc = "A sciency headset. Like usual." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_sci /obj/item/device/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" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_medsci /obj/item/device/radio/headset/headset_com name = "command radio headset" desc = "A headset with a commanding channel." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_com /obj/item/device/radio/headset/headset_com/alt name = "command bowman headset" desc = "A headset with a commanding channel." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_com @@ -170,21 +159,18 @@ name = "colony director's headset" desc = "The headset of the boss." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/captain /obj/item/device/radio/headset/heads/captain/alt name = "colony director's bowman headset" desc = "The headset of the boss." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/captain /obj/item/device/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" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/captain /obj/item/device/radio/headset/heads/ai_integrated //No need to care about icons, it should be hidden inside the AI anyway. @@ -206,105 +192,91 @@ name = "research director's headset" desc = "Headset of the researching God." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/rd /obj/item/device/radio/headset/heads/rd/alt name = "research director's bowman headset" desc = "Headset of the researching God." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/rd /obj/item/device/radio/headset/heads/hos name = "head of security's headset" desc = "The headset of the man who protects your worthless lifes." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/hos /obj/item/device/radio/headset/heads/hos/alt name = "head of security's bowman headset" desc = "The headset of the man who protects your worthless lifes." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/hos /obj/item/device/radio/headset/heads/ce name = "chief engineer's headset" desc = "The headset of the guy who is in charge of morons" icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/ce /obj/item/device/radio/headset/heads/ce/alt name = "chief engineer's bowman headset" desc = "The headset of the guy who is in charge of morons" icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/ce /obj/item/device/radio/headset/heads/cmo name = "chief medical officer's headset" desc = "The headset of the highly trained medical chief." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/cmo /obj/item/device/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" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/cmo /obj/item/device/radio/headset/heads/hop name = "head of personnel's headset" desc = "The headset of the guy who will one day be Colony Director." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/hop /obj/item/device/radio/headset/heads/hop/alt name = "head of personnel's bowman headset" desc = "The headset of the guy who will one day be Colony Director." icon_state = "com_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/hop -/* + /obj/item/device/radio/headset/headset_mine name = "mining radio headset" - desc = "Headset used by miners. How useless. To access the mining channel, use :d." + desc = "Headset used by miners. Has inbuilt short-band radio for when comms are down." icon_state = "mine_headset" - item_state = "headset" - keyslot2 = new /obj/item/device/encryptionkey/headset_mine -*/ + adhoc_fallback = TRUE + ks2type = /obj/item/device/encryptionkey/headset_cargo + /obj/item/device/radio/headset/headset_cargo name = "supply radio headset" desc = "A headset used by the QM and his slaves." icon_state = "cargo_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_cargo /obj/item/device/radio/headset/headset_cargo/alt name = "supply bowman headset" desc = "A bowman headset used by the QM and his slaves." icon_state = "cargo_headset_alt" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_cargo /obj/item/device/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" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/headset_service /obj/item/device/radio/headset/ert name = "emergency response team radio headset" desc = "The headset of the boss's boss." icon_state = "com_headset" - item_state = "headset" centComm = 1 // freerange = 1 ks2type = /obj/item/device/encryptionkey/ert @@ -313,7 +285,6 @@ name = "emergency response team bowman headset" desc = "The headset of the boss's boss." icon_state = "com_headset_alt" - item_state = "headset" // freerange = 1 ks2type = /obj/item/device/encryptionkey/ert @@ -324,7 +295,6 @@ name = "internal affair's headset" desc = "The headset of your worst enemy." icon_state = "com_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/hos /obj/item/device/radio/headset/mmi_radio 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 de7f85c91e0..103867ef88a 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -85,7 +85,7 @@ new /obj/item/weapon/storage/backpack/industrial(src) else new /obj/item/weapon/storage/backpack/satchel/eng(src) - new /obj/item/device/radio/headset/headset_cargo(src) + new /obj/item/device/radio/headset/headset_mine(src) new /obj/item/clothing/under/rank/miner(src) new /obj/item/clothing/gloves/black(src) new /obj/item/clothing/shoes/black(src) diff --git a/html/changelogs/Anewbe - Headsets.yml b/html/changelogs/Anewbe - Headsets.yml new file mode 100644 index 00000000000..1d61bcf8e1c --- /dev/null +++ b/html/changelogs/Anewbe - Headsets.yml @@ -0,0 +1,37 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Anewbe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Headsets for jobs that spend a lot of time planetside can now function as local radios when comms are down." + - rscadd: "Most headsets now have on-mob sprites." diff --git a/icons/mob/ears.dmi b/icons/mob/ears.dmi index 88caed94c8c442bf486201d0b35f15bfc21f2a32..cf2530e21929b2609d1b06b39c050667c68637a1 100644 GIT binary patch literal 15628 zcmd73cUV*HvOXLX6-1h-C`b_yR0LF-(t?W8l%OC;SLq-ky(YnepokC4=)Bu5m-a_ahkov9Ye$UzaI_J;d-sj`G6jphj^*pm??wPq~)@x%UUG9TI2SFeZ zx4xdvT@YxGIO`wBe&9^Q>%Nm95Zm`))BC=6giI%^@_uOU-1Z9y z>xLy|^d2CdpDBR_-io(1zjKwRz%k{_K=d0-DxafH`@>vgGq&mTx6cvx&XgF%k9Hmd zejl%STAFb4YHO)fxr^{6g3VPYtHOoCs;xmqDVfsTktIG-=&6kSI)o_cJNMD^(i#J*!8RdRe zM)M__j~|rdbHqyLSG%t8Ybb+2;vjvUtEPcz#BuoJlk?E|_0{3T+jqg&EECR#a34GT z7kh%~JUf^1lI&ks_F>rH<%4;&uGS?DtMd3hF*WdeJ@c701Y2 zd==`}M6&v3*UIKdvc(Us=h}e2DQU*~?*)PWBJlx7VQPCgKpY1>?9 zn|Ypmu~yZ$g>|08xxLP|RX5@`%7B@KgDilVq8kbo zr&nJU_`QR&XP1}vr>3QKZ9SAJ5|QM^O1K8y2X0B%VBKOQI+VN~&^D;nrnP4e2o!q+ zwGY_B0RR8G0}(cM5a_dH7zhONW9I{Q`VIt)`On;(?w0`WhD0!XoY z3%KXE@OFKZ^AnE#7HLr-64<5L5C+(#EP*g~3vSED{#xbYl`F1l>gtU;nM&b87V$|e z8Mk+`WIW>tycAVHl+oMC3;cXV(E}qRi?@x8oG4FC`!-4d39J9B_-d2aAv6x)U4Ql7 zIdY#? zkR;L3T%~9ETj^wY30*t&@ezJMr*~BS*a6jgaQgoz6095BAKTk|$7f?kUr|ZPq3<&o z_}?f)!}X@Fu1UUv#H9-tVl9akArELL;H{bK&b0o@K2h%z+O4gvT_3MUG&D!>hCrcE z+kDfzB9V9V9S(*+e>`4yPsI~=-rn9mf0@I^#%8lxIiU4v(NkVa)~LDeR7b*4(cLpg zq@veX34~1^F|B10HQ#na!tF@l0YzrQa2(UTZ71X^UtvY&tuqM*bBge-(<6(1fyHjt z7Zm4K88kwfYrpg&k?3b8Q#?8O&}VDmP7fpfCXvgjwPtM2>uq#&vOA`@!^%@r-nj?X zYoQQAW<+0kIssi=U4=lGZaft*6f7*_h^WOEP z0%S^es%j^&%}b@5BiK=OyP61D^Ww-(4^hm*!sinNs{54?*{7;(MVrx`^PW0pt;}v@ zntxsQ^dnmT;wjl_1&KbUBL2PBWU(NQnY6vO*^`!-@Obl{pmvo9cFy6ziQ~sFczAeh z{E$Uvqc$B|fJsL-`&K)u89Vo-ueIa+Q2hKdo{{pI>d0l4-B#6%L`Z1qdy4-3q$Gym&Pd3OiF&&Ev>g`RADqT1x;()T6(e7j(^&&_s29ExNW4)ui(hReHI-oRhH^A%{RRif~MMxh_KsA zK<>8$;Z>czS$+`PQ0S-LU7+p9`$nPlj+cWT?ca|vB==1M@z<>i)5 z=qC6$^G2m6URAz2$U5h4N9bG(N=m(v$GP!uvv>>tyuDA+-ulUA&2i?C2x~n7w^L44^-R1T!Q=R7zP!3J0QHpDyx1Bs-4>IF($vvG z?b0^qcu{l@=f=>@-T7`b5#O^D5xg^;tT^SJs`}``gReDXfV6LjVnCiQWNBO5l}B&VnQm0jJxfB!8jtJDTS*YiD>3y%YukKSCV->8OYCcI8x zOYH%B{wOcsNLYn~*KHY7Ty__DVOw{cq_O8qu-^w&JO{ph4I8QQNR8)wj$z)-%F1%; zF+|JYDbx1Jf%HuVQa1FQG}koR1FIq_!5tp^9koyK!i9;)^8)#gCq_mr1R?3}7Qfa1 zXH!IEyI~$A#IY5QfHQX56pw1@d>_d(v1J$Xeb;!WB545A&iPICbIayOiSmAe zo?pn{0Pf6KFq|qAY=ygew1PF?GM@u3rlJ+zpL@Fxi%n%Y_M<^Cy6O=YpgPIh)V-&? zles&>w(LPnR~Tz1Akp#`!_t5l=62SnjY1yMlD5C@x_|80)q3Ax+0O=r5+m|^UL7e#g(^S~9fE@`i>+(pDE?koZoXySeG7N*9NpnP zbm)Tzw(1He2LP_QMMbx5gJu&3Fp9E(2kp*Cf$D&Oz~cXS;QCMKJAU0&6$A=mg%m7h>2zEK9KB@`tiUjY znr8z(3xuY(nbXgnvH8$;)=kZ|ibPq`Y78OI{7hHRCx*pnY(y4Xl;7kLQG5U6c*Vv} zghvoTCRf~Jqxe=w_uhIRs#C10s|VR6&nWrD0p8%s734N$vToMf0(hJY22!swo!ND~ zaN)=;b8`%h2t24fZr)9&#;oRm91xc{0cu(1M=(2kDAGh>$Nh%j<-jPDvn^V<78^maz9`~hPY*3QH=#|Ztl}4W}XdN z6sv1zmzmT$BUoHiyW;A}tRSOZ#AHR7NB6~UZ~OD}pAZ!_qaO(df(y^Uz~RWq(3MW+ z?Skb79L{#tCzF~+wnCGvaNk}WXk@trz*z`(z3oq50}?3!>bJ;bh0!5b5jNMs^%x3u zZ|2&QPH3$>x$j9%P7Q8_N(PrM+^)HQKE+a3oeEgsqtXux1aLP6h4);}TxZuMAIocNg_35gdkUgXx-*RP-# zS5^|gefy?!O?#9?UWH$K{?`l<&;0&rmUTx~)^#;CwZx)(?t85C>7Rq?QWofBV&*)h zm)_&%K$~`!S!EJPOG6JVKeP(|om{OC~4?g_c)B_c;RUU@3N``W8!Di(P z!m9%V17%FCCzYFm zX`Ww*@LnzJXr?#G2F-BSr;_ID7~WL7ikR6}bT3{03B6_-??RuY{1ReTEXimxwy(q& znoX;S)xEKC%TU%Ss{qxdloZ-wWz+m$IY6<{{X!s?ff}oHGnAZCGx}%t2fU{-3 zUssPHJ)Vr{4*YP3m9(ZxRx+i&tAy_#^K-)whrqXQ44rRfiPR%FgDsY3bPK4{V|UAi>2W%=?^smszJ2Xkx%6b++v8PJ10$Aqx; zh}V))(`X@$jRF>)mS!a*0v*aSUa`>h#64S zaoOAOH|-%%aU%2rk@D3oX-7fA2l~xk)@6Ha(Jh}hyOB57M$Bd3YcaM-6CjYgZ}dr5 z+ZyVoNBwLtO6vVk(I&e{De!6w*ljQJ?Z%3>6YN~VNz z0W9w4P8vTzHI-2QcT(;DSxi|MkwT9E%qrLTj9#sEBH;BDI&wFR(StdS^#0{TzT+&1>(D&(mSAVU6)%=#;UkP0M%bb96cg65x+&IQYT95%!H|7_A-Yd1uFM+RZ96s4w{(g~aUCp> zF>HK5T8HAdwzk@bhlk6k_km0(`NM};agM`SF(_U&TEi|YMi{KnfH}G4#oS^YoKpqVic$+qleyF zf!#twt-lme4VKLNm$&WYNX^jiC*X3Gtzvp{t5iR7=`0LaSX?X*EN2*8WmZH5n2XnB zW2AqIn@7ZVuEqvFdAIG26wjI2)(rnUpi%*|%Gd5spZ@X<2*5zgR#u(>)@r@wN%U#C zvIoI>w6CwPo~~|NoaLQvc9wPnx=(T+bakT2oCfehYw8{PRUs+sq1}4gh`EOIr|MF* z@fxq|b#-;wd3n0Q!NK2Oz0JtT*nRp4J~TLZTJ_18UIi-smxl*`@~TWX-y;lmzkCRI z%x6fhj$_cMk4`rfyR58Sxg38lvZElA_ey1lDD*U-AL? z$qcm_k zLVmlENi~TgRfcQ9t&+@R2r+}xf%lsqCDn5rNT}-#9^sUjG_HDZS&@GF6z#PZ#~#mG zYVi_w{v8ftXhwZgkni~o&P3Nj$J;2c;dx>?bw0X zC?CysYq7r|;Zw06i-3YYgusTsRiNiwNg5mmnkGwC9PC zyzd-qY74IgtLJ#1(<7_B4-eLz4=$lwbCWn7#Ms!i_r8-)o=D30q-Qo8PvdP7^}4Sy zVjF!vz(*+eZr)u&SGy?k?sSti@5)ePRhCa>7JXRj*|MQVm=t}mr(y6wtcLKppKlAJ zZ&ms4u_c6yC4~~Xlwoc!Vyo8j|N6|82D>URC8`}qTXGg9?0qV!kw0o&;+xz#I+8KG z`Ad>7(FNo>7x1Jo7eFkt z^#5?ye*op*$zO|KY#VA=%o*R?*SxdWlsF1# z)%MYzmJ}1=pvRIV8%@T?`!N*Slrewkm9?euq@Ff8u}mn#tuh{Y%&v$S>u(1N8=U&Q zEX$LsC>i4RQ#Ro>^K;}O8Ea~P8FHt2H)sVAxx&dypU5|~aO?k_&SJr~A(64DVI zL@wH#J8Pk^`s4j$;IUpOu06IvEWb+E*s8g!@)UqUz0&(inwpxIE?ztZgrGHtPE{4_ z`8OMh23wyMzRUszGJSWQ48{L_#svm)?DPrd(QD`cl8$-B7$L zfS2CWt_l_1lh_6TnXF5Y6~jC;0?sPExxO>C^xt9lj{8EKsqA`xfHSNhF9tB{`` z;U8oynqE(o2s=}x(P%`vj|;LgnGbA`(S~24v=UJA?;SBUcTJh zo~|C?;P&OPwzHFyj#Q)gqZhimy1=_Ev_sp92F>vEdkJVKs{feSIHPkpG&0iH&#!|* zA~?Fax%FNWJSBBfyNOg-Ax&B12k^r~qKvX9QkEtfo5m?N7gMg0pP~{PdHz;SVk6vY zr8B;7E<1^L78klxBTt^G8;g%FyO|M3Dw{0YY@Ma(jsyd$0PJ#(S}RAMr}~}_{Q&;C zk?l6RcB<^cq~$haVBkIAR@4_~foynl(jM5Clao_+R+c@(G`5ozQ$_+bfpv(=%+Jr? z)v^JY@S?hm%0!t{LRxOMUem9D#mgmsh`*q$d`~%a*yO4{#>!~x^IJVfx<_VY1Sn3? zzlmER3P80{Aen9?JNPpquLqV@KKm*k;3qU!HI|9=+x+@ub?(_Xj#S%$o2|oaye~}R zoqw)dBZkeB{jbr0l?0HM26rWSCOd}q@2MXfbUjXO)lyWH1b%S9RaM~6fR!=+B!aCW z1QIh=>*K5s77{S_ZSvD(J8*U4h73%7#LQ}CDxMiFtUBku@9M;ekco-O(y8ySc-4PS z!kVCug4koFPg-p{b$X}@pOY8cnfcT)Wb`$OH?)rnEWbF4aX)#l9!H{y%Z!+_t&;K{brHrQ8bXM|r?ghTe-81eWt7H8uBJld$L*HOMnw{gA# z7+$${v~@8l(DI4I?WT!FK`plyJ9Uu^Q;#!|@;(;o1c4C124AmbyIsG^!e@(20H3D~ zUdjx*J!_uLCS013I?b!;#Lbqi|AK653|LdINK z_vTFvDtFjtC6ph+zi|z5++#8e+?z3ws{eXhN4Q8(^KjPL(5*a6NMwZPH*vBxlP9il zK*#S7z`q$_08$iJLF$q_rX`$3ncBqQEH1kpS`~-*IAz_@F zr%HpLmRa4CnbPQifZae)byDJ!x218*oD>_z{3t(Fnof0{SgAdTpDa()a9}t>(K; z%4~57X8|V=&^;ebt-0v|Cp-^=IL)u(HA=8t5pNghGC8+fd6#ebS}$*!7o}rs>UW;;q!y;qw;wPzoF31b@)^$*jY@5YjfRXjXsd-5b$$eX8aA z!ma0X-w%o>=tJ`&mjw_H^T$?>Aw(oDrCD<1Z~2+($iHd7$6qU+Ky}ucx%LQ}b9%2E z5(E+=vw8slKC*!%&@a#XBdhGDjt;P57LwnwkQDo&39NP&@GKG%z~2C@%mUPmw9r?T zA3|sKQX6DV%I*wB5@i{<{3Q{<|%_e{-gW&2fB`iz}dD*OV+~hyoNx#wA zc}bSIF+l_TkIl~0l^_qWm|A|{ho?IwWOGH~%QLgJScRx|%(-ftSFyWwapNWN5u&Ne z@bA};A(J%s9kI!%Xt=dZ!0|LxglPUF4KadnhC{B*?xrN=8htaZ&rB@bPN)dZvsN;S z(t&t5%$n+&QN6zbZha$&fA?Kv!%50FjLvV57W#`56Tf_GW71e<)qP~KXJ2=e+-9I# z^Nk+=K4jH6f&MrLQ0rD0p+l53TBGkkY?kN`xKV6Zz~P);5_Fz3T^H)5((LX41y-V;f&zg`w%U5t^Ro(<6Ht&upl}GifuP zBV1|ZhC8)*lu>q;jl*13JJBk^ao)C&mcFH|H~G~baQgxjBA2 zpwd4MsO)ep^Ic>p?vBE0$F-f3>dg1MCRgP#U^f)5vy89lQ{(B!<5;fD3t4yy2V7Ee z@j5dJV`g-ASZz{^v6W@8Q$q68oR<$BpyYPojPNc@`NN1Gbwf*SEvk>?k=zZh%i7DG zzc6VdiYrYKdZ$f?CwziDCdN^fd|Jz8nx0Z(S~}-?n2pecEIElNGIOy$VWNLo^&^M4 zwxq4C+BbzOHxMNgozGl;^6@W4`h{$>j~J9=WZ> zFPX{MXgSE;Ky>*jsk*Lv#5O>g2$*9_FRvRH86VS?-`ifQ>^WEFDV24!4gc!RL==MM zOzhIAwJ+8#+96Y(g8GhV9W|YGE;iyCJb0oQ*%qnA)Ul{W9p$-V8EhYmWGcDs(Gz83|N5qeAtGgw&na&48_4C8FhCJCEcD+I z#k2VNlEYTHP}b|Kw4}@Rqd4&pcVUMdUXV6pW`m<0_w&bhjLH2_yC^(5;0`pz?gh8z z{{;2eqd*p*4>}+;vF~cEKQDLCa;~S=uyOM8a&`bP^T@0vbcb=np0V0FMXyKd^DP_a z*H`zeI?I$p-=E^u+ym-MijoxHj;~w|_+Uq{2wiG^6>CSxr)ki3vQ5>S_}SGP%HyAz z%Z1ixNt6Ktw`25zb+x~c_JH(-PK>zUygAjFr?N48bE!TwRJOC5pAXOc71^L5ahDYN zV%089c&qI+hv;pZK;Twvi!B583_CS1&EvV2)QZl4F27bQGJxQ-LuxgHK zIM$|Y0uDvr*C2!^-B`ss>JRdgjf?!_{DkhgtA8iT3hHX>=scgeqrl;BsySu6yZf#- zQwC6aoyWs``L`-2*Z8%BCN72U&_j}Lt+^WQ3G9v-$;R52UrX$G?V%4%~) z27T~{n6R%C{N79(xOl7@%mvmu3#{gLNWC7WKY`vov=pp1o+ZaRh3V(QIzBG+MmK80 z>}nau-d64YI%Oz>lj}E3lIb8Tq=?6MiP>-%I5!#~)i5olK99RoaX*iq6#Duo` z3+gCif-d;*u8dbXD*Ey!SQZZ6yfy2IwYQd4+h-5n)#Yu*VhiX`L$@N^ctu6XjOhrh zK<3WI-}tIBiJ^`dcqDH}(_7;;rz*YT+eagA<%xbd-qM(&-NX4){bh9z*Zl7w`c3fG4xqg(#*XbMuhaw#e|v|cOBnLBq}-OFVm5) z;6Pv6Gjrx<(#oo^R^4`fRnZ1*pg1{O#*XN@BXw#qgNT|HxwNrqkBie^H9rvj;f}(3 z2fi#X5e6&V7$6dK)JAVOJu%;g^CRp;3L6fLKqb%q3n<^;cqa1%l7fUIW@9eZXdHal z+*WLp0BNrFH0ODS4|JYn#K4!OU+U~_SL`{@c%MEbbtJ0==A1q9+h_mvECQFd$3jVE7Cx+0v*tq>E7HuAKBwILu-W#I@cW-% z7>6$iH#G@PyfMAjG1Bpsn#UPn$DNVy1*;s|kP0WO3t#)xX+6jT2;skQey*-?jal;qjp4t+R7Agz6S^+Umm3tj7e8+NC1X@5@n z5}Hr`_Gq5wCnWMIM{nW~0W7CtdL+tOGXyL8dVy&3Ahu6uRwjLs5>#Br~#Z?x>8iv*gW~Enp}v%p?s4IMpa%q1U>4x9;1gd zU~oMjqe)x>mE_qq#X~C{izK3v^K+B3-`WoVJ(x4Y?d`T%BJ6#iUk^t7?pK_hGcVl> z@F_3;9o>t(MKfYll;?BtwK%ujI|`_sPeIesssjYEE8gD$+O>z}Pj*m1iHL};?tCpE zb61$FB7;Q0qyjnXz;^Amj}Ly#mIc#A)crrK(W3+va?7~O`VRam%zYR3QU>Klwh38p z5xm_w30hsA40G|ysNm%x3%>(@QFK~&jrW?I6 z&Pj;aj2rrry3Lb_Wi&fm9i(Q#)J&rTX*d7iQA!SL;8ULu&kM1hJB_ z6)rn`{H3R6rdpyh3MAR;16FM}8YUqOFVW0wKr+i>A$Z3|OHEV4zNfA(E-w1RmjU`6 zvy6xZ@|Y=DnLmkhEQ1m`^m-^tOWw6N*j3c4{jS3O@#Sm=gSu*12^kK*_DzGaGc6(E z&7kdmCx2VuPh8;tU>Rd*Sz()^d$MeR%M1;sE<1OdqnPv*D#ja(%$+p3;A*+D6+_^> z%qtKo8qA(@hfo12x-j(xRWJ{^CK{~6XxLmXpKEI7?Gy{8VwK57o?6U?ksxxh2EB2$ z1qYPgl*e4!7gkn^>&C)?P=38LRQ?-4N4ITXARud(Y^}H$@y}e-`igeIRwM z87$mDzV@lIz{bbE**PE}pquc}dN4*FQf8(Iy=PTr`NE=z&saVwy^&F=P-1h|95elU zlp%$LhS7uVnZs0|U2|h+I>yl1Iqzjsgjmvh%ZD;VkSQ`Rn;N{h<%-l$w<2Fee@I3o z8D&0M@H?y?_C5WV^{vp}`3lcs8Kbl{*xJI*Ues!;y*qCC11cbI{2p)7PcpO|O5MI8 z0NZgMA0ICRUcHRq%uS>Zz%K$M+G9M*rr5Tz&LwDTT_32A+aC5`-l&kjR(0yUP}lN? zR15UF&-$yAjh_dGY690kkzeSxiJdueFv^yxZ})N(hs&7h&)2JS4vB_1J39{|uVS?) z9?_c7?yaw)gjJuk19mps8Z8`^s4JHF9%${7w+yKNIan3(%8f)U1CG`5YsW|;(YDM} zecGTaUQ;if;rN?H_`MrbQ3`6cASIf*d=n-lGO~d(fS_LG3v_1C3H?0~Vv3g+zgy$H zy7x?^K7kxIP>{N%!U5PKbEDF&wXH23dRmRbp;c!3!VG8>#V~)>4?HiU_Z1f@x42LlUpgX}aEc*vPX2y^^XUkMKhI<$1^ZdJ) zhfABKp!|;;=dq>s5&!knGfAB|>MGife6dpA*yuU;QGhAJ0c6>HPzIna*EM=l?T*2$ z;{aT#e%SnKmpb_sXn(GCNOrGEED|X~KWyIbJRMu{%II6edaLj~WM#>-ud|+~HNB?3 ze;Nfg3}D#QCn{=Hol{%)-N}4Pf|XUzcB1dNrQ0Akxke~vPdK?=oTH(@94T)x_hlQv z9gUER(hZ@l?w6a&wKW08AhY}7SIBAPKP z+f@qP%ODgEFdJKKboh1p$(9mZ1S>Mp$ZEY#?7yUTz{S zBQsCsN9YRaZr;qPey!bd?SjRi#*D`+2-7 zijQ!=YE8BzoG~weQCl;%f2Hm8e_k|Lk-x^xC3XxG8=)G4(Hsh9Xgn4c{37z&B3juh zxiLe6FnQhKqpmroXrP{BSpVDGa@}i67;tn-@eGC40N$QwEyn6s*wy*(rvLwE^~rz! zoIuo|o(-fu{WtqmNdZz80aWIYO1ptr(9oYwxA1FM0l9CHNTriNy%i{7@>YBS2%; zyjox$v106-X)$FwmD+{kK}_;SFYjWR&BA}hDOJ~}FZZQvZTriIQZNU>qgM+6e&nK| z5RW*kt~x4%v+T6#EjEvFQuy6Yk#`T7Q4um?G6sAoaDdEnf+>)-+m;E)mqT(>D z5C7D#^OOn1eOpJ)RreT4ix~((wah=Z8?E%N#n17_x+t*6wkjRbW-OOyD%ocS@<0t8F{nlas@^IcVm^cZZ@eEow10=JIi-@v+JY|`Nyc2)~0~6dW3oQ4kpUj z;NQH8R)T~$+}q04;;$bb$V8692H%KbGYy{bVi%%}c!v<&Jp@Z&D{_u6%-E|u$c zKS$A8)BIXnK+9E4d|g2YICSP==hoEPLxomf5iLLt=@b2FYXzjkS`yD^TX@957ET)g z<}ttSEfuXkJUJg=Bg<0+gY^wbXEF=WU#Q2EuuK^b4{zo(Nz=wop30}ZNMpNY&_>^4zip6z)rvjrqN1cix)#w_rWE?#**P5ptdDh^zB7(b=;+Y5 zXX=PedsETAlnQcGa&lcvuP9T2)?(M?8RIkmGiT#d&nSbV##ENQM&t0L+L)AFsHsck zD0Wep>U_GVf1vsS2o&7cuwN?JquCn+eJb}-*uM;^f+E4H?heX(qvI?b~4MzBC z(xgp6?KKO^$0svuQTrt|YF{Fm9GFAoi6!9+gIXRk>t{81>BB^IXfCA TgK zt>M~Ba<`N52Ey}hr=esZl5_bml%3gTqE@^|&$ka*Jyt0-gfO`Pe57(p|E0(~fHR2Q zTlr3HX8jC;gVhe09mcw-{co|)-=F*ZJ#(SNKT3iikQbk}8RA=r!iS0wkYzV&s$#@^ z%pTxh*C{6N6Np-yiulkkovQP=?Gw!X{MuoTZ^84a>+@5MwMu`Ic?~nS%t-4ah;&!g zzDH%H<7BA8%oIA3MyWEzw&z6jJpr}9NSE-Qyn=rWSN|N8;!eAQ2kO9FoR}3v%g0Al z>@)LK7^I1G+7xZ+abWgQL8XWiRZY?RC)PYoB>{oYx>q&p=vdEej{cguo8t)!)_3TU zx$7>O1OP+d3LEzql@r;T{Dn@F5BOEXq^^jvNM|1YkqZIL=cdy^5>gR#kC%Y z|_Bh!#&>r33KN&qP&#TaHS_CVyHGi=VFwl}w;Pp4>LnSi!R42c}`VL_PbSqQ% zc^u7BGP`VCW{$iqfQr+`EUs)M4x&Kk75qUXe{@=4_Q!XWE;1f zU#mik1ftUjr=k_UjYRRXO7+0JL%&wpI3ZixDDG3EO_Nz>@PgOeM`LbCTdA{QJvD1M z#HwtSRXAL^G7r9)66Pzw0`%bqH7e}hgBAq`;cH4V3?(vlRYDApjuadz7;(z-#m zti0Q>8gVQ>ftZm%FBxWU+P$G|^|2=V8J)IX%t&nyx7bsXTlknIb{r@+mA(QRE2kzTO#idr@BLF7^xwz`tm98N_R7Z!VNk3np4|V0 zO*?9e6-)i&!^y*(;$qM(M6Dkoab2TFYCSYkMi$#xU5x=!==}!{oPghW8~_SR)B`0a zCnF-nVE0$>=*;i^r&vOH{hAYKDMtW#wJFs_8R%~o#foU#o<6J%bl}fxZvDExG4X;| zdfhkjEbwZ9-Ws4vUk0O7fSZ3$I{TZu1>J1|ykK^Clrh`?@=53a*vWt7gUC82?@Y4A WE60{8D?o%G{ToI)#n&D@|Nj7oP1LRc literal 13510 zcmch82T+si)@}e5EHoQiS`bCHil8DzDcML95mBT`i%RbhIw1+75)csq1?ea%QX{=4 zL6F{S=poWe2rUUDgxrsP&i|jeGxyHDcjlZslT5z6`M$TV^{lm?wG#Q@zAo<(;Ugdr zh*$59mJtZVF$KKqcn$$A!GSedz!!9|vAM67y^k%-*~{12(*pzwOvReCyEI%CP_={> zoi}@w%v~x3y?eX$?9RcWazcXe<0EmR(|F3+S6{xKwGeu3s3>1D+B=ohFh)ZJgmxmO zyJlYapFUy^QHyfx@iTr<=W_A7cD2d+#&JoVFiwZpKln~MO6HaEKd7^?i*A0)dGbf) zZyp3e$>0vhw}p!XxN9B~Yysi7>2G2`+;)HTQ)=|q3^iJS-v1H^7J~S)6?A?Ss1O_#mW^v#^b#et-X$2Z@LBY%NOh>lTJ~ z(rfoe#o1mxYzNv6zvi5T>)kmIEEge85)C_+*DoeslR_Pffvx|%$5%pve!T52^`Yx+ zKGytA`@77bp|4YCux*$~k*3Eg4Y@&!s-p=ei7)!R??U(9zxyZ)W6ml-=UuO%$xpdb zSocFXA&B|f@hwp<5J&=~r=?*Wm`a{Nxrxpr=GQ68rZPsK?^+Z&yYe2oK6Ub|@%*u) z54waxeU808pswd{d+Jh{shL(?!8x#2rs@H$qXN&pE*_gUe{tmV$DcWnkCLH+txk5< z{Wb!AJfdO!8ajoAza;%Qta&hEBMHA;8o_ar5PI{*S#-n1Y!@tjr)vcV4XsNf!SF~3&M4=+rlzJ%&7fz%=rqO}d?&2= ztkW+)#+I|s+LQ)n2$o0SCtUe(*XYla=gExGvXMQ;*k5`61LG9_N;l4Q5TWPyWuV3elZe!f2I;P(m&=otIPQ zeiP1WO~e^*MyubrF|&VZXHkW$jHv>%{){%_O=9-OoR6L_-0!0SQ94b-%+~)3q5wU} zUdb(cXIaF#9hcO-#gjb(9cq?z_Ecl$Uv!(aqN~5^Oqnfk%<#J|J4($$e0g|TpXC&T z_h&hQ$>l6U$t-+cjStc+bUAc>uNzXmbWYHjmPjqSGYZMyBuPucC^)8YHB@}rY`MX& zK!We+pk4wdc!<2fEFOfek7fruLqUf?e{pae1BG&O{s96VJa82RI>Pe=1Ue~D2Lk;m5y}C2@E7Rc zbK^K>qE2Teb+hxsmFENxYCzY{h1z_DLys4^KpTH1%1=FCZR18kpHg8KZfnDgUI~~r zvn`?SC|kb-Im7@J|K9#4zY;2WT8<~|8!B*>&fWPWyCrg2hqgCGd4yOW0re!m3fDxr zD5f#ECUAOrrX?Fa=RkHp!yW2gq)8@HB333>Xq!V_`G=|z@;&4fuZ2;8a^g`UWRdao zQOR>hwgQZOeq?@WX-84A+MrMU2uG&cJ<4Y17OqJh`g>gIKEjMn>^Wxs<@!-v=>qc5 z_(Dh9;4v9SrGM2BbxXt-UWrb5sa_&Aa8cwbE;xn zO})}otR9z^v=qt5lYHtdaRHP1(`!CipXM&@x(&ZJ4!ah8RaLee|31+t zZ}9CAP(gh-8JNb&WN%%ty`KE4RloH z&*sUsvkU$Srad$3Js#rlx92*e*6QcCv(UR)%YDWL$O0S7=V?0~ccelK^o^2sIwDfM zO6Bvt)Vz)J&XCfMUtVme8(k8E6_$@LOwU~iRp{o>ZLq^`;tIsoE!-AN#&A?z#Y2_( z5L?u2M>=eH?_EoR;p>hG!73VQsevN@)viI>s#~4bb(84pb}DFr5QiZ+86pnG^0Q6s zNJC5Mw^U4<&bKBncV4&dy6wK*rEeeJFD*HyHS^6ljQ+?diMNV}k9A6PDoJsdi{cAflyuH%p5&5YyL?C(Feh&xJwdNXNwe`S^e3Fep+xjx~%Z8`!!${ zoKHZmC%Z}|kCOQ1vL&bIx6*3b?rr-Z+4?m=B5P<*zor-1E6b@@aOXU8osH zYxjJf(|e8hWi#McY7$*^nMH`t*Q$;@i5*4%(XT8dQXt6t@e=Xd@l$+63s%{2kz9V=`ldrY4f@0YL0q|wg1@eWJ4uuD(Epy1 zn{)+CsO~RQyR&Y&WS-JzoiaS=*Sw7jw-U=r#NC1xuDQZ|1W!vCF*%iFLtOc3Yd+hW zxY26=YuIijnyQ;cH#Ey3PcoE4qS=bg2Qzgkm;4)&Qn~(<5T(rVqVcA@`MB$$D4{q0 za%3%^al^D*_BL>`g1owVVR2`3b91LF2J3J??bcUXvdEb;4^ddhPw1Tt=A4fjuF9*+ zjPfgeft zNBFLr*I}QP;cMNm z4{>)|MG{V5M2eTEQpyRMNJy(Nd3Vvsy^huP6)P>rn^x&i(=#C;g~m96NWYoY6Ep-R%AQSLCc1 zv9v*Hyden^+_3nOD_VH3%CiZnHtBk8=fkTyE3 zClo_j@=o#FpY>k<5~%}>Ju4{*Veff;YdS=B4V0L4E&2png$M-#0N2q+UV!Z?#`mIR z*BtEZ%SEh*mX4Ag?d*Pq&}$4;Qlbqej?_|+bY~&{G)p!Og1V1mPGrv#@YkE*V!1jx zIvw92?9?{~jqodqA$)(-S8>$>K24Rokb3o!EBJ!_pYlx$Ey@O_A zb?sm;a(`y$SmTUvCt`e)@FQ)6Gq0a6QHYRiJcsEQ9P> z#OiODN5RI3N5e8nD$whjbCkU;m5m-v{#H^08p~^Pzb^8GbVreGvntahizX%S3CPrv z?KMS3heMMgk7x&;m)OWMa7m;13^F(u(MykRzvelxFMo2LxQk6s<?Ru2WNh;v zvI;zi+eSlABxY!b>|qM9z1?hcj@?dAWdFYI!Dd=w?;XQo(`Zv@_;#ZZ@m&#=fZ}>> zT;2_4uY*;VUyPub7o9>2}@ILcXVg- zH>_iNij{%n7eTO|bTLOq}T0E#}5#rUTsHpp# z&&l|qmX?T}v|D}HSyl{wxFF67Q^BDS%y(ZQuO-vG5&)$x)7^jD&k!83+W$p6QewNrvS`%a`( zIr|cOH>un1LP!vMSWzXWjY2T3p4_#d`~{6KfkExnmiC) zV7GrqO~#(nt$mbz|EmRYX>su}PVM^jI17G~1xdWGo`!KEkijPJI$_qUZT=%)Chl5# ztF7W7wQ~w;>gu=)D}3Ur3(+w#(t8X-AvA_;>*Uljc4r%|A>dY-v_CWn4Q>-+uelbF zE&G;B!&*C1@XUTn%i5aP1zNFTs`AsfVk&bZ7~wLxq@aCB{z>zskmZb$qOId=Izk`K z!N!{bJCfpwlh(L87a4IfN?ZQgwTC5L!Nl%IEU)b`2I-ch*)#B$agK-`dcB} zKL`^OSMaQ)?hET)3M`tVdP)vIl&L`GhYAWZe^P?~YZOV?Y@MT8y%M6ZY2wg3-gmvd z5BtZ)Ea{HHaJap%?~T}`@BS|znos)$6);p?f7$l5$>N5(Zx)VP;29aw0<5wFPQhl6@{d6fk4N{M zuJk5ZR$1B59fhk5#g~|SKZ;0ac&EIggQ+Xs->!3=&Ph#7PDwc-1jb29QffEfDk&+= z|Ni8&{7T5?T~*c1)_SzuKYMb=;260|5D1j6zPY)%v6P3o6?Em>V+c=EEs6BB8(A>a z99)*ma#Ijd=XR6h>BSu{N&BaMJn48o^sYtQ90a-nBR#xKh>60#JP5j@bxugU492Pi zz`HJ78)M~B!RVY4xB;O0M~;6_g!C``{$IvibXTRG{PlJ3M}MCDVtlC;@FIXPYAlVm z?MnDZJdU4mjzJkw0skPG@pE7D{~_^!Fn(MDrK%%FU%KifT4Irvg>#BtkH_ffXsp-) z+dOed^g5xC7-2fOw>t%W|XWJTl$}q0Wxafy##x;Ag`P3=Q>* z%&mOzm2%b8C7~$oN3PWnKt;9TEk20YQP1&bMNZ$cvz0b_L~_9gm3 zEHW;HrKGZ_hvl{!#0b}U(?Z*3VS{6xD?5XEP}xK?H6Y|#L2OtN_pHi;@h ze^rH={_&$%uxzfmOmeWo5ED7Mj9!kY1XFbEz4y;#1URr?X$ZToNbJ#ozCS3+LVUmv z70*~+VzG>A@^30QJLCM4F7yQ;X2R4Hho692g#nMj6Srg2ulr!b2Hb<>{q`^e@~iim z6&ThQ%rgDa+bd);yR@qqEU~>*s%IQ#d<%U-*e3=V<{QolO3Az zCQE2$#O7XrJC=@0C^+(j8CF2A7ZVdx02HMU(3h;NEWeCWL~13R?LDbX-4}ctFwpp| zqM~B8n@Xbz=f)%!$r*MmhbD+8RfL??OU{^C#wP@`Zdl??(}32C z`$XQaAa+ec8S=MmdVC7hhv0?1%xz$6;p;&; ze|PU-M4hI^8?!2>GnyIR%1^n{X8c zaOk5cOx_8A8cU?>BK9uh)}hXB_onx`vP3%f=paBHXL{o(DH1#`;&bZ=;ue)EWm5r! zyC&ZcX-o}Tt}ZU>)p9ep2VJCXWWp_`-vvVDOv0{g2d9zQuRUj^1b6&Df6z|16wCcd z;KEE6t0sCO9_K&{{5J-L&0IxGnYYz%C~%3(*j#t#Tw#nPX3mPUsM6YYX@p9Jkx zJy?^w(r($BK!>hJtDeqf4c~<%myl=YS*a1Kr!A2AWigy?D)8R@x0dHQ+_3!AhaYMe zUNoN2nfVxz`tIlNgFeV-m=Y|`tEDEtL{Ju8#fgwKZD`!ugPsvDumxS@eKGbY8P(Q;pG?L>by#DDRl` zSN%zKc(3Y3>y7gF_G2Sab92wty3`XJ&QglIbZ+$9=12Xw#Ibo$a3|6@jBx9$KQ_uM ze;|6O{k{M?;I3(E%RQ7{gb&YX<5SYYCu>J^u;mxbm&Th1$iLTIw|YEG`KS(Mazf>4 zSSRuL&W%Euw)noX+CBG+QPvbm(TXbv5tZq8{KJ%MA3eifnGI*SDu_l2H0z?0xlwOk7Tfh+lzo2x8s7bd^;~y zD}8HvK^_YNTT5%F9v>Esl!2a#m1}vjF3rcM3*{TEJejLf>HDWDR>DSYS`EC!4I0lm zRV>@x5Z+*BC*>tmQ!7EgB>$9Kg_Dq2KeP%Ou0A*-<0+>`FAY;xoxalg>^nGi`5HLy z6R?#(X(t{ZPS!U%d|O3?7Zc#~N3~J5(emyu8;sF(pAmoa68rm!=7hf)HO{|^)87{= zJQY#XN-0g@rUg>M!{$c&WCpr)8kVia!foEc+siz}ho>i0e>B%z2$-!NKb6>xO#qIx zuzf;-HLNZ&xMtF$Xxwe+7Wp!oH}i_kHd4f#1-d589D}_Vbj?V$1*?iGeE=~YTRBcEO!`n zj&uKrP-ctG*4BJ|%PG^M7IaUs9hijS-Nb#o8J=yn+k~x+%^s{ubYkrz zMe`pi9q-n09IHy<82dq9UXBMmVg`d@=is38y76-o;PI6!3G)Rd`YB5Ct9iWV9mC<& z*Ab{7CKKlwCgDX({Retfl8bsDyZ4nq1!MK~p;cOlg9=!$HSf+a@| z|6aQvsUR;OpR^bEfbz~q82u^>?Qbo%X)|dzj{fZ2k!?6;`tC zySuepG+G-Mzp6xqCov(<3aeys2x|3ui~a7~H!TXoj(|PWKLPXgc)SnzD4Yl=UPfBO@^~^04Q#XZ8D+ zV-=oJ?ejMJP-w0JkV+oo=7pyYJa=>jCN-cr z9FCdjA|dM$oGsr;w~p*9GriChT&i|g3Cm|_)9=cC{wF~zoVF#Y=@ zp^@PRzG+cw1@w>mnSnun^?K#q@#?ppx8hT}-3Jo$c+c>i5_#S0C+q5{HoVa@t@Bdz ztHo6HF|kCBjQ6Tr5z!)8W_|PS$i$GqmapExjGwXQ-Epum2 zNN^p^Z8})d-nkYgap%iL2?NE56~YZy;^=$|dkwF(*F3LXp01Cf{Z--l&7mJr=so*M zcZSfQgxLI9{(+8Vxe&4k(G;lS92<9j62DV^;Ai2tIHaY^vFnkm-&HB~`9Tf7)+Y(LPT4?*P8a%E5Ejz$=>u z*%7-lwz2bj4(@BLwa3H|l6q{AV30EDv9qtKW1?$;VX?olZxhD*fJ78FvutP2@7xA1 z;?CfiYzow-?USw)kNCY^g@q;gCz>3!*v zkIUdN+P=#uEeSbU^z*W$B=L07vUSJH1`WKGVX^!&ALYFa)8C)rbG9=odLz(@pxv#w zk{b=jQrriC6Cb{8Lw@7P)ReSTzj!@BcV-m*f&b}P!@Zp1R67J*CAbArEo(5iL|7_2 zr48Xi?oO4`EeT9p@;mpyLm``W;&P(py|d>FluBSXH!b*x6$z%bB0G$P2-SJy1sTfg z7TXV~(UQ(thCWLs<`q|TS8iN7LR)U(M+^iwVhGZUfpbz564IJoe<8D&POjXW+H`FW z1Y{JswlhfA?*mfy^cUTjLN)w@!^E9egKE1|n;zu^8u}8R_H3Dwx@pinG`QSn7jXAh zdEsgf=E0(Z^9P^0)(N?{3)`bn`74g05Y;CD4D{a&p!@5VF$wWCd6}*U@8^=3<}-Z$ zBlbM_nk`B}54qWH=RshyMy(Y^>ha-8C(pxU!5;SE56N8SUy5~;x1Nq(wlw9-SxwDT z#gV7+$dIkcA)m{5cCc$kO_EDNLmH6#?^T|GyF$rGE71gOvDBKwUCHir%pS|JTN<)? z48CnOMMfZI>FGiqCiMZNp|)x)MjFMDd1rQ=?eOFHwqzcZ?GvCSD|%PyB~YUVSxyi(K{62_jV{9nw)HnKn@o2Qx1Ijxf(ItP~^`lKwL&t zFEw{5i&$rTSzGQ3_wr548|4QQzOLZHfy0yo1EUwc7e_W-1OC#wgr2ruc^R>QWov7> zEfmtv2)r?!H!XZ+}0c^(=Zy~rzHCCA9HNL-+S2i*0YG(5&S8S_Q zMohH&-o1+x3{&Nqe#Tl%u89)AP^8pF@*^%%W=Xr^%l^~*IpV5J>K?}QTx56Xw=m!T z$=g&|wi@#P!%eS6Go}UO0&vyKW6%Fa=KB__dnfJ7h&Ar>#71iz&!xtx{_lrD1s4K1 z-jwZ{g~a;{xC|T!HNCxGh>}T`{l*EBIQnl*q0yB#HG#5(6E-+NUgDgkGZ28A8AV}U z;89GtS>#v;{N`h?KQ)5#p${E;D(v62MD4dO4t`%|)82{R6b`fHgP^z@*RDOeaN&?J zBP7y?s7$q<1XD-OcqrTDA$W)mVXE$?NXO(uQwu{R)HmNmLK&FQvtucP&(E_q}5*W2#PKg=8xyNtI1_#Y0wM|2)14|5=s9o|r zr#p7-{?GdQyC|C1`FHPuSq7u|#Bzf_lvu0#E(94?_D4Nq%)3O7_L zehwSwq7K*sRw=CLVz>C)vSk*DLmseS>>JaoW?6HtsnDD~5Tp3STq28jf&CRpNY++&;+Qp$&^ zlI6aC;36RU8-bOzkDb9ZUhXvO^0TSsUfV-Um=D7buAI(Rg^zV<@q=v+O9+uHW$p)2 zWmkGD1+r~AUmfIwG(=mN-Be;qU$kWj8;OT?+Q$q!q)~?|xT5DL3#Y~S2o31$+PA>c ztpld#@w+p5*;aL~SOws_RF@WG!SjdI=xv#e|Ulh!t7+Y?QiBrYQ)@X5&>;9I^e z1D5`a3%yx$Gp+G90tfbAC=^~)E%*kI`%q^vnT<5>jTt?|EdJ7r+n=5+U8#VvfKOQ{ zZe;`o6id2>UFEIuCtn9HkFQFR$)UTOVG>SD+zlo8Qin`{AS@X1$O62;4Oc>;brW(p z@$T1Ij6Wh7F+AoxIGF6+9E%o@731v;&FfrQ>A+YFS0*2((dkilq-ItiH7lQO)JUTw z8@HIh`aY8`OFq-w23C-smo$~G1|L%O2%ICdu;PvXJo$#@m}oteH>e4C&&tB-9Albz z|BdaMsiN>iUX4OjiGwceGp(R2uUGQM|9+g#F> zUx~f_)0t9HNSDTGSb>N9fBx;Sk|PF~Hb#ErX@ENb(!sM!gL%*JIsvM2D_KL+)gfKp zjNGAk2dHzTxQ9P=&ydMka=vn5B;2~-kw6));-R&*b^BPUl`I^%_=dq4-nwye03AqS_;(6&cEDLwlz9-G9 z<5AX*1nHdKr0}RSdRw0_Sxy6I_V)mo2Y==Vv!xM&rn9qy){ptK0N~v&Ur(+l#KT&N}h$mtF)VDA~83N^E?R?wLvAM zX6HXc8}QS@>cq>E8=cZIlSjkqRM-@p0zG6WCrC&h9~={~weT>D3a_IsT~IruArMG{ zs2g=|ZIzZhPDG5aeV_nh8NYB#i26cet=yA{s}<$7GE)&R8&3PQa0?D+(#Vl9FVs3N z7b{M!6z4V63CY=5spkU&0tYL*$t{NW!x&!*I>8T4f#Y@ub_=a*?)3>hAB5Ke>UO4p z$W>^jw0P~$4|gY-6g-eBFO%)j591w#Rjqtzx9{Fm1sIv|!1Rh**%18s4|k z!Ae z%NDlp&_&*7L)33|LU`i+J7w-JkLMS}qkVoB!VCP~XIW!#LG5VN;syatwXtUKEtjPfD)kW z#b=ws^KUGz{@;=rVOpGjmrC!~)32$pC(o}3I^8pELhQ}scC2DNWm7jt_Aa)yRc5dz z*p8DsFU00lfCQBr`=q`7xDa%`Qyw*&5_PVYJ$?6lD7T8XEKzU-JEH%a)RPHR1^%m4 zaa3olwXKrfH0L-op~9AVWr)3tOyiS>-kvYx%0hx&7ZI`NdrCzX4sa zae{$nkmEbe0mfraDv!_5rT2cTVRqMbjjA`htD{SkfO`y4a%<}5`7f{jUJsM#S>*tQ zmN)DdXZ(As)Bm?y_`fWS|GRjJ+)hW3PlFUX{<}(kpN`mm?U}xFnP?@tZeYZ#FbxzK zDOPw)Tu-0Rq4jzcUtdM@gB1a~6R0sLN4@?d;EAo`$+{ORTC&zcBdjMzcJc zt6>}P7Xe=pXL(>#l9J8<1Zq62Dt}bBCMh*_>yLoUAdw?e8GANUh#%&MpBh+Jcu-gI zY~;=_Y4uNIcT#}U;MSOOC*rKDtE-KfPP%VYdQ^cwc96wEr56jsbX2A#W&R^Y{{Pq8 bxQjyM=T%h2_)q{}1f-{ZU#sx;ld%5*TqIbY diff --git a/maps/southern_cross/items/headset_sc.dm b/maps/southern_cross/items/headset_sc.dm index bb9aa1e5f5c..d575f3abc6f 100644 --- a/maps/southern_cross/items/headset_sc.dm +++ b/maps/southern_cross/items/headset_sc.dm @@ -2,7 +2,6 @@ name = "pilot's headset" desc = "A headset used by pilots, has access to supply and explorer channels." icon_state = "pilot_headset" - item_state = "headset" ks2type = /obj/item/device/encryptionkey/pilot /obj/item/device/radio/headset/pilot/alt @@ -14,7 +13,7 @@ name = "explorer's headset" desc = "Headset used by explorers for exploring. Access to the explorer channel." icon_state = "exp_headset" - item_state = "headset" + adhoc_fallback = TRUE ks2type = /obj/item/device/encryptionkey/explorer /obj/item/device/radio/headset/explorer/alt @@ -26,7 +25,7 @@ name = "sar radio headset" desc = "A headset for search and rescue." icon_state = "sar_headset" - item_state = "headset" + adhoc_fallback = TRUE ks2type = /obj/item/device/encryptionkey/sar /obj/item/device/radio/headset/sar/alt From 67261d40f3d7b99c07e703f7e4c1d6f5e8a33c93 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Tue, 20 Feb 2018 14:37:03 -0600 Subject: [PATCH 6/7] Adds planetside gun permits (#4879) --- .../clothing/under/accessories/permits.dm | 4 +++ .../Anewbe - Planetside Permits.yml | 36 +++++++++++++++++++ maps/southern_cross/job/outfits.dm | 6 ++++ .../southern_cross/structures/closets/misc.dm | 2 ++ 4 files changed, 48 insertions(+) create mode 100644 html/changelogs/Anewbe - Planetside Permits.yml diff --git a/code/modules/clothing/under/accessories/permits.dm b/code/modules/clothing/under/accessories/permits.dm index ea21d796699..c6170bfd619 100644 --- a/code/modules/clothing/under/accessories/permits.dm +++ b/code/modules/clothing/under/accessories/permits.dm @@ -34,6 +34,10 @@ name = "bar shotgun permit" desc = "A card indicating that the owner is allowed to carry a shotgun in the bar." +/obj/item/clothing/accessory/permit/gun/planetside + name = "planetside gun permit" + desc = "A card indicating that the owner is allowed to carry a firearm while on the surface." + /obj/item/clothing/accessory/permit/drone name = "drone identification card" desc = "A card issued by the EIO, indicating that the owner is a Drone Intelligence. Drones are mandated to carry this card within SolGov space, by law." diff --git a/html/changelogs/Anewbe - Planetside Permits.yml b/html/changelogs/Anewbe - Planetside Permits.yml new file mode 100644 index 00000000000..1b5b569f78d --- /dev/null +++ b/html/changelogs/Anewbe - Planetside Permits.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Anewbe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added a Planetside Gun Permit item, specifying permission to possess a firearm on the planet's surface. Explorers should spawn with these by default, and a further two can be found in their gun locker." diff --git a/maps/southern_cross/job/outfits.dm b/maps/southern_cross/job/outfits.dm index d3ec9f553a1..316c9d434cf 100644 --- a/maps/southern_cross/job/outfits.dm +++ b/maps/southern_cross/job/outfits.dm @@ -17,6 +17,12 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go id_type = /obj/item/weapon/card/id/civilian/explorer id_pda_assignment = "Explorer" flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL + backpack_contents = list(/obj/item/clothing/accessory/permit/gun/planetside = 1) + +/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) + permit.set_name(H.real_name) /decl/hierarchy/outfit/job/explorer2/technician name = OUTFIT_JOB_NAME("Explorer Technician") diff --git a/maps/southern_cross/structures/closets/misc.dm b/maps/southern_cross/structures/closets/misc.dm index 77ecb795f3d..43040e86577 100644 --- a/maps/southern_cross/structures/closets/misc.dm +++ b/maps/southern_cross/structures/closets/misc.dm @@ -37,6 +37,8 @@ // One spare cell per gun new /obj/item/weapon/cell/device/weapon(src) new /obj/item/weapon/cell/device/weapon(src) + // One spare gun permit per locker + new /obj/item/clothing/accessory/permit/gun/planetside(src) //Explorer Lockers From 9549d18c4efad3bc038c9f45b12501f6907e80af Mon Sep 17 00:00:00 2001 From: Anewbe Date: Tue, 20 Feb 2018 14:37:19 -0600 Subject: [PATCH 7/7] Adds carbon pills to the NanoMed Plus (#4882) --- code/game/machinery/vending.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 6f6a4f04fb9..77dbd46fad3 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -862,7 +862,8 @@ /obj/item/weapon/reagent_containers/glass/bottle/stoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/toxin = 4, /obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/syringe = 12, /obj/item/device/healthanalyzer = 5,/obj/item/weapon/reagent_containers/glass/beaker = 4, /obj/item/weapon/reagent_containers/dropper = 2, - /obj/item/stack/medical/advanced/bruise_pack = 3, /obj/item/stack/medical/advanced/ointment = 3, /obj/item/stack/medical/splint = 2) + /obj/item/stack/medical/advanced/bruise_pack = 3, /obj/item/stack/medical/advanced/ointment = 3, /obj/item/stack/medical/splint = 2, + /obj/item/weapon/storage/pill_bottle/carbon = 2) contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/stox = 4,/obj/item/weapon/reagent_containers/pill/antitox = 6) idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. req_log_access = access_cmo