From 877b582a85a464f177dedc7a3187b75c8e969790 Mon Sep 17 00:00:00 2001 From: Chompstation Bot Date: Sat, 3 Jul 2021 20:34:03 +0000 Subject: [PATCH] Replace all the overmap icons --- code/controllers/subsystems/vis_overlays.dm | 20 +- code/modules/overmap/bluespace_rift_vr.dm | 2 - code/modules/overmap/events/overmap_event.dm | 1 - code/modules/overmap/overmap_object.dm | 50 ++-- code/modules/overmap/overmap_planet.dm | 5 +- code/modules/overmap/sectors.dm | 37 ++- code/modules/overmap/ships/computers/ship.dm | 4 + code/modules/overmap/ships/landable.dm | 3 +- code/modules/overmap/ships/ship.dm | 25 +- .../tgui/modules/admin_shuttle_controller.dm | 2 +- icons/obj/overmap.dmi | Bin 10804 -> 71255 bytes maps/expedition_vr/aerostat/_aerostat.dm | 3 +- maps/expedition_vr/alienship/_alienship.dm | 5 +- maps/expedition_vr/beach/_beach.dm | 3 +- maps/expedition_vr/space/_debrisfield.dm | 5 +- maps/expedition_vr/space/_fueldepot.dm | 3 + maps/gateway_vr/carpfarm.dm | 2 +- maps/gateway_vr/listeningpost.dm | 2 +- maps/gateway_vr/snow_outpost.dm | 2 +- maps/gateway_vr/snowfield.dm | 5 +- maps/gateway_vr/variable/arynthilake.dm | 3 +- maps/gateway_vr/variable/honlethhighlands.dm | 1 + maps/gateway_vr/wildwest.dm | 5 +- maps/offmap_vr/om_ships/abductor.dm | 178 +++++++++++++ maps/offmap_vr/om_ships/aro.dm | 1 - maps/offmap_vr/om_ships/aro2.dm | 3 +- maps/offmap_vr/om_ships/aro3.dm | 5 +- maps/offmap_vr/om_ships/bearcat.dm | 202 +++++++++++++++ maps/offmap_vr/om_ships/cruiser.dm | 5 +- maps/offmap_vr/om_ships/curashuttle.dm | 3 +- maps/offmap_vr/om_ships/geckos.dm | 176 +++++++++++++ maps/offmap_vr/om_ships/generic_shuttle.dm | 2 +- maps/offmap_vr/om_ships/hybridshuttle.dm | 4 +- maps/offmap_vr/om_ships/itglight.dm | 5 +- maps/offmap_vr/om_ships/mackerels.dm | 241 ++++++++++++++++++ maps/offmap_vr/om_ships/mercship.dm | 2 +- maps/offmap_vr/om_ships/salamander.dm | 6 +- maps/offmap_vr/om_ships/screebarge.dm | 1 - maps/offmap_vr/om_ships/shelter_5.dm | 2 +- maps/offmap_vr/om_ships/shelter_6.dm | 3 +- maps/offmap_vr/om_ships/vespa.dm | 3 +- maps/offmap_vr/talon/talon_v2.dm | 6 +- maps/southern_cross/overmap/sectors.dm | 93 +++++++ maps/submaps/admin_use_vr/ert.dm | 2 +- maps/submaps/admin_use_vr/fun.dm | 6 +- maps/submaps/admin_use_vr/guttersite.dm | 3 +- maps/submaps/admin_use_vr/mercship.dm | 5 +- maps/submaps/depreciated_vr/talon.dm | 4 +- maps/tether/tether_defines.dm | 3 +- maps/tether/tether_shuttles.dm | 4 + 50 files changed, 1056 insertions(+), 100 deletions(-) create mode 100644 maps/offmap_vr/om_ships/bearcat.dm create mode 100644 maps/offmap_vr/om_ships/geckos.dm create mode 100644 maps/offmap_vr/om_ships/mackerels.dm diff --git a/code/controllers/subsystems/vis_overlays.dm b/code/controllers/subsystems/vis_overlays.dm index 0806e4c954..8abc02f928 100644 --- a/code/controllers/subsystems/vis_overlays.dm +++ b/code/controllers/subsystems/vis_overlays.dm @@ -29,18 +29,18 @@ SUBSYSTEM_DEF(vis_overlays) return //the "thing" var can be anything with vis_contents which includes images - in the future someone should totally allow vis overlays to be passed in as an arg instead of all this bullshit -/datum/controller/subsystem/vis_overlays/proc/add_vis_overlay(atom/movable/thing, icon, iconstate, layer, plane, dir, alpha = 255, add_appearance_flags = NONE, unique = FALSE) +/datum/controller/subsystem/vis_overlays/proc/add_vis_overlay(atom/movable/thing, icon, iconstate, layer, plane, dir, alpha = 255, add_appearance_flags = NONE, add_vis_flags = NONE, unique = FALSE) var/obj/effect/overlay/vis/overlay if(!unique) . = "[icon]|[iconstate]|[layer]|[plane]|[dir]|[alpha]|[add_appearance_flags]" overlay = vis_overlay_cache[.] if(!overlay) - overlay = _create_new_vis_overlay(icon, iconstate, layer, plane, dir, alpha, add_appearance_flags) + overlay = _create_new_vis_overlay(icon, iconstate, layer, plane, dir, alpha, add_appearance_flags, add_vis_flags) vis_overlay_cache[.] = overlay else overlay.unused = 0 else - overlay = _create_new_vis_overlay(icon, iconstate, layer, plane, dir, alpha, add_appearance_flags) + overlay = _create_new_vis_overlay(icon, iconstate, layer, plane, dir, alpha, add_appearance_flags, add_vis_flags) overlay.cache_expiration = -1 var/cache_id = "\ref[overlay]@{[world.time]}" vis_overlay_cache[cache_id] = overlay @@ -56,7 +56,7 @@ SUBSYSTEM_DEF(vis_overlays) thing.managed_vis_overlays += overlay return overlay -/datum/controller/subsystem/vis_overlays/proc/_create_new_vis_overlay(icon, iconstate, layer, plane, dir, alpha, add_appearance_flags) +/datum/controller/subsystem/vis_overlays/proc/_create_new_vis_overlay(icon, iconstate, layer, plane, dir, alpha, add_appearance_flags, add_vis_flags) var/obj/effect/overlay/vis/overlay = new overlay.icon = icon overlay.icon_state = iconstate @@ -65,6 +65,7 @@ SUBSYSTEM_DEF(vis_overlays) overlay.dir = dir overlay.alpha = alpha overlay.appearance_flags |= add_appearance_flags + overlay.vis_flags |= add_vis_flags return overlay @@ -75,3 +76,14 @@ SUBSYSTEM_DEF(vis_overlays) thing.managed_vis_overlays -= overlays if(!length(thing.managed_vis_overlays)) thing.managed_vis_overlays = null + +/atom/proc/add_vis_overlay(icon, iconstate, layer, plane, dir, alpha, add_appearance_flags, add_vis_flags, unique) + // The extremely minimal version where you just pass a string and nothing else + if(istext(icon)) + iconstate = icon + icon = src.icon + + return SSvis_overlays.add_vis_overlay(src, icon, iconstate, layer, plane, dir, alpha, add_appearance_flags, add_vis_flags, unique) + +/atom/proc/remove_vis_overlay(list/overlays) + return SSvis_overlays.remove_vis_overlay(src, overlays) diff --git a/code/modules/overmap/bluespace_rift_vr.dm b/code/modules/overmap/bluespace_rift_vr.dm index 1ee421a2a3..e38ed55d41 100644 --- a/code/modules/overmap/bluespace_rift_vr.dm +++ b/code/modules/overmap/bluespace_rift_vr.dm @@ -4,8 +4,6 @@ icon = 'icons/obj/overmap_vr.dmi' icon_state = "portal" color = "#2288FF" - - known = FALSE //shows up on nav computers automatically scannable = TRUE //if set to TRUE will show up on ship sensors for detailed scans var/obj/effect/overmap/bluespace_rift/partner diff --git a/code/modules/overmap/events/overmap_event.dm b/code/modules/overmap/events/overmap_event.dm index 7b1faa68f6..e64f71170b 100644 --- a/code/modules/overmap/events/overmap_event.dm +++ b/code/modules/overmap/events/overmap_event.dm @@ -9,7 +9,6 @@ icon = 'icons/obj/overmap.dmi' icon_state = "event" opacity = 1 - known = FALSE var/list/events // List of event datum paths var/list/event_icon_states // Randomly picked from var/difficulty = EVENT_LEVEL_MODERATE diff --git a/code/modules/overmap/overmap_object.dm b/code/modules/overmap/overmap_object.dm index ccf3df8be7..f79741bd3a 100644 --- a/code/modules/overmap/overmap_object.dm +++ b/code/modules/overmap/overmap_object.dm @@ -3,20 +3,39 @@ icon = 'icons/obj/overmap.dmi' icon_state = "object" - var/known = 1 //shows up on nav computers automatically - var/scannable //if set to TRUE will show up on ship sensors for detailed scans - var/scanner_name //name for scans, replaces name once scanned - var/scanner_desc //description for scans - var/skybox_icon //Icon file to use for skybox - var/skybox_icon_state //Icon state to use for skybox - var/skybox_pixel_x //Shift from lower left corner of skybox - var/skybox_pixel_y //Shift from lower left corner of skybox - var/image/cached_skybox_image //Cachey + /// If set to TRUE will show up on ship sensors for detailed scans + var/scannable + /// Description for scans + var/scanner_desc + + /// Icon file to use for skybox + var/skybox_icon + /// Icon state to use for skybox + var/skybox_icon_state + /// Shift from lower left corner of skybox + var/skybox_pixel_x + /// Shift from lower left corner of skybox + var/skybox_pixel_y + /// Cachey + var/image/cached_skybox_image + + /// For showing to the pilot of the ship, so they see the 'real' appearance, despite others seeing the unknown ones + var/image/real_appearance light_system = MOVABLE_LIGHT light_on = FALSE +/obj/effect/overmap/Initialize() + . = ..() + if(!global.using_map.use_overmap) + return INITIALIZE_HINT_QDEL + +/obj/effect/overmap/Destroy() + real_appearance?.loc = null + real_appearance = null + return ..() + //Overlay of how this object should look on other skyboxes /obj/effect/overmap/proc/get_skybox_representation() if(!cached_skybox_image) @@ -45,23 +64,10 @@ SSskybox.rebuild_skyboxes(O.map_z) /obj/effect/overmap/proc/get_scan_data(mob/user) - if(scanner_name && (name != scanner_name)) //A silly check, but 'name' is part of appearance, so more expensive than you might think - name = scanner_name - var/dat = {"\[b\]Scan conducted at\[/b\]: [stationtime2text()] [stationdate2text()]\n\[b\]Grid coordinates\[/b\]: [x],[y]\n\n[scanner_desc]"} return dat -/obj/effect/overmap/Initialize() - . = ..() - if(!global.using_map.use_overmap) - return INITIALIZE_HINT_QDEL - - if(known) - plane = PLANE_LIGHTING_ABOVE - for(var/obj/machinery/computer/ship/helm/H in global.machines) - H.get_known_sectors() - /obj/effect/overmap/Crossed(var/obj/effect/overmap/visitable/other) if(istype(other)) for(var/obj/effect/overmap/visitable/O in loc) diff --git a/code/modules/overmap/overmap_planet.dm b/code/modules/overmap/overmap_planet.dm index dcb8fc1af3..73dd092638 100644 --- a/code/modules/overmap/overmap_planet.dm +++ b/code/modules/overmap/overmap_planet.dm @@ -1,8 +1,11 @@ /obj/effect/overmap/visitable/planet name = "planet" - icon_state = "globe" + icon_state = "lush" in_space = 0 + unknown_name = "unknown planet" + unknown_state = "planet" + var/datum/gas_mixture/atmosphere var/atmosphere_color = "FFFFFF" diff --git a/code/modules/overmap/sectors.dm b/code/modules/overmap/sectors.dm index b91b5470e7..cce1f94cce 100644 --- a/code/modules/overmap/sectors.dm +++ b/code/modules/overmap/sectors.dm @@ -6,6 +6,15 @@ scannable = TRUE scanner_desc = "!! No Data Available !!" + icon_state = "generic" + + /// Shows up on nav computers automatically + var/known = TRUE + /// Name prior to being scanned if !known + var/unknown_name = "unknown sector" + /// Icon_state prior to being scanned if !known + var/unknown_state = "field" + var/list/map_z = list() var/list/extra_z_levels //if you need to manually insist that these z-levels are part of this sector, for things like edge-of-map step trigger transitions rather than multi-z complexes @@ -50,6 +59,19 @@ LAZYADD(SSshuttles.sectors_to_initialize, src) //Queued for further init. Will populate the waypoint lists; waypoints not spawned yet will be added in as they spawn. SSshuttles.process_init_queues() + if(known) + plane = PLANE_LIGHTING_ABOVE + for(var/obj/machinery/computer/ship/helm/H in global.machines) + H.get_known_sectors() + else + real_appearance = image(icon, src, icon_state) + real_appearance.override = TRUE + name = unknown_name + icon_state = unknown_state + color = null + desc = "Scan this to find out more information." + + // You generally shouldn't destroy these. /obj/effect/overmap/visitable/Destroy() testing("Deleting [src] overmap sector at [x],[y]") @@ -98,6 +120,15 @@ global.using_map.map_levels -= map_z */ +/obj/effect/overmap/visitable/get_scan_data() + if(!known) + known = TRUE + name = initial(name) + icon_state = initial(icon_state) + color = initial(color) + desc = initial(desc) + return ..() + /obj/effect/overmap/visitable/proc/get_space_zlevels() if(in_space) return map_z @@ -170,9 +201,9 @@ return FALSE has_distress_beacon = TRUE - admin_chat_message(message = "Overmap panic button hit on z[z] ([scanner_name || name]) by '[user?.ckey || "Unknown"]'", color = "#FF2222") //VOREStation Add + admin_chat_message(message = "Overmap panic button hit on z[z] ([name]) by '[user?.ckey || "Unknown"]'", color = "#FF2222") //VOREStation Add var/message = "This is an automated distress signal from a MIL-DTL-93352-compliant beacon transmitting on [PUB_FREQ*0.1]kHz. \ - This beacon was launched from '[scanner_name || name]'. I can provide this additional information to rescuers: [get_distress_info()]. \ + This beacon was launched from '[name]'. I can provide this additional information to rescuers: [get_distress_info()]. \ Per the Interplanetary Convention on Space SAR, those receiving this message must attempt rescue, \ or relay the message to those who can. This message will repeat one time in 5 minutes. Thank you for your urgent assistance." @@ -193,7 +224,7 @@ return "\[X:[x], Y:[y]\]" /obj/effect/overmap/visitable/proc/distress_update() - var/message = "This is the final message from the distress beacon launched from '[scanner_name || name]'. I can provide this additional information to rescuers: [get_distress_info()]. \ + var/message = "This is the final message from the distress beacon launched from '[name]'. I can provide this additional information to rescuers: [get_distress_info()]. \ Please render assistance under your obligations per the Interplanetary Convention on Space SAR, or relay this message to a party who can. Thank you for your urgent assistance." for(var/zlevel in levels_for_distress) diff --git a/code/modules/overmap/ships/computers/ship.dm b/code/modules/overmap/ships/computers/ship.dm index 5c886fb55a..46d56e29f7 100644 --- a/code/modules/overmap/ships/computers/ship.dm +++ b/code/modules/overmap/ships/computers/ship.dm @@ -69,6 +69,8 @@ somewhere on that shuttle. Subtypes of these can be then used to perform ship ov if(linked) apply_visual(user) user.reset_view(linked) + if(linked.real_appearance) + user.client?.images += linked.real_appearance user.set_machine(src) if(isliving(user)) var/mob/living/L = user @@ -81,6 +83,8 @@ somewhere on that shuttle. Subtypes of these can be then used to perform ship ov /obj/machinery/computer/ship/proc/unlook(var/mob/user) user.reset_view() + if(linked?.real_appearance) + user.client?.images -= linked.real_appearance if(isliving(user)) var/mob/living/L = user L.looking_elsewhere = 0 diff --git a/code/modules/overmap/ships/landable.dm b/code/modules/overmap/ships/landable.dm index fed030ba6f..4c16b991bc 100644 --- a/code/modules/overmap/ships/landable.dm +++ b/code/modules/overmap/ships/landable.dm @@ -7,8 +7,7 @@ var/obj/effect/shuttle_landmark/ship/landmark // Record our open space landmark for easy reference. var/multiz = 0 // Index of multi-z levels, starts at 0 var/status = SHIP_STATUS_LANDED - icon_state = "shuttle" - moving_state = "shuttle_moving" + icon_state = "shuttle_nosprite" /obj/effect/overmap/visitable/ship/landable/Destroy() GLOB.shuttle_pre_move_event.unregister(SSshuttles.shuttles[shuttle], src) diff --git a/code/modules/overmap/ships/ship.dm b/code/modules/overmap/ships/ship.dm index 99ecdcf154..e048805738 100644 --- a/code/modules/overmap/ships/ship.dm +++ b/code/modules/overmap/ships/ship.dm @@ -14,10 +14,13 @@ desc = "This marker represents a spaceship. Scan it for more information." scanner_desc = "Unknown spacefaring vessel." dir = NORTH - icon_state = "ship" + icon_state = "ship_nosprite" appearance_flags = TILE_BOUND|KEEP_TOGETHER|LONG_GLIDE //VOREStation Edit light_power = 4 - var/moving_state = "ship_moving" + + unknown_name = "unknown ship" + unknown_state = "ship" + known = FALSE // Ships start 'unknown' on the map and require scanning var/vessel_mass = 10000 //tonnes, arbitrary number, affects acceleration provided by engines var/vessel_size = SHIP_SIZE_LARGE //arbitrary number, affects how likely are we to evade meteors @@ -38,6 +41,9 @@ var/skill_needed = SKILL_ADEPT //piloting skill needed to steer it without going in random dir var/operator_skill + /// Vis contents overlay holding the ship's vector when in motion + var/obj/effect/overlay/vis/vector + /obj/effect/overmap/visitable/ship/Initialize() . = ..() min_speed = round(min_speed, SHIP_MOVE_RESOLUTION) @@ -45,11 +51,14 @@ SSshuttles.ships += src position_x = ((loc.x - 1) * WORLD_ICON_SIZE) + (WORLD_ICON_SIZE/2) + pixel_x + 1 position_y = ((loc.y - 1) * WORLD_ICON_SIZE) + (WORLD_ICON_SIZE/2) + pixel_y + 1 + vector = add_vis_overlay("vector", dir = SOUTH, layer = 10, unique = TRUE) + vector.vis_flags = (VIS_INHERIT_PLANE|VIS_INHERIT_ID) /obj/effect/overmap/visitable/ship/Destroy() STOP_PROCESSING(SSprocessing, src) + remove_vis_overlay(vector) SSshuttles.ships -= src - . = ..() + return ..() /obj/effect/overmap/visitable/ship/relaymove(mob/user, direction, accel_limit) accelerate(direction, accel_limit) @@ -200,11 +209,13 @@ /obj/effect/overmap/visitable/ship/update_icon() if(!is_still()) - icon_state = moving_state - transform = matrix().Turn(get_heading_degrees()) + var/heading = get_heading_degrees() + dir = angle2dir(round(heading, 90)) + vector.dir = NORTH + vector.transform = matrix().Turn(heading) else - icon_state = initial(icon_state) - transform = null + dir = NORTH + vector.dir = SOUTH ..() /obj/effect/overmap/visitable/ship/set_dir(new_dir) diff --git a/code/modules/tgui/modules/admin_shuttle_controller.dm b/code/modules/tgui/modules/admin_shuttle_controller.dm index 4f65517729..a40dec8fca 100644 --- a/code/modules/tgui/modules/admin_shuttle_controller.dm +++ b/code/modules/tgui/modules/admin_shuttle_controller.dm @@ -22,7 +22,7 @@ for(var/ship in SSshuttles.ships) var/obj/effect/overmap/visitable/ship/S = ship overmap_ships.Add(list(list( - "name" = S.scanner_name || S.name, + "name" = S.name, "ref" = REF(S), ))) data["overmap_ships"] = overmap_ships diff --git a/icons/obj/overmap.dmi b/icons/obj/overmap.dmi index d46f1065f2be3ea00dab84929f08c44af672a0e9..348ad77da467d2b12595ad6a2569578d1c91d6a2 100644 GIT binary patch literal 71255 zcmZs?Wn5I<_da}v?(SAVO6mp_X^}=iq(NEuejE=)y#T>!v0BlF8+*Evaw@S%$eirHP8k%H}!6y<1TvVBVm-nVbG zwLHS^ICdg-FLSyIeu(^abR|4;{JTAnr>2?R3=h6V-joDfUpL7n*?k`0Z`zcHzj;W1 z!R^_6FgNB+{hs`5KYD$Y$gBBatZ@HV^_j0K;M#6=6< zm=7<^hknQ7marh!1O@d6U$_=&?dw^C#~koQ@Uz~SjBsPUrnRq#k<~j>E9&_8v|L{c zxy)vQs9ErhKA7EaI)nzge$Kp2i20b@zCDcpJOI~!P?^sjL8uUwtU6b(F*3%LFQ2+c zA#fct)~e3$N7C{<*8Nc>Hrwkbo@=6NHRh`fPJgRO<8^&Iop-ZNffXm@ZWZ=Xd728pwDn)a0$UY~#u*79mhRWP{lPT_BqV> z*GGyTV=5a4O~u<>HCtUa*2>O#ljTo8<7%~9s_RnX77ctNCFdM0lsV<->ABB0e>LDA z`l`*yr6vC7exES^?$ZR6zpHU6BCd`c`E@+llbW7>sxl|uhiUxlC$TacGgk6@bEC%l zm)XPuj>AdP2@^{K>?}wBRa-wcT68q)iF&#GS~xL@B4Z~)`Qj)7?~LeYk&E#&{H&dS z=Wzc{jT$@4Ob|1jz0@k!QFJS2rqd5COnaBy zbmHG%X?>J@DXC6M%>Oe9r)6IYH*1L%H|&9kJ|nvYv901{tPriQyAMrL$dF(X83oQz zdH9Ei#)4#qJvE?;P^c0{{o0 zuJl;nH)F5WFOcR{9U2`~8XBe?qTZeet0LsGj#0u=f2ojoC_?p&M(n=3Y8*#S-d)tQ zgVv?DjgsHr<%*1a`Oy8CGJJUhK}0}A$WRB^g-~#CDSaf7e*6v+a)ZarE9HYF)|c%rT74Fn}yU3t%xh9mFzQonXvvnxvp7V zYa#PrNhg(m>87z|&(=ooQv4g4x2s);rZo;Bsi~<;`J6$+ui57an} ztoocaI8BxF3JM}KCy!NpcZv$BKGo6F(H#uWR%|lNE>Yy@!k;dCSwdgGe!aRgQQ|Y~ z*T88-j#+&m19vpk(3%}+7n=?v&tp?KOO^}$#0wj{ySF?4PY@DMCxFV;Y`WP8pHWqm zkV46mdQN7D)#bs$)=ahi>L&ps0N75*clDh0)(cTVx*r=c>vdjOcr1+*Bc&=@JQ+8k0#k^5kkj@k9Cb%-gaCq8m@rH~$l z|9I{9>~Bl!WAM?6>3j)h!3q0x)_JSU4hR-)y`OG43Qoy~6};^S3(c7iM!r=&xkA1j zEKmdQC{`?}9pd$lsx&z!tqCG4YI|5FXxKO$26_jdtNYiU< zUz&C%{}Y7aYhc}&*1F_>Z?Nqt#BL{QS{#uL$jBrMk-60&Vf>Fv^xi!@2OCFNC^v4X z`567oFucP>xT>&4jw8AWaZJ|B@(vVKz#}{v+TkM+fe!B|*PMM1$vDOd6X3qx=@nCe;!~4VgHj$$;>qG4L7Mv88Gj0i|Yi(wj>JXa4?W zGmMbeD^Q!>#5+-dHw_Jqu?Dtyw;XUX56{F6*lV2Tg}73UA02UbXvb9OU6_Ua5{AGm z1upw1XaCZ;e)bu_hFx11A{?DPh;CZ#q3NIMa6i(0J=To)_CkI3)5yI!_Ux#Phku&? zYWdxkTazZ;q9@49LKya#ebbZKw>+tl+<8iUCP5`a_S+~~?xt4%yWKq#au zd(iQfX-?7#G`{#~Hxn()BPt=`g@2B1H6*M zJTK=8`cI16?&hz6dd+^)NS;lB>mYBh#q0CvAhC_(X8&+)|C)j1p{d)abBa8&vjr!o z5=MWaKC^ET80$RDlz!lUnH%@K>tYceAGg@*V7p@Y!hOC?*c4p)qaSa^#Q@mI`)%1y z`FO@-JHM$GzjTWz2+S{u;vN2C?`a{m2Y#2M_E3-t{T(WMExba`jt-HA z1S<-4pvan~U!jvm_(Ufw24%h`u{l$#Aub15nOW5krcakLbeH}9qU(z=i@9}4wgy)a zuAMPuPukwq8@*n;^%?hy4ytf=Z)T0x-wM}q1=>+A4n%g2M3fDZD-Ftm=8JlFSNtqc z>c8cLUXsU@Oxuqp&rVcdM&uC0)mV?HOw)cDF~D)ShiesiRDE;=uXY&NeAukxEZ=OC z!#F)64|M(db;1kuh&TT?`_fi?Cl=-Ns^<4aB+}qdLP~$S{uHWsqes)KwYgen6!d?G zxZo8SM@YHd5@fm8=a3}J%4ji!bc9Zvta0mA7SJQ+*|Uj1SePUwC^NTa&z&`bHUPYD z4BQgNdJ)jCCvAnBw*n0;3nzn1v;km!GX@%8RTY1pwfdc+ zmqsC|a_E>{28&{upncZXhNzv_TN2{miB{6n!0zgguR2%N*^n);k?SrBW~$IzaLp%3 zWJOkY4CMi+CqfM<)4nM_1l;i8%R&Gi2W=W;OLi@t9BJV2Kz`3tUgju5-vJMBl|51k zffEhX-Lp)SMd~;ygxdik;J4va3L^l%xt#zoI3A0J>aQ2-6LT!3fGZmsyekp|??985 zQBrt8YUU^_39GB|CC?cozMiL0FMmUBr;8DF%>azJA^hTbJ5V@tq_M-_EYfAQpI=OT zaX8v30od>Dq|FrPCK6~B}ZP}jhIkUCNu0d5G05BA11^7`(k?#)r)!^nr2iu<{uJ^XGgEGI|RV-P7 zZZ};~{cJj_YGQ9@%Ap%Q?mv@vJXe^+E3~%q7I#h|z@L?i97{d^g7vKLVX5q-pp%We z@_#>;C$f!;b}V&HIk-XWaNImrsFN;q*GZ!qve(Y~k$%3Ttf478K)*t~aLI}Cj$eFs z98Rf4Yg#0lnZWSLwc!}#Ur6>2lmbphWzHp5=#J$8pGv)Pq`gpxvqXa6w<6)*Ib?+h{rj zu-&*aObe!}bRPe^g;tysIALj9yuK}^77_h%ccwr2W0_g~-8*+6&EEU7Bjx7OdBQz9 z^2o5!(dSPp936sy4469Zuq=bt&)!4xXqKZ9D6*$$#UK>y5PF zv?MbYcFfMl&F^fQDz8^uoMJ&2;5>o=yqm6dUlPQ3HdigtZ%sLZqTK%78pkoe*&6cs zSVG|Tbs{H_YDSex&44;zhvU@USjx5P+?j{Jll@E#?c_)-3*3E&iQ!;$Saw^#-Te(! z|G;3W2bqzPr$d>*na?wgzu^6iVL-#nqiJl8<%@9KbUi$+ezhu$cyI)XS$toJ1w zCbB8B{(>i2LVHyjT1(^cdj5mCTy8L4yBZxK-#xi&r}Z8_*{PUGFM)-;tO!4q;U<^- zfI$DleOmv+57Iye9xlCiyk0N54ijLkyC>o|4N<}BN0DFvrK*4N_K-63vpJ*l4~Pd@ z2-}BAgufV;gTc1}A}hT}%*~NwdE)U8ULQhj-TN~rpvQh=h`HJTr8hLvtXL0LDc=X! zaI$&NQ-jhXjo!=0MK)kBqtoywv(f}*d#3$lUp^74GkmLkTlRRf*J9_9aI0 zHZe}*g@R>@?)u%;-A3BdzYY8SAJSRXlYn$EmN5LRuKsTi6*zrr(rU!LV@nE4Qihps z(LS=&hMAm2X9)AO6PaGFC71$bh${Drd5A+-Z2wLr4qxBgb?DPsV@m4$sR#MV;bXk5 zaMCBYyYjDX3VfsyFPyTO{%^#t8YT_IrD9+%Y%}H|Xj<2*%YmSWoGxpinU1Me8|_bR z>3+w)MFtG*FL?GX-9g`2{fpgzNRWq0ND}9p5=l`-pB-ey(5mH9G%z4^?vjVp1f3L5 z{XI(}wWbQudAML1EXnTI`Utx%$JKHD6KHUCi&MLbu~UNApWIi;yVMw$_D?EK%$Q8) zK$)4?(d2Ig5%Q{MXvl(9UOwP_^(VP!y+_!-=F|S^db3+O#!RZQfL{;UFS3pYBC}() zqmF$**2wOu#qS8*hnf%WH*Ay7m6BQ>!awbf2>kU#tA392kJ#HTfmB9fjNsp4?V;-d zh>_Cp7$HB{Gw5dPRDu16SBQFUtfSvs$*GHsOE2f%3WrB3^ zC?(hbaK389xQ4Q~;~zlU!OVGI$|pyK0|Og+>|cs`Cq1Vp56(ff=i_Sq3OSdP;yjIR^TZCTUrxY7Z5k59*L(58~5zOde z=e%5sVgmdYEz5KhO??zfu8(Vbn$*AcMSY-U-MR)r5t&9$RSz$#eMfL!8}ttu5Hzw^ z+9lDE0B5}s1D;~Q>M2}$-v@DKJ=IewQ^Kl9S2v*h%%ygc+I1!nB)A3Y)% z>)Ul=wKbZM7qEF9THr|{5JtEEa28QthG%7@lD?<#_nV=hyv51AF7fu;%CX=f!hEC2 z^@LKIC;R95?Lw_T?y<)_z@p%UjG=4nyfDgl)|VEjlqT;QGknFJ9m_^52I?9_L0-=J z)?&-k>U#e4__W#xZE8Z1cqu)6f!XdEj56HJwIz|g|8Tk$gpSJ?bI`U7Mx%rP84S`z zc>|B)@HNQ*v-h4aXTIA5{AxeeMgvdRTq98|QrjaB01?+Q0a4)D^>vy6DjH|FMhduE zuSh7sYR7Ett|ph2(@Fl!$uPRrqen%jUya<@OuLy-e?4l>=NCk`?@P?(cNur1W~eEz zTCjHBMNpJ{02+0G?S^?-m$(A++@K>)QC4q!0?F9x( zgZlHEORmk3pvD2N9UNfuQaKW%QVfXbM{enRnEhJ^DwRcHRnO8{pMB5X0Wg~wDuSLV zd?p{X9CC*D=^roA3Ox@){a>yT&M8oK3F);k9j@?EVfN|cal3P+@bqVi@CDy33oioY zsgQi2yN|q#yh58c+Iv^L4e(63%~Zp_vOTMiNXd5ouYgC#Wi%MSc2mCK+roUS!`dr# z5(5j{5sYe^wY6(|<&6Hp2nyD|j)K%5<)PM5gx*~`MMTp7#G>#(@@?^z_F)Y_=S5~} z@rKgDRIe1VN&z5M^#Del4W|?>M3C!K=WzZ}kzLy++Ja)q<{J}*;134BgG1+{fg+Ck z&-8=a?&WCJ`3TP%8)vJaapF*rA@(;x8C6yh3YQ4ioeOM(K$XET>KJlHN{?%#v^h41 z4_ARJT_-xky<>*L7q;g^P>IBYq8~R5eRf(I*Hf|cGFHTmUMCr^mkPg82{I*y4ced8 z8sd%&QZ`fPK`%1AGcBE>tedmut}UizcQu@=m}`;#7r!?LN(S=qlT-Fy&0Y3g?#`&r zO=MMzcOy2-VCe+j4}jNu)3pR-J@PpJky`z2{IrXeVM+3yR={*xRlWCY&vvMUJNSO7 z@koc9hGKy|dw_-Dv1{?=5Gzb2zFFwbr>v>X5qO2f{sv-(GH3L9{K6yTB98UX^^Mab zE9s(&)uqH|H*q5Z!QMGsNB-SQWK5$-5BwZLH+z+veWww@k~Uht;-5qh!=G;0bQ~lR zw|*SUIg>&!ev&wwXKo%KD-D~@3{Kc~?Kog*NLqC@B882`Kpbm-)c)74RdMAgh$x}C zHx*-X?5cs8(mll>wrh`?rE!3$3`BQig@hgd@6`Dy zByp%HS$-4qL!@mSo+#-Rrt}Xp+m{t0! zgJAZmV=s64OOIF+<{{jdvaF~^7FG{b$w|(=MRW@F5Xwr|msTUYW}K!OGjAw}yswAXwvI!zY~2#btVpX=-Eg8=e1$X}H~Psm^v)(-_x8a4yv^`$jB zE=GJ<%S!s~*{mDuHsrt%x@vS&be_*G0-VOm#2oZ{HS+uviM)rkU1cxg_OhjBzkO0x z?a$#VJz_)Y8m_Pa-Lw2%X1ZAK zZo*K#cz_TZ87w;tKFg)%d~xY(F_vsXElq|yPOek1Fo`BZj31P#FtGj9;~05R)iIb6 z7cYs$bt^1`<_D}!z9~5_6=oj-K+CBRPJ1fn@C&VH6G|q|&7&Tco1a~$umctq!Vwq{ zB*=EF-~;%Qxy@7h29Dj_{)thv+4l4GO}3S?c)@(K-8}`Ww>3oq)lcYRt^@nx5P<6+bxq`5%#S93r zMa>!)$rgzB9!|f1K|;@z&MC6zo}th|{yua_3UcNf8xXMDBKcFBGHsUsv9F^cgH-dZ z=3JIrZO@F&2;p?1dE8s|{gG?+xB8No-OL?*C6DT6q5Ko!K8Ez1mwT^(fsyi4ubSOJ zb9b!h7~$n21Of|~b#8QNMv@`@0hf`&ON6HZ?mC-4m%szevu|Fs3H)-fJtOi=5>R-z|Ct`9H8#qp{mlV(PlHuDn~?^MDJEC}@M(6=MF7 za`{QN4X8B&lbrWum?~EBTY}|uEA_%Im-eaf2K_XCFw)TASVh;!-+9Ei7~m*rA!?KsUIR_~c;xdF z-yKw2-P|F?4kcQ%M_U8Y1io&2jrP5tn`CgmY)EKD{hhx*SGFi-vGoM3W02nugo&_U zd})}QV6?RGsAy~0{aypzYSjf`!mclVE^LM5rPr-S#Az#l9zfC8m*Jj{Mi=a7UjF_Y zq8!Z>wOHu7`ftjs*X9h*9%!UcKNF4yJ{jsgf3nR``-*-8QF@miN>|7Vp$fPwRGcEd zYM%*#QW~Z6hRHUX`dgsh7F%`J z{yTsJj66yerN#!r1kIvPet0Wt4Cs8Wa6~T%Sugkc<{ZAPKbqp^5g>m2_%WNR)jHiC z{+qX0vkRwLZfxz*u0~e3U2Vpns@e5SAJagA-RxjO7z1JILvIlgZ;{1WUKQ-%*~?Pr z?BC2)wzx#{)ZX!D>m=hMSIVrlH2PNoE6Yk?v}J@PzB%3oh#!lyTbi#eWzW7!)NnV z!;4G+0FPEL1Sj{K@wfp%+p_$K3M#?}bD}kRYyU!rgMMomDFw@FSbP5P=|G)bHZ9um zoqUh@3~JMRQVSb3l|g;w?;*O3=J3ZkWfmL*-)cFtP~26-7WUujlA1l280lO0EKk6o~KBKU=K zuIepfUf4yZMcEVFHX@eA(8?o+1NS5?>W&%65ZM0c4^*F zGE8sk?LpCAn%WA!TG3pnpxitNpl6|uy{O$&T(Y_*H!>pm!kAzxn$`_s>_vOEvrB$F z{B9`6E+AU)13-nQwy&`6uUrD^&+&l%qMbW0ie(&|IVnI5BiWlWCz3Gwlnq&a3lKDJ zQP-5!Z5iriL&2$5I;fKXy0z+5UFPLr8^1Ga`qC348G8xj66`ptPZ)JGT%PB z$e_$bUI}Sd`KE4Vlub($;#aiB_8g!H0Jr)Qv3R=dZoueX8ZCNJpG!ggcCMz8e?KKg zzB#iE-CiP>34jHV*SmDgj725ZJ&$hVERO9>WUfLE5JG3obC(}TBMJ3_X@Z+Qi7n7i zd|D(FXwY{rmtL~K>hWqiTvJ?rhVjWy@~PFl!^G*aW=;{5EA(;pmIF<88SX`pz(L>{ zWrJa9`>m5iuEX5R!-+ZNWBF7s63{TaewwT%d_03rijt_scQwSNbkjFxhJyYS8<1o2 zTsS)i;RzEJG&BP^%Zv^2u#j-h?m!8&nTOz>rmVPG--(u|@JQ$$E3no;)$_`k5gTnz zGQgqofSUHtl@3KfVa^ZD-r@B8eh?cMs{An_h) zW9#V+$qK098Jfd*E%oWL=H zM)Yi0AbPlKQ`iIs7>1v)aH2q)?B%cMI5Fo*G!Wu{i%|eEj>vcjkk5$i&oHe+)9`u0 zbfssWxeKx%?YW4qn4rxl6;E&>{DsYYi=H2#8o34BygD@s}$){(`aDu*-y` zz4rltgasrenMDBO(EcqXn>C0?wNJ=u=*yRnV#CrcNmEV%3s+*HLj#YG8Xq;RxPSRk zL34qx6p|8y{vy`%4eHrHj5z3ASC6tN!s5niV#@h4-wGGyL;)h6dIrqE)yAog>$z8{ zFd~IMysJ-M&5sl&BlXPCFn+nw;M%+3u7!WSp_M99X~ckozCGD67ocHli-yZA&0g@f zf2b@9E%9(#9#I9uSB~$jxZ2QE;2jlgi>IA8&W))Qf$cy3IcB0=P0rwl_$h+t<5+-= ze$EiGeMK-=Pocs@nv~hFH1dl+OvIxY79~IuB~P4>UFppf+I_jB^nbkopUcGqKYCxb z@PvUe)6W*)7Tk1WT7ih$!gXlOD!HNmVt_&*dLjGC@r-GMoz^G0ynrUM&>4MTBS*{! zWmbIfS&se^0d<>s4*HeVXB98`{(IIU-*Yxz3F_^gJAGm|Mym>oqR*Ux95zM~F=dhR z2f9~K_8zq%zFQqHfa?mTdNy(4+*|(Zrgb7>F9Dvx)kRADIgI^C5^|#3#^iZ_f`B0k z>%DTy<%){g^87K;JmVDg6o1!;UvYKqjm1Qsq!&W%EhBUdwNC_Y-M9JECPczRQv}>N zHdDXC-(g^L6?s&U&QoVnp zdl|;Sw>8R5wF|$R&Lr|R_p*cK)3o=Nl4$}U4Z;0n_xaqX?1xTEy#GkK_tXljt~?s- z;>}u)@XV*FCwWJcFhky^9maEN-7=t|UdIua=G-xS4K(%1vZk>IJXQ-EA)!v)L{`~m zfp$O5ZrOvBV)0rsxHdbu9+{YoN_0&yRkK?p-L3J8kq4HuC{s^t(yp%d zJsS+)cSH5@IgY)hUchL+%pgXHO4S&`Hq*ao;y$zZ((5p%&2TySyy7xQ;e>8vCG8<~ zq(7vg>>+5yFyy0llQloz>+hLe7D6Xsv)<7-HEkEf!=`Yg+`g-CI1-{}jjrxKh=zX3 zRd6RjoxJ5kJr9Hk%QA+nt`hft3bLvH;i&7@2QBi718~ehw;YGvT zc@o17{U5Osfm#JI}mqi0tCn%Fby<9G&K$#eLPaQncO zYF08^^$HXib%2xRi5r#Id_)Ng2=rhqIJVGotj4;D_Gs32;fLJyZeCIL?fHm)-b!Ga zpw(oZ0m9DL<*-2S-!lU9=qJ2!mC}s>p@4^+y!(G#1-@f4)=XXx86AM2Hze@Za0F;a2z5{#eszX zCEiX2gX`zLfPqu_7F_0EcxzztQAI$JsE7o*bWtr|R!?ikWLAeH2{eMRYt#~GyF0;p z6oda#kj3U0vGfqMPr%Vw-XSs7{q58XtEKv^OGLML6@}XXeS3`K$Eyl=>9CVi#*k=~ zH{K@RNH2S2y|1#Z$Xi@8A+zYWu7cgS)|s&E1P+fe?*=^XR5A$l$p<;nO3QCH2bM() z!}oP$81E6@%-HCBw^YAHquw^Ii@yO4S5rr2IiH8~{){~*u=oi2>bS6{M#r^AAx^U} zEx^v~1)VBV{N#{nv}~{!UVMZ%XkhT3GL+)7O2U+G{E_eetBTEI^UrtN{yg7)6ovlq zgVf6(_=nJei}@`$n^RtcB(sop>^CbG%$v`2B|9B6$~{v z<}lBWGurl<|F~H0!95lw~3jjij^W`Tazl{^Z{1$i%8!WTPdXn%;^b#ky z(Q{(#NOi3wuuPEzkzG;@yzVLr?M8ScHaa%z7h2OXA*sc0>`g$^n(9Tb*s(D>nB9bO zBVb!Nyau;_>PKM11m|{i3Qyi;02-u{cThNSCvk&Vl}SB__t83>!BnX4hKmUhz=fw> zn~a_g>&@a9rLBEWQ9-vly7B-OU&XQiDF2HAnJVdQVdrtLLAM~g5 z$>Hrt;gG%u0gCnF^iQ|iP<_igkFbI0p~=;wF=6Z5B@`C0+8?XR{`02LvV-PwZ7wUA zkl{|Y(yNSjCOrx(=y%mrU6(;?ufVi~q+OgP;}Z<>`@{E^I|XFgMh43u%c4+u=ut8v z9}F{Mg*}&2kXt1u+`TIW(3j|Xjbs4LFEY7wp&i_YsBFRVUzT!0=d(SNfST;i%R!h4 zFBS*+Vf7f6$x2}l28te*3Oz6f)Sd~kJ9p>8nftwYWe%9;NeSrku)n0&VZ*pp6T7li zP;a&@Ga!{Tu!eoL8QfA3UADU1GA@+4&kVSM=i$Zt^3V_U%zhyySU zYWvqQzpI;<*&B_m>DrG>_R*MxA(O(DKiPFtynQ3G;%<|Uz;dzAH2aY^mZ3SVJq``q zgGA3U40>#ks{b6eD1Z(eB51H{B>$$?K4WUO_d^c>dVyb6%FqK-805eLD776n<_%OU z#o+tY)$$5}gVwysFc#*tRBwzv)3k_(RPlS`xKvv~HzqQ2in?v?EQ1PWyy9Je7nt}C z0#tgZ>3cqEH>Z$18ZOT%Dx(Ucwnsbv{9&&oJb<+|-4=f(kWWzDH^c#^+4|i}JP?kOCzN|caFPabryw(WC?-n{BRx$qybUcq;isXuY)8wm8QG`* znNXK{04CbP-ct4^WGS?!3ljOBSX_IKc zx8p*rd+M^$vXoV%H>4~;1Z0`i)U+>XPQPq`BuAxJ!b*xD$Y89ke3|88M`|9TWjVhQ z0A@4{vg-+{n{wnAdk?&}F$AJp;dAqH?bM5eHRCGBaIV{pSK*i_U&J`p;J7BbsnMX2 z>jYY?^B*%^uPRe2?|dd8w4j8KaKhlT z3lq{g1%<5!rgHVf+dmcg%1J;bS3wGD_bE1)HILRartPt|cL5JIcX7U3^WjoBtbmPs z(A*82#ARt^mtEG!jA$ut8nUg}9z;zs=MBt9OJQZDL^AlO)S1-J-RzLS6kevX)%jHT zlq%?Q-V@xPK7&WMQa>JfZW-9Nm8N&>jGjuZ#V;qa=0c9_Wt%rN1ie#KK5BAYd6KQ32Hjq8rJ zZjS!8i2iX7IB=mxlPE3tVDpo|(zwdV2g#VA57dEWi4OWPNY=2tv@!)nGvvn@dis>H z3N9x3kidQ|Eabz%s(f0!31`IZVeD=cyNAy5U_;hbw`?m0f`b`-6xml${6TN3_h|USe~$#{0dRcrT?K3{qK=#xi)n>tnR7PxfJ7x*KiNZrH-oeYzacHl%!(Q%6YbamPGVfXvM&1X-Tr%FhR88RL0qd^d?0`{ zb254XFj;qkRL%)Mows!&2NW8~VKPLC#Pa8moa?^_jF4S?(vPD!b(fHwBG?`Y(6LYQ zomJIiyzC5uK}iL9Kq!at0rt_v6nk_n{r@f)4iFyb1z_}J6rct1E>+KYvIC~L@k&7; zhXG5&Iv>#N@iG6k`g}v(QC{?K2m(Y%%b#xJ3eaTt9x&e-xI2=zDLiyqO^Ge=2M10m zZTMqI8=2&Tv}MN8J!a=nc^Z2GB+l_1+pAtGEcl_6ng^#^3tX7?A?^S1tcr%H44S`d zH3DROTChaX5g7g^Lj~o( z$s2)FKb13$)}e&Z&%MC|E`nl?JJ+5C*3s?OZ*m;2n;_RWQO^PaB9r%N~AC)99WDO{5PZbG9tTOM+0J z-x9+4HV6fVH{X;^6ZxWp9V31fm$W<2x$6dNT59G&+gYi+H{TYq9z|)*eITTNwxM1z zOpatG6ehy>_oC522n$dl4tsHge-U%Whcciq`QT(N2vAwJn}d}PwQQB^lLJ`kRT?8w zV8))9kngU76Al-&w?<%cA= z%tk|mTz?k!gk8;_UOFh>LUaUyAT&ts>C*&U?^M#n73Ei)GwLUZ(fDFt%;ty^I>MH{_P8TEqY&&3M93M6c9K^#s*{Y`$ zY5|o@fC$Mx-Gtv*Hc*E9Z1MpoZ=iITJJ4-;80kdU5+eZKR&LU6eHp3%GKLtIM+6o* z-v||Og6xqDk}`q(Sz^MGiNCiC;ZzPz?9ZT%?P8+kO-_(o`FU~!NWb%V7h!%@iq}hb zs$LDz-@z^xGBl%OuLC|Zq>Nj<*yLNO9%1{&bs^L89yu+C|wqaf#a8~lD{v4`7DM5 zE&M^~x$pfFoPxt+$b@ctA_W1g9M6o&2d%xV`1u>}YCqF_7FNFxjiYrjaKo9Vfl;q6 zfnDLxc@zDyl0SWV$ArV@j13bg`7GVUtCM6(N|Duqf~~7{8$if~%=ncd-xUVxCV&Me ztY^0Df~pEs=u68;uyGKpy=@H9?a*Eh^`*nk?Oktkr8Hk8vkXGs0TFEUA1pHhq`=RM z%O#Ni5(ldUz&NW{nlq&Il~FW~2xl-)cXs&f9qh%ioAtTrO>d$2Z!bYw8fLuJqau(| zsiO@@uiC33?t2T9br)a}^qr2mx4WX?75PEl@8yZ-m>7=4FR^4|u*%S@wtxs13Py+z zV;d8FtsOG@)?cW1$_ZSi;XugPIYB9>0vSw?6G}J9$Pr>R`>TrHl!5pDix-qbCCVbr zcna=ZWOl5bdWiJ7oy1CQU>V7&FbLylK$EmzL9zrs%j%+R)u>lO5kddta~AfFRr&Y?ys@Ca&o(L-*S9j9RY``YR8E;ew~cda?q zvnQ5*Iu-ia?jrnC2AmG#w*affe?_~y>Q{ubb~T4^i<_xfDljKI8paXb|4m2mJRfbe zYq&#%sK)UW<&YS^3+%NiNCP;Juuv3GZ7W@Otm$M0zb_3~i@Tc$>3dj+tb`*^x|h

