1Z Talon Project

This commit is contained in:
Chompstation Bot
2021-05-11 13:06:18 +00:00
parent cfeb771bd3
commit 9e607da749
12 changed files with 39696 additions and 2835 deletions

View File

@@ -164,6 +164,7 @@
var/active = FALSE
var/points = 0
var/points_mult = 1 //VOREStation Add - multiplier for points generated when ore hits the processors
var/static/list/ore_values = list(
"sand" = 1,
"hematite" = 1,
@@ -249,7 +250,7 @@
for(var/obj/item/weapon/ore/O in input.loc)
if(!isnull(ores_stored[O.material]))
ores_stored[O.material]++
points += ore_values[O.material] // Give Points!
points += (ore_values[O.material]*points_mult) // Give Points! VOREStation Edit - or give lots of points! or less points! or no points!
qdel(O)
if(!active)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,872 @@
///////////////////////////
//// Spawning and despawning
var/global/list/latejoin_talon = list()
/obj/effect/landmark/talon
name = "JoinLateTalon"
delete_me = 1
/obj/effect/landmark/talon/New()
latejoin_talon += loc // Register this turf as tram latejoin.
..()
/datum/spawnpoint/talon
display_name = "ITV Talon Cryo"
restrict_job = list("Talon Captain", "Talon Pilot", "Talon Engineer", "Talon Doctor", "Talon Guard")
msg = "has come out of cryostasis"
announce_channel = "Talon"
/datum/spawnpoint/talon/New()
..()
turfs = latejoin_talon
/obj/machinery/cryopod/talon
announce_channel = "Talon"
on_store_message = "has entered cryogenic storage."
on_store_name = "ITV Talon Cryo"
on_enter_visible_message = "starts climbing into the"
on_enter_occupant_message = "You feel cool air surround you. You go numb as your senses turn inward."
on_store_visible_message_1 = "hums and hisses as it moves"
on_store_visible_message_2 = "into cryogenic storage."
/obj/machinery/cryopod/robot/talon
announce_channel = "Talon"
on_store_name = "ITV Talon Robotic Storage"
/obj/effect/landmark/map_data/talon
height = 1
///////////////////////////
//// The Talon
/obj/effect/overmap/visitable/ship/talon
scanner_name = "ITV Talon"
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 boat" = list("offmap_spawn_talonboat"))
skybox_icon = 'talon.dmi' //Art by Gwyvern, distributed under Creative Commons license
skybox_icon_state = "skybox"
skybox_pixel_x = 270
skybox_pixel_y = 60
// The shuttle's 'shuttle' computer
/obj/machinery/computer/shuttle_control/explore/talonboat
name = "boat control console"
shuttle_tag = "Talon's boat"
req_one_access = list(access_talon)
/obj/effect/overmap/visitable/ship/landable/talon_boat
name = "Talon's Boat"
desc = "A small shuttle from the ITV Talon."
vessel_mass = 1000
vessel_size = SHIP_SIZE_TINY
shuttle = "Talon's boat"
// A shuttle lateloader landmark
/obj/effect/shuttle_landmark/shuttle_initializer/talonboat
name = "Talon's boat bay"
base_area = /area/talon_v2/hangar
base_turf = /turf/simulated/floor/reinforced
landmark_tag = "offmap_spawn_talonboat"
docking_controller = "talon_boatbay"
shuttle_type = /datum/shuttle/autodock/overmap/talonboat
// The talon's boat
/datum/shuttle/autodock/overmap/talonboat
name = "Talon's boat"
current_location = "offmap_spawn_talonboat"
docking_controller_tag = "talonboat_docker"
shuttle_area = /area/shuttle/talonboat
fuel_consumption = 2
defer_initialisation = TRUE
/area/shuttle/talonboat
name = "Talon's Boat"
///////////////////////////
//// The Various Machines
/obj/machinery/telecomms/allinone/talon
freq_listening = list(PUB_FREQ, TALON_FREQ)
/obj/item/weapon/paper/talon_shields
name = "to whatever asshole"
info = {"to whatever <b>asshole</b> keeps resetting the shield generator,<br>\
please stop fucking around before you get us all killed. thanks.<br>\
<br>\
to whoever has to fix this,<br>\
humanoid lifeforms <b>off</b> so we can get outside unless someone is trying to kill us,<br>\
atmospheric thing <b>off</b> unless all the air is leaving,<br>\
hull shield <b>on</b> because it saves a lot of power,<br>\
radius of 60 is the bare minimum or else the bridge will be unshielded,<br>\
adjust input cap so it doesn't fuck the rest of the ship<br>\
good luck<br>\
<br>\
<i>Harry Townes</i>"}
/obj/item/weapon/paper/talon_power
name = "new power setup"
info = {"to whoever's saddled with running this rustbucket this week,<br>\
good news! you may have noticed the entire ship was replaced pretty much overnight.<br>\
that or it changed shape or something? whatever, not important.<br>\
what <b>is</b> important is that it no longer runs off solar arrays. now we have a pair of tritium generators.<br>\
they're in the shielded compartment just across from the big white SMES bricks.<br>\
jam the tritium pucks in the hoppers (not too rough and messy though) and fire them up!<br>\
you shouldn't need to push power generation past 50kW per generator unless it's an emergency, so let it run slow and save the fuel.<br>\
congrats, power is good to go!<br>\
<br>\
just remember to actually go anywhere you'll also need to flip the output of each engine room's pumps up.<br>\
if you somehow, <i>somehow</i>, start to run low on fuel, there are two reserve tanks and twelve(!) empty tanks.<br>\
pray you can make it to the fuel depot on what gas you have left and fill up the tanks there.<br>\
alternately maybe you can trade some off those nanotrasen corpos down on 3B. atmosphere's full of the stuff, I'm sure they won't miss a little.<br>\
<br>\
<i>Harry Townes</i>"}
/obj/item/weapon/paper/talon_doctor
name = "new medical bay"
info = {"to whoever's stuck babysitting everyone's booboos,<br>\
good news! you may have noticed the entire ship was replaced pretty much overnight.<br>\
that or it changed shape or something? whatever, not important.<br>\
anyway, head through the starboard-aft door in your quarters and go through the bathrooms (congrats you have priority bathroom access)<br>\
to get to your medical bay. layout hasn't changed very much, somehow. it's easy to get to from the shuttle though, so that's nice?<br>\
whatever. enjoy the change of scenery. or don't.<br>\
<br>\
<i>Harry Townes</i>"}
/obj/item/weapon/paper/talon_guard
name = "new brig"
info = {"to whoever's stuck enforcing some semblance of order on this hulk,<br>\
good news! you may have noticed the entire ship was replaced pretty much overnight.<br>\
that or it changed shape or something? whatever, not important.<br>\
what matters is that the brig is now located through the port-aft door in your quarters.<br>\
there's only two cells with no meeting space in the middle or whatever the heck that was, but no huge loss right?<br>\
as for actual security matters, be aware there might be a few loose wall panels around the ship.<br>\
nothing that would let anyone get anywhere particularly sensitive, or escape the cells, but enough to sneak around a bit maybe<br>\
so stay sharp eh?<br>\
<br>\
<i>Harry Townes</i>"}
/obj/item/weapon/paper/talon_captain
name = "storage space"
info = {"to whoever's stuck at the helm of this farce of an operation,<br>\
good news! you may have noticed the entire ship was replaced pretty much overnight.<br>\
that or it changed shape or something? whatever, not important.<br>\
it is essential that I tell you that there is most definitely not a new smuggling compartment hidden under your end table<br>\
unfortunately I couldn't possibly tell you the fictional combination for a hypothetical compartment that doesn't exist<br>\
have fun!<br>\
<br>\
<i>Harry Townes</i>"}
/obj/item/weapon/paper/talon_pilot
name = "new shuttle"
info = {"to whoever's stuck flying this ungreased beast,<br>\
good news! you may have noticed the entire ship was replaced pretty much overnight.<br>\
that or it changed shape or something? whatever, not important.<br>\
<br>\
what is important is that the shuttle has been replaced. it is now capable of fully independent flight away from the ship!<br>\
but the rear airlock is a bit fussy. be sure to use the manual switches on each side of the airlock if you're matching another airlock and one side is exposed to vacuum or a hostile atmosphere!<br>\
also be sure that it's locked down before you take off, the automatic switch is a bit stupid sometimes!<br>\
<br>\
<i>Harry Townes</i>"}
//Prevents remote control of drones
/obj/machinery/drone_fabricator/talon
name = "somewhat glitchy drone fabricator"
desc = "Obtained from a derelict, it seems to work sometimes, not work sometimes, and work TOO good sometimes. Didn't come with a control console either..."
drone_type = /mob/living/silicon/robot/drone/talon
/mob/living/silicon/robot/drone/talon
foreign_droid = TRUE
idcard_type = /obj/item/weapon/card/id/synthetic/talon
/obj/item/weapon/card/id/synthetic/talon
name = "\improper Talon synthetic ID"
desc = "Access module for Talon synthetics"
icon_state = "id-robot"
item_state = "tdgreen"
assignment = "Talon synthetic"
/obj/item/weapon/card/id/synthetic/talon/Initialize()
. = ..()
access = list(access_talon, access_synth)
/obj/machinery/power/smes/buildable/offmap_spawn/New()
..(1)
charge = 1e7
RCon = TRUE
input_level = input_level_max
output_level = output_level_max
input_attempt = TRUE
/obj/machinery/power/apc/talon
req_access = list()
req_one_access = list(access_talon)
/obj/machinery/power/apc/talon/hyper
cell_type = /obj/item/weapon/cell/hyper
/obj/machinery/alarm/talon
req_access = list()
req_one_access = list(access_talon)
/obj/machinery/door/firedoor/glass/talon
req_access = list()
req_one_access = list(access_talon)
/obj/machinery/door/firedoor/glass/talon/hidden
name = "\improper Emergency Shutter System"
desc = "Emergency air-tight shutter, capable of sealing off breached areas. This model fits flush with the walls, and has a panel in the floor for maintenance."
icon = 'icons/obj/doors/DoorHazardHidden.dmi'
/obj/machinery/camera/network/talon
network = list(NETWORK_TALON_SHIP)
/obj/machinery/photocopier/faxmachine/talon
department = "ITV Talon"
desc = "The ship's fax machine! It's a safe assumption that most of the departments listed aren't on your ship, since the ship only has one."
/obj/item/clothing/head/helmet/space/void/captain/talon
name = "talon captain's voidsuit helmet"
camera_networks = list(NETWORK_TALON_HELMETS)
/obj/item/clothing/suit/space/void/captain/talon
name = "talon captain's voidsuit"
/obj/item/clothing/head/helmet/space/void/security/talon
name = "talon guard's voidsuit helmet"
camera_networks = list(NETWORK_TALON_HELMETS)
/obj/item/clothing/suit/space/void/security/talon
name = "talon guard's voidsuit"
/obj/item/clothing/head/helmet/space/void/medical/talon
name = "talon doctor's voidsuit helmet"
camera_networks = list(NETWORK_TALON_HELMETS)
/obj/item/clothing/suit/space/void/medical/talon
name = "talon doctor's voidsuit"
/obj/item/clothing/head/helmet/space/void/atmos/talon
name = "talon engineer's voidsuit helmet"
camera_networks = list(NETWORK_TALON_HELMETS)
/obj/item/clothing/suit/space/void/atmos/talon
name = "talon engineer's voidsuit"
/obj/item/clothing/head/helmet/space/void/pilot/talon
name = "talon pilot's voidsuit helmet"
camera_networks = list(NETWORK_TALON_HELMETS)
/obj/item/clothing/suit/space/void/pilot/talon
name = "talon pilot's voidsuit"
/obj/item/device/gps/command/taloncap
gps_tag = "TALC"
/obj/item/device/gps/security/talonguard
gps_tag = "TALG"
/obj/item/device/gps/medical/talonmed
gps_tag = "TALM"
/obj/item/device/gps/engineering/taloneng
gps_tag = "TALE"
/obj/item/device/gps/explorer/talonpilot
gps_tag = "TALP"
/obj/structure/closet/secure_closet/talon_captain
name = "talon captain's locker"
req_access = list(access_talon)
closet_appearance = /decl/closet_appearance/secure_closet/talon/captain
starts_with = list(
/obj/item/weapon/storage/backpack/dufflebag/captain,
/obj/item/clothing/suit/storage/vest,
/obj/item/weapon/melee/telebaton,
/obj/item/device/flash,
/obj/item/device/radio/headset/talon,
/obj/item/clothing/head/helmet/space/void/refurb/officer/talon,
/obj/item/clothing/suit/space/void/refurb/officer/talon,
/obj/item/weapon/tank/oxygen,
/obj/item/device/suit_cooling_unit,
/obj/item/device/gps/command/taloncap
)
/obj/structure/closet/secure_closet/talon_guard
name = "talon guard's locker"
req_access = list(access_talon)
closet_appearance = /decl/closet_appearance/secure_closet/talon/guard
starts_with = list(
/obj/item/clothing/suit/armor/pcarrier/light,
/obj/item/clothing/under/utility,
/obj/item/clothing/shoes/boots/jackboots,
/obj/item/clothing/shoes/boots/jackboots/toeless,
/obj/item/weapon/handcuffs = 2,
/obj/item/weapon/gun/energy/stunrevolver,
/obj/item/clothing/accessory/armor/tag/sec,
/obj/item/device/flash,
/obj/item/device/flashlight/maglight,
/obj/item/clothing/glasses/sunglasses,
/obj/item/weapon/storage/belt/security,
/obj/item/device/radio/headset/talon,
/obj/item/clothing/accessory/solgov/department/security/army,
/obj/item/clothing/head/helmet/space/void/refurb/marine/talon,
/obj/item/clothing/suit/space/void/refurb/marine/talon,
/obj/item/weapon/tank/oxygen,
/obj/item/device/suit_cooling_unit,
/obj/item/device/gps/security/talonguard,
/obj/item/weapon/melee/baton
)
/obj/structure/closet/secure_closet/talon_doctor
name = "talon doctor's locker"
req_access = list(access_talon)
closet_appearance = /decl/closet_appearance/secure_closet/talon/doctor
starts_with = list(
/obj/item/clothing/under/rank/medical,
/obj/item/clothing/under/rank/nurse,
/obj/item/clothing/under/rank/orderly,
/obj/item/clothing/suit/storage/toggle/labcoat,
/obj/item/clothing/suit/storage/toggle/fr_jacket,
/obj/item/clothing/shoes/white,
/obj/item/device/radio/headset/talon,
/obj/item/clothing/head/helmet/space/void/refurb/medical/alt/talon,
/obj/item/clothing/suit/space/void/refurb/medical/talon,
/obj/item/weapon/tank/oxygen,
/obj/item/device/suit_cooling_unit,
/obj/item/device/gps/medical/talonmed
)
/obj/structure/closet/secure_closet/talon_engineer
name = "talon engineer's locker"
req_access = list(access_talon)
closet_appearance = /decl/closet_appearance/secure_closet/talon/engineer
starts_with = list(
/obj/item/clothing/accessory/storage/brown_vest,
/obj/item/device/flashlight,
/obj/item/weapon/extinguisher,
/obj/item/clamp,
/obj/item/device/radio/headset/talon,
/obj/item/clothing/suit/storage/hazardvest,
/obj/item/clothing/mask/gas,
/obj/item/taperoll/atmos,
/obj/item/weapon/tank/emergency/oxygen/engi,
/obj/item/clothing/head/helmet/space/void/refurb/engineering/talon,
/obj/item/clothing/suit/space/void/refurb/engineering/talon,
/obj/item/weapon/tank/oxygen,
/obj/item/device/suit_cooling_unit,
/obj/item/device/gps/engineering/taloneng
)
/obj/structure/closet/secure_closet/talon_pilot
name = "talon pilot's locker"
req_access = list(access_talon)
closet_appearance = /decl/closet_appearance/secure_closet/talon/pilot
starts_with = list(
/obj/item/weapon/material/knife/tacknife/survival,
/obj/item/clothing/head/pilot,
/obj/item/clothing/under/rank/pilot1,
/obj/item/clothing/suit/storage/toggle/bomber/pilot,
/obj/item/clothing/gloves/fingerless,
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle,
/obj/item/device/radio,
/obj/item/clothing/under/utility/blue,
/obj/item/clothing/accessory/solgov/specialty/pilot,
/obj/item/clothing/shoes/boots/jackboots,
/obj/item/clothing/shoes/boots/jackboots/toeless,
/obj/item/device/radio/headset/talon,
/obj/item/device/flashlight/color/orange,
/obj/item/clothing/head/helmet/space/void/refurb/pilot/talon,
/obj/item/clothing/suit/space/void/refurb/pilot/talon,
/obj/item/weapon/tank/oxygen,
/obj/item/device/suit_cooling_unit,
/obj/item/device/gps/explorer/talonpilot
)
/obj/machinery/vending/medical_talon //Not a subtype for *reasons*
name = "NanoMed Plus"
desc = "Medical drug dispenser."
icon_state = "med"
product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!"
req_access = list(access_talon)
products = list(/obj/item/weapon/reagent_containers/glass/bottle/antitoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline = 4,
/obj/item/weapon/reagent_containers/glass/bottle/stoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/toxin = 4,
/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/syringe = 12,
/obj/item/device/healthanalyzer = 5,/obj/item/weapon/reagent_containers/glass/beaker = 4, /obj/item/weapon/reagent_containers/dropper = 2,
/obj/item/stack/medical/advanced/bruise_pack = 6, /obj/item/stack/medical/advanced/ointment = 6, /obj/item/stack/medical/splint = 4,
/obj/item/weapon/storage/pill_bottle/carbon = 2, /obj/item/weapon/storage/box/khcrystal = 4, /obj/item/clothing/glasses/omnihud/med = 4,
/obj/item/device/glasses_kit = 1, /obj/item/weapon/storage/quickdraw/syringe_case = 4)
contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/stox = 4,/obj/item/weapon/reagent_containers/pill/antitox = 6)
idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan.
req_log_access = access_talon
has_logs = 1
///////////////////////////
//// Computers
// Talon helmet cameras
/datum/computer_file/program/camera_monitor/talon_helmet
filename = "talhcammon"
filedesc = "Helmet Camera Monitoring (Talon)"
extended_desc = "This program allows remote access to Talon helmet camera systems."
size = 4 //Smaller because limited scope
tguimodule_path = /datum/tgui_module/camera/ntos/talon_helmet
required_access = access_talon
// Talon ship cameras
/datum/computer_file/program/camera_monitor/talon_ship
filename = "talscammon"
filedesc = "Ship Camera Monitoring (Talon)"
extended_desc = "This program allows remote access to the Talon's camera system."
size = 10 //Smaller because limited scope
tguimodule_path = /datum/tgui_module/camera/ntos/talon_ship
required_access = access_talon
/datum/tgui_module/camera/ntos/talon_ship
name = "Talon Ship Camera Monitor"
/datum/tgui_module/camera/ntos/talon_ship/New(host)
. = ..(host, list(NETWORK_TALON_SHIP, NETWORK_THUNDER))
/datum/tgui_module/camera/ntos/talon_helmet
name = "Talon Helmet Camera Monitor"
/datum/tgui_module/camera/ntos/talon_helmet/New(host)
. = ..(host, list(NETWORK_TALON_HELMETS))
/datum/computer_file/program/power_monitor/talon
filename = "tpowermonitor"
filedesc = "Power Monitoring (Talon)"
required_access = access_talon
/datum/computer_file/program/alarm_monitor/talon
filename = "talarmmonitoreng"
filedesc = "Alarm Monitoring (Talon)"
required_access = access_talon
/datum/computer_file/program/rcon_console/talon
filename = "trconconsole"
filedesc = "RCON Remote Control (Talon)"
required_access = access_talon
/datum/computer_file/program/atmos_control/talon
filename = "tatmoscontrol"
filedesc = "Atmosphere Control (Talon)"
required_access = access_talon
/datum/computer_file/program/suit_sensors/talon
filename = "tsensormonitor"
filedesc = "Suit Sensors Monitoring (Talon)"
required_access = access_talon
// Modular computer/console presets
/obj/item/modular_computer/laptop/preset/custom_loadout/standard/talon/pilot
name = "pilot's laptop"
/obj/item/modular_computer/laptop/preset/custom_loadout/standard/talon/pilot/install_default_programs()
..()
hard_drive.store_file(new/datum/computer_file/program/ship_nav())
/obj/item/modular_computer/laptop/preset/custom_loadout/standard/talon/engineer
name = "engineer's laptop"
/obj/item/modular_computer/laptop/preset/custom_loadout/standard/talon/engineer/install_default_programs()
..()
hard_drive.store_file(new/datum/computer_file/program/power_monitor/talon())
hard_drive.store_file(new/datum/computer_file/program/alarm_monitor/talon())
hard_drive.store_file(new/datum/computer_file/program/rcon_console/talon())
hard_drive.store_file(new/datum/computer_file/program/atmos_control/talon())
/obj/item/modular_computer/laptop/preset/custom_loadout/standard/talon/security
name = "guard's laptop"
/obj/item/modular_computer/laptop/preset/custom_loadout/standard/talon/security/install_default_programs()
..()
hard_drive.store_file(new/datum/computer_file/program/camera_monitor/talon_ship())
/obj/item/modular_computer/laptop/preset/custom_loadout/standard/talon/medical
name = "doctor's laptop"
/obj/item/modular_computer/laptop/preset/custom_loadout/standard/talon/medical/install_default_programs()
..()
hard_drive.store_file(new/datum/computer_file/program/suit_sensors/talon())
hard_drive.store_file(new/datum/computer_file/program/camera_monitor/talon_helmet())
set_autorun("tsensormonitor")
//Generic modular consoles scattered around
/obj/item/modular_computer/console/preset/talon
name = "talon modular computer"
/obj/item/modular_computer/console/preset/talon/install_default_hardware()
..()
processor_unit = new/obj/item/weapon/computer_hardware/processor_unit(src)
tesla_link = new/obj/item/weapon/computer_hardware/tesla_link(src)
hard_drive = new/obj/item/weapon/computer_hardware/hard_drive/super(src)
network_card = new/obj/item/weapon/computer_hardware/network_card/wired(src)
nano_printer = new/obj/item/weapon/computer_hardware/nano_printer(src)
/obj/item/modular_computer/console/preset/talon/install_default_programs()
..()
hard_drive.store_file(new/datum/computer_file/program/power_monitor/talon())
hard_drive.store_file(new/datum/computer_file/program/alarm_monitor/talon())
hard_drive.store_file(new/datum/computer_file/program/rcon_console/talon())
hard_drive.store_file(new/datum/computer_file/program/atmos_control/talon())
hard_drive.store_file(new/datum/computer_file/program/camera_monitor/talon_ship())
hard_drive.store_file(new/datum/computer_file/program/suit_sensors/talon())
hard_drive.store_file(new/datum/computer_file/program/camera_monitor/talon_helmet())
/obj/effect/shuttle_landmark/premade/talon_v2_near_fore_port
name = "Near ITV Talon (Fore-Port)"
landmark_tag = "talon_v2_near_fore_port"
/obj/effect/shuttle_landmark/premade/talon_v2_near_fore_star
name = "Near ITV Talon (Fore-Starboard)"
landmark_tag = "talon_v2_near_fore_star"
/obj/effect/shuttle_landmark/premade/talon_v2_near_aft_port
name = "Near ITV Talon (Aft-Port)"
landmark_tag = "talon_v2_near_aft_port"
/obj/effect/shuttle_landmark/premade/talon_v2_near_aft_star
name = "Near ITV Talon (Aft-Starboard)"
landmark_tag = "talon_v2_near_aft_star"
/obj/effect/shuttle_landmark/premade/talon_v2_wing_port
name = "ITV Talon (Port Wingtip)"
landmark_tag = "talon_v2_wing_port"
/obj/effect/shuttle_landmark/premade/talon_v2_wing_star
name = "ITV Talon (Starboard Wingtip)"
landmark_tag = "talon_v2_wing_star"
/obj/random/multiple/corp_crate/talon_cargo
name = "random corporate crate (talon)"
desc = "A random corporate crate with thematic contents. No weapons, no SAARE cashbox, 50% chance to not appear."
icon = 'icons/obj/storage.dmi'
spawn_nothing_percentage = 50
icon_state = "crate"
/obj/random/multiple/ore_pile/talon
name = "random ore pile (talon)"
desc = "A pile of random ores. High chance of a larger pile of common ores, lower chances of small piles of rarer ores. No verdantium, reduced item counts vs normal ore craes."
icon = 'icons/obj/mining.dmi'
icon_state = "ore_clown"
/obj/random/multiple/ore_pile/talon/item_to_spawn()
return pick(
prob(10);list(
/obj/item/weapon/ore/coal,
/obj/item/weapon/ore/coal,
/obj/item/weapon/ore/coal,
/obj/item/weapon/ore/coal,
/obj/item/weapon/ore/coal,
/obj/item/weapon/ore/coal,
/obj/item/weapon/ore/coal,
/obj/item/weapon/ore/coal,
/obj/item/weapon/ore/coal,
/obj/item/weapon/ore/coal
),
prob(3);list(
/obj/item/weapon/ore/diamond,
/obj/item/weapon/ore/diamond
),
prob(15);list(
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass,
/obj/item/weapon/ore/glass
),
prob(5);list(
/obj/item/weapon/ore/gold,
/obj/item/weapon/ore/gold,
/obj/item/weapon/ore/gold,
/obj/item/weapon/ore/gold,
/obj/item/weapon/ore/gold
),
prob(2);list(
/obj/item/weapon/ore/hydrogen
),
prob(10);list(
/obj/item/weapon/ore/iron,
/obj/item/weapon/ore/iron,
/obj/item/weapon/ore/iron,
/obj/item/weapon/ore/iron,
/obj/item/weapon/ore/iron,
/obj/item/weapon/ore/iron,
/obj/item/weapon/ore/iron,
/obj/item/weapon/ore/iron,
/obj/item/weapon/ore/iron,
/obj/item/weapon/ore/iron
),
prob(10);list(
/obj/item/weapon/ore/lead,
/obj/item/weapon/ore/lead,
/obj/item/weapon/ore/lead,
/obj/item/weapon/ore/lead,
/obj/item/weapon/ore/lead,
/obj/item/weapon/ore/lead,
/obj/item/weapon/ore/lead,
/obj/item/weapon/ore/lead,
/obj/item/weapon/ore/lead,
/obj/item/weapon/ore/lead
),
prob(5);list(
/obj/item/weapon/ore/marble,
/obj/item/weapon/ore/marble,
/obj/item/weapon/ore/marble,
/obj/item/weapon/ore/marble
),
prob(3);list(
/obj/item/weapon/ore/osmium,
/obj/item/weapon/ore/osmium
),
prob(5);list(
/obj/item/weapon/ore/phoron,
/obj/item/weapon/ore/phoron,
/obj/item/weapon/ore/phoron,
/obj/item/weapon/ore/phoron
),
prob(5);list(
/obj/item/weapon/ore/silver,
/obj/item/weapon/ore/silver,
/obj/item/weapon/ore/silver,
/obj/item/weapon/ore/silver
),
prob(3);list(
/obj/item/weapon/ore/uranium,
/obj/item/weapon/ore/uranium
),
)
/obj/random/multiple/corp_crate/talon_cargo/item_to_spawn()
return pick(
prob(10);list(
/obj/random/tank,
/obj/random/tank,
/obj/random/tank,
/obj/item/clothing/mask/breath,
/obj/item/clothing/mask/breath,
/obj/item/clothing/mask/breath,
/obj/structure/closet/crate/aether //AETHER AIRSUPPLY
),
prob(5);list(
/obj/random/multiple/voidsuit/vintage,
/obj/random/multiple/voidsuit/vintage,
/obj/random/tank,
/obj/random/tank,
/obj/item/clothing/mask/breath,
/obj/item/clothing/mask/breath,
/obj/structure/closet/crate/aether //AETHER OLDSUITS
),
prob(10);list(
/obj/random/mre,
/obj/random/mre,
/obj/random/mre,
/obj/random/mre,
/obj/random/mre,
/obj/structure/closet/crate/centauri //CENTAURI MRES
),
prob(10);list(
/obj/random/drinksoft,
/obj/random/drinksoft,
/obj/random/drinksoft,
/obj/random/drinksoft,
/obj/random/drinksoft,
/obj/structure/closet/crate/freezer/centauri //CENTAURI SODA
),
prob(10);list(
/obj/random/snack,
/obj/random/snack,
/obj/random/snack,
/obj/random/snack,
/obj/random/snack,
/obj/structure/closet/crate/freezer/centauri //CENTAURI SNACKS
),
prob(10);list(
/obj/random/powercell,
/obj/random/powercell,
/obj/random/powercell,
/obj/random/powercell,
/obj/structure/closet/crate/einstein //EINSTEIN BATTERYPACK
),
prob(5);list(
/obj/item/weapon/circuitboard/smes,
/obj/random/smes_coil,
/obj/random/smes_coil,
/obj/structure/closet/crate/focalpoint //FOCAL SMES
),
prob(10);list(
/obj/item/weapon/module/power_control,
/obj/item/stack/cable_coil,
/obj/item/frame/apc,
/obj/item/weapon/cell/apc,
/obj/structure/closet/crate/focalpoint //FOCAL APC
),
prob(5);list(
/obj/random/drinkbottle,
/obj/random/drinkbottle,
/obj/random/drinkbottle,
/obj/random/cigarettes,
/obj/random/cigarettes,
/obj/random/cigarettes,
/obj/structure/closet/crate/gilthari //GILTHARI LUXURY
),
prob(10);list(
/obj/random/tech_supply/nofail,
/obj/random/tech_supply/component/nofail,
/obj/random/tech_supply/component/nofail,
/obj/random/tech_supply/component/nofail,
/obj/random/tech_supply/component/nofail,
/obj/structure/closet/crate/grayson //GRAYSON TECH
),
prob(15);list(
/obj/random/multiple/ore_pile/talon,
/obj/random/multiple/ore_pile/talon,
/obj/random/multiple/ore_pile/talon,
/obj/structure/closet/crate/grayson //GRAYSON ORES (TALON-ADJUSTED)
),
prob(10);list(
/obj/random/material,
/obj/random/material,
/obj/random/material,
/obj/structure/closet/crate/grayson //GRAYSON MATS (TALON-ADJUSTED)
),
prob(5);list(
/obj/random/multiple/voidsuit/security,
/obj/random/tank,
/obj/item/clothing/mask/breath,
/obj/structure/closet/crate/secure/heph //HEPH SUIT (so people don't get huffy at talon trying to sell "NT property" to NT...)
),
prob(5);list(
/obj/random/multiple/voidsuit/medical,
/obj/random/tank,
/obj/item/clothing/mask/breath,
/obj/structure/closet/crate/secure/veymed //VM SUIT
),
prob(5);list(
/obj/random/multiple/voidsuit/mining,
/obj/random/tank,
/obj/item/clothing/mask/breath,
/obj/structure/closet/crate/grayson //GRAYSON SUIT
),
prob(5);list(
/obj/random/multiple/voidsuit/engineering,
/obj/random/tank,
/obj/item/clothing/mask/breath,
/obj/structure/closet/crate/xion //XION SUIT
),
prob(10);list(
/obj/random/firstaid,
/obj/random/medical,
/obj/random/medical,
/obj/random/medical,
/obj/random/medical/lite,
/obj/random/medical/lite,
/obj/structure/closet/crate/veymed //VM GRABBAG
),
prob(10);list(
/obj/random/firstaid,
/obj/random/firstaid,
/obj/random/firstaid,
/obj/random/firstaid,
/obj/random/unidentified_medicine/fresh_medicine,
/obj/random/unidentified_medicine/fresh_medicine,
/obj/structure/closet/crate/veymed //VM FAKS
),
prob(10);list(
/obj/random/tech_supply/nofail,
/obj/random/tech_supply/nofail,
/obj/random/tech_supply/nofail,
/obj/random/tech_supply/nofail,
/obj/random/tech_supply/nofail,
/obj/structure/closet/crate/xion //XION SUPPLY
),
prob(10);list(
/obj/random/firstaid,
/obj/random/medical,
/obj/random/medical/pillbottle,
/obj/random/medical/pillbottle,
/obj/random/medical/lite,
/obj/random/medical/lite,
/obj/structure/closet/crate/zenghu //ZENGHU GRABBAG
),
prob(10);list(
/obj/random/medical/pillbottle,
/obj/random/medical/pillbottle,
/obj/random/medical/pillbottle,
/obj/random/medical/pillbottle,
/obj/random/unidentified_medicine/fresh_medicine,
/obj/random/unidentified_medicine/fresh_medicine,
/obj/structure/closet/crate/zenghu //ZENGHU PILLS
),
prob(10);list(
/obj/item/device/toner,
/obj/item/device/toner,
/obj/item/device/toner,
/obj/item/weapon/clipboard,
/obj/item/weapon/clipboard,
/obj/item/weapon/pen/red,
/obj/item/weapon/pen/blue,
/obj/item/weapon/pen/blue,
/obj/item/device/camera_film,
/obj/item/weapon/folder/blue,
/obj/item/weapon/folder/red,
/obj/item/weapon/folder/yellow,
/obj/item/weapon/hand_labeler,
/obj/item/weapon/tape_roll,
/obj/item/weapon/paper_bin,
/obj/item/sticky_pad/random,
/obj/structure/closet/crate/ummarcar //UMMARCAR OFFICE TRASH
),
prob(5);list(
/obj/item/weapon/reagent_containers/food/snacks/unajerky,
/obj/item/weapon/reagent_containers/food/snacks/unajerky,
/obj/item/weapon/reagent_containers/food/snacks/unajerky,
/obj/item/weapon/reagent_containers/food/snacks/unajerky,
/obj/item/weapon/reagent_containers/food/snacks/unajerky,
/obj/item/weapon/reagent_containers/food/snacks/unajerky,
/obj/item/weapon/reagent_containers/food/snacks/unajerky,
/obj/item/weapon/reagent_containers/food/snacks/unajerky,
/obj/structure/closet/crate/unathi //UNAJERKY
),
prob(10);list(
/obj/item/weapon/reagent_containers/glass/bucket,
/obj/item/weapon/mop,
/obj/item/clothing/under/rank/janitor,
/obj/item/weapon/cartridge/janitor,
/obj/item/clothing/gloves/black,
/obj/item/clothing/head/soft/purple,
/obj/item/weapon/storage/belt/janitor,
/obj/item/clothing/shoes/galoshes,
/obj/item/weapon/storage/bag/trash,
/obj/item/device/lightreplacer,
/obj/item/weapon/reagent_containers/spray/cleaner,
/obj/item/weapon/reagent_containers/glass/rag,
/obj/item/weapon/grenade/chem_grenade/cleaner,
/obj/item/weapon/grenade/chem_grenade/cleaner,
/obj/item/weapon/grenade/chem_grenade/cleaner,
/obj/structure/closet/crate/galaksi //GALAKSI JANITOR SUPPLIES
),
prob(5);list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummy,
/obj/item/weapon/reagent_containers/food/snacks/candy/gummy,
/obj/item/weapon/reagent_containers/food/snacks/candy/gummy,
/obj/item/weapon/reagent_containers/food/snacks/candy/gummy,
/obj/item/weapon/reagent_containers/food/snacks/candy/gummy,
/obj/item/weapon/reagent_containers/food/snacks/candy/gummy,
/obj/item/weapon/reagent_containers/food/snacks/candy/gummy,
/obj/item/weapon/reagent_containers/food/snacks/candy/gummy,
/obj/structure/closet/crate/allico //GUMMIES
),
prob(2);list(
/obj/item/weapon/tank/phoron/pressurized,
/obj/item/weapon/tank/phoron/pressurized,
/obj/structure/closet/crate/secure/phoron //HQ FUEL TANKS
)
)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,120 @@
/area/talon_v2
name = "\improper ITV Talon"
icon = 'icons/turf/areas_vr_talon.dmi'
icon_state = "dark"
/area/talon_v2/maintenance/fore_port
name = "\improper Talon - Fore Port Maintenance"
icon_state = "dark-p"
/area/talon_v2/maintenance/fore_starboard
name = "\improper Talon - Fore Starboard Maintenance"
icon_state = "dark-s"
/area/talon_v2/maintenance/wing_port
name = "\improper Talon - Port Wing Cargo Bay"
icon_state = "gray-p"
/area/talon_v2/maintenance/wing_starboard
name = "\improper Talon - Starboard Wing Cargo Bay"
icon_state = "gray-s"
/area/talon_v2/maintenance/aft_port
name = "\improper Talon - Aft Port Maintenance"
icon_state = "dark-p"
/area/talon_v2/maintenance/aft_starboard
name = "\improper Talon - Aft Starboard Maintenance"
icon_state = "dark-s"
/area/talon_v2/central_hallway
name = "\improper Talon - Central Hallway"
icon_state = "gray-c"
/area/talon_v2/central_hallway/fore
name = "\improper Talon - Central Fore Hallway"
icon_state = "gray-f"
/area/talon_v2/central_hallway/port
name = "\improper Talon - Central Port Hallway"
icon_state = "gray-p"
/area/talon_v2/central_hallway/star
name = "\improper Talon - Central Starboard Hallway"
icon_state = "gray-s"
/area/talon_v2/bridge_hallway
name = "\improper Talon - Bridge Hallway"
icon_state = "gray"
/area/talon_v2/medical
name = "\improper Talon - Medical"
icon_state = "green"
/area/talon_v2/workroom
name = "\improper Talon - Workroom"
/area/talon_v2/brig
name = "\improper Talon - Brig"
icon_state = "red"
/area/talon_v2/hangar
name = "\improper Talon - Hangar"
icon_state = "red"
/area/talon_v2/engineering
name = "\improper Talon - Engineering"
icon_state = "yellow"
/area/talon_v2/engineering/port
name = "\improper Talon - Port Engineering"
icon_state = "yellow-p"
/area/talon_v2/engineering/port_store
name = "\improper Talon - Port Eng. Storage"
icon_state = "yellow-p"
/area/talon_v2/engineering/starboard
name = "\improper Talon - Starboard Engineering"
icon_state = "yellow-s"
/area/talon_v2/engineering/star_store
name = "\improper Talon - Starboard Eng. Storage"
icon_state = "yellow-s"
/area/talon_v2/engineering/atmospherics
name = "\improper Talon - Atmospherics"
icon_state = "dark-a"
/area/talon_v2/engineering/generators
name = "\improper Talon - Generator Core"
icon_state = "yellow"
/area/talon_v2/refining
name = "\improper Talon - Refinery"
icon_state = "yellow"
/area/talon_v2/anomaly_storage
name = "\improper Talon - Anomaly Storage"
icon_state = "gray"
/area/talon_v2/unused
name = "\improper Talon - Unused Room"
icon_state = "gray"
/area/talon_v2/armory
name = "\improper Talon - Armory"
icon_state = "red"
/area/talon_v2/secure_storage
name = "\improper Talon - Secure Storage"
icon_state = "red"
/area/talon_v2/bridge
name = "\improper Talon - Bridge"
icon_state = "blue"
/area/talon_v2/crew_quarters/pilot_room
name = "\improper Talon - Pilot Cabin"
icon_state = "gray"
/area/talon_v2/crew_quarters/med_room
name = "\improper Talon - Doctor Cabin"
icon_state = "green"
/area/talon_v2/crew_quarters/eng_room
name = "\improper Talon - Engineer Cabin"
icon_state = "yellow"
/area/talon_v2/crew_quarters/sec_room
name = "\improper Talon - Guard Cabin"
icon_state = "red"
/area/talon_v2/crew_quarters/cap_room
name = "\improper Talon - Captain Cabin"
icon_state = "blue"
/area/talon_v2/crew_quarters/bar
name = "\improper Talon - Bar"
icon_state = "gray"
/area/talon_v2/crew_quarters/restrooms
name = "\improper Talon - Restrooms"
icon_state = "gray"
/area/talon_v2/crew_quarters/meditation
name = "\improper Talon - Observation Room"
icon_state = "blue"

