diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index c460dd78..d98ddfa3 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -1125,7 +1125,7 @@ "avG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plasteel,/area/crew_quarters/dorms) "avH" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) "avI" = (/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral,/obj/structure/table,/obj/machinery/light{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/fitness) -"avJ" = (/obj/effect/decal/cleanable/semen,/turf/open/floor/wood,/area/crew_quarters/dorms) +"avJ" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit) "avK" = (/obj/structure/bed,/obj/machinery/button/door{id = "Dorm5"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_y = -25; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber/on,/obj/effect/spawner/lootdrop/bedsheet,/turf/open/floor/wood,/area/crew_quarters/dorms) "avL" = (/obj/structure/bed,/obj/machinery/button/door{id = "Dorm6"; name = "Cabin Bolt Control"; normaldoorcontrol = 1; pixel_y = -25; specialfunctions = 4},/obj/machinery/atmospherics/components/unary/vent_scrubber/on,/obj/effect/spawner/lootdrop/bedsheet,/turf/open/floor/wood,/area/crew_quarters/dorms) "avM" = (/obj/structure/table,/obj/item/paper/fluff/holodeck/disclaimer,/turf/open/floor/plasteel,/area/crew_quarters/fitness) @@ -1598,6 +1598,7 @@ "aEL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall,/area/crew_quarters/bar) "aEM" = (/obj/machinery/airalarm{dir = 8; pixel_x = 24},/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 1},/obj/structure/cable{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) "aEN" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/twohanded/required/kirbyplants/random,/turf/open/floor/plasteel,/area/gateway) +"aEO" = (/obj/effect/turf_decal/tile/blue{dir = 4},/obj/machinery/atm{pixel_y = 30},/turf/open/floor/plasteel/white/corner{dir = 1},/area/hallway/secondary/entry) "aEP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/fore) "aEQ" = (/obj/machinery/door/airlock{name = "Service Hall"; req_one_access_txt = "25;26;35;28"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/hallway/secondary/service) "aER" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall,/area/hallway/secondary/service) @@ -1642,7 +1643,7 @@ "aFE" = (/obj/item/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/gateway) "aFF" = (/obj/structure/chair/stool,/turf/open/floor/plasteel,/area/gateway) "aFG" = (/turf/open/floor/plasteel,/area/gateway) -"aFH" = (/obj/item/reagent_containers/food/drinks/shaker,/obj/item/gun/ballistic/revolver/doublebarrel,/obj/structure/table/wood,/obj/item/stack/spacecash/c10,/obj/item/stack/spacecash/c100,/turf/open/floor/carpet/red,/area/crew_quarters/bar) +"aFH" = (/obj/item/reagent_containers/food/drinks/shaker,/obj/item/gun/ballistic/revolver/doublebarrel,/obj/structure/table/wood,/turf/open/floor/carpet/red,/area/crew_quarters/bar) "aFI" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/fore) "aFJ" = (/obj/structure/table,/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/rods/fifty,/obj/item/stack/rods/fifty,/obj/machinery/light{dir = 8},/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plasteel,/area/ai_monitored/storage/eva) "aFK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/dark,/area/ai_monitored/storage/eva) @@ -2187,12 +2188,12 @@ "aQd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/chapel,/area/chapel/main) "aQe" = (/obj/machinery/door/morgue{name = "Confession Booth"},/turf/open/floor/plasteel/dark,/area/chapel/main) "aQf" = (/obj/item/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/dark,/area/chapel/main) -"aQg" = (/obj/structure/table/reinforced,/obj/item/reagent_containers/food/condiment/peppermill{pixel_x = 5; pixel_y = -2},/obj/item/reagent_containers/food/condiment/saltshaker{pixel_x = -2; pixel_y = 2},/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit) +"aQg" = (/turf/closed/wall/r_wall,/area/hallway/secondary/exit) "aQh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) "aQi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/hallway/secondary/exit) "aQj" = (/turf/open/floor/plasteel,/area/hallway/secondary/exit) -"aQk" = (/obj/structure/table/reinforced,/obj/item/reagent_containers/rag,/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit) -"aQl" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit) +"aQk" = (/obj/effect/turf_decal/loading_area{dir = 4},/obj/machinery/light{dir = 1; pixel_y = 16},/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit) +"aQl" = (/obj/machinery/atm{pixel_y = 30},/obj/structure/window/reinforced,/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit) "aQm" = (/obj/machinery/camera{c_tag = "Escape Arm Holding Area"; dir = 4},/obj/item/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 8},/obj/structure/chair{dir = 4},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/hallway/secondary/exit) "aQn" = (/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit) "aQo" = (/obj/docking_port/stationary/random{dir = 8; id = "pod_lavaland1"; name = "lavaland"},/turf/open/space,/area/space/nearstation) @@ -2828,7 +2829,7 @@ "bcu" = (/obj/structure/disposalpipe/segment{dir = 6},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/port) "bcv" = (/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/junction/flip{dir = 1},/turf/open/floor/plating,/area/maintenance/port) "bcw" = (/obj/effect/landmark/xeno_spawn,/obj/item/bikehorn/rubberducky,/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) -"bcx" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/machinery/atm{pixel_y = 30},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"bcx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/bed/dogbed/ian,/obj/machinery/atm{pixel_y = 30},/mob/living/simple_animal/pet/dog/corgi/Ian{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) "bcy" = (/obj/structure/closet/wardrobe/green,/obj/machinery/light{dir = 8},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral{dir = 1},/turf/open/floor/plasteel,/area/crew_quarters/locker) "bcz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/crew_quarters/cryopod) "bcA" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/closet/crate/freezer,/turf/open/floor/plasteel,/area/quartermaster/warehouse) @@ -3162,6 +3163,8 @@ "biQ" = (/obj/effect/turf_decal/loading_area{dir = 6; icon_state = "steel_panel"; name = "steel pannel"},/turf/open/floor/plasteel,/area/hydroponics) "biR" = (/obj/effect/turf_decal/loading_area{dir = 9; icon_state = "steel_panel"; name = "steel pannel"},/turf/open/floor/plasteel,/area/hydroponics) "biS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/junction/yjunction{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/machinery/atm{pixel_y = 30},/turf/open/floor/plasteel/dark,/area/crew_quarters/bar) +"biT" = (/obj/effect/turf_decal/loading_area,/obj/machinery/light{dir = 1; pixel_y = 16},/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit) +"biU" = (/obj/machinery/atm{pixel_y = 30},/obj/structure/window/reinforced,/turf/open/floor/plasteel,/area/hallway/primary/central) "biV" = (/obj/structure/table,/obj/item/reagent_containers/glass/beaker{pixel_x = 5},/turf/open/floor/plasteel/cafeteria,/area/crew_quarters/kitchen) "biW" = (/obj/effect/landmark/start/botanist,/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "steel_panel"; name = "steel pannel"},/turf/open/floor/plasteel,/area/hydroponics) "biX" = (/obj/effect/turf_decal/loading_area{dir = 5; icon_state = "steel_panel"; name = "steel pannel"},/turf/open/floor/plasteel,/area/hydroponics) @@ -3179,6 +3182,7 @@ "bjj" = (/obj/effect/turf_decal/tile/green{dir = 4},/obj/effect/turf_decal/tile/green{dir = 1},/obj/effect/turf_decal/tile/green,/obj/structure/table/glass,/obj/item/reagent_containers/glass/bucket{pixel_x = 3; pixel_y = 3},/obj/item/reagent_containers/glass/bucket,/turf/open/floor/plasteel,/area/hydroponics/garden) "bjk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/starboard/fore) "bjl" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 1},/obj/structure/cable{icon_state = "1-4"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) +"bjm" = (/obj/effect/turf_decal/loading_area{dir = 4},/obj/machinery/light{dir = 1; pixel_y = 16},/turf/open/floor/plasteel,/area/hallway/primary/central) "bjn" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/structure/table/plasmaglass,/obj/item/reagent_containers/food/drinks/drinkingglass{pixel_x = -4; pixel_y = 6},/turf/open/floor/plasteel,/area/crew_quarters/bar) "bjo" = (/obj/structure/disposalpipe/segment,/obj/effect/turf_decal/tile/blue{dir = 8},/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel,/area/hallway/primary/central) "bjp" = (/obj/structure/flora/ausbushes/lavendergrass,/obj/structure/flora/ausbushes/fullgrass,/obj/structure/flora/junglebush/c{pixel_x = 10; pixel_y = -5},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/grass,/area/hallway/primary/port) @@ -3430,6 +3434,7 @@ "bob" = (/turf/closed/wall/r_wall,/area/crew_quarters/heads/hop) "boc" = (/turf/closed/wall/r_wall,/area/storage/tech) "bod" = (/obj/effect/spawner/structure/window/reinforced,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"},/obj/structure/cable{icon_state = "0-4"},/turf/open/floor/plating,/area/engine/gravity_generator) +"boe" = (/turf/closed/wall,/area/space) "bof" = (/obj/effect/mapping_helpers/airlock/cyclelink_helper{dir = 8},/obj/machinery/door/airlock/external{name = "Escape Airlock"},/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit) "bog" = (/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/science/lab) "boh" = (/obj/item/stack/sheet/glass,/obj/structure/table/glass,/obj/item/stack/sheet/glass,/obj/item/stack/sheet/glass,/obj/item/stock_parts/matter_bin,/obj/item/stock_parts/matter_bin,/obj/machinery/light{dir = 4},/obj/item/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/item/stock_parts/scanning_module,/obj/machinery/power/apc{areastring = "/area/science/lab"; dir = 4; name = "Research Lab APC"; pixel_x = 26},/obj/structure/cable{icon_state = "0-8"},/turf/open/floor/plasteel/white,/area/science/lab) @@ -3457,6 +3462,7 @@ "boD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/dark,/area/medical/morgue) "boE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/open/floor/plasteel/dark,/area/medical/morgue) "boF" = (/obj/effect/landmark/event_spawn,/turf/open/floor/wood,/area/library) +"boG" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/door/poddoor/preopen{id = "cargoshut2"; name = "shutters"},/turf/open/floor/plating,/area/space/nearstation) "boH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/dark,/area/medical/morgue) "boI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{dir = 4; name = "Morgue Maintenance"; req_access_txt = "6"},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/medical/morgue) "boJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/maintenance/department/medical/morgue) @@ -3507,7 +3513,7 @@ "bpC" = (/obj/machinery/button/flasher{id = "hopflash"; pixel_x = 6; pixel_y = 36},/obj/machinery/button/door{id = "hop"; name = "Privacy Shutters Control"; pixel_x = 6; pixel_y = 25; req_access_txt = "57"},/obj/machinery/button/door{id = "hopqueue"; name = "Queue Shutters Control"; pixel_x = -4; pixel_y = 25; req_access_txt = "57"},/obj/machinery/light_switch{pixel_x = -4; pixel_y = 36},/obj/machinery/pdapainter,/obj/effect/turf_decal/tile/blue{dir = 1},/obj/effect/turf_decal/tile/blue{dir = 4},/obj/effect/turf_decal/tile/blue{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) "bpD" = (/obj/machinery/newscaster/security_unit{pixel_y = 32},/obj/structure/filingcabinet/chestdrawer,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) "bpE" = (/obj/machinery/computer/security/telescreen/vault{pixel_y = 30},/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) -"bpF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/bed/dogbed/ian,/obj/structure/medkit_cabinet{pixel_y = 27},/mob/living/simple_animal/pet/dog/corgi/Ian{dir = 8},/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) +"bpF" = (/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/brown{dir = 1},/obj/machinery/atm{pixel_y = 30},/turf/open/floor/plasteel/dark,/area/quartermaster/qm) "bpG" = (/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) "bpH" = (/obj/machinery/power/apc{areastring = "/area/ai_monitored/nuke_storage"; dir = 1; name = "Vault APC"; pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{icon_state = "0-8"},/turf/open/floor/circuit,/area/ai_monitored/nuke_storage) "bpI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/tile/blue{dir = 8},/obj/effect/turf_decal/tile/blue,/turf/open/floor/plasteel,/area/bridge/meeting_room) @@ -3523,10 +3529,12 @@ "bpS" = (/obj/structure/table/glass,/obj/item/grenade/chem_grenade,/obj/item/grenade/chem_grenade,/obj/item/grenade/chem_grenade,/obj/item/grenade/chem_grenade,/obj/item/screwdriver{pixel_x = -2; pixel_y = 6},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/white,/area/medical/chemistry) "bpT" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/components/unary/vent_pump/on,/turf/open/floor/plasteel/white,/area/medical/chemistry) "bpU" = (/obj/structure/table,/obj/item/folder/white,/obj/item/radio/headset/headset_med,/turf/open/floor/plasteel/white,/area/medical/chemistry) +"bpV" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/door/poddoor/preopen{id = "cargoshut2"; name = "shutters"},/turf/open/floor/plating,/area/space) "bpW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/tile/blue{dir = 1},/obj/effect/turf_decal/tile/blue{dir = 4},/obj/effect/turf_decal/tile/blue,/turf/open/floor/plasteel/white,/area/medical/medbay/central) "bpX" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating,/area/medical/medbay/central) "bpY" = (/obj/machinery/computer/med_data{dir = 1},/obj/item/radio/intercom{frequency = 1485; name = "Station Intercom (Medbay)"; pixel_y = -30},/turf/open/floor/plasteel/white,/area/medical/medbay/central) "bpZ" = (/obj/machinery/light,/obj/machinery/computer/crew{dir = 1},/turf/open/floor/plasteel/white,/area/medical/medbay/central) +"bqa" = (/obj/machinery/computer/security/qm{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/obj/effect/turf_decal/tile/brown,/turf/open/floor/plasteel/dark,/area/quartermaster/qm) "bqb" = (/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/medical/medbay/central) "bqc" = (/obj/machinery/door/airlock/security/glass{name = "Security Office"; req_access_txt = "63"},/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plasteel/white,/area/security/checkpoint/medical) "bqd" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/closed/wall,/area/security/checkpoint/medical) @@ -3660,6 +3668,8 @@ "bsB" = (/obj/structure/table,/obj/item/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/folder/white,/obj/item/stamp/rd{pixel_x = 3; pixel_y = -2},/turf/open/floor/carpet/purple,/area/crew_quarters/heads/hor) "bsC" = (/obj/machinery/airalarm{dir = 8; pixel_x = 24},/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/crew_quarters/heads/hop) "bsD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/starboard/fore) +"bsE" = (/obj/structure/closet/crate,/obj/item/clothing/under/color/lightpurple,/turf/open/floor/plating,/area/maintenance/starboard/aft) +"bsF" = (/obj/effect/turf_decal/loading_area,/obj/machinery/light{dir = 1; pixel_y = 16},/turf/open/floor/plasteel,/area/hallway/primary/central) "bsG" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/structure/urinal{pixel_y = 32},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) "bsH" = (/turf/closed/wall/r_wall,/area/teleporter) "bsI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/teleporter) @@ -5446,7 +5456,6 @@ "caX" = (/obj/structure/window/reinforced,/obj/structure/flora/ausbushes/ywflowers,/turf/open/floor/grass,/area/hallway/secondary/exit) "caY" = (/obj/machinery/button/door{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 25; req_access_txt = "47"},/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel/white,/area/science/explab) "caZ" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/starboard/aft) -"cba" = (/obj/structure/closet/crate,/obj/item/clothing/under/color/lightpurple,/obj/item/stack/spacecash/c200,/turf/open/floor/plating,/area/maintenance/starboard/aft) "cbb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/stripes/corner{dir = 4},/turf/open/floor/plasteel,/area/hallway/secondary/entry) "cbc" = (/obj/structure/sign/warning/vacuum/external{pixel_x = -32},/turf/open/floor/plating,/area/maintenance/port/aft) "cbd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/turf/open/floor/plating,/area/maintenance/port/aft) @@ -6870,9 +6879,6 @@ "cFX" = (/obj/structure/flora/ausbushes/fullgrass,/obj/structure/flora/ausbushes/sunnybush,/obj/structure/flora/ausbushes/brflowers,/obj/structure/window/reinforced,/turf/open/floor/grass,/area/hallway/primary/central) "cFY" = (/obj/structure/flora/ausbushes/brflowers,/obj/structure/flora/ausbushes/ywflowers,/obj/structure/window/reinforced,/turf/open/floor/grass,/area/hallway/primary/central) "cFZ" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/lavendergrass,/obj/structure/flora/ausbushes/ppflowers,/obj/structure/flora/ausbushes/ywflowers,/obj/structure/window/reinforced,/turf/open/floor/grass,/area/hallway/primary/central) -"cGa" = (/obj/structure/flora/ausbushes/fullgrass,/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/ppflowers,/obj/structure/flora/ausbushes/brflowers,/obj/structure/window/reinforced,/turf/open/floor/grass,/area/hallway/primary/central) -"cGb" = (/obj/structure/flora/ausbushes/fullgrass,/obj/structure/flora/ausbushes/brflowers,/obj/structure/flora/ausbushes/sunnybush,/obj/structure/window/reinforced,/turf/open/floor/grass,/area/hallway/primary/central) -"cGc" = (/obj/structure/flora/ausbushes/sparsegrass,/obj/structure/flora/ausbushes/brflowers,/obj/structure/flora/ausbushes/ywflowers,/obj/structure/window/reinforced,/turf/open/floor/grass,/area/hallway/primary/central) "cGd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/stripes/line{dir = 4},/obj/effect/turf_decal/stripes/corner{dir = 1},/turf/open/floor/plasteel,/area/storage/primary) "cGe" = (/obj/structure/table,/obj/item/weldingtool,/obj/item/crowbar,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/turf/open/floor/plasteel/dark,/area/storage/primary) "cGf" = (/obj/structure/table,/obj/item/wrench,/obj/item/analyzer,/turf/open/floor/plasteel/dark,/area/storage/primary) @@ -7321,10 +7327,10 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadamJanjanjanjanjaqhanjanjanjaqiaqjapjapkaqkamJaadalzamialzaqlaqmanQaqnaqoalzaoEamiaqpxJwanOaqqamiamiamiamiamiamiamiamialzalzalzaadaaFaadaaFaqraqsaqraaaaaaaaaaaaaaaaaaaaaaaaaadaiHaqtaquaiHaqvaoHaqwaqxaqyapwapwaoHapyaoKaqzapBaqAaqBaqCamYanbandapEaiEaqDaqDaqDaqDaqDaqEaqFaqDaqDaqDaqDaqDaqDaqDaqDaqDasGaqGaqIaqGatIayGctCatIctDatzatzaEXatzatzapUaJgaqGaqGaqGaqGaqGaaaaqLamIaluapgaqMaqNaqOaqPamIamIamIaltamIaltaqQamIamIaltamIaqRaqSaqTapiamIaltaqUaqValtdPCapZaltaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadamJanjanjanjanjanjanjanjanjanjanMaqWapkaqXamJalzalzaqYalzalzalzamPaqZaraaraarbarcardarcarearfargarhalzamialzalzalzamialzarialzaaFaadaoBaadaqraqsaqraaaaaaaaaaaaaaaarjarjarjarjarjarjarjarjaptaoHarkarlarmapwarnaoHapyaroarparqarrarsaqCamYanbartapEaiEaqDaruarvautarxaryatAaqDatBatCatGaqDatHauuayzaqDasGaqGctEaLVauFauFauGauHaqJaqKaqKaqKaqKaqKaqJapRaEYayHaadaadaadaadaluarNaluapgarOamIarPuyYaoramIaltaltarQaltaltarRaltaltaqTarSarTamIaltamIarUarUarUarUarUarUarUarUarUarVarVarVarVaaFarVarVaadaadaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadamJanjanjanjanjanjanjanjanjanjanMarWapkarXamJarYarZasaasbasbasbasbasbasbascasdasealzalzalzalzamialzalzamiasfalzargamialzalzalzalzaoBaoBaoBaqrasgaqraaaaaaaaaaadaadarjashasiarjasjaskaslarjaptaoHapxasmapxasnapwaoHasoaspasqapBasrcagaqCamYanbassapEaiEaqDastasuasvavxasxauIaqDavyavAavBaqDavyavCbFnaqDavDaqGctFavFapRayFavHavIaqJaqKaqKaqKaqKaqKaqJapRayDayHaaaaaaaaaaaaaluamIapYapgasMaqTarPamIasNasOasPapiamIamIamIamIamIamIamIarSasQamIatOamIarUasSasTasUarUasVasWasXarUaadaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaamJanjanjanjanjanjanjanjanjanjanMarWasYasZamJamiamiataatbatcatcatcatcatcatcatdateatfaaFatgalzamiathapqargatialzatjamiamiamiatkakTaoBaoBaadaqraqsaqraaaaaaaaaarjarjarjaqsaqsarjaqsaqsaqsarjaptaoHapxatlatmatnapxaoHapyatoaoKatpatqatraoKatsanbandapEaiEaqDaqDaqDaqDaqDattazgaqDavJavAavKaqDbPPavAavLaqDasGaqGawRawTawUawUawVawWasKaqKaqKaqKaqKaqKaqJapRaEZayHatJatJatJaadaluamIctGapgatLamIatMatNatNatNatNavXatNatPamIamIamIuyYamIamIamIamIaltasOarUatQatRatRarUatSatTatUarUaoBaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaamJanjanjanjanjanjanjanjanjanjanMarWasYasZamJamiamiataatbatcatcatcatcatcatcatdateatfaaFatgalzamiathapqargatialzatjamiamiamiatkakTaoBaoBaadaqraqsaqraaaaaaaaaarjarjarjaqsaqsarjaqsaqsaqsarjaptaoHapxatlatmatnapxaoHapyatoaoKatpatqatraoKatsanbandapEaiEaqDaqDaqDaqDaqDattazgaqDavyavAavKaqDbPPavAavLaqDasGaqGawRawTawUawUawVawWasKaqKaqKaqKaqKaqKaqJapRaEZayHatJatJatJaadaluamIctGapgatLamIatMatNatNatNatNavXatNatPamIamIamIuyYamIamIamIamIaltasOarUatQatRatRarUatSatTatUarUaoBaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadamJanjanjanjanjanjanjanjanjanjanMatVatWatXamJatYlORauaaubanRaucaudaueaufalzaugateaaFauhatfakTamiasfalzalzalzalzalzalzalzauiatkakTaadaoBaadaqraqsaqraaeaaeaaeaujaukaulaqsaqsarjarjaumarjarjaptaoHaoHaunaoHauoaoHaoHaupauqaoKaoKaoKaoKaoKauranbausapEaiEaqDaruarvaytarxawXawYaqDaqDawZaqFaqDaqDaxaaqFaqDaxbaqGaxcatDaxdaxdaxeaxfatEaqKaqKaqKaqKaqKatFasHaFaaqGaltaltaltaltaltamIaltapgapgapgapgapgapgapgapgapgaltauMauNaltaltaltaltaltaltaltaltamIauOarUatRatRauPauQatQauRarUaoBaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDaGRaNMatJatJatJatJauSamJamJamJamJamJamJamJamJamJamJamJauTauUamJamJauValzataauWamiauXauYamiamialzaugateauZaadauZalzamiavaalzavbavcalzatjaqoavdaveaveaveawCavfavfavgavhaviavfavfavfavgaviavgavgavhavgavjavhavkavlavmavnavnavoavnavpavnavnavqavravnavnavnavnavsavtavuavuavvavwaqDastasvasvazyauwaxgayuauxauyauzauAauBauCayxcIiayAaqGayBatDayCaxdaxeaxfatIaqKaqKaqKaqKaqKatIauKauLaqGaFTaFSaltasLaqcamIavNaltavOaosavPavQaoraltatLaoraltavRamIaltavSamIaltavTavUavVavWavWavWawxavYavZawaawbawcawdarUarVarVaaFaaFarVarVarVarVaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDbanaaaaaaaaaaaaaaaaweawfawgawhawiawiawiawiaLLawiawiawjawkawlawmawnawoalzataauWawpamiawqamiawralzaugawsaveaveaveaveawtaveasecGzawqawuamiamiawvawwaDVawyawBawzawzawAawzawBawzawzawAawyawDawFawFawFawFawFawFawGawHawIawJawJawJawJawKawJawJawKawJawLawLawLawLawLawMawNawOawPawQaqDaqDaqDaqDaqDattayEayvazCazCazJavzavzazAavGawSazBazKazDazEazGazGazHazIatIaqKaqKaqKaqKaqKatIavMaIqaqGamIamIatOamIamIamIamIamIamIaxlatNatNatNatNatNatNatNaxmamIamIamIamIasRamIamIaxnaxoaxpaxqaxraxsaxtatRatRatRaxuarUaadaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDbanaaaaaaaaaaaaaaaaweawfawgawhawiaEOawiawiaLLawiawiawjawkawlawmawnawoalzataauWawpamiawqamiawralzaugawsaveaveaveaveawtaveasecGzawqawuamiamiawvawwaDVawyawBawzawzawAawzawBawzawzawAawyawDawFawFawFawFawFawFawGawHawIawJawJawJawJawKawJawJawKawJawLawLawLawLawLawMawNawOawPawQaqDaqDaqDaqDaqDattayEayvazCazCazJavzavzazAavGawSazBazKazDazEazGazGazHazIatIaqKaqKaqKaqKaqKatIavMaIqaqGamIamIatOamIamIamIamIamIamIaxlatNatNatNatNatNatNatNaxmamIamIamIamIasRamIamIaxnaxoaxpaxqaxraxsaxtatRatRatRaxuarUaadaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaxvaaaaaaaaaaxwaxyaxzayTaxAaXbaxAaxCaxDaxDaxEaxFbdpaxGaxHaxDaxDaxIaveaxJauWaxKamiamiaxLaxMalzaxNaxOatZatZatZatZatZaxPateaxQamialzarYarYateaxRalzawEaxSawEaxXaxUaxVaxWbmGaxVaxYaxVaxZayaayaayaayaayaayaayaaybaycaydayeayfaygayhayiayjaykaylaymayncbvaypayqayranbaysahfafmaqDaruarvaBKarxbdxaywazzazNaAVaBOaATawSawSawSawSaAUaBPaAWapRapRasIauJaxfatEaqKaqKaqKaqKaqKaxhaxiaxjaxkamIamIaltaorayKayKayKayKaltarPaltaltayLaltaltapialtarPasLaltaltapialtamIasLaxnayMarSarUayNayOayPayQayRayOaySarUaadaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDbanaaaaaaaaaaaaaaaaweayVaweayUaBcayUayWaxBaxBayXayUaBcayUayYayZazaazbalzataauWalzalzalzalzazcazcazdazeazcazcazcazcazcaugawsaveaveaveaveaveazfaxRaoEawEaBMaBqaBqabFaxVaeXaHzazhaHHaxVaIDayaaAAazjazkazlaCWayaaybaznazoazpazpazqazrazpazpazpazsaztaztazuazvayqazwanbazxahfafmaqDastasvasvaDoaBNaBSaDraEHaEHaDraDsaDtaDuaDvaDwbiZaDKauEaDMbjbazLaEDaDNayIaqKaqKaqKaqKaqKayJaltaltaltamIamIaltaltayKazOazPayKapZarPaltazQamIaltazRamIaltazSazTaltazUamIaltapiapiaIpazVapiarUazWayOazXazYazXayOazZarUaadaadaadaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDbclcEeatJatJatJatJauSaAaauSaAbaRJayUaAcaAdaAeaAfayUaRJaAbayUauSaAgaAhalzaAiaAjaAkaAkaAkaAlazcaAmaAnaAoaApaAqaAraAmazcaAsaAtaAuaAvaAvaAvaAvaAvaAwarYawEaHIaBqaICaIYaxVaIZaJcaHzaJfaxVaxZayaaCXaABaACaADaCYayaaAEaAFaAGaAHaAIaAJaAKaALaAMaANaAOaAPayoayoayoaAQazwanbaARahfafmaomaomaomaomaomaEGbgocHXcIjayyaEIaEJazFazFazFazFazFaqGaqGaqGaAXaDDaGlaqGayJaqKaqKaqKaqKaqKayJaltapZamIamIamIaltaAYayKaAZaBaayKamIarPaltamIasNaltamIamIaltarPasOaltcGAamIaltaBbuyYaxnayMaqTarUarUarUarUarUarUarUarUarUarVarVarVarVarVaadaoBaoBaoBaoBaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -7333,10 +7339,10 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJat aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaEcaBeaEdaEeaEfaEgaEhaEiazcaFraFsaFwaFxaFsaFwaFxaEkaGVaGYaGZaHaaGZaGZaGZaGZaIuaGVaBnaKiaKjaKkaKkaGjaHyaKkaKpaKraBTaxZayaaEraEsaEtaEuaEvayaaqsaEwaydaydaDiaExaEyaEzaEAaydaydayoayoayqaEBayqazwanbazxahfafmaomaGgaHtbczbdwbdxbeMaEKaEKaEKbssaEMaEKbghbghbgibeLazFaqGaqGbbVaHCaJabnbaCiaCiaCiaCiaCiaCiaCiaCibGNaltaltaltaEPaltayKaEQaERaESaETaEUaEVaEWaEVaHwaHBaHVaHWaHXaFbaFbaFbaFbaFcaFdaFeaFcaFcaFcaFcaFcaFcaFcaFfaFgaFhaCwaCwaCwaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaFiaBeaFjaFkaFlaFmaFnaFoazcaIzaYjbfNbgTbjjaCFaFqazcaIvaIwaFtaFuaElaElaElaFvaIxaIyaBnaLcaLgaKkaLhaLkaLlaKkaLnaLoaBTaFDayaaFEaFFaEtaFGaENayaaqsaFIayqaFJayoaFKaFLaFMayoaFNayqaFOaFPayqaFLayqaFQaoNaFRahfafmaombtSbtTbtUbBTattatuazFbaubaKbLfcHhazFazFazFazFazFazFaKtaITbbVaLXaGbbsrbsDcImbjkaOdaDOaDOaDOcveaLWaGmaGkaGkaGnaGiaGoaGpaCnaGqaGraGsaGtaGuaGtaHYaGwaFbaHZaIaaKIaKJaMpaGBaFcaGCaGDaFcaGEaGFaGGaGHaGIaGJaGKaGLaGMaGNaGOaGPaaaatJaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoBaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGQayUayWcEwaBeaBeaGSaGTaGUaGTaBeazcazcazcazcazcazcaGWaGXazcaIAaIBaJUaJUaJUaQKaJUaJUcGdcGeaBnaLpaLxaKkaLkaLSaLkaKkaLTaLZaBTaxZayaaHdaHeaHfaHgaHhayaaqsaHiayqaHjayoaHkaFLaHlayoaHmayqaAQaAQayqaHnayqaHoaHpaHqahfanDaomaomaomaomaomaHraHsazFazFazFbLfbjlbsGbsGaLYaMcaNmaNoaNuaNUbbVaOcaNnaJdcvtaJdcuucvtaJdaJdaJdcvuaHKaHLaHMaxpaxpaxpaHNaHOaHPaHQaHRamIaHSaHSaHSaHTaIoaFbaMraNEaOzbagbcbbhPaFcaIbaIcaFcaIdaIeaIfaIgaGIaIhaFfaFgaDYaIiaIjaGPaaaatJaaaaaaatJaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaxBaIraIlaImaIlaInbvpaLfbcxaLqaLvbjpbswaJLaCFbyiazccGfcGgcGhcGicGjcGkcGlcGmcGncGoaBnaMaaMbaKkaKkaKkaKkaKkaMNaMaaBTaxZayaaIEaIFaIGaFGaIHayaaqsapyayqaIIcbvaFLaFLaFLaIJaIKayqcFwcFxaHFaIMaINaIOaIPbULbUQaISaIQcFAcFBaITaOuaIVaIWazFbaubbpcHxbbcbbcbbcbbcaOvazFaOwaOyaVmbbVbpAaVnaJdaBQaBRaDxaOxaDzaFHaNraJiaJiaJjaJkaJlaJiaJmaHSaHSaJnaHTaHSaHSaHSaJoaJpaHTaHUaFbaJqaJraJsaJtaJuaJvaFcaJwaJxaJyaJzaJAaJBaJCaJDaIhaFfaJEaDYaGNaJFaGPaaaaaaaaaaaaatJaaaaMzaMzaMzaMzaMzaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaxBaJGaJHaJIaJHaJJaJHaJHaJHaJKaLOcFCbyfaJLaJMaJLazcaJNaJOaJNaBnaBnaBnaBnaJNaJPaJQaBnaBTaMPaNjaNjaNkaNjaNjaNlaBTaBTaJXayaaJYayaaJZaKaaKbayaarjaoJayqayqayqaAQaKcaAQayqayqayqcFEcFFcFGaKdaIPaIPaIPaIPaIPaKecFHcFIcFJaITaWGaIVaKgazFazFazFazFazFazFazFazFaKqazFaWIaWIaOCbbVbpAaWJaELaPLaDBaDCaOmaDzaDzaNsaJiaLUaKuaKvaKwaJiaKxaKyaKzaKAaKBaKCaKDaKEaKFaKGaHTaHUaFbaKHaMpaMqbmcaMpaKKaFcaKLaKMaKNaKOaKPaKQaKRaFcaFcaKSaFgaDYaIiaIjaGPaaaaaaaaaaaaatJaaaaMzaNIaNJaNLaMzaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauSaKTaxBaKUaKVaKWaKXaKYaKZaweaLaaLbaxBaIraNXaNYaNYaNYaOaaNYbzEaNYaNYaNYaNYaNYaNYbSqaObbSxbTEbUPaNYaNYaNYaNYaNYbVLaNYbVMbWDbWEaLraLmaLsaLmaLtaMWaLuaOeaLwaLRaEEaIRaIRaIRaLNbiMaLPbiFaLPaLPaLAaLBaLCaLDaLEaLFaLGaLPaLPcFDaLHaLIaLJaLKaPJbcXaNKbiGbiMbiHcvEbAIaXUaYkaZMaZMaZMbaEbbbbbRaJdcvtaGcaJdaJdaJdaJdaJdaJiaMdaKuaMeaMfaJiaJiaMgaMhaMiaMjaMkaMlaMmaMnaMoaHTaHUaFbaGzboFaMpaNDaMpaMpaFcaMsaMtaFcaMuctNaKRaKRaFcaMvaMwaMxaDYaCwaCwaCwaMyaMzaMzaMzaMzaMyaMycExaQjaOXaMzaaaatJaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJaaaaaaaaaaaaaaaaaaaaaaaaayUaRNayUayUayUayUayUayUaRNayUaaaauSaBdaMAaKUaMBaMCaMDaMEaMFaweaMGaLbaMHaIkaLdaMIaMJaMLaMKaMLaMMaLeaLeaLeaLeaLeaLeaLeaLiaLdaLebXCaLeaLeaPKaPOaMQaMRaMQaMRaMSaMQaMTaMQaMUaMQaMVaOnaMXaMYaMZaIPaIPaIPaIPaIPaIPaIPaIPaLzaIPaIPaNaaNbaNcaNdaNeaNfaNgaIPaIPaLzaIPaNhaIPaIPaIPaIPaIPaIPaIPaNiaIPaIPaIPaLzaIPaIPaIPaIPaIPbbXaJdaKsaNpaPQaWKaQFaJdaQGaJiaNvaKuaNwaNxaNyaJiaHSaHSaNzaHSaHSaHSaNAaNBaNAaHTaHUaFbaFbaFbbtJbtKaFbaFbaFcaFcaFcaFcaFcaFcaFcaNFaFcaFfaFfaFgaDYaNGaNHaCwaOYaPaaPbaQgaQkaQlaMyaQmaQjaOXaMzatJatJatJatJatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaxBaIraIlaImaIlaInbvpaLfbvpaLqaLvbjpbswaJLaCFbyiazccGfcGgcGhcGicGjcGkcGlcGmcGncGoaBnaMaaMbaKkaKkaKkaKkaKkaMNaMaaBTaxZayaaIEaIFaIGaFGaIHayaaqsapyayqaIIcbvaFLaFLaFLaIJaIKayqcFwcFxaHFaIMaINaIOaIPbULbUQaISaIQcFAcFBaITaOuaIVaIWazFbaubbpcHxbbcbbcbbcbbcaOvazFaOwaOyaVmbbVbpAaVnaJdaBQaBRaDxaOxaDzaFHaNraJiaJiaJjaJkaJlaJiaJmaHSaHSaJnaHTaHSaHSaHSaJoaJpaHTaHUaFbaJqaJraJsaJtaJuaJvaFcaJwaJxaJyaJzaJAaJBaJCaJDaIhaFfaJEaDYaGNaJFaGPaaaaaaaaaaaaatJaaaaMzaMzaMzaMzaMzaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaxBaJGaJHaJIaJHaJJaJHaJHaJHaJKaLOcFCbyfaJLaJMaJLazcaJNaJOaJNaBnaBnaBnaBnaJNaJPaJQaBnaBTaMPaNjaNjaNkaNjaNjaNlaBTaBTaJXayaaJYayaaJZaKaaKbayaarjaoJayqayqayqaAQaKcaAQayqayqayqcFEcFFcFGaKdaIPaIPaIPaIPaIPaKecFHcFIcFJaITaWGaIVaKgazFazFazFazFazFazFazFazFaKqazFaWIaWIaOCbbVbpAaWJaELaPLaDBaDCaOmaDzaDzaNsaJiaLUaKuaKvaKwaJiaKxaKyaKzaKAaKBaKCaKDaKEaKFaKGaHTaHUaFbaKHaMpaMqbmcaMpaKKaFcaKLaKMaKNaKOaKPaKQaKRaFcaFcaKSaFgaDYaIiaIjaGPaaaaaaavJaQgaQgaQgaMzaNIaNJaNLaMzaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauSaKTaxBaKUaKVaKWaKXaKYaKZaweaLaaLbaxBaIraNXaNYaNYaNYaOaaNYbzEaNYaNYaNYaNYaNYaNYbSqaObbSxbTEbUPaNYaNYaNYaNYaNYbVLaNYbVMbWDbWEaLraLmaLsaLmaLtaMWaLuaOeaLwaLRaEEaIRaIRaIRaLNbiMaLPbiFaLPaLPaLAaLBaLCaLDaLEaLFaLGaLPaLPcFDaLHaLIaLJaLKaPJbcXaNKbiGaLPbiHcvEbAIaXUaYkaZMaZMaZMbaEbbbbbRaJdcvtaGcaJdaJdaJdaJdaJdaJiaMdaKuaMeaMfaJiaJiaMgaMhaMiaMjaMkaMlaMmaMnaMoaHTaHUaFbaGzboFaMpaNDaMpaMpaFcaMsaMtaFcaMuctNaKRaKRaFcaMvaMwaMxaDYaCwaCwaCwaMyaMzaMzaQkaQlbiTaMycExaQjaOXaMzaaaatJaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJaaaaaaaaaaaaaaaaaaaaaaaaayUaRNayUayUayUayUayUayUaRNayUaaaauSaBdaMAaKUaMBaMCaMDaMEaMFaweaMGaLbaMHaIkaLdaMIaMJaMLaMKaMLaMMaLeaLeaLeaLeaLeaLeaLeaLiaLdaLebXCaLeaLeaPKaPOaMQaMRaMQaMRaMSaMQaMTaMQaMUaMQaMVaOnaMXaMYaMZaIPaIPaIPaIPaIPaIPaIPaIPaLzaIPaIPaNaaNbaNcaNdaNeaNfaNgaIPaIPaLzaIPaNhaIPaIPaIPaIPaIPaIPaIPaNiaIPaIPaIPaLzaIPaIPaIPaIPaIPbbXaJdaKsaNpaPQaWKaQFaJdaQGaJiaNvaKuaNwaNxaNyaJiaHSaHSaNzaHSaHSaHSaNAaNBaNAaHTaHUaFbaFbaFbbtJbtKaFbaFbaFcaFcaFcaFcaFcaFcaFcaNFaFcaFfaFfaFgaDYaNGaNHaCwaOYaPaaPbaRkaRkaRkaMyaQmaQjaOXaMzatJatJatJatJatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDaGRaNMatJatJatJatJauSaAaauSayUaRJayUaNNaNOaNPaNQayUaRJayUayUauSayWaxBaKUaNRaNSaMDaMEaMFaweaNTaLbaxBaPmaPnaPvbXDaPwaPwaPwaPxaPyaQCaNVaNZaPwaPwaPwaQEcGpaPwcHdcHecHecHfaSyaQIaOgaOfaOgaOhaOiaOjaOlaOkaQMaRPaWUaOoaOpaIPaOqaOqaOqaOraOqaOqaOqaOqaOsaOqaOqaOqaOqaOqaOqaOtaOqaOqaOqaOqaPPaOqaOqaOqaOqaOqaOqaOqaOqaIPaIPaIPbfQbfQaRfbfQbfQbfQbfQbfQaRiaJdaRlaKoaJhaLQaLQaJdaltaJiaOAaOBaODaWFaOEaJiaHSaOFaOGaOHaOIaKmaOHaOJaOKaHTaHUaFbaOLaOLaOMaONaOOaOOaOPaFbaOQaORaOSaCwaFfaGNaOTaFfaFfaOUaOVaCwaOWaCwaQnbamaRkaRkbcjaSWaMyaSXaOZaSYaMzaMzaMzaMzaMzaMzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDbanaaaaaaaaaaaaaaaaweawfaweayUaXfayUayWaxBaxBayXayUaXfayUaPcaPdaPeaxBaKUaPfaPgaKXaPhaKZaweaPiaLbaLOcFKcFLaPjaPkaPlaPlaPlaPlaPlaPlaQHaQLaPlaPoaPlaPlaPlaPpaPqaPraPqaPsaPtaPuaYMaLeaRObeuaRZbexbhKaPzaScaPAaPAaPMaRgaRmaILaILaILaILaILaILaILaILaPCaPDaPEaPFaPEaPEaPEaPGaPEaPHaPEaPIaPCaILaILaILaILaILaILaILaILaPMaTSaUTaJdaJdaJdaJdcuTbeNbeNcuTcwFaJdaRsbjnbMRcvDcvbaJiaRnaJiaJiaPRaJkaJiaJiaJiaJiaOHaPSaPTaPTaPTaPTaPUaOHaHTaHUaFbaPVaMpaOMaONaMpaMpaPWaFbaPXaPYaPZaCwaFfaIiaQaaQbaQbaQcaQdaQeaQfaCwaRkbfTbqAbTpchDaPbaMyaUsaVCbspaXcaRkaRkaXdaRkbkIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaQoaaaaaaaaaaxwaxyaxzayTaQpbvpaQqaPeaxBaxBaQraQqbvpaQpaPeaxBaxBaxBaQsaQtaQuaQvaQwaQxcFMaQyaQzaLOcFNcFOaPjaQBaPlaRQaRRaRSaRUaSLaSMaThaTmaTpaUeaUfaUCaPpaQNaQOaQPaPsaQQaPuaPuaQRaPuaPuaPAaPAaQSaQTaPAaPAaPAaQUbiLbbeaILaaaaaaaaaaaaaaaaaaaaaaPCaKnaQVaQWaQXaQYaQZaRaaRbaRcaRdaReaPCaaaaaaaaaaaaaaaaaaaaaaILaVNaIPbjDaJdaGaaRjaTTaTUcwZcwZaWHbiSbcWbdaaSaaSaaSacvaaVoaSBaRoaRpaRqaRraRtaRuaSuaJiaOHaRvaVsbiNbiNbiOaRxaOHaHTaRyaFbaRzaRzxNJaONaRAaRAaRBaFbaFbaRCaFbaCwaRDaGNaOTaREaRFaOUaOVaCwaCwaCwaYNcDRcEibbkbblbcgaMyaRGaRHaMzaMzaMzaMzaMzaMzaRIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -7356,21 +7362,21 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoBaaabdrbkBbkCbkDbkEbkEbkFbkGbkHbASaPjbkJbkKbkLbkLbkLbkMbkMbkMbkMbkMbkMbkNbkObhYbkPbkQbkRbkSbkTbkUbkXbkWbhYblfbkYbkZbeVbeVblabpvblcblbbldblebxQblgbbZblhblibljblkbllaZybgJblmaZvaZvaadaAxcGEaBsboabpHaBvaAxaadaZDaZDbipbpdbiqbaWbjebjfbjgaZDbjoaIPbjDbfvblsbisbltblublvblwbhcblxblyblzblAblBblCblCblDbhcbixbfDblEblFblGbpobkabhibhibkbbkabkcblHbfBblIblJbjWblKblLblMblNblKbkkblOblPbkmbkmbkmbkmblQbfLblRblSblTbfSbkvbgRbgRbkwbkxbkybfSbkzbnwbnxbnybnzbnAaaeaaeaaeaaeaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrblZbdrbmabmbbmbbxBbdrbmdbmdaPjbmebmfbmebmebmebmfbmeaPjaPjbhYbhYbmgbmhbhYbmibmibmibmibmibmibmjbmkbmlbmmbmnbmobmpbmqbmrrJHbmsbiebmucWYbjCbmvbzhbmxbmybmzbmAbmBaZybpIbpJaZvaadaadaAxcGFaCSbpKaFzcGGaAxaadaadaZDbmHbmIaZDaZDaZDaZDbmJaZDbmKaIPbmLbfvbmMbmNbmObitbiubmPbhcblxbmQbmRbmSbmTbmUbmVbmWbmXbixberbmYbmZbnabpzbkabhibhibkbbkacHvbncbfBbndblJbjWbnebkgbnfbkibngbkkbnhbnibnjbnkbnlbnmbnnbfLbnoblSbnpbfSbnqbnrbnsblnbtIblpbfSbkzbnwbANblYblYblYatJaaaaaaaaeaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJbdrbnBbkCbnCbmbbnDbnEbdraaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaabnFbnGbnHbnIbnJbnKbmibmibmibnLbmibmibnMbnNbnOblbbnQbnRblbbnTkjTeDbbiebqIbeVbAObnWbbfblhbnXbnYbnYbnYbnYbnZbrdbobaadaaaaAxaEnaHbaEobqgaEqaAxaaaaadaZDbntbnubnvbojbokaZDbreaZDbjiaIPbombfvbonboobopboqborbfvbosblxbmQbotboubhcbovbotbmWbowboxberboybozboAboBboCboCboDboEboHcIoboHboIboJboKbjWboLboMboNboOboPboQboRboSboTboUboVboWaRhbfLboXboYboZbfSbpabpbbpcblqbgRblrbfSbpebpfcEfblYcEgblYatJatJaaajXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJbdrbpjbkCbkCbkCbdrbdrbdraaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaabnFbpkbplbpmbpnbpnbpnbpnbpnbpnbpnbpnbqJbhYbppbpqbprbpsbptbpubeVviwbiebpybeVbjCbpAbjDblhblhbobbpCbpDbpEbpFbpGbobaaaaaaaAxaFybrccGBcGLaFCaAxaaaaaaaZDboibpdbpxaZDbpOaZDcGHaZDbjiaIPbpQbpRbpSboobpTbitbpUbfvbjEamDbpWbpXbpYbhcbpZbpXaDybqbbjEberberbqcbqPbqdbqebqfbqfbqfbqfbqhbqibqibqibqjbqkbfIbfIbfIbfIbfIbqlbqmbkmbqnboWboWbvAbqpbqlbATbAUbBQbqtblUblVblWblXbogbohbfScEqbfScEpbphbphbphbphbphbphbpiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJbdrbpjbkCbkCbkCbdrbdrbdraaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaabnFbpkbplbpmbpnbpnbpnbpnbpnbpnbpnbpnbqJbhYbppbpqbprbpsbptbpubeVviwbiebpybeVbjCbpAbjDblhblhbobbpCbpDbpEbcxbpGbobaaaaaaaAxaFybrccGBcGLaFCaAxaaaaaaaZDboibpdbpxaZDbpOaZDcGHaZDbjiaIPbpQbpRbpSboobpTbitbpUbfvbjEamDbpWbpXbpYbhcbpZbpXaDybqbbjEberberbqcbqPbqdbqebqfbqfbqfbqfbqhbqibqibqibqjbqkbfIbfIbfIbfIbfIbqlbqmbkmbqnboWboWbvAbqpbqlbATbAUbBQbqtblUblVblWblXbogbohbfScEqbfScEpbphbphbphbphbphbphbpiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJaaaatJaaaaaaatJaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaabqFbnFbnFbqGbplbkVbmibqHbqHbqHbqHbmibmibmibsmbhYbihbmwbqLbqMbqNbeVbeVbqQaZJbeVbeVbBVbqSbqTbqUbqVbqWbqXbpLbpMbpNbrbbobaadaaaaAxaAxcGUaHccGVaAxaAxaaaaadaZDbqxbqybDUaZDbriaZDbolaZDbjiaIPbpQbfvbrjboobrkbrlbrmbfvbrnblxbrobpXbjEbrpbjEbpXbrqbrrbrsbrtbrubrvbrwbrxbrybrzbrAbrBbrCbrDbrEbrFbrGblJbrHbrIbrJbrKbrLbrMbrNbrObrPbrQbrRbrSboWbrTbrUbrVbrWaSxbqtbqubqvbqwbqYbgRbqZbsccEscEtbqCbqDbqDbqDbqDbqDbqEbhIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaatJaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaaaaabsfbsgbsfbshbsibsjbskbslbmibmibmibmibzKbmibvlbhYbqKbvmcEOcEPcEQcERbsqbsnbtHbDubxPbzAbpAbjDasFbsxbsybszbrabrfbpNbsCbobaaaaaaaTBbmCcIpaIPcIqcGJaTBaaaaaabsHbsIbsJbsHbsHbsHbsHbsKbsHbsLaLzbsMbfvbfvbsNbsObsPbfvbfvbhcbsQbsRbsSbsTbsSbsUbsSbsWbqbbhcbhcbhcbqbbhcbhbbrybrzbsXbsYbsZbtabtbbtcbrGbtdbtebtfbtgbtgbtgbthbtibtjbtkbtlbtmbtnbtobtpbtqbtrblSbtsbqtbqtbttbtubtvbttbqtbScbScbScbScbScbScbScbScbScbtBbhIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaatJatJatJjXDatJjXDjXDatJjXDaaaaaaaaaaaaaaaaaaaaabtCbtDbtEbtFbmibkVbmibqHbqHbtGbqHbmibmibvgbhYbhYbxRbxYbzqbzwbzxbzxbpwbzybtLbDwbDxbzAbpAbjDasJbtMbtNbtObrgbrgbrhbtRbobaadaadaTBcGKcGWcIrcIscGNaTBaadaadbsHbuabubbucbudbuebufbugbsHbjoaIPbMmbujbukbulbumbunbuobupbuqburbusbutbutbutbutbutbuubuvbutbutbutbuwblCbuxbuybrzbuzbuAbuBbuBbuCbuDbrGblJbrHbuEbuFbuGbuHbuIbuJbuKbkmbuLbkmbkmbkmbuMbqlbuNbuObuPbuQbuRbuSbuTbuUbuVbuWbuXbuYbuZbvabvbbvabtwbvcbvdbvebhIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaatJaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaaaaabqFbnFbnFbvfbmibkVbmibmibmibmibmibmibmibwEbwWbxTbxRbvibvjbvkbvnbvnbvnbvobAwbDwbDxbzAbpAbjDctHbsxbobbvrbvsbvtbvubvvbobaaaaaaaTBcGMcGWcItcIucGOaTBaaaaaabsHbvybvzbALbvBbvCbvCbvDbvEbvFbvGbWxbvHbvIbvJbvKbvLbvMbvNbvMbvMbvObvPbvQbvRbvRbvRbvSbvTbhcbhcbvUbvVbvVbvWbrzbrzbrzbvXbvYbvZbtbbuDbrGbwabrHbfLbqlbqlbqlbqlbqlbqlbqlbqlbqlbwbbwcbwbbqlbwdbwebwfbwgbwgbwgbwhbwibwjbwkbwlbwmbwnbwqbwpbwqbwrbwsbwtbwubwvblYbwwbwwblYaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaatJaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaabwxbtCbtDbtEbpkbwybmjbwzbnKbmibwybmibmibmibwEbxUbxVbxRbAybsobwCbpwbpwbpwbAzbpwbDwbDxbzAbpAbjDctIbwGbobbwHbwIbwJbwKbpGbobaaaaaaaTBcGPcIvaMZbiLcGQaTBaaaaaabsHbwPbwQbwRbwSbwTbwUbwVbsHcHwaIPbjDbjEbjEbwXbwYbsWbwZbxabxbbxcbxcbxbbxabxbbxabxbbxabxbbxabfzbfzbvVbxdbuBbxebxfbrzbvXbxgbxhbxibxjbrGbxkbxlbxmbxnbxobwgbwgbxpbwgbwgbxqbxrbxsbxtbxubwgbxvbxwbxxbxybxybxybxzbxzbxzbxzbXybxAbzgbzjbxDbzjbxEbtxbScbxFbxGbxHbxIbxJblYaadaaaaaaaaaaaaaaaaaaaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaatJaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaaaaabxKbxLbxKbxMbxNbxMbxMbxMbxMbxMbxMbxObmibwEbxUbzrbxRbxSbzzbAxbBPbBUbBUbBUbBUbXzbxPbzAbpAaKebxZbsxbobbyabybbycbydbyebobaTBaTBaTBaTBcGXcGRcGYaTBaTBaTBaTBbsHbyjbykbylbymbwTbwUbwVbsHbynaIPbjDbyobypbyqbwYbyrbysbxabyubyubyvbywbyxbjcbyzbyAbyzbyBbxabhcbyCbvVbyDbuBbyEbyFbyGbyHbyIbyJbyJbyKbyLbyMbyNbyObyPbyQbyRbySbyRbyRbyTbyRbyRbyUbyVbyRbyRbyWbyXbyYbxybrXbrYbrZbzcbzdbzebXybzfbzgbzjbzibzjbxEbzkbScbxFbhIbzlbzmbznblYaaaaaaaaaaaaaaaaaaaaaaadbzoaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJatJjXDatJjXDjXDatJjXDaaaaaaaaaaaaaaaaaaaaabqFbnFbnFbnFbhYbzpbzpbzpbzpbzpbtVbmibmibwEbxUbDebhYbzsbztbzubtWbxWbxXbxXbxXbxWbxWbLdcGsaRmaTBaTBbobbobbobbobbobbzBbobcFXcFYcFZaTBcGZcGScHaaTBcGacGbcGcbsHbsHbsHbsHbsHbsHbsHbsHbsHcGtaTScGubxabxabzHbzIbxabxabxabzJbyubDFbyubzLbzMbzNbzObzPbzQbzLbhcbyCbvVbzRbzSbzTbzUbzVbzWbzXbzUbzUbzYbzZbAabAbbAcbAcbAcbAcbAdbAcbAcbAcbAebAebAfbAgbAhbAhbtrbAibtsbxybHIbsbbsAbAmbAnbAobScbtybtzbAqbtAbAqbApbArbScbxFbhIbAsbzmbAtblYaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbzpcIdbqObMlbzpbtXbAvbmibIjbQwbQwwzybAAbABbACbADbxXbvxbwLbwMbwNbxWcGwbpAaIPaLPbAIbAJbAKaLPbiFbEWbAMbKObXBbXBbXBcHbbAPbAQcGTcHcaLPaLPaLPaLPbAKaLPbiFaNKaLPaLPbAJaLPbAVaIPbAWbxabAXbAYbAZbBabBbbxabBcbyubBdbyubzLbzMbzMbBebBfbBgbzLbhcbBhbvVbuBbBibBjbBkbBlbBmbBnbBobBpbrGbrGbBqbBrbAcbBsbBtbBubBvbBwbBxbAcbwObygbyhbzvbzCbAhbtrbAibBDbBEbsBbsVbtPbBIbBJbBKbScbBLbTkbTlbTmbTlbTkbTnbScbxFbhIbBMbBNbBOblYaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoBaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJatJjXDatJjXDjXDatJjXDaaaaaaaaaaaaaaaaaaaaabqFbnFbnFbnFbhYbzpbzpbzpbzpbzpbtVbmibmibwEbxUbDebhYbzsbztbzubtWbxWbxXbxXbxXbxWbxWbLdcGsaRmaTBaTBbobbobbobbobbobbzBbobcFXcFYcFZaTBcGZcGScHaaTBbjmbiUbsFbsHbsHbsHbsHbsHbsHbsHbsHbsHcGtaTScGubxabxabzHbzIbxabxabxabzJbyubDFbyubzLbzMbzNbzObzPbzQbzLbhcbyCbvVbzRbzSbzTbzUbzVbzWbzXbzUbzUbzYbzZbAabAbbAcbAcbAcbAcbAdbAcbAcbAcbAebAebAfbAgbAhbAhbtrbAibtsbxybHIbsbbsAbAmbAnbAobScbtybtzbAqbtAbAqbApbArbScbxFbhIbAsbzmbAtblYaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbzpcIdbqObMlbzpbtXbAvbmibIjbQwbQwwzybAAbABbACbADbxXbvxbwLbwMbwNbxWcGwbpAaIPaLPbAIbAJbAKaLPbiFbEWbAMbKObXBbXBbXBcHbbAPbAQcGTcHcaIPaLPaIPaLPbAKaLPbiFaNKaLPaLPbAJaLPbAVaIPbAWbxabAXbAYbAZbBabBbbxabBcbyubBdbyubzLbzMbzMbBebBfbBgbzLbhcbBhbvVbuBbBibBjbBkbBlbBmbBnbBobBpbrGbrGbBqbBrbAcbBsbBtbBubBvbBwbBxbAcbwObygbyhbzvbzCbAhbtrbAibBDbBEbsBbsVbtPbBIbBJbBKbScbBLbTkbTlbTmbTlbTkbTnbScbxFbhIbBMbBNbBOblYaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoBaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbzpfpLbMklOVbzpbzpbzpbBRbDcbDcbzpbzpbBWbBXbBYbBZbCabzDbAubAEbAFbxWbjibCeaIPaIPaIPaIPaIPaIPbCfaIPbpAaIPaIPaIPaIPaIPbCgbChbCiaIPaIPaIPaIPaIPaIPaIPaLzaIPaIPaIPaIPaNhbAVbCjbjDbxabCkbClbCmbCnbCobxabCpbyubyvbCqbxabCrbCsbCtbCubCvbxabhcbyCbvVbvVbvVbvVbvVbrGbrGbrGbrGbrGbrGbCwbCxbCybAcbCzbCAbCBbCCbCDbCEbAcbAGbAHbBybBzbBAbAhbtrbCKbCLbCMbtQbyybyybyZbzabzbbScbUtbUubCSbCTbCSbUvbUtbScbxFbhIbCUbzmbCVblYaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzpbzpdfsbzpbzpbCWbCXbIYbCZbDabDbbDcuifbGKbDfbDdbDgbBBbBCbCbbCcbxWbQCbDmbDnaKlbDnbDobDnbDnbDpbDnbDqbfQbDrbDsbfQbDtcoqcovcowcqibDybDzbDAbDAbDBbDAbDCbDDbDAbDEbRgbDGbDHbfQbDIbxabDJbDKbDLbxbbxbbxabxbbDMbxbbxabxabxabxabxabxabxabxabhcbhcbDNbDObDPbwZbDQbDRbAjbAkbAlbBFbDRbDWbDXbDYbAcbBsbDZbEabEbbEcbEdbAcbCdbCFbCGbCHbCIbAhbtrbEjbEkbxzbBGbBHbCNbCObCPbCQbScbUwbVxbVybErbVybVxbVzbScbEsbEtbEubzmbznblYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDatJjXDjXDatJjXDatJcrbjXDjXDjXDcrbatJatJatJatJatJatJbDctsdbIYpOzdwndALbWhpNVhmyrdArQznTcbEvbEwqhLaTRbxWbCJbDhbDibDjbxWbExbEyaITaITaITaITbEzbEzbEzbEzbEzbEzbEzbEzbEzbEzbEAaHpbEBbECbECbECbECbECbEDbECbECbECbECbEEbEFbEEaIUaKfbEGbxabEHbEIbEJbEKbELbxabEMbyubENbEObEPbEQbERbESbETbEUbEOblDbhcbhcbhcbhcbhcbsWbEVbCRbDSbCRbDTbDRbEZbCxbFabFabFabFabFabFabFabFabFabFbbFbbFbbFbbFbbFbbFcbFdbFebxzbxzbxzbxzbxzbxzbxzbScbScbScbScbScbScbScbScbScbxFbhIbFfbFgblYblYaadaadaadaaeaaeaaeaaeaaeaaeaaeaaeaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDckoehZpfNzbFhsoPjSqdEdfMfwaouQIwmybFibFjbFkbFlbFpbFpbFpbFpbFpbFqbFrbEyaaaaaaaadaaabEzbFsbFtbFubFvbMybFxbFybNNbEzbFAbFBbFCbECbFDbFEbFFbFGbFHbFIbFJbFKbFLbFMbFNbEEbEEbEEbEEbxabFObFPbFQbFRbFSbFTbFUbFVbFWbFXbFVbFVbFVbFYbyubFZbGabGbbGcbGcbGdbGebGfbGgbEVbIZbDVbElbEmbDRbEZbCxbFabGlbGlbGlbGmbGlbGlbGlbFabGnbGnbGobGnbGnbFbbGpbGqbGrbGsbGtbGubGvbGwbGxbGybGzbGAbGBbGCbGDbGEbGFbGGbGGbGHbGIbGtbGtblYaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDcjUKsaookwbzpbzpbDcbDcbDcbDcbzpbzpbGJbGKbGLbGMcFsbtYbGPlQqbGPcGrbGRbGSaadbGTbGUbGVbGWbGXbFzbGYbFzbGZbFzbFzbFzbEzbHabHbbHcbECbHdbHebHfbHgbHhbHibHjbECbECbHkbHlbHmbHnbHobHpbHqbHrbHsbHtbHubHvbHwbHxbHybHzbHAbHBbHCbyubyubyubHDbjEbjEbjEbjEbjEbHEbHFbwYbEVbEnbEobCRbEpbDRbEZbCxbFabGlbGlbGlbGlbGlbGlbGlbFabHJbHKbHLbHMbHNbHObHPbHQbGrbHRbHSbHTbHTbHTbHTbHTbHTbHUbHVbHWbGDblYbHXbHYbHZbHZbIabIbbIcbGtatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbIdbIebIdaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaggeggeggeggebzsiMGfyTfyTfyTfyTukKbIgwNCbJEbIibMocGxbzsbEybIkbEybEybIlbImaaabInbIobIpbIqbFzbFzbIrbFzbIsbItbIubFzbEzbHabHbaTWbECbIvbIwbIxbIybIzbIAbIBbECbCwbICbIDbIEcFgbIFbIGbHAbIHbIIbIJbyubIKbxabILbIMbINbxabIObyubyubyubyubIPbjEbIQbIRbISbITbIUbIVbIWbIXbEqbCRbXAbEXbJbbJcbJdbFabGlbGlbJebGlbGlbGlbGlbFabJfbJgbJgbJhbJibJjbJkbJlbGrbJmbJnbHTbHTbHTbJobJpbJqbJqbJqbJqbJrbJsbJtbJubJvbJwbJxbJybJzbHSatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbIebIdbJAbIdbIeaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDaaaaaaaaaaaajXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboebzpbzpdfsbzpbzpbCWbCXbIYbCZbDabDbbDcuifbGKbDfbDdbDgbBBbBCbCbbCcbxWbQCbDmbDnaKlbDnbDobDnbDnbDpbDnbDqbfQbDrbDsbfQbDtcoqcovcowcqibDybDzbDAbDAbDBbDAbDCbDDbDAbDEbRgbDGbDHbfQbDIbxabDJbDKbDLbxbbxbbxabxbbDMbxbbxabxabxabxabxabxabxabxabhcbhcbDNbDObDPbwZbDQbDRbAjbAkbAlbBFbDRbDWbDXbDYbAcbBsbDZbEabEbbEcbEdbAcbCdbCFbCGbCHbCIbAhbtrbEjbEkbxzbBGbBHbCNbCObCPbCQbScbUwbVxbVybErbVybVxbVzbScbEsbEtbEubzmbznblYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDatJjXDjXDatJjXDatJcrbjXDjXDjXDcrbatJatJatJatJatJboGtsdbpFbIYpOzdwndALbWhpNVhmyrdArQznTcbEvbEwqhLaTRbxWbCJbDhbDibDjbxWbExbEyaITaITaITaITbEzbEzbEzbEzbEzbEzbEzbEzbEzbEzbEAaHpbEBbECbECbECbECbECbEDbECbECbECbECbEEbEFbEEaIUaKfbEGbxabEHbEIbEJbEKbELbxabEMbyubENbEObEPbEQbERbESbETbEUbEOblDbhcbhcbhcbhcbhcbsWbEVbCRbDSbCRbDTbDRbEZbCxbFabFabFabFabFabFabFabFabFabFbbFbbFbbFbbFbbFbbFcbFdbFebxzbxzbxzbxzbxzbxzbxzbScbScbScbScbScbScbScbScbScbxFbhIbFfbFgblYblYaadaadaadaaeaaeaaeaaeaaeaaeaaeaaeaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpVkoebIYhZpfNzbFhsoPjSqdEdfMfwaouQIwmybFibFjbFkbFlbFpbFpbFpbFpbFpbFqbFrbEyaaaaaaaadaaabEzbFsbFtbFubFvbMybFxbFybNNbEzbFAbFBbFCbECbFDbFEbFFbFGbFHbFIbFJbFKbFLbFMbFNbEEbEEbEEbEEbxabFObFPbFQbFRbFSbFTbFUbFVbFWbFXbFVbFVbFVbFYbyubFZbGabGbbGcbGcbGdbGebGfbGgbEVbIZbDVbElbEmbDRbEZbCxbFabGlbGlbGlbGmbGlbGlbGlbFabGnbGnbGobGnbGnbFbbGpbGqbGrbGsbGtbGubGvbGwbGxbGybGzbGAbGBbGCbGDbGEbGFbGGbGGbGHbGIbGtbGtblYaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpVjUKbqasaookwbzpbzpbDcbDcbDcbDcbzpbzpbGJbGKbGLbGMcFsbtYbGPlQqbGPcGrbGRbGSaadbGTbGUbGVbGWbGXbFzbGYbFzbGZbFzbFzbFzbEzbHabHbbHcbECbHdbHebHfbHgbHhbHibHjbECbECbHkbHlbHmbHnbHobHpbHqbHrbHsbHtbHubHvbHwbHxbHybHzbHAbHBbHCbyubyubyubHDbjEbjEbjEbjEbjEbHEbHFbwYbEVbEnbEobCRbEpbDRbEZbCxbFabGlbGlbGlbGlbGlbGlbGlbFabHJbHKbHLbHMbHNbHObHPbHQbGrbHRbHSbHTbHTbHTbHTbHTbHTbHUbHVbHWbGDblYbHXbHYbHZbHZbIabIbbIcbGtatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbIdbIebIdaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpVggeggeggeggebzsiMGfyTfyTfyTfyTukKbIgwNCbJEbIibMocGxbzsbEybIkbEybEybIlbImaaabInbIobIpbIqbFzbFzbIrbFzbIsbItbIubFzbEzbHabHbaTWbECbIvbIwbIxbIybIzbIAbIBbECbCwbICbIDbIEcFgbIFbIGbHAbIHbIIbIJbyubIKbxabILbIMbINbxabIObyubyubyubyubIPbjEbIQbIRbISbITbIUbIVbIWbIXbEqbCRbXAbEXbJbbJcbJdbFabGlbGlbJebGlbGlbGlbGlbFabJfbJgbJgbJhbJibJjbJkbJlbGrbJmbJnbHTbHTbHTbJobJpbJqbJqbJqbJqbJrbJsbJtbJubJvbJwbJxbJybJzbHSatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbIebIdbJAbIdbIeaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIfqpXiZtpqvbzsdTSbIhbIhbJBbJCjDQbJDbIhbJElCObJFgDEbzsbJGbJHbJIbEybIlbImaadbInbJJbJKbJLbJMbJNbJMbJMbJObJPbJQbJQbJRbJSbJTbJUbECbECbECbECbECbJVbJWbECbECbJXbJYbJZbKabJZbKbbKcbxabKdbKebKfbKgbKhbxabKibKjbKkbxabKlbKmbKnbKobKpbKqbjEbgzbKrbKsbKtbKsbKubKvbKwbEYbGhbGibGjbDRbEZbCxbFabFabKBbGlbGlbKCbKBbFabFabKDbKEbKFbKFbKGbFbbKHbKIbGrbKJbHSbHTbHTbKKbKLbKMbHTbKNbZKbKPbKQbKRbKSbKTbKUbKVbKWbKXbKYbHSatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbKZbIebLabLbbLcbIebKZaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaatJaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqxqkDGpIXbIhwTXuBvpIXbIhbLebIhbIhbIhbIhbIhbLglCOlCOjIcbzsbLhbJIbLibEybIlbImaaabInbLjbLkbLlbFzbFzbLmbFzbLnbLobLpbLqbEzbLrbLsbLtbLubLvbLvbLvbLvbLwbLxbLvbLvbLybLzbLAbLBbLCbLDbLEbFTbFTbFTbFTbFTbFTbFTbFTbFTbFTbLFbLFbLFbLFbLFbLFbLGbLHbjEbjEbjEbjEbLIbLJblxbDRbDRbDRbDRbDRbDRbEZbCxbFabLKbLLbLMbLNbLObLPbLQbLRbKDbKEcbXbKFbKGbFbbLSbLTbGrbLUbGtbLVbLWbLXbLYbLZbMabHTbHTbMbbGDbMcbMdbMebGtbMfbMgbMgbGtbGtaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadatJaadaadbIebIebMhbMibMibMibMjbIebIeaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDatJjXDjXDatJjXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIfwARowksfrtDjrbKhhuhhuhhuwwqcrUbMndJcbMobMpbMqbMrbzsbEybEybEybEybIlbMsaadbMtbGUbMubGWbMvbFzbMwbFzbFzbFzbMxcFnbMzbMAbMBbMCbMDbMEbMEbMEbMEbMFbMEbMGbMHbMIbMJbMKbMLbMMbMNbMObMPbMQbMPbMPbMPbMPbMPbMPbMPbMPbMPbMPbMPbMPbMPbXebMSbLHbMTbMUbMVbMWbIUbIVbMXbMYbMZbMZbNabNbbMJbMKbNcbFabNdbNebNfbNgbNhbNibNjbLRbLRbLRbLRbLRbLRbNkbNlbNmbNnbNobGtbGDbGDbGDbGDbNpbGDbNqbHTbHTbGDbNrbNsbNtbGtbNubNvbNwbNxbNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNzbNAbNzbMibNBbMibNCbNDbIdaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -7385,7 +7391,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaoBaoBaaeaadaadctdaoBbEybEybEybEybEybEybEybEybEybEybJIbJIbJIbJIbJIbWybWzbWAbWAbWBbWCbUNbWFbWFbWFbWFbWFbWFbWFbWFbWFbWFbWGbWHbWHbWIbEybURbWJcdDbWKbWLbWMbWNbQibQibWObWPbQibQibWQbWRbWSbPdbWTbWUbWVbWWbPdbWXbWYbWZbSSaadbSTbXabXbbXcbQkaadbRBbXdbMPbMPbMPbXebPebXfbQtbXgbXhbXibXjbXkbXkbXkbXlbPebCxbFabLRbLRbLRbLRbNkbOnbVrbXobXmbLRbLRbLRbLRbLRbXpbXqbThbThbXrbXsbXsbXsbXsbXthOjbScbScbScbScbScbScbVEbNrbSebNraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaactectfctfctfctfctTcuDcuDcuGbXEbXFbXGbXHbXIbXJbXKbEybXLbEybEybEybEybEybXMbEybEybMsbNGbXNbXNbXNbXNbXNbXNbXNbXNbXObXObXObXObXObNEbXPbEybURbWJcdDqyMbXQbXRbXSbXTbTSbXUbXVoQAbTSbXWbXXbXYbXZbYabYbbYccaqbPdbWXbYebYfbUabUbbRxbYgbWcbWcbQkaadbRBbYhbEEbEEbEEbCxbPebYibQtbQtbYjbYkbYlbQpbXkbQpbYmbPebCxbFabUibUjbUjbYnbUlbOnbYobUnbYpbYqbGlbGlbGlbLRbYrbYsbYtbThbYubThbThbThbYvbYwbYxbYybYzbYAbYBbYCdhWbVEbNrbSebNraadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaoBaadaaeaoBaadaoBaoBbNFbNFbNFbJIbYDbYEbYFbYGbYHbEybJIbEybYIbYJbYIbYKbYLbYIbYMbMsbNGbXNbYNbYObYPbYQbYRbYSbYNbYTbYUbYVbYWbXObXObXPbEybYXbWJcdDbYYbYZbZabZabZbbZcbZcbZcbZcbZcbZdbZebOPbOPbOPbZfbPdbWVbZgbZhbZibZjbZkbZlbQkbQkbQkbQkbQkaadbRBbYhbZmwAobCwbCxbQlbZnbZobZpbZqbZrbZsbZtbXkbZtbZubPebCxbFavIdbGlbGlbZwbVqbOnbVrbOnbVsbZxbGlbZviiObLRbZybZzbZAbZBbZCbZDbZEbZEbZFbZGbZHbZIhbpbZJcptbZLdhWbVEbNrbSebNrbNrbNraaeaaeaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaoBaadaaeaaeaaeaaeaaebZMbJIbZNbJIbZObZPbYEbZQbJIbZRbJIbEybYIbZSbYIbZTbZUbYIbZVbMsbNGbXNbYNbZWbZXbZYbZZcaabYNcabcaccadcaecafbXObXPbEybURbWJcdDbNScahbNScaicajbZccakcalcambZccanbVacaobOPcapcaqcarcascatcaubVZcavbRvcawbRxcaxcaycazbQkaadbEEbYhbEEcaAcaBbCxbPecaCcaDcaEcaFcaGcaDcaHbXkcaHrenbRJbCxbFabGlbGlbGlcaIcaJbUnbWmbOnbWncaKbUjbUjbWpbFacaLcaMcaNcaOcaLcaLcaPcaQcaRcaScaTcaUcaVcaWdhWcaYdhWbVEbNrcaZbNrcbabNraadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaoBaadaaeaaeaaeaaeaaebZMbJIbZNbJIbZObZPbYEbZQbJIbZRbJIbEybYIbZSbYIbZTbZUbYIbZVbMsbNGbXNbYNbZWbZXbZYbZZcaabYNcabcaccadcaecafbXObXPbEybURbWJcdDbNScahbNScaicajbZccakcalcambZccanbVacaobOPcapcaqcarcascatcaubVZcavbRvcawbRxcaxcaycazbQkaadbEEbYhbEEcaAcaBbCxbPecaCcaDcaEcaFcaGcaDcaHbXkcaHrenbRJbCxbFabGlbGlbGlcaIcaJbUnbWmbOnbWncaKbUjbUjbWpbFacaLcaMcaNcaOcaLcaLcaPcaQcaRcaScaTcaUcaVcaWdhWcaYdhWbVEbNrcaZbNrbsEbNraadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaoBaaaaoBaoBaoBaadaadbNFbNFbNFcbccbdcbecbfcbgorUbEybEycbhbYIcbicbjbYIcbkcblbYIbMsbNGbXNcbmcbncbobZYcbpcbmcbmcabcbqcbrcbscbtbXObXPbEybURbWJaYncbudlKcbwcbwcbxcbycbzcbAcbBbZcbPdbVacbCcbDcapcbEcarcascbFcbGbVZcbHcbIcbJcbKcbLcbMcbNbQkaadbEEbYhbEEbJZbJZbCxbPebPfcbOcbPbPfcbQbPfbPfbPfbPfbPfbPebCxbFabLRbLRbLRbLRbXmcbRbVrcbSbXmbLRbLRbLRbLRbFabVwcbTbVwcbUbVwcaLcaPcaQcbVcdgdhWccacbZccadhWccbdhWbVEbNrcccccdbQSbPIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaadaadaadbNFcceccfccfccgbYHbNEbEycchccibYIccjcckcclccjccjccmbImbNGbXNcbmcbmccnccoccpccqccrccscctccuccvccwbXObXPbEyccxccycczcbuccAccBccCccDccEccFccGccHbZcccIccJcaobOPcapccKcarcbEccLbWXccMccNbUaccOccPccQcaycaybQkaadbRBbYhccRbEEccSbCxccTbWebWeccUbPfccVccWccXbEEccYccZbEZbCxbFabUibUjbUjcdabUlbOnbYobUncdbcdcbGlbGlbGlbFacddbVwbVwbVwbVwcaLcdecdecdfcdgdhWcftcftcftcftcftdhWbVEbNrcdjbQTcdkbPIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQaaQaaQaaQaaQaaQaaQaaQaaQaaYaaQaaQaaQaaQaaQaaaaaabEybEybEybEybEybEycdlbEybEybEybEycdmcdnbYIccjcbjcdoccjccjccmbImbNGbXNcdpcdqcdrcdsbYNccnapccduaWYcdwcdxcdybXOcdzcdAcdBcdCcdDcbucdEcdFcpucdHcdIcdJcdKcdLcdMbRpcdNbOPbOPbOPcdObPdcdPcdQbWXbWYbPdbSScdRcdSbQkbQkbQkbQkaadbRBcdTcdUbEEcdVcdWcdXbMPcdYcdZbEEceacebcecbEEcedbOibOkceebFavIdbZvbGlcefbVqbOnbVrbOnbVscegbGlbGliiObFacehbVwceicejcekcelcemcenceocdgdhWcftceqwHAcftcftdhWcesbNrcetceubSebPIaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 762dd7e7..a0090bde 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -110,6 +110,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/list/grind_results //A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only var/list/juice_results //A reagent list containing blah blah... but when JUICED in a grinder! + //Hyper economy + var/price = 0 + /obj/item/Initialize() diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 5c24cf79..e8b30655 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -501,6 +501,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM w_class = WEIGHT_CLASS_TINY flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BELT + price = 1 var/lit = 0 var/fancy = TRUE var/overlay_state diff --git a/code/game/objects/items/mesmetron.dm b/code/game/objects/items/mesmetron.dm index 7983125f..05eb013f 100644 --- a/code/game/objects/items/mesmetron.dm +++ b/code/game/objects/items/mesmetron.dm @@ -9,7 +9,7 @@ throw_speed = 3 var/mob/living/carbon/subject = null var/closed = FALSE - + price = 10 //Hypnotize someone @@ -36,7 +36,7 @@ H.drowsyness = max(H.drowsyness, 40) subject = H return - + //No H.visible_message("[H]'s attention breaks, despite your attempts to hypnotize them! They clearly don't want this", "Your concentration breaks as you realise you have no interest in following [user]'s words!") @@ -58,7 +58,7 @@ if(get_dist(user, subject) > 1) to_chat(user, "You must stand in whisper range of [subject].") return - + text = input("What would you like to suggest?", "Hypnotic suggestion", null, null) text = sanitize(text) if(!text) @@ -88,4 +88,4 @@ item_state = "pocketwatch" desc = "An elaborate pocketwatch, with a captivating gold etching and an enchanting face..." closed = FALSE - + diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 1159bd44..da34e458 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -26,6 +26,7 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ grind_results = list(/datum/reagent/silicon = 20) point_value = 1 tableVariant = /obj/structure/table/glass + shard_type = /obj/item/shard /obj/item/stack/sheet/glass/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins to slice [user.p_their()] neck with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -93,6 +94,7 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \ merge_type = /obj/item/stack/sheet/plasmaglass grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10) tableVariant = /obj/structure/table/plasmaglass + shard_type = /obj/item/shard/plasma /obj/item/stack/sheet/plasmaglass/fifty amount = 50 @@ -120,7 +122,9 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \ else return ..() - +/obj/item/stack/sheet/plasmaglass/on_solar_construction(obj/machinery/power/solar/S) + S.obj_integrity *= 1.2 + S.efficiency *= 1.2 /* * Reinforced glass sheets @@ -145,11 +149,15 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \ merge_type = /obj/item/stack/sheet/rglass grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/iron = 10) point_value = 4 + shard_type = /obj/item/shard /obj/item/stack/sheet/rglass/attackby(obj/item/W, mob/user, params) add_fingerprint(user) ..() +/obj/item/stack/sheet/rglass/on_solar_construction(obj/machinery/power/solar/S) + S.obj_integrity *= 2 + /obj/item/stack/sheet/rglass/cyborg materials = list() var/datum/robot_energy_storage/glasource @@ -188,6 +196,11 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \ merge_type = /obj/item/stack/sheet/plasmarglass grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10, /datum/reagent/iron = 10) point_value = 23 + shard_type = /obj/item/shard/plasma + +/obj/item/stack/sheet/plasmarglass/on_solar_construction(obj/machinery/power/solar/S) + S.obj_integrity *= 2.2 + S.efficiency *= 1.2 /obj/item/stack/sheet/plasmarglass/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.prglass_recipes @@ -207,6 +220,11 @@ GLOBAL_LIST_INIT(titaniumglass_recipes, list( armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/titaniumglass + shard_type = /obj/item/shard + +/obj/item/stack/sheet/titaniumglass/on_solar_construction(obj/machinery/power/solar/S) + S.obj_integrity *= 2.5 + S.efficiency *= 1.5 /obj/item/stack/sheet/titaniumglass/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.titaniumglass_recipes @@ -226,11 +244,16 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/plastitaniumglass + shard_type = /obj/item/shard /obj/item/stack/sheet/plastitaniumglass/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.plastitaniumglass_recipes return ..() +/obj/item/stack/sheet/titaniumglass/on_solar_construction(obj/machinery/power/solar/S) + S.obj_integrity *= 2 + S.efficiency *= 2 + /obj/item/shard name = "shard" desc = "A nasty looking shard of glass." diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index af0dca02..b7ab7606 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -15,4 +15,15 @@ var/point_value = 0 //turn-in value for the gulag stacker - loosely relative to its rarity var/is_fabric = FALSE //is this a valid material for the loom? var/loom_result //result from pulling on the loom - var/pull_effort = 0 //amount of delay when pulling on the loom \ No newline at end of file + var/pull_effort = 0 //amount of delay when pulling on the loom + var/shard_type // the shard debris typepath left over by solar panels and windows etc. + +/** + * Called on the glass sheet upon solar construction (duh): + * Different glass sheets can modify different stas/vars, such as obj_integrity or efficiency + * and possibly extra effects if you wish to code them. + * Keep in mind the solars' max_integrity is set equal to the obj_integrity later, + * so you won't have to do so here. + */ +/obj/item/stack/sheet/proc/on_solar_construction(/obj/machinery/power/solar/S) + return diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 5f6c0c50..63dbff63 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -237,6 +237,7 @@ desc = "Holds a variety of gear for \"alternative\" peacekeeping." icon_state = "slutbelt" item_state = "slut" + price = 5 obj/item/storage/belt/slut/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 4a7b16c4..d3d99257 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -415,6 +415,7 @@ desc = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes." icon_state = "donkpocketbox" illustration=null + price = 10 /obj/item/storage/box/donkpockets/ComponentInitialize() . = ..() @@ -687,6 +688,7 @@ item_state = "zippo" w_class = WEIGHT_CLASS_TINY slot_flags = ITEM_SLOT_BELT + price = 2 /obj/item/storage/box/matches/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index c59cf773..8754a2cc 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -136,6 +136,7 @@ slot_flags = ITEM_SLOT_BELT icon_type = "cigarette" spawn_type = /obj/item/clothing/mask/cigarette/space_cigarette + price = 5 /obj/item/storage/fancy/cigarettes/ComponentInitialize() . = ..() @@ -230,6 +231,7 @@ desc = "Smoked by the truly robust." icon_state = "robustg" spawn_type = /obj/item/clothing/mask/cigarette/robustgold + price = 6 /obj/item/storage/fancy/cigarettes/cigpack_carp name = "\improper Carp Classic packet" @@ -281,6 +283,7 @@ icon_state = "cig_paper_pack" icon_type = "rolling paper" spawn_type = /obj/item/rollingpaper + price = 2 /obj/item/storage/fancy/rollingpapers/ComponentInitialize() . = ..() @@ -305,6 +308,7 @@ w_class = WEIGHT_CLASS_NORMAL icon_type = "premium cigar" spawn_type = /obj/item/clothing/mask/cigarette/cigar + price = 8 /obj/item/storage/fancy/cigarettes/cigars/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 5321b5ef..dd2d613b 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -324,7 +324,7 @@ /obj/item/storage/pill_bottle/mutarad name = "radiation treatment deluxe pill bottle" - desc = "The label says 'Med-Co branded pills' and below that 'Contains Mutadone in each pill!`." + desc = "The label says 'Med-Co branded pills' and below that 'Contains Mutadone in each pill!'." /obj/item/storage/pill_bottle/mutarad/PopulateContents() for(var/i in 1 to 7) @@ -340,7 +340,7 @@ /obj/item/storage/pill_bottle/breast_enlargement name = "breast enlargement pills" - desc = "Made by Fermichem - They have a woman with breasts larger than she is on them. The warming states not to take more than 10u at a time." + desc = "Made by Fermichem - They have a woman with breasts larger than she is on them. The warning states not to take more than 10u at a time." /obj/item/storage/pill_bottle/breast_enlargement/PopulateContents() for(var/i in 1 to 7) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index f6588b00..4b6b0689 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -15,7 +15,8 @@ var/decon_speed = 30 var/wtype = "glass" var/fulltile = FALSE - var/glass_type = /obj/item/stack/sheet/glass + var/obj/item/stack/sheet/glass_type = /obj/item/stack/sheet/glass + var/cleanable_type = /obj/effect/decal/cleanable/glass var/glass_amount = 1 var/mutable_appearance/crack_overlay can_be_unanchored = TRUE @@ -279,12 +280,15 @@ /obj/structure/window/proc/spawnDebris(location) . = list() - . += new /obj/item/shard(location) - . += new /obj/effect/decal/cleanable/glass(location) + var/shard = initial(glass_type.shard_type) + if(shard) + . += new shard(location) + if (fulltile) + . += new shard(location) + if(cleanable_type) + . += new cleanable_type(location) if (reinf) . += new /obj/item/stack/rods(location, (fulltile ? 2 : 1)) - if (fulltile) - . += new /obj/item/shard(location) /obj/structure/window/proc/can_be_rotated(mob/user,rotation_type) if(anchored) @@ -411,17 +415,9 @@ max_integrity = 150 explosion_block = 1 glass_type = /obj/item/stack/sheet/plasmaglass + cleanable_type = /obj/effect/decal/cleanable/glass/plasma rad_insulation = RAD_NO_INSULATION -/obj/structure/window/plasma/spawnDebris(location) - . = list() - . += new /obj/item/shard/plasma(location) - . += new /obj/effect/decal/cleanable/glass/plasma(location) - if (reinf) - . += new /obj/item/stack/rods(location, (fulltile ? 2 : 1)) - if (fulltile) - . += new /obj/item/shard/plasma(location) - /obj/structure/window/plasma/spawner/east dir = EAST @@ -884,11 +880,6 @@ level = 3 glass_amount = 2 -/obj/structure/window/reinforced/clockwork/spawnDebris(location) - . = list() - for(var/i in 1 to 4) - . += new /obj/item/clockwork/alloy_shards/medium/gear_bit(location) - /obj/structure/window/reinforced/clockwork/Initialize(mapload, direct) made_glow = TRUE new /obj/effect/temp_visual/ratvar/window(get_turf(src)) diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index 9d1d9d34..d3b6f0e7 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -323,7 +323,7 @@ /obj/item/paper/fluff/awaymissions/snowdin/secnotice name = "Security Notice" - info = {"YOu have been assigned to this Arctic Post with intention of protecting Nanotrasen assets and ensuring vital information is kept secure while the stationed crew obeys protocol. The picked + info = {"You have been assigned to this Arctic Post with intention of protecting Nanotrasen assets and ensuring vital information is kept secure while the stationed crew obeys protocol. The picked staff for this post have been pre-screened with no prior incidients on record, but incase of an issue you have been given a single holding cell and instructions to contact Central to terminate the offending crewmember."} diff --git a/code/modules/cargo/packs/armory.dm b/code/modules/cargo/packs/armory.dm index f8c3ba2f..55bb62d3 100644 --- a/code/modules/cargo/packs/armory.dm +++ b/code/modules/cargo/packs/armory.dm @@ -189,7 +189,7 @@ crate_name = "swat crate" /datum/supply_pack/security/armory/swattasers //Lesser AEG tbh - name = "SWAT tatical tasers Crate" + name = "SWAT tactical tasers Crate" desc = "Contains two tactical energy gun, these guns are able to tase, disable and lethal as well as hold a seclight. Requires Armory access to open." cost = 7000 contains = list(/obj/item/gun/energy/e_gun/stun, diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm index 3c4ca41f..b7efa566 100644 --- a/code/modules/cargo/packs/costumes_toys.dm +++ b/code/modules/cargo/packs/costumes_toys.dm @@ -289,6 +289,30 @@ crate_name = "wizard costume crate" crate_type = /obj/structure/closet/crate/wooden +/datum/supply_pack/costumes_toys/magicka + name = "Proper Wizard Costume Crate" + desc = "Up to four crewmates take on a grand adventure to save their world from certain doom using the robes in this crate!" + cost = 7000 + contraband = TRUE + contains = list(/obj/item/staff, + /obj/item/staff, + /obj/item/staff, + /obj/item/staff, + /obj/item/clothing/shoes/sandal, + /obj/item/clothing/shoes/sandal, + /obj/item/clothing/shoes/sandal, + /obj/item/clothing/shoes/sandal, + /obj/item/clothing/suit/notwizrobe, + /obj/item/clothing/head/notwizard, + /obj/item/clothing/suit/notwizrobe/red, + /obj/item/clothing/head/notwizard/red, + /obj/item/clothing/suit/notwizrobe/yellow, + /obj/item/clothing/head/notwizard/yellow, + /obj/item/clothing/suit/notwizrobe/black, + /obj/item/clothing/head/notwizard/black) + crate_name = "proper wizard costume crate" + crate_type = /obj/structure/closet/crate/wooden + /datum/supply_pack/costumes_toys/randomised/fill(obj/structure/closet/crate/C) var/list/L = contains.Copy() for(var/i in 1 to num_contained) diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index b630b121..80bee72c 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -8,6 +8,7 @@ item_color="yellow" resistance_flags = NONE var/can_be_cut = 1 + price = 10 /obj/item/clothing/gloves/color/fyellow //Cheap Chinese Crap desc = "These gloves are cheap knockoffs of the coveted ones - no way this can end badly." @@ -19,6 +20,7 @@ item_color="yellow" resistance_flags = NONE var/can_be_cut = 1 + price = 5 /obj/item/clothing/gloves/color/fyellow/New() ..() @@ -113,6 +115,7 @@ siemens_coefficient = 0 permeability_coefficient = 0.05 resistance_flags = NONE + price = 12 /obj/item/clothing/gloves/color/rainbow name = "rainbow gloves" diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 3d6f1929..3acdb833 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -260,6 +260,7 @@ name = "security's bitch beret" desc = "A softer beret with the word 'BITCH' embroidered on it in pink thread." icon_state = "bitchberet" + price = 5 //Curator /obj/item/clothing/head/fedora/curator diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index 0b361e82..9c100208 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -45,6 +45,7 @@ item_state = "sluthailer" aggressiveness = 0 //can't have your pets being mean! actions_types = list(/datum/action/item_action/halt) + price = 5 /obj/item/clothing/mask/gas/sechailer/slut/attack_hand(mob/user) if(iscarbon(user)) diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index a4200acc..3f7909b1 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -65,7 +65,7 @@ var/obj/item/organ/heart/heart = M.getorganslot(ORGAN_SLOT_HEART) var/obj/item/organ/lungs/lungs = M.getorganslot(ORGAN_SLOT_LUNGS) - + if (!do_mob(user,M,60)) // Stethoscope should take a moment to listen return // FAIL @@ -302,3 +302,4 @@ icon = 'icons/obj/clothing/neck.dmi' icon_state = "bling" item_color = "bling" + price = 30 \ No newline at end of file diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 89e038d3..13eb8eac 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -137,6 +137,7 @@ desc = "A pair of knee-high jackboots, complete with heels. All style, all the time." icon_state = "jackboots-tall" item_state = "jackboots-tall" + price = 5 /obj/item/clothing/shoes/jackboots/fast slowdown = -1 diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 10b0e0fe..e193aa3e 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -169,6 +169,7 @@ cold_protection = CHEST|LEGS|ARMS heat_protection = CHEST|LEGS|ARMS mutantrace_variation = NO_MUTANTRACE_VARIATION //you don't need it + price = 5 //Surgeon /obj/item/clothing/suit/apron/surgical diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 07097fa8..9f762389 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -635,6 +635,7 @@ icon_state = "coatsecuritypink" item_state = "coatsecuritypink" hoodtype = /obj/item/clothing/head/hooded/winterhood/security/pink + price = 5 /obj/item/clothing/suit/hooded/wintercoat/security/Initialize() . = ..() diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 3731a1a3..18c817f8 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -226,3 +226,63 @@ W.current_charges += 8 to_chat(user, "You charge \the [W]. It can now absorb [W.current_charges] hits.") qdel(src) + +/obj/item/clothing/head/notwizard + name = "wizard hat" + desc = "Strange-looking hat-wear that most certainly belongs to an aspiring magic user." + icon_state = "wizard" + gas_transfer_coefficient = 1 + permeability_coefficient = 1 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + strip_delay = 50 + equip_delay_other = 50 + resistance_flags = FLAMMABLE + dog_fashion = /datum/dog_fashion/head/blue_wizard + +/obj/item/clothing/head/notwizard/red + name = "red wizard hat" + desc = "Strange-looking red hat-wear that most certainly belongs to an aspiring magic user." + icon_state = "redwizard" + dog_fashion = /datum/dog_fashion/head/red_wizard + +/obj/item/clothing/head/notwizard/yellow + name = "yellow wizard hat" + desc = "Strange-looking yellow hat-wear that most certainly belongs to an aspiring magic user." + icon_state = "yellowwizard" + dog_fashion = null + +/obj/item/clothing/head/notwizard/black + name = "black wizard hat" + desc = "Strange-looking black hat-wear that most certainly belongs to an aspiring skeleton. Way cooler than magic." //skeleton gang 4lyfe + icon_state = "blackwizard" + dog_fashion = null + +/obj/item/clothing/suit/notwizrobe + name = "wizard robe" + desc = "A decent looking robe that seems to radiate imagination." + icon_state = "wizard" + item_state = "wizrobe" + gas_transfer_coefficient = 1 + permeability_coefficient = 1 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + strip_delay = 50 + equip_delay_other = 50 + resistance_flags = FLAMMABLE + +/obj/item/clothing/suit/notwizrobe/red + name = "red wizard robe" + desc = "A decent looking red robe that seems to radiate imagination." + icon_state = "redwizard" + item_state = "redwizrobe" + +/obj/item/clothing/suit/notwizrobe/yellow + name = "yellow wizard robe" + desc = "A decent looking yellow robe that seems to radiate imagination." + icon_state = "yellowwizard" + item_state = "yellowwizrobe" + +/obj/item/clothing/suit/notwizrobe/black + name = "black wizard robe" + desc = "An unnerving black robe that radiates death and decay." + icon_state = "blackwizard" + item_state = "blackwizrobe" \ No newline at end of file diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index 528fa008..6b5eea68 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -381,6 +381,7 @@ item_state = "b_suit" item_color = "galaxy_blue" can_adjust = FALSE + price = 10 /obj/item/clothing/under/lawyer/galaxy_red name = "\improper Pulsar Gonne" diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 94d737b1..722c7164 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -30,6 +30,7 @@ icon_state = "rsecuritypink" item_state = "r_suit" item_color = "rsecuritypink" + price = 3 /obj/item/clothing/under/rank/security/skirt name = "security jumpskirt" desc = "A \"tactical\" security jumpsuit with the legs replaced by a skirt." @@ -46,6 +47,7 @@ item_state = "secslutskirt" item_color = null //i dont understand what item_color even is, apparently setting it to null means it won't change color in a washing machine? mutantrace_variation = NO_MUTANTRACE_VARIATION //look at the first two comments in vg_under.dm + price = 3 /obj/item/clothing/under/rank/security/skirt/slut/pink desc = "A \"\"\"tactical\"\"\" security jumpsuit with the legs replaced by a skirt. No matter how you adjust it, it always feels a little too small. This one seems to have an experimental color scheme." icon_state = "secslutskirtpink" @@ -59,6 +61,7 @@ can_adjust = FALSE body_parts_covered = CHEST|GROIN mutantrace_variation = NO_MUTANTRACE_VARIATION + price = 5 /obj/item/clothing/under/rank/warden diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index a63ebd19..3a481124 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -21,19 +21,19 @@ /obj/item/clothing/under/syndicate/tacticool name = "tacticool turtleneck" - desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." - icon_state = "tactifool" + desc = "A robust looking turtleneck designed to fit tightly against the body while still being comfortable." + icon_state = "syndicate" item_state = "bl_suit" - item_color = "tactifool" + item_color = "syndicate" has_sensor = HAS_SENSORS armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) /obj/item/clothing/under/syndicate/tacticool/skirt name = "tacticool skirtleneck" - desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." - icon_state = "tactifool_skirt" + desc = "A robust looking skirtleneck designed to fit tightly against the body while still being comfortable." + icon_state = "syndicate_skirt" item_state = "bl_suit" - item_color = "tactifool_skirt" + item_color = "syndicate_skirt" has_sensor = HAS_SENSORS armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) fitted = FEMALE_UNIFORM_TOP diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 622c9417..1457b92e 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -217,6 +217,7 @@ resistance_flags = FREEZE_PROOF isGlass = FALSE foodtype = BREAKFAST + price = 2 //Used by MREs /obj/item/reagent_containers/food/drinks/coffee/type2 @@ -240,6 +241,7 @@ icon_state = "tea" item_state = "coffee" spillable = TRUE + price = 2 /* Doesn't exist lol /datum/chemical_reaction/catnip_tea @@ -259,6 +261,7 @@ name = "Duke Purple tea" desc = "An insult to Duke Purple is an insult to the Space Queen! Any proper gentleman will fight you, if you sully this tea." list_reagents = list(/datum/reagent/consumable/tea = 30) + price = 2 /obj/item/reagent_containers/food/drinks/mug/coco name = "Dutch hot coco" @@ -276,6 +279,7 @@ list_reagents = list(/datum/reagent/consumable/dry_ramen = 30) foodtype = GRAIN isGlass = FALSE + price = 3 /obj/item/reagent_containers/food/drinks/beer name = "space beer" @@ -414,6 +418,7 @@ reagent_flags = NONE spillable = FALSE isGlass = FALSE + price = 2 /obj/item/reagent_containers/food/drinks/soda_cans/suicide_act(mob/living/carbon/user) user.visible_message("[user] is trying to eat \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -538,3 +543,4 @@ icon_state = "monkey_energy" list_reagents = list(/datum/reagent/consumable/monkey_energy = 50) foodtype = SUGAR | JUNKFOOD + price = 3 diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index e4c6ca9d..cd6b945a 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -406,6 +406,7 @@ isGlass = FALSE list_reagents = list(/datum/reagent/consumable/cream = 100) foodtype = DAIRY + price = 3 /obj/item/reagent_containers/food/drinks/bottle/tomatojuice name = "tomato juice" diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index 0d769932..fcd4d57b 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -90,6 +90,7 @@ /obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola name = "Nuka Cola" list_reagents = list(/datum/reagent/consumable/nuka_cola = 50) + price = 7 /obj/item/reagent_containers/food/drinks/drinkingglass/filled/syndicatebomb name = "Syndicat Bomb" diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index d8dafb7b..5c81722e 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -186,6 +186,7 @@ righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' list_reagents = list(/datum/reagent/consumable/milk = 50) possible_states = list() + price = 5 /obj/item/reagent_containers/food/condiment/flour name = "flour sack" diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index 26f2c956..eddd7e03 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -59,6 +59,8 @@ tastes = list("chocolate" = 1) foodtype = JUNKFOOD | SUGAR dunkable = TRUE + price = 2 + /obj/item/reagent_containers/food/snacks/hugemushroomslice name = "huge mushroom slice" diff --git a/code/modules/food_and_drinks/food/snacks_salad.dm b/code/modules/food_and_drinks/food/snacks_salad.dm index e2727332..5dd7ad48 100644 --- a/code/modules/food_and_drinks/food/snacks_salad.dm +++ b/code/modules/food_and_drinks/food/snacks_salad.dm @@ -116,3 +116,12 @@ bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("rice" = 1, "egg" = 1) foodtype = GRAIN | MEAT //EGG = MEAT -NinjaNomNom 2017 + +/obj/item/reagent_containers/food/snacks/salad/hellcobb + name = "hell cobb salad" + desc = "If you're being honest with yourself it's just a bowl of mushrooms with chunks of meat and an egg." + icon_state = "hellcobb" + trash = /obj/item/reagent_containers/glass/bowl/mushroom_bowl + bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4) + tastes = list("fruity cactus" = 5, "ash" = 1, "tough meat" = 3, "your eternal damnation" = 1) + foodtype = FRUIT | MEAT | VEGETABLES //MUSHROOM = VEGETABLE -VladinXXV 2021 diff --git a/code/modules/food_and_drinks/food/snacks_soup.dm b/code/modules/food_and_drinks/food/snacks_soup.dm index 8a1b2c0a..7b498c7c 100644 --- a/code/modules/food_and_drinks/food/snacks_soup.dm +++ b/code/modules/food_and_drinks/food/snacks_soup.dm @@ -254,3 +254,20 @@ tastes = list("bungo" = 2, "hot curry" = 4, "tropical sweetness" = 1) filling_color = "#E6A625" foodtype = VEGETABLES | FRUIT | DAIRY + +/obj/item/reagent_containers/food/snacks/soup/creamofwastes + name = "cream of the wastes soup" + desc = "Locals say the bowl gives it a unique flavor each time. That might just be whatever killed the goliath getting in your bowl, though." + icon_state = "wastessoup" + trash = /obj/item/reagent_containers/glass/bowl/mushroom_bowl + var/snowflake_reagent = null + list_reagents = list(/datum/reagent/consumable/nutriment = 6) + tastes = list("a fresh kill" = 3, "creamy mushroom" = 5, "a warm sunset over the scorched landscape of hell" = 1) + +/obj/item/reagent_containers/food/snacks/soup/creamofwastes/Initialize() + . = ..() + snowflake_reagent = pick(/datum/reagent/consumable/capsaicin, /datum/reagent/consumable/frostoil, + /datum/reagent/blood, /datum/reagent/oil, /datum/reagent/consumable/honey, + /datum/reagent/carbon, /datum/reagent/drug/mushroomhallucinogen) + bonus_reagents = list(snowflake_reagent = 5, /datum/reagent/consumable/nutriment = 6) + reagents.add_reagent(snowflake_reagent, 5) diff --git a/code/modules/food_and_drinks/food/snacks_vend.dm b/code/modules/food_and_drinks/food/snacks_vend.dm index 661c9bca..72949edc 100644 --- a/code/modules/food_and_drinks/food/snacks_vend.dm +++ b/code/modules/food_and_drinks/food/snacks_vend.dm @@ -12,6 +12,7 @@ filling_color = "#D2691E" tastes = list("candy" = 1) foodtype = JUNKFOOD | SUGAR + price = 2 /obj/item/reagent_containers/food/snacks/sosjerky name = "\improper Scaredy's Private Reserve Beef Jerky" @@ -23,6 +24,7 @@ filling_color = "#8B0000" tastes = list("dried meat" = 1) foodtype = JUNKFOOD | MEAT | SUGAR + price = 3 /obj/item/reagent_containers/food/snacks/sosjerky/healthy name = "homemade beef jerky" @@ -41,6 +43,7 @@ filling_color = "#FFD700" tastes = list("salt" = 1, "crisps" = 1) foodtype = JUNKFOOD | FRIED + price = 2 /obj/item/reagent_containers/food/snacks/no_raisin name = "4no raisins" @@ -52,6 +55,7 @@ filling_color = "#8B0000" tastes = list("dried raisins" = 1) foodtype = JUNKFOOD | FRUIT | SUGAR + price = 2 /obj/item/reagent_containers/food/snacks/no_raisin/healthy name = "homemade raisins" @@ -68,6 +72,7 @@ junkiness = 25 filling_color = "#FFD700" foodtype = JUNKFOOD | GRAIN | SUGAR + price = 4 /obj/item/reagent_containers/food/snacks/cheesiehonkers name = "cheesie honkers" @@ -79,6 +84,7 @@ filling_color = "#FFD700" tastes = list("cheese" = 5, "crisps" = 2) foodtype = JUNKFOOD | DAIRY | SUGAR + price = 4 /obj/item/reagent_containers/food/snacks/soyfood name = "Soyfood" @@ -90,6 +96,7 @@ filling_color = "#FFD700" tastes = list("nanomachines" = 2, "soybeans" = 5) foodtype = JUNKFOOD | DAIRY | GRAIN + price = 3 /obj/item/reagent_containers/food/snacks/syndicake name = "syndi-cakes" @@ -100,6 +107,7 @@ filling_color = "#F5F5DC" tastes = list("sweetness" = 3, "cake" = 1) foodtype = GRAIN | FRUIT | VEGETABLES + price = 5 /obj/item/reagent_containers/food/snacks/carbonnanotube_noodles name = "carbon nanotube noodles" @@ -111,3 +119,4 @@ filling_color = "#FFD700" tastes = list("charcoal" = 1, "spiciness" = 3, "soysauce" = 3) foodtype = GRAIN | VEGETABLES + price = 3 \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm index 920691bc..e0806cfa 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm @@ -94,3 +94,16 @@ ) result = /obj/item/reagent_containers/food/snacks/salad/citrusdelight subcategory = CAT_SALAD + +/datum/crafting_recipe/food/hellcobb + name = "Hell Cobb Salad" + reqs = list( + /obj/item/reagent_containers/glass/bowl/mushroom_bowl = 1, + /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf = 3, + /obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit = 2, + /obj/item/reagent_containers/food/snacks/meat/steak/goliath = 1, + /obj/item/reagent_containers/food/snacks/boiledegg = 1 + + ) + result = /obj/item/reagent_containers/food/snacks/salad/hellcobb + subcategory = CAT_SALAD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm index ccbbe71c..8c2d02ca 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm @@ -247,3 +247,15 @@ ) result = /obj/item/reagent_containers/food/snacks/soup/macaco subcategory = CAT_SOUP + +/datum/crafting_recipe/food/creamofwastes + name = "Cream of the Wastes soup" + reqs = list( + /datum/reagent/consumable/milk = 10, + /obj/item/reagent_containers/glass/bowl/mushroom_bowl = 1, + /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf = 1, + /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem =2, + /obj/item/reagent_containers/food/snacks/meat/steak/goliath = 2 //wanted to make this three cutlets, but goliath meat doesn't get a unique cutlet + ) + result = /obj/item/reagent_containers/food/snacks/soup/creamofwastes + subcategory = CAT_SOUP diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index de17a35e..f4a1525c 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -509,7 +509,7 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums name = "scanner control interface" icon = 'icons/obj/library.dmi' icon_state = "bigscanner" - desc = "It servers the purpose of scanning stuff." + desc = "It serves the purpose of scanning stuff." density = TRUE var/obj/item/book/cache // Last scanned book diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 644c93a5..ca660860 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -389,7 +389,10 @@ if(!arrivals_docked) var/obj/screen/splash/Spl = new(character.client, TRUE) Spl.Fade(TRUE) - character.playsound_local(get_turf(character), 'sound/voice/ApproachingTG.ogg', 25) + if(!prob(1)) + character.playsound_local(get_turf(character), 'sound/voice/Approaching.ogg', 25) + else + character.playsound_local(get_turf(character), 'sound/voice/boat.ogg', 35) //boatbomber easter egg. (love your videos man, thanks for visiting!) character.update_parallax_teleport() diff --git a/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm b/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm index 82a6b8a6..769ff0d6 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm @@ -470,7 +470,17 @@ /datum/sprite_accessory/hair/quotey name = "Tail Hair" icon_state = "hair_tailhair" + ckeys_allowed = list("quotefox") /datum/sprite_accessory/hair/mommy - name = "Hairfre" + name = "(Hyper) Hairfre" icon_state = "hair_hairfre" + +/datum/sprite_accessory/hair/sidehair + name = "(Hyper) Side Hair" + icon_state = "hair_tailhair2" + ckeys_allowed = list("quotefox") + +/datum/sprite_accessory/hair/curtains + name = "(Hyper) Curtains" + icon_state = "hair_curtains" diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index b8bf2116..a0eeae1e 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -19,10 +19,21 @@ var/ndir = SOUTH // target dir var/turn_angle = 0 var/obj/machinery/power/solar_control/control = null + var/obj/item/solar_assembly/assembly + var/efficiency = 1 /obj/machinery/power/solar/Initialize(mapload, obj/item/solar_assembly/S) . = ..() - Make(S) + if(!S) + assembly = new /obj/item/solar_assembly + assembly.glass_type = new /obj/item/stack/sheet/glass(null, 2) + assembly.anchored = TRUE + else + S.moveToNullspace() + assembly = S + assembly.glass_type.on_solar_construction(src) + obj_integrity = max_integrity + update_icon() connect_to_network() /obj/machinery/power/solar/Destroy() @@ -43,18 +54,6 @@ control.connected_panels.Remove(src) control = null -/obj/machinery/power/solar/proc/Make(obj/item/solar_assembly/S) - if(!S) - S = new /obj/item/solar_assembly(src) - S.glass_type = /obj/item/stack/sheet/glass - S.anchored = TRUE - else - S.forceMove(src) - if(S.glass_type == /obj/item/stack/sheet/rglass) //if the panel is in reinforced glass - max_integrity *= 2 //this need to be placed here, because panels already on the map don't have an assembly linked to - obj_integrity = max_integrity - update_icon() - /obj/machinery/power/solar/crowbar_act(mob/user, obj/item/I) playsound(src.loc, 'sound/machines/click.ogg', 50, 1) user.visible_message("[user] begins to take the glass off [src].", "You begin to take the glass off [src]...") @@ -85,14 +84,14 @@ /obj/machinery/power/solar/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) if(disassembled) - var/obj/item/solar_assembly/S = locate() in src - if(S) - S.forceMove(loc) - S.give_glass(stat & BROKEN) + if(assembly) + assembly.forceMove(loc) + assembly.give_glass(stat & BROKEN) else playsound(src, "shatter", 70, 1) - new /obj/item/shard(src.loc) - new /obj/item/shard(src.loc) + var/shard = assembly?.glass_type ? assembly.glass_type.shard_type : /obj/item/shard + new shard(loc) + new shard(loc) qdel(src) @@ -131,7 +130,7 @@ if(powernet == control.powernet)//check if the panel is still connected to the computer if(obscured) //get no light from the sun, so don't generate power return - var/sgen = SOLARGENRATE * sunfrac + var/sgen = SOLARGENRATE * sunfrac * efficiency add_avail(sgen) control.gen += sgen else //if we're no longer on the same powernet, remove from control computer @@ -186,19 +185,23 @@ w_class = WEIGHT_CLASS_BULKY // Pretty big! anchored = FALSE var/tracker = 0 - var/glass_type = null + var/obj/item/stack/sheet/glass_type + var/static/list/allowed_sheets = typecacheof(list(/obj/item/stack/sheet/glass, /obj/item/stack/sheet/rglass, + /obj/item/stack/sheet/plasmaglass, /obj/item/stack/sheet/plasmarglass, + /obj/item/stack/sheet/titaniumglass, /obj/item/stack/sheet/plastitaniumglass)) // Give back the glass type we were supplied with /obj/item/solar_assembly/proc/give_glass(device_broken) var/atom/Tsec = drop_location() if(device_broken) - new /obj/item/shard(Tsec) - new /obj/item/shard(Tsec) + var/shard = glass_type ? glass_type.shard_type : /obj/item/shard + if(shard) + new shard(Tsec) + new shard(Tsec) else if(glass_type) - new glass_type(Tsec, 2) + glass_type.forceMove(Tsec) glass_type = null - /obj/item/solar_assembly/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/wrench) && isturf(loc)) if(isinspace()) @@ -213,14 +216,16 @@ W.play_tool_sound(src, 75) return 1 - if(istype(W, /obj/item/stack/sheet/glass) || istype(W, /obj/item/stack/sheet/rglass)) + if(is_type_in_typecache(W, allowed_sheets)) if(!anchored) to_chat(user, "You need to secure the assembly before you can add glass.") return var/obj/item/stack/sheet/S = W - if(S.use(2)) - glass_type = W.type - playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + var/obj/item/stack/sheet/G = S.change_stack(null, 2) + if(G) + glass_type = G + G.moveToNullspace() + playsound(loc, 'sound/machines/click.ogg', 50, 1) user.visible_message("[user] places the glass on the solar assembly.", "You place the glass on the solar assembly.") if(tracker) new /obj/machinery/power/tracker(get_turf(src), src) diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index 5075e765..8701dfea 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -16,10 +16,19 @@ var/id = 0 var/sun_angle = 0 // sun angle as set by sun datum var/obj/machinery/power/solar_control/control = null + var/obj/item/solar_assembly/assembly /obj/machinery/power/tracker/Initialize(mapload, obj/item/solar_assembly/S) . = ..() - Make(S) + if(!S) + assembly = new /obj/item/solar_assembly + assembly.glass_type = new /obj/item/stack/sheet/glass(null, 2) + assembly.tracker = TRUE + assembly.anchored = TRUE + else + S.moveToNullspace() + assembly = S + update_icon() connect_to_network() /obj/machinery/power/tracker/Destroy() @@ -40,15 +49,6 @@ control.connected_tracker = null control = null -/obj/machinery/power/tracker/proc/Make(obj/item/solar_assembly/S) - if(!S) - S = new /obj/item/solar_assembly(src) - S.glass_type = /obj/item/stack/sheet/glass - S.tracker = 1 - S.anchored = TRUE - S.forceMove(src) - update_icon() - //updates the tracker icon and the facing angle for the control computer /obj/machinery/power/tracker/proc/set_angle(angle) sun_angle = angle @@ -77,14 +77,14 @@ /obj/machinery/power/solar/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) if(disassembled) - var/obj/item/solar_assembly/S = locate() in src - if(S) - S.forceMove(loc) - S.give_glass(stat & BROKEN) + if(assembly) + assembly.forceMove(loc) + assembly.give_glass(stat & BROKEN) else playsound(src, "shatter", 70, 1) - new /obj/item/shard(src.loc) - new /obj/item/shard(src.loc) + var/shard = assembly?.glass_type ? assembly.glass_type.shard_type : /obj/item/shard + new shard(loc) + new shard(loc) qdel(src) // Tracker Electronic diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 0105defd..61e3d31d 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -206,7 +206,7 @@ item_state = "combatshotgun" mag_type = /obj/item/ammo_box/magazine/internal/shot/com w_class = WEIGHT_CLASS_HUGE - unique_reskin = list("Tatical" = "cshotgun", + unique_reskin = list("Tactical" = "cshotgun", "Slick" = "cshotgun_slick" ) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index bb1a4c81..f1382d9b 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -336,6 +336,7 @@ volume = 50 amount_per_transfer_from_this = 10 container_HP = 1 + price = 1 /obj/item/reagent_containers/glass/beaker/waterbottle/Initialize() beaker_weakness_bitflag |= TEMP_WEAK diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 95f3a45b..02e50832 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -251,7 +251,9 @@ /obj/item/reagent_containers/pill/penis_enlargement name = "penis enlargement pill" list_reagents = list(/datum/reagent/fermi/penis_enlarger = 10) + price = 4 /obj/item/reagent_containers/pill/breast_enlargement name = "breast enlargement pill" list_reagents = list(/datum/reagent/fermi/breast_enlarger = 10) + price = 4 diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 41095239..ec152330 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -21,6 +21,8 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C var/product_path = null var/amount = 0 var/max_amount = 0 + var/price = 0 + /obj/machinery/vending name = "\improper Vendomat" @@ -65,12 +67,20 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C var/scan_id = 1 var/obj/item/coin/coin var/obj/item/stack/spacecash/bill - + var/global/vending_cache = list() //used for storing the icons of items being vended var/dish_quants = list() //used by the snack machine's custom compartment to count dishes. - var/obj/item/vending_refill/refill_canister = null //The type of refill canisters used by this machine. + var/obj/item/vending_refill/refill_canister = null //The type of refill canisters used by this machine + + //hyper economy stuff + var/credits = 0 + var/baseprice = 0 + var/menu = 1 + var/datum/bank_account/bankid + var/datum/data/vending_product/buying + var/free = FALSE //everythings free! /obj/machinery/vending/Initialize() var/build_inv = FALSE @@ -153,9 +163,18 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C amount = 0 var/atom/temp = typepath + var/obj/item/product = typepath var/datum/data/vending_product/R = new /datum/data/vending_product() R.name = initial(temp.name) R.product_path = typepath + R.price = baseprice + if(product) //its a item! + if((initial(product.price))) + R.price = initial(product.price) + else + R.price = baseprice + if(free) + R.price = 0 if(!start_empty) R.amount = amount R.max_amount = amount @@ -228,6 +247,16 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C if(panel_open && is_wire_tool(I)) wires.interact(user) return + + + else if(istype(I, /obj/item/stack/credits)) + var/obj/item/stack/credits/cred = I + to_chat(usr, "You insert [cred] into [src].") + credits = credits+cred.amount + src.ui_interact(usr) + del(cred) + + /* we dont use this currency anymore! else if(istype(I, /obj/item/coin)) if(coin) to_chat(user, "[src] already has [coin] inserted") @@ -258,6 +287,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C bill = new S.type(src, 1) to_chat(user, "You insert [I] into [src].") return + */ else if(refill_canister && istype(I, refill_canister)) if (!panel_open) to_chat(user, "You should probably unscrew the service panel first.") @@ -320,44 +350,56 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C /obj/machinery/vending/ui_interact(mob/user) var/dat = "" - dat += "

Select an item

" - dat += "
" - if(!product_records.len) - dat += "No product loaded!" - else - var/list/display_records = product_records - if(extended_inventory) - display_records = product_records + hidden_records - if(coin || bill) - display_records = product_records + coin_records - if((coin || bill) && extended_inventory) - display_records = product_records + hidden_records + coin_records - dat += "" - for (var/datum/data/vending_product/R in display_records) - dat += "" - dat += "" - if(R.amount > 0) - dat += "" + switch(menu) + if(1) + dat += "

Select an item

" + if(!credits) + dat += "Inserted credits: $[credits]   remove" else - dat += "

" - dat += "" - dat += "
[sanitize(R.name)][R.amount] VendVend
" - dat += "
" - if(premium.len > 0) - dat += "Change Return: " - if (coin || bill) - dat += "[(coin ? coin : "")][(bill ? bill : "")]  Remove" - else - dat += "No money  Remove" - if(istype(src, /obj/machinery/vending/snack)) - dat += "

Chef's Food Selection

" - dat += "
" - for (var/O in dish_quants) - if(dish_quants[O] > 0) - var/N = dish_quants[O] - dat += "Dispense " - dat += "[capitalize(O)]: [N]
" - dat += "
" + dat += "Inserted credits: $[credits] remove" + + dat += "
" + if(!product_records.len) + dat += "No product loaded!" + else + var/list/display_records = product_records + if(extended_inventory) //hacking shows all inventory now since coins arent worth anything. + display_records = product_records + hidden_records + coin_records + else + display_records = product_records + coin_records + dat += "" + for (var/datum/data/vending_product/R in display_records) + dat += "" + dat += "" + dat += "" + if(R.amount > 0) + dat += "" + else + dat += "" + dat += "" + dat += "
$[R.price][sanitize(R.name)][R.amount] [!R.price ? "Vend" : "Buy"]Vend
" + dat += "
" + + if(istype(src, /obj/machinery/vending/snack)) + dat += "

Chef's Food Selection

" + dat += "
" + for (var/O in dish_quants) + if(dish_quants[O] > 0) + var/N = dish_quants[O] + dat += "Dispense " + dat += "[capitalize(O)]: [N]
" + dat += "
" + if(2) //hyper economy purchase item menu + dat += "
" + if(buying) + dat += "

Purchase [buying.name]

" + else + dat += "

Purchase Item

" + dat += "Inserted credits: $[credits]

" + dat += "Not enough credits to purchase, please insert credits or swipe your card to purchase!

" + dat += "Pay-By-Card" + dat += "Return" + dat += "

" var/datum/browser/popup = new(user, "vending", (name)) popup.set_content(dat) @@ -389,6 +431,12 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C to_chat(usr, "You remove [bill] from [src].") bill = null + if(href_list["removecredits"]) + var/obj/item/stack/credits/C = new /obj/item/stack/credits/(loc) + C.amount = credits + credits = 0 //empty the machine + if(usr.put_in_hands(C)) + to_chat(usr, "You take [C] out of the ATM.") usr.set_machine(src) @@ -408,6 +456,22 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C updateUsrDialog() return + if(href_list["idpay"]) + var/obj/item/card/id/I = usr.get_idcard(TRUE) + if(I) + if(I.registered_account) + bankid = I.registered_account + else + to_chat(usr, "The vending machine fails to read your bank account!") + else + to_chat(usr, "The vending machine fails to read your card!") + + if(href_list["return"]) + menu = 1 + vend_ready = 1 + updateUsrDialog() + return + if((href_list["vend"]) && (vend_ready)) if(panel_open) to_chat(usr, "The vending machine cannot dispense products while its service panel is open!") @@ -421,6 +485,29 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C vend_ready = 0 //One thing at a time!! var/datum/data/vending_product/R = locate(href_list["vend"]) + buying = R + + //check if they can afford it, if not open the next menu + if(R.price > credits) + menu = 2 //second menu + updateUsrDialog() + vend_ready = 1 + if(bankid && R == buying) //if we have a bank id, and we are trying to buy the same thing! + if(bankid.account_balance >= R.price) + bankid.account_balance -= R.price //take the money from the account. + menu = 1 + to_chat(usr, "You [R.name] via the provided bank account!") + bankid = null //so noone can buy from your account after youve purchased stuff + else + to_chat(usr, "You do not have enough money in the bank account to purchase [R.name]!") + return + else + return + + else + credits -= R.price + menu = 1 + if(!R || !istype(R) || !R.product_path) vend_ready = 1 return @@ -470,9 +557,11 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C last_reply = world.time use_power(5) + if(icon_vend) //Show the vending animation if needed flick(icon_vend,src) var/vended = new R.product_path(get_turf(src)) + playsound(src, 'sound/items/vending.ogg', 50, 1, -1) if(usr.CanReach(src)) if(usr.put_in_hands(vended)) to_chat(usr, "You take [R.name] out of the slot.") @@ -507,8 +596,10 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C speak(slogan) last_slogan = world.time + /* no freebies if(shoot_inventory && prob(shoot_inventory_chance)) throw_item() + */ /obj/machinery/vending/proc/speak(message) if(stat & (BROKEN|NOPOWER)) diff --git a/code/modules/vending/boozeomat.dm b/code/modules/vending/boozeomat.dm index 55cd0a19..3242e1d0 100644 --- a/code/modules/vending/boozeomat.dm +++ b/code/modules/vending/boozeomat.dm @@ -40,6 +40,7 @@ product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!" req_access = list(ACCESS_BAR) refill_canister = /obj/item/vending_refill/boozeomat + free = TRUE /obj/machinery/vending/boozeomat/all_access desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one. This model appears to have no access restrictions." diff --git a/code/modules/vending/cigarette.dm b/code/modules/vending/cigarette.dm index dae7e893..5be00023 100644 --- a/code/modules/vending/cigarette.dm +++ b/code/modules/vending/cigarette.dm @@ -1,5 +1,6 @@ /obj/machinery/vending/cigarette name = "\improper ShadyCigs Deluxe" + baseprice = 3 desc = "If you want to get cancer, might as well do it in style." product_slogans = "Space cigs taste good like a cigarette should.;I'd rather toolbox than switch.;Smoke!;Don't believe the reports - smoke today!" product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs." diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index 1fed39bb..bfc59e55 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -146,6 +146,7 @@ /obj/item/bluespace_thread = 3, /obj/item/clothing/under/lawyer/galaxy_blue = 3) refill_canister = /obj/item/vending_refill/clothing + baseprice = 2 /obj/item/vending_refill/clothing machine_name = "ClothesMate" diff --git a/code/modules/vending/snack.dm b/code/modules/vending/snack.dm index a61aa0b2..d91eac5b 100644 --- a/code/modules/vending/snack.dm +++ b/code/modules/vending/snack.dm @@ -19,6 +19,8 @@ refill_canister = /obj/item/vending_refill/snack var/chef_compartment_access = "28" //ACCESS_KITCHEN + baseprice = 3 + /obj/item/vending_refill/snack machine_name = "Getmore Chocolate Corp" @@ -103,11 +105,15 @@ /obj/machinery/vending/snack/blue icon_state = "snackblue" + /obj/machinery/vending/snack/orange icon_state = "snackorange" + /obj/machinery/vending/snack/green icon_state = "snackgreen" + /obj/machinery/vending/snack/teal icon_state = "snackteal" + diff --git a/hyperstation/code/modules/cargo/packs/misc.dm b/hyperstation/code/modules/cargo/packs/misc.dm index e69de29b..d1b88903 100644 --- a/hyperstation/code/modules/cargo/packs/misc.dm +++ b/hyperstation/code/modules/cargo/packs/misc.dm @@ -0,0 +1,7 @@ +/datum/supply_pack/service/stripperpole + name = "Stripper Pole Crate" + desc = "No private bar is complete without a stripper pole, show off the goods! Comes with a ready-to-assemble stripper pole, and a complementary wrench to get things set up!" + cost = 3550 + contains = list(/obj/item/polepack/, + /obj/item/wrench/) + crate_name = "stripper pole crate" diff --git a/hyperstation/code/obj/condom.dm b/hyperstation/code/obj/condom.dm index f7eea6bb..727ff473 100644 --- a/hyperstation/code/obj/condom.dm +++ b/hyperstation/code/obj/condom.dm @@ -9,6 +9,7 @@ icon_state = "b_condom_wrapped" var/unwrapped = 0 w_class = WEIGHT_CLASS_TINY + price = 1 obj/item/condom/Initialize() create_reagents(300, DRAWABLE|NO_REACT) diff --git a/hyperstation/code/obj/kinkyclothes.dm b/hyperstation/code/obj/kinkyclothes.dm index b6ab978d..8fd9c43d 100644 --- a/hyperstation/code/obj/kinkyclothes.dm +++ b/hyperstation/code/obj/kinkyclothes.dm @@ -6,12 +6,14 @@ icon = 'hyperstation/icons/obj/clothing/gloves.dmi' alternate_worn_icon = 'hyperstation/icons/mobs/gloves.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION + price = 5 /obj/item/clothing/gloves/latexsleeves/security name = "security sleeves" desc = "A pair of latex sleeves, with a band of red above the elbows denoting that the wearer is part of the security team." icon_state = "latexsec" item_state = "latexsec" + price = 5 /obj/item/clothing/head/dominatrixcap name = "dominatrix cap" @@ -34,4 +36,23 @@ /obj/item/clothing/shoes/highheels/Initialize() . = ..() AddComponent(/datum/component/squeak, list('sound/effects/footstep/highheel1.ogg' = 1,'sound/effects/footstep/highheel2.ogg' = 1), 20) -//the classic click clack \ No newline at end of file +//the classic click clack + +obj/item/clothing/neck/stole + name = "white stole" + desc = "Fluffy neck wear to keep you warm, and attract others." + icon = 'hyperstation/icons/obj/clothing/neck.dmi' + w_class = WEIGHT_CLASS_SMALL + icon_state = "stole" + item_state = "" //no inhands + price = 3 + +obj/item/clothing/neck/stole/black + name = "black stole" + desc = "Fluffy neck wear to keep you warm, and attract others." + icon = 'hyperstation/icons/obj/clothing/neck.dmi' + w_class = WEIGHT_CLASS_SMALL + icon_state = "stole" + item_state = "" //no inhands + color = "#3d3d3d" + price = 3 \ No newline at end of file diff --git a/hyperstation/code/obj/pole.dm b/hyperstation/code/obj/pole.dm new file mode 100644 index 00000000..4455a882 --- /dev/null +++ b/hyperstation/code/obj/pole.dm @@ -0,0 +1,93 @@ +//hyperstation 13 stripper pole! about time? + +/obj/structure/pole + name = "stripper pole" + desc = "A pole fastened to the ceiling and floor, used to show of ones goods to company." + icon = 'hyperstation/icons/obj/pole.dmi' + icon_state = "pole" + density = TRUE + anchored = TRUE + var/icon_state_inuse + layer = 4 //make it the same layer as players. + pseudo_z_axis = 9 //stepping onto the pole makes you raise upwards! + density = 0 //easy to step up on + +/obj/structure/pole/attack_hand(mob/living/user) + . = ..() + if(.) + return + if(obj_flags & IN_USE) + to_chat(user, "It's already in use - wait a bit.") + return + else + obj_flags |= IN_USE + user.setDir(SOUTH) + user.Stun(100) + user.forceMove(src.loc) + user.visible_message("[user] dances on [src]!") + animatepole(user) + user.layer = layer //set them to the poles layer + obj_flags &= ~IN_USE + user.pixel_y = 0 + user.pixel_z = pseudo_z_axis //incase we are off it when we jump on! + icon_state = initial(icon_state) + +/obj/structure/pole/proc/animatepole(mob/living/user) + return + +/obj/structure/pole/animatepole(mob/living/user) + + if (user.loc != src.loc) + return + animate(user,pixel_x = -6, pixel_y = 0, time = 10) + sleep(20) + user.dir = 4 + animate(user,pixel_x = -6,pixel_y = 24, time = 10) + sleep(12) + src.layer = 4.01 //move the pole infront for now. better to move the pole, because the character moved behind people sitting above otherwise + animate(user,pixel_x = 6,pixel_y = 12, time = 5) + user.dir = 8 + sleep(6) + animate(user,pixel_x = -6,pixel_y = 4, time = 5) + user.dir = 4 + src.layer = 4 // move it back. + sleep(6) + user.dir = 1 + animate(user,pixel_x = 0, pixel_y = 0, time = 3) + sleep(6) + user.do_jitter_animation() + sleep(6) + user.dir = 2 + + +/obj/item/polepack + name = "stripper pole flatpack" + desc = "A wrench is required to construct." + icon = 'hyperstation/icons/obj/pole_small.dmi' + throwforce = 0 + icon_state = "pole_base" + var/unwrapped = 0 + w_class = WEIGHT_CLASS_HUGE + +/obj/item/polepack/attackby(obj/item/P, mob/user, params) //erecting a pole here. + add_fingerprint(user) + if(istype(P, /obj/item/wrench)) + if (!(item_flags & IN_INVENTORY)) + to_chat(user, "You start to fasten the frame to the floor and celing...") + if(P.use_tool(src, user, 8 SECONDS, volume=50)) + to_chat(user, "You construct the stripper pole!") + var/obj/structure/pole/C = new + C.loc = loc + del(src) + return + +/obj/structure/pole/attackby(obj/item/P, mob/user, params) //un-erecting a pole. :( + add_fingerprint(user) + if(istype(P, /obj/item/wrench)) + to_chat(user, "You start to unfastening the frame...") + if(P.use_tool(src, user, 8 SECONDS, volume=50)) + to_chat(user, "You take down the stripper pole!") + var/obj/item/polepack/C = new + C.loc = loc + del(src) + return \ No newline at end of file diff --git a/hyperstation/code/obj/rewards.dm b/hyperstation/code/obj/rewards.dm index 620d3597..5dfbeb94 100644 --- a/hyperstation/code/obj/rewards.dm +++ b/hyperstation/code/obj/rewards.dm @@ -95,3 +95,12 @@ desc = "A handful of blue crystals. They look like they came from some sort of cave." alternate_worn_icon = 'hyperstation/icons/mobs/rewards.dmi' icon_state = "crystalline" + +/obj/item/clothing/mask/keaton + name = "keaton mask" + desc = "A mask made to look like the mythical Keaton." + icon = 'hyperstation/icons/obj/rewards.dmi' + alternate_worn_icon = 'hyperstation/icons/mobs/rewards.dmi' + icon_state = "keaton" + flags_inv = HIDEFACE|HIDEFACIALHAIR + w_class = WEIGHT_CLASS_SMALL \ No newline at end of file diff --git a/hyperstation/code/obj/rope.dm b/hyperstation/code/obj/rope.dm index fa762176..4e029509 100644 --- a/hyperstation/code/obj/rope.dm +++ b/hyperstation/code/obj/rope.dm @@ -10,6 +10,7 @@ item_state = "rope" //This sprite is in restraints.dmi until I figure out how to refrence somewhere else cuffsound = 'sound/weapons/cablecuff.ogg' armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + price = 2 /mob/living/proc/rope_add(source) //Check to see if the rope is on, and then add effects var/mob/living/carbon/M = source diff --git a/hyperstation/code/obj/sounding.dm b/hyperstation/code/obj/sounding.dm index 29b34a8c..08715aa3 100644 --- a/hyperstation/code/obj/sounding.dm +++ b/hyperstation/code/obj/sounding.dm @@ -6,6 +6,7 @@ icon_state = "sounding_wrapped" var/unwrapped = 0 w_class = WEIGHT_CLASS_TINY + price = 1 /obj/item/sounding/attack_self(mob/user) if(!istype(user)) diff --git a/hyperstation/code/obj/vibrator.dm b/hyperstation/code/obj/vibrator.dm index 1610381a..b6655af9 100644 --- a/hyperstation/code/obj/vibrator.dm +++ b/hyperstation/code/obj/vibrator.dm @@ -13,6 +13,7 @@ var/style = "long" var/inside = FALSE var/last = 0 + price = 3 /obj/item/electropack/vibrator/Initialize() //give the device its own code . = ..() @@ -125,12 +126,14 @@ Code: U.adjustArousalLoss(intencity) //give pleasure playsound(U.loc, 'sound/lewd/vibrate.ogg', (intencity+5), 1, -1) //vibe intencity scaled up abit for sound + switch(mode) if(1) //low, setting for RP, it wont force your character to do anything. to_chat(U, "You feel pleasure surge through your [G.name]") + U.do_jitter_animation() //do animation without heartbeat if(2) //med, can make you cum to_chat(U, "You feel intense pleasure surge through your [G.name]") - U.Jitter(3) + U.do_jitter_animation() if (U.getArousalLoss() >= 100 && ishuman(U) && U.has_dna()) U.mob_climax(forced_climax=TRUE) if(3) //high, makes you stun diff --git a/hyperstation/icons/mobs/rewards.dmi b/hyperstation/icons/mobs/rewards.dmi index 294e38fc..435e46fc 100644 Binary files a/hyperstation/icons/mobs/rewards.dmi and b/hyperstation/icons/mobs/rewards.dmi differ diff --git a/hyperstation/icons/obj/clothing/neck.dmi b/hyperstation/icons/obj/clothing/neck.dmi new file mode 100644 index 00000000..dadf2026 Binary files /dev/null and b/hyperstation/icons/obj/clothing/neck.dmi differ diff --git a/hyperstation/icons/obj/economy.dmi b/hyperstation/icons/obj/economy.dmi index 7f2db7b1..dcca4543 100644 Binary files a/hyperstation/icons/obj/economy.dmi and b/hyperstation/icons/obj/economy.dmi differ diff --git a/hyperstation/icons/obj/genitals/belly.dmi b/hyperstation/icons/obj/genitals/belly.dmi index 2b4409d0..cef65c99 100644 Binary files a/hyperstation/icons/obj/genitals/belly.dmi and b/hyperstation/icons/obj/genitals/belly.dmi differ diff --git a/hyperstation/icons/obj/pole.dmi b/hyperstation/icons/obj/pole.dmi new file mode 100644 index 00000000..42c23dbe Binary files /dev/null and b/hyperstation/icons/obj/pole.dmi differ diff --git a/hyperstation/icons/obj/pole_small.dmi b/hyperstation/icons/obj/pole_small.dmi new file mode 100644 index 00000000..ddb8f9e0 Binary files /dev/null and b/hyperstation/icons/obj/pole_small.dmi differ diff --git a/hyperstation/icons/obj/rewards.dmi b/hyperstation/icons/obj/rewards.dmi index d0fc316a..8864b6ba 100644 Binary files a/hyperstation/icons/obj/rewards.dmi and b/hyperstation/icons/obj/rewards.dmi differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 6babeb65..640c4c0c 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/mob/neck.dmi b/icons/mob/neck.dmi index cf0d15b9..8c67ad8d 100644 Binary files a/icons/mob/neck.dmi and b/icons/mob/neck.dmi differ diff --git a/icons/obj/food/soupsalad.dmi b/icons/obj/food/soupsalad.dmi index 011c246b..9951e2ac 100644 Binary files a/icons/obj/food/soupsalad.dmi and b/icons/obj/food/soupsalad.dmi differ diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm index 2e9ca4dc..878b5f35 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm @@ -121,6 +121,7 @@ cost = 9 item_path = /obj/item/clothing/neck/necklace/dope + /datum/gang_item/clothing/hands name = "Decorative Brass Knuckles" id = "hand" diff --git a/modular_citadel/code/game/machinery/vending.dm b/modular_citadel/code/game/machinery/vending.dm index 1a8e4e2f..2422f268 100644 --- a/modular_citadel/code/game/machinery/vending.dm +++ b/modular_citadel/code/game/machinery/vending.dm @@ -53,6 +53,8 @@ /obj/item/reagent_containers/pill/breast_enlargement = 3, /obj/item/clothing/gloves/latexsleeves = 3, /obj/item/clothing/shoes/highheels = 3, + /obj/item/clothing/neck/stole = 2, + /obj/item/clothing/neck/stole/black = 2, /obj/item/clothing/under/polychromic/stripper = 3, /obj/item/clothing/under/polychromic/bikini = 3, /obj/item/clothing/under/polychromic/shortpants/pantsu = 3, @@ -81,6 +83,8 @@ /obj/item/clothing/mask/muzzle/ballgag = 3 ) refill_canister = /obj/item/vending_refill/kink + baseprice = 2 + /* /obj/machinery/vending/nazivend name = "Nazivend" diff --git a/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm b/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm index ff4b403b..0b97815b 100644 --- a/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm +++ b/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm @@ -11,7 +11,7 @@ strip_delay = 60 equip_delay_other = 60 materials = list(MAT_METAL=5000, MAT_GLASS=2000) - + price = 5 var/tagname = null /datum/design/electropack/shockcollar @@ -60,7 +60,7 @@ else return ..() -/obj/item/electropack/shockcollar/ui_interact(mob/user) //on_click calls this +/obj/item/electropack/shockcollar/ui_interact(mob/user) //on_click calls this var/dat = {" Frequency/Code for shock collar:
diff --git a/modular_citadel/code/modules/arousal/organs/belly.dm b/modular_citadel/code/modules/arousal/organs/belly.dm index eda51020..c2afa6ad 100644 --- a/modular_citadel/code/modules/arousal/organs/belly.dm +++ b/modular_citadel/code/modules/arousal/organs/belly.dm @@ -1,19 +1,16 @@ /obj/item/organ/genital/belly //I know, I know a belly aint a genital. but it is in the sake of code. name = "belly" - desc = "a belly." + desc = "You see a belly on their midsection." icon_state = "belly" icon = 'modular_citadel/icons/obj/genitals/breasts.dmi' zone = "chest" slot = "belly" w_class = 3 size = 1 - var/breast_values = list ("a" = 1, "b" = 2, "c" = 3, "d" = 4, "e" = 5, "f" = 6, "g" = 7, "h" = 8, "i" = 9, "j" = 10, "k" = 11, "l" = 12, "m" = 13, "n" = 14, "o" = 15, "huge" = 16, "massive" = 17, "giga" = 25, "impossible" = 30, "flat" = 0) // Note: Do not forget to define new sizes. var/statuscheck = FALSE shape = "Pair" - can_masturbate_with = TRUE masturbation_verb = "massage" - can_climax = TRUE - fluid_transfer_factor = 0.5 + can_climax = FALSE var/sent_full_message = TRUE //defaults to 1 since they're full to start @@ -27,7 +24,7 @@ var/string if(owner) if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"]) - if(ishuman(owner)) . + if(ishuman(owner)) var/mob/living/carbon/human/H = owner color = "#[skintone2hex(H.skin_tone)]" else diff --git a/modular_citadel/code/modules/arousal/organs/genitals.dm b/modular_citadel/code/modules/arousal/organs/genitals.dm index 6633f156..50ac9f44 100644 --- a/modular_citadel/code/modules/arousal/organs/genitals.dm +++ b/modular_citadel/code/modules/arousal/organs/genitals.dm @@ -429,9 +429,9 @@ genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]_[aroused_state]_[layertext]" colourcode = S.color_src - if(G.slot == "belly") + if(G.slot == "belly") //we have a different size system to the rest of the genitals genital_overlay.icon = 'hyperstation/icons/obj/genitals/belly.dmi' - genital_overlay.icon_state = "belly" + genital_overlay.icon_state = "belly_[size]" colourcode = "belly_color" diff --git a/modular_citadel/code/modules/arousal/organs/testicles.dm b/modular_citadel/code/modules/arousal/organs/testicles.dm index b46c9623..f890ffd9 100644 --- a/modular_citadel/code/modules/arousal/organs/testicles.dm +++ b/modular_citadel/code/modules/arousal/organs/testicles.dm @@ -19,7 +19,7 @@ masturbation_verb = "massage" can_climax = TRUE var/sent_full_message = TRUE //defaults to 1 since they're full to start - dontlist = TRUE + /obj/item/organ/genital/testicles/on_life() diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index 6ecca70c..add80a0b 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -105,3 +105,9 @@ path = /obj/item/toy/plush/mammal/lyricalpaws ckeywhitelist = list("lyricalpaws") +/datum/gear/cherostavikmask + name = "Keaton Mask" + category = SLOT_IN_BACKPACK + path = /obj/item/clothing/mask/keaton + ckeywhitelist = list("cherostavik") + diff --git a/modular_citadel/code/modules/client/loadout/_security.dm b/modular_citadel/code/modules/client/loadout/_security.dm index be54c276..9f0c6cec 100644 --- a/modular_citadel/code/modules/client/loadout/_security.dm +++ b/modular_citadel/code/modules/client/loadout/_security.dm @@ -1,41 +1,41 @@ /datum/gear/navyblueuniformhos - name = "Head of Security navyblue uniform" + name = "Head of Security's navyblue uniform" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/rank/head_of_security/navyblue restricted_roles = list("Head of Security") /datum/gear/navybluehosberet - name = "Head of security's Naviblue beret" + name = "Head of Security's navyblue beret" category = SLOT_HEAD path = /obj/item/clothing/head/beret/sec/navyhos restricted_roles = list("Head of Security") /datum/gear/navybluejackethos - name = "head of security's navyblue jacket" + name = "Head of Security's navyblue jacket" category = SLOT_WEAR_SUIT path = /obj/item/clothing/suit/security/hos restricted_roles = list("Head of Security") /datum/gear/navybluejacketofficer - name = "security officer's navyblue jacket" + name = "Security Officer's navyblue jacket" category = SLOT_WEAR_SUIT path = /obj/item/clothing/suit/security/officer restricted_roles = list("Security Officer") /datum/gear/navyblueofficerberet - name = "Security officer's Navyblue beret" + name = "Security Officer's navyblue beret" category = SLOT_HEAD path = /obj/item/clothing/head/beret/sec/navyofficer restricted_roles = list("Security Officer") /datum/gear/navyblueuniformofficer - name = "Security officer navyblue uniform" + name = "Security Officer's navyblue uniform" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/rank/security/navyblue restricted_roles = list("Security Officer") /datum/gear/navybluejacketwarden - name = "warden navyblue jacket" + name = "Warden's navyblue jacket" category = SLOT_WEAR_SUIT path = /obj/item/clothing/suit/security/warden restricted_roles = list("Warden") @@ -47,7 +47,7 @@ restricted_roles = list("Warden") /datum/gear/navyblueuniformwarden - name = "Warden navyblue uniform" + name = "Warden's navyblue uniform" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/rank/warden/navyblue restricted_roles = list("Warden") @@ -59,13 +59,13 @@ restricted_roles = list("Security Officer", "Warden", "Head of Security") /datum/gear/hosskirt - name = "Head of security's skirt" + name = "Head of Security's skirt" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/rank/head_of_security/skirt restricted_roles = list("Head of Security") /datum/gear/sechud - name = "Security Hud" + name = "Security HUD" category = SLOT_GLASSES path = /obj/item/clothing/glasses/hud/security restricted_roles = list("Security Officer", "Warden", "Head of Security") diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm index cb11406d..62636b42 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -49,6 +49,7 @@ path = /obj/item/clothing/under/lawyer/galaxy_blue cost = 3 + /datum/gear/galaxy_r name = "Pulsar Gonne" category = SLOT_W_UNIFORM @@ -193,7 +194,7 @@ // Pantsless Sweaters /datum/gear/turtleneck - name = "Tactitool Turtleneck" + name = "Tactifool Turtleneck" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/syndicate/cosmetic diff --git a/modular_citadel/code/modules/clothing/under/turtlenecks.dm b/modular_citadel/code/modules/clothing/under/turtlenecks.dm index fd13da11..6448116c 100644 --- a/modular_citadel/code/modules/clothing/under/turtlenecks.dm +++ b/modular_citadel/code/modules/clothing/under/turtlenecks.dm @@ -23,7 +23,7 @@ new /obj/item/clothing/under/rank/chief_medical_officer/turtleneck(src) /obj/item/clothing/under/syndicate/cosmetic - name = "tactitool turtleneck" + name = "tactifool turtleneck" desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." icon_state = "tactifool" item_state = "bl_suit" @@ -32,9 +32,6 @@ mutantrace_variation = NO_MUTANTRACE_VARIATION armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) -/obj/item/clothing/under/syndicate/tacticool - has_sensor = TRUE - // Sweaters are good enough for this category too. /obj/item/clothing/under/bb_sweater diff --git a/modular_citadel/icons/obj/genitals/penis_onmob.dmi b/modular_citadel/icons/obj/genitals/penis_onmob.dmi index 700473e0..1a315a54 100644 Binary files a/modular_citadel/icons/obj/genitals/penis_onmob.dmi and b/modular_citadel/icons/obj/genitals/penis_onmob.dmi differ diff --git a/modular_citadel/icons/obj/genitals/testicles_onmob.dmi b/modular_citadel/icons/obj/genitals/testicles_onmob.dmi index 509129e7..e5bd93a4 100644 Binary files a/modular_citadel/icons/obj/genitals/testicles_onmob.dmi and b/modular_citadel/icons/obj/genitals/testicles_onmob.dmi differ diff --git a/sound/items/vending.ogg b/sound/items/vending.ogg new file mode 100644 index 00000000..477c3c29 Binary files /dev/null and b/sound/items/vending.ogg differ diff --git a/sound/voice/Approaching.ogg b/sound/voice/Approaching.ogg new file mode 100644 index 00000000..214486bf Binary files /dev/null and b/sound/voice/Approaching.ogg differ diff --git a/sound/voice/boat.ogg b/sound/voice/boat.ogg new file mode 100644 index 00000000..f06ea3ce Binary files /dev/null and b/sound/voice/boat.ogg differ diff --git a/tgstation.dme b/tgstation.dme index e90831f0..8d4bd1f0 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -15,6 +15,7 @@ // BEGIN_INCLUDE #include "_maps\_basemap.dm" +#include "_maps\boxstation.dm" #include "code\_compile_options.dm" #include "code\world.dm" #include "code\__DEFINES\_globals.dm" @@ -3072,6 +3073,7 @@ #include "hyperstation\code\obj\lunaritems.dm" #include "hyperstation\code\obj\milking machine.dm" #include "hyperstation\code\obj\plushes.dm" +#include "hyperstation\code\obj\pole.dm" #include "hyperstation\code\obj\pregnancytester.dm" #include "hyperstation\code\obj\rewards.dm" #include "hyperstation\code\obj\rope.dm" diff --git a/tgui-next/packages/tgui/interfaces/SolarControl.js b/tgui-next/packages/tgui/interfaces/SolarControl.js index 1cfb4800..04c382b2 100644 --- a/tgui-next/packages/tgui/interfaces/SolarControl.js +++ b/tgui-next/packages/tgui/interfaces/SolarControl.js @@ -1,17 +1,17 @@ import { toFixed } from 'common/math'; import { Fragment } from 'inferno'; -import { useBackend } from '../backend'; +import { act } from '../byond'; import { Box, Button, Grid, LabeledList, NumberInput, ProgressBar, Section } from '../components'; export const SolarControl = props => { - const { act, data } = useBackend(props); + const { state } = props; + const { config, data } = state; + const { ref } = config; const { generated, - generated_ratio, - azimuth_current, - azimuth_rate, - max_rotation_rate, + angle, tracking_state, + tracking_rate, connected_panels, connected_tracker, } = data; @@ -23,7 +23,7 @@ export const SolarControl = props => {