diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index dfffb4bf..c460dd78 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -1534,7 +1534,7 @@ "aDz" = (/turf/open/floor/carpet/red,/area/crew_quarters/bar) "aDA" = (/obj/machinery/light/small{dir = 4},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) "aDB" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 8},/turf/open/floor/carpet/red,/area/crew_quarters/bar) -"aDC" = (/obj/machinery/power/apc{areastring = "/area/crew_quarters/bar"; name = "Bar APC"; pixel_y = -24},/obj/structure/cable,/turf/open/floor/carpet/red,/area/crew_quarters/bar) +"aDC" = (/obj/machinery/power/apc{areastring = "/area/crew_quarters/bar"; name = "Bar APC"; pixel_y = -24},/obj/structure/cable,/obj/effect/landmark/start/bartender,/turf/open/floor/carpet/red,/area/crew_quarters/bar) "aDD" = (/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/public/glass{name = "Dormitory"},/turf/open/floor/plasteel,/area/hallway/primary/central) "aDE" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/machinery/meter,/turf/open/floor/plating,/area/maintenance/starboard/fore) "aDF" = (/obj/machinery/atmospherics/components/binary/valve{dir = 4},/turf/open/floor/plating,/area/maintenance/starboard/fore) @@ -1598,7 +1598,6 @@ "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/structure/bed,/obj/effect/spawner/lootdrop/bedsheet,/turf/open/floor/carpet/red,/area/crew_quarters/bar) "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) @@ -1931,7 +1930,7 @@ "aLg" = (/obj/structure/chair/stool{pixel_y = 8},/turf/open/floor/wood,/area/crew_quarters/theatre) "aLh" = (/obj/structure/table/wood,/obj/item/instrument/trumpet,/turf/open/floor/carpet,/area/crew_quarters/theatre) "aLi" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/hallway/primary/port) -"aLj" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel,/area/hallway/secondary/entry) +"aLj" = (/obj/effect/turf_decal/tile/red{dir = 4},/obj/machinery/atm{pixel_y = 30},/turf/open/floor/plasteel,/area/hallway/primary/fore) "aLk" = (/obj/structure/table/wood,/turf/open/floor/carpet,/area/crew_quarters/theatre) "aLl" = (/obj/structure/table/wood,/obj/item/instrument/trombone,/turf/open/floor/carpet,/area/crew_quarters/theatre) "aLm" = (/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/hallway/primary/port) @@ -1969,6 +1968,7 @@ "aLS" = (/obj/structure/table/wood,/obj/item/instrument/saxophone,/turf/open/floor/carpet,/area/crew_quarters/theatre) "aLT" = (/obj/structure/chair/stool{pixel_y = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber/on,/turf/open/floor/wood,/area/crew_quarters/theatre) "aLU" = (/obj/structure/closet/secure_closet/freezer/meat,/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/showroomfloor,/area/crew_quarters/kitchen) +"aLV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/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,/area/crew_quarters/fitness) "aLW" = (/obj/structure/cable{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/maintenance/starboard/fore) "aLX" = (/obj/structure/cable{icon_state = "1-2"},/obj/structure/cable{icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 5},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central) "aLY" = (/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/obj/structure/cable{icon_state = "4-8"},/obj/structure/mirror{pixel_y = 32},/obj/structure/sink{pixel_y = 24},/turf/open/floor/plasteel/freezer,/area/crew_quarters/toilet) @@ -2828,7 +2828,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/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},/turf/open/floor/plasteel/dark,/area/crew_quarters/bar) +"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) "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) @@ -3155,11 +3155,13 @@ "biJ" = (/obj/machinery/vending/snack/random,/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral,/turf/open/floor/plasteel/dark,/area/crew_quarters/bar) "biK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/airalarm{pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel,/area/hallway/primary/starboard) "biL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) +"biM" = (/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/primary/central) "biN" = (/obj/effect/turf_decal/loading_area{dir = 10; icon_state = "steel_panel"; name = "steel pannel"},/turf/open/floor/plasteel,/area/hydroponics) "biO" = (/obj/effect/turf_decal/loading_area{dir = 8; icon_state = "steel_panel"; name = "steel pannel"},/turf/open/floor/plasteel,/area/hydroponics) "biP" = (/obj/item/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/light/small,/obj/item/drone_shell/snowflake,/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/aisat_interior) "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) "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) @@ -3428,7 +3430,6 @@ "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" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/structure/sign/poster/random{pixel_y = 32},/turf/open/floor/plasteel,/area/crew_quarters/fitness) "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) @@ -7312,13 +7313,13 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaadaaaaaaaadajJajJakSajJajJaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaacakTakTakTakTakTaaaaaaaaaaaaaaaaaaakUakVakWakrakXakYakZaiUalaaiMalbagdalcaldaleagdalfaldaleagdalfalgaleagdalhalialjaldaldagdaldallalmaiUalnaloalpalqalpalralsakoajdaiEasCahfanfangaqGasDasEaszdeJvhIvhIvhIjjfvhIvhIvhIorcasBrjaaaaaaeaaeaaeaaaaaaaaaaceaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaltalualtaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaadaaaaaaaadalvalwalxalyalvalzalzalzalzalzalzalzalzalzaaaaaaaaaaaaakTalAalBalCakTaaaaaaaaaaaaaaaaaaaiIaiIaiIalDalEalFalGaiUalHaldalIagdalJaldalKagdalLaldalMagdalNaldalOagdalPalQalRaldalkagdalTalUalVaiUalWalXalWalYalWalZalWalWajdaiEaiFaqGaqGaqGaqGapPapQaszarKfVupkRarDarDarDpkRarDeWKasBrjaaaaatJaaaatJaaaaadanIambanIaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaltamcaltaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvamdameamfalvamgamgalzamhamiamjalzamkalzaaaaaaaaaaadalzamlamiammalzaaaaaaaaaaaaaaaaaaaaaaaaamnaiHaiIamoampaiUamqamramsaiUamtamuamuamvamuamuamuamvamuamuamuamvamwamxamyamzamAaiUaiUaiUaiUaiUamBamCamBajcamBcxyamBamBajdamEcJgaqGatvcsRatwhoDcIXaszarKarDarDarDarDarDarDarDeWKatxwzqaaaatJaaaatJaaaaadamaamHamaaadaadaadaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaltamIaltaadaaaaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamJamJamJamJamJamJamJamJamJamJamJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvamKamLamMalvamNamOaziamQamiamRalzalzalzakTalzakTakTalzehTamTamSalzaaaaaaaaaaaaaaaaaaaiIaiIaiIamUamVamWamXajLaiUaiUaiUaiUamYamYamYamZamYamYamYanaamYamYamYamZamYamYamYanbanbancandandbYdaneamBamCamBajcamBcxyamBamBajdaiEaiFaqGctJhoDatyhoDcuiatKarKeqmarDarDugbarDarDarDeWKauvwzqaadaaeaaeaaeaadanIanIanianIanIaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaadatJaaaaltamIaltaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamJamJamJamJamJamJamJamJamJamJamJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvamKamLamMalvamNamOaziamQamiamRalzalzalzakTalzakTakTalzehTamTamSalzaaaaaaaaaaaaaaaaaaaiIaiIaiIamUamVamWamXajLaiUaiUaiUaiUamYamYamYamZamYamYamYanaamYamYamYamZamYamYamYanbanbancandaLjbYdaneamBamCamBajcamBcxyamBamBajdaiEaiFaqGctJhoDatyhoDcuiatKarKeqmarDarDugbarDarDarDeWKauvwzqaadaaeaaeaaeaadanIanIanianIanIaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaadatJaaaaltamIaltaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamJanjanjanjanjanjanjanjanjanjamJaadaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaalvalvankanlalvanmamialzamiamiamiaziamiamiannamialBamiamiamiamianoakTaaaaaaaaaaaaaaaanpanqakVanrakrakXakYakXansanbanbanbantanbanbanuanbanbanbanbanbanbanbanvanbanbanbanwanbanbanbanbanbanbanxajcanyanzanAanBanCanzajcapaanEanFaqGauDhoDhoDcuhcIXaszarKarDarDarDarDarDarDarDeWKavEwzqaaaatJaaaatJaaaanIanJanKanLanIaaaaaaaadaaaaaaaadaaaaadaaaaaaaaaatJaltaltaltamIaltaltaltaltaltaltaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamJanjanjanjanjanjanjanjanjanjamJamJanMamJamJaadaaaaaaaaaaaaalzalzalzalzalzaadaadalzanNanOanPanQamOalzalzakTakTalzalzalzalzakTalzakTakTalzanRamianSalzaaaaaaaaaaaaaaaaaaaiIaiIanTanUanVanWanXaiHanYanYanYanYanYanZaoaanYanYanYanYanYanYanYaobaocaocaocaodaoeaocaofaogaohaoianeaojaokajdajdajdajdajdajdajdaiEaolaqGaEChoDbqqhoDcujaszarKarDarDarDerQarDarDarDeWKasBrjaaaaatJaaaatJaaaanIaooaopaoqanIaaaaaaaadaaaaaaaadaaaaadaltalualtalualtaoramIamIamIamIamIamIaosaltaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadamJanjanjanjanjanjanjanjanjanjaotaouaovaowamJaadaaeaaealzalzalzaoxaoyaozalzaaaaaaalzamianOanmamiaoAalzaoBaoBaadaoBaoBaadaadaaFaaFaoCaoCalzaoDamiaoEalzaaaaaaaaaaaaaaaaaaaaaaadajLaiHaoFaiHaoGaoHaoHaoHaoIaoHaoHaoHaoJaoKaoKaoKaoLaoKaoKaoMaoNaoOaoPanGaoQanGanGanGanGaoRanGaoSaoSaoSaoSaoTaoUaoVaoWaoXaoXaoYaoZaqGbFmhoDhoDhoDcIXaszarLaGharEarFarFarFarGarFdwaasBrjaaaaaaeaaeaaeaaaanIapdapeapfanIapgapgapgapgapgalualualualtaphamIaosaltaltamIaltaltaltaltapialtaltaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadamJanjanjanjanjanjanjanjanjanjanMapjapkaplamJaadalzapmalzapnapoamiappamialzakTakTalzapqanOanmapqalzalzalzakTakTakTalzalzaaFapraadaadaaFalzalzamPalzalzaaaaaaaaaaaaaaaaaaaaaaadaiHapsakVaiHaptaoHapuapvapwapxapwaoHapyaoKapzapAapBapCaoKamYanbapDapEapFapGapGapGapGapGapHapIapGapGapGapGapGapJapKapLapMapNapOcsQaqGctzhoDcsScsTcsUcsVctyctxctyctyctycsWculctActActBrjaaadaluapValuapganIanIapWapXanIapYamIamIapZaltaqaamIaqbaltaqcamIamIaqdaltamIaltaqeaqfaltamIaqgaltaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadamJanjanjanjanjaqhanjanjanjaqiaqjapjapkaqkamJaadalzamialzaqlaqmanQaqnaqoalzaoEamiaqpxJwanOaqqamiamiamiamiamiamiamiamialzalzalzaadaaFaadaaFaqraqsaqraaaaaaaaaaaaaaaaaaaaaaaaaadaiHaqtaquaiHaqvaoHaqwaqxaqyapwapwaoHapyaoKaqzapBaqAaqBaqCamYanbandapEaiEaqDaqDaqDaqDaqDaqEaqFaqDaqDaqDaqDaqDaqDaqDaqDaqDasGaqGaqIaqGatIayGctCatIctDatzatzaEXatzatzapUaJgaqGaqGaqGaqGaqGaaaaqLamIaluapgaqMaqNaqOaqPamIamIamIaltamIaltaqQamIamIaltamIaqRaqSaqTapiamIaltaqUaqValtdPCapZaltaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadamJanjanjanjanjanjanjanjanjanjanMaqWapkaqXamJalzalzaqYalzalzalzamPaqZaraaraarbarcardarcarearfargarhalzamialzalzalzamialzarialzaaFaadaoBaadaqraqsaqraaaaaaaaaaaaaaaarjarjarjarjarjarjarjarjaptaoHarkarlarmapwarnaoHapyaroarparqarrarsaqCamYanbartapEaiEaqDaruarvautarxaryatAaqDatBatCatGaqDatHauuayzaqDasGaqGctEboeauFauFauGauHaqJaqKaqKaqKaqKaqKaqJapRaEYayHaadaadaadaadaluarNaluapgarOamIarPuyYaoramIaltaltarQaltaltarRaltaltaqTarSarTamIaltamIarUarUarUarUarUarUarUarUarUarVarVarVarVaaFarVarVaadaadaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadamJanjanjanjanjanjanjanjanjanjanMaqWapkaqXamJalzalzaqYalzalzalzamPaqZaraaraarbarcardarcarearfargarhalzamialzalzalzamialzarialzaaFaadaoBaadaqraqsaqraaaaaaaaaaaaaaaarjarjarjarjarjarjarjarjaptaoHarkarlarmapwarnaoHapyaroarparqarrarsaqCamYanbartapEaiEaqDaruarvautarxaryatAaqDatBatCatGaqDatHauuayzaqDasGaqGctEaLVauFauFauGauHaqJaqKaqKaqKaqKaqKaqJapRaEYayHaadaadaadaadaluarNaluapgarOamIarPuyYaoramIaltaltarQaltaltarRaltaltaqTarSarTamIaltamIarUarUarUarUarUarUarUarUarUarVarVarVarVaaFarVarVaadaadaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadamJanjanjanjanjanjanjanjanjanjanMarWapkarXamJarYarZasaasbasbasbasbasbasbascasdasealzalzalzalzamialzalzamiasfalzargamialzalzalzalzaoBaoBaoBaqrasgaqraaaaaaaaaaadaadarjashasiarjasjaskaslarjaptaoHapxasmapxasnapwaoHasoaspasqapBasrcagaqCamYanbassapEaiEaqDastasuasvavxasxauIaqDavyavAavBaqDavyavCbFnaqDavDaqGctFavFapRayFavHavIaqJaqKaqKaqKaqKaqKaqJapRayDayHaaaaaaaaaaaaaluamIapYapgasMaqTarPamIasNasOasPapiamIamIamIamIamIamIamIarSasQamIatOamIarUasSasTasUarUasVasWasXarUaadaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaamJanjanjanjanjanjanjanjanjanjanMarWasYasZamJamiamiataatbatcatcatcatcatcatcatdateatfaaFatgalzamiathapqargatialzatjamiamiamiatkakTaoBaoBaadaqraqsaqraaaaaaaaaarjarjarjaqsaqsarjaqsaqsaqsarjaptaoHapxatlatmatnapxaoHapyatoaoKatpatqatraoKatsanbandapEaiEaqDaqDaqDaqDaqDattazgaqDavJavAavKaqDbPPavAavLaqDasGaqGawRawTawUawUawVawWasKaqKaqKaqKaqKaqKaqJapRaEZayHatJatJatJaadaluamIctGapgatLamIatMatNatNatNatNavXatNatPamIamIamIuyYamIamIamIamIaltasOarUatQatRatRarUatSatTatUarUaoBaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadamJanjanjanjanjanjanjanjanjanjanMatVatWatXamJatYlORauaaubanRaucaudaueaufalzaugateaaFauhatfakTamiasfalzalzalzalzalzalzalzauiatkakTaadaoBaadaqraqsaqraaeaaeaaeaujaukaulaqsaqsarjarjaumarjarjaptaoHaoHaunaoHauoaoHaoHaupauqaoKaoKaoKaoKaoKauranbausapEaiEaqDaruarvaytarxawXawYaqDaqDawZaqFaqDaqDaxaaqFaqDaxbaqGaxcatDaxdaxdaxeaxfatEaqKaqKaqKaqKaqKatFasHaFaaqGaltaltaltaltaltamIaltapgapgapgapgapgapgapgapgapgaltauMauNaltaltaltaltaltaltaltaltamIauOarUatRatRauPauQatQauRarUaoBaoBaoBaoBaoBaoBaoBaoBaoBaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -7332,13 +7333,13 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJat aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaEcaBeaEdaEeaEfaEgaEhaEiazcaFraFsaFwaFxaFsaFwaFxaEkaGVaGYaGZaHaaGZaGZaGZaGZaIuaGVaBnaKiaKjaKkaKkaGjaHyaKkaKpaKraBTaxZayaaEraEsaEtaEuaEvayaaqsaEwaydaydaDiaExaEyaEzaEAaydaydayoayoayqaEBayqazwanbazxahfafmaomaGgaHtbczbdwbdxbeMaEKaEKaEKbssaEMaEKbghbghbgibeLazFaqGaqGbbVaHCaJabnbaCiaCiaCiaCiaCiaCiaCiaCibGNaltaltaltaEPaltayKaEQaERaESaETaEUaEVaEWaEVaHwaHBaHVaHWaHXaFbaFbaFbaFbaFcaFdaFeaFcaFcaFcaFcaFcaFcaFcaFfaFgaFhaCwaCwaCwaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaFiaBeaFjaFkaFlaFmaFnaFoazcaIzaYjbfNbgTbjjaCFaFqazcaIvaIwaFtaFuaElaElaElaFvaIxaIyaBnaLcaLgaKkaLhaLkaLlaKkaLnaLoaBTaFDayaaFEaFFaEtaFGaENayaaqsaFIayqaFJayoaFKaFLaFMayoaFNayqaFOaFPayqaFLayqaFQaoNaFRahfafmaombtSbtTbtUbBTattatuazFbaubaKbLfcHhazFazFazFazFazFazFaKtaITbbVaLXaGbbsrbsDcImbjkaOdaDOaDOaDOcveaLWaGmaGkaGkaGnaGiaGoaGpaCnaGqaGraGsaGtaGuaGtaHYaGwaFbaHZaIaaKIaKJaMpaGBaFcaGCaGDaFcaGEaGFaGGaGHaGIaGJaGKaGLaGMaGNaGOaGPaaaatJaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoBaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGQayUayWcEwaBeaBeaGSaGTaGUaGTaBeazcazcazcazcazcazcaGWaGXazcaIAaIBaJUaJUaJUaQKaJUaJUcGdcGeaBnaLpaLxaKkaLkaLSaLkaKkaLTaLZaBTaxZayaaHdaHeaHfaHgaHhayaaqsaHiayqaHjayoaHkaFLaHlayoaHmayqaAQaAQayqaHnayqaHoaHpaHqahfanDaomaomaomaomaomaHraHsazFazFazFbLfbjlbsGbsGaLYaMcaNmaNoaNuaNUbbVaOcaNnaJdcvtaJdcuucvtaJdaJdaJdcvuaHKaHLaHMaxpaxpaxpaHNaHOaHPaHQaHRamIaHSaHSaHSaHTaIoaFbaMraNEaOzbagbcbbhPaFcaIbaIcaFcaIdaIeaIfaIgaGIaIhaFfaFgaDYaIiaIjaGPaaaatJaaaaaaatJaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaxBaIraIlaImaIlaInbvpaLfaLjaLqaLvbjpbswaJLaCFbyiazccGfcGgcGhcGicGjcGkcGlcGmcGncGoaBnaMaaMbaKkaKkaKkaKkaKkaMNaMaaBTaxZayaaIEaIFaIGaFGaIHayaaqsapyayqaIIcbvaFLaFLaFLaIJaIKayqcFwcFxaHFaIMaINaIOaIPbULbUQaISaIQcFAcFBaITaOuaIVaIWazFbaubbpcHxbbcbbcbbcbbcaOvazFaOwaOyaVmbbVbpAaVnaJdaBQaBRaDxaOxaNsaFHaNraJiaJiaJjaJkaJlaJiaJmaHSaHSaJnaHTaHSaHSaHSaJoaJpaHTaHUaFbaJqaJraJsaJtaJuaJvaFcaJwaJxaJyaJzaJAaJBaJCaJDaIhaFfaJEaDYaGNaJFaGPaaaaaaaaaaaaatJaaaaMzaMzaMzaMzaMzaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaxBaJGaJHaJIaJHaJJaJHaJHaJHaJKaLOcFCbyfaJLaJMaJLazcaJNaJOaJNaBnaBnaBnaBnaJNaJPaJQaBnaBTaMPaNjaNjaNkaNjaNjaNlaBTaBTaJXayaaJYayaaJZaKaaKbayaarjaoJayqayqayqaAQaKcaAQayqayqayqcFEcFFcFGaKdaIPaIPaIPaIPaIPaKecFHcFIcFJaITaWGaIVaKgazFazFazFazFazFazFazFazFaKqazFaWIaWIaOCbbVbpAaWJaELaPLaDBaDCaOmaDzaDzaEOaJiaLUaKuaKvaKwaJiaKxaKyaKzaKAaKBaKCaKDaKEaKFaKGaHTaHUaFbaKHaMpaMqbmcaMpaKKaFcaKLaKMaKNaKOaKPaKQaKRaFcaFcaKSaFgaDYaIiaIjaGPaaaaaaaaaaaaatJaaaaMzaNIaNJaNLaMzaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauSaKTaxBaKUaKVaKWaKXaKYaKZaweaLaaLbaxBaIraNXaNYaNYaNYaOaaNYbzEaNYaNYaNYaNYaNYaNYbSqaObbSxbTEbUPaNYaNYaNYaNYaNYbVLaNYbVMbWDbWEaLraLmaLsaLmaLtaMWaLuaOeaLwaLRaEEaIRaIRaIRaLNaLPaLPbiFaLPaLPaLAaLBaLCaLDaLEaLFaLGaLPaLPcFDaLHaLIaLJaLKaPJbcXaNKbiGaLPbiHcvEbAIaXUaYkaZMaZMaZMbaEbbbbbRaJdcvtaGcaJdaJdaJdaJdaJdaJiaMdaKuaMeaMfaJiaJiaMgaMhaMiaMjaMkaMlaMmaMnaMoaHTaHUaFbaGzboFaMpaNDaMpaMpaFcaMsaMtaFcaMuctNaKRaKRaFcaMvaMwaMxaDYaCwaCwaCwaMyaMzaMzaMzaMzaMyaMycExaQjaOXaMzaaaatJaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaxBaIraIlaImaIlaInbvpaLfbcxaLqaLvbjpbswaJLaCFbyiazccGfcGgcGhcGicGjcGkcGlcGmcGncGoaBnaMaaMbaKkaKkaKkaKkaKkaMNaMaaBTaxZayaaIEaIFaIGaFGaIHayaaqsapyayqaIIcbvaFLaFLaFLaIJaIKayqcFwcFxaHFaIMaINaIOaIPbULbUQaISaIQcFAcFBaITaOuaIVaIWazFbaubbpcHxbbcbbcbbcbbcaOvazFaOwaOyaVmbbVbpAaVnaJdaBQaBRaDxaOxaDzaFHaNraJiaJiaJjaJkaJlaJiaJmaHSaHSaJnaHTaHSaHSaHSaJoaJpaHTaHUaFbaJqaJraJsaJtaJuaJvaFcaJwaJxaJyaJzaJAaJBaJCaJDaIhaFfaJEaDYaGNaJFaGPaaaaaaaaaaaaatJaaaaMzaMzaMzaMzaMzaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUayWaxBaJGaJHaJIaJHaJJaJHaJHaJHaJKaLOcFCbyfaJLaJMaJLazcaJNaJOaJNaBnaBnaBnaBnaJNaJPaJQaBnaBTaMPaNjaNjaNkaNjaNjaNlaBTaBTaJXayaaJYayaaJZaKaaKbayaarjaoJayqayqayqaAQaKcaAQayqayqayqcFEcFFcFGaKdaIPaIPaIPaIPaIPaKecFHcFIcFJaITaWGaIVaKgazFazFazFazFazFazFazFazFaKqazFaWIaWIaOCbbVbpAaWJaELaPLaDBaDCaOmaDzaDzaNsaJiaLUaKuaKvaKwaJiaKxaKyaKzaKAaKBaKCaKDaKEaKFaKGaHTaHUaFbaKHaMpaMqbmcaMpaKKaFcaKLaKMaKNaKOaKPaKQaKRaFcaFcaKSaFgaDYaIiaIjaGPaaaaaaaaaaaaatJaaaaMzaNIaNJaNLaMzaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauSaKTaxBaKUaKVaKWaKXaKYaKZaweaLaaLbaxBaIraNXaNYaNYaNYaOaaNYbzEaNYaNYaNYaNYaNYaNYbSqaObbSxbTEbUPaNYaNYaNYaNYaNYbVLaNYbVMbWDbWEaLraLmaLsaLmaLtaMWaLuaOeaLwaLRaEEaIRaIRaIRaLNbiMaLPbiFaLPaLPaLAaLBaLCaLDaLEaLFaLGaLPaLPcFDaLHaLIaLJaLKaPJbcXaNKbiGbiMbiHcvEbAIaXUaYkaZMaZMaZMbaEbbbbbRaJdcvtaGcaJdaJdaJdaJdaJdaJiaMdaKuaMeaMfaJiaJiaMgaMhaMiaMjaMkaMlaMmaMnaMoaHTaHUaFbaGzboFaMpaNDaMpaMpaFcaMsaMtaFcaMuctNaKRaKRaFcaMvaMwaMxaDYaCwaCwaCwaMyaMzaMzaMzaMzaMyaMycExaQjaOXaMzaaaatJaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJaaaaaaaaaaaaaaaaaaaaaaaaayUaRNayUayUayUayUayUayUaRNayUaaaauSaBdaMAaKUaMBaMCaMDaMEaMFaweaMGaLbaMHaIkaLdaMIaMJaMLaMKaMLaMMaLeaLeaLeaLeaLeaLeaLeaLiaLdaLebXCaLeaLeaPKaPOaMQaMRaMQaMRaMSaMQaMTaMQaMUaMQaMVaOnaMXaMYaMZaIPaIPaIPaIPaIPaIPaIPaIPaLzaIPaIPaNaaNbaNcaNdaNeaNfaNgaIPaIPaLzaIPaNhaIPaIPaIPaIPaIPaIPaIPaNiaIPaIPaIPaLzaIPaIPaIPaIPaIPbbXaJdaKsaNpaPQaWKaQFaJdaQGaJiaNvaKuaNwaNxaNyaJiaHSaHSaNzaHSaHSaHSaNAaNBaNAaHTaHUaFbaFbaFbbtJbtKaFbaFbaFcaFcaFcaFcaFcaFcaFcaNFaFcaFfaFfaFgaDYaNGaNHaCwaOYaPaaPbaQgaQkaQlaMyaQmaQjaOXaMzatJatJatJatJatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDaGRaNMatJatJatJatJauSaAaauSayUaRJayUaNNaNOaNPaNQayUaRJayUayUauSayWaxBaKUaNRaNSaMDaMEaMFaweaNTaLbaxBaPmaPnaPvbXDaPwaPwaPwaPxaPyaQCaNVaNZaPwaPwaPwaQEcGpaPwcHdcHecHecHfaSyaQIaOgaOfaOgaOhaOiaOjaOlaOkaQMaRPaWUaOoaOpaIPaOqaOqaOqaOraOqaOqaOqaOqaOsaOqaOqaOqaOqaOqaOqaOtaOqaOqaOqaOqaPPaOqaOqaOqaOqaOqaOqaOqaOqaIPaIPaIPbfQbfQaRfbfQbfQbfQbfQbfQaRiaJdaRlaKoaJhaLQaLQaJdaltaJiaOAaOBaODaWFaOEaJiaHSaOFaOGaOHaOIaKmaOHaOJaOKaHTaHUaFbaOLaOLaOMaONaOOaOOaOPaFbaOQaORaOSaCwaFfaGNaOTaFfaFfaOUaOVaCwaOWaCwaQnbamaRkaRkbcjaSWaMyaSXaOZaSYaMzaMzaMzaMzaMzaMzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDbanaaaaaaaaaaaaaaaaweawfaweayUaXfayUayWaxBaxBayXayUaXfayUaPcaPdaPeaxBaKUaPfaPgaKXaPhaKZaweaPiaLbaLOcFKcFLaPjaPkaPlaPlaPlaPlaPlaPlaQHaQLaPlaPoaPlaPlaPlaPpaPqaPraPqaPsaPtaPuaYMaLeaRObeuaRZbexbhKaPzaScaPAaPAaPMaRgaRmaILaILaILaILaILaILaILaILaPCaPDaPEaPFaPEaPEaPEaPGaPEaPHaPEaPIaPCaILaILaILaILaILaILaILaILaPMaTSaUTaJdaJdaJdaJdcuTbeNbeNcuTcwFaJdaRsbjnbMRcvDcvbaJiaRnaJiaJiaPRaJkaJiaJiaJiaJiaOHaPSaPTaPTaPTaPTaPUaOHaHTaHUaFbaPVaMpaOMaONaMpaMpaPWaFbaPXaPYaPZaCwaFfaIiaQaaQbaQbaQcaQdaQeaQfaCwaRkbfTbqAbTpchDaPbaMyaUsaVCbspaXcaRkaRkaXdaRkbkIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaQoaaaaaaaaaaxwaxyaxzayTaQpbvpaQqaPeaxBaxBaQraQqbvpaQpaPeaxBaxBaxBaQsaQtaQuaQvaQwaQxcFMaQyaQzaLOcFNcFOaPjaQBaPlaRQaRRaRSaRUaSLaSMaThaTmaTpaUeaUfaUCaPpaQNaQOaQPaPsaQQaPuaPuaQRaPuaPuaPAaPAaQSaQTaPAaPAaPAaQUbiLbbeaILaaaaaaaaaaaaaaaaaaaaaaPCaKnaQVaQWaQXaQYaQZaRaaRbaRcaRdaReaPCaaaaaaaaaaaaaaaaaaaaaaILaVNaIPbjDaJdaGaaRjaTTaTUcwZcwZaWHbcxbcWbdaaSaaSaaSacvaaVoaSBaRoaRpaRqaRraRtaRuaSuaJiaOHaRvaVsbiNbiNbiOaRxaOHaHTaRyaFbaRzaRzxNJaONaRAaRAaRBaFbaFbaRCaFbaCwaRDaGNaOTaREaRFaOUaOVaCwaCwaCwaYNcDRcEibbkbblbcgaMyaRGaRHaMzaMzaMzaMzaMzaMzaRIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaaaaQoaaaaaaaaaaxwaxyaxzayTaQpbvpaQqaPeaxBaxBaQraQqbvpaQpaPeaxBaxBaxBaQsaQtaQuaQvaQwaQxcFMaQyaQzaLOcFNcFOaPjaQBaPlaRQaRRaRSaRUaSLaSMaThaTmaTpaUeaUfaUCaPpaQNaQOaQPaPsaQQaPuaPuaQRaPuaPuaPAaPAaQSaQTaPAaPAaPAaQUbiLbbeaILaaaaaaaaaaaaaaaaaaaaaaPCaKnaQVaQWaQXaQYaQZaRaaRbaRcaRdaReaPCaaaaaaaaaaaaaaaaaaaaaaILaVNaIPbjDaJdaGaaRjaTTaTUcwZcwZaWHbiSbcWbdaaSaaSaaSacvaaVoaSBaRoaRpaRqaRraRtaRuaSuaJiaOHaRvaVsbiNbiNbiOaRxaOHaHTaRyaFbaRzaRzxNJaONaRAaRAaRBaFbaFbaRCaFbaCwaRDaGNaOTaREaRFaOUaOVaCwaCwaCwaYNcDRcEibbkbblbcgaMyaRGaRHaMzaMzaMzaMzaMzaMzaRIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRMatJjXDbanaaaaaaaaaaaaaaaaweaXgawgaRKaRLaRLaRLaRLaRLaRLaRLaRLaRKaRLaRLazaaxBaPmaXbaVOaVPaXbaVTcFPaWNaXbaXyaPjaPjaPjaQBaPlaZfaQDaQDaQDaQDaQDaQDaQDaQDaQDaQDaUIaPpaRVaQOaQOaPsaQQaPuaRWaRXaRXaRYaPAaSdaTxaSbaTAaUNaSebbVbiLbbeaILaaaaaaaaaaaaaPCaPCaPCaPCaSgaShaTHaSjaSkaSiaSmaSnaTHaSlaSvaPCaPCaPCaPCaaaaaaaaaaaaaILaVNaIPbjDaJdcuYcxiaKoaKoaKoaKokkzcvFaSfaSqaKoaKoaKogmfaVoaSBaSCaSDaSEaSFaSGaSHaSBaSIaSJaSKbiQaZubbdbiRaSNaOHaHTaHUaFbaMpaMpaOMaONaRAaRAaMpaSOaSPaMpaSQaCwaKSaSRaSSaREaREaSTaSUaSVaCwbchbcicEhcErbckaZObdjbdmbdnbdobwDbetaRkaRkaRkaRkbofaTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajXDbclcEeatJatJatJatJauSauSauSauSayUayUayUayUayUayUayUayUauSauSauSaAgaTbaTcaTcaTdaTcaTcaTcaTcaTeaTcaTcaPjaQAaTfaTgaPlbcyaQDaTiaTjaTkaTlaTkaTnaToaQDaQDaVMaPpaTqaTraTsaPsaQQaPuaTtaTuaTvaTwaPAaUOaTyaSbaTzaUPaSebbVaPBbbeaILaILaTBaPCaPCaPCaTCaTDaTEaTFaTGaTHaTIaTJaTHaTKaTHaTLaTMaTNaTOaTPaTQaPCaPCaPCaTBaILaILbDlaLzbbfaJdaSraKocxeaNqcxfcwAcxgaNqaSscwAcxgcuVcwIgmfaVoaSBaSBaStaTXaTYaTZaUaaSBaUbaUcaUdbiQbejbelbiRaUgaUhaHTaHUaFbaUiaUiaOMaONaUjaMpaMpaUkkkGaUlaUmaCwaUnaUoaUpaREaREaUqaUraFfaCwbewaQjaQhcEubckaZPbfVbfWaQhaQichSaMzaMzaMzaMzaMzaMzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaatJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayUcEAayWaUtaTcaUuaUvaUwaUxaUwaUyaUzaUwaTcjflaRTaUAaUBaPlbfaaUDaUEaUFaUGaUHaUGaUJaUKaULaUMaUIaPpaPpaPpaPpaPsaQQaPuaPuaPuaPuaPuaPAaUQbgfbhQbhRbhVaSebbVaIPbbeaBuaIRaURaUSaZQaPCaUUaUXaUWaUXaUYaUXaUZaVaaVbaVcaVdaVeaVfaVdaVgaSoaViaPCaZRaUSaVkaVlaCTaVNaIPaxxaJdaSwvaYcwDcwXnMVwLlcwHhdlaSzwLlcwHnniwSVgmfaJixtNaSBbgZbiVaVpaVpaUaaWLaJiaVraUdbiWbiXbiXbiYaUgaVtaHTaVuaFbaFbaFbaOMaONaVvaVwaMpaVxaVybqzaVzaCwaFfaSRaSSaREaREaVAaSUaVBaCwbpgaQjaQhcEubqBbjhbsdbfWaQhaQichSaMzaZNaZOaZPaMzbseaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 2a57e7bb..f4e0c316 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -64,6 +64,7 @@ #define INIT_ORDER_TICKER 9 #define INIT_ORDER_MAPPING 8 #define INIT_ORDER_NETWORKS 7 +#define INIT_ORDER_ECONOMY 21 #define INIT_ORDER_ATOMS 6 #define INIT_ORDER_LANGUAGE 5 #define INIT_ORDER_MACHINES 4 diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index d027a3cf..9048d77b 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -442,6 +442,12 @@ SUBSYSTEM_DEF(job) if(CONFIG_GET(number/minimal_access_threshold)) to_chat(M, "As this station was initially staffed with a [CONFIG_GET(flag/jobs_have_minimal_access) ? "full crew, only your job's necessities" : "skeleton crew, additional access may"] have been added to your ID card.") + if(ishuman(H)) + var/mob/living/carbon/human/wageslave = H + to_chat(M, "Your account ID is [wageslave.account_id]") + to_chat(M, "You do not have a pin, can set your pin at a ATM.") + H.add_memory("Your account ID is [wageslave.account_id].") + if(job && H) if(job.dresscodecompliant)// CIT CHANGE - dress code compliance equip_loadout(N, H) // CIT CHANGE - allows players to spawn with loadout items diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 99f8035e..99b7c577 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -19,6 +19,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) var/mode = 0 var/printing = null var/target_dept = 0 //Which department this computer has access to. 0=all departments + var/datum/bank_account/account/selectedbank //Cooldown for closing positions in seconds //if set to -1: No cooldown... probably a bad idea @@ -250,6 +251,16 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) dat += "" dat += "" + // Bank management + else if(mode == 4) + dat += {"Return + "} + for(var/datum/bank_account/account in SSeconomy.bank_accounts) + dat += {"" + dat += "" + + dat += "
Bank Accounts
[account.account_holder] - [account.account_id]"} + dat += "Assign to ID
" else var/list/header = list() var/scan_name = inserted_scan_id ? html_encode(inserted_scan_id.name) : "--------" @@ -266,6 +277,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) Target: Remove [target_name] || Confirm Identity: Remove [scan_name]
Access Crew Manifest
+ Access Bank Accounts
[!target_dept ? "Job Management
" : ""] Log Out"} @@ -443,6 +455,17 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) if(access_allowed == 1) inserted_modify_id.access += access_type playsound(src, "terminal_type", 50, FALSE) + if ("bankassign") + if (authenticated == 2) + var/datum/bank_account/account = locate(href_list["assign_bank"]) + if (inserted_modify_id && account) + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + to_chat(usr, "Bank account: [account.account_id], has been assigned to the ID.") + inserted_modify_id.registered_account = account + else + to_chat(usr, "There is no id inserted to modify.") + + if ("assign") if (authenticated == 2) var/t1 = href_list["assign_target"] diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index b366b571..5a1d0a43 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -170,7 +170,7 @@ var/registered_name = null // The name registered_name on the card var/assignment = null var/access_txt // mapping aid - + var/datum/bank_account/registered_account /obj/item/card/id/Initialize(mapload) diff --git a/code/game/objects/items/stacks/cash.dm b/code/game/objects/items/stacks/cash.dm index 94f6fca2..845fc433 100644 --- a/code/game/objects/items/stacks/cash.dm +++ b/code/game/objects/items/stacks/cash.dm @@ -19,7 +19,7 @@ /obj/item/stack/spacecash/proc/update_desc() var/total_worth = amount*value - desc = "It's worth [total_worth] credit[( total_worth > 1 ) ? "s" : ""]" + desc = "A outdated form of currency, It's worth [total_worth] credit[( total_worth > 1 ) ? "s" : ""]" /obj/item/stack/spacecash/merge(obj/item/stack/S) diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index 2f56fe25..30d3d1ed 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -58,7 +58,7 @@ var/list/mind_traits // Traits added to the mind of the mob assigned this job var/list/blacklisted_quirks //list of quirk typepaths blacklisted. - + var/list/alt_titles = list() //Only override this proc @@ -90,6 +90,15 @@ if(!H) return FALSE + if(!visualsOnly) + var/datum/bank_account/bank_account = new(H.real_name, src) + bank_account.account_holder = H.real_name + bank_account.account_job = src + bank_account.account_id = rand(111111,999999) //give account ID! + //bank_account.account_pin = rand(1000,9999) //give random pin! + bank_account.account_balance = 50 + H.account_id = bank_account.account_id + if(CONFIG_GET(flag/enforce_human_authority) && (title in GLOB.command_positions)) if(H.dna.species.id != "human") H.set_species(/datum/species/human) @@ -230,6 +239,13 @@ C.update_label(C.registered_name, preference_source.prefs.alt_titles_preferences[J.title]) else C.update_label() + + for(var/A in SSeconomy.bank_accounts) + var/datum/bank_account/B = A + if(B.account_id == H.account_id) + C.registered_account = B + B.bank_cards += C + break H.sec_hud_set_ID() var/obj/item/pda/PDA = H.get_item_by_slot(pda_slot) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index ea25104c..b30f5ab6 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -68,5 +68,5 @@ var/static/list/can_ride_typecache = typecacheof(list(/mob/living/carbon/human, /mob/living/simple_animal/slime, /mob/living/simple_animal/parrot)) var/lastpuke = 0 var/last_fire_update - + var/account_id can_be_held = "micro" diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index 93c9ce32..5fa5046a 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -132,6 +132,7 @@ to_chat(src, "Use of ranged weaponry would bring dishonor to the clan.") return FALSE + /mob/living/carbon/human/can_see_reagents() . = ..() if(.) //No need to run through all of this if it's already true. diff --git a/hyperstation/code/__DEFINES/economy.dm b/hyperstation/code/__DEFINES/economy.dm new file mode 100644 index 00000000..7cb6fc6a --- /dev/null +++ b/hyperstation/code/__DEFINES/economy.dm @@ -0,0 +1,6 @@ +#define STARTING_PAYCHECK 50 + +//ID bank account support defines. +#define ID_NO_BANK_ACCOUNT 0 +#define ID_FREE_BANK_ACCOUNT 1 +#define ID_LOCKED_BANK_ACCOUNT 2 \ No newline at end of file diff --git a/hyperstation/code/controllers/subsystem/economy.dm b/hyperstation/code/controllers/subsystem/economy.dm new file mode 100644 index 00000000..b69e29c8 --- /dev/null +++ b/hyperstation/code/controllers/subsystem/economy.dm @@ -0,0 +1,9 @@ +SUBSYSTEM_DEF(economy) + name = "Economy" + wait = 5 MINUTES + init_order = INIT_ORDER_ECONOMY + runlevels = RUNLEVEL_GAME + var/roundstart_paychecks = 5 + var/budget_pool = 35000 + var/list/generated_accounts = list() + var/list/bank_accounts = list() //List of normal accounts (not department accounts) \ No newline at end of file diff --git a/hyperstation/code/modules/economy/account.dm b/hyperstation/code/modules/economy/account.dm new file mode 100644 index 00000000..039ab448 --- /dev/null +++ b/hyperstation/code/modules/economy/account.dm @@ -0,0 +1,29 @@ +#define DUMPTIME 3000 + +/datum/bank_account + var/account_holder = "Some pleb" + var/account_balance = 0 + var/account_offstation_balance = 0 + var/account_pin = 0 + var/account_dna = "" + var/datum/job/account_job + var/list/bank_cards = list() + var/add_to_accounts = TRUE + var/transferable = TRUE + var/account_id + var/withdrawDelay = 0 + +/datum/bank_account/New(newname, job) + if(add_to_accounts) + if(!SSeconomy) + log_world("Wack") + SSeconomy.bank_accounts += src + account_holder = newname + account_job = job + account_id = rand(111111,999999) + +/datum/bank_account/Destroy() + if(add_to_accounts) + SSeconomy.bank_accounts -= src + return ..() + diff --git a/hyperstation/code/obj/economy.dm b/hyperstation/code/obj/economy.dm index e69de29b..388fccf5 100644 --- a/hyperstation/code/obj/economy.dm +++ b/hyperstation/code/obj/economy.dm @@ -0,0 +1,169 @@ +//Hyper station economy. Because coding it yourself is easier than port sometimes. + +/obj/machinery/atm + name = "automated teller machine" + desc = "a wall mounted electronic banking outlet for accessing your bank account." + icon = 'hyperstation/icons/obj/economy.dmi' + icon_state = "atm" + max_integrity = 250 + integrity_failure = 100 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30) + use_power = IDLE_POWER_USE + idle_power_usage = 0 + active_power_usage = 0 + power_channel = ENVIRON + resistance_flags = FIRE_PROOF + var/obj/item/card/held_card + var/user = "" + light_power = 0 + light_range = 7 + light_color = "#ff3232" + var/pin = 0 + +/obj/machinery/atm/ui_interact(mob/user) + . = ..() + var/dat = {""} + dat += "

