Merge pull request #6772 from VOREStation/aro-blufo
Various minor things
@@ -6,4 +6,12 @@
|
||||
|
||||
light_range = 3
|
||||
light_power = 1
|
||||
light_color = "#FFFFFF"
|
||||
|
||||
/obj/effect/map_effect/perma_light/brighter
|
||||
name = "permanent light (bright)"
|
||||
icon_state = "permalight"
|
||||
|
||||
light_range = 5
|
||||
light_power = 3
|
||||
light_color = "#FFFFFF"
|
||||
@@ -16,6 +16,7 @@
|
||||
var/abductor = 0 //Can be used on teleportation blocking turfs
|
||||
|
||||
var/list/beacons = list()
|
||||
var/loc_network = null //Used if you want to create pre-made beacons on the maps
|
||||
var/ready = 1
|
||||
var/beacons_left = 3
|
||||
var/failure_chance = 5 //Percent
|
||||
@@ -24,8 +25,9 @@
|
||||
var/list/warned_users = list()
|
||||
var/list/logged_events = list()
|
||||
|
||||
/obj/item/device/perfect_tele/New()
|
||||
..()
|
||||
|
||||
/obj/item/device/perfect_tele/Initialize()
|
||||
. = ..()
|
||||
flags |= NOBLUDGEON
|
||||
if(cell_type)
|
||||
power_source = new cell_type(src)
|
||||
@@ -73,6 +75,12 @@
|
||||
to_chat(user,"<span class='notice'>[src] does not have a power cell.</span>")
|
||||
|
||||
/obj/item/device/perfect_tele/attack_self(mob/user)
|
||||
if(loc_network)
|
||||
for(var/obj/item/device/perfect_tele_beacon/stationary/nb in premade_tele_beacons)
|
||||
if(nb.tele_network == loc_network)
|
||||
beacons[nb.tele_name] = nb
|
||||
loc_network = null //Consumed
|
||||
|
||||
if(!(user.ckey in warned_users))
|
||||
warned_users |= user.ckey
|
||||
alert(user,"This device can be easily used to break ERP preferences due to the nature of teleporting \
|
||||
@@ -380,6 +388,7 @@ GLOBAL_LIST_BOILERPLATE(premade_tele_beacons, /obj/item/device/perfect_tele_beac
|
||||
/obj/item/device/perfect_tele/alien
|
||||
name = "alien translocator"
|
||||
desc = "This strange device allows one to teleport people and objects across large distances."
|
||||
icon_state = "alientele"
|
||||
|
||||
cell_type = /obj/item/weapon/cell/device/weapon/recharge/alien
|
||||
charge_cost = 400
|
||||
@@ -388,13 +397,26 @@ GLOBAL_LIST_BOILERPLATE(premade_tele_beacons, /obj/item/device/perfect_tele_beac
|
||||
longrange = 1
|
||||
abductor = 1
|
||||
|
||||
/obj/item/device/perfect_tele/alien/bluefo
|
||||
name = "hybrid translocator"
|
||||
desc = "This strange device allows one to teleport people and objects across large distances. It has only a single preprogrammed destination, though."
|
||||
icon_state = "alientele"
|
||||
|
||||
cell_type = /obj/item/weapon/cell/device/weapon/recharge/alien
|
||||
charge_cost = 400
|
||||
beacons_left = 0
|
||||
failure_chance = 0
|
||||
longrange = 1
|
||||
abductor = 1
|
||||
loc_network = "hybridshuttle"
|
||||
|
||||
/obj/item/device/perfect_tele/frontier
|
||||
icon_state = "minitrans"
|
||||
icon_state = "frontiertrans"
|
||||
beacons_left = 1 //Just one
|
||||
battery_lock = 1
|
||||
unacidable = 1
|
||||
failure_chance = 0 //Percent
|
||||
var/loc_network = null
|
||||
|
||||
var/phase_power = 75
|
||||
var/recharging = 0
|
||||
|
||||
@@ -429,12 +451,6 @@ GLOBAL_LIST_BOILERPLATE(premade_tele_beacons, /obj/item/device/perfect_tele_beac
|
||||
loc_network = "centcom"
|
||||
longrange = 1
|
||||
|
||||
/obj/item/device/perfect_tele/frontier/staff/New()
|
||||
..()
|
||||
for(var/obj/item/device/perfect_tele_beacon/stationary/nb in premade_tele_beacons)
|
||||
if(nb.tele_network == loc_network)
|
||||
beacons[nb.tele_name] = nb
|
||||
|
||||
/obj/item/device/perfect_tele/frontier/unknown
|
||||
name = "modified translocator"
|
||||
desc = "This crank-charged translocator has only one beacon, but it already has a destination preprogrammed into it."
|
||||
@@ -442,12 +458,6 @@ GLOBAL_LIST_BOILERPLATE(premade_tele_beacons, /obj/item/device/perfect_tele_beac
|
||||
longrange = 1
|
||||
abductor = 1
|
||||
|
||||
/obj/item/device/perfect_tele/frontier/unknown/New()
|
||||
..()
|
||||
for(var/obj/item/device/perfect_tele_beacon/stationary/nb in premade_tele_beacons)
|
||||
if(nb.tele_network == loc_network)
|
||||
beacons[nb.tele_name] = nb
|
||||
|
||||
/obj/item/device/perfect_tele/frontier/unknown/one
|
||||
loc_network = "unkone"
|
||||
/obj/item/device/perfect_tele/frontier/unknown/two
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
/obj/structure/prop/alien/computer/hybrid
|
||||
name = "hybrid console"
|
||||
desc = "The console flashes what appear to be symbols you've never seen before, intermixed with human writing moving too fast to comprehend."
|
||||
icon = 'icons/obj/abductor_vr.dmi'
|
||||
icon_state = "console-c"
|
||||
interaction_message = "<span class='warning'>The screen flashes an 'access denied' message at you. Perhaps for the best.</span>"
|
||||
|
||||
/obj/structure/prop/alien/pod/hybrid
|
||||
name = "hybrid pod"
|
||||
desc = "This seems to be a container for something."
|
||||
icon = 'icons/obj/abductor_vr.dmi'
|
||||
icon_state = "experiment"
|
||||
interaction_message = "<span class='warning'>You don't see any mechanism to open this thing. Probably for the best.</span>"
|
||||
@@ -42,7 +42,7 @@
|
||||
/obj/structure/bed/update_icon()
|
||||
// Prep icon.
|
||||
icon_state = ""
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
// Base icon.
|
||||
var/cache_key = "[base_icon]-[material.name]"
|
||||
if(isnull(stool_cache[cache_key]))
|
||||
@@ -50,7 +50,7 @@
|
||||
if(applies_material_colour) //VOREStation Add - Goes with added var
|
||||
I.color = material.icon_colour
|
||||
stool_cache[cache_key] = I
|
||||
overlays |= stool_cache[cache_key]
|
||||
add_overlay(stool_cache[cache_key])
|
||||
// Padding overlay.
|
||||
if(padding_material)
|
||||
var/padding_cache_key = "[base_icon]-padding-[padding_material.name]"
|
||||
@@ -58,7 +58,7 @@
|
||||
var/image/I = image(icon, "[base_icon]_padding")
|
||||
I.color = padding_material.icon_colour
|
||||
stool_cache[padding_cache_key] = I
|
||||
overlays |= stool_cache[padding_cache_key]
|
||||
add_overlay(stool_cache[padding_cache_key])
|
||||
// Strings.
|
||||
desc = initial(desc)
|
||||
if(padding_material)
|
||||
|
||||
@@ -47,13 +47,12 @@
|
||||
var/cache_key = "[base_icon]-armrest-[padding_material ? padding_material.name : "no_material"]"
|
||||
if(isnull(stool_cache[cache_key]))
|
||||
var/image/I = image(icon, "[base_icon]_armrest")
|
||||
I.layer = MOB_LAYER + 0.1
|
||||
I.plane = MOB_PLANE
|
||||
I.layer = ABOVE_MOB_LAYER
|
||||
if(padding_material)
|
||||
I.color = padding_material.icon_colour
|
||||
stool_cache[cache_key] = I
|
||||
overlays |= stool_cache[cache_key]
|
||||
|
||||
stool_cache[cache_key] = I
|
||||
add_overlay(stool_cache[cache_key])
|
||||
|
||||
/obj/structure/bed/chair/proc/update_layer()
|
||||
if(src.dir == NORTH)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
var/image/I = image(icon, "[base_icon]_over")
|
||||
I.layer = ABOVE_MOB_LAYER
|
||||
I.plane = MOB_PLANE
|
||||
overlays |= I
|
||||
add_overlay(I)
|
||||
|
||||
/obj/structure/bed/chair/bar_stool
|
||||
name = "bar stool"
|
||||
|
||||
@@ -37,14 +37,14 @@ var/global/list/stool_cache = list() //haha stool
|
||||
/obj/item/weapon/stool/update_icon()
|
||||
// Prep icon.
|
||||
icon_state = ""
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
// Base icon.
|
||||
var/cache_key = "stool-[material.name]"
|
||||
if(isnull(stool_cache[cache_key]))
|
||||
var/image/I = image(icon, base_icon)
|
||||
I.color = material.icon_colour
|
||||
stool_cache[cache_key] = I
|
||||
overlays |= stool_cache[cache_key]
|
||||
add_overlay(stool_cache[cache_key])
|
||||
// Padding overlay.
|
||||
if(padding_material)
|
||||
var/padding_cache_key = "stool-padding-[padding_material.name]"
|
||||
@@ -52,7 +52,7 @@ var/global/list/stool_cache = list() //haha stool
|
||||
var/image/I = image(icon, "[base_icon]_padding") //VOREStation Edit
|
||||
I.color = padding_material.icon_colour
|
||||
stool_cache[padding_cache_key] = I
|
||||
overlays |= stool_cache[padding_cache_key]
|
||||
add_overlay(stool_cache[padding_cache_key])
|
||||
// Strings.
|
||||
if(padding_material)
|
||||
name = "[padding_material.display_name] [initial(name)]" //this is not perfect but it will do for now.
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
|
||||
/obj/structure/bed/chair/wheelchair/set_dir()
|
||||
..()
|
||||
overlays = null
|
||||
cut_overlays()
|
||||
var/image/O = image(icon = 'icons/obj/furniture.dmi', icon_state = "w_overlay", layer = FLY_LAYER, dir = src.dir)
|
||||
overlays += O
|
||||
add_overlay(O)
|
||||
if(has_buckled_mobs())
|
||||
for(var/A in buckled_mobs)
|
||||
var/mob/living/L = A
|
||||
|
||||
@@ -1,3 +1,17 @@
|
||||
/turf/simulated/shuttle/floor/alienplating/blue
|
||||
icon = 'icons/turf/shuttle_alien_blue.dmi'
|
||||
icon_state = "alienplating"
|
||||
|
||||
/turf/simulated/shuttle/floor/alienplating/blue/half
|
||||
icon_state = "alienplatinghalf"
|
||||
|
||||
/turf/simulated/shuttle/floor/alien/blue
|
||||
icon = 'icons/turf/shuttle_alien_blue.dmi'
|
||||
icon_state = "alienpod1"
|
||||
light_range = 4
|
||||
light_power = 0.8
|
||||
light_color = "#66ffff" // Bright cyan.
|
||||
|
||||
/turf/simulated/floor/flesh
|
||||
name = "flesh"
|
||||
desc = "This slick flesh ripples and squishes under your touch"
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
/obj/structure/fans/hardlight
|
||||
name = "hardlight shield"
|
||||
desc = "Retains air, allows passage."
|
||||
plane = TURF_PLANE
|
||||
layer = ABOVE_TURF_LAYER
|
||||
density = FALSE
|
||||
icon = 'icons/effects/effects_vr.dmi'
|
||||
icon_state = "hardlight"
|
||||
buildstackamount = 2
|
||||
|
||||
light_range = 3
|
||||
light_power = 1
|
||||
light_color = "#FFFFFF"
|
||||
@@ -148,8 +148,8 @@
|
||||
// return a knot cable (O-X) if one is present in the turf
|
||||
// null if there's none
|
||||
/turf/proc/get_cable_node()
|
||||
if(!istype(src, /turf/simulated/floor))
|
||||
return null
|
||||
//if(!istype(src, /turf/simulated/floor)) //VOREStation Removal - Why?
|
||||
//return null //VOREStation Removal - Why?
|
||||
for(var/obj/structure/cable/C in src)
|
||||
if(C.d1 == 0)
|
||||
return C
|
||||
|
||||
@@ -94,22 +94,22 @@
|
||||
return 0
|
||||
|
||||
/obj/machinery/power/smes/update_icon()
|
||||
overlays.Cut()
|
||||
cut_overlays()
|
||||
if(stat & BROKEN) return
|
||||
|
||||
overlays += image('icons/obj/power.dmi', "smes-op[outputting]")
|
||||
add_overlay("smes-op[outputting]")
|
||||
|
||||
if(inputting == 2)
|
||||
overlays += image('icons/obj/power.dmi', "smes-oc2")
|
||||
add_overlay("smes-oc2")
|
||||
else if (inputting == 1)
|
||||
overlays += image('icons/obj/power.dmi', "smes-oc1")
|
||||
add_overlay("smes-oc1")
|
||||
else
|
||||
if(input_attempt)
|
||||
overlays += image('icons/obj/power.dmi', "smes-oc0")
|
||||
add_overlay("smes-oc0")
|
||||
|
||||
var/clevel = chargedisplay()
|
||||
if(clevel>0)
|
||||
overlays += image('icons/obj/power.dmi', "smes-og[clevel]")
|
||||
add_overlay("smes-og[clevel]")
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
/obj/machinery/power/smes/buildable/hybrid
|
||||
name = "hybrid power storage unit"
|
||||
desc = "A high-capacity superconducting magnetic energy storage (SMES) unit, modified with alien technology to generate small amounts of power from seemingly nowhere."
|
||||
icon = 'icons/obj/power_vr.dmi'
|
||||
var/recharge_rate = 10000
|
||||
var/overlay_icon = 'icons/obj/power_vr.dmi'
|
||||
|
||||
/obj/machinery/power/smes/buildable/hybrid/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
|
||||
if(W.is_screwdriver() || W.is_wirecutter())
|
||||
to_chat(user,"<span class='warning'>\The [src] full of weird alien technology that's best not messed with.</span>")
|
||||
return 0
|
||||
|
||||
/obj/machinery/power/smes/buildable/hybrid/update_icon()
|
||||
cut_overlays()
|
||||
if(stat & BROKEN) return
|
||||
|
||||
add_overlay("smes-op[outputting]")
|
||||
|
||||
if(inputting == 2)
|
||||
add_overlay("smes-oc2")
|
||||
else if (inputting == 1)
|
||||
add_overlay("smes-oc1")
|
||||
else
|
||||
if(input_attempt)
|
||||
add_overlay("smes-oc0")
|
||||
|
||||
var/clevel = chargedisplay()
|
||||
if(clevel>0)
|
||||
add_overlay("smes-og[clevel]")
|
||||
return
|
||||
|
||||
/obj/machinery/power/smes/buildable/hybrid/process()
|
||||
charge += min(recharge_rate, capacity - charge)
|
||||
..()
|
||||
@@ -16,4 +16,6 @@
|
||||
|
||||
/obj/structure/table/darkglass/dismantle(obj/item/weapon/wrench/W, mob/user)
|
||||
to_chat(user, "<span class='warning'>You cannot dismantle \the [src].</span>")
|
||||
return
|
||||
return
|
||||
/obj/structure/table/alien/blue
|
||||
icon = 'icons/turf/shuttle_alien_blue.dmi'
|
||||
|
||||
|
After Width: | Height: | Size: 668 B |
|
After Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 51 KiB |
@@ -878,6 +878,11 @@
|
||||
icon_state = "shuttle2"
|
||||
requires_power = 1
|
||||
|
||||
/area/shuttle/blue_fo
|
||||
name = "\improper Hybrid Shuttle"
|
||||
icon_state = "shuttle2"
|
||||
requires_power = 1
|
||||
|
||||
// Belter Dock
|
||||
|
||||
/area/quartermaster/belterdock
|
||||
|
||||
@@ -220,7 +220,7 @@
|
||||
my_landmark = "tether_excursion_hangar"
|
||||
|
||||
radio_announce = 1
|
||||
announcer = "Excursion Shuttle"
|
||||
announcer = "Docking System"
|
||||
|
||||
routes_to_make = list(
|
||||
/datum/shuttle_destination/excursion/outside_tether = 0,
|
||||
@@ -249,7 +249,7 @@
|
||||
my_landmark = "tether_excursion_dockarm"
|
||||
|
||||
radio_announce = 1
|
||||
announcer = "Excursion Shuttle"
|
||||
announcer = "Docking System"
|
||||
|
||||
/datum/shuttle_destination/excursion/docked_tether/get_arrival_message()
|
||||
return "Attention, [master.my_shuttle.visible_name] has arrived at Docking Arm One."
|
||||
@@ -273,6 +273,73 @@
|
||||
name = "Skies of Virgo 3B"
|
||||
my_landmark = "tether_excursion_virgo3bsky"
|
||||
|
||||
////////// Aliems!!
|
||||
/obj/machinery/computer/shuttle_control/web/excursion/blue
|
||||
name = "shuttle control console"
|
||||
icon = 'icons/obj/flight_computer_vr.dmi'
|
||||
icon_state = "center"
|
||||
shuttle_tag = "Hybrid Shuttle"
|
||||
req_access = list()
|
||||
req_one_access = list(access_pilot)
|
||||
wait_time = 0
|
||||
var/setup = FALSE
|
||||
|
||||
/obj/machinery/computer/shuttle_control/web/excursion/blue/ui_interact()
|
||||
if(!setup && alert("Steal the excursion shuttle's destinations and copy them to this shuttle?","Shuttle Setup","Yes","Cancel") == "Yes")
|
||||
var/datum/shuttle/autodock/web_shuttle/HS = shuttle_controller.shuttles[shuttle_tag]
|
||||
var/datum/shuttle/autodock/web_shuttle/ES = shuttle_controller.shuttles["Excursion Shuttle"]
|
||||
if(!ES.web_master.destinations.len)
|
||||
return
|
||||
|
||||
// First, instantiate all the destination subtypes relevant to this datum.
|
||||
for(var/new_type in ES.web_master.destinations)
|
||||
var/datum/shuttle_destination/D = new_type
|
||||
//if(D.skip_me) //Don't care
|
||||
// continue
|
||||
HS.web_master.destinations += new D.type(HS.web_master)
|
||||
|
||||
// Now start the process of connecting all of them.
|
||||
for(var/datum/shuttle_destination/D in HS.web_master.destinations)
|
||||
for(var/type_to_link in D.routes_to_make)
|
||||
var/travel_delay = D.routes_to_make[type_to_link]
|
||||
D.link_destinations(HS.web_master.get_destination_by_type(type_to_link), D.preferred_interim_tag, travel_delay)
|
||||
|
||||
HS.web_master.current_destination = HS.web_master.get_destination_by_type(/datum/shuttle_destination/excursion/deepish_space)
|
||||
setup = TRUE
|
||||
..()
|
||||
else
|
||||
return ..()
|
||||
|
||||
/datum/shuttle/autodock/web_shuttle/excursion/blue
|
||||
name = "Hybrid Shuttle"
|
||||
visible_name = "XN-39 Prototype"
|
||||
warmup_time = 0
|
||||
current_location = "bluefo_start"
|
||||
docking_controller_tag = "hybrid_shuttle_docker"
|
||||
web_master_type = /datum/shuttle_web_master/excursion/blue
|
||||
shuttle_area = /area/shuttle/blue_fo
|
||||
abduct_chance = 0
|
||||
flags = SHUTTLE_FLAGS_NONE
|
||||
|
||||
/datum/shuttle_web_master/excursion/blue
|
||||
destination_class = /datum/shuttle_destination/excursion
|
||||
starting_destination = /datum/shuttle_destination/excursion/deepish_space
|
||||
|
||||
/datum/shuttle_web_master/excursion/blue/build_destinations()
|
||||
return
|
||||
|
||||
/datum/shuttle_destination/excursion/deepish_space
|
||||
name = "Deepish Space"
|
||||
my_landmark = "bluefo_start"
|
||||
preferred_interim_tag = "tether_excursion_transit_space"
|
||||
routes_to_make = list(
|
||||
/datum/shuttle_destination/excursion/bluespace = 0
|
||||
)
|
||||
|
||||
/datum/shuttle_destination/excursion/deepish_space/link_destinations(var/datum/shuttle_destination/other_place, var/interim_tag, var/travel_time = 0)
|
||||
var/datum/shuttle_route/new_route = new(src, other_place, interim_tag, travel_time)
|
||||
routes += new_route
|
||||
|
||||
////////// Distant Destinations
|
||||
/datum/shuttle_destination/excursion/bluespace
|
||||
name = "Bluespace Jump"
|
||||
|
||||
@@ -1379,6 +1379,7 @@
|
||||
#include "code\game\objects\structures\ghost_pods\silicon.dm"
|
||||
#include "code\game\objects\structures\ghost_pods\silicon_vr.dm"
|
||||
#include "code\game\objects\structures\props\alien_props.dm"
|
||||
#include "code\game\objects\structures\props\alien_props_vr.dm"
|
||||
#include "code\game\objects\structures\props\beam_prism.dm"
|
||||
#include "code\game\objects\structures\props\blackbox.dm"
|
||||
#include "code\game\objects\structures\props\fake_ai.dm"
|
||||
@@ -2189,6 +2190,7 @@
|
||||
#include "code\modules\mining\ore_datum_vr.dm"
|
||||
#include "code\modules\mining\resonator_vr.dm"
|
||||
#include "code\modules\mining\shelter_atoms.dm"
|
||||
#include "code\modules\mining\shelter_atoms_vr.dm"
|
||||
#include "code\modules\mining\shelters.dm"
|
||||
#include "code\modules\mining\drilling\drill.dm"
|
||||
#include "code\modules\mining\drilling\scanner.dm"
|
||||
@@ -2883,6 +2885,7 @@
|
||||
#include "code\modules\power\powernet.dm"
|
||||
#include "code\modules\power\smes.dm"
|
||||
#include "code\modules\power\smes_construction.dm"
|
||||
#include "code\modules\power\smes_vr.dm"
|
||||
#include "code\modules\power\solar.dm"
|
||||
#include "code\modules\power\terminal.dm"
|
||||
#include "code\modules\power\tracker.dm"
|
||||
|
||||