YAOM|Bs-|1CxiUFFn@tzNz;| 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�+;mPgftt7dXaT2vMh=W|2MSA$XX0(L_6AB4&=a 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 diff --git a/maps/expedition_vr/aerostat/_aerostat.dm b/maps/expedition_vr/aerostat/_aerostat.dm index a89ff259c3..c645397cc2 100644 --- a/maps/expedition_vr/aerostat/_aerostat.dm +++ b/maps/expedition_vr/aerostat/_aerostat.dm @@ -8,10 +8,11 @@ [i]Habitability[/i]: Low (High Temperature, Toxic Atmosphere) [b]Notice[/b]: Planetary environment not suitable for life. Landing may be hazardous."} icon_state = "globe" - color = "#dfff3f" //Bright yellow in_space = 0 initial_generic_waypoints = list("aerostat_west","aerostat_east","aerostat_south","aerostat_northwest","aerostat_northeast") extra_z_levels = list(Z_LEVEL_AEROSTAT_SURFACE) + known = TRUE + icon_state = "chlorine" // -- Datums -- // diff --git a/maps/expedition_vr/alienship/_alienship.dm b/maps/expedition_vr/alienship/_alienship.dm index 9646dd12de..890f1e5c77 100644 --- a/maps/expedition_vr/alienship/_alienship.dm +++ b/maps/expedition_vr/alienship/_alienship.dm @@ -1,12 +1,13 @@ // -- Datums -- // /obj/effect/overmap/visitable/sector/alienship - name = "Unknown Vessel" + name = "precursor vessel" + icon_state = "unkn_o" + unknown_state = "ship" desc = "An unknown vessel detected by sensors." start_x = 12 start_y = 12 icon_state = "ship" - color = "#ff00ff" //Sandy initial_generic_waypoints = list("tether_excursion_alienship") // -- Objs -- // diff --git a/maps/expedition_vr/beach/_beach.dm b/maps/expedition_vr/beach/_beach.dm index 5817cabc5f..4dcd16364b 100644 --- a/maps/expedition_vr/beach/_beach.dm +++ b/maps/expedition_vr/beach/_beach.dm @@ -8,10 +8,11 @@ [i]Habitability[/i]: Moderate (High Temperature) [b]Notice[/b]: Request authorization from planetary authorities before attempting to construct settlements"} icon_state = "globe" - color = "#ffd300" //Sandy in_space = 0 initial_generic_waypoints = list("beach_e", "beach_c", "beach_nw") extra_z_levels = list(Z_LEVEL_BEACH_CAVE) + known = TRUE + icon_state = "desert" //This is a special subtype of the thing that generates ores on a map //It will generate more rich ores because of the lower numbers than the normal one diff --git a/maps/expedition_vr/space/_debrisfield.dm b/maps/expedition_vr/space/_debrisfield.dm index cf63350a59..6fe07d2cb9 100644 --- a/maps/expedition_vr/space/_debrisfield.dm +++ b/maps/expedition_vr/space/_debrisfield.dm @@ -9,6 +9,7 @@ known = FALSE color = "#ee3333" //Redish, so it stands out against the other debris-like icons initial_generic_waypoints = list("debrisfield_se", "debrisfield_nw") + icon_state = "spacehulk_g" // -- Objs -- // @@ -146,7 +147,7 @@ . = ..() /obj/effect/overmap/visitable/ship/landable/tinycarrier - scanner_name = "TBD" + name = "TBD" scanner_desc = "TBD" vessel_mass = 12000 vessel_size = SHIP_SIZE_SMALL @@ -156,7 +157,7 @@ . = ..() var/datum/lore/organization/O = loremaster.organizations[/datum/lore/organization/other/sysdef] var/newname = "SDV [pick(O.ship_names)]" - scanner_name = newname + name = newname scanner_desc = {"\[i\]Registration\[/i\]: [newname] \[i\]Class\[/i\]: Light Escort Carrier \[i\]Transponder\[/i\]: Transmitting (MIL), Weak Signal diff --git a/maps/expedition_vr/space/_fueldepot.dm b/maps/expedition_vr/space/_fueldepot.dm index 1b31997bbc..0b8aa3b1e8 100644 --- a/maps/expedition_vr/space/_fueldepot.dm +++ b/maps/expedition_vr/space/_fueldepot.dm @@ -9,6 +9,9 @@ icon_state = "fueldepot" color = "#33FF33" initial_generic_waypoints = list("fueldepot_east","fueldepot_west","fueldepot_north","fueldepot_south") + unknown_state = "station" + known = TRUE + icon_state = "fueldepot_g" /area/tether_away/fueldepot name = "Away Mission - Fuel Depot" diff --git a/maps/gateway_vr/carpfarm.dm b/maps/gateway_vr/carpfarm.dm index 54195554f9..281ff2e01b 100644 --- a/maps/gateway_vr/carpfarm.dm +++ b/maps/gateway_vr/carpfarm.dm @@ -1,6 +1,6 @@ /obj/effect/overmap/visitable/sector/tether_gateway/carpfarm initial_generic_waypoints = list("carpfarm1", "carpfarm2") - scanner_name = "Carp-Infested Outpost" + name = "Carp-Infested Outpost" scanner_desc = @{"[i]Registration[/i]: UNKNOWN [i]Class[/i]: Installation [i]Transponder[/i]: None Detected diff --git a/maps/gateway_vr/listeningpost.dm b/maps/gateway_vr/listeningpost.dm index 07683dd19e..c3badad0e3 100644 --- a/maps/gateway_vr/listeningpost.dm +++ b/maps/gateway_vr/listeningpost.dm @@ -1,6 +1,6 @@ /obj/effect/overmap/visitable/sector/tether_gateway/listeningpost initial_generic_waypoints = list("tether_excursion_listeningpost") - scanner_name = "Strange Asteroid" + name = "Strange Asteroid" scanner_desc = @{"[i]Registration[/i]: UNKNOWN [i]Class[/i]: Wreckage [i]Transponder[/i]: None Detected"} diff --git a/maps/gateway_vr/snow_outpost.dm b/maps/gateway_vr/snow_outpost.dm index a77c03451f..c840ce401a 100644 --- a/maps/gateway_vr/snow_outpost.dm +++ b/maps/gateway_vr/snow_outpost.dm @@ -1,7 +1,7 @@ /obj/effect/overmap/visitable/sector/tether_gateway/snowoutpost initial_generic_waypoints = list("tether_excursion_snow_outpost") in_space = 0 - scanner_name = "Snowy Outpost" + name = "Snowy Outpost" scanner_desc = @{"[i]Stellar Body[/i]>: UNKNOWN [i]Class[/i]>: M-Class Planetoid [i]Habitability[/i]>: Moderate (Low Temperature) diff --git a/maps/gateway_vr/snowfield.dm b/maps/gateway_vr/snowfield.dm index a2116137a6..fc68f82aa9 100644 --- a/maps/gateway_vr/snowfield.dm +++ b/maps/gateway_vr/snowfield.dm @@ -1,11 +1,14 @@ /obj/effect/overmap/visitable/sector/tether_gateway/snowfield initial_generic_waypoints = list("tether_excursion_snowfield") in_space = 0 - scanner_name = "Snowy Field" + name = "Snowy Field" scanner_desc = @{"[i]Stellar Body[/i]: UNKNOWN [i]Class[/i]: M-Class Planetoid [i]Habitability[/i]: Moderate (Low Temperature) [b]Notice[/b]: Very cold atmosphere, minimal life signs detected"} + unknown_state = "planet" + known = FALSE + icon_state = "frozen" // -- Areas -- // diff --git a/maps/gateway_vr/variable/arynthilake.dm b/maps/gateway_vr/variable/arynthilake.dm index a1f414b3da..e710acf305 100644 --- a/maps/gateway_vr/variable/arynthilake.dm +++ b/maps/gateway_vr/variable/arynthilake.dm @@ -4,8 +4,9 @@ scanner_desc = @{"It is difficult to tell just what is beyond this strange shimmering shape. The air beyond seems breathable."} icon = 'icons/obj/overmap_vr.dmi' icon_state = "shimmer" - color = "#171DFF" //bloo in_space = 0 + unknown_state = "field" + known = FALSE /datum/map_template/tether_lateload/gateway/arynthilake/on_map_loaded(z) . = ..() diff --git a/maps/gateway_vr/variable/honlethhighlands.dm b/maps/gateway_vr/variable/honlethhighlands.dm index 526cfb3a8e..9eb1104f22 100644 --- a/maps/gateway_vr/variable/honlethhighlands.dm +++ b/maps/gateway_vr/variable/honlethhighlands.dm @@ -6,6 +6,7 @@ icon_state = "shimmer" color = "#171DFF" //bloo in_space = 0 + unknown_state = "field" /datum/map_template/tether_lateload/gateway/honlethhighlands_a/on_map_loaded(z) . = ..() diff --git a/maps/gateway_vr/wildwest.dm b/maps/gateway_vr/wildwest.dm index 36317745d6..632c98c171 100644 --- a/maps/gateway_vr/wildwest.dm +++ b/maps/gateway_vr/wildwest.dm @@ -184,4 +184,7 @@ icon = 'icons/obj/overmap_vr.dmi' icon_state = "shimmer" color = "#8b0b0b" //red - in_space = 1 \ No newline at end of file + in_space = 1 + unknown_state = "field" + known = FALSE + \ No newline at end of file diff --git a/maps/offmap_vr/om_ships/abductor.dm b/maps/offmap_vr/om_ships/abductor.dm index fa5b017527..a53951adaf 100644 --- a/maps/offmap_vr/om_ships/abductor.dm +++ b/maps/offmap_vr/om_ships/abductor.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD // Compile in the map for CI testing if we're testing compileability of all the maps #if MAP_TEST #include "abductor.dmm" @@ -99,3 +100,180 @@ You will find a dispenser within the room you started in which contains some bas name = "Void Core" power_gen = 5000000 +||||||| parent of 90dab73f30... Merge pull request #10807 from VOREStation/Icons/overmap +// Compile in the map for CI testing if we're testing compileability of all the maps +#if MAP_TEST +#include "abductor.dmm" +#endif + +// Map template for spawning the shuttle +/datum/map_template/om_ships/abductor + name = "OM Ship - Abductor Ship (New Z)" + desc = "A ship for spooky aliens to kidnap farmers and unfortunate spacemen." + mappath = 'abductor.dmm' + +/area/abductor + requires_power = 0 + icon_state = "purple" + +/area/abductor/ + name = "Abductor Ship" + flags = RAD_SHIELDED | BLUE_SHIELDED + +/area/abductor/interior + name = "Abductor Ship Interior" + +/area/abductor/exterior + name = "Abductor Ship Exterior" + has_gravity = 0 + +// The 'Abductor Ship' +/obj/effect/overmap/visitable/ship/abductor + name = "spacecraft" + desc = "Spacefaring vessel." + icon_state = "shuttle" + moving_state = "shuttle" + scanner_name = "unknown vessel" + scanner_desc = @{"[i]Registration[/i]: Unknown +[i]Class[/i]: Corvette +[i]Transponder[/i]: No transponder detected." +[b]Notice[/b]: Deep scans detect unknown power signatures, and onboard transporter technology."} + color = "#11414c" //STEALTH + vessel_mass = 8000 + vessel_size = SHIP_SIZE_SMALL + initial_generic_waypoints = list("abductor_port", "abductor_starboard") + fore_dir = NORTH + +/obj/item/weapon/paper/alien/abductor + name = "Read Me" + info = {"((Just to state the obvious here, but make sure you're reading OOC notes and all that. This role does not give you any special protections from the rules. Only abduct people who seem like they'd be cool with it.))

+ +Your mission is to travel out into space to retrieve individuals to experiment upon.

+ +Just what experiments you do are up to you, thought it should be noted, we can't do experiments on corpses, so you should be careful not to kill anyone in the process of acquiring your subject. Needless killing is grounds for termination from the organization.

+ +The experimentation process however can be fatal if necessary, so long as we get good data. ((And the person's cool with it OOCly))

+ +You will find that the ship is equipped with transporter technology. There are teleporters to the outside world on both the port and starboard sides. Each of the experimentation chambers is also outfitted with an advanced translocator device that is linked to its given room. You will want to ensure that you take a translocator device with you BEFORE you leave the ship, as there will be no other way for you to return without assistance.

+ +Your translocator device is arguably your most critical piece of equipment, and it is imperative that you not lose it, as possessing it would allow outsiders access to the ship.

+ +The center of the ship sports the shield generator, as well as the chemical and resleeving labs. It would be wise to ensure that if your experiments are fatal, to scan the mind and body of your subject before you proceed, so we can ensure that we can return the subjects to where we find them.

+ +To the starboard and port sides you will find a total of six experimentation rooms, and two transporter rooms, as well as two engine rooms at the aft.

+ +The aft center of the ship is the common equipment room. The items here are limited in quantity, so only take what you intend to use in your given task.

+ +At the fore of the vessel are the briefing rooms, and the bridge.

+ +Lastly, there are camera uplink consoles scattered around the ship. It is recommended that you take stock of where potential targets are before you depart.

+ +You will find a dispenser within the room you started in which contains some basic equipment that you may wish to take with you. Please do not loot the dispensers from other rooms unless the one assigned to it is okay with it.

+ +And finally, to leave this room, you will want to put your ID on the table, and pray to the corporate overlords to add access 777 to it."} + +/obj/machinery/porta_turret/alien/abductor + name = "anti-personnel turret" + installation = /obj/item/weapon/gun/energy/gun/taser + lethal = FALSE + health = 500 // Sturdier turrets, non-lethal, for capturing people alive + maxhealth = 500 + req_one_access = list(777) // The code I've been using for events, same as the doors + +/obj/machinery/porta_turret/alien/abductor/ion + name = "anti-personnel turret" + installation = /obj/item/weapon/gun/energy/ionrifle/weak + lethal = TRUE + +/obj/machinery/power/rtg/abductor/built/abductor + name = "Void Core" + power_gen = 5000000 + +======= +// Compile in the map for CI testing if we're testing compileability of all the maps +#if MAP_TEST +#include "abductor.dmm" +#endif + +// Map template for spawning the shuttle +/datum/map_template/om_ships/abductor + name = "OM Ship - Abductor Ship (New Z)" + desc = "A ship for spooky aliens to kidnap farmers and unfortunate spacemen." + mappath = 'abductor.dmm' + +/area/abductor + requires_power = 0 + icon_state = "purple" + +/area/abductor/ + name = "Abductor Ship" + flags = RAD_SHIELDED | BLUE_SHIELDED + +/area/abductor/interior + name = "Abductor Ship Interior" + +/area/abductor/exterior + name = "Abductor Ship Exterior" + has_gravity = 0 + +// The 'Abductor Ship' +/obj/effect/overmap/visitable/ship/abductor + name = "strange spacecraft" + desc = "Spacefaring vessel." + icon_state = "unkn_r" + scanner_desc = @{"[i]Registration[/i]: Unknown +[i]Class[/i]: Corvette +[i]Transponder[/i]: No transponder detected." +[b]Notice[/b]: Deep scans detect unknown power signatures, and onboard transporter technology."} + vessel_mass = 8000 + vessel_size = SHIP_SIZE_SMALL + initial_generic_waypoints = list("abductor_port", "abductor_starboard") + fore_dir = NORTH + known = FALSE + +/obj/item/weapon/paper/alien/abductor + name = "Read Me" + info = {"((Just to state the obvious here, but make sure you're reading OOC notes and all that. This role does not give you any special protections from the rules. Only abduct people who seem like they'd be cool with it.))

+ +Your mission is to travel out into space to retrieve individuals to experiment upon.

+ +Just what experiments you do are up to you, thought it should be noted, we can't do experiments on corpses, so you should be careful not to kill anyone in the process of acquiring your subject. Needless killing is grounds for termination from the organization.

+ +The experimentation process however can be fatal if necessary, so long as we get good data. ((And the person's cool with it OOCly))

+ +You will find that the ship is equipped with transporter technology. There are teleporters to the outside world on both the port and starboard sides. Each of the experimentation chambers is also outfitted with an advanced translocator device that is linked to its given room. You will want to ensure that you take a translocator device with you BEFORE you leave the ship, as there will be no other way for you to return without assistance.

+ +Your translocator device is arguably your most critical piece of equipment, and it is imperative that you not lose it, as possessing it would allow outsiders access to the ship.

+ +The center of the ship sports the shield generator, as well as the chemical and resleeving labs. It would be wise to ensure that if your experiments are fatal, to scan the mind and body of your subject before you proceed, so we can ensure that we can return the subjects to where we find them.

+ +To the starboard and port sides you will find a total of six experimentation rooms, and two transporter rooms, as well as two engine rooms at the aft.

+ +The aft center of the ship is the common equipment room. The items here are limited in quantity, so only take what you intend to use in your given task.

+ +At the fore of the vessel are the briefing rooms, and the bridge.

+ +Lastly, there are camera uplink consoles scattered around the ship. It is recommended that you take stock of where potential targets are before you depart.

+ +You will find a dispenser within the room you started in which contains some basic equipment that you may wish to take with you. Please do not loot the dispensers from other rooms unless the one assigned to it is okay with it.

+ +And finally, to leave this room, you will want to put your ID on the table, and pray to the corporate overlords to add access 777 to it."} + +/obj/machinery/porta_turret/alien/abductor + name = "anti-personnel turret" + installation = /obj/item/weapon/gun/energy/gun/taser + lethal = FALSE + health = 500 // Sturdier turrets, non-lethal, for capturing people alive + maxhealth = 500 + req_one_access = list(777) // The code I've been using for events, same as the doors + +/obj/machinery/porta_turret/alien/abductor/ion + name = "anti-personnel turret" + installation = /obj/item/weapon/gun/energy/ionrifle/weak + lethal = TRUE + +/obj/machinery/power/rtg/abductor/built/abductor + name = "Void Core" + power_gen = 5000000 + +>>>>>>> 90dab73f30... Merge pull request #10807 from VOREStation/Icons/overmap diff --git a/maps/offmap_vr/om_ships/aro.dm b/maps/offmap_vr/om_ships/aro.dm index b6ef237453..c4c464442f 100644 --- a/maps/offmap_vr/om_ships/aro.dm +++ b/maps/offmap_vr/om_ships/aro.dm @@ -45,7 +45,6 @@ /obj/effect/overmap/visitable/ship/aro name = "Aronai Sieyes" desc = "It's Aronai. Did you know he's actually a spaceship? Yeah it's weird." - color = "#00aaff" //Bluey vessel_mass = 8000 vessel_size = SHIP_SIZE_SMALL initial_generic_waypoints = list("aronai_fore", "aronai_aft", "aronai_port", "aronai_starboard") diff --git a/maps/offmap_vr/om_ships/aro2.dm b/maps/offmap_vr/om_ships/aro2.dm index 5d7f834663..d31b8f2ca1 100644 --- a/maps/offmap_vr/om_ships/aro2.dm +++ b/maps/offmap_vr/om_ships/aro2.dm @@ -56,12 +56,11 @@ /obj/effect/overmap/visitable/ship/aro2 name = "spacecraft" desc = "Spacefaring vessel. Friendly IFF detected." - scanner_name = "Aronai Sieyes" + name = "Aronai Sieyes" scanner_desc = @{"[i]Registration[/i]: Aronai Sieyes [i]Class[/i]: Small Frigate (Low Displacement) [i]Transponder[/i]: Transmitting (CIV), non-hostile [b]Notice[/b]: Automated vessel"} - color = "#00aaff" //Bluey vessel_mass = 8000 vessel_size = SHIP_SIZE_SMALL initial_generic_waypoints = list("aronai2_fore", "aronai2_aft", "aronai2_port", "aronai2_starboard") diff --git a/maps/offmap_vr/om_ships/aro3.dm b/maps/offmap_vr/om_ships/aro3.dm index 5d4c4d82c9..724e803854 100644 --- a/maps/offmap_vr/om_ships/aro3.dm +++ b/maps/offmap_vr/om_ships/aro3.dm @@ -77,9 +77,9 @@ // The 'ship' /obj/effect/overmap/visitable/ship/aro3 - name = "spacecraft" + name = "Aronai Sieyes" desc = "Spacefaring vessel. Friendly IFF detected." - scanner_name = "Aronai Sieyes" + icon_state = "moe_cruiser_g" scanner_desc = @{"[i]Registration[/i]: Aronai Sieyes [i]Class[/i]: Small Frigate (Low Displacement) [i]Transponder[/i]: Transmitting (CIV), non-hostile @@ -90,6 +90,7 @@ initial_generic_waypoints = list("aronai3_fore", "aronai3_aft", "aronai3_port", "aronai3_starboard") initial_restricted_waypoints = list("Aro's Boat" = list("omship_spawn_aroboat3")) fore_dir = NORTH + known = FALSE skybox_icon = 'aro3.dmi' skybox_icon_state = "skybox" diff --git a/maps/offmap_vr/om_ships/bearcat.dm b/maps/offmap_vr/om_ships/bearcat.dm new file mode 100644 index 0000000000..69cb39e81f --- /dev/null +++ b/maps/offmap_vr/om_ships/bearcat.dm @@ -0,0 +1,202 @@ +// Compile in the map for CI testing if we're testing compileability of all the maps +#if MAP_TEST +#include "bearcat.dmm" +#endif + +// -- Datums -- // +/datum/map_template/om_ships/bearcat + name = "OM Ship - Bearcat (New Z)" + desc = "An old salvage ship, abandoned but seemingly intact." + mappath = 'bearcat.dmm' + +// The 'shuttle' +/datum/shuttle/autodock/overmap/bearcat + name = "Bearcat" + current_location = "omship_spawn_bearcat" + docking_controller_tag = "bearcat_docking" + shuttle_area = list( /area/ship/scrap, + /area/shuttle/bearcat/cargo, + /area/shuttle/bearcat/command, + /area/shuttle/bearcat/command_captain, + /area/shuttle/bearcat/comms, + /area/shuttle/bearcat/crew, + /area/shuttle/bearcat/crew_corridors, + /area/shuttle/bearcat/crew_dorms, + /area/shuttle/bearcat/crew_kitchen, + /area/shuttle/bearcat/crew_medbay, + /area/shuttle/bearcat/crew_saloon, + /area/shuttle/bearcat/crew_toilets, + /area/shuttle/bearcat/crew_wash, + /area/shuttle/bearcat/dock_central, + /area/shuttle/bearcat/dock_port, + /area/shuttle/bearcat/dock_starboard, + /area/shuttle/bearcat/maintenance, + /area/shuttle/bearcat/maintenance_atmos, + /area/shuttle/bearcat/maintenance_engine, + /area/shuttle/bearcat/maintenance_engine_pod_port, + /area/shuttle/bearcat/maintenance_engine_pod_starboard, + /area/shuttle/bearcat/maintenance_enginecontrol, + /area/shuttle/bearcat/maintenance_power, + /area/shuttle/bearcat/maintenance_storage, + /area/shuttle/bearcat/unused1, + /area/shuttle/bearcat/unused2 + ) //it's a miracle this thing works + defer_initialisation = TRUE //We're not loaded until an admin does it + fuel_consumption = 4 //chonker uses more fuel + move_direction = NORTH + ceiling_type = /turf/simulated/floor/reinforced/airless + +// A shuttle lateloader landmark +/obj/effect/shuttle_landmark/shuttle_initializer/bearcat + name = "IRV Bearcat" + base_area = /area/space + base_turf = /turf/space + landmark_tag = "omship_spawn_bearcat" + shuttle_type = /datum/shuttle/autodock/overmap/bearcat + +/obj/effect/overmap/visitable/ship/landable/bearcat + name = "Binturong-class Salvage Vessel" + scanner_desc = @{"[i]Registration[/i]: IRV Bearcat +[i]Class:[/i] Corvette +[i]Transponder[/i]: Transmitting \'Keep-Away\' Signal +[b]Notice[/b]: Abandoned under unclear circumstances."} + known = FALSE + vessel_mass = 3500 + vessel_size = SHIP_SIZE_LARGE + shuttle = "Bearcat" + +// The shuttle's 'shuttle' computer +/obj/machinery/computer/shuttle_control/explore/bearcat + name = "short jump console" + shuttle_tag = "Bearcat" + req_one_access = list() + +// -- Objs -- // +/obj/effect/shuttle_landmark/premade/bearcat/dock_w + name = "IRV Bearcat - Port Docking Ring" + landmark_tag = "bearcat_dock_w" + +/obj/effect/shuttle_landmark/premade/bearcat/dock_e + name = "IRV Bearcat - Starboard Docking Ring" + landmark_tag = "bearcat_dock_e" + +/area/ship/scrap + name = "\improper Bearcat" + has_gravity = 0 //predates artificial gravity - won't matter much due to all the walls to push off of! + +/area/shuttle/bearcat/crew + name = "\improper Bearcat Crew Compartments" + icon_state = "hallC" + +/area/shuttle/bearcat/crew_corridors + name = "\improper Bearcat Corridors" + icon_state = "hallC1" + +/area/shuttle/bearcat/crew_kitchen + name = "\improper Bearcat Galley" + icon_state = "kitchen" + +/area/shuttle/bearcat/crew_dorms + name = "\improper Bearcat Dorms" + icon_state = "crew_quarters" + +/area/shuttle/bearcat/crew_saloon + name = "\improper Bearcat Saloon" + icon_state = "conference" + +/area/shuttle/bearcat/crew_toilets + name = "\improper Bearcat Bathrooms" + icon_state = "toilet" + +/area/shuttle/bearcat/crew_wash + name = "\improper Bearcat Washroom" + icon_state = "locker" + +/area/shuttle/bearcat/crew_medbay + name = "\improper Bearcat Medical Bay" + icon_state = "medbay" + +/area/shuttle/bearcat/cargo + name = "\improper Bearcat Cargo Hold" + icon_state = "quartstorage" + +/area/shuttle/bearcat/dock + name = "\improper Bearcat Docking Bay" + icon_state = "start" + +/area/shuttle/bearcat/dock_central + name = "\improper Bearcat Passenger Bay" + icon_state = "start" + +/area/shuttle/bearcat/dock_port + name = "\improper Bearcat Docking Bay Port" + icon_state = "west" + +/area/shuttle/bearcat/dock_starboard + name = "\improper Bearcat Docking Bay Starboard" + icon_state = "east" + +/area/shuttle/bearcat/unused1 + name = "\improper Bearcat Unused Compartment #1" + icon_state = "green" + +/area/shuttle/bearcat/unused2 + name = "\improper Bearcat Unused Compartment #2" + icon_state = "yellow" + +/area/shuttle/bearcat/unused3 + name = "\improper Bearcat Unused Compartment #3" + icon_state = "blueold" + +/area/shuttle/bearcat/maintenance + name = "\improper Bearcat Maintenance Compartments" + icon_state = "storage" + +/area/shuttle/bearcat/maintenance_storage + name = "\improper Bearcat Tools Storage" + icon_state = "eva" + +/area/shuttle/bearcat/maintenance_atmos + name = "\improper Bearcat Atmospherics Compartment" + icon_state = "atmos" + music = list('sound/ambience/ambiatm1.ogg') + +/area/shuttle/bearcat/maintenance_power + name = "\improper Bearcat Power Compartment" + icon_state = "engine_smes" + music = list('sound/ambience/ambisin1.ogg','sound/ambience/ambisin2.ogg','sound/ambience/ambisin3.ogg') + +/area/shuttle/bearcat/maintenance_engine + name = "\improper Bearcat Main Engine Compartment" + icon_state = "engine" + music = list('sound/ambience/ambisin1.ogg','sound/ambience/ambisin2.ogg','sound/ambience/ambisin3.ogg') + +/area/shuttle/bearcat/maintenance_engine_pod_port + name = "\improper Bearcat Port Engine Pod" + icon_state = "west" + music = list('sound/ambience/ambisin1.ogg','sound/ambience/ambisin2.ogg','sound/ambience/ambisin3.ogg') + +/area/shuttle/bearcat/maintenance_engine_pod_starboard + name = "\improper Bearcat Starboard Engine Pod" + icon_state = "east" + music = list('sound/ambience/ambisin1.ogg','sound/ambience/ambisin2.ogg','sound/ambience/ambisin3.ogg') + +/area/shuttle/bearcat/maintenance_enginecontrol + name = "\improper Bearcat Engine Control Room" + icon_state = "engine_monitoring" + music = list('sound/ambience/ambisin1.ogg','sound/ambience/ambisin2.ogg','sound/ambience/ambisin3.ogg') + +/area/shuttle/bearcat/command + name = "\improper Bearcat Command Deck" + icon_state = "centcom" + music = list('sound/ambience/signal.ogg') + +/area/shuttle/bearcat/command_captain + name = "\improper Bearcat Captain's Quarters" + icon_state = "captain" + music = list('sound/ambience/signal.ogg') + +/area/shuttle/bearcat/comms + name = "\improper Bearcat Communications Relay" + icon_state = "tcomsatcham" + music = list('sound/ambience/signal.ogg') \ No newline at end of file diff --git a/maps/offmap_vr/om_ships/cruiser.dm b/maps/offmap_vr/om_ships/cruiser.dm index f07d1e8bf1..ab47fc272e 100644 --- a/maps/offmap_vr/om_ships/cruiser.dm +++ b/maps/offmap_vr/om_ships/cruiser.dm @@ -125,14 +125,13 @@ mappath = 'cruiser.dmm' /obj/effect/overmap/visitable/ship/cruiser - name = "spacecraft" + name = "NDV Daedalus" + icon_state = "oberth_destroyer_g" desc = "Spacefaring vessel. NanoTrasen IFF detected." - scanner_name = "NDV Daedalus" scanner_desc = @{"[i]Registration[/i]: NDV Daedalus [i]Class[/i]: Light Cruiser [i]Transponder[/i]: Transmitting (MIL), NanoTrasen IFF [b]Notice[/b]: Military vessel, do not approach"} - color = "#0033ff" //Bluey vessel_mass = 15000 vessel_size = SHIP_SIZE_LARGE initial_generic_waypoints = list("cruiser_fore", "cruiser_aft", "cruiser_port", "cruiser_starboard", "ws_port_dock_1", "ws_port_dock_2", "ws_starboard_dock_1", "ws_starboard_dock_2") diff --git a/maps/offmap_vr/om_ships/curashuttle.dm b/maps/offmap_vr/om_ships/curashuttle.dm index 158d145894..e2a44154e6 100644 --- a/maps/offmap_vr/om_ships/curashuttle.dm +++ b/maps/offmap_vr/om_ships/curashuttle.dm @@ -56,12 +56,11 @@ // The 'ship' /obj/effect/overmap/visitable/ship/landable/curashuttle - scanner_name = "CRV Doom Delay" + name = "CRV Doom Delay" scanner_desc = @{"[i]Registration[/i]: Curabitur Scimed [i]Class[/i]: Small Shuttle [i]Transponder[/i]: Transmitting (CIV), non-hostile [b]Notice[/b]: Small private vessel"} - color = "#01A9DB" vessel_mass = 2000 vessel_size = SHIP_SIZE_TINY shuttle = "Cura" \ No newline at end of file diff --git a/maps/offmap_vr/om_ships/geckos.dm b/maps/offmap_vr/om_ships/geckos.dm new file mode 100644 index 0000000000..dd24fe4e20 --- /dev/null +++ b/maps/offmap_vr/om_ships/geckos.dm @@ -0,0 +1,176 @@ +// Compile in the map for CI testing if we're testing compileability of all the maps +#if MAP_TEST +#include "gecko_sh.dmm" +#include "gecko_cr.dmm" +#endif + +// Map template for spawning the shuttle +/datum/map_template/om_ships/gecko_stationhopper + name = "OM Ship - Gecko Stationhopper (new Z)" + desc = "A medium personnel transport shuttle." + mappath = 'gecko_sh.dmm' + annihilate = TRUE + +/datum/map_template/om_ships/gecko_cargohauler + name = "OM Ship - Gecko Cargo Hauler (new Z)" + desc = "A medium supply transport shuttle." + mappath = 'gecko_cr.dmm' + annihilate = TRUE + +/datum/map_template/om_ships/gecko_cargohauler_wreck + name = "OM Ship - Wrecked Gecko Cargo Hauler (new Z)" + desc = "A wrecked medium supply transport shuttle." + mappath = 'gecko_cr_wreck.dmm' + annihilate = TRUE + +// The shuttle's area(s) +/area/shuttle/gecko_sh + name = "\improper Gecko Stationhopper" + icon_state = "green" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/gecko_sh_engineering + name = "\improper Gecko Stationhopper Engineering" + icon_state = "yellow" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/gecko_sh_cockpit + name = "\improper Gecko Stationhopper Cockpit" + icon_state = "purple" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/gecko_cr + name = "\improper Gecko Cargo Hauler Bay" + icon_state = "green" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/gecko_cr_engineering + name = "\improper Gecko Cargo Hauler Aft" + icon_state = "yellow" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/gecko_cr_cockpit + name = "\improper Gecko Cargo Hauler Fore" + icon_state = "purple" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/gecko_cr_wreck + name = "\improper Wrecked Gecko Cargo Hauler Bay" + icon_state = "green" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/gecko_cr_engineering_wreck + name = "\improper Wrecked Gecko Cargo Hauler Aft" + icon_state = "yellow" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/gecko_cr_cockpit_wreck + name = "\improper Wrecked Gecko Cargo Hauler Fore" + icon_state = "purple" + requires_power = 1 + has_gravity = 0 + +// The shuttle's 'shuttle' computer +/obj/machinery/computer/shuttle_control/explore/gecko_sh + name = "short jump console" + shuttle_tag = "Gecko Stationhopper" + req_one_access = list() + +/obj/machinery/computer/shuttle_control/explore/gecko_cr + name = "short jump console" + shuttle_tag = "Gecko Cargo Hauler" + req_one_access = list() + +/obj/machinery/computer/shuttle_control/explore/gecko_cr_wreck + name = "short jump console" + shuttle_tag = "Wrecked Gecko Cargo Hauler" + req_one_access = list() + +// The 'shuttle' +/datum/shuttle/autodock/overmap/gecko_sh + name = "Gecko Stationhopper" + current_location = "omship_spawn_gecko_sh" + docking_controller_tag = "geck_sh_docking" + shuttle_area = list(/area/shuttle/gecko_sh,/area/shuttle/gecko_sh_cockpit,/area/shuttle/gecko_sh_engineering) + defer_initialisation = TRUE //We're not loaded until an admin does it + fuel_consumption = 7.5 + ceiling_type = /turf/simulated/floor/reinforced/airless + +/datum/shuttle/autodock/overmap/gecko_cr + name = "Gecko Cargo Hauler" + current_location = "omship_spawn_gecko_cr" + docking_controller_tag = "geck_cr_docking" + shuttle_area = list(/area/shuttle/gecko_cr,/area/shuttle/gecko_cr_cockpit,/area/shuttle/gecko_cr_engineering) + defer_initialisation = TRUE //We're not loaded until an admin does it + fuel_consumption = 7.5 + ceiling_type = /turf/simulated/floor/reinforced/airless + +/datum/shuttle/autodock/overmap/gecko_cr_wreck + name = "Wrecked Gecko Cargo Hauler" + current_location = "omship_spawn_gecko_cr_wreck" + docking_controller_tag = "geck_cr_wreck_docking" + shuttle_area = list(/area/shuttle/gecko_cr_wreck,/area/shuttle/gecko_cr_cockpit_wreck,/area/shuttle/gecko_cr_engineering_wreck) + defer_initialisation = TRUE //We're not loaded until an admin does it + fuel_consumption = 7.5 + ceiling_type = /turf/simulated/floor/reinforced/airless + +// A shuttle lateloader landmark +/obj/effect/shuttle_landmark/shuttle_initializer/gecko_sh + name = "ITV Gecko I" + base_area = /area/space + base_turf = /turf/space + landmark_tag = "omship_spawn_gecko_sh" + shuttle_type = /datum/shuttle/autodock/overmap/gecko_sh + +/obj/effect/shuttle_landmark/shuttle_initializer/gecko_cr + name = "ITV Gecko II" + base_area = /area/space + base_turf = /turf/space + landmark_tag = "omship_spawn_gecko_cr" + shuttle_type = /datum/shuttle/autodock/overmap/gecko_cr + +/obj/effect/shuttle_landmark/shuttle_initializer/gecko_cr_wreck + name = "ITV Gecko III" + base_area = /area/space + base_turf = /turf/space + landmark_tag = "omship_spawn_gecko_cr_wreck" + shuttle_type = /datum/shuttle/autodock/overmap/gecko_cr_wreck + +// The 'ship' +/obj/effect/overmap/visitable/ship/landable/gecko_sh + name = "Gecko-class Transport" + scanner_desc = @{"[i]Registration[/i]: ITV Sticky Fingers +[i]Class[/i]: Medium Shuttle +[i]Transponder[/i]: Transmitting (CIV), non-hostile +[b]Notice[/b]: Medium personnel transport vessel"} + vessel_mass = 6500 + vessel_size = SHIP_SIZE_LARGE + shuttle = "Gecko Stationhopper" + +/obj/effect/overmap/visitable/ship/landable/gecko_cr + name = "Gecko-class Transport" + scanner_desc = @{"[i]Registration[/i]: ITV Sticky Business +[i]Class[/i]: Medium Shuttle +[i]Transponder[/i]: Transmitting (CIV), non-hostile +[b]Notice[/b]: Medium cargo transport vessel"} + vessel_mass = 6500 + vessel_size = SHIP_SIZE_LARGE + shuttle = "Gecko Cargo Hauler" + +/obj/effect/overmap/visitable/ship/landable/gecko_cr_wreck + name = "Wrecked Gecko-class Transport" + scanner_desc = @{"[i]Registration[/i]: ITV Sticky Situation +[i]Class[/i]: Medium Shuttle +[i]Transponder[/i]: Weakly transmitting (CIV), non-hostile +[b]Notice[/b]: Medium cargo transport vessel, significant damage inflicted"} + vessel_mass = 6500 + vessel_size = SHIP_SIZE_LARGE + shuttle = "Wrecked Gecko Cargo Hauler" \ No newline at end of file diff --git a/maps/offmap_vr/om_ships/generic_shuttle.dm b/maps/offmap_vr/om_ships/generic_shuttle.dm index 0c5f894b29..65cfb4b4cc 100644 --- a/maps/offmap_vr/om_ships/generic_shuttle.dm +++ b/maps/offmap_vr/om_ships/generic_shuttle.dm @@ -45,7 +45,7 @@ // The 'ship' /obj/effect/overmap/visitable/ship/landable/generic_shuttle - scanner_name = "Private Vessel" + name = "Private Vessel" scanner_desc = @{"[i]Registration[/i]: PRIVATE [i]Class[/i]: Small Shuttle [i]Transponder[/i]: Transmitting (CIV), non-hostile diff --git a/maps/offmap_vr/om_ships/hybridshuttle.dm b/maps/offmap_vr/om_ships/hybridshuttle.dm index 2194ea3416..c35c9af290 100644 --- a/maps/offmap_vr/om_ships/hybridshuttle.dm +++ b/maps/offmap_vr/om_ships/hybridshuttle.dm @@ -41,12 +41,12 @@ // The 'ship' /obj/effect/overmap/visitable/ship/landable/hybridshuttle - scanner_name = "XN-29 Prototype Shuttle" + name = "XN-29 Prototype Shuttle" + icon_state = "unkn_o" scanner_desc = @{"[i]Registration[/i]: UNKNOWN [i]Class[/i]: Shuttle [i]Transponder[/i]: Transmitting (MIL), NanoTrasen [b]Notice[/b]: Experimental vessel"} - color = "#00aaff" //Bluey vessel_mass = 3000 vessel_size = SHIP_SIZE_SMALL shuttle = "XN-29 Prototype Shuttle" \ No newline at end of file diff --git a/maps/offmap_vr/om_ships/itglight.dm b/maps/offmap_vr/om_ships/itglight.dm index f9a31db30d..9671a4aecd 100644 --- a/maps/offmap_vr/om_ships/itglight.dm +++ b/maps/offmap_vr/om_ships/itglight.dm @@ -85,14 +85,13 @@ // The 'Dauntless' /obj/effect/overmap/visitable/ship/itglight - name = "spacecraft" + name = "ITG Dauntless" + icon_state = "serb_destroyer_g" desc = "Spacefaring vessel. Friendly IFF detected." - scanner_name = "ITG Dauntless" scanner_desc = @{"[i]Registration[/i]: ITG Dauntless [i]Class[/i]: Small Cargo Frigate (Low Displacement) [i]Transponder[/i]: Transmitting (CIV), non-hostile" [b]Notice[/b]: May carry passengers"} - color = "#d98c1a" //orng vessel_mass = 8000 vessel_size = SHIP_SIZE_SMALL initial_generic_waypoints = list("itglight_fore", "itglight_aft", "itglight_port", "itglight_starboard", "itglight_port_dock", "itglight_starboard_dock") diff --git a/maps/offmap_vr/om_ships/mackerels.dm b/maps/offmap_vr/om_ships/mackerels.dm new file mode 100644 index 0000000000..f18d04e526 --- /dev/null +++ b/maps/offmap_vr/om_ships/mackerels.dm @@ -0,0 +1,241 @@ +// Compile in the map for CI testing if we're testing compileability of all the maps +#if MAP_TEST +#include "mackerel_sh.dmm" +#include "mackerel_lc.dmm" +#include "mackerel_lc_wreck.dmm" +#include "mackerel_hc.dmm" +#include "mackerel_hc_skel.dmm" +#endif + +// Map template for spawning the shuttle +/datum/map_template/om_ships/mackerel_stationhopper + name = "OM Ship - Mackerel Stationhopper (new Z)" + desc = "A small personnel transport shuttle." + mappath = 'mackerel_sh.dmm' + annihilate = TRUE + +/datum/map_template/om_ships/mackerel_lightcargo + name = "OM Ship - Mackerel Light Cargo (new Z)" + desc = "A small light cargo transport shuttle." + mappath = 'mackerel_lc.dmm' + annihilate = TRUE + +/datum/map_template/om_ships/mackerel_heavycargo + name = "OM Ship - Mackerel Heavy Cargo (new Z)" + desc = "A small secure cargo transport shuttle." + mappath = 'mackerel_hc.dmm' + annihilate = TRUE + +/datum/map_template/om_ships/mackerel_heavycargo_skel + name = "OM Ship - Mackerel Heavy Cargo Spartanized (new Z)" + desc = "A small heavy cargo transport shuttle." + mappath = 'mackerel_hc_skel.dmm' + annihilate = TRUE + +/datum/map_template/om_ships/mackerel_lightcargo_wreck + name = "OM Ship - Mackerel Light Cargo Wreck (new Z)" + desc = "A small light cargo transport shuttle, struck by... something. Ouch." + mappath = 'mackerel_lc_wreck.dmm' + annihilate = TRUE + +// The shuttle's area(s) +/area/shuttle/mackerel_sh + name = "\improper Mackerel Stationhopper" + icon_state = "green" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/mackerel_lc + name = "\improper Mackerel Light Cargo" + icon_state = "green" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/mackerel_hc + name = "\improper Mackerel Heavy Cargo" + icon_state = "green" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/mackerel_hc_skel + name = "\improper Mackerel Heavy Cargo Spartan" + icon_state = "green" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/mackerel_hc_skel_cockpit + name = "\improper Mackerel Heavy Cargo Cockpit" + icon_state = "purple" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/mackerel_hc_skel_eng + name = "\improper Mackerel Heavy Cargo Engineering" + icon_state = "yellow" + requires_power = 1 + has_gravity = 0 + +/area/shuttle/mackerel_lc_wreck + name = "\improper Wrecked Mackerel Light Cargo" + icon_state = "green" + requires_power = 1 + has_gravity = 0 + +// The shuttle's 'shuttle' computer +/obj/machinery/computer/shuttle_control/explore/mackerel_sh + name = "short jump console" + shuttle_tag = "Mackerel Stationhopper" + req_one_access = list() + +/obj/machinery/computer/shuttle_control/explore/mackerel_lc + name = "short jump console" + shuttle_tag = "Mackerel Light Cargo" + req_one_access = list() + +/obj/machinery/computer/shuttle_control/explore/mackerel_lc_wreck + name = "short jump console" + shuttle_tag = "Mackerel Light Cargo II" + req_one_access = list() + +/obj/machinery/computer/shuttle_control/explore/mackerel_hc + name = "short jump console" + shuttle_tag = "Mackerel Heavy Cargo" + req_one_access = list() + +/obj/machinery/computer/shuttle_control/explore/mackerel_hc_skel + name = "short jump console" + shuttle_tag = "Mackerel Heavy Cargo Spartan" + req_one_access = list() + +// The 'shuttle' +/datum/shuttle/autodock/overmap/mackerel_sh + name = "Mackerel Stationhopper" + current_location = "omship_spawn_mackerel_sh" + docking_controller_tag = "mackerel_sh_docking" + shuttle_area = list(/area/shuttle/mackerel_sh) + defer_initialisation = TRUE + fuel_consumption = 1 + ceiling_type = /turf/simulated/floor/reinforced/airless + +/datum/shuttle/autodock/overmap/mackerel_lc + name = "Mackerel Light Cargo" + current_location = "omship_spawn_mackerel_lc" + docking_controller_tag = "mackerel_lc_docking" + shuttle_area = list(/area/shuttle/mackerel_lc) + defer_initialisation = TRUE + fuel_consumption = 1 + ceiling_type = /turf/simulated/floor/reinforced/airless + +/datum/shuttle/autodock/overmap/mackerel_hc + name = "Mackerel Heavy Cargo" + current_location = "omship_spawn_mackerel_hc" + docking_controller_tag = "mackerel_hc_docking" + shuttle_area = list(/area/shuttle/mackerel_hc) + defer_initialisation = TRUE + fuel_consumption = 1.25 //slightly higher due to the added framework/plating + ceiling_type = /turf/simulated/floor/reinforced/airless + +/datum/shuttle/autodock/overmap/mackerel_hc_skel + name = "Mackerel Heavy Cargo Spartan" + current_location = "omship_spawn_mackerel_hc_skel" + docking_controller_tag = "mackerel_hc_skel_docking" + shuttle_area = list(/area/shuttle/mackerel_hc_skel,/area/shuttle/mackerel_hc_skel_cockpit,/area/shuttle/mackerel_hc_skel_eng) + defer_initialisation = TRUE + fuel_consumption = 1.20 //slightly lower due to the stripped-down internals + ceiling_type = /turf/simulated/floor/reinforced/airless + +/datum/shuttle/autodock/overmap/mackerel_lc_wreck + name = "Mackerel Light Cargo II" + current_location = "omship_spawn_mackerel_lc_wreck" + docking_controller_tag = "mackerel_lc_wreck_docking" + shuttle_area = list(/area/shuttle/mackerel_lc_wreck) + defer_initialisation = TRUE + fuel_consumption = 1 + ceiling_type = /turf/simulated/floor/reinforced/airless + +// A shuttle lateloader landmark +/obj/effect/shuttle_landmark/shuttle_initializer/mackerel_sh + name = "ITV Mackerel I" + base_area = /area/space + base_turf = /turf/space + landmark_tag = "omship_spawn_mackerel_sh" + shuttle_type = /datum/shuttle/autodock/overmap/mackerel_sh + +/obj/effect/shuttle_landmark/shuttle_initializer/mackerel_lc + name = "ITV Mackerel II" + base_area = /area/space + base_turf = /turf/space + landmark_tag = "omship_spawn_mackerel_lc" + shuttle_type = /datum/shuttle/autodock/overmap/mackerel_lc + +/obj/effect/shuttle_landmark/shuttle_initializer/mackerel_hc + name = "ITV Mackerel III" + base_area = /area/space + base_turf = /turf/space + landmark_tag = "omship_spawn_mackerel_hc" + shuttle_type = /datum/shuttle/autodock/overmap/mackerel_hc + +/obj/effect/shuttle_landmark/shuttle_initializer/mackerel_hc_skel + name = "ITV Mackerel IV" + base_area = /area/space + base_turf = /turf/space + landmark_tag = "omship_spawn_mackerel_hc_skel" + shuttle_type = /datum/shuttle/autodock/overmap/mackerel_hc_skel + +/obj/effect/shuttle_landmark/shuttle_initializer/mackerel_lc_wreck + name = "ITV Mackerel II KIA" + base_area = /area/space + base_turf = /turf/space + landmark_tag = "omship_spawn_mackerel_lc_wreck" + shuttle_type = /datum/shuttle/autodock/overmap/mackerel_lc_wreck + +// The 'ship' +/obj/effect/overmap/visitable/ship/landable/mackerel_sh + name = "Mackerel-class Transport" + scanner_desc = @{"[i]Registration[/i]: ITV Phish Phlake +[i]Class[/i]: Small Shuttle +[i]Transponder[/i]: Transmitting (CIV), non-hostile +[b]Notice[/b]: Small private vessel"} + vessel_mass = 1000 + vessel_size = SHIP_SIZE_TINY + shuttle = "Mackerel Stationhopper" + +/obj/effect/overmap/visitable/ship/landable/mackerel_lc + name = "Mackerel-class Transport" + scanner_desc = @{"[i]Registration[/i]: ITV Phishy Business +[i]Class[/i]: Small Shuttle +[i]Transponder[/i]: Transmitting (CIV), non-hostile +[b]Notice[/b]: Small private vessel"} + vessel_mass = 1000 + vessel_size = SHIP_SIZE_TINY + shuttle = "Mackerel Light Cargo" + +/obj/effect/overmap/visitable/ship/landable/mackerel_hc + name = "Mackerel-class Transport" + scanner_desc = @{"[i]Registration[/i]: ITV Phish Pharma +[i]Class[/i]: Small Shuttle +[i]Transponder[/i]: Transmitting (CIV), non-hostile +[b]Notice[/b]: Small private vessel"} + vessel_mass = 1500 + vessel_size = SHIP_SIZE_TINY + shuttle = "Mackerel Heavy Cargo" + +/obj/effect/overmap/visitable/ship/landable/mackerel_hc_skel + name = "Mackerel-class Transport (Spartanized)" + scanner_desc = @{"[i]Registration[/i]: ITV Phish Pond +[i]Class[/i]: Small Shuttle +[i]Transponder[/i]: Transmitting (CIV), non-hostile +[b]Notice[/b]: Small private vessel"} + vessel_mass = 1500 + vessel_size = SHIP_SIZE_TINY + shuttle = "Mackerel Heavy Cargo Spartan" + +/obj/effect/overmap/visitable/ship/landable/mackerel_lc_wreck + name = "Wrecked Mackerel-class Transport" + scanner_desc = @{"[i]Registration[/i]: ITV Phish Phood +[i]Class[/i]: Small Shuttle Wreck +[i]Transponder[/i]: Not Transmitting +[b]Notice[/b]: Critical Damage Sustained"} + vessel_mass = 1000 + vessel_size = SHIP_SIZE_TINY + shuttle = "Mackerel Light Cargo II" diff --git a/maps/offmap_vr/om_ships/mercship.dm b/maps/offmap_vr/om_ships/mercship.dm index e4bc8477d1..3229dbb3ff 100644 --- a/maps/offmap_vr/om_ships/mercship.dm +++ b/maps/offmap_vr/om_ships/mercship.dm @@ -64,12 +64,12 @@ // The 'ship' /obj/effect/overmap/visitable/ship/mercship name = "Unknown Vessel" + icon_state = "moe_destroyer_r" desc = "Spacefaring vessel. No IFF detected." scanner_desc = @{"[i]Registration[/i]: UNKNOWN [i]Class[/i]: UNKNOWN [i]Transponder[/i]: None Detected [b]Notice[/b]: Unregistered vessel"} - color = "#f23000" //Red vessel_mass = 8000 vessel_size = SHIP_SIZE_SMALL initial_generic_waypoints = list("carrier_fore", "carrier_aft", "carrier_port", "carrier_starboard", "base_dock") diff --git a/maps/offmap_vr/om_ships/salamander.dm b/maps/offmap_vr/om_ships/salamander.dm index 8dbd5d53c3..a94780d12e 100644 --- a/maps/offmap_vr/om_ships/salamander.dm +++ b/maps/offmap_vr/om_ships/salamander.dm @@ -148,12 +148,11 @@ // The 'ship' /obj/effect/overmap/visitable/ship/landable/salamander - scanner_name = "Salamander-class Corvette" + name = "Salamander-class Corvette" scanner_desc = @{"[i]Registration[/i]: ITV Independence [i]Class[/i]: Corvette [i]Transponder[/i]: Transmitting (CIV), non-hostile [b]Notice[/b]: Multirole independent vessel"} - color = "#00AA00" //green, because money vessel_mass = 4500 vessel_size = SHIP_SIZE_LARGE fore_dir = EAST @@ -179,12 +178,11 @@ // The 'ship' /obj/effect/overmap/visitable/ship/landable/salamander_wreck - scanner_name = "Wrecked Salamander-class Corvette" + name = "Wrecked Salamander-class Corvette" scanner_desc = @{"[i]Registration[/i]: ITV Unity [i]Class[/i]: Corvette [i]Transponder[/i]: Not Transmitting [b]Notice[/b]: Damage to hull is consistent with intentional scuttling procedures, no distress call logged"} - color = "#008800" //green, because money vessel_mass = 4500 vessel_size = SHIP_SIZE_LARGE fore_dir = EAST diff --git a/maps/offmap_vr/om_ships/screebarge.dm b/maps/offmap_vr/om_ships/screebarge.dm index 317f34396b..08d4390269 100644 --- a/maps/offmap_vr/om_ships/screebarge.dm +++ b/maps/offmap_vr/om_ships/screebarge.dm @@ -48,7 +48,6 @@ /obj/effect/overmap/visitable/ship/landable/screebarge name = "Battle Barge" desc = "Some sort of makeshift battle barge. Appears to be armed." - color = "#95c633" //Greenish vessel_mass = 3000 vessel_size = SHIP_SIZE_SMALL shuttle = "Battle Barge" \ No newline at end of file diff --git a/maps/offmap_vr/om_ships/shelter_5.dm b/maps/offmap_vr/om_ships/shelter_5.dm index 28dd871bbf..e23a6814c1 100644 --- a/maps/offmap_vr/om_ships/shelter_5.dm +++ b/maps/offmap_vr/om_ships/shelter_5.dm @@ -40,7 +40,7 @@ // The 'ship' /obj/effect/overmap/visitable/ship/landable/escapepod - scanner_name = "Escape Pod" + name = "Escape Pod" scanner_desc = @{"[i]Registration[/i]: NOT AVAILABLE [i]Class[/i]: Escape Pod [i]Transponder[/i]: Transmitting (CIV), non-hostile diff --git a/maps/offmap_vr/om_ships/shelter_6.dm b/maps/offmap_vr/om_ships/shelter_6.dm index d6f5f78063..40ff4cdaeb 100644 --- a/maps/offmap_vr/om_ships/shelter_6.dm +++ b/maps/offmap_vr/om_ships/shelter_6.dm @@ -42,12 +42,11 @@ // The 'ship' /obj/effect/overmap/visitable/ship/landable/tabiranth - scanner_name = "Experimental Dropship" + name = "Experimental Dropship" scanner_desc = @{"[i]Registration[/i]: UNKNOWN [i]Class[/i]: Assault Dropship [i]Transponder[/i]: Transmitting (MIL), NanoTrasen [b]Notice[/b]: Experimental vessel"} - color = "#8800ff" //Indigo vessel_mass = 3000 vessel_size = SHIP_SIZE_SMALL shuttle = "NDV Tabiranth" diff --git a/maps/offmap_vr/om_ships/vespa.dm b/maps/offmap_vr/om_ships/vespa.dm index 04a680abb9..b6a2b1b963 100644 --- a/maps/offmap_vr/om_ships/vespa.dm +++ b/maps/offmap_vr/om_ships/vespa.dm @@ -120,12 +120,11 @@ // The 'ship' /obj/effect/overmap/visitable/ship/vespa desc = "A spacefaring vessel, of Hephaestus design." - scanner_name = "HPV Vespa" + name = "HPV Vespa" scanner_desc = @{"[i]Registration[/i]: HPV Vespa [i]Class[/i]: Cruiser [i]Transponder[/i]: Transmitting (CIV), Hephaestus Industries [b]Notice[/b]: Corporate vessel"} - color = "#4cad73" //Green vessel_mass = 10000 vessel_size = SHIP_SIZE_LARGE initial_generic_waypoints = list("hpv_port", "hpv_starboard", "hpv_hangar") diff --git a/maps/offmap_vr/talon/talon_v2.dm b/maps/offmap_vr/talon/talon_v2.dm index 3237f2798f..2b2ede093c 100644 --- a/maps/offmap_vr/talon/talon_v2.dm +++ b/maps/offmap_vr/talon/talon_v2.dm @@ -38,18 +38,18 @@ var/global/list/latejoin_talon = list() /////////////////////////// //// The Talon /obj/effect/overmap/visitable/ship/talon - scanner_name = "ITV Talon" + name = "ITV Talon" + icon_state = "talon_v2" scanner_desc = @{"[i]Registration[/i]: ITV Talon [i]Class[/i]: Frigate [i]Transponder[/i]: Transmitting (CIV) [b]Notice[/b]: Independent trader vessel"} - color = "#aacccc" vessel_mass = 10000 vessel_size = SHIP_SIZE_LARGE initial_generic_waypoints = list("talon_v2_near_fore_port", "talon_v2_near_fore_star", "talon_v2_near_aft_port", "talon_v2_near_aft_star", "talon_v2_wing_port", "talon_v2_wing_star") initial_restricted_waypoints = list("Talon's Shuttle" = list("offmap_spawn_talonboat")) - skybox_icon = 'talon.dmi' //Art by Gwyvern, distributed under Creative Commons license + skybox_icon = 'talon.dmi' skybox_icon_state = "skybox" skybox_pixel_x = 270 skybox_pixel_y = 60 diff --git a/maps/southern_cross/overmap/sectors.dm b/maps/southern_cross/overmap/sectors.dm index 2dcdcd2c76..4e1319041a 100644 --- a/maps/southern_cross/overmap/sectors.dm +++ b/maps/southern_cross/overmap/sectors.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD // Overmap object for Sif, hanging in the void of space /obj/effect/overmap/visitable/planet/Sif name = "Sif" @@ -74,3 +75,95 @@ Z_LEVEL_STATION_TWO, Z_LEVEL_STATION_THREE, Z_LEVEL_MISC) +||||||| parent of 90dab73f30... Merge pull request #10807 from VOREStation/Icons/overmap +// Overmap object for Sif, hanging in the void of space +/obj/effect/overmap/visitable/planet/Sif + name = "Sif" + map_z = list(Z_LEVEL_SURFACE, Z_LEVEL_SURFACE_MINE, Z_LEVEL_SURFACE_WILD) + in_space = 0 + start_x = 10 + start_y = 10 + skybox_offset_x = 128 + skybox_offset_y = 128 + surface_color = "#2D545B" + mountain_color = "#735555" + ice_color = "FFFFFF" + icecaps = "icecaps" + +/obj/effect/overmap/visitable/planet/Sif/Initialize() + atmosphere = new(CELL_VOLUME) + atmosphere.adjust_gas_temp("oxygen", MOLES_O2STANDARD, 273) + atmosphere.adjust_gas_temp("nitrogen", MOLES_N2STANDARD, 273) + + . = ..() + +/obj/effect/overmap/visitable/planet/Sif/Initialize() + . = ..() + docking_codes = null + +/obj/effect/overmap/visitable/planet/Sif/get_skybox_representation() + var/image/tmp = ..() + tmp.pixel_x = skybox_offset_x + tmp.pixel_y = skybox_offset_y + return tmp + +/obj/effect/overmap/visitable/Southern_Cross + name = "Southern Cross" + icon_state = "object" + base = 1 + in_space = 1 + start_x = 10 + start_y = 10 + map_z = list(Z_LEVEL_STATION_ONE, Z_LEVEL_STATION_TWO, Z_LEVEL_STATION_THREE) + extra_z_levels = list(Z_LEVEL_TRANSIT) // Hopefully temporary, so arrivals announcements work. + +/obj/effect/overmap/visitable/planet/Sif/Initialize() + . = ..() + docking_codes = null +======= +// Overmap object for Sif, hanging in the void of space +/obj/effect/overmap/visitable/planet/Sif + name = "Sif" + map_z = list(Z_LEVEL_SURFACE, Z_LEVEL_SURFACE_MINE, Z_LEVEL_SURFACE_WILD) + in_space = 0 + start_x = 10 + start_y = 10 + skybox_offset_x = 128 + skybox_offset_y = 128 + surface_color = "#2D545B" + mountain_color = "#735555" + ice_color = "FFFFFF" + icecaps = "icecaps" + icon_state = "frozen" + +/obj/effect/overmap/visitable/planet/Sif/Initialize() + atmosphere = new(CELL_VOLUME) + atmosphere.adjust_gas_temp("oxygen", MOLES_O2STANDARD, 273) + atmosphere.adjust_gas_temp("nitrogen", MOLES_N2STANDARD, 273) + + . = ..() + +/obj/effect/overmap/visitable/planet/Sif/Initialize() + . = ..() + docking_codes = null + +/obj/effect/overmap/visitable/planet/Sif/get_skybox_representation() + var/image/tmp = ..() + tmp.pixel_x = skybox_offset_x + tmp.pixel_y = skybox_offset_y + return tmp + +/obj/effect/overmap/visitable/Southern_Cross + name = "Southern Cross" + icon_state = "object" + base = 1 + in_space = 1 + start_x = 10 + start_y = 10 + map_z = list(Z_LEVEL_STATION_ONE, Z_LEVEL_STATION_TWO, Z_LEVEL_STATION_THREE) + extra_z_levels = list(Z_LEVEL_TRANSIT) // Hopefully temporary, so arrivals announcements work. + +/obj/effect/overmap/visitable/planet/Sif/Initialize() + . = ..() + docking_codes = null +>>>>>>> 90dab73f30... Merge pull request #10807 from VOREStation/Icons/overmap diff --git a/maps/submaps/admin_use_vr/ert.dm b/maps/submaps/admin_use_vr/ert.dm index e46164f94c..bfa9a49c5c 100644 --- a/maps/submaps/admin_use_vr/ert.dm +++ b/maps/submaps/admin_use_vr/ert.dm @@ -110,12 +110,12 @@ // The 'ship' /obj/effect/overmap/visitable/ship/ert_ship name = "NRV Von Braun" + icon_state = "oberth_destroyer_g" desc = "Spacefaring vessel. Broadcasting Corporate Emergency Responder IFF." scanner_desc = @{"[i]Registration[/i]: Nanotrasen RRV Von Braun [i]Class[/i]: [i]Kepler[/i]-class Frigate [i]Transponder[/i]: Broadcasting (ER-CORP) [b]Notice[/b]: Impeding or interfering with emergency response vessels is a breach of numerous interstellar codes. Approach with caution."} - color = "#9999ff" //Blue vessel_mass = 8000 vessel_size = SHIP_SIZE_LARGE fore_dir = EAST diff --git a/maps/submaps/admin_use_vr/fun.dm b/maps/submaps/admin_use_vr/fun.dm index 2520516b15..6759aba381 100644 --- a/maps/submaps/admin_use_vr/fun.dm +++ b/maps/submaps/admin_use_vr/fun.dm @@ -162,9 +162,8 @@ // This is a stationary overmap sector, you can spawn it in any zlevel and it will pop onto the overmap to represent those zlevels. It always moves to 2,2 on the overmap and you can move it elsewhere. /obj/effect/overmap/visitable/admin_use - name = "space destination" + name = "REPLACE ME" desc = "Some space destination!" - scanner_name = "REPLACE ME" scanner_desc = @{"[i]Registration[/i]: REPLACE ME [i]Class[/i]: REPLACE ME [i]Transponder[/i]: REPLACE ME @@ -180,9 +179,8 @@ // This is the same, but makes a whole spaceship! /obj/effect/overmap/visitable/ship/admin_use - name = "spacecraft" + name = "REPLACE ME" desc = "Spacefaring vessel." - scanner_name = "REPLACE ME" scanner_desc = @{"[i]Registration[/i]: REPLACE ME [i]Class[/i]: REPLACE ME [i]Transponder[/i]: REPLACE ME diff --git a/maps/submaps/admin_use_vr/guttersite.dm b/maps/submaps/admin_use_vr/guttersite.dm index 3d99c8ef0b..24d745a554 100644 --- a/maps/submaps/admin_use_vr/guttersite.dm +++ b/maps/submaps/admin_use_vr/guttersite.dm @@ -6,9 +6,8 @@ scanner_desc = @{"[i]Transponder[/i]: Strong Comms Signal [b]Notice[/b]: WARNING! KEEP OUT! MEMBERS ONLY!"} icon = 'icons/obj/overmap_vr.dmi' - icon_state = "guttersite" + icon_state = "os_fortress_r" known = FALSE - color = "#ee3333" //Redish, so it stands out against the other debris-like icons initial_generic_waypoints = list("guttersite_lshuttle", "guttersite_sshuttle", "guttersite_mshuttle") // -- Objs -- // diff --git a/maps/submaps/admin_use_vr/mercship.dm b/maps/submaps/admin_use_vr/mercship.dm index 2f30d3e8ac..7d94300073 100644 --- a/maps/submaps/admin_use_vr/mercship.dm +++ b/maps/submaps/admin_use_vr/mercship.dm @@ -139,7 +139,6 @@ [i]Class[/i]: [i]Manta[/i]-class Cruiser [i]Transponder[/i]: Broadcasting (PMC) [b]Notice[/b]: SAARE are unlikely to tolerate civilian or corporate personnel interfering with their affairs. Approach with caution."} - color = "#333333" //TACTICAL BLACK vessel_mass = 8000 vessel_size = SHIP_SIZE_LARGE initial_generic_waypoints = list("manta_ship_near_fore", "manta_ship_near_aft", "manta_ship_near_port", "manta_ship_near_star", "manta_ship_port", "manta_ship_star", "manta_ship_base_dock", "omship_spawn_manta_lander") @@ -201,14 +200,12 @@ defer_initialisation = TRUE /obj/effect/overmap/visitable/ship/landable/manta_ship_boat - scanner_name = "SAARE Landing Craft" + name = "SAARE Landing Craft" desc = "Spacefaring vessel. Broadcasting Private Military Contractor IFF." scanner_desc = @{"[i]Registration[/i]: SAARE Mercenary Cruiser Typhon Four-Niner's Lander [i]Class[/i]: Unknown Shuttle-approximate [i]Transponder[/i]: Broadcasting (PMC) [b]Notice[/b]: SAARE are unlikely to tolerate civilian or corporate personnel interfering with their affairs. Approach with caution."} - color = "#3366FF" - color = "#333333" //TACTICAL BLACK vessel_mass = 500 vessel_size = SHIP_SIZE_TINY shuttle = "Boarding Craft" diff --git a/maps/submaps/depreciated_vr/talon.dm b/maps/submaps/depreciated_vr/talon.dm index 7a51787226..968f26e5d2 100644 --- a/maps/submaps/depreciated_vr/talon.dm +++ b/maps/submaps/depreciated_vr/talon.dm @@ -38,12 +38,12 @@ var/global/list/latejoin_talon = list() /////////////////////////// //// The Talon /obj/effect/overmap/visitable/ship/talon - scanner_name = "ITV Talon" + name = "ITV Talon" + icon_state = "talon_v2" scanner_desc = @{"[i]Registration[/i]: ITV Talon [i]Class[/i]: Frigate [i]Transponder[/i]: Transmitting (CIV) [b]Notice[/b]: Independent trader vessel"} - color = "#aacccc" vessel_mass = 10000 vessel_size = SHIP_SIZE_LARGE initial_generic_waypoints = list("talon_fore", "talon_aft", "talon_port", "talon_starboard") diff --git a/maps/tether/tether_defines.dm b/maps/tether/tether_defines.dm index 8cc7d8b91a..6690846e61 100644 --- a/maps/tether/tether_defines.dm +++ b/maps/tether/tether_defines.dm @@ -238,8 +238,7 @@ [i]Transponder[/i]: Transmitting (CIV), NanoTrasen IFF [b]Notice[/b]: NanoTrasen Base, authorized personnel only"} base = 1 - icon_state = "globe" - color = "#d35b5b" + icon_state = "reddwarf" initial_generic_waypoints = list( "tether_dockarm_d1a1", //Bottom left, "tether_dockarm_d1a2", //Top left, diff --git a/maps/tether/tether_shuttles.dm b/maps/tether/tether_shuttles.dm index e380c18003..0481ba9741 100644 --- a/maps/tether/tether_shuttles.dm +++ b/maps/tether/tether_shuttles.dm @@ -200,6 +200,7 @@ /obj/effect/overmap/visitable/ship/landable/excursion name = "Excursion Shuttle" desc = "The traditional Excursion Shuttle. NT Approved!" + icon_state = "htu_destroyer_g" vessel_mass = 8000 vessel_size = SHIP_SIZE_SMALL shuttle = "Excursion Shuttle" @@ -225,6 +226,7 @@ /obj/effect/overmap/visitable/ship/landable/tourbus name = "Tour Bus" desc = "A small 'space bus', if you will." + icon_state = "htu_frigate_g" vessel_mass = 2000 vessel_size = SHIP_SIZE_SMALL shuttle = "Tour Bus" @@ -250,6 +252,7 @@ /obj/effect/overmap/visitable/ship/landable/medivac name = "Medivac Shuttle" desc = "A medical evacuation shuttle." + icon_state = "htu_frigate_g" vessel_mass = 4000 vessel_size = SHIP_SIZE_SMALL shuttle = "Medivac Shuttle" @@ -275,6 +278,7 @@ /obj/effect/overmap/visitable/ship/landable/securiship name = "Securiship Shuttle" desc = "A security transport ship." + icon_state = "htu_frigate_g" vessel_mass = 4000 vessel_size = SHIP_SIZE_SMALL shuttle = "Securiship Shuttle"