From 6859279d3e4f81b0be48c13f8ddb271c1b2beb9f Mon Sep 17 00:00:00 2001 From: Enric Gabriel <43283559+SandPoot@users.noreply.github.com> Date: Mon, 20 Jul 2020 01:20:49 -0300 Subject: [PATCH] CentCom Teleporters! (#25) --- _maps/map_files/BoxStation/BoxStation.dmm | 11 +- _maps/map_files/CogStation/CogStation.dmm | 21 +- .../map_files/Deltastation/DeltaStation2.dmm | 38 +- _maps/map_files/KiloStation/KiloStation.dmm | 8 +- _maps/map_files/LambdaStation/lambda.dmm | 21 +- _maps/map_files/MetaStation/MetaStation.dmm | 17 +- _maps/map_files/OmegaStation/OmegaStation.dmm | 21 +- _maps/map_files/PubbyStation/PubbyStation.dmm | 6 +- _maps/map_files/SmolStation/SmolStation.dmm | 30 +- _maps/map_files/Snaxi/Snaxi.dmm | 101 +--- sandcode/code/game/machinery/cryopod.dm | 500 ++++++++++++++++++ tgstation.dme | 1 + 12 files changed, 644 insertions(+), 131 deletions(-) create mode 100644 sandcode/code/game/machinery/cryopod.dm diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 5ab3dca25f..d047ea9ac3 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -59680,6 +59680,9 @@ "vsM" = ( /obj/machinery/power/apc/auto_name/south, /obj/structure/cable, +/obj/machinery/computer/cryopod_tele{ + pixel_y = -37 + }, /turf/open/floor/carpet, /area/crew_quarters/cryopod) "vsT" = ( @@ -60082,9 +60085,7 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/main) "woR" = ( -/obj/machinery/cryopod{ - dir = 1 - }, +/obj/machinery/cryopod_tele, /turf/open/floor/carpet, /area/crew_quarters/cryopod) "wph" = ( @@ -91009,8 +91010,8 @@ atf dgz tqg ujF -ujF -ujF +woR +woR dgz aaa aJn diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm index 182f1a4f27..900bf331e7 100644 --- a/_maps/map_files/CogStation/CogStation.dmm +++ b/_maps/map_files/CogStation/CogStation.dmm @@ -15686,8 +15686,9 @@ /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "aIv" = ( -/obj/machinery/cryopod{ - dir = 8 +/obj/machinery/cryopod_tele, +/obj/machinery/computer/cryopod_tele{ + pixel_y = 27 }, /turf/open/floor/circuit/green, /area/crew_quarters/cryopod) @@ -16543,13 +16544,11 @@ name = "Research Sector" }) "aJW" = ( -/obj/machinery/cryopod{ - dir = 8 - }, /obj/machinery/firealarm{ dir = 1; pixel_y = -26 }, +/obj/machinery/cryopod_tele, /turf/open/floor/circuit/green, /area/crew_quarters/cryopod) "aJX" = ( @@ -21254,6 +21253,9 @@ /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 6 }, +/obj/machinery/computer/cryopod{ + pixel_y = 28 + }, /turf/open/floor/circuit/green, /area/crew_quarters/cryopod) "aTM" = ( @@ -21832,9 +21834,6 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/fitness/cogpool) "aVg" = ( -/obj/machinery/computer/cryopod{ - pixel_y = 28 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, @@ -71905,6 +71904,10 @@ /obj/machinery/atmospherics/pipe/manifold/supplymain/visible, /turf/open/floor/plasteel, /area/engine/atmos) +"ePg" = ( +/obj/machinery/cryopod_tele, +/turf/open/floor/circuit/green, +/area/crew_quarters/cryopod) "eTZ" = ( /obj/effect/turf_decal/tile/green{ dir = 4 @@ -102504,7 +102507,7 @@ aaa aaU aHY aIv -aIv +ePg aJW aHY aRQ diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index c44f6807fa..ede2bc416b 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -125894,6 +125894,24 @@ /obj/effect/landmark/start/cyborg, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) +"hrU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/cryopod_tele, +/obj/machinery/computer/cryopod_tele{ + dir = 8; + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) "hAf" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -127492,6 +127510,20 @@ /obj/item/clothing/under/color/grey, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) +"vlH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/cryopod_tele, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/locker) "voA" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -177887,9 +177919,9 @@ cxr cyW cqd cCb -cCb -cCb -cCb +vlH +hrU +vlH cqd cJi cKX diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 1fc5ae5729..31b2770b3e 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -54745,6 +54745,10 @@ /turf/open/floor/plasteel/dark, /area/security/courtroom) "bKj" = ( +/obj/machinery/computer/cryopod_tele{ + dir = 4; + pixel_x = -26 + }, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/locker) "bKk" = ( @@ -65850,9 +65854,7 @@ /obj/machinery/airalarm{ pixel_y = 22 }, -/obj/machinery/cryopod{ - dir = 8 - }, +/obj/machinery/cryopod_tele, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/locker) "cbs" = ( diff --git a/_maps/map_files/LambdaStation/lambda.dmm b/_maps/map_files/LambdaStation/lambda.dmm index 4d2d8cb624..1a7cddc9a1 100644 --- a/_maps/map_files/LambdaStation/lambda.dmm +++ b/_maps/map_files/LambdaStation/lambda.dmm @@ -52546,9 +52546,6 @@ /obj/machinery/light{ dir = 4 }, -/obj/machinery/cryopod{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/crew_quarters/dorms) "bUC" = ( @@ -75549,6 +75546,10 @@ /obj/effect/turf_decal/loading_area{ dir = 4 }, +/obj/machinery/computer/cryopod_tele{ + dir = 1; + pixel_y = -27 + }, /turf/open/floor/plasteel/dark, /area/crew_quarters/dorms) "cOu" = ( @@ -81247,6 +81248,10 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) +"nJo" = ( +/obj/machinery/cryopod_tele, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) "nRc" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -125167,9 +125172,9 @@ eVg eVg eVg bSH -eVg -eVg -eVg +nJo +nJo +nJo bWB bWY bWY @@ -126196,8 +126201,8 @@ bRx bRx bTD bUB -bRx -bRx +nJo +nJo bWB cjI bXz diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 794f05498d..9690da14a3 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -13872,8 +13872,8 @@ height = 5; id = "mining_home"; name = "mining shuttle bay"; - roundstart_template = /datum/map_template/shuttle/mining/box; - width = 7 + width = 7; + roundstart_template = /datum/map_template/shuttle/mining/box }, /turf/open/space/basic, /area/space) @@ -81913,10 +81913,10 @@ /turf/open/floor/plasteel/dark, /area/tcommsat/server) "maM" = ( -/obj/machinery/cryopod, /obj/machinery/light{ dir = 4 }, +/obj/machinery/cryopod_tele, /turf/open/floor/plasteel/dark, /area/crew_quarters/cryopod) "maP" = ( @@ -81973,10 +81973,10 @@ /turf/open/floor/plasteel/white, /area/science/circuit) "mAU" = ( -/obj/machinery/cryopod, /obj/machinery/camera{ c_tag = "Fitness Room - Fore" }, +/obj/machinery/cryopod_tele, /turf/open/floor/plasteel/dark, /area/crew_quarters/cryopod) "mEe" = ( @@ -82807,6 +82807,13 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) +"vtn" = ( +/obj/machinery/cryopod_tele, +/obj/machinery/computer/cryopod_tele{ + pixel_y = 27 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/cryopod) "vxG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -119131,7 +119138,7 @@ aaa aaa aag fpY -ugc +vtn lzG oFq qLE diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 79d665b63c..02785ce243 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -40279,6 +40279,25 @@ }, /turf/open/floor/plasteel/dark, /area/engine/atmos) +"oFq" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/cryopod_tele, +/obj/machinery/computer/cryopod_tele{ + dir = 8; + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/dorms) "oGc" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 6 @@ -81886,7 +81905,7 @@ atP auT avY awQ -axG +oFq axG bxJ aAH diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index be9812b1e9..32799022a7 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -53769,8 +53769,10 @@ /turf/open/floor/wood, /area/lawoffice) "epj" = ( -/obj/machinery/cryopod{ - dir = 8 +/obj/machinery/cryopod_tele, +/obj/machinery/computer/cryopod_tele{ + dir = 8; + pixel_x = -24 }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) diff --git a/_maps/map_files/SmolStation/SmolStation.dmm b/_maps/map_files/SmolStation/SmolStation.dmm index 312c30e322..5e91f9bccb 100644 --- a/_maps/map_files/SmolStation/SmolStation.dmm +++ b/_maps/map_files/SmolStation/SmolStation.dmm @@ -9651,8 +9651,8 @@ icon_state = "4-8" }, /obj/machinery/computer/cryopod{ - pixel_y = -26; - dir = 1 + dir = 1; + pixel_y = -26 }, /obj/machinery/light, /obj/machinery/flasher{ @@ -10485,9 +10485,9 @@ "hRl" = ( /obj/machinery/door/window/westleft{ base_state = "right"; + dir = 4; icon_state = "right"; - name = "Unisex Showers"; - dir = 4 + name = "Unisex Showers" }, /turf/open/floor/plasteel/freezer, /area/security/prison) @@ -16046,8 +16046,10 @@ /obj/machinery/light{ dir = 8 }, -/obj/machinery/cryopod{ - dir = 4 +/obj/machinery/cryopod_tele, +/obj/machinery/computer/cryopod_tele{ + dir = 1; + pixel_y = -23 }, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -22192,9 +22194,9 @@ /obj/item/folder/yellow, /obj/item/pen, /obj/machinery/door/window/westleft{ + dir = 4; name = "Cargo Desk"; - req_access_txt = "50"; - dir = 4 + req_access_txt = "50" }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -25578,10 +25580,10 @@ }) "tvG" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8; external_pressure_bound = 140; name = "server vent"; - pressure_checks = 0; - dir = 8 + pressure_checks = 0 }, /turf/open/floor/circuit/telecomms, /area/science/xenobiology{ @@ -31245,9 +31247,9 @@ /area/teleporter) "xCG" = ( /obj/machinery/door/window/southleft{ + dir = 4; name = "Mass Driver Door"; - req_access_txt = "7"; - dir = 4 + req_access_txt = "7" }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -31285,12 +31287,10 @@ name = "Docking Bay" }) "xDR" = ( -/obj/machinery/cryopod{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 4 }, +/obj/machinery/cryopod_tele, /turf/open/floor/carpet, /area/crew_quarters/dorms) "xEk" = ( diff --git a/_maps/map_files/Snaxi/Snaxi.dmm b/_maps/map_files/Snaxi/Snaxi.dmm index c8b76b4922..b66d54b0f9 100644 --- a/_maps/map_files/Snaxi/Snaxi.dmm +++ b/_maps/map_files/Snaxi/Snaxi.dmm @@ -1548,9 +1548,6 @@ /turf/open/floor/plasteel/white, /area/science/lab) "ayu" = ( -/obj//obj/item/kirbyplants{ - icon_state = "plant-16" - }, /obj/effect/turf_decal/tile/purple{ dir = 1 }, @@ -5826,9 +5823,9 @@ name = "west facing firelock" }, /obj/machinery/door/window/southleft{ + dir = 8; name = "Test Chamber"; - req_access_txt = "55"; - dir = 8 + req_access_txt = "55" }, /obj/machinery/door/poddoor/preopen{ id = "xenobio2"; @@ -5844,9 +5841,9 @@ dir = 10 }, /obj/machinery/door/window/southleft{ + dir = 4; name = "Test Chamber"; - req_access_txt = "55"; - dir = 4 + req_access_txt = "55" }, /turf/open/floor/plasteel, /area/science/xenobiology) @@ -7757,9 +7754,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj//obj/item/kirbyplants{ - icon_state = "plant-10" - }, /turf/open/floor/carpet, /area/bridge) "cng" = ( @@ -9031,9 +9025,6 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj//obj/item/kirbyplants{ - icon_state = "plant-10" - }, /turf/open/floor/plasteel/dark, /area/security/prison) "cXI" = ( @@ -9409,11 +9400,13 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "dij" = ( -/obj//obj/item/kirbyplants{ - icon_state = "plant-10" +/obj/machinery/computer/cryopod_tele{ + dir = 1; + pixel_y = -26 }, -/turf/open/floor/carpet, -/area/bridge) +/obj/machinery/cryopod_tele, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) "diD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -11360,18 +11353,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/janitor) -"eue" = ( -/obj//obj/item/kirbyplants{ - icon_state = "plant-04" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) "eus" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 @@ -17394,9 +17375,6 @@ /obj/machinery/light{ dir = 4 }, -/obj//obj/item/kirbyplants{ - icon_state = "plant-10" - }, /turf/open/floor/wood, /area/bridge/meeting_room) "hTB" = ( @@ -22641,12 +22619,6 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/floor/engine, /area/engine/engineering) -"lfs" = ( -/obj//obj/item/kirbyplants{ - icon_state = "plant-08" - }, -/turf/open/floor/plasteel, -/area/maintenance/aft) "lfy" = ( /obj/structure/cable{ icon_state = "1-2" @@ -27184,8 +27156,8 @@ /area/engine/engineering) "nSX" = ( /obj/machinery/atmospherics/components/binary/pump/on{ - name = "Gas to Cooling Loop"; - dir = 1 + dir = 1; + name = "Gas to Cooling Loop" }, /turf/open/floor/plating, /area/engine/atmospherics_engine) @@ -27857,12 +27829,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/carpet, /area/quartermaster/miningoffice) -"old" = ( -/obj//obj/item/kirbyplants{ - icon_state = "applebush" - }, -/turf/open/floor/wood, -/area/security/courtroom) "oln" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -28531,9 +28497,6 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/hop) "oGU" = ( -/obj//obj/item/kirbyplants{ - icon_state = "plant-10" - }, /turf/open/floor/wood, /area/hallway/primary/central) "oHl" = ( @@ -29351,8 +29314,8 @@ /area/quartermaster/storage) "pfb" = ( /obj/machinery/atmospherics/components/binary/pump/on{ - name = "Gas to Cooling Loop"; - dir = 1 + dir = 1; + name = "Gas to Cooling Loop" }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -29602,9 +29565,6 @@ c_tag = "Courtroom East"; dir = 8 }, -/obj//obj/item/kirbyplants{ - icon_state = "applebush" - }, /turf/open/floor/wood, /area/security/courtroom) "pmK" = ( @@ -32152,12 +32112,6 @@ }, /turf/open/floor/carpet, /area/crew_quarters/dorms) -"qHO" = ( -/obj//obj/item/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit/departure_lounge) "qIm" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -32961,7 +32915,6 @@ dir = 4 }, /obj/effect/turf_decal/tile/neutral, -/obj//obj/item/kirbyplants, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "rhX" = ( @@ -34346,9 +34299,6 @@ /area/engine/engineering) "saN" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj//obj/item/kirbyplants{ - icon_state = "plant-10" - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "saP" = ( @@ -34837,9 +34787,6 @@ dir = 8 }, /obj/effect/turf_decal/tile/blue, -/obj//obj/item/kirbyplants{ - icon_state = "plant-10" - }, /turf/open/floor/plasteel/dark, /area/bridge) "srq" = ( @@ -36237,9 +36184,6 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj//obj/item/kirbyplants{ - icon_state = "plant-10" - }, /turf/open/floor/plasteel/dark, /area/security/main) "tkq" = ( @@ -43182,9 +43126,6 @@ /obj/structure/cable{ icon_state = "0-4" }, -/obj//obj/item/kirbyplants{ - icon_state = "plant-10" - }, /obj/machinery/power/apc{ areastring = "/area/chapel/main"; dir = 1; @@ -60474,7 +60415,7 @@ ash kMc iRy nsi -eue +eLX eLX iEa hLg @@ -76982,7 +76923,7 @@ cTD buZ pmE buZ -old +buZ hXF cTD oGU @@ -77491,7 +77432,7 @@ uBa uBa uBa uBa -qHO +rqE lbp vPQ hhz @@ -77537,7 +77478,7 @@ bVu ckb mXC clV -dij +vxi vxi nmN cDm @@ -78262,7 +78203,7 @@ daX uBa uBa uBa -qHO +rqE lbp ceA jAb @@ -81343,7 +81284,7 @@ wcB unA jPI wrh -jPI +dij bok rqE rqE @@ -85490,7 +85431,7 @@ tRe avT avT bPn -lfs +cAe jbc aet cjA diff --git a/sandcode/code/game/machinery/cryopod.dm b/sandcode/code/game/machinery/cryopod.dm new file mode 100644 index 0000000000..b8a9d9e2e5 --- /dev/null +++ b/sandcode/code/game/machinery/cryopod.dm @@ -0,0 +1,500 @@ +/* + * Cryogenic refrigeration unit. Basically a despawner. + * Stealing a lot of concepts/code from sleepers due to massive laziness. + * The despawn tick will only fire if it's been more than time_till_despawned ticks + * since time_entered, which is world.time when the occupant moves in. + * ~ Zuhayr + */ + +//Main cryopod console. + +/obj/machinery/computer/cryopod_tele + name = "teleporter oversight console" + desc = "An interface between crew and the internal storage, because centcom certainly won't let you take some stuff home..." + icon = 'icons/obj/Cryogenic2.dmi' + icon_state = "cellconsole_1" + circuit = /obj/item/circuitboard/cryopodcontrol + density = FALSE + interaction_flags_machine = INTERACT_MACHINE_OFFLINE + req_one_access = list(ACCESS_HEADS, ACCESS_ARMORY) //Heads of staff or the warden can go here to claim recover items from their department that people went were cryodormed with. + + var/menu = 1 //Which menu screen to display + + //Used for logging people entering cryosleep and important items they are carrying. + var/list/frozen_crew = list() + var/list/frozen_items = list() + + // Used for containing rare items traitors need to steal, so it's not + // game-over if they get iced + var/list/objective_items = list() + // A cache of theft datums so you don't have to re-create them for + // each item check + var/list/theft_cache = list() + + var/allow_items = TRUE + +/obj/machinery/computer/cryopod_tele/attack_ai() + attack_hand() + +/obj/machinery/computer/cryopod_tele/ui_interact(mob/user = usr) + if(!is_operational()) + return + + user.set_machine(src) + add_fingerprint(user) + + var/dat = "" + + dat += "