View File

@@ -7,3 +7,30 @@
name = "Special Area - ERT"
desc = "ERT Base."
mappath = 'maps/submaps/admin_use_vr/ert_base.dmm'
// Old two-Z Talon - left commented out because multi-z maploading is fussy or something IIRC
/*
/datum/map_template/tether_lateload/offmap/talon1
name = "Offmap Ship - Talon Z1"
desc = "Offmap spawn ship, the Talon."
mappath = 'maps/submaps/depreciated_vr/talon/talon1.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/talon1
/datum/map_template/tether_lateload/offmap/talon2
name = "Offmap Ship - Talon Z2"
desc = "Offmap spawn ship, the Talon."
mappath = 'maps/submaps/depreciated_vr/talon/talon2.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/talon2
/datum/map_z_level/tether_lateload/talon1
name = "Talon Deck One"
flags = MAP_LEVEL_PLAYER
base_turf = /turf/space
z = Z_LEVEL_OFFMAP1
/datum/map_z_level/tether_lateload/talon2
name = "Talon Deck Two"
flags = MAP_LEVEL_PLAYER
base_turf = /turf/simulated/open
z = Z_LEVEL_OFFMAP2
*/

View File

@@ -538,35 +538,21 @@
//////////////////////////////////////////////////////////////////////////////
//Offmap Spawn Locations
#include "../../offmap_vr/talon/talon.dm"
#include "../../offmap_vr/talon/talon_areas.dm"
#include "../../offmap_vr/talon/talon_v2.dm"
#include "../../offmap_vr/talon/talon_v2_areas.dm"
#if MAP_TEST
#include "../../offmap_vr/talon/talon1.dmm"
#include "../../offmap_vr/talon/talon2.dmm"
#include "../../offmap_vr/talon/talon_v2.dmm"
#endif
// Talon offmap spawn
/datum/map_template/tether_lateload/offmap/talon1
name = "Offmap Ship - Talon Z1"
/datum/map_template/tether_lateload/offmap/talon_v2
name = "Offmap Ship - Talon V2"
desc = "Offmap spawn ship, the Talon."
mappath = 'maps/offmap_vr/talon/talon1.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/talon1
mappath = 'maps/offmap_vr/talon/talon_v2.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/talon_v2
/datum/map_template/tether_lateload/offmap/talon2
name = "Offmap Ship - Talon Z2"
desc = "Offmap spawn ship, the Talon."
mappath = 'maps/offmap_vr/talon/talon2.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/talon2
/datum/map_z_level/tether_lateload/talon1
name = "Talon Deck One"
/datum/map_z_level/tether_lateload/talon_v2
name = "Talon"
flags = MAP_LEVEL_PLAYER
base_turf = /turf/space
z = Z_LEVEL_OFFMAP1
/datum/map_z_level/tether_lateload/talon2
name = "Talon Deck Two"
flags = MAP_LEVEL_PLAYER
base_turf = /turf/simulated/open
z = Z_LEVEL_OFFMAP2