" + dat += "

ATM" + dat += "

Welcome to Hyper Station 13's Automated Teller Service." + dat += "

" + if(!held_card) + dat += "

Welcome, please insert your ID to continue." + else + dat += "

Welcome user, [held_card ? user : "------"]

" + var/obj/item/card/id/idcard = held_card + if(idcard.registered_account) + dat += "

Account ID: ([idcard.registered_account.account_id])" + else + dat += "

Error, this account number does not exsist, please contact your local administration." + + if(idcard.registered_account) + if(!idcard.registered_account.account_pin || pin == idcard.registered_account.account_pin) + dat += "

Balance: $[idcard.registered_account.account_balance]" + //dat += "

Offstation Balance: " + dat += "

" + dat += "Withdraw" + dat += "Change Pin" + //dat += "Account Settings" + dat += "Eject" + else + dat += "

Please enter your bank pin to continue!" + dat += "

" + dat += "[pin ? pin : "----"]

" + + dat += "

" + + dat += "

" + + + var/datum/browser/popup = new(user, "atm", "ATM") + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(icon, icon_state), 500,300) + + popup.open() + +/obj/machinery/atm/attackby(obj/item/I, mob/living/user) + if(istype(I, /obj/item/card)) //input id! + if(!held_card) + var/obj/item/card/id/idcard = I + if(!user.transferItemToLoc(I, src)) //check if you can put it in + return + held_card = idcard + user = idcard.registered_name + pin = "" + playsound(src, 'sound/machines/button.ogg', 50, FALSE) + src.ui_interact(usr) + + if(istype(I, /obj/item/stack/credits)) //feed money back into the machine! dont need a pin to donate stuff. + if(held_card) + var/obj/item/stack/credits/cred = I + var/obj/item/card/id/idcard = held_card + idcard.registered_account.account_balance = (idcard.registered_account.account_balance+cred.amount) + to_chat(usr, "You insert [cred] into the ATM.") + src.ui_interact(usr) + del(cred) + +/obj/machinery/atm/Topic(href, href_list) + . = ..() + if(..()) + return + + if(href_list["card"]) + if(held_card) + if(usr.CanReach(src)) + playsound(src, 'sound/machines/button.ogg', 50, FALSE) + if(usr.put_in_hands(held_card)) + to_chat(usr, "You take the ID out of the slot.") + held_card = null + else + to_chat(usr, "The machine drops the ID onto the floor!") + held_card = null + pin = "" + user = "" + + if(href_list["pin"]) + playsound(src, get_sfx("terminal_type"), 25, 1) + var/pininput = input(user, "Input pin", "Pin Number") as num|null + if(pininput) + if(pininput > 9999 || pininput < 1000) + to_chat(usr, "[src.name] buzzes, you must input a 4 digit number between 1000 and 9999.") + return + pin = max(min( round(text2num(pininput)), 9999),1000) //4 numbers or less. + var/obj/item/card/id/idcard = held_card + if(pin == idcard.registered_account.account_pin) + to_chat(usr, "[src.name] beeps, accepting the pin.") + else + to_chat(usr, "[src.name] buzzes, denying the pin.") + + if(href_list["changepin"]) + playsound(src, get_sfx("terminal_type"), 25, 1) + var/pinchange = input(user, "Input pin", "Pin Number") as num|null + if(pinchange > 9999 || pinchange < 1000) + to_chat(usr, "[src.name], you must have a 4 digit number for a pin and be between 1000 and 9999.") + return + if(pinchange) + var/pinchange2 = input(user, "Confirm pin", "Confirm pin") as num|null //time to confirm! + if(pinchange == pinchange2) + var/obj/item/card/id/idcard = held_card + idcard.registered_account.account_pin = pinchange + to_chat(usr, "[src.name] beeps, your pin has been changed to [pinchange]!.") + else + to_chat(usr, "[src.name] buzzes, your pins did not match!") + pin = "" + + if(href_list["withdraw"]) + playsound(src, get_sfx("terminal_type"), 25, 1) + if(held_card) + var/obj/item/card/id/idcard = held_card + if(idcard.registered_account) + var/amount = input(user, "Choose amount", "Withdraw") as num|null + if(amount>0) + amount = max(min( round(text2num(amount)), idcard.registered_account.account_balance),0) //make sure they aint taking out more then what they have + to_chat(usr, "The machine prints out [amount] credits.") + idcard.registered_account.account_balance = (idcard.registered_account.account_balance-amount) //subtract the amount they took out. + var/obj/item/stack/credits/C = new /obj/item/stack/credits/(loc) + C.amount = amount + if(usr.put_in_hands(C)) + to_chat(usr, "You take [C] out of the ATM.") + + src.ui_interact(usr) + + +//Money, Well, get back, I'm all right Jack, Keep your hands off of my stack. +//making our own currency, just to stop exploits (for now) + +/obj/item/stack/credits + name = "credits" + singular_name = "credit" + desc = "Legal tender, a bundle of shiny metalic looking notes." + icon = 'hyperstation/icons/obj/economy.dmi' + icon_state = "cash" + amount = 1 + max_amount = 99999999 + throwforce = 0 + throw_speed = 2 + throw_range = 2 + w_class = WEIGHT_CLASS_TINY + full_w_class = WEIGHT_CLASS_TINY + resistance_flags = FLAMMABLE + var/value = 1 diff --git a/hyperstation/icons/obj/economy.dmi b/hyperstation/icons/obj/economy.dmi new file mode 100644 index 00000000..7f2db7b1 Binary files /dev/null and b/hyperstation/icons/obj/economy.dmi differ diff --git a/tgstation.dme b/tgstation.dme index d2fe1978..e90831f0 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3019,6 +3019,8 @@ #include "code\modules\VR\vr_sleeper.dm" #include "code\modules\zombie\items.dm" #include "code\modules\zombie\organs.dm" +#include "hyperstation\code\__DEFINES\economy.dm" +#include "hyperstation\code\controllers\subsystem\economy.dm" #include "hyperstation\code\datums\elements\holder_micro.dm" #include "hyperstation\code\datums\mood_events\events.dm" #include "hyperstation\code\datums\ruins\lavaland.dm" @@ -3050,6 +3052,7 @@ #include "hyperstation\code\modules\clothing\under\under.dm" #include "hyperstation\code\modules\crafting\bounties.dm" #include "hyperstation\code\modules\crafting\recipes.dm" +#include "hyperstation\code\modules\economy\account.dm" #include "hyperstation\code\modules\integrated_electronics\input.dm" #include "hyperstation\code\modules\mob\mob_helpers.dm" #include "hyperstation\code\modules\patreon\patreon.dm" @@ -3062,6 +3065,7 @@ #include "hyperstation\code\obj\bluespace sewing kit.dm" #include "hyperstation\code\obj\condom.dm" #include "hyperstation\code\obj\decal.dm" +#include "hyperstation\code\obj\economy.dm" #include "hyperstation\code\obj\fluff.dm" #include "hyperstation\code\obj\kinkyclothes.dm" #include "hyperstation\code\obj\leash.dm"