View File

@@ -12,16 +12,16 @@
#define Z_LEVEL_UNDERDARK 11
#define Z_LEVEL_PLAINS 12
#define Z_LEVEL_OFFMAP1 13
#define Z_LEVEL_OFFMAP2 14
#define Z_LEVEL_ROGUEMINE_1 15
#define Z_LEVEL_ROGUEMINE_2 16
#define Z_LEVEL_BEACH 17
#define Z_LEVEL_BEACH_CAVE 18
#define Z_LEVEL_AEROSTAT 19
#define Z_LEVEL_AEROSTAT_SURFACE 20
#define Z_LEVEL_DEBRISFIELD 21
#define Z_LEVEL_FUELDEPOT 22
#define Z_LEVEL_GATEWAY 23
//#define Z_LEVEL_OFFMAP2 14
#define Z_LEVEL_ROGUEMINE_1 14
#define Z_LEVEL_ROGUEMINE_2 15
#define Z_LEVEL_BEACH 16
#define Z_LEVEL_BEACH_CAVE 17
#define Z_LEVEL_AEROSTAT 18
#define Z_LEVEL_AEROSTAT_SURFACE 19
#define Z_LEVEL_DEBRISFIELD 20
#define Z_LEVEL_FUELDEPOT 21
#define Z_LEVEL_GATEWAY 22
//Camera networks
#define NETWORK_TETHER "Tether"
@@ -155,7 +155,7 @@
lateload_z_levels = list(
list("Tether - Misc","Tether - Underdark","Tether - Plains"), //Stock Tether lateload maps
list("Offmap Ship - Talon Z1","Offmap Ship - Talon Z2"),
list("Offmap Ship - Talon V2"),
list("Asteroid Belt 1","Asteroid Belt 2"),
list("Desert Planet - Z1 Beach","Desert Planet - Z2 Cave"),
list("Remmi Aerostat - Z1 Aerostat","Remmi Aerostat - Z2 Surface"),