mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Merge branch 'master' into upstream-merge-11464
This commit is contained in:
@@ -16,7 +16,8 @@ Pipelines + Other Objects -> Pipe network
|
|||||||
power_channel = ENVIRON
|
power_channel = ENVIRON
|
||||||
var/nodealert = 0
|
var/nodealert = 0
|
||||||
var/power_rating //the maximum amount of power the machine can use to do work, affects how powerful the machine is, in Watts
|
var/power_rating //the maximum amount of power the machine can use to do work, affects how powerful the machine is, in Watts
|
||||||
|
|
||||||
|
unacidable = TRUE
|
||||||
layer = ATMOS_LAYER
|
layer = ATMOS_LAYER
|
||||||
plane = PLATING_PLANE
|
plane = PLATING_PLANE
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
icon = 'icons/obj/power.dmi'
|
icon = 'icons/obj/power.dmi'
|
||||||
icon_state = "circ-unassembled"
|
icon_state = "circ-unassembled"
|
||||||
anchored = FALSE
|
anchored = FALSE
|
||||||
|
unacidable = TRUE
|
||||||
pipe_flags = PIPING_DEFAULT_LAYER_ONLY|PIPING_ONE_PER_TURF
|
pipe_flags = PIPING_DEFAULT_LAYER_ONLY|PIPING_ONE_PER_TURF
|
||||||
|
|
||||||
var/kinetic_efficiency = 0.04 //combined kinetic and kinetic-to-electric efficiency
|
var/kinetic_efficiency = 0.04 //combined kinetic and kinetic-to-electric efficiency
|
||||||
|
|||||||
@@ -42,3 +42,7 @@
|
|||||||
//Ouch my toes!
|
//Ouch my toes!
|
||||||
#define CALTROP_BYPASS_SHOES 1
|
#define CALTROP_BYPASS_SHOES 1
|
||||||
#define CALTROP_IGNORE_WALKERS 2
|
#define CALTROP_IGNORE_WALKERS 2
|
||||||
|
|
||||||
|
// Conflict element IDs
|
||||||
|
#define CONFLICT_ELEMENT_CRUSHER "crusher"
|
||||||
|
#define CONFLICT_ELEMENT_KA "kinetic_accelerator"
|
||||||
@@ -772,3 +772,9 @@
|
|||||||
#define COMPONENT_BLOCK_LIGHT_EATER (1<<0)
|
#define COMPONENT_BLOCK_LIGHT_EATER (1<<0)
|
||||||
///from base of [/datum/element/light_eater/proc/devour]: (atom/eaten_light)
|
///from base of [/datum/element/light_eater/proc/devour]: (atom/eaten_light)
|
||||||
#define COMSIG_LIGHT_EATER_DEVOUR "light_eater_devour"
|
#define COMSIG_LIGHT_EATER_DEVOUR "light_eater_devour"
|
||||||
|
|
||||||
|
// conflict checking elements
|
||||||
|
/// (id) - returns flags - Registered on something by conflict checking elements.
|
||||||
|
#define COMSIG_CONFLICT_ELEMENT_CHECK "conflict_element_check"
|
||||||
|
/// A conflict was found
|
||||||
|
#define ELEMENT_CONFLICT_FOUND (1<<0)
|
||||||
|
|||||||
@@ -58,5 +58,6 @@
|
|||||||
//#define isturf(D) istype(D, /turf) //Built in
|
//#define isturf(D) istype(D, /turf) //Built in
|
||||||
#define isopenspace(A) istype(A, /turf/simulated/open)
|
#define isopenspace(A) istype(A, /turf/simulated/open)
|
||||||
#define isspace(A) istype(A, /turf/space)
|
#define isspace(A) istype(A, /turf/space)
|
||||||
|
#define ismineralturf(A) istype(A, /turf/simulated/mineral)
|
||||||
|
|
||||||
#define istaurtail(A) istype(A, /datum/sprite_accessory/tail/taur)
|
#define istaurtail(A) istype(A, /datum/sprite_accessory/tail/taur)
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ var/syndicate_code_response//Code response for traitors.
|
|||||||
|
|
||||||
var/safety[] = list(1,2,3)//Tells the proc which options to remove later on.
|
var/safety[] = list(1,2,3)//Tells the proc which options to remove later on.
|
||||||
var/nouns[] = list("love","hate","anger","peace","pride","sympathy","bravery","loyalty","honesty","integrity","compassion","charity","success","courage","deceit","skill","beauty","brilliance","pain","misery","beliefs","dreams","justice","truth","faith","liberty","knowledge","thought","information","culture","trust","dedication","progress","education","hospitality","leisure","trouble","friendships", "relaxation")
|
var/nouns[] = list("love","hate","anger","peace","pride","sympathy","bravery","loyalty","honesty","integrity","compassion","charity","success","courage","deceit","skill","beauty","brilliance","pain","misery","beliefs","dreams","justice","truth","faith","liberty","knowledge","thought","information","culture","trust","dedication","progress","education","hospitality","leisure","trouble","friendships", "relaxation")
|
||||||
var/drinks[] = list("vodka and tonic","gin fizz","bahama mama","manhattan","black Russian","whiskey soda","long island tea","margarita","Irish coffee"," manly dwarf","Irish cream","doctor's delight","Beepksy Smash","tequilla sunrise","brave bull","gargle blaster","bloody mary","whiskey cola","white Russian","vodka martini","martini","Cuba libre","kahlua","vodka","wine","moonshine")
|
var/drinks[] = list("vodka and tonic","gin fizz","bahama mama","manhattan","black Russian","whiskey soda","long island tea","margarita","Irish coffee"," manly dwarf","Irish cream","doctor's delight","Beepksy Smash","tequilla sunrise","brave bull","gargle blaster","bloody mary","whiskey cola","white Russian","vodka martini","martini","Cuba libre","kahlua","vodka","redwine","moonshine")
|
||||||
var/locations[] = teleportlocs.len ? teleportlocs : drinks//if null, defaults to drinks instead.
|
var/locations[] = teleportlocs.len ? teleportlocs : drinks//if null, defaults to drinks instead.
|
||||||
|
|
||||||
var/names[] = list()
|
var/names[] = list()
|
||||||
|
|||||||
@@ -124,12 +124,19 @@ GLOBAL_VAR_INIT(round_start_time, 0)
|
|||||||
|
|
||||||
/var/midnight_rollovers = 0
|
/var/midnight_rollovers = 0
|
||||||
/var/rollovercheck_last_timeofday = 0
|
/var/rollovercheck_last_timeofday = 0
|
||||||
|
/var/rollover_safety_date = 0 // set in world/New to the server startup day-of-month
|
||||||
/proc/update_midnight_rollover()
|
/proc/update_midnight_rollover()
|
||||||
if (world.timeofday < rollovercheck_last_timeofday) //TIME IS GOING BACKWARDS!
|
// Day has wrapped (world.timeofday drops to 0 at the start of each real day)
|
||||||
midnight_rollovers += 1
|
if (world.timeofday < rollovercheck_last_timeofday)
|
||||||
|
// If the day started/last wrap was < 12 hours ago, this is spurious
|
||||||
|
if(rollover_safety_date < world.realtime - (12 HOURS))
|
||||||
|
midnight_rollovers++
|
||||||
|
rollover_safety_date = world.realtime
|
||||||
|
else
|
||||||
|
warning("Time rollover error: world.timeofday decreased from previous check, but the day or last rollover is less than 12 hours old. System clock?")
|
||||||
rollovercheck_last_timeofday = world.timeofday
|
rollovercheck_last_timeofday = world.timeofday
|
||||||
return midnight_rollovers
|
return midnight_rollovers
|
||||||
|
|
||||||
//Increases delay as the server gets more overloaded,
|
//Increases delay as the server gets more overloaded,
|
||||||
//as sleeps aren't cheap and sleeping only to wake up and sleep again is wasteful
|
//as sleeps aren't cheap and sleeping only to wake up and sleep again is wasteful
|
||||||
#define DELTA_CALC max(((max(TICK_USAGE, world.cpu) / 100) * max(Master.sleep_delta-1,1)), 1)
|
#define DELTA_CALC max(((max(TICK_USAGE, world.cpu) / 100) * max(Master.sleep_delta-1,1)), 1)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ SUBSYSTEM_DEF(ticker)
|
|||||||
flags = SS_NO_TICK_CHECK | SS_KEEP_TIMING
|
flags = SS_NO_TICK_CHECK | SS_KEEP_TIMING
|
||||||
runlevels = RUNLEVEL_LOBBY | RUNLEVEL_SETUP | RUNLEVEL_GAME | RUNLEVEL_POSTGAME // Every runlevel!
|
runlevels = RUNLEVEL_LOBBY | RUNLEVEL_SETUP | RUNLEVEL_GAME | RUNLEVEL_POSTGAME // Every runlevel!
|
||||||
|
|
||||||
var/const/restart_timeout = 3 MINUTES // Default time to wait before rebooting in desiseconds.
|
var/const/restart_timeout = 4 MINUTES // Default time to wait before rebooting in desiseconds.
|
||||||
var/current_state = GAME_STATE_INIT // We aren't even at pregame yet // TODO replace with CURRENT_GAME_STATE
|
var/current_state = GAME_STATE_INIT // We aren't even at pregame yet // TODO replace with CURRENT_GAME_STATE
|
||||||
|
|
||||||
/* Relies upon the following globals (TODO move those in here) */
|
/* Relies upon the following globals (TODO move those in here) */
|
||||||
|
|||||||
35
code/datums/elements/conflict_checking.dm
Normal file
35
code/datums/elements/conflict_checking.dm
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
/**
|
||||||
|
* Simple conflict checking for getting number of conflicting things on someone with the same ID.
|
||||||
|
*/
|
||||||
|
/datum/element/conflict_checking
|
||||||
|
element_flags = ELEMENT_BESPOKE | ELEMENT_DETACH
|
||||||
|
id_arg_index = 1
|
||||||
|
/// we don't need to KNOW who has us, only our ID.
|
||||||
|
var/id
|
||||||
|
|
||||||
|
/datum/element/conflict_checking/Attach(datum/target, id)
|
||||||
|
. = ..()
|
||||||
|
if(. & ELEMENT_INCOMPATIBLE)
|
||||||
|
return
|
||||||
|
if(!isatom(target))
|
||||||
|
return ELEMENT_INCOMPATIBLE
|
||||||
|
if(!length(id))
|
||||||
|
. = ELEMENT_INCOMPATIBLE
|
||||||
|
CRASH("Invalid ID in conflict checking element.")
|
||||||
|
if(isnull(src.id))
|
||||||
|
src.id = id
|
||||||
|
RegisterSignal(target, COMSIG_CONFLICT_ELEMENT_CHECK, .proc/check)
|
||||||
|
|
||||||
|
/datum/element/conflict_checking/proc/check(datum/source, id_to_check)
|
||||||
|
if(id == id_to_check)
|
||||||
|
return ELEMENT_CONFLICT_FOUND
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Counts number of conflicts on something that have a conflict checking element.
|
||||||
|
*/
|
||||||
|
/atom/proc/ConflictElementCount(id)
|
||||||
|
. = 0
|
||||||
|
for(var/i in GetAllContents())
|
||||||
|
var/atom/movable/AM = i
|
||||||
|
if(SEND_SIGNAL(AM, COMSIG_CONFLICT_ELEMENT_CHECK, id) & ELEMENT_CONFLICT_FOUND)
|
||||||
|
++.
|
||||||
@@ -39,4 +39,5 @@
|
|||||||
pda_slot = slot_r_store
|
pda_slot = slot_r_store
|
||||||
pda_type = /obj/item/device/pda/roboticist
|
pda_type = /obj/item/device/pda/roboticist
|
||||||
backpack = /obj/item/weapon/storage/backpack
|
backpack = /obj/item/weapon/storage/backpack
|
||||||
satchel_one = /obj/item/weapon/storage/backpack/satchel/norm
|
satchel_one = /obj/item/weapon/storage/backpack/satchel/norm
|
||||||
|
suit = /obj/item/clothing/suit/storage/toggle/labcoat/roboticist
|
||||||
@@ -70,6 +70,7 @@ var/datum/antagonist/raider/raiders
|
|||||||
/obj/item/weapon/gun/energy/mindflayer,
|
/obj/item/weapon/gun/energy/mindflayer,
|
||||||
/obj/item/weapon/gun/energy/toxgun,
|
/obj/item/weapon/gun/energy/toxgun,
|
||||||
/obj/item/weapon/gun/energy/stunrevolver,
|
/obj/item/weapon/gun/energy/stunrevolver,
|
||||||
|
/obj/item/weapon/gun/energy/stunrevolver/vintage,
|
||||||
/obj/item/weapon/gun/energy/ionrifle,
|
/obj/item/weapon/gun/energy/ionrifle,
|
||||||
/obj/item/weapon/gun/energy/taser,
|
/obj/item/weapon/gun/energy/taser,
|
||||||
/obj/item/weapon/gun/energy/crossbow/largecrossbow,
|
/obj/item/weapon/gun/energy/crossbow/largecrossbow,
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
icon_state = "table2-idle"
|
icon_state = "table2-idle"
|
||||||
density = TRUE
|
density = TRUE
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
use_power = USE_POWER_IDLE
|
use_power = USE_POWER_IDLE
|
||||||
idle_power_usage = 1
|
idle_power_usage = 1
|
||||||
active_power_usage = 5
|
active_power_usage = 5
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
var/obj/machinery/sleeper/sleeper
|
var/obj/machinery/sleeper/sleeper
|
||||||
anchored = TRUE //About time someone fixed this.
|
anchored = TRUE //About time someone fixed this.
|
||||||
density = TRUE //VOREStation Edit - Big console
|
density = TRUE //VOREStation Edit - Big console
|
||||||
|
unacidable = TRUE
|
||||||
dir = 8
|
dir = 8
|
||||||
use_power = USE_POWER_IDLE
|
use_power = USE_POWER_IDLE
|
||||||
idle_power_usage = 40
|
idle_power_usage = 40
|
||||||
@@ -89,6 +90,7 @@
|
|||||||
icon_state = "sleeper_0"
|
icon_state = "sleeper_0"
|
||||||
density = TRUE
|
density = TRUE
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
circuit = /obj/item/weapon/circuitboard/sleeper
|
circuit = /obj/item/weapon/circuitboard/sleeper
|
||||||
var/mob/living/carbon/human/occupant = null
|
var/mob/living/carbon/human/occupant = null
|
||||||
var/list/available_chemicals = list()
|
var/list/available_chemicals = list()
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
icon_state = "body_scanner_0"
|
icon_state = "body_scanner_0"
|
||||||
density = TRUE
|
density = TRUE
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
circuit = /obj/item/weapon/circuitboard/body_scanner
|
circuit = /obj/item/weapon/circuitboard/body_scanner
|
||||||
use_power = USE_POWER_IDLE
|
use_power = USE_POWER_IDLE
|
||||||
idle_power_usage = 60
|
idle_power_usage = 60
|
||||||
@@ -547,6 +548,7 @@
|
|||||||
dir = 8
|
dir = 8
|
||||||
density = FALSE
|
density = FALSE
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
circuit = /obj/item/weapon/circuitboard/scanner_console
|
circuit = /obj/item/weapon/circuitboard/scanner_console
|
||||||
var/printing = null
|
var/printing = null
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
layer = ABOVE_WINDOW_LAYER
|
layer = ABOVE_WINDOW_LAYER
|
||||||
vis_flags = VIS_HIDE // They have an emissive that looks bad in openspace due to their wall-mounted nature
|
vis_flags = VIS_HIDE // They have an emissive that looks bad in openspace due to their wall-mounted nature
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
use_power = USE_POWER_IDLE
|
use_power = USE_POWER_IDLE
|
||||||
idle_power_usage = 80
|
idle_power_usage = 80
|
||||||
active_power_usage = 1000 //For heating/cooling rooms. 1000 joules equates to about 1 degree every 2 seconds for a single tile of air.
|
active_power_usage = 1000 //For heating/cooling rooms. 1000 joules equates to about 1 degree every 2 seconds for a single tile of air.
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
/obj/structure/AIcore
|
/obj/structure/AIcore
|
||||||
density = TRUE
|
density = TRUE
|
||||||
anchored = FALSE
|
anchored = FALSE
|
||||||
|
unacidable = TRUE
|
||||||
name = "\improper AI core"
|
name = "\improper AI core"
|
||||||
icon = 'icons/mob/AI.dmi'
|
icon = 'icons/mob/AI.dmi'
|
||||||
icon_state = "0"
|
icon_state = "0"
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
icon_state = "computer"
|
icon_state = "computer"
|
||||||
density = TRUE
|
density = TRUE
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
use_power = USE_POWER_IDLE
|
use_power = USE_POWER_IDLE
|
||||||
idle_power_usage = 300
|
idle_power_usage = 300
|
||||||
active_power_usage = 300
|
active_power_usage = 300
|
||||||
|
|||||||
@@ -194,6 +194,7 @@
|
|||||||
icon_state = "cryopod_0" //VOREStation Edit - New Icon
|
icon_state = "cryopod_0" //VOREStation Edit - New Icon
|
||||||
density = TRUE
|
density = TRUE
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
dir = WEST
|
dir = WEST
|
||||||
|
|
||||||
var/base_icon_state = "cryopod_0" //VOREStation Edit - New Icon
|
var/base_icon_state = "cryopod_0" //VOREStation Edit - New Icon
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ FIRE ALARM
|
|||||||
var/timing = 0.0
|
var/timing = 0.0
|
||||||
var/lockdownbyai = 0
|
var/lockdownbyai = 0
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
use_power = USE_POWER_IDLE
|
use_power = USE_POWER_IDLE
|
||||||
idle_power_usage = 2
|
idle_power_usage = 2
|
||||||
active_power_usage = 6
|
active_power_usage = 6
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
icon_state = "pipe_d"
|
icon_state = "pipe_d"
|
||||||
density = TRUE
|
density = TRUE
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
var/unwrenched = 0
|
var/unwrenched = 0
|
||||||
var/wait = 0
|
var/wait = 0
|
||||||
var/p_layer = PIPING_LAYER_REGULAR
|
var/p_layer = PIPING_LAYER_REGULAR
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
icon_state = "borgcharger0"
|
icon_state = "borgcharger0"
|
||||||
density = TRUE
|
density = TRUE
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
circuit = /obj/item/weapon/circuitboard/recharge_station
|
circuit = /obj/item/weapon/circuitboard/recharge_station
|
||||||
use_power = USE_POWER_IDLE
|
use_power = USE_POWER_IDLE
|
||||||
idle_power_usage = 50
|
idle_power_usage = 50
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
name = "status display"
|
name = "status display"
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
density = FALSE
|
density = FALSE
|
||||||
|
unacidable = TRUE
|
||||||
use_power = USE_POWER_IDLE
|
use_power = USE_POWER_IDLE
|
||||||
idle_power_usage = 10
|
idle_power_usage = 10
|
||||||
circuit = /obj/item/weapon/circuitboard/status_display
|
circuit = /obj/item/weapon/circuitboard/status_display
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
|
|||||||
|
|
||||||
/obj/machinery/telecomms
|
/obj/machinery/telecomms
|
||||||
icon = 'icons/obj/stationobjs_vr.dmi' //VOREStation Add
|
icon = 'icons/obj/stationobjs_vr.dmi' //VOREStation Add
|
||||||
|
unacidable = TRUE
|
||||||
var/list/links = list() // list of machines this machine is linked to
|
var/list/links = list() // list of machines this machine is linked to
|
||||||
var/traffic = 0 // value increases as traffic increases
|
var/traffic = 0 // value increases as traffic increases
|
||||||
var/netspeed = 5 // how much traffic to lose per tick (50 gigabytes/second * netspeed)
|
var/netspeed = 5 // how much traffic to lose per tick (50 gigabytes/second * netspeed)
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
icon_state = "control_standby"
|
icon_state = "control_standby"
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
density = FALSE
|
density = FALSE
|
||||||
|
unacidable = TRUE
|
||||||
var/enabled = FALSE
|
var/enabled = FALSE
|
||||||
var/lethal = FALSE
|
var/lethal = FALSE
|
||||||
var/lethal_is_configurable = TRUE
|
var/lethal_is_configurable = TRUE
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
desc = "A machine used for construction of prosthetics."
|
desc = "A machine used for construction of prosthetics."
|
||||||
density = TRUE
|
density = TRUE
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
use_power = USE_POWER_IDLE
|
use_power = USE_POWER_IDLE
|
||||||
idle_power_usage = 20
|
idle_power_usage = 20
|
||||||
active_power_usage = 5000
|
active_power_usage = 5000
|
||||||
|
|||||||
@@ -164,6 +164,7 @@
|
|||||||
icon_state = "weeds"
|
icon_state = "weeds"
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
density = FALSE
|
density = FALSE
|
||||||
|
unacidable = TRUE
|
||||||
plane = TURF_PLANE
|
plane = TURF_PLANE
|
||||||
layer = ABOVE_TURF_LAYER
|
layer = ABOVE_TURF_LAYER
|
||||||
|
|
||||||
@@ -396,16 +397,18 @@
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
ticks += 1
|
ticks += 1
|
||||||
|
|
||||||
if(ticks >= target_strength)
|
if(ticks >= target_strength)
|
||||||
|
|
||||||
for(var/mob/O in hearers(src, null))
|
for(var/mob/O in hearers(src, null))
|
||||||
O.show_message("<span class='alium'>[src.target] collapses under its own weight into a puddle of goop and undigested debris!</span>", 1)
|
O.show_message("<span class='alium'>[src.target] collapses under its own weight into a puddle of goop and undigested debris!</span>", 1)
|
||||||
|
|
||||||
if(istype(target, /turf/simulated/wall)) // I hate turf code.
|
if(iswall(target))
|
||||||
var/turf/simulated/wall/W = target
|
var/turf/simulated/wall/W = target
|
||||||
W.dismantle_wall(1)
|
W.dismantle_wall()
|
||||||
else
|
else if(isfloor(target))
|
||||||
|
var/turf/simulated/floor/T = target
|
||||||
|
T.ex_act(1)
|
||||||
|
else if(isobj(target))
|
||||||
qdel(target)
|
qdel(target)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -223,6 +223,8 @@
|
|||||||
size = "bulky"
|
size = "bulky"
|
||||||
if(ITEMSIZE_HUGE)
|
if(ITEMSIZE_HUGE)
|
||||||
size = "huge"
|
size = "huge"
|
||||||
|
if(ITEMSIZE_NO_CONTAINER)
|
||||||
|
size = "massive"
|
||||||
return ..(user, "", "It is a [size] item.")
|
return ..(user, "", "It is a [size] item.")
|
||||||
|
|
||||||
/obj/item/attack_hand(mob/living/user as mob)
|
/obj/item/attack_hand(mob/living/user as mob)
|
||||||
|
|||||||
@@ -26,7 +26,6 @@
|
|||||||
closet_appearance = null
|
closet_appearance = null
|
||||||
open_sound = 'sound/items/zip.ogg'
|
open_sound = 'sound/items/zip.ogg'
|
||||||
close_sound = 'sound/items/zip.ogg'
|
close_sound = 'sound/items/zip.ogg'
|
||||||
door_anim_time = 0 //Unsupported
|
|
||||||
var/item_path = /obj/item/bodybag
|
var/item_path = /obj/item/bodybag
|
||||||
density = FALSE
|
density = FALSE
|
||||||
storage_capacity = (MOB_MEDIUM * 2) - 1
|
storage_capacity = (MOB_MEDIUM * 2) - 1
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
throwforce = 6
|
throwforce = 6
|
||||||
preserve_item = 1
|
preserve_item = 1
|
||||||
w_class = ITEMSIZE_LARGE
|
w_class = ITEMSIZE_LARGE
|
||||||
|
unacidable = TRUE
|
||||||
origin_tech = list(TECH_BIO = 4, TECH_POWER = 2)
|
origin_tech = list(TECH_BIO = 4, TECH_POWER = 2)
|
||||||
action_button_name = "Remove/Replace Paddles"
|
action_button_name = "Remove/Replace Paddles"
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,6 @@
|
|||||||
closet_appearance = null
|
closet_appearance = null
|
||||||
catalogue_data = list(/datum/category_item/catalogue/information/objects/oldreactor)
|
catalogue_data = list(/datum/category_item/catalogue/information/objects/oldreactor)
|
||||||
climbable = FALSE
|
climbable = FALSE
|
||||||
door_anim_time = 0 //Unsupported
|
|
||||||
|
|
||||||
starts_with = list(
|
starts_with = list(
|
||||||
/obj/item/weapon/fuel_assembly/deuterium = 6)
|
/obj/item/weapon/fuel_assembly/deuterium = 6)
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
|
|
||||||
if(istype(W, /obj/item/weapon/material))
|
if(istype(W, /obj/item/weapon/material))
|
||||||
if(istype(W, /obj/item/weapon/material/sharpeningkit))
|
if(istype(W, /obj/item/weapon/material/sharpeningkit))
|
||||||
to_chat(user, "Really? Sharpening a [W] with [src]? You goofball.")
|
to_chat(user, "As much as you'd like to sharpen [W] with [src], the logistics just don't work out.")
|
||||||
return
|
return
|
||||||
var/obj/item/weapon/material/M = W
|
var/obj/item/weapon/material/M = W
|
||||||
if(uses >= M.w_class*2)
|
if(uses >= M.w_class*2)
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
uses -= M.w_class*2
|
uses -= M.w_class*2
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
to_chat(user, "Not enough material to sharpen [M]. You need [M.w_class*2] [M.material.sheet_plural_name].")
|
to_chat(user, "There's not enough spare sheets to sharpen [M]. You need [M.w_class*2] [M.material.sheet_plural_name].")
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
to_chat(user, "You can't sharpen [W] with [src]!")
|
to_chat(user, "You can't sharpen [W] with [src]!")
|
||||||
|
|||||||
@@ -167,6 +167,7 @@
|
|||||||
/obj/item/weapon/melee/baton,
|
/obj/item/weapon/melee/baton,
|
||||||
/obj/item/weapon/gun/energy/taser,
|
/obj/item/weapon/gun/energy/taser,
|
||||||
/obj/item/weapon/gun/energy/stunrevolver,
|
/obj/item/weapon/gun/energy/stunrevolver,
|
||||||
|
/obj/item/weapon/gun/energy/stunrevolver/vintage,
|
||||||
/obj/item/weapon/gun/magnetic/railgun/heater/pistol,
|
/obj/item/weapon/gun/magnetic/railgun/heater/pistol,
|
||||||
/obj/item/weapon/gun/energy/gun,
|
/obj/item/weapon/gun/energy/gun,
|
||||||
/obj/item/weapon/flame/lighter,
|
/obj/item/weapon/flame/lighter,
|
||||||
|
|||||||
@@ -48,7 +48,8 @@
|
|||||||
/obj/item/device/ano_scanner,
|
/obj/item/device/ano_scanner,
|
||||||
/obj/item/device/cataloguer,
|
/obj/item/device/cataloguer,
|
||||||
/obj/item/device/radio,
|
/obj/item/device/radio,
|
||||||
/obj/item/device/mapping_unit
|
/obj/item/device/mapping_unit,
|
||||||
|
/obj/item/weapon/kinetic_crusher
|
||||||
)
|
)
|
||||||
|
|
||||||
/obj/item/weapon/storage/belt/explorer/pathfinder
|
/obj/item/weapon/storage/belt/explorer/pathfinder
|
||||||
|
|||||||
@@ -20,4 +20,13 @@
|
|||||||
force = 0
|
force = 0
|
||||||
w_class = ITEMSIZE_NORMAL
|
w_class = ITEMSIZE_NORMAL
|
||||||
max_w_class = ITEMSIZE_SMALL
|
max_w_class = ITEMSIZE_SMALL
|
||||||
max_storage_space = ITEMSIZE_COST_SMALL * 4
|
max_storage_space = ITEMSIZE_COST_SMALL * 4
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/briefcase/bookbag
|
||||||
|
name = "bookbag"
|
||||||
|
desc = "A small bookbag for holding... things other than books?"
|
||||||
|
icon_state = "bookbag"
|
||||||
|
force = 4.0
|
||||||
|
w_class = ITEMSIZE_LARGE
|
||||||
|
max_w_class = ITEMSIZE_NORMAL
|
||||||
|
max_storage_space = ITEMSIZE_COST_NORMAL * 4
|
||||||
@@ -31,6 +31,7 @@
|
|||||||
prob(4);/obj/item/weapon/gun/energy/taser,
|
prob(4);/obj/item/weapon/gun/energy/taser,
|
||||||
prob(2);/obj/item/weapon/gun/energy/crossbow/largecrossbow,
|
prob(2);/obj/item/weapon/gun/energy/crossbow/largecrossbow,
|
||||||
prob(4);/obj/item/weapon/gun/energy/stunrevolver,
|
prob(4);/obj/item/weapon/gun/energy/stunrevolver,
|
||||||
|
prob(2);/obj/item/weapon/gun/energy/stunrevolver/vintage,
|
||||||
prob(3);/obj/item/weapon/gun/energy/gun/compact)
|
prob(3);/obj/item/weapon/gun/energy/gun/compact)
|
||||||
|
|
||||||
/obj/random/energy/sec
|
/obj/random/energy/sec
|
||||||
|
|||||||
@@ -64,6 +64,52 @@
|
|||||||
/obj/structure/closet/crate/engineering,
|
/obj/structure/closet/crate/engineering,
|
||||||
/obj/structure/closet/crate)
|
/obj/structure/closet/crate)
|
||||||
|
|
||||||
|
/obj/random/vendorall //Fully random selection of consumer vendors
|
||||||
|
name = "random vending machine"
|
||||||
|
desc = "This is a random vending machine"
|
||||||
|
icon = 'icons/obj/vending.dmi'
|
||||||
|
icon_state = "radren-off"
|
||||||
|
|
||||||
|
/obj/random/vendorall/item_to_spawn()
|
||||||
|
return pick (/obj/machinery/vending/coffee,
|
||||||
|
/obj/machinery/vending/snack,
|
||||||
|
/obj/machinery/vending/cola,
|
||||||
|
/obj/machinery/vending/fitness,
|
||||||
|
/obj/machinery/vending/cigarette,
|
||||||
|
/obj/machinery/vending/giftvendor,
|
||||||
|
/obj/machinery/vending/hotfood,
|
||||||
|
/obj/machinery/vending/weeb,
|
||||||
|
/obj/machinery/vending/sol,
|
||||||
|
/obj/machinery/vending/snix,
|
||||||
|
/obj/machinery/vending/snlvend,
|
||||||
|
/obj/machinery/vending/sovietsoda,
|
||||||
|
/obj/machinery/vending/sovietvend,
|
||||||
|
/obj/machinery/vending/radren)
|
||||||
|
|
||||||
|
/obj/random/vendorfood //Random food vendors for station use
|
||||||
|
name = "random snack vending machine"
|
||||||
|
desc = "This is a random food vending machine"
|
||||||
|
icon = 'icons/obj/vending.dmi'
|
||||||
|
icon_state = "snack"
|
||||||
|
|
||||||
|
/obj/random/vendorfood/item_to_spawn()
|
||||||
|
return pick (/obj/machinery/vending/snack,
|
||||||
|
/obj/machinery/vending/weeb,
|
||||||
|
/obj/machinery/vending/sol,
|
||||||
|
/obj/machinery/vending/snix,
|
||||||
|
/obj/machinery/vending/snlvend)
|
||||||
|
|
||||||
|
/obj/random/vendordrink //Random drink vendors for station use
|
||||||
|
name = "random drink vending machine"
|
||||||
|
desc = "This is a random drink vending machine"
|
||||||
|
icon = 'icons/obj/vending.dmi'
|
||||||
|
icon_state = "Cola_Machine"
|
||||||
|
|
||||||
|
/obj/random/vendordrink/item_to_spawn() //Not including coffee as it's more specific in usage.
|
||||||
|
return pick (/obj/machinery/vending/cola,
|
||||||
|
/obj/machinery/vending/sovietsoda,
|
||||||
|
/obj/machinery/vending/radren)
|
||||||
|
|
||||||
/obj/random/obstruction //Large objects to block things off in maintenance
|
/obj/random/obstruction //Large objects to block things off in maintenance
|
||||||
name = "random obstruction"
|
name = "random obstruction"
|
||||||
desc = "This is a random obstruction."
|
desc = "This is a random obstruction."
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
icon = 'icons/mob/alien.dmi'
|
icon = 'icons/mob/alien.dmi'
|
||||||
layer = ABOVE_JUNK_LAYER
|
layer = ABOVE_JUNK_LAYER
|
||||||
var/health = 50
|
var/health = 50
|
||||||
|
unacidable = TRUE
|
||||||
|
|
||||||
/obj/structure/alien/proc/healthcheck()
|
/obj/structure/alien/proc/healthcheck()
|
||||||
if(health <=0)
|
if(health <=0)
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ two tiles on initialization, and which way a cliff is facing may change during m
|
|||||||
opacity = FALSE
|
opacity = FALSE
|
||||||
climbable = TRUE
|
climbable = TRUE
|
||||||
climb_delay = 10 SECONDS
|
climb_delay = 10 SECONDS
|
||||||
|
unacidable = TRUE
|
||||||
block_turf_edges = TRUE // Don't want turf edges popping up from the cliff edge.
|
block_turf_edges = TRUE // Don't want turf edges popping up from the cliff edge.
|
||||||
plane = TURF_PLANE
|
plane = TURF_PLANE
|
||||||
|
|
||||||
|
|||||||
@@ -34,19 +34,11 @@
|
|||||||
|
|
||||||
var/list/starts_with // List of type = count (or just type for 1)
|
var/list/starts_with // List of type = count (or just type for 1)
|
||||||
|
|
||||||
var/closet_appearance = /decl/closet_appearance // The /decl that defines what decals we end up with, that makes our look unique
|
var/decl/closet_appearance/closet_appearance = /decl/closet_appearance // The /decl that defines what decals we end up with, that makes our look unique
|
||||||
|
|
||||||
/// Currently animating the door transform
|
/// Currently animating the door transform
|
||||||
var/is_animating_door = FALSE
|
var/is_animating_door = FALSE
|
||||||
/// Length of time (ds) to animate the door transform
|
/// Our visual object for the closet door, if we're animating
|
||||||
var/door_anim_time = 2.0
|
|
||||||
/// Amount to 'squish' the full width of the door by
|
|
||||||
var/door_anim_squish = 0.30
|
|
||||||
/// Virtual angle at which the door is opened to (136 by default, so not a full 180)
|
|
||||||
var/door_anim_angle = 136
|
|
||||||
/// Offset for the door hinge location from centerline
|
|
||||||
var/door_hinge = -6.5
|
|
||||||
/// Our visual object for the closet door
|
|
||||||
var/obj/effect/overlay/closet_door/door_obj
|
var/obj/effect/overlay/closet_door/door_obj
|
||||||
|
|
||||||
/obj/structure/closet/Initialize()
|
/obj/structure/closet/Initialize()
|
||||||
@@ -73,15 +65,16 @@
|
|||||||
storage_capacity = content_size + 5
|
storage_capacity = content_size + 5
|
||||||
|
|
||||||
if(ispath(closet_appearance))
|
if(ispath(closet_appearance))
|
||||||
var/decl/closet_appearance/app = GLOB.closet_appearances[closet_appearance]
|
closet_appearance = GLOB.closet_appearances[closet_appearance]
|
||||||
if(app)
|
if(istype(closet_appearance))
|
||||||
icon = app.icon
|
icon = closet_appearance.icon
|
||||||
color = null
|
color = null
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
/obj/structure/closet/Destroy()
|
/obj/structure/closet/Destroy()
|
||||||
. = ..()
|
|
||||||
qdel_null(door_obj)
|
qdel_null(door_obj)
|
||||||
|
closet_appearance = null
|
||||||
|
return ..()
|
||||||
|
|
||||||
/obj/structure/closet/examine(mob/user)
|
/obj/structure/closet/examine(mob/user)
|
||||||
. = ..()
|
. = ..()
|
||||||
@@ -500,7 +493,7 @@
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/structure/closet/proc/animate_door(closing = FALSE)
|
/obj/structure/closet/proc/animate_door(closing = FALSE)
|
||||||
if(!door_anim_time)
|
if(!closet_appearance?.door_anim_time)
|
||||||
update_icon()
|
update_icon()
|
||||||
return
|
return
|
||||||
if(!door_obj)
|
if(!door_obj)
|
||||||
@@ -511,9 +504,9 @@
|
|||||||
is_animating_door = TRUE
|
is_animating_door = TRUE
|
||||||
if(!closing)
|
if(!closing)
|
||||||
update_icon()
|
update_icon()
|
||||||
var/num_steps = door_anim_time / world.tick_lag
|
var/num_steps = closet_appearance.door_anim_time / world.tick_lag
|
||||||
for(var/I in 0 to num_steps)
|
for(var/I in 0 to num_steps)
|
||||||
var/angle = door_anim_angle * (closing ? 1 - (I/num_steps) : (I/num_steps))
|
var/angle = closet_appearance.door_anim_angle * (closing ? 1 - (I/num_steps) : (I/num_steps))
|
||||||
var/matrix/M = get_door_transform(angle)
|
var/matrix/M = get_door_transform(angle)
|
||||||
var/door_state = angle >= 90 ? "door_back" : "door_front"
|
var/door_state = angle >= 90 ? "door_back" : "door_front"
|
||||||
var/door_layer = angle >= 90 ? FLOAT_LAYER : ABOVE_MOB_LAYER
|
var/door_layer = angle >= 90 ? FLOAT_LAYER : ABOVE_MOB_LAYER
|
||||||
@@ -526,7 +519,7 @@
|
|||||||
animate(door_obj, transform = M, icon_state = door_state, layer = door_layer, time = world.tick_lag, flags = ANIMATION_END_NOW)
|
animate(door_obj, transform = M, icon_state = door_state, layer = door_layer, time = world.tick_lag, flags = ANIMATION_END_NOW)
|
||||||
else
|
else
|
||||||
animate(transform = M, icon_state = door_state, layer = door_layer, time = world.tick_lag)
|
animate(transform = M, icon_state = door_state, layer = door_layer, time = world.tick_lag)
|
||||||
addtimer(CALLBACK(src,.proc/end_door_animation,closing),door_anim_time,TIMER_UNIQUE|TIMER_OVERRIDE)
|
addtimer(CALLBACK(src, .proc/end_door_animation,closing), closet_appearance.door_anim_time, TIMER_UNIQUE|TIMER_OVERRIDE)
|
||||||
|
|
||||||
/obj/structure/closet/proc/end_door_animation(closing = FALSE)
|
/obj/structure/closet/proc/end_door_animation(closing = FALSE)
|
||||||
is_animating_door = FALSE
|
is_animating_door = FALSE
|
||||||
@@ -537,7 +530,9 @@
|
|||||||
|
|
||||||
/obj/structure/closet/proc/get_door_transform(angle)
|
/obj/structure/closet/proc/get_door_transform(angle)
|
||||||
var/matrix/M = matrix()
|
var/matrix/M = matrix()
|
||||||
M.Translate(-door_hinge, 0)
|
if(!closet_appearance)
|
||||||
M.Multiply(matrix(cos(angle), 0, 0, -sin(angle) * door_anim_squish, 1, 0))
|
return M
|
||||||
M.Translate(door_hinge, 0)
|
M.Translate(-closet_appearance.door_hinge, 0)
|
||||||
|
M.Multiply(matrix(cos(angle), 0, 0, -sin(angle) * closet_appearance.door_anim_squish, 1, 0))
|
||||||
|
M.Translate(closet_appearance.door_hinge, 0)
|
||||||
return M
|
return M
|
||||||
|
|||||||
@@ -14,6 +14,15 @@
|
|||||||
var/decal_icon = 'icons/obj/closets/decals/closet.dmi'
|
var/decal_icon = 'icons/obj/closets/decals/closet.dmi'
|
||||||
var/can_lock = FALSE
|
var/can_lock = FALSE
|
||||||
|
|
||||||
|
/// Length of time (ds) to animate the door transform
|
||||||
|
var/door_anim_time = 2.0
|
||||||
|
/// Amount to 'squish' the full width of the door by
|
||||||
|
var/door_anim_squish = 0.30
|
||||||
|
/// Virtual angle at which the door is opened to (136 by default, so not a full 180)
|
||||||
|
var/door_anim_angle = 136
|
||||||
|
/// Offset for the door hinge location from centerline
|
||||||
|
var/door_hinge = -6.5
|
||||||
|
|
||||||
/decl/closet_appearance/New()
|
/decl/closet_appearance/New()
|
||||||
// Build our colour and decal lists.
|
// Build our colour and decal lists.
|
||||||
if(LAZYLEN(extra_decals))
|
if(LAZYLEN(extra_decals))
|
||||||
@@ -725,6 +734,7 @@
|
|||||||
base_icon = 'icons/obj/closets/bases/crate.dmi'
|
base_icon = 'icons/obj/closets/bases/crate.dmi'
|
||||||
decal_icon = 'icons/obj/closets/decals/crate.dmi'
|
decal_icon = 'icons/obj/closets/decals/crate.dmi'
|
||||||
color = COLOR_GRAY40
|
color = COLOR_GRAY40
|
||||||
|
door_anim_time = 0
|
||||||
|
|
||||||
/decl/closet_appearance/crate/plastic
|
/decl/closet_appearance/crate/plastic
|
||||||
color = COLOR_GRAY80
|
color = COLOR_GRAY80
|
||||||
@@ -1237,6 +1247,7 @@
|
|||||||
decal_icon = 'icons/obj/closets/decals/large_crate.dmi'
|
decal_icon = 'icons/obj/closets/decals/large_crate.dmi'
|
||||||
decals = null
|
decals = null
|
||||||
extra_decals = null
|
extra_decals = null
|
||||||
|
door_anim_time = 0
|
||||||
|
|
||||||
/decl/closet_appearance/large_crate/critter
|
/decl/closet_appearance/large_crate/critter
|
||||||
color = COLOR_BEIGE
|
color = COLOR_BEIGE
|
||||||
@@ -1349,6 +1360,7 @@
|
|||||||
color = WOOD_COLOR_RICH
|
color = WOOD_COLOR_RICH
|
||||||
decals = null
|
decals = null
|
||||||
extra_decals = null
|
extra_decals = null
|
||||||
|
door_anim_time = 0
|
||||||
|
|
||||||
/decl/closet_appearance/cabinet/secure
|
/decl/closet_appearance/cabinet/secure
|
||||||
can_lock = TRUE
|
can_lock = TRUE
|
||||||
@@ -1361,6 +1373,7 @@
|
|||||||
"vent"
|
"vent"
|
||||||
)
|
)
|
||||||
extra_decals = null
|
extra_decals = null
|
||||||
|
door_anim_time = 0
|
||||||
|
|
||||||
/decl/closet_appearance/wall/emergency
|
/decl/closet_appearance/wall/emergency
|
||||||
color = COLOR_LIGHT_CYAN
|
color = COLOR_LIGHT_CYAN
|
||||||
@@ -1402,6 +1415,7 @@
|
|||||||
"vent"
|
"vent"
|
||||||
)
|
)
|
||||||
extra_decals = null
|
extra_decals = null
|
||||||
|
door_anim_time = 0
|
||||||
|
|
||||||
/decl/closet_appearance/wall_double/kitchen
|
/decl/closet_appearance/wall_double/kitchen
|
||||||
decals = null
|
decals = null
|
||||||
@@ -1431,6 +1445,7 @@
|
|||||||
decal_icon = 'icons/obj/closets/decals/cart.dmi'
|
decal_icon = 'icons/obj/closets/decals/cart.dmi'
|
||||||
decals = null
|
decals = null
|
||||||
extra_decals = null
|
extra_decals = null
|
||||||
|
door_anim_time = 0
|
||||||
|
|
||||||
/decl/closet_appearance/cart/trash
|
/decl/closet_appearance/cart/trash
|
||||||
color = COLOR_BOTTLE_GREEN
|
color = COLOR_BOTTLE_GREEN
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
seal_tool = /obj/item/weapon/tool/screwdriver
|
seal_tool = /obj/item/weapon/tool/screwdriver
|
||||||
breakout_sound = 'sound/weapons/tablehit1.ogg'
|
breakout_sound = 'sound/weapons/tablehit1.ogg'
|
||||||
closet_appearance = null // Special icon for us
|
closet_appearance = null // Special icon for us
|
||||||
door_anim_time = 0 //Unsupported
|
|
||||||
|
|
||||||
/* Graves */
|
/* Graves */
|
||||||
/obj/structure/closet/grave
|
/obj/structure/closet/grave
|
||||||
@@ -21,7 +20,6 @@
|
|||||||
max_closets = 1
|
max_closets = 1
|
||||||
opened = 1
|
opened = 1
|
||||||
closet_appearance = null // Special icon for us
|
closet_appearance = null // Special icon for us
|
||||||
door_anim_time = 0 //Unsupported
|
|
||||||
|
|
||||||
/obj/structure/closet/grave/attack_hand(mob/user as mob)
|
/obj/structure/closet/grave/attack_hand(mob/user as mob)
|
||||||
if(opened)
|
if(opened)
|
||||||
|
|||||||
@@ -2,4 +2,3 @@
|
|||||||
name = "critter crate"
|
name = "critter crate"
|
||||||
desc = "A crate which can sustain life for a while."
|
desc = "A crate which can sustain life for a while."
|
||||||
closet_appearance = /decl/closet_appearance/large_crate/critter
|
closet_appearance = /decl/closet_appearance/large_crate/critter
|
||||||
door_anim_time = 0 //Unsupported
|
|
||||||
@@ -13,7 +13,6 @@
|
|||||||
opened = 0
|
opened = 0
|
||||||
sealed = 0 //Don't touch this.
|
sealed = 0 //Don't touch this.
|
||||||
health = 100
|
health = 100
|
||||||
door_anim_time = 0 //Unsupported
|
|
||||||
|
|
||||||
/obj/structure/closet/secure_closet/egg/update_icon()
|
/obj/structure/closet/secure_closet/egg/update_icon()
|
||||||
if(opened)
|
if(opened)
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
desc = "Old will forever be in fashion."
|
desc = "Old will forever be in fashion."
|
||||||
icon = 'icons/obj/closets/bases/cabinet.dmi'
|
icon = 'icons/obj/closets/bases/cabinet.dmi'
|
||||||
closet_appearance = /decl/closet_appearance/cabinet
|
closet_appearance = /decl/closet_appearance/cabinet
|
||||||
door_anim_time = 0 //Unsupported
|
|
||||||
|
|
||||||
/obj/structure/closet/acloset
|
/obj/structure/closet/acloset
|
||||||
name = "strange closet"
|
name = "strange closet"
|
||||||
|
|||||||
@@ -47,6 +47,7 @@
|
|||||||
/obj/item/clothing/glasses/meson,
|
/obj/item/clothing/glasses/meson,
|
||||||
/obj/item/clothing/head/soft,
|
/obj/item/clothing/head/soft,
|
||||||
/obj/item/clothing/suit/storage/hooded/wintercoat/cargo,
|
/obj/item/clothing/suit/storage/hooded/wintercoat/cargo,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/cargo/qm,
|
||||||
/obj/item/clothing/shoes/boots/winter/supply)
|
/obj/item/clothing/shoes/boots/winter/supply)
|
||||||
|
|
||||||
/obj/structure/closet/secure_closet/quartermaster/Initialize()
|
/obj/structure/closet/secure_closet/quartermaster/Initialize()
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
/obj/item/device/t_scanner/upgraded,
|
/obj/item/device/t_scanner/upgraded,
|
||||||
/obj/item/taperoll/engineering,
|
/obj/item/taperoll/engineering,
|
||||||
/obj/item/clothing/suit/storage/hooded/wintercoat/engineering,
|
/obj/item/clothing/suit/storage/hooded/wintercoat/engineering,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/engineering/ce,
|
||||||
/obj/item/clothing/shoes/boots/winter/engineering,
|
/obj/item/clothing/shoes/boots/winter/engineering,
|
||||||
/obj/item/weapon/tank/emergency/oxygen/engi,
|
/obj/item/weapon/tank/emergency/oxygen/engi,
|
||||||
/obj/item/weapon/reagent_containers/spray/windowsealant, //VOREStation Add,
|
/obj/item/weapon/reagent_containers/spray/windowsealant, //VOREStation Add,
|
||||||
|
|||||||
@@ -103,6 +103,7 @@
|
|||||||
/obj/item/clothing/mask/gas,
|
/obj/item/clothing/mask/gas,
|
||||||
/obj/item/clothing/suit/storage/toggle/fr_jacket,
|
/obj/item/clothing/suit/storage/toggle/fr_jacket,
|
||||||
/obj/item/clothing/suit/storage/toggle/labcoat/emt,
|
/obj/item/clothing/suit/storage/toggle/labcoat/emt,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/medical/para,
|
||||||
/obj/item/device/radio/headset/headset_med/alt,
|
/obj/item/device/radio/headset/headset_med/alt,
|
||||||
/obj/item/weapon/cartridge/medical,
|
/obj/item/weapon/cartridge/medical,
|
||||||
/obj/item/weapon/storage/briefcase/inflatable,
|
/obj/item/weapon/storage/briefcase/inflatable,
|
||||||
@@ -137,6 +138,7 @@
|
|||||||
/obj/item/device/flash,
|
/obj/item/device/flash,
|
||||||
/obj/item/weapon/reagent_containers/hypospray/vial,
|
/obj/item/weapon/reagent_containers/hypospray/vial,
|
||||||
/obj/item/clothing/suit/storage/hooded/wintercoat/medical,
|
/obj/item/clothing/suit/storage/hooded/wintercoat/medical,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/medical/cmo,
|
||||||
/obj/item/clothing/shoes/boots/winter/medical,
|
/obj/item/clothing/shoes/boots/winter/medical,
|
||||||
/obj/item/weapon/storage/box/freezer,
|
/obj/item/weapon/storage/box/freezer,
|
||||||
/obj/item/clothing/mask/gas,
|
/obj/item/clothing/mask/gas,
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
/obj/item/clothing/under/rank/research_director/dress_rd,
|
/obj/item/clothing/under/rank/research_director/dress_rd,
|
||||||
/obj/item/clothing/suit/storage/toggle/labcoat,
|
/obj/item/clothing/suit/storage/toggle/labcoat,
|
||||||
/obj/item/clothing/suit/storage/toggle/labcoat/modern,
|
/obj/item/clothing/suit/storage/toggle/labcoat/modern,
|
||||||
|
/obj/item/clothing/suit/storage/toggle/labcoat/rd,
|
||||||
/obj/item/weapon/cartridge/rd,
|
/obj/item/weapon/cartridge/rd,
|
||||||
/obj/item/clothing/shoes/white,
|
/obj/item/clothing/shoes/white,
|
||||||
/obj/item/clothing/shoes/laceup/brown,
|
/obj/item/clothing/shoes/laceup/brown,
|
||||||
@@ -44,6 +45,7 @@
|
|||||||
/obj/item/clothing/mask/gas,
|
/obj/item/clothing/mask/gas,
|
||||||
/obj/item/device/flash,
|
/obj/item/device/flash,
|
||||||
/obj/item/clothing/suit/storage/hooded/wintercoat/science,
|
/obj/item/clothing/suit/storage/hooded/wintercoat/science,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/science/rd,
|
||||||
/obj/item/clothing/shoes/boots/winter/science,
|
/obj/item/clothing/shoes/boots/winter/science,
|
||||||
/obj/item/weapon/bluespace_harpoon) //VOREStation Add
|
/obj/item/weapon/bluespace_harpoon) //VOREStation Add
|
||||||
|
|
||||||
|
|||||||
@@ -60,7 +60,8 @@
|
|||||||
/obj/item/clothing/head/caphat/hop,
|
/obj/item/clothing/head/caphat/hop,
|
||||||
/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit,
|
/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit,
|
||||||
/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit/skirt,
|
/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit/skirt,
|
||||||
/obj/item/clothing/glasses/sunglasses)
|
/obj/item/clothing/glasses/sunglasses,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/hop)
|
||||||
|
|
||||||
|
|
||||||
/obj/structure/closet/secure_closet/hos
|
/obj/structure/closet/secure_closet/hos
|
||||||
@@ -100,6 +101,7 @@
|
|||||||
/obj/item/weapon/melee/telebaton,
|
/obj/item/weapon/melee/telebaton,
|
||||||
/obj/item/clothing/head/beret/sec/corporate/hos,
|
/obj/item/clothing/head/beret/sec/corporate/hos,
|
||||||
/obj/item/clothing/suit/storage/hooded/wintercoat/security,
|
/obj/item/clothing/suit/storage/hooded/wintercoat/security,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/security/hos,
|
||||||
/obj/item/clothing/shoes/boots/winter/security,
|
/obj/item/clothing/shoes/boots/winter/security,
|
||||||
/obj/item/device/flashlight/maglight,
|
/obj/item/device/flashlight/maglight,
|
||||||
/obj/item/clothing/mask/gas/half,
|
/obj/item/clothing/mask/gas/half,
|
||||||
@@ -313,4 +315,3 @@ GLOBAL_LIST_BOILERPLATE(all_brig_closets, /obj/structure/closet/secure_closet/br
|
|||||||
|
|
||||||
//too small to put a man in
|
//too small to put a man in
|
||||||
large = 0
|
large = 0
|
||||||
door_anim_time = 0 // Unsupported
|
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
/obj/item/clothing/accessory/holster/waist,
|
/obj/item/clothing/accessory/holster/waist,
|
||||||
/obj/item/clothing/head/beret/sec/corporate/hos,
|
/obj/item/clothing/head/beret/sec/corporate/hos,
|
||||||
/obj/item/clothing/suit/storage/hooded/wintercoat/security,
|
/obj/item/clothing/suit/storage/hooded/wintercoat/security,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/security/hos,
|
||||||
/obj/item/clothing/mask/gas/half)
|
/obj/item/clothing/mask/gas/half)
|
||||||
|
|
||||||
/obj/structure/closet/secure_closet/hos2
|
/obj/structure/closet/secure_closet/hos2
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
health = 0 //destroying the statue kills the mob within
|
health = 0 //destroying the statue kills the mob within
|
||||||
blocks_emissive = EMISSIVE_BLOCK_UNIQUE
|
blocks_emissive = EMISSIVE_BLOCK_UNIQUE
|
||||||
door_anim_time = 0 // Why is this a closet??
|
|
||||||
var/intialTox = 0 //these are here to keep the mob from taking damage from things that logically wouldn't affect a rock
|
var/intialTox = 0 //these are here to keep the mob from taking damage from things that logically wouldn't affect a rock
|
||||||
var/intialFire = 0 //it's a little sloppy I know but it was this or the GODMODE flag. Lesser of two evils.
|
var/intialFire = 0 //it's a little sloppy I know but it was this or the GODMODE flag. Lesser of two evils.
|
||||||
var/intialBrute = 0
|
var/intialBrute = 0
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
store_mobs = 0
|
store_mobs = 0
|
||||||
wall_mounted = 1
|
wall_mounted = 1
|
||||||
door_anim_time = 0 // Unsupported
|
|
||||||
|
|
||||||
//spawns 2 sets of breathmask, emergency oxy tank and crowbar
|
//spawns 2 sets of breathmask, emergency oxy tank and crowbar
|
||||||
|
|
||||||
@@ -92,7 +91,6 @@
|
|||||||
wall_mounted = 1
|
wall_mounted = 1
|
||||||
plane = TURF_PLANE
|
plane = TURF_PLANE
|
||||||
layer = ABOVE_TURF_LAYER
|
layer = ABOVE_TURF_LAYER
|
||||||
door_anim_time = 0 //Unsupported
|
|
||||||
|
|
||||||
/obj/structure/closet/walllocker_double/north
|
/obj/structure/closet/walllocker_double/north
|
||||||
pixel_y = 32
|
pixel_y = 32
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
closet_appearance = /decl/closet_appearance/crate
|
closet_appearance = /decl/closet_appearance/crate
|
||||||
climbable = TRUE
|
climbable = TRUE
|
||||||
dir = 4 //Spawn facing 'forward' by default.
|
dir = 4 //Spawn facing 'forward' by default.
|
||||||
door_anim_time = 0 //Unsupported until appropriate sprites are available
|
|
||||||
var/points_per_crate = 5
|
var/points_per_crate = 5
|
||||||
var/rigged = 0
|
var/rigged = 0
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
var/used = FALSE
|
var/used = FALSE
|
||||||
var/busy = FALSE // Don't spam ghosts by spamclicking.
|
var/busy = FALSE // Don't spam ghosts by spamclicking.
|
||||||
var/needscharger //For drone pods that want their pod to turn into a charger.
|
var/needscharger //For drone pods that want their pod to turn into a charger.
|
||||||
|
unacidable = TRUE
|
||||||
|
|
||||||
// Call this to get a ghost volunteer.
|
// Call this to get a ghost volunteer.
|
||||||
/obj/structure/ghost_pod/proc/trigger(var/alert, var/adminalert)
|
/obj/structure/ghost_pod/proc/trigger(var/alert, var/adminalert)
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ Loot piles can be depleted, if loot_depleted is turned on. Note that players wh
|
|||||||
icon_state = "randompile"
|
icon_state = "randompile"
|
||||||
density = FALSE
|
density = FALSE
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
|
|
||||||
var/list/icon_states_to_use = list() // List of icon states the pile can choose from on initialization. If empty or null, it will stay the initial icon_state.
|
var/list/icon_states_to_use = list() // List of icon states the pile can choose from on initialization. If empty or null, it will stay the initial icon_state.
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
var/obj/structure/m_tray/connected = null
|
var/obj/structure/m_tray/connected = null
|
||||||
var/list/occupants = list()
|
var/list/occupants = list()
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
|
|
||||||
/obj/structure/morgue/Destroy()
|
/obj/structure/morgue/Destroy()
|
||||||
if(connected)
|
if(connected)
|
||||||
|
|||||||
60
code/game/objects/structures/props/esoteric.dm
Normal file
60
code/game/objects/structures/props/esoteric.dm
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
/obj/structure/prop/esoteric
|
||||||
|
name = "some esoteric thing"
|
||||||
|
desc = "Perhaps it's of ritual significance?"
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
|
||||||
|
/obj/structure/prop/esoteric/nt_pedestal0_old
|
||||||
|
name = "pedestal"
|
||||||
|
desc = "A pedestal with a mysterious slot at its center."
|
||||||
|
icon_state = "nt_pedestal0_old"
|
||||||
|
|
||||||
|
/obj/structure/prop/esoteric/nt_pedestal1_old
|
||||||
|
name = "pedestal"
|
||||||
|
desc = "A pedestal with some kind of sword slotted securely in the center."
|
||||||
|
icon_state = "nt_pedestal1_old"
|
||||||
|
|
||||||
|
// eye of the protector from Eris
|
||||||
|
/obj/structure/prop/esoteric/eotp
|
||||||
|
icon = 'icons/obj/props/decor32x64.dmi'
|
||||||
|
icon_state = "eotp"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* off: Looks boring and off
|
||||||
|
* on: candles lit and stuff
|
||||||
|
* no_cruciform: No cruciform (the little triangle thing) inserted
|
||||||
|
* red_cruciform: Red light cruciform inserted
|
||||||
|
* green_cruciform: Green light cruciform inserted
|
||||||
|
* panel_open: The panel is open (wiring)
|
||||||
|
* panel_closed: The panel is closed
|
||||||
|
*/
|
||||||
|
// neotheology cruciform reader from Eris
|
||||||
|
/obj/structure/prop/esoteric/reader
|
||||||
|
name = "electronic altar"
|
||||||
|
desc = "It looks like you're meant to scan something here."
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
icon_state = "nt_reader_off"
|
||||||
|
|
||||||
|
/obj/structure/prop/esoteric/reader/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("off")
|
||||||
|
icon_state = "nt_reader_off"
|
||||||
|
if("on")
|
||||||
|
icon_state = "nt_reader_on"
|
||||||
|
if("no_cruciform")
|
||||||
|
cut_overlay("nt_reader_c_green")
|
||||||
|
cut_overlay("nt_reader_c_red")
|
||||||
|
if("red_cruciform")
|
||||||
|
cut_overlay("nt_reader_c_green")
|
||||||
|
cut_overlay("nt_reader_c_red")
|
||||||
|
add_overlay("nt_reader_c_red")
|
||||||
|
if("green_cruciform")
|
||||||
|
cut_overlay("nt_reader_c_red")
|
||||||
|
cut_overlay("nt_reader_c_green")
|
||||||
|
add_overlay("nt_reader_c_green")
|
||||||
|
if("panel_open")
|
||||||
|
cut_overlay("nt_reader_panel")
|
||||||
|
add_overlay("nt_reader_panel")
|
||||||
|
if("panel_closed")
|
||||||
|
cut_overlay("nt_reader_panel")
|
||||||
7
code/game/objects/structures/props/fences.dm
Normal file
7
code/game/objects/structures/props/fences.dm
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
// fences from TGMC
|
||||||
|
// You'll need to 'create instances from icon_states' in an editor to use these well
|
||||||
|
/obj/structure/prop/fence
|
||||||
|
name = "fence"
|
||||||
|
desc = "It's a fence! Not much else to say about it."
|
||||||
|
icon = 'icons/obj/props/decor_fences.dmi'
|
||||||
|
|
||||||
686
code/game/objects/structures/props/machines.dm
Normal file
686
code/game/objects/structures/props/machines.dm
Normal file
@@ -0,0 +1,686 @@
|
|||||||
|
/obj/structure/prop/machine
|
||||||
|
name = "doodad"
|
||||||
|
desc = "Some kind of machine."
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
|
||||||
|
//Eris Bluespace Beacon
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/bsb_off
|
||||||
|
name = "beacon"
|
||||||
|
icon_state = "bsb_off"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/bsb_on
|
||||||
|
name = "beacon"
|
||||||
|
icon_state = "bsb_on"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/biosyphon
|
||||||
|
icon_state = "biosyphon"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/von_krabin
|
||||||
|
icon_state = "von_krabin"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/last_shelter
|
||||||
|
icon_state = "last_shelter"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/complicator
|
||||||
|
icon_state = "complicator"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/random_radio
|
||||||
|
name = "radio"
|
||||||
|
icon_state = "random_radio"
|
||||||
|
|
||||||
|
// vatgrowing thing from /tg/
|
||||||
|
/obj/structure/prop/machine/green_egg
|
||||||
|
icon_state = "gel_cocoon"
|
||||||
|
|
||||||
|
// gravity generator from Eris
|
||||||
|
/obj/structure/prop/machine/gravygen
|
||||||
|
icon = 'icons/obj/props/decor64x64.dmi'
|
||||||
|
icon_state = "bigdice"
|
||||||
|
bound_width = 64
|
||||||
|
bound_height = 64
|
||||||
|
|
||||||
|
// dna vault from /tg/
|
||||||
|
/obj/structure/prop/dna_vault
|
||||||
|
icon = 'icons/obj/props/decor96x96.dmi'
|
||||||
|
icon_state = "vault"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* panel_open: The panel is opened
|
||||||
|
* panel_closed: The panel is closed
|
||||||
|
*/
|
||||||
|
// neotheology cloning biocan from Eris
|
||||||
|
/obj/structure/prop/machine/nt_biocan
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
icon_state = "nt_biocan"
|
||||||
|
|
||||||
|
/obj/structure/prop/nt_biocan/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("panel_open")
|
||||||
|
cut_overlay("nt_biocan_panel")
|
||||||
|
add_overlay("nt_biocan_panel")
|
||||||
|
if("panel_closed")
|
||||||
|
cut_overlay("nt_biocan_panel")
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* blue, red, orange, yellow, green, purple: Set that color
|
||||||
|
* damaged: add damage overlay
|
||||||
|
* undamaged: remove damage overlay
|
||||||
|
* broken: become damaged
|
||||||
|
* plain: undamaged white version, otherwise use a color
|
||||||
|
*/
|
||||||
|
// dominator console from /tg/
|
||||||
|
/obj/structure/prop/dominator
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
icon_state = "dominator"
|
||||||
|
|
||||||
|
/obj/structure/prop/dominator/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("blue")
|
||||||
|
icon_state = "dominator-blue"
|
||||||
|
if("red")
|
||||||
|
icon_state = "dominator-red"
|
||||||
|
if("orange")
|
||||||
|
icon_state = "dominator-orange"
|
||||||
|
if("yellow")
|
||||||
|
icon_state = "dominator-yellow"
|
||||||
|
if("green")
|
||||||
|
icon_state = "dominator-green"
|
||||||
|
if("purple")
|
||||||
|
icon_state = "dominator-purple"
|
||||||
|
if("damaged")
|
||||||
|
add_overlay("dom_damage")
|
||||||
|
if("undamaged")
|
||||||
|
cut_overlay("dom_damage")
|
||||||
|
if("broken")
|
||||||
|
icon_state = "dominator-broken"
|
||||||
|
if("plain")
|
||||||
|
icon_state = "dominator"
|
||||||
|
|
||||||
|
/obj/structure/prop/dominator/blue
|
||||||
|
icon_state = "dominator-blue"
|
||||||
|
/obj/structure/prop/dominator/red
|
||||||
|
icon_state = "dominator-red"
|
||||||
|
/obj/structure/prop/dominator/orange
|
||||||
|
icon_state = "dominator-orange"
|
||||||
|
/obj/structure/prop/dominator/yellow
|
||||||
|
icon_state = "dominator-yellow"
|
||||||
|
/obj/structure/prop/dominator/green
|
||||||
|
icon_state = "dominator-green"
|
||||||
|
/obj/structure/prop/dominator/purple
|
||||||
|
icon_state = "dominator-purple"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* off: Default, boring
|
||||||
|
* on: Pumping or something
|
||||||
|
*/
|
||||||
|
// some neotheology thing from Eris
|
||||||
|
/obj/structure/prop/machine/solifier
|
||||||
|
icon_state = "nt_solidifier"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/solifier/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("off")
|
||||||
|
icon_state = "nt_solidifier"
|
||||||
|
if("on")
|
||||||
|
icon_state = "nt_solidifier_on"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/solifier/starts_on
|
||||||
|
icon_state = "nt_solidifier_on"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* off: Boring, round
|
||||||
|
* on: Spinny glowy
|
||||||
|
*/
|
||||||
|
// conduit of soul from Eris
|
||||||
|
/obj/structure/prop/machine/conduit
|
||||||
|
icon_state = "conduit_off"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/conduit/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("on")
|
||||||
|
icon_state = "conduit_spin"
|
||||||
|
flick("conduit_starting", src)
|
||||||
|
if("off")
|
||||||
|
icon_state = "conduit_off"
|
||||||
|
flick("conduit_stopping", src)
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/conduit/starts_on
|
||||||
|
icon_state = "conduit_spin"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* on: Doing some kinda worky thing
|
||||||
|
* off: Not doing much of anything
|
||||||
|
* empty: No blue crystal thingy
|
||||||
|
* loaded: off but without the animation
|
||||||
|
*/
|
||||||
|
// some kinda NT thing from Eris
|
||||||
|
/obj/structure/prop/machine/core
|
||||||
|
icon_state = "core_inactive"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/core/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("on")
|
||||||
|
icon_state = "core_active"
|
||||||
|
flick("core_warmup", src)
|
||||||
|
if("off")
|
||||||
|
icon_state = "core_inactive"
|
||||||
|
flick("core_shutdown", src)
|
||||||
|
if("empty")
|
||||||
|
icon_state = "core_empty"
|
||||||
|
if("loaded")
|
||||||
|
icon_state = "core_inactive"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/core/starts_on
|
||||||
|
icon_state = "core_active"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* down: In the ground, glowing
|
||||||
|
* up: Out of the ground, open
|
||||||
|
*/
|
||||||
|
// experimental science destructor from /tg/
|
||||||
|
/obj/structure/prop/machine/tube
|
||||||
|
icon = 'icons/obj/props/decor32x64.dmi'
|
||||||
|
icon_state = "tube_open"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/tube/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("down")
|
||||||
|
icon_state = "tube_on"
|
||||||
|
flick("tube_down", src)
|
||||||
|
if("up")
|
||||||
|
icon_state = "tube_open"
|
||||||
|
flick("tube_up", src)
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/tube/starts_down
|
||||||
|
icon_state = "tube_on"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* off: Boring, static
|
||||||
|
* on: Turny and blinky
|
||||||
|
*/
|
||||||
|
// experimental science destructor from /tg/
|
||||||
|
/obj/structure/prop/machine/comm_tower
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
icon = 'icons/obj/props/decor96x96.dmi'
|
||||||
|
icon_state = "comm_tower"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/comm_tower/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("on")
|
||||||
|
icon_state = "comm_tower_on"
|
||||||
|
if("off")
|
||||||
|
icon_state = "comm_tower"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/comm_tower/starts_on
|
||||||
|
icon_state = "comm_tower_on"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* off: Not doing much
|
||||||
|
* on: Stamping mysterious substances
|
||||||
|
*/
|
||||||
|
// sheetizer from /tg/
|
||||||
|
/obj/structure/prop/machine/stamper
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
icon_state = "stamper"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/stamper/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("off")
|
||||||
|
cut_overlays()
|
||||||
|
if("on")
|
||||||
|
add_overlay("stamper_proc")
|
||||||
|
add_overlay("stamper_but")
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/stamper/starts_on
|
||||||
|
icon_state = "stamper_on"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/stamper/starts_on/Initialize()
|
||||||
|
add_overlay("stamper_proc")
|
||||||
|
add_overlay("stamper_but")
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* whole: Not doing much
|
||||||
|
* broken: Stamping mysterious substances
|
||||||
|
*/
|
||||||
|
// alien autopsy thing from TGMC
|
||||||
|
/obj/structure/prop/machine/alien_tank
|
||||||
|
icon_state = "tank_larva"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/alien_tank/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("whole")
|
||||||
|
icon_state = "tank_larva"
|
||||||
|
if("broken")
|
||||||
|
icon_state = "tank_broken"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/alien_tank/starts_broken
|
||||||
|
icon_state = "tank_broken"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* idle: The default look
|
||||||
|
* active: Glowy lights underneath
|
||||||
|
* panel_open: Opened panel (wiring)
|
||||||
|
* panel_closed: Closed panel
|
||||||
|
*/
|
||||||
|
// neotheology optable from Eris
|
||||||
|
/obj/structure/prop/machine/nt_optable
|
||||||
|
icon_state = "nt_optable-idle"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/nt_optable/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("idle")
|
||||||
|
icon_state = "nt_optable-idle"
|
||||||
|
if("active")
|
||||||
|
icon_state = "nt_optable-active"
|
||||||
|
if("panel_open")
|
||||||
|
cut_overlay("nt_optable_panel")
|
||||||
|
add_overlay("nt_optable_panel")
|
||||||
|
if("panel_closed")
|
||||||
|
cut_overlay("nt_optable_panel")
|
||||||
|
|
||||||
|
/obj/structure/prop/nt_optable/starts_active
|
||||||
|
icon_state = "nt_optable-active"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* idle: The default look
|
||||||
|
* active: Glowy lights in the center
|
||||||
|
* panel_open: Opened panel (wiring)
|
||||||
|
* panel_closed: Closed panel
|
||||||
|
*/
|
||||||
|
// trade beacon from Eris
|
||||||
|
/obj/structure/prop/machine/tradebeacon
|
||||||
|
icon_state = "tradebeacon"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/tradebeacon/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("idle")
|
||||||
|
icon_state = "tradebeacon"
|
||||||
|
if("active")
|
||||||
|
icon_state = "tradebeacon_active"
|
||||||
|
if("panel_open")
|
||||||
|
cut_overlay("tradebeacon_panel")
|
||||||
|
add_overlay("tradebeacon_panel")
|
||||||
|
if("panel_closed")
|
||||||
|
cut_overlay("tradebeacon_panel")
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/tradebeacon/starts_active
|
||||||
|
icon_state = "tradebeacon_active"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* idle: The default look
|
||||||
|
* active: Glowy lights in the center
|
||||||
|
* panel_open: Opened panel (wiring)
|
||||||
|
* panel_closed: Closed panel
|
||||||
|
*/
|
||||||
|
// another trade beacon from Eris
|
||||||
|
/obj/structure/prop/machine/tradebeacon2
|
||||||
|
icon_state = "tradebeacon"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/tradebeacon2/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("idle")
|
||||||
|
icon_state = "tradebeacon_sending"
|
||||||
|
if("active")
|
||||||
|
icon_state = "tradebeacon_sending_active"
|
||||||
|
if("panel_open")
|
||||||
|
cut_overlay("tradebeacon_sending_panel")
|
||||||
|
add_overlay("tradebeacon_sending_panel")
|
||||||
|
if("panel_closed")
|
||||||
|
cut_overlay("tradebeacon_sending_panel")
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/tradebeacon2/starts_active
|
||||||
|
icon_state = "tradebeacon_sending_active"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* off: Non-spinny
|
||||||
|
* on: Spinny and floaty
|
||||||
|
*/
|
||||||
|
// neotheology decorative(?) obelisk from Eris
|
||||||
|
/obj/structure/prop/machine/nt_obelisk
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
icon_state = "nt_obelisk"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/nt_obelisk/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("off")
|
||||||
|
icon_state = "nt_obelisk"
|
||||||
|
if("on")
|
||||||
|
icon_state = "nt_obelisk_on"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/nt_obelisk/starts_on
|
||||||
|
icon_state = "nt_obelisk_on"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* off: Inert
|
||||||
|
* on: Hand destroying machinery
|
||||||
|
*/
|
||||||
|
// 'sorter' from Eris
|
||||||
|
/obj/structure/prop/machine/sorter
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
icon_state = "sorter"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/sorter/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("off")
|
||||||
|
icon_state = "sorter"
|
||||||
|
if("on")
|
||||||
|
icon_state = "sorter-process"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/sorter/starts_on
|
||||||
|
icon_state = "sorter-process"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* off: Inert
|
||||||
|
* on: Hand destroying machinery
|
||||||
|
*/
|
||||||
|
// 'smelter' from Eris
|
||||||
|
/obj/structure/prop/machine/smelter
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
icon_state = "smelter"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/smelter/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("off")
|
||||||
|
icon_state = "smelter"
|
||||||
|
if("on")
|
||||||
|
icon_state = "smelter-process"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/smelter/starts_on
|
||||||
|
icon_state = "smelter-process"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* idle: Not doing anything, with yellow template exposed
|
||||||
|
* work: busy doing work
|
||||||
|
* pause: paused work
|
||||||
|
*/
|
||||||
|
// cruciform forge from Eris
|
||||||
|
/obj/structure/prop/machine/nt_cruciforge
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
icon_state = "nt_cruciforge"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/nt_cruciforge/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("idle")
|
||||||
|
icon_state = "nt_cruciforge"
|
||||||
|
flick("nt_cruciforge_finish", src) // 8ds
|
||||||
|
if("work")
|
||||||
|
icon_state = "nt_cruciforge_work"
|
||||||
|
flick("nt_cruciforge_start", src) // 8ds
|
||||||
|
if("pause")
|
||||||
|
icon_state = "nt_cruciforge_pause"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/nt_cruciforge/starts_working
|
||||||
|
icon_state = "nt_cruciforge_work"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* off: Default, boring
|
||||||
|
* on: Showing a display/powered up
|
||||||
|
*/
|
||||||
|
// A console from TGMC
|
||||||
|
/obj/structure/prop/machine/tgmc_console1
|
||||||
|
name = "console"
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
icon_state = "tgmc_console1"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/tgmc_console1/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("off")
|
||||||
|
icon_state = "tgmc_console1"
|
||||||
|
if("on")
|
||||||
|
icon_state = "tgmc_console1_on"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/tgmc_console1/starts_on
|
||||||
|
icon_state = "tgmc_console1_on"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* off: Default, boring
|
||||||
|
* on: Showing a display/powered up
|
||||||
|
*/
|
||||||
|
// A console from TGMC
|
||||||
|
/obj/structure/prop/machine/tgmc_console2
|
||||||
|
name = "console"
|
||||||
|
icon_state = "tgmc_console2"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/tgmc_console2/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("off")
|
||||||
|
icon_state = "tgmc_console2"
|
||||||
|
if("on")
|
||||||
|
icon_state = "tgmc_console2_on"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/tgmc_console2/starts_on
|
||||||
|
icon_state = "tgmc_console2_on"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* off: Default, boring
|
||||||
|
* on: Showing a display/powered up
|
||||||
|
*/
|
||||||
|
// A console from TGMC
|
||||||
|
/obj/structure/prop/machine/tgmc_console3
|
||||||
|
name = "console"
|
||||||
|
icon_state = "tgmc_console3"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/tgmc_console3/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("off")
|
||||||
|
icon_state = "tgmc_console3"
|
||||||
|
if("on")
|
||||||
|
icon_state = "tgmc_console3_on"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/tgmc_console3/starts_on
|
||||||
|
icon_state = "tgmc_console3_on"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* off: Default, boring
|
||||||
|
* on: Showing a display/powered up
|
||||||
|
*/
|
||||||
|
// A console from TGMC
|
||||||
|
/obj/structure/prop/machine/tgmc_console4
|
||||||
|
name = "console"
|
||||||
|
icon_state = "tgmc_console4"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/tgmc_console4/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("off")
|
||||||
|
icon_state = "tgmc_console4"
|
||||||
|
if("on")
|
||||||
|
icon_state = "tgmc_console4_on"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/tgmc_console4/starts_on
|
||||||
|
icon_state = "tgmc_console4_on"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* off: Default, boring
|
||||||
|
* on: Showing a display/powered up
|
||||||
|
*/
|
||||||
|
// A console from TGMC
|
||||||
|
/obj/structure/prop/machine/tgmc_console5
|
||||||
|
name = "console"
|
||||||
|
icon_state = "tgmc_console5"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/tgmc_console5/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("off")
|
||||||
|
icon_state = "tgmc_console5"
|
||||||
|
if("on")
|
||||||
|
icon_state = "tgmc_console5_on"
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/tgmc_console5/starts_on
|
||||||
|
icon_state = "tgmc_console5_on"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This one is a bit more fancy than others. Anything in the contents (PLEASE LIMIT TO ONE THING)
|
||||||
|
* will show up inside it! Also if you map in an item on it, it will grab that at mapload and start
|
||||||
|
* in the 'closed, full of fluid' state, so you can put a body on it or whatever.
|
||||||
|
*
|
||||||
|
* As an aghost you can also dragdrop something into it (you have to be ghosted next to it)
|
||||||
|
*
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* open: Open, no fluid or anything. At the end the contents are ejected.
|
||||||
|
* closed: Closed, full of liquid
|
||||||
|
* panel_open: Shows panel
|
||||||
|
* panel_closed: Unshows panel
|
||||||
|
*/
|
||||||
|
// neotheology cloning pod from Eris
|
||||||
|
/obj/structure/prop/machine/nt_pod
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
icon = 'icons/obj/props/decor32x64.dmi'
|
||||||
|
icon_state = "nt_pod_mappreview"
|
||||||
|
bound_height = 64
|
||||||
|
|
||||||
|
var/obj/effect/overlay/vis/outside
|
||||||
|
var/obj/effect/overlay/vis/door
|
||||||
|
var/obj/effect/overlay/vis/fluid
|
||||||
|
|
||||||
|
var/contents_vis_flags = NONE
|
||||||
|
var/contents_original_pixel_y = 0
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/nt_pod/Initialize(mapload)
|
||||||
|
// Our non-map-preview state
|
||||||
|
icon_state = "nt_pod"
|
||||||
|
|
||||||
|
// Alpha mask to make sure things don't sneak out
|
||||||
|
var/obj/effect/overlay/vis/mask = new
|
||||||
|
mask.icon = icon
|
||||||
|
mask.icon_state = "nt_pod_mask"
|
||||||
|
mask.render_target = "*nt_podmask[REF(src)]"
|
||||||
|
mask.vis_flags = VIS_INHERIT_ID
|
||||||
|
vis_contents += mask
|
||||||
|
|
||||||
|
outside = add_vis_overlay(icon, "nt_pod_over", ABOVE_MOB_LAYER, MOB_PLANE, unique = TRUE)
|
||||||
|
door = add_vis_overlay(icon, "nothing", ABOVE_MOB_LAYER, MOB_PLANE, unique = TRUE)
|
||||||
|
fluid = add_vis_overlay(icon, "nothing", ABOVE_MOB_LAYER, MOB_PLANE, unique = TRUE)
|
||||||
|
|
||||||
|
// Gather up our friends
|
||||||
|
if(mapload)
|
||||||
|
var/atom/movable/AM = locate() in loc
|
||||||
|
AM?.forceMove(src)
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/nt_pod/Entered(atom/movable/mover)
|
||||||
|
abduct(mover)
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/nt_pod/proc/abduct(var/atom/movable/AM)
|
||||||
|
// Save old settings
|
||||||
|
contents_vis_flags = AM.vis_flags
|
||||||
|
contents_original_pixel_y = AM.pixel_y
|
||||||
|
|
||||||
|
// Arrange
|
||||||
|
AM.add_filter("podmask", 1, alpha_mask_filter(render_source = "nt_podmask[REF(src)]", flags = MASK_INVERSE))
|
||||||
|
AM.pixel_y = 12
|
||||||
|
AM.vis_flags = VIS_INHERIT_ID|VIS_INHERIT_DIR
|
||||||
|
vis_contents += AM
|
||||||
|
if(ismob(AM))
|
||||||
|
var/mob/M = AM
|
||||||
|
buckle_mob(M, TRUE, FALSE)
|
||||||
|
|
||||||
|
// TRAP THEM
|
||||||
|
change_state("closed")
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/nt_pod/proc/unduct(var/atom/movable/AM)
|
||||||
|
// Geddout
|
||||||
|
vis_contents -= AM
|
||||||
|
if(ismob(AM))
|
||||||
|
var/mob/M = AM
|
||||||
|
unbuckle_mob(M, TRUE)
|
||||||
|
// Cleanup
|
||||||
|
AM.remove_filter("podmask")
|
||||||
|
AM.forceMove(drop_location())
|
||||||
|
AM.vis_flags = contents_vis_flags
|
||||||
|
AM.pixel_y = contents_original_pixel_y
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/nt_pod/MouseDrop_T(var/atom/movable/AM, var/mob/user)
|
||||||
|
if(contents.len)
|
||||||
|
return
|
||||||
|
if(!ismovable(AM))
|
||||||
|
return
|
||||||
|
if(!user.client?.holder)
|
||||||
|
return
|
||||||
|
|
||||||
|
AM.forceMove(src)
|
||||||
|
|
||||||
|
/obj/structure/prop/machine/nt_pod/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("open")
|
||||||
|
cut_overlay("nt_pod_top_on")
|
||||||
|
cut_overlay("nt_pod_under")
|
||||||
|
|
||||||
|
// Fluid drains
|
||||||
|
fluid.icon_state = "nothing"
|
||||||
|
flick("nt_pod_emptying", fluid) // 8ds
|
||||||
|
sleep(8)
|
||||||
|
|
||||||
|
// Door opens
|
||||||
|
door.icon_state = "nothing"
|
||||||
|
flick("nt_pod_opening", door) // 9ds
|
||||||
|
sleep(9)
|
||||||
|
|
||||||
|
// GET OUT
|
||||||
|
outside.layer = BELOW_MOB_LAYER
|
||||||
|
if(contents.len)
|
||||||
|
for(var/atom/movable/AM as anything in contents)
|
||||||
|
unduct(AM)
|
||||||
|
|
||||||
|
if("closed")
|
||||||
|
outside.layer = ABOVE_MOB_LAYER
|
||||||
|
cut_overlay("nt_pod_top_on")
|
||||||
|
add_overlay("nt_pod_top_on")
|
||||||
|
add_overlay("nt_pod_under")
|
||||||
|
|
||||||
|
// Door closes
|
||||||
|
door.icon_state = "nt_pod_glass"
|
||||||
|
flick("nt_pod_closing", door) // 9ds
|
||||||
|
sleep(9)
|
||||||
|
// Fluid fills
|
||||||
|
fluid.icon_state = "nt_pod_liquid"
|
||||||
|
flick("nt_pod_filling", fluid) // 8ds
|
||||||
|
|
||||||
|
if("panel_open")
|
||||||
|
cut_overlay("nt_pod_panel")
|
||||||
|
add_overlay("nt_pod_panel")
|
||||||
|
if("panel_closed")
|
||||||
|
cut_overlay("nt_pod_panel")
|
||||||
@@ -1,19 +1,20 @@
|
|||||||
/**
|
/**
|
||||||
|
* Decorative items for PoIs etc.
|
||||||
* These are generally sprites ported from other servers, which don't have any unique code.
|
* These are generally sprites ported from other servers, which don't have any unique code.
|
||||||
* They can be used by mappers for decorating their maps. They're mostly here so people who aren't
|
* They can be used by mappers for decorating their maps. They're mostly here so people who aren't
|
||||||
* rummaging around in the sprites can be aware of some neat sprites they can use.
|
* rummaging around in the sprites can be aware of some neat sprites they can use.
|
||||||
*
|
*
|
||||||
* Obviously you can swipe the sprites for real structures and add code, but please don't add any code
|
* Obviously you can swipe the sprites for real structures and add code, but please don't add any code
|
||||||
* (beyond decorative things like maybe light) directly to these types or this file!
|
* (beyond decorative things like maybe light) directly to these types or this file!
|
||||||
* Take the icon and state and make your own type under /obj/structure.
|
* Take the icon and state and make your own type under /obj/structure.
|
||||||
*
|
*
|
||||||
* Some of these do have a SMIDGE of code to allow a mapper to twirl them through states/animations without
|
* Some of these do have a SMIDGE of code to allow a mapper to twirl them through states/animations without
|
||||||
* much effort, but beyond 'visuals logic', I'd rather keep all the logic out of here.
|
* much effort, but beyond 'visuals logic', I'd rather keep all the logic out of here.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/obj/structure/prop
|
/obj/structure/prop
|
||||||
name = "mysterious structure"
|
name = "mysterious structure"
|
||||||
desc = "A mysterious structure!"
|
desc = "You're not sure what this is."
|
||||||
icon = 'icons/obj/structures.dmi'
|
icon = 'icons/obj/structures.dmi'
|
||||||
icon_state = "safe"
|
icon_state = "safe"
|
||||||
density = TRUE
|
density = TRUE
|
||||||
@@ -30,8 +31,6 @@
|
|||||||
else
|
else
|
||||||
to_chat(user, interaction_message)
|
to_chat(user, interaction_message)
|
||||||
|
|
||||||
/// Changes the visual state of the machine between icon_states or overlays or whatever
|
|
||||||
/// the machine needs to look like it's in a different state.
|
|
||||||
/obj/structure/prop/proc/change_state(state)
|
/obj/structure/prop/proc/change_state(state)
|
||||||
SHOULD_CALL_PARENT(TRUE)
|
SHOULD_CALL_PARENT(TRUE)
|
||||||
src.state = state
|
src.state = state
|
||||||
@@ -41,694 +40,30 @@
|
|||||||
if(var_name == "state")
|
if(var_name == "state")
|
||||||
change_state(var_value)
|
change_state(var_value)
|
||||||
|
|
||||||
// bluespace beacon from Eris
|
|
||||||
/obj/structure/prop/bsb_off
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "bsb_off"
|
|
||||||
/obj/structure/prop/bsb_on
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "bsb_on"
|
|
||||||
|
|
||||||
// bluespace crystal from Eris
|
//Misc stuff that fits no category
|
||||||
/obj/structure/prop/bsc
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "bsc"
|
|
||||||
/obj/structure/prop/bsc_dust
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "bsc_dust"
|
|
||||||
|
|
||||||
// same as state names, from faction items on Eris
|
// ship memorial from TGMC
|
||||||
/obj/structure/prop/biosyphon
|
/obj/structure/prop/memorial
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
name = "engraved wall"
|
||||||
icon_state = "biosyphon"
|
desc = "A finely engraved list on dark stone."
|
||||||
/obj/structure/prop/von_krabin
|
icon = 'icons/obj/props/decor64x64.dmi'
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
icon_state = "ship_memorial"
|
||||||
icon_state = "von_krabin"
|
|
||||||
/obj/structure/prop/last_shelter
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "last_shelter"
|
|
||||||
/obj/structure/prop/complicator
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "complicator"
|
|
||||||
/obj/structure/prop/random_radio
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "random_radio"
|
|
||||||
/obj/structure/prop/nt_pedestal0_old
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "nt_pedestal0_old"
|
|
||||||
/obj/structure/prop/nt_pedestal1_old
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "nt_pedestal1_old"
|
|
||||||
|
|
||||||
// statues from Eris
|
|
||||||
/obj/structure/prop/statue1
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "artwork_statue_1"
|
|
||||||
/obj/structure/prop/statue2
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "artwork_statue_2"
|
|
||||||
/obj/structure/prop/statue3
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "artwork_statue_3"
|
|
||||||
/obj/structure/prop/statue4
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "artwork_statue_4"
|
|
||||||
/obj/structure/prop/statue5
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "artwork_statue_5"
|
|
||||||
/obj/structure/prop/statue6
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "artwork_statue_6"
|
|
||||||
|
|
||||||
// ship mast from TGMC
|
|
||||||
/obj/structure/prop/stump_plaque
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "stump"
|
|
||||||
|
|
||||||
// vatgrowing thing from /tg/
|
|
||||||
/obj/structure/prop/green_egg
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "gel_cocoon"
|
|
||||||
|
|
||||||
// eye of the protector from Eris
|
|
||||||
/obj/structure/prop/eotp
|
|
||||||
icon = 'icons/obj/structures/decor32x64.dmi'
|
|
||||||
icon_state = "eotp"
|
|
||||||
|
|
||||||
// gravity generator from Eris
|
|
||||||
/obj/structure/prop/gravygen
|
|
||||||
icon = 'icons/obj/structures/decor64x64.dmi'
|
|
||||||
icon_state = "bigdice"
|
|
||||||
bound_width = 64
|
bound_width = 64
|
||||||
bound_height = 64
|
|
||||||
|
|
||||||
// dna vault from /tg/
|
|
||||||
/obj/structure/prop/dna_vault
|
|
||||||
icon = 'icons/obj/structures/decor96x96.dmi'
|
|
||||||
icon_state = "vault"
|
|
||||||
|
|
||||||
// fences from TGMC
|
|
||||||
// You'll need to 'create instances from icon_states' in an editor to use these well
|
|
||||||
/obj/structure/prop/fence
|
|
||||||
name = "fence"
|
|
||||||
desc = "It's a fence! Not much else to say about it."
|
|
||||||
icon = 'icons/obj/structures/decor_fences.dmi'
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
Notes on change_state
|
||||||
|
*
|
||||||
* tl;dr "You can varedit 'state' on these to the things in the comments below to get cool animations"
|
* tl;dr "You can varedit 'state' on these to the things in the comments below to get cool animations"
|
||||||
*
|
*
|
||||||
* These items have some logic to handle some fun animations on them. Mappers can call the 'change_state(state)' proc
|
* These items have some logic to handle some fun animations on them. Mappers can call the 'change_state(state)' proc
|
||||||
* while referring to the comments here for what states they can use. You'll notice some crazy overlay handling,
|
* while referring to the comments here for what states they can use. You'll notice some crazy overlay handling,
|
||||||
* and that's because I don't want to add any vars to these mappers think they can fiddle with, which requires
|
* and that's because I don't want to add any vars to these mappers think they can fiddle with, which requires
|
||||||
* more logic than I'm willing to do at the moment. So we get crazy cut/add operations instead.
|
* more logic than I'm willing to do at the moment. So we get crazy cut/add operations instead.
|
||||||
*
|
*
|
||||||
* There's also a VV helper so if you varedit 'state' to these during the game, you can get that to work.
|
* There's also a VV helper so if you varedit 'state' to these during the game, you can get that to work.
|
||||||
*
|
*
|
||||||
* Like, I don't want to add a state machine to decorative objects. You can if you want.
|
* Like, I don't want to add a state machine to decorative objects. You can if you want.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* off: Looks boring and off
|
|
||||||
* on: candles lit and stuff
|
|
||||||
* no_cruciform: No cruciform (the little triangle thing) inserted
|
|
||||||
* red_cruciform: Red light cruciform inserted
|
|
||||||
* green_cruciform: Green light cruciform inserted
|
|
||||||
* panel_open: The panel is open (wiring)
|
|
||||||
* panel_closed: The panel is closed
|
|
||||||
*/
|
|
||||||
// neotheology cruciform reader from Eris
|
|
||||||
/obj/structure/prop/nt_reader
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "nt_reader_off"
|
|
||||||
|
|
||||||
/obj/structure/prop/nt_reader/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("off")
|
|
||||||
icon_state = "nt_reader_off"
|
|
||||||
if("on")
|
|
||||||
icon_state = "nt_reader_on"
|
|
||||||
if("no_cruciform")
|
|
||||||
cut_overlay("nt_reader_c_green")
|
|
||||||
cut_overlay("nt_reader_c_red")
|
|
||||||
if("red_cruciform")
|
|
||||||
cut_overlay("nt_reader_c_green")
|
|
||||||
cut_overlay("nt_reader_c_red")
|
|
||||||
add_overlay("nt_reader_c_red")
|
|
||||||
if("green_cruciform")
|
|
||||||
cut_overlay("nt_reader_c_red")
|
|
||||||
cut_overlay("nt_reader_c_green")
|
|
||||||
add_overlay("nt_reader_c_green")
|
|
||||||
if("panel_open")
|
|
||||||
cut_overlay("nt_reader_panel")
|
|
||||||
add_overlay("nt_reader_panel")
|
|
||||||
if("panel_closed")
|
|
||||||
cut_overlay("nt_reader_panel")
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* panel_open: The panel is opened
|
|
||||||
* panel_closed: The panel is closed
|
|
||||||
*/
|
|
||||||
// neotheology cloning biocan from Eris
|
|
||||||
/obj/structure/prop/nt_biocan
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "nt_biocan"
|
|
||||||
|
|
||||||
/obj/structure/prop/nt_biocan/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("panel_open")
|
|
||||||
cut_overlay("nt_biocan_panel")
|
|
||||||
add_overlay("nt_biocan_panel")
|
|
||||||
if("panel_closed")
|
|
||||||
cut_overlay("nt_biocan_panel")
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* blue, red, orange, yellow, green, purple: Set that color
|
|
||||||
* damaged: add damage overlay
|
|
||||||
* undamaged: remove damage overlay
|
|
||||||
* broken: become damaged
|
|
||||||
* plain: undamaged white version, otherwise use a color
|
|
||||||
*/
|
|
||||||
// dominator console from /tg/
|
|
||||||
/obj/structure/prop/dominator
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "dominator"
|
|
||||||
|
|
||||||
/obj/structure/prop/dominator/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("blue")
|
|
||||||
icon_state = "dominator-blue"
|
|
||||||
if("red")
|
|
||||||
icon_state = "dominator-red"
|
|
||||||
if("orange")
|
|
||||||
icon_state = "dominator-orange"
|
|
||||||
if("yellow")
|
|
||||||
icon_state = "dominator-yellow"
|
|
||||||
if("green")
|
|
||||||
icon_state = "dominator-green"
|
|
||||||
if("purple")
|
|
||||||
icon_state = "dominator-purple"
|
|
||||||
if("damaged")
|
|
||||||
add_overlay("dom_damage")
|
|
||||||
if("undamaged")
|
|
||||||
cut_overlay("dom_damage")
|
|
||||||
if("broken")
|
|
||||||
icon_state = "dominator-broken"
|
|
||||||
if("plain")
|
|
||||||
icon_state = "dominator"
|
|
||||||
|
|
||||||
/obj/structure/prop/dominator/blue
|
|
||||||
icon_state = "dominator-blue"
|
|
||||||
/obj/structure/prop/dominator/red
|
|
||||||
icon_state = "dominator-red"
|
|
||||||
/obj/structure/prop/dominator/orange
|
|
||||||
icon_state = "dominator-orange"
|
|
||||||
/obj/structure/prop/dominator/yellow
|
|
||||||
icon_state = "dominator-yellow"
|
|
||||||
/obj/structure/prop/dominator/green
|
|
||||||
icon_state = "dominator-green"
|
|
||||||
/obj/structure/prop/dominator/purple
|
|
||||||
icon_state = "dominator-purple"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* off: Default, boring
|
|
||||||
* on: Pumping or something
|
|
||||||
*/
|
|
||||||
// some neotheology thing from Eris
|
|
||||||
/obj/structure/prop/nt_solifier
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "nt_solidifier"
|
|
||||||
|
|
||||||
/obj/structure/prop/nt_solifier/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("off")
|
|
||||||
icon_state = "nt_solidifier"
|
|
||||||
if("on")
|
|
||||||
icon_state = "nt_solidifier_on"
|
|
||||||
|
|
||||||
/obj/structure/prop/nt_solifier/starts_on
|
|
||||||
icon_state = "nt_solidifier_on"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* off: Boring, round
|
|
||||||
* on: Spinny glowy
|
|
||||||
*/
|
|
||||||
// conduit of soul from Eris
|
|
||||||
/obj/structure/prop/conduit
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "conduit_off"
|
|
||||||
|
|
||||||
/obj/structure/prop/conduit/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("on")
|
|
||||||
icon_state = "conduit_spin"
|
|
||||||
flick("conduit_starting", src)
|
|
||||||
if("off")
|
|
||||||
icon_state = "conduit_off"
|
|
||||||
flick("conduit_stopping", src)
|
|
||||||
|
|
||||||
/obj/structure/prop/conduit/starts_on
|
|
||||||
icon_state = "conduit_spin"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* on: Doing some kinda worky thing
|
|
||||||
* off: Not doing much of anything
|
|
||||||
* empty: No blue crystal thingy
|
|
||||||
* loaded: off but without the animation
|
|
||||||
*/
|
|
||||||
// some kinda NT thing from Eris
|
|
||||||
/obj/structure/prop/core
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "core_inactive"
|
|
||||||
|
|
||||||
/obj/structure/prop/core/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("on")
|
|
||||||
icon_state = "core_active"
|
|
||||||
flick("core_warmup", src)
|
|
||||||
if("off")
|
|
||||||
icon_state = "core_inactive"
|
|
||||||
flick("core_shutdown", src)
|
|
||||||
if("empty")
|
|
||||||
icon_state = "core_empty"
|
|
||||||
if("loaded")
|
|
||||||
icon_state = "core_inactive"
|
|
||||||
|
|
||||||
/obj/structure/prop/core/starts_on
|
|
||||||
icon_state = "core_active"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* down: In the ground, glowing
|
|
||||||
* up: Out of the ground, open
|
|
||||||
*/
|
|
||||||
// experimental science destructor from /tg/
|
|
||||||
/obj/structure/prop/tube
|
|
||||||
icon = 'icons/obj/structures/decor32x64.dmi'
|
|
||||||
icon_state = "tube_open"
|
|
||||||
|
|
||||||
/obj/structure/prop/tube/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("down")
|
|
||||||
icon_state = "tube_on"
|
|
||||||
flick("tube_down", src)
|
|
||||||
if("up")
|
|
||||||
icon_state = "tube_open"
|
|
||||||
flick("tube_up", src)
|
|
||||||
|
|
||||||
/obj/structure/prop/tube/starts_down
|
|
||||||
icon_state = "tube_on"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* off: Boring, static
|
|
||||||
* on: Turny and blinky
|
|
||||||
*/
|
|
||||||
// experimental science destructor from /tg/
|
|
||||||
/obj/structure/prop/comm_tower
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon = 'icons/obj/structures/decor96x96.dmi'
|
|
||||||
icon_state = "comm_tower"
|
|
||||||
|
|
||||||
/obj/structure/prop/comm_tower/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("on")
|
|
||||||
icon_state = "comm_tower_on"
|
|
||||||
if("off")
|
|
||||||
icon_state = "comm_tower"
|
|
||||||
|
|
||||||
/obj/structure/prop/comm_tower/starts_on
|
|
||||||
icon_state = "comm_tower_on"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* off: Not doing much
|
|
||||||
* on: Stamping mysterious substances
|
|
||||||
*/
|
|
||||||
// sheetizer from /tg/
|
|
||||||
/obj/structure/prop/stamper
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "stamper"
|
|
||||||
|
|
||||||
/obj/structure/prop/stamper/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("off")
|
|
||||||
cut_overlays()
|
|
||||||
if("on")
|
|
||||||
add_overlay("stamper_proc")
|
|
||||||
add_overlay("stamper_but")
|
|
||||||
|
|
||||||
/obj/structure/prop/stamper/starts_on
|
|
||||||
icon_state = "stamper_on"
|
|
||||||
|
|
||||||
/obj/structure/prop/stamper/starts_on/Initialize()
|
|
||||||
add_overlay("stamper_proc")
|
|
||||||
add_overlay("stamper_but")
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* whole: Not doing much
|
|
||||||
* broken: Stamping mysterious substances
|
|
||||||
*/
|
|
||||||
// alien autopsy thing from TGMC
|
|
||||||
/obj/structure/prop/alien_tank
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "tank_larva"
|
|
||||||
|
|
||||||
/obj/structure/prop/alien_tank/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("whole")
|
|
||||||
icon_state = "tank_larva"
|
|
||||||
if("broken")
|
|
||||||
icon_state = "tank_broken"
|
|
||||||
|
|
||||||
/obj/structure/prop/alien_tank/starts_broken
|
|
||||||
icon_state = "tank_broken"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* idle: The default look
|
|
||||||
* active: Glowy lights underneath
|
|
||||||
* panel_open: Opened panel (wiring)
|
|
||||||
* panel_closed: Closed panel
|
|
||||||
*/
|
|
||||||
// neotheology optable from Eris
|
|
||||||
/obj/structure/prop/nt_optable
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "nt_optable-idle"
|
|
||||||
|
|
||||||
/obj/structure/prop/nt_optable/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("idle")
|
|
||||||
icon_state = "nt_optable-idle"
|
|
||||||
if("active")
|
|
||||||
icon_state = "nt_optable-active"
|
|
||||||
if("panel_open")
|
|
||||||
cut_overlay("nt_optable_panel")
|
|
||||||
add_overlay("nt_optable_panel")
|
|
||||||
if("panel_closed")
|
|
||||||
cut_overlay("nt_optable_panel")
|
|
||||||
|
|
||||||
/obj/structure/prop/nt_optable/starts_active
|
|
||||||
icon_state = "nt_optable-active"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* idle: The default look
|
|
||||||
* active: Glowy lights in the center
|
|
||||||
* panel_open: Opened panel (wiring)
|
|
||||||
* panel_closed: Closed panel
|
|
||||||
*/
|
|
||||||
// trade beacon from Eris
|
|
||||||
/obj/structure/prop/tradebeacon
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "tradebeacon"
|
|
||||||
|
|
||||||
/obj/structure/prop/tradebeacon/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("idle")
|
|
||||||
icon_state = "tradebeacon"
|
|
||||||
if("active")
|
|
||||||
icon_state = "tradebeacon_active"
|
|
||||||
if("panel_open")
|
|
||||||
cut_overlay("tradebeacon_panel")
|
|
||||||
add_overlay("tradebeacon_panel")
|
|
||||||
if("panel_closed")
|
|
||||||
cut_overlay("tradebeacon_panel")
|
|
||||||
|
|
||||||
/obj/structure/prop/tradebeacon/starts_active
|
|
||||||
icon_state = "tradebeacon_active"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* idle: The default look
|
|
||||||
* active: Glowy lights in the center
|
|
||||||
* panel_open: Opened panel (wiring)
|
|
||||||
* panel_closed: Closed panel
|
|
||||||
*/
|
|
||||||
// another trade beacon from Eris
|
|
||||||
/obj/structure/prop/tradebeacon2
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "tradebeacon"
|
|
||||||
|
|
||||||
/obj/structure/prop/tradebeacon2/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("idle")
|
|
||||||
icon_state = "tradebeacon_sending"
|
|
||||||
if("active")
|
|
||||||
icon_state = "tradebeacon_sending_active"
|
|
||||||
if("panel_open")
|
|
||||||
cut_overlay("tradebeacon_sending_panel")
|
|
||||||
add_overlay("tradebeacon_sending_panel")
|
|
||||||
if("panel_closed")
|
|
||||||
cut_overlay("tradebeacon_sending_panel")
|
|
||||||
|
|
||||||
/obj/structure/prop/tradebeacon2/starts_active
|
|
||||||
icon_state = "tradebeacon_sending_active"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* off: Non-spinny
|
|
||||||
* on: Spinny and floaty
|
|
||||||
*/
|
|
||||||
// neotheology decorative(?) obelisk from Eris
|
|
||||||
/obj/structure/prop/nt_obelisk
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "nt_obelisk"
|
|
||||||
|
|
||||||
/obj/structure/prop/nt_obelisk/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("off")
|
|
||||||
icon_state = "nt_obelisk"
|
|
||||||
if("on")
|
|
||||||
icon_state = "nt_obelisk_on"
|
|
||||||
|
|
||||||
/obj/structure/prop/nt_obelisk/starts_on
|
|
||||||
icon_state = "nt_obelisk_on"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* off: Inert
|
|
||||||
* on: Hand destroying machinery
|
|
||||||
*/
|
|
||||||
// 'sorter' from Eris
|
|
||||||
/obj/structure/prop/sorter
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "sorter"
|
|
||||||
|
|
||||||
/obj/structure/prop/sorter/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("off")
|
|
||||||
icon_state = "sorter"
|
|
||||||
if("on")
|
|
||||||
icon_state = "sorter-process"
|
|
||||||
|
|
||||||
/obj/structure/prop/sorter/starts_on
|
|
||||||
icon_state = "sorter-process"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* off: Inert
|
|
||||||
* on: Hand destroying machinery
|
|
||||||
*/
|
|
||||||
// 'smelter' from Eris
|
|
||||||
/obj/structure/prop/smelter
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "smelter"
|
|
||||||
|
|
||||||
/obj/structure/prop/smelter/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("off")
|
|
||||||
icon_state = "smelter"
|
|
||||||
if("on")
|
|
||||||
icon_state = "smelter-process"
|
|
||||||
|
|
||||||
/obj/structure/prop/smelter/starts_on
|
|
||||||
icon_state = "smelter-process"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* idle: Not doing anything, with yellow template exposed
|
|
||||||
* work: busy doing work
|
|
||||||
* pause: paused work
|
|
||||||
*/
|
|
||||||
// cruciform forge from Eris
|
|
||||||
/obj/structure/prop/nt_cruciforge
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon_state = "nt_cruciforge"
|
|
||||||
|
|
||||||
/obj/structure/prop/nt_cruciforge/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("idle")
|
|
||||||
icon_state = "nt_cruciforge"
|
|
||||||
flick("nt_cruciforge_finish", src) // 8ds
|
|
||||||
if("work")
|
|
||||||
icon_state = "nt_cruciforge_work"
|
|
||||||
flick("nt_cruciforge_start", src) // 8ds
|
|
||||||
if("pause")
|
|
||||||
icon_state = "nt_cruciforge_pause"
|
|
||||||
|
|
||||||
/obj/structure/prop/nt_cruciforge/starts_working
|
|
||||||
icon_state = "nt_cruciforge_work"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This one is a bit more fancy than others. Anything in the contents (PLEASE LIMIT TO ONE THING)
|
|
||||||
* will show up inside it! Also if you map in an item on it, it will grab that at mapload and start
|
|
||||||
* in the 'closed, full of fluid' state, so you can put a body on it or whatever.
|
|
||||||
*
|
|
||||||
* As an aghost you can also dragdrop something into it (you have to be ghosted next to it)
|
|
||||||
*
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
* open: Open, no fluid or anything. At the end the contents are ejected.
|
|
||||||
* closed: Closed, full of liquid
|
|
||||||
* panel_open: Shows panel
|
|
||||||
* panel_closed: Unshows panel
|
|
||||||
*/
|
|
||||||
// neotheology cloning pod from Eris
|
|
||||||
/obj/structure/prop/nt_pod
|
|
||||||
icon = 'icons/obj/structures/decor.dmi'
|
|
||||||
icon = 'icons/obj/structures/decor32x64.dmi'
|
|
||||||
icon_state = "nt_pod_mappreview"
|
|
||||||
bound_height = 64
|
|
||||||
|
|
||||||
var/obj/effect/overlay/vis/outside
|
|
||||||
var/obj/effect/overlay/vis/door
|
|
||||||
var/obj/effect/overlay/vis/fluid
|
|
||||||
|
|
||||||
var/contents_vis_flags = NONE
|
|
||||||
var/contents_original_pixel_y = 0
|
|
||||||
|
|
||||||
/obj/structure/prop/nt_pod/Initialize(mapload)
|
|
||||||
// Our non-map-preview state
|
|
||||||
icon_state = "nt_pod"
|
|
||||||
|
|
||||||
// Alpha mask to make sure things don't sneak out
|
|
||||||
var/obj/effect/overlay/vis/mask = new
|
|
||||||
mask.icon = icon
|
|
||||||
mask.icon_state = "nt_pod_mask"
|
|
||||||
mask.render_target = "*nt_podmask[REF(src)]"
|
|
||||||
mask.vis_flags = VIS_INHERIT_ID
|
|
||||||
vis_contents += mask
|
|
||||||
|
|
||||||
outside = add_vis_overlay(icon, "nt_pod_over", ABOVE_MOB_LAYER, MOB_PLANE, unique = TRUE)
|
|
||||||
door = add_vis_overlay(icon, "nothing", ABOVE_MOB_LAYER, MOB_PLANE, unique = TRUE)
|
|
||||||
fluid = add_vis_overlay(icon, "nothing", ABOVE_MOB_LAYER, MOB_PLANE, unique = TRUE)
|
|
||||||
|
|
||||||
// Gather up our friends
|
|
||||||
if(mapload)
|
|
||||||
var/atom/movable/AM = locate() in loc
|
|
||||||
AM?.forceMove(src)
|
|
||||||
|
|
||||||
/obj/structure/prop/nt_pod/Entered(atom/movable/mover)
|
|
||||||
abduct(mover)
|
|
||||||
|
|
||||||
/obj/structure/prop/nt_pod/proc/abduct(var/atom/movable/AM)
|
|
||||||
// Save old settings
|
|
||||||
contents_vis_flags = AM.vis_flags
|
|
||||||
contents_original_pixel_y = AM.pixel_y
|
|
||||||
|
|
||||||
// Arrange
|
|
||||||
AM.add_filter("podmask", 1, alpha_mask_filter(render_source = "nt_podmask[REF(src)]", flags = MASK_INVERSE))
|
|
||||||
AM.pixel_y = 12
|
|
||||||
AM.vis_flags = VIS_INHERIT_ID|VIS_INHERIT_DIR
|
|
||||||
vis_contents += AM
|
|
||||||
if(ismob(AM))
|
|
||||||
var/mob/M = AM
|
|
||||||
buckle_mob(M, TRUE, FALSE)
|
|
||||||
|
|
||||||
// TRAP THEM
|
|
||||||
change_state("closed")
|
|
||||||
|
|
||||||
/obj/structure/prop/nt_pod/proc/unduct(var/atom/movable/AM)
|
|
||||||
// Geddout
|
|
||||||
vis_contents -= AM
|
|
||||||
if(ismob(AM))
|
|
||||||
var/mob/M = AM
|
|
||||||
unbuckle_mob(M, TRUE)
|
|
||||||
// Cleanup
|
|
||||||
AM.remove_filter("podmask")
|
|
||||||
AM.forceMove(drop_location())
|
|
||||||
AM.vis_flags = contents_vis_flags
|
|
||||||
AM.pixel_y = contents_original_pixel_y
|
|
||||||
|
|
||||||
/obj/structure/prop/nt_pod/MouseDrop_T(var/atom/movable/AM, var/mob/user)
|
|
||||||
if(contents.len)
|
|
||||||
return
|
|
||||||
if(!ismovable(AM))
|
|
||||||
return
|
|
||||||
if(!user.client?.holder)
|
|
||||||
return
|
|
||||||
|
|
||||||
AM.forceMove(src)
|
|
||||||
|
|
||||||
/obj/structure/prop/nt_pod/change_state(state)
|
|
||||||
. = ..()
|
|
||||||
switch(state)
|
|
||||||
if("open")
|
|
||||||
cut_overlay("nt_pod_top_on")
|
|
||||||
cut_overlay("nt_pod_under")
|
|
||||||
|
|
||||||
// Fluid drains
|
|
||||||
fluid.icon_state = "nothing"
|
|
||||||
flick("nt_pod_emptying", fluid) // 8ds
|
|
||||||
sleep(8)
|
|
||||||
|
|
||||||
// Door opens
|
|
||||||
door.icon_state = "nothing"
|
|
||||||
flick("nt_pod_opening", door) // 9ds
|
|
||||||
sleep(9)
|
|
||||||
|
|
||||||
// GET OUT
|
|
||||||
outside.layer = BELOW_MOB_LAYER
|
|
||||||
if(contents.len)
|
|
||||||
for(var/atom/movable/AM as anything in contents)
|
|
||||||
unduct(AM)
|
|
||||||
|
|
||||||
if("closed")
|
|
||||||
outside.layer = ABOVE_MOB_LAYER
|
|
||||||
cut_overlay("nt_pod_top_on")
|
|
||||||
add_overlay("nt_pod_top_on")
|
|
||||||
add_overlay("nt_pod_under")
|
|
||||||
|
|
||||||
// Door closes
|
|
||||||
door.icon_state = "nt_pod_glass"
|
|
||||||
flick("nt_pod_closing", door) // 9ds
|
|
||||||
sleep(9)
|
|
||||||
// Fluid fills
|
|
||||||
fluid.icon_state = "nt_pod_liquid"
|
|
||||||
flick("nt_pod_filling", fluid) // 8ds
|
|
||||||
|
|
||||||
if("panel_open")
|
|
||||||
cut_overlay("nt_pod_panel")
|
|
||||||
add_overlay("nt_pod_panel")
|
|
||||||
if("panel_closed")
|
|
||||||
cut_overlay("nt_pod_panel")
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Possible 'state' options for change_state(state) are:
|
|
||||||
*/
|
|
||||||
@@ -38,4 +38,15 @@
|
|||||||
density = FALSE
|
density = FALSE
|
||||||
|
|
||||||
/obj/structure/prop/rock/small/wateralt
|
/obj/structure/prop/rock/small/wateralt
|
||||||
icon_state = "waterrocks2"
|
icon_state = "waterrocks2"
|
||||||
|
|
||||||
|
// bluespace crystal from Eris
|
||||||
|
/obj/structure/prop/rock/crystal
|
||||||
|
name = "crystal"
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
icon_state = "bsc"
|
||||||
|
|
||||||
|
/obj/structure/prop/rock/crystal_dust
|
||||||
|
name = "crystal dust"
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
icon_state = "bsc_dust"
|
||||||
65
code/game/objects/structures/props/statue.dm
Normal file
65
code/game/objects/structures/props/statue.dm
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
//Eris statues
|
||||||
|
|
||||||
|
/obj/structure/prop/statue
|
||||||
|
name = "statue"
|
||||||
|
desc = "It's art!"
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
icon_state = "artwork_statue"
|
||||||
|
|
||||||
|
/obj/structure/prop/statue/statue1
|
||||||
|
icon_state = "artwork_statue_1"
|
||||||
|
|
||||||
|
/obj/structure/prop/statue/statue2
|
||||||
|
icon_state = "artwork_statue_2"
|
||||||
|
|
||||||
|
/obj/structure/prop/statue/statue3
|
||||||
|
icon_state = "artwork_statue_3"
|
||||||
|
|
||||||
|
/obj/structure/prop/statue/statue4
|
||||||
|
icon_state = "artwork_statue_4"
|
||||||
|
|
||||||
|
/obj/structure/prop/statue/statue5
|
||||||
|
icon_state = "artwork_statue_5"
|
||||||
|
|
||||||
|
//TGMC Ship Mast
|
||||||
|
|
||||||
|
/obj/structure/prop/statue/stump_plaque
|
||||||
|
name = "commemorative stump"
|
||||||
|
desc = "A wooden stump adorned with a little plaque."
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
icon_state = "stump"
|
||||||
|
|
||||||
|
//World Server statues
|
||||||
|
|
||||||
|
/obj/structure/prop/statue
|
||||||
|
name = "statue"
|
||||||
|
desc = "A statue."
|
||||||
|
icon = 'icons/obj/props/decor32x64.dmi'
|
||||||
|
icon_state = "venus"
|
||||||
|
|
||||||
|
/obj/structure/prop/statue/lion
|
||||||
|
icon_state = "lion"
|
||||||
|
|
||||||
|
/obj/structure/prop/statue/angel
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
icon_state = "angel"
|
||||||
|
|
||||||
|
/obj/structure/prop/statue/phoron
|
||||||
|
name = "phoronic cascade"
|
||||||
|
desc = "A sculpture made of pure phoron. It is covered in a lacquer that prevents erosion and renders it fireproof. It's safe. Probably."
|
||||||
|
icon_state = "phoronic"
|
||||||
|
layer = ABOVE_WINDOW_LAYER
|
||||||
|
interaction_message = "<span class = 'notice'>Cool to touch and unbelievable smooth. You can almost see your reflection in it.</span>"
|
||||||
|
|
||||||
|
/obj/structure/prop/statue/phoron/New()
|
||||||
|
set_light(2, 3, "#cc66ff")
|
||||||
|
|
||||||
|
/obj/structure/prop/statue/pillar
|
||||||
|
name = "pillar"
|
||||||
|
desc = "A pillar."
|
||||||
|
icon_state = "pillar"
|
||||||
|
|
||||||
|
/obj/structure/prop/statue/pillar/dark
|
||||||
|
name = "pillar"
|
||||||
|
desc = "A dark pillar."
|
||||||
|
icon_state = "dark_pillar"
|
||||||
167
code/game/objects/structures/props/warfare.dm
Normal file
167
code/game/objects/structures/props/warfare.dm
Normal file
@@ -0,0 +1,167 @@
|
|||||||
|
/obj/structure/prop/war
|
||||||
|
name = "military hardware"
|
||||||
|
desc = "What is it good for?"
|
||||||
|
icon = 'icons/obj/props/decor.dmi'
|
||||||
|
|
||||||
|
// warheads from TGMC
|
||||||
|
/obj/structure/prop/war/warhead1
|
||||||
|
name = "nuclear warhead"
|
||||||
|
icon_state = "ob_warhead_1"
|
||||||
|
|
||||||
|
/obj/structure/prop/war/warhead2
|
||||||
|
name = "incindiary warhead"
|
||||||
|
icon_state = "ob_warhead_2"
|
||||||
|
|
||||||
|
/obj/structure/prop/war/warhead3
|
||||||
|
name = "bluespace warhead"
|
||||||
|
icon_state = "ob_warhead_3"
|
||||||
|
|
||||||
|
/obj/structure/prop/war/warhead4
|
||||||
|
name = "phoron warhead"
|
||||||
|
icon_state = "ob_warhead_4"
|
||||||
|
|
||||||
|
// minirocket pod from TGMC
|
||||||
|
/obj/structure/prop/war/minirocket_pod
|
||||||
|
name = "rocket pod"
|
||||||
|
icon_state = "minirocket_pod"
|
||||||
|
|
||||||
|
// sentry console from TGMC
|
||||||
|
/obj/structure/prop/war/sentry_control
|
||||||
|
name = "portable sentry gun"
|
||||||
|
desc = "Needs a dispenser."
|
||||||
|
icon_state = "tgmc_sentry"
|
||||||
|
|
||||||
|
// various weapons from TGMC
|
||||||
|
/obj/structure/prop/war/tgmc_missile
|
||||||
|
name = "missile"
|
||||||
|
desc = "It seems to be some sort of spacecraft-tier ordinance."
|
||||||
|
icon = 'icons/obj/props/decor64x64.dmi'
|
||||||
|
icon_state = "single"
|
||||||
|
bound_width = 64
|
||||||
|
|
||||||
|
/obj/structure/prop/war/tgmc_missile/double
|
||||||
|
icon_state = "widowmaker"
|
||||||
|
|
||||||
|
/obj/structure/prop/war/tgmc_missile/banshee
|
||||||
|
icon_state = "banshee"
|
||||||
|
|
||||||
|
/obj/structure/prop/war/tgmc_missile/keeper
|
||||||
|
icon_state = "keeper"
|
||||||
|
|
||||||
|
/obj/structure/prop/war/tgmc_missile/fatty
|
||||||
|
icon_state = "fatty"
|
||||||
|
|
||||||
|
/obj/structure/prop/war/tgmc_missile/napalm
|
||||||
|
icon_state = "napalm"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* empty, single, banshee, keeper, fatty, napalm
|
||||||
|
*/
|
||||||
|
// ship weapons from TGMC
|
||||||
|
/obj/structure/prop/war/tgmc_missile_rack
|
||||||
|
name = "missile launcher"
|
||||||
|
desc = "Some sort of spacecraft-tier missile weapon."
|
||||||
|
icon = 'icons/obj/props/decor64x64.dmi'
|
||||||
|
icon_state = "rocket_pod"
|
||||||
|
bound_height = 64
|
||||||
|
|
||||||
|
/obj/structure/prop/war/tgmc_missile_rack/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("empty")
|
||||||
|
icon_state = "rocket_pod"
|
||||||
|
if("single")
|
||||||
|
icon_state = "rocket_pod_loaded"
|
||||||
|
if("banshee")
|
||||||
|
icon_state = "rocket_pod_loadedb"
|
||||||
|
if("keeper")
|
||||||
|
icon_state = "rocket_pod_loadedk"
|
||||||
|
if("fatty")
|
||||||
|
icon_state = "rocket_pod_loadedf"
|
||||||
|
if("napalm")
|
||||||
|
icon_state = "rocket_pod_loadedn"
|
||||||
|
|
||||||
|
/obj/structure/prop/war/tgmc_missile_rack/single
|
||||||
|
icon_state = "rocket_pod_loaded"
|
||||||
|
/obj/structure/prop/war/tgmc_missile_rack/banshee
|
||||||
|
icon_state = "rocket_pod_loadedb"
|
||||||
|
/obj/structure/prop/war/tgmc_missile_rack/keeper
|
||||||
|
icon_state = "rocket_pod_loadedk"
|
||||||
|
/obj/structure/prop/war/tgmc_missile_rack/fatty
|
||||||
|
icon_state = "rocket_pod_loadedf"
|
||||||
|
/obj/structure/prop/war/tgmc_missile_rack/napalm
|
||||||
|
icon_state = "rocket_pod_loadedn"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* empty, loaded
|
||||||
|
*/
|
||||||
|
// ship weapons from TGMC
|
||||||
|
/obj/structure/prop/war/tgmc_minirockets
|
||||||
|
name = "rocket pod"
|
||||||
|
desc = "Some sort of spacecraft-tier rocket weapon."
|
||||||
|
icon = 'icons/obj/props/decor64x64.dmi'
|
||||||
|
icon_state = "minirocket_pod"
|
||||||
|
bound_height = 64
|
||||||
|
|
||||||
|
/obj/structure/prop/war/tgmc_minirockets/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("empty")
|
||||||
|
icon_state = "minirocket_pod"
|
||||||
|
if("loaded")
|
||||||
|
icon_state = "minirocket_pod_loaded"
|
||||||
|
|
||||||
|
/obj/structure/prop/war/tgmc_minirockets/loaded
|
||||||
|
icon_state = "minirocket_pod_loaded"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* empty, loaded
|
||||||
|
*/
|
||||||
|
// ship weapons from TGMC
|
||||||
|
/obj/structure/prop/war/tgmc_laser
|
||||||
|
name = "laser cannon"
|
||||||
|
desc = "Some sort of spacecraft-tier energy weapon."
|
||||||
|
icon = 'icons/obj/props/decor64x64.dmi'
|
||||||
|
icon_state = "laser_beam"
|
||||||
|
bound_height = 64
|
||||||
|
|
||||||
|
/obj/structure/prop/war/tgmc_laser/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("empty")
|
||||||
|
icon_state = "laser_beam"
|
||||||
|
if("loaded")
|
||||||
|
icon_state = "laser_beam_loaded"
|
||||||
|
|
||||||
|
/obj/structure/prop/war/tgmc_laser/loaded
|
||||||
|
icon_state = "laser_beam_loaded"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible 'state' options for change_state(state) are:
|
||||||
|
* empty, loaded, loadedempty
|
||||||
|
*/
|
||||||
|
// ship weapons from TGMC
|
||||||
|
/obj/structure/prop/war/tgmc_30mm
|
||||||
|
name = "30mm cannon"
|
||||||
|
desc = "Some sort of spacecraft-tier rotary cannon weapon."
|
||||||
|
icon = 'icons/obj/props/decor64x64.dmi'
|
||||||
|
icon_state = "30mm_cannon"
|
||||||
|
bound_height = 64
|
||||||
|
|
||||||
|
/obj/structure/prop/war/tgmc_30mm/change_state(state)
|
||||||
|
. = ..()
|
||||||
|
switch(state)
|
||||||
|
if("empty")
|
||||||
|
icon_state = "30mm_cannon"
|
||||||
|
if("loaded")
|
||||||
|
icon_state = "30mm_cannon_loaded1"
|
||||||
|
if("loadedempty")
|
||||||
|
icon_state = "30mm_cannon_loaded0"
|
||||||
|
|
||||||
|
/obj/structure/prop/war/tgmc_30mm/loaded
|
||||||
|
icon_state = "30mm_cannon_loaded1"
|
||||||
|
/obj/structure/prop/war/tgmc_30mm/loadedempty
|
||||||
|
icon_state = "30mm_cannon_loaded0"
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
icon = 'icons/obj/storage_vr.dmi' //VOREStation Edit
|
icon = 'icons/obj/storage_vr.dmi' //VOREStation Edit
|
||||||
icon_state = "critteropen"
|
icon_state = "critteropen"
|
||||||
density = TRUE
|
density = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
|
|
||||||
var/mob/living/simple_mob/contained
|
var/mob/living/simple_mob/contained
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
icon = 'icons/mob/alien.dmi'
|
icon = 'icons/mob/alien.dmi'
|
||||||
icon_state = "nest"
|
icon_state = "nest"
|
||||||
var/health = 100
|
var/health = 100
|
||||||
|
unacidable = TRUE
|
||||||
|
|
||||||
/obj/structure/bed/nest/update_icon()
|
/obj/structure/bed/nest/update_icon()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
/obj/structure/shuttle
|
/obj/structure/shuttle
|
||||||
name = "shuttle"
|
name = "shuttle"
|
||||||
icon = 'icons/turf/shuttle_parts.dmi'
|
icon = 'icons/turf/shuttle_parts.dmi'
|
||||||
|
unacidable = TRUE
|
||||||
|
|
||||||
/obj/structure/shuttle/window
|
/obj/structure/shuttle/window
|
||||||
name = "shuttle window"
|
name = "shuttle window"
|
||||||
|
|||||||
@@ -213,7 +213,7 @@ var/list/flooring_types
|
|||||||
desc = "Gritty and unpleasant."
|
desc = "Gritty and unpleasant."
|
||||||
icon = 'icons/turf/flooring/asteroid.dmi'
|
icon = 'icons/turf/flooring/asteroid.dmi'
|
||||||
icon_base = "asteroid"
|
icon_base = "asteroid"
|
||||||
flags = TURF_REMOVE_SHOVEL
|
flags = TURF_REMOVE_SHOVEL | TURF_ACID_IMMUNE
|
||||||
build_type = null
|
build_type = null
|
||||||
footstep_sounds = list("human" = list(
|
footstep_sounds = list("human" = list(
|
||||||
'sound/effects/footstep/asteroid1.ogg',
|
'sound/effects/footstep/asteroid1.ogg',
|
||||||
@@ -554,7 +554,7 @@ var/list/flooring_types
|
|||||||
icon = 'icons/turf/outdoors.dmi'
|
icon = 'icons/turf/outdoors.dmi'
|
||||||
icon_base = "lava"
|
icon_base = "lava"
|
||||||
is_plating = TRUE
|
is_plating = TRUE
|
||||||
flags = 0
|
flags = TURF_ACID_IMMUNE
|
||||||
footstep_sounds = list("human" = list(
|
footstep_sounds = list("human" = list(
|
||||||
'sound/effects/footstep/lava1.ogg',
|
'sound/effects/footstep/lava1.ogg',
|
||||||
'sound/effects/footstep/lava2.ogg',
|
'sound/effects/footstep/lava2.ogg',
|
||||||
|
|||||||
@@ -76,6 +76,7 @@
|
|||||||
icon = 'icons/turf/shuttle_white.dmi'
|
icon = 'icons/turf/shuttle_white.dmi'
|
||||||
thermal_conductivity = 0.05
|
thermal_conductivity = 0.05
|
||||||
heat_capacity = 0
|
heat_capacity = 0
|
||||||
|
flags = TURF_ACID_IMMUNE
|
||||||
|
|
||||||
var/obj/landed_holder/landed_holder
|
var/obj/landed_holder/landed_holder
|
||||||
var/interior_corner = 0
|
var/interior_corner = 0
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
can_build_into_floor = TRUE
|
can_build_into_floor = TRUE
|
||||||
can_dirty = FALSE
|
can_dirty = FALSE
|
||||||
initial_flooring = /decl/flooring/lava // Defining this in case someone DOES step on lava and survive. Somehow.
|
initial_flooring = /decl/flooring/lava // Defining this in case someone DOES step on lava and survive. Somehow.
|
||||||
|
flags = TURF_ACID_IMMUNE
|
||||||
|
|
||||||
/turf/simulated/floor/lava/outdoors
|
/turf/simulated/floor/lava/outdoors
|
||||||
outdoors = OUTDOORS_YES
|
outdoors = OUTDOORS_YES
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
edge_blending_priority = -1
|
edge_blending_priority = -1
|
||||||
movement_cost = 4
|
movement_cost = 4
|
||||||
outdoors = OUTDOORS_YES
|
outdoors = OUTDOORS_YES
|
||||||
|
flags = TURF_ACID_IMMUNE
|
||||||
|
|
||||||
layer = WATER_FLOOR_LAYER
|
layer = WATER_FLOOR_LAYER
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
icon_state = "default"
|
icon_state = "default"
|
||||||
dynamic_lighting = 0
|
dynamic_lighting = 0
|
||||||
plane = SPACE_PLANE
|
plane = SPACE_PLANE
|
||||||
|
flags = TURF_ACID_IMMUNE
|
||||||
temperature = T20C
|
temperature = T20C
|
||||||
thermal_conductivity = OPEN_HEAT_TRANSFER_COEFFICIENT
|
thermal_conductivity = OPEN_HEAT_TRANSFER_COEFFICIENT
|
||||||
can_build_into_floor = TRUE
|
can_build_into_floor = TRUE
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
oxygen = MOLES_O2STANDARD
|
oxygen = MOLES_O2STANDARD
|
||||||
nitrogen = MOLES_N2STANDARD
|
nitrogen = MOLES_N2STANDARD
|
||||||
var/skip_init = TRUE // Don't call down the chain, apparently for performance when loading maps at runtime.
|
var/skip_init = TRUE // Don't call down the chain, apparently for performance when loading maps at runtime.
|
||||||
|
flags = TURF_ACID_IMMUNE
|
||||||
|
|
||||||
/turf/unsimulated/Initialize(mapload)
|
/turf/unsimulated/Initialize(mapload)
|
||||||
if(skip_init)
|
if(skip_init)
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#define RECOMMENDED_VERSION 501
|
#define RECOMMENDED_VERSION 501
|
||||||
/world/New()
|
/world/New()
|
||||||
world_startup_time = world.timeofday
|
world_startup_time = world.timeofday
|
||||||
|
rollover_safety_date = world.realtime - world.timeofday // 00:00 today (ish, since floating point error with world.realtime) of today
|
||||||
to_world_log("Map Loading Complete")
|
to_world_log("Map Loading Complete")
|
||||||
//logs
|
//logs
|
||||||
//VOREStation Edit Start
|
//VOREStation Edit Start
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
icon_state = "off"
|
icon_state = "off"
|
||||||
density = TRUE
|
density = TRUE
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
var/active = 0
|
var/active = 0
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -312,13 +312,13 @@ var/list/_client_preferences_by_type
|
|||||||
key = "RUNECHAT_BORDER"
|
key = "RUNECHAT_BORDER"
|
||||||
enabled_description = "Show"
|
enabled_description = "Show"
|
||||||
disabled_description = "Hide"
|
disabled_description = "Hide"
|
||||||
enabled_by_default = FALSE
|
enabled_by_default = TRUE
|
||||||
|
|
||||||
/datum/client_preference/runechat_long_messages
|
/datum/client_preference/runechat_long_messages
|
||||||
description = "Runechat Message Length"
|
description = "Runechat Message Length"
|
||||||
key = "RUNECHAT_LONG"
|
key = "RUNECHAT_LONG"
|
||||||
enabled_description = "ERP KING"
|
enabled_description = "Long"
|
||||||
disabled_description = "Normie"
|
disabled_description = "Short"
|
||||||
enabled_by_default = FALSE
|
enabled_by_default = FALSE
|
||||||
|
|
||||||
/datum/client_preference/status_indicators/toggled(mob/preference_mob, enabled)
|
/datum/client_preference/status_indicators/toggled(mob/preference_mob, enabled)
|
||||||
|
|||||||
@@ -40,6 +40,10 @@
|
|||||||
display_name = "collar, pink"
|
display_name = "collar, pink"
|
||||||
path = /obj/item/clothing/accessory/collar/pink
|
path = /obj/item/clothing/accessory/collar/pink
|
||||||
|
|
||||||
|
/datum/gear/collar/cowbell
|
||||||
|
display_name = "collar, cowbell"
|
||||||
|
path = /obj/item/clothing/accessory/collar/cowbell
|
||||||
|
|
||||||
/datum/gear/collar/holo
|
/datum/gear/collar/holo
|
||||||
display_name = "collar, holo"
|
display_name = "collar, holo"
|
||||||
path = /obj/item/clothing/accessory/collar/holo
|
path = /obj/item/clothing/accessory/collar/holo
|
||||||
|
|||||||
@@ -695,7 +695,7 @@
|
|||||||
path = /obj/item/clothing/suit/storage/hooded/wintercoat/security/fluff/evelyn/
|
path = /obj/item/clothing/suit/storage/hooded/wintercoat/security/fluff/evelyn/
|
||||||
display_name = "warden's navy winter coat"
|
display_name = "warden's navy winter coat"
|
||||||
ckeywhitelist = list("pandora029")
|
ckeywhitelist = list("pandora029")
|
||||||
character_name = list("Evelyn Tareen")
|
character_name = list("Evelyn Tareen", "Velyn Tareen")
|
||||||
|
|
||||||
/datum/gear/fluff/lily_medal
|
/datum/gear/fluff/lily_medal
|
||||||
path = /obj/item/clothing/accessory/medal/silver/unity
|
path = /obj/item/clothing/accessory/medal/silver/unity
|
||||||
@@ -762,7 +762,7 @@
|
|||||||
display_name = "LUNA's Distinguished Conduct Medal"
|
display_name = "LUNA's Distinguished Conduct Medal"
|
||||||
ckeywhitelist = list("residentcody")
|
ckeywhitelist = list("residentcody")
|
||||||
character_name = list("LUNA")
|
character_name = list("LUNA")
|
||||||
|
|
||||||
/datum/gear/fluff/pathfinder_id
|
/datum/gear/fluff/pathfinder_id
|
||||||
path = /obj/item/weapon/card/id/event/polymorphic/itg
|
path = /obj/item/weapon/card/id/event/polymorphic/itg
|
||||||
display_name = "Pathfinder's ITG ID"
|
display_name = "Pathfinder's ITG ID"
|
||||||
|
|||||||
@@ -171,6 +171,11 @@
|
|||||||
path = /obj/item/clothing/suit/storage/toggle/labcoat/emt
|
path = /obj/item/clothing/suit/storage/toggle/labcoat/emt
|
||||||
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist")
|
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist")
|
||||||
|
|
||||||
|
/datum/gear/suit/labcoat_rd
|
||||||
|
display_name = "labcoat, research director"
|
||||||
|
path = /obj/item/clothing/suit/storage/toggle/labcoat/rd
|
||||||
|
allowed_roles = list("Research Director")
|
||||||
|
|
||||||
/datum/gear/suit/miscellaneous/labcoat
|
/datum/gear/suit/miscellaneous/labcoat
|
||||||
display_name = "plague doctor's coat"
|
display_name = "plague doctor's coat"
|
||||||
path = /obj/item/clothing/suit/storage/toggle/labcoat/plaguedoctor
|
path = /obj/item/clothing/suit/storage/toggle/labcoat/plaguedoctor
|
||||||
@@ -616,3 +621,8 @@
|
|||||||
/datum/gear/suit/miscellaneous/cardigan/New()
|
/datum/gear/suit/miscellaneous/cardigan/New()
|
||||||
..()
|
..()
|
||||||
gear_tweaks += gear_tweak_free_color_choice
|
gear_tweaks += gear_tweak_free_color_choice
|
||||||
|
|
||||||
|
/datum/gear/suit/cmddressjacket
|
||||||
|
display_name = "command dress jacket"
|
||||||
|
path = /obj/item/clothing/suit/storage/cmddressjacket
|
||||||
|
allowed_roles = list("Site Manager", "Head of Personnel", "Command Secretary")
|
||||||
@@ -648,4 +648,36 @@
|
|||||||
|
|
||||||
/datum/gear/uniform/countess
|
/datum/gear/uniform/countess
|
||||||
display_name = "countess dress"
|
display_name = "countess dress"
|
||||||
path = /obj/item/clothing/under/dress/countess
|
path = /obj/item/clothing/under/dress/countess
|
||||||
|
|
||||||
|
/datum/gear/uniform/verglasdress
|
||||||
|
display_name = "verglas dress"
|
||||||
|
path = /obj/item/clothing/under/verglasdress
|
||||||
|
|
||||||
|
/datum/gear/uniform/fashionminiskirt
|
||||||
|
display_name = "fashionable miniskirt"
|
||||||
|
path = /obj/item/clothing/under/fashionminiskirt
|
||||||
|
|
||||||
|
/datum/gear/uniform/fashionminiskirt/New()
|
||||||
|
..()
|
||||||
|
gear_tweaks += gear_tweak_free_color_choice
|
||||||
|
|
||||||
|
/datum/gear/uniform/paramedunidark
|
||||||
|
display_name = "paramedic uniform - dark"
|
||||||
|
path = /obj/item/clothing/under/rank/paramedunidark
|
||||||
|
allowed_roles = list("Medical Doctor","Chief Medical Officer","Paramedic")
|
||||||
|
|
||||||
|
/datum/gear/uniform/parameduniskirtdark
|
||||||
|
display_name = "paramedic skirt - dark"
|
||||||
|
path = /obj/item/clothing/under/rank/parameduniskirtdark
|
||||||
|
allowed_roles = list("Medical Doctor","Chief Medical Officer","Paramedic")
|
||||||
|
|
||||||
|
/datum/gear/uniform/paramedunilight
|
||||||
|
display_name = "paramedic uniform - light"
|
||||||
|
path = /obj/item/clothing/under/rank/paramedunilight
|
||||||
|
allowed_roles = list("Medical Doctor","Chief Medical Officer","Paramedic")
|
||||||
|
|
||||||
|
/datum/gear/uniform/parameduniskirtlight
|
||||||
|
display_name = "paramedic skirt - light"
|
||||||
|
path = /obj/item/clothing/under/rank/parameduniskirtlight
|
||||||
|
allowed_roles = list("Medical Doctor","Chief Medical Officer","Paramedic")
|
||||||
@@ -677,3 +677,14 @@
|
|||||||
whitelisted = SPECIES_TESHARI
|
whitelisted = SPECIES_TESHARI
|
||||||
sort_category = "Xenowear"
|
sort_category = "Xenowear"
|
||||||
cost = 4
|
cost = 4
|
||||||
|
|
||||||
|
/datum/gear/shoes/teshwrap
|
||||||
|
display_name = "Teshari legwraps"
|
||||||
|
path = /obj/item/clothing/shoes/footwraps/teshari
|
||||||
|
sort_category = "Xenowear"
|
||||||
|
whitelisted = SPECIES_TESHARI
|
||||||
|
cost = 1
|
||||||
|
|
||||||
|
/datum/gear/shoes/teshwrap/New()
|
||||||
|
..()
|
||||||
|
gear_tweaks += gear_tweak_free_color_choice
|
||||||
|
|||||||
@@ -186,4 +186,10 @@
|
|||||||
name = "corgi hood"
|
name = "corgi hood"
|
||||||
desc = "A hood that looks just like a corgi's head, it won't guarantee dog biscuits."
|
desc = "A hood that looks just like a corgi's head, it won't guarantee dog biscuits."
|
||||||
icon_state = "ian"
|
icon_state = "ian"
|
||||||
item_state_slots = list(slot_r_hand_str = "ian", slot_l_hand_str = "ian") //Does not exist -S2-
|
item_state_slots = list(slot_r_hand_str = "ian", slot_l_hand_str = "ian") //Does not exist -S2-
|
||||||
|
|
||||||
|
//Techpriest
|
||||||
|
/obj/item/clothing/head/hood/techpriest
|
||||||
|
name = "techpriest hood"
|
||||||
|
desc = "A techpriest hood."
|
||||||
|
icon_state = "techpriesthood"
|
||||||
8
code/modules/clothing/shoes/xeno/teshari.dm
Normal file
8
code/modules/clothing/shoes/xeno/teshari.dm
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
/obj/item/clothing/shoes/footwraps/teshari
|
||||||
|
name = "Teshari legwraps"
|
||||||
|
desc = "Traditional Teshari footwear, consisting of a cloth wrapping to cover the foot and lower leg."
|
||||||
|
icon = 'icons/inventory/feet/item_teshari.dmi'
|
||||||
|
icon_state = "teshwrap"
|
||||||
|
item_state = "teshwrap"
|
||||||
|
shoes_under_pants = 1 //these are thin and wrapped around the leg, clothing would go over it
|
||||||
|
species_restricted = list(SPECIES_TESHARI)
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
/obj/item/rig_module/gauntlets
|
||||||
|
|
||||||
|
name = "proto-kinetic gear unit"
|
||||||
|
desc = "A set of paired proto-kinetic gauntlets and greaves. There's no way this is actually usable. Right?"
|
||||||
|
icon_state = "module"
|
||||||
|
|
||||||
|
interface_name = "proto-kinetic gear unit"
|
||||||
|
interface_desc = "A set of paired proto-kinetic gauntlets and greaves. For disrupting rocks and creatures' innards."
|
||||||
|
|
||||||
|
activate_string = "Deploy Gauntlets"
|
||||||
|
deactivate_string = "Undeploy Gauntlets"
|
||||||
|
|
||||||
|
usable = 0
|
||||||
|
toggleable = 1
|
||||||
|
use_power_cost = 0
|
||||||
|
active_power_cost = 2.5
|
||||||
|
passive_power_cost = 0
|
||||||
|
var/obj/item/weapon/kinetic_crusher/machete/gauntlets/rig/stored_gauntlets
|
||||||
|
|
||||||
|
/obj/item/rig_module/gauntlets/Initialize()
|
||||||
|
. = ..()
|
||||||
|
stored_gauntlets = new /obj/item/weapon/kinetic_crusher/machete/gauntlets/rig(src)
|
||||||
|
stored_gauntlets.storing_module = src
|
||||||
|
|
||||||
|
/obj/item/rig_module/gauntlets/activate()
|
||||||
|
..()
|
||||||
|
var/mob/living/M = holder.wearer
|
||||||
|
var/datum/gender/TU = gender_datums[M.get_visible_gender()]
|
||||||
|
|
||||||
|
if(M.l_hand && M.r_hand)
|
||||||
|
to_chat(M, "<span class='danger'>Your hands are full.</span>")
|
||||||
|
deactivate()
|
||||||
|
return
|
||||||
|
if(M.a_intent == I_HURT)
|
||||||
|
M.visible_message(
|
||||||
|
"<span class='danger'>[M] throws [TU.his] arms out, extending [stored_gauntlets] from \the [holder] with a click!</span>",
|
||||||
|
"<span class='danger'>You throw your arms out, extending [stored_gauntlets] from \the [holder] with a click!</span>",
|
||||||
|
"<span class='notice'>You hear a threatening hiss and a click.</span>"
|
||||||
|
)
|
||||||
|
else
|
||||||
|
M.visible_message(
|
||||||
|
"<span class='notice'>[M] extends [stored_gauntlets] from \the [holder] with a click!</span>",
|
||||||
|
"<span class='notice'>You extend [stored_gauntlets] from \the [holder] with a click!</span>",
|
||||||
|
"<span class='notice'>You hear a hiss and a click.</span>")
|
||||||
|
|
||||||
|
playsound(src, 'sound/items/helmetdeploy.ogg', 40, 1)
|
||||||
|
M.put_in_hands(stored_gauntlets)
|
||||||
|
|
||||||
|
/obj/item/rig_module/gauntlets/deactivate()
|
||||||
|
..()
|
||||||
|
var/mob/living/M = holder.wearer
|
||||||
|
if(!M)
|
||||||
|
return
|
||||||
|
for(var/obj/item/weapon/kinetic_crusher/machete/gauntlets/gaming in M.contents)
|
||||||
|
M.drop_from_inventory(gaming, src)
|
||||||
@@ -254,7 +254,7 @@
|
|||||||
hoodtype = /obj/item/clothing/head/hood/winter/engineering/atmos
|
hoodtype = /obj/item/clothing/head/hood/winter/engineering/atmos
|
||||||
|
|
||||||
/obj/item/clothing/suit/storage/hooded/wintercoat/engineering/ce
|
/obj/item/clothing/suit/storage/hooded/wintercoat/engineering/ce
|
||||||
name = "atmospherics winter coat"
|
name = "chief engineer's winter coat"
|
||||||
desc = "A heavy jacket made from 'synthetic' animal furs. It seems to have burn marks on the inside from a phoron fire."
|
desc = "A heavy jacket made from 'synthetic' animal furs. It seems to have burn marks on the inside from a phoron fire."
|
||||||
icon_state = "coatce"
|
icon_state = "coatce"
|
||||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20)
|
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20)
|
||||||
@@ -362,4 +362,10 @@
|
|||||||
/obj/item/weapon/tank,
|
/obj/item/weapon/tank,
|
||||||
/obj/item/device/radio,
|
/obj/item/device/radio,
|
||||||
/obj/item/weapon/pickaxe
|
/obj/item/weapon/pickaxe
|
||||||
)
|
)
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/storage/hooded/techpriest
|
||||||
|
name = "techpriest robes"
|
||||||
|
desc = "For those who REALLY love their toasters."
|
||||||
|
icon_state = "techpriest"
|
||||||
|
hoodtype = /obj/item/clothing/head/hood/techpriest
|
||||||
|
|||||||
@@ -34,6 +34,12 @@
|
|||||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||||
flags_inv = HIDEHOLSTER
|
flags_inv = HIDEHOLSTER
|
||||||
|
|
||||||
|
//Command
|
||||||
|
/obj/item/clothing/suit/storage/cmddressjacket
|
||||||
|
name = "command dress jacket"
|
||||||
|
desc = "A fancy dress jacket made for command staff. Makes you feel in charge."
|
||||||
|
icon_state = "cmddressjacket"
|
||||||
|
|
||||||
//Chaplain
|
//Chaplain
|
||||||
/obj/item/clothing/suit/storage/hooded/chaplain_hoodie
|
/obj/item/clothing/suit/storage/hooded/chaplain_hoodie
|
||||||
name = "chaplain hoodie"
|
name = "chaplain hoodie"
|
||||||
|
|||||||
@@ -33,12 +33,6 @@
|
|||||||
icon_state = "orange_labcoat"
|
icon_state = "orange_labcoat"
|
||||||
item_state_slots = list(slot_r_hand_str = "orange_labcoat", slot_l_hand_str = "orange_labcoat")
|
item_state_slots = list(slot_r_hand_str = "orange_labcoat", slot_l_hand_str = "orange_labcoat")
|
||||||
|
|
||||||
/obj/item/clothing/suit/storage/toggle/labcoat/green
|
|
||||||
name = "green labcoat"
|
|
||||||
desc = "A suit that protects against minor chemical spills. This one is green."
|
|
||||||
icon_state = "green_labcoat"
|
|
||||||
item_state_slots = list(slot_r_hand_str = "green_labcoat", slot_l_hand_str = "green_labcoat")
|
|
||||||
|
|
||||||
/obj/item/clothing/suit/storage/toggle/labcoat/yellow
|
/obj/item/clothing/suit/storage/toggle/labcoat/yellow
|
||||||
name = "yellow labcoat"
|
name = "yellow labcoat"
|
||||||
desc = "A suit that protects against minor chemical spills. This one is yellow."
|
desc = "A suit that protects against minor chemical spills. This one is yellow."
|
||||||
@@ -51,6 +45,18 @@
|
|||||||
icon_state = "pink_labcoat"
|
icon_state = "pink_labcoat"
|
||||||
item_state_slots = list(slot_r_hand_str = "pink_labcoat", slot_l_hand_str = "pink_labcoat")
|
item_state_slots = list(slot_r_hand_str = "pink_labcoat", slot_l_hand_str = "pink_labcoat")
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/storage/toggle/labcoat/green
|
||||||
|
name = "green labcoat"
|
||||||
|
desc = "A suit that protects against minor chemical spills. This one is green."
|
||||||
|
icon_state = "green_labcoat"
|
||||||
|
item_state_slots = list(slot_r_hand_str = "green_labcoat", slot_l_hand_str = "green_labcoat")
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/storage/toggle/labcoat/mad
|
||||||
|
name = "The Mad's labcoat"
|
||||||
|
desc = "It makes you look capable of konking someone on the noggin and shooting them into space."
|
||||||
|
icon_state = "green_labcoat"
|
||||||
|
item_state_slots = list(slot_r_hand_str = "green_labcoat", slot_l_hand_str = "green_labcoat")
|
||||||
|
|
||||||
/obj/item/clothing/suit/storage/toggle/labcoat/cmo
|
/obj/item/clothing/suit/storage/toggle/labcoat/cmo
|
||||||
name = "chief medical officer's labcoat"
|
name = "chief medical officer's labcoat"
|
||||||
desc = "Bluer than the standard model."
|
desc = "Bluer than the standard model."
|
||||||
@@ -58,17 +64,11 @@
|
|||||||
item_state_slots = list(slot_r_hand_str = "cmo_labcoat", slot_l_hand_str = "cmo_labcoat")
|
item_state_slots = list(slot_r_hand_str = "cmo_labcoat", slot_l_hand_str = "cmo_labcoat")
|
||||||
|
|
||||||
/obj/item/clothing/suit/storage/toggle/labcoat/cmoalt
|
/obj/item/clothing/suit/storage/toggle/labcoat/cmoalt
|
||||||
name = "chief medical officer labcoat"
|
name = "chief medical officer's labcoat"
|
||||||
desc = "A labcoat with command blue highlights."
|
desc = "A labcoat with command blue highlights."
|
||||||
icon_state = "labcoat_cmoalt"
|
icon_state = "labcoat_cmoalt"
|
||||||
item_state_slots = list(slot_r_hand_str = "cmo_labcoat", slot_l_hand_str = "cmo_labcoat")
|
item_state_slots = list(slot_r_hand_str = "cmo_labcoat", slot_l_hand_str = "cmo_labcoat")
|
||||||
|
|
||||||
/obj/item/clothing/suit/storage/toggle/labcoat/mad
|
|
||||||
name = "The Mad's labcoat"
|
|
||||||
desc = "It makes you look capable of konking someone on the noggin and shooting them into space."
|
|
||||||
icon_state = "labgreen"
|
|
||||||
item_state_slots = list(slot_r_hand_str = "green_labcoat", slot_l_hand_str = "green_labcoat")
|
|
||||||
|
|
||||||
/obj/item/clothing/suit/storage/toggle/labcoat/genetics
|
/obj/item/clothing/suit/storage/toggle/labcoat/genetics
|
||||||
name = "Geneticist labcoat"
|
name = "Geneticist labcoat"
|
||||||
desc = "A suit that protects against minor chemical spills. Has a blue stripe on the shoulder."
|
desc = "A suit that protects against minor chemical spills. Has a blue stripe on the shoulder."
|
||||||
@@ -88,12 +88,24 @@
|
|||||||
item_state_slots = list(slot_r_hand_str = "virologist_labcoat", slot_l_hand_str = "virologist_labcoat")
|
item_state_slots = list(slot_r_hand_str = "virologist_labcoat", slot_l_hand_str = "virologist_labcoat")
|
||||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
|
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/storage/toggle/labcoat/roboticist
|
||||||
|
name = "Roboticist labcoat"
|
||||||
|
desc = "More like an eccentric coat than a labcoat. Helps pass off bloodstains as part of the aesthetic. Comes with red shoulder pads."
|
||||||
|
icon_state = "labcoat_robo"
|
||||||
|
item_state_slots = list(slot_r_hand_str = "labcoat", slot_l_hand_str = "labcoat")
|
||||||
|
|
||||||
/obj/item/clothing/suit/storage/toggle/labcoat/science
|
/obj/item/clothing/suit/storage/toggle/labcoat/science
|
||||||
name = "Scientist labcoat"
|
name = "Scientist labcoat"
|
||||||
desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder."
|
desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder."
|
||||||
icon_state = "labcoat_tox"
|
icon_state = "labcoat_tox"
|
||||||
item_state_slots = list(slot_r_hand_str = "science_labcoat", slot_l_hand_str = "science_labcoat")
|
item_state_slots = list(slot_r_hand_str = "science_labcoat", slot_l_hand_str = "science_labcoat")
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/storage/toggle/labcoat/rd
|
||||||
|
name = "research director's labcoat"
|
||||||
|
desc = "A flashy labcoat with purple markings. It belongs to the Research Director."
|
||||||
|
icon_state = "labcoat_rd"
|
||||||
|
item_state_slots = list(slot_r_hand_str = "science_labcoat", slot_l_hand_str = "science_labcoat")
|
||||||
|
|
||||||
/obj/item/clothing/suit/storage/toggle/labcoat/emt
|
/obj/item/clothing/suit/storage/toggle/labcoat/emt
|
||||||
name = "EMT's labcoat"
|
name = "EMT's labcoat"
|
||||||
desc = "A dark blue labcoat with reflective strips for emergency medical technicians."
|
desc = "A dark blue labcoat with reflective strips for emergency medical technicians."
|
||||||
|
|||||||
@@ -282,6 +282,14 @@
|
|||||||
item_state = "collar_pnk"
|
item_state = "collar_pnk"
|
||||||
overlay_state = "collar_pnk"
|
overlay_state = "collar_pnk"
|
||||||
|
|
||||||
|
/obj/item/clothing/accessory/collar/cowbell
|
||||||
|
name = "cowbell collar"
|
||||||
|
desc = "A collar for your little pets... or the big ones."
|
||||||
|
icon_state = "collar_cowbell"
|
||||||
|
item_state = "collar_cowbell_overlay"
|
||||||
|
overlay_state = "collar_cowbell_overlay"
|
||||||
|
|
||||||
|
|
||||||
/obj/item/clothing/accessory/collar/holo
|
/obj/item/clothing/accessory/collar/holo
|
||||||
name = "Holo-collar"
|
name = "Holo-collar"
|
||||||
desc = "An expensive holo-collar for the modern day pet."
|
desc = "An expensive holo-collar for the modern day pet."
|
||||||
@@ -369,7 +377,7 @@
|
|||||||
icon_state = "holster_machete"
|
icon_state = "holster_machete"
|
||||||
slot = ACCESSORY_SLOT_WEAPON
|
slot = ACCESSORY_SLOT_WEAPON
|
||||||
concealed_holster = 0
|
concealed_holster = 0
|
||||||
can_hold = list(/obj/item/weapon/material/knife/machete)
|
can_hold = list(/obj/item/weapon/material/knife/machete, /obj/item/weapon/kinetic_crusher/machete)
|
||||||
//sound_in = 'sound/effects/holster/sheathin.ogg'
|
//sound_in = 'sound/effects/holster/sheathin.ogg'
|
||||||
//sound_out = 'sound/effects/holster/sheathout.ogg'
|
//sound_out = 'sound/effects/holster/sheathout.ogg'
|
||||||
|
|
||||||
|
|||||||
@@ -174,6 +174,34 @@
|
|||||||
icon_state = "scrubs"
|
icon_state = "scrubs"
|
||||||
item_state_slots = list(slot_r_hand_str = "white", slot_l_hand_str = "white")
|
item_state_slots = list(slot_r_hand_str = "white", slot_l_hand_str = "white")
|
||||||
|
|
||||||
|
/obj/item/clothing/under/rank/paramedunidark
|
||||||
|
name = "dark paramedic uniform"
|
||||||
|
desc = "A dark jumpsuit for those brave souls who have to deal with a CMO who thinks they're the do everything person."
|
||||||
|
icon_state = "paramedicdark"
|
||||||
|
rolled_down = -1
|
||||||
|
rolled_sleeves = -1
|
||||||
|
|
||||||
|
/obj/item/clothing/under/rank/parameduniskirtdark
|
||||||
|
name = "dark paramedic uniskirt"
|
||||||
|
desc = "A dark jumpskirt for those brave souls who have to deal with a CMO who thinks they're the do everything person."
|
||||||
|
icon_state = "paramedicdark_skirt"
|
||||||
|
rolled_down = -1
|
||||||
|
rolled_sleeves = -1
|
||||||
|
|
||||||
|
/obj/item/clothing/under/rank/paramedunilight
|
||||||
|
name = "light paramedic uniform"
|
||||||
|
desc = "A light jumpsuit for those brave souls who have to deal with a CMO who thinks they're the do everything person."
|
||||||
|
icon_state = "paramediclight"
|
||||||
|
rolled_down = -1
|
||||||
|
rolled_sleeves = -1
|
||||||
|
|
||||||
|
/obj/item/clothing/under/rank/parameduniskirtlight
|
||||||
|
name = "light paramedic uniskirt"
|
||||||
|
desc = "A light jumpskirt for those brave souls who have to deal with a CMO who thinks they're the do everything person."
|
||||||
|
icon_state = "paramediclight_skirt"
|
||||||
|
rolled_down = -1
|
||||||
|
rolled_sleeves = -1
|
||||||
|
|
||||||
/obj/item/clothing/under/rank/psych
|
/obj/item/clothing/under/rank/psych
|
||||||
desc = "A basic white jumpsuit. It has turqouise markings that denote the wearer as a psychiatrist."
|
desc = "A basic white jumpsuit. It has turqouise markings that denote the wearer as a psychiatrist."
|
||||||
name = "psychiatrist's jumpsuit"
|
name = "psychiatrist's jumpsuit"
|
||||||
@@ -186,7 +214,6 @@
|
|||||||
icon_state = "psychturtle"
|
icon_state = "psychturtle"
|
||||||
item_state_slots = list(slot_r_hand_str = "psyche", slot_l_hand_str = "psyche")
|
item_state_slots = list(slot_r_hand_str = "psyche", slot_l_hand_str = "psyche")
|
||||||
rolled_sleeves = 0
|
rolled_sleeves = 0
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Medsci, unused (i think) stuff
|
* Medsci, unused (i think) stuff
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -565,6 +565,11 @@
|
|||||||
desc = "A red and black dress fit for a countess."
|
desc = "A red and black dress fit for a countess."
|
||||||
icon_state = "countess"
|
icon_state = "countess"
|
||||||
|
|
||||||
|
/obj/item/clothing/under/verglasdress
|
||||||
|
name = "verglas dress"
|
||||||
|
desc = "The modern twist on a forgotten pattern, the Verglas style utilizes comfortable velvet and silver white satin to create an otherworldly effect evocative of winter, or the void."
|
||||||
|
icon_state = "verglas_dress"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* wedding stuff
|
* wedding stuff
|
||||||
*/
|
*/
|
||||||
@@ -884,6 +889,10 @@ Uniforms and such
|
|||||||
desc = "A flowery skirt that comes in a variety of colors."
|
desc = "A flowery skirt that comes in a variety of colors."
|
||||||
icon_state = "flowerskirt"
|
icon_state = "flowerskirt"
|
||||||
|
|
||||||
|
/obj/item/clothing/under/fashionminiskirt
|
||||||
|
name = "fashionable miniskirt"
|
||||||
|
desc = "An impractically short miniskirt allegedly making waves through the local fashion scene."
|
||||||
|
icon_state = "miniskirt_fashion"
|
||||||
/*
|
/*
|
||||||
* swimsuit
|
* swimsuit
|
||||||
*/
|
*/
|
||||||
@@ -946,6 +955,12 @@ Uniforms and such
|
|||||||
desc = "No honest man would wear this abomination"
|
desc = "No honest man would wear this abomination"
|
||||||
icon_state = "mankini"
|
icon_state = "mankini"
|
||||||
|
|
||||||
|
/obj/item/clothing/under/swimsuit/cowbikini
|
||||||
|
name = "cow print bikini"
|
||||||
|
desc = "A rather skimpy cow patterned swimsuit."
|
||||||
|
icon_state = "swim_cow"
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* pyjamas
|
* pyjamas
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
icon_state = "generic"
|
icon_state = "generic"
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
density = TRUE
|
density = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
clicksound = "button"
|
clicksound = "button"
|
||||||
|
|
||||||
// Power
|
// Power
|
||||||
|
|||||||
@@ -1153,6 +1153,7 @@
|
|||||||
/obj/item/clothing/head/that = 5,
|
/obj/item/clothing/head/that = 5,
|
||||||
/obj/item/clothing/head/flatcap = 5,
|
/obj/item/clothing/head/flatcap = 5,
|
||||||
/obj/item/clothing/shoes/brown = 5,
|
/obj/item/clothing/shoes/brown = 5,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/bar = 5,
|
||||||
/obj/item/clothing/accessory/permit/gun/bar = 1
|
/obj/item/clothing/accessory/permit/gun/bar = 1
|
||||||
)
|
)
|
||||||
req_log_access = access_hop
|
req_log_access = access_hop
|
||||||
@@ -1225,6 +1226,7 @@
|
|||||||
/obj/item/clothing/suit/storage/toggle/labcoat/modern = 5,
|
/obj/item/clothing/suit/storage/toggle/labcoat/modern = 5,
|
||||||
/obj/item/clothing/mask/surgical = 5,
|
/obj/item/clothing/mask/surgical = 5,
|
||||||
/obj/item/clothing/suit/storage/hooded/wintercoat/medical = 5,
|
/obj/item/clothing/suit/storage/hooded/wintercoat/medical = 5,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/medical/alt = 5,
|
||||||
/obj/item/clothing/shoes/boots/winter/medical = 5
|
/obj/item/clothing/shoes/boots/winter/medical = 5
|
||||||
)
|
)
|
||||||
req_log_access = access_hop
|
req_log_access = access_hop
|
||||||
@@ -1241,6 +1243,7 @@
|
|||||||
/obj/item/clothing/under/rank/chemist/skirt = 5,
|
/obj/item/clothing/under/rank/chemist/skirt = 5,
|
||||||
/obj/item/clothing/shoes/white = 5,
|
/obj/item/clothing/shoes/white = 5,
|
||||||
/obj/item/clothing/suit/storage/toggle/labcoat/chemist = 5,
|
/obj/item/clothing/suit/storage/toggle/labcoat/chemist = 5,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/medical/chemist = 5,
|
||||||
/obj/item/weapon/storage/backpack/chemistry = 5,
|
/obj/item/weapon/storage/backpack/chemistry = 5,
|
||||||
/obj/item/weapon/storage/backpack/satchel/chem = 5,
|
/obj/item/weapon/storage/backpack/satchel/chem = 5,
|
||||||
/obj/item/weapon/storage/bag/chemistry = 5
|
/obj/item/weapon/storage/bag/chemistry = 5
|
||||||
@@ -1276,6 +1279,7 @@
|
|||||||
/obj/item/clothing/under/rank/virologist/skirt = 5,
|
/obj/item/clothing/under/rank/virologist/skirt = 5,
|
||||||
/obj/item/clothing/shoes/white = 5,
|
/obj/item/clothing/shoes/white = 5,
|
||||||
/obj/item/clothing/suit/storage/toggle/labcoat/virologist = 5,
|
/obj/item/clothing/suit/storage/toggle/labcoat/virologist = 5,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/medical/viro = 5,
|
||||||
/obj/item/clothing/mask/surgical = 5,
|
/obj/item/clothing/mask/surgical = 5,
|
||||||
/obj/item/weapon/storage/backpack/virology = 5,
|
/obj/item/weapon/storage/backpack/virology = 5,
|
||||||
/obj/item/weapon/storage/backpack/satchel/vir = 5
|
/obj/item/weapon/storage/backpack/satchel/vir = 5
|
||||||
@@ -1313,12 +1317,16 @@
|
|||||||
req_access = list(access_robotics)
|
req_access = list(access_robotics)
|
||||||
products = list(
|
products = list(
|
||||||
/obj/item/clothing/under/rank/roboticist = 5,
|
/obj/item/clothing/under/rank/roboticist = 5,
|
||||||
/obj/item/clothing/suit/storage/toggle/labcoat = 5,
|
/obj/item/clothing/suit/storage/toggle/labcoat/roboticist = 5,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/science/robotics = 5,
|
||||||
/obj/item/clothing/shoes/black = 5,
|
/obj/item/clothing/shoes/black = 5,
|
||||||
/obj/item/clothing/gloves/black = 5,
|
/obj/item/clothing/gloves/black = 5,
|
||||||
/obj/item/weapon/storage/backpack/toxins = 5,
|
/obj/item/weapon/storage/backpack/toxins = 5,
|
||||||
/obj/item/weapon/storage/backpack/satchel/tox = 5
|
/obj/item/weapon/storage/backpack/satchel/tox = 5
|
||||||
)
|
)
|
||||||
|
contraband = list(
|
||||||
|
/obj/item/clothing/suit/storage/hooded/techpriest = 2
|
||||||
|
)
|
||||||
req_log_access = access_hop
|
req_log_access = access_hop
|
||||||
has_logs = 1
|
has_logs = 1
|
||||||
|
|
||||||
@@ -1342,7 +1350,9 @@
|
|||||||
/obj/item/weapon/storage/fancy/whitecandle_box = 5,
|
/obj/item/weapon/storage/fancy/whitecandle_box = 5,
|
||||||
/obj/item/weapon/storage/fancy/blackcandle_box = 5,
|
/obj/item/weapon/storage/fancy/blackcandle_box = 5,
|
||||||
/obj/item/godfig = 5,
|
/obj/item/godfig = 5,
|
||||||
/obj/item/weapon/deck/tarot = 5
|
/obj/item/weapon/deck/tarot = 5,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/ratvar = 1,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/narsie = 1
|
||||||
)
|
)
|
||||||
req_log_access = access_hop
|
req_log_access = access_hop
|
||||||
has_logs = 1
|
has_logs = 1
|
||||||
@@ -1452,6 +1462,7 @@
|
|||||||
/obj/item/device/radio/headset/headset_service = 5,
|
/obj/item/device/radio/headset/headset_service = 5,
|
||||||
/obj/item/clothing/under/rank/janitor = 5,
|
/obj/item/clothing/under/rank/janitor = 5,
|
||||||
/obj/item/clothing/under/dress/maid/janitor = 5,
|
/obj/item/clothing/under/dress/maid/janitor = 5,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/janitor = 5,
|
||||||
/obj/item/clothing/gloves/black = 5,
|
/obj/item/clothing/gloves/black = 5,
|
||||||
/obj/item/weapon/storage/belt/janitor = 5,
|
/obj/item/weapon/storage/belt/janitor = 5,
|
||||||
/obj/item/clothing/shoes/galoshes = 5,
|
/obj/item/clothing/shoes/galoshes = 5,
|
||||||
@@ -1514,4 +1525,4 @@
|
|||||||
/obj/item/clothing/suit/storage/forensics/red = 5
|
/obj/item/clothing/suit/storage/forensics/red = 5
|
||||||
)
|
)
|
||||||
req_log_access = access_hop
|
req_log_access = access_hop
|
||||||
has_logs = 1
|
has_logs = 1
|
||||||
|
|||||||
@@ -847,6 +847,7 @@
|
|||||||
/obj/item/weapon/storage/box/fluff/swimsuit/science = 5,
|
/obj/item/weapon/storage/box/fluff/swimsuit/science = 5,
|
||||||
/obj/item/weapon/storage/box/fluff/swimsuit/security = 5,
|
/obj/item/weapon/storage/box/fluff/swimsuit/security = 5,
|
||||||
/obj/item/weapon/storage/box/fluff/swimsuit/medical = 5,
|
/obj/item/weapon/storage/box/fluff/swimsuit/medical = 5,
|
||||||
|
/obj/item/weapon/storage/box/fluff/swimsuit/cowbikini = 5,
|
||||||
/obj/item/clothing/under/utility = 5,
|
/obj/item/clothing/under/utility = 5,
|
||||||
/obj/item/clothing/under/utility/grey = 5,
|
/obj/item/clothing/under/utility/grey = 5,
|
||||||
/obj/item/clothing/under/utility/blue = 5,
|
/obj/item/clothing/under/utility/blue = 5,
|
||||||
@@ -1017,6 +1018,7 @@
|
|||||||
/obj/item/weapon/storage/box/fluff/swimsuit/science = 50,
|
/obj/item/weapon/storage/box/fluff/swimsuit/science = 50,
|
||||||
/obj/item/weapon/storage/box/fluff/swimsuit/security = 50,
|
/obj/item/weapon/storage/box/fluff/swimsuit/security = 50,
|
||||||
/obj/item/weapon/storage/box/fluff/swimsuit/medical = 50,
|
/obj/item/weapon/storage/box/fluff/swimsuit/medical = 50,
|
||||||
|
/obj/item/weapon/storage/box/fluff/swimsuit/cowbikini = 50,
|
||||||
/obj/item/clothing/under/utility = 50,
|
/obj/item/clothing/under/utility = 50,
|
||||||
/obj/item/clothing/under/utility/grey = 50,
|
/obj/item/clothing/under/utility/grey = 50,
|
||||||
/obj/item/clothing/under/utility/blue = 50,
|
/obj/item/clothing/under/utility/blue = 50,
|
||||||
@@ -1241,6 +1243,7 @@
|
|||||||
/obj/item/clothing/suit/varsity/blue = 5,
|
/obj/item/clothing/suit/varsity/blue = 5,
|
||||||
/obj/item/clothing/suit/varsity/brown = 5,
|
/obj/item/clothing/suit/varsity/brown = 5,
|
||||||
/obj/item/clothing/suit/storage/hooded/wintercoat = 5,
|
/obj/item/clothing/suit/storage/hooded/wintercoat = 5,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/aformal = 5,
|
||||||
/obj/item/clothing/suit/storage/teshari/cloak/standard/white_grey = 5)
|
/obj/item/clothing/suit/storage/teshari/cloak/standard/white_grey = 5)
|
||||||
prices = list(/obj/item/clothing/suit/storage/apron = 100,
|
prices = list(/obj/item/clothing/suit/storage/apron = 100,
|
||||||
/obj/item/clothing/suit/storage/flannel/aqua = 100,
|
/obj/item/clothing/suit/storage/flannel/aqua = 100,
|
||||||
@@ -1327,8 +1330,10 @@
|
|||||||
/obj/item/clothing/suit/varsity/blue = 100,
|
/obj/item/clothing/suit/varsity/blue = 100,
|
||||||
/obj/item/clothing/suit/varsity/brown = 100,
|
/obj/item/clothing/suit/varsity/brown = 100,
|
||||||
/obj/item/clothing/suit/storage/hooded/wintercoat = 100,
|
/obj/item/clothing/suit/storage/hooded/wintercoat = 100,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/aformal = 100,
|
||||||
/obj/item/clothing/suit/storage/teshari/cloak/standard/white_grey = 100)
|
/obj/item/clothing/suit/storage/teshari/cloak/standard/white_grey = 100)
|
||||||
premium = list(/obj/item/clothing/suit/imperium_monk = 3)
|
premium = list(/obj/item/clothing/suit/imperium_monk = 3,
|
||||||
|
/obj/item/clothing/suit/storage/hooded/wintercoat/cosmic = 1)
|
||||||
contraband = list(/obj/item/toy/katana = 1)
|
contraband = list(/obj/item/toy/katana = 1)
|
||||||
|
|
||||||
/obj/machinery/vending/loadout/costume
|
/obj/machinery/vending/loadout/costume
|
||||||
@@ -1952,6 +1957,7 @@
|
|||||||
/obj/item/weapon/storage/box/fluff/swimsuit/science = 5,
|
/obj/item/weapon/storage/box/fluff/swimsuit/science = 5,
|
||||||
/obj/item/weapon/storage/box/fluff/swimsuit/security = 5,
|
/obj/item/weapon/storage/box/fluff/swimsuit/security = 5,
|
||||||
/obj/item/weapon/storage/box/fluff/swimsuit/medical = 5,
|
/obj/item/weapon/storage/box/fluff/swimsuit/medical = 5,
|
||||||
|
/obj/item/weapon/storage/box/fluff/swimsuit/cowbikini = 5,
|
||||||
/obj/item/clothing/under/utility = 5,
|
/obj/item/clothing/under/utility = 5,
|
||||||
/obj/item/clothing/under/utility/grey = 5,
|
/obj/item/clothing/under/utility/grey = 5,
|
||||||
/obj/item/clothing/under/utility/blue = 5,
|
/obj/item/clothing/under/utility/blue = 5,
|
||||||
@@ -3259,61 +3265,6 @@
|
|||||||
/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat = 10)
|
/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat = 10)
|
||||||
vend_delay = 15
|
vend_delay = 15
|
||||||
|
|
||||||
/obj/machinery/seed_storage/brig
|
|
||||||
name = "Prisoners' food seed storage"
|
|
||||||
starting_seeds = list(
|
|
||||||
/obj/item/seeds/appleseed = 3,
|
|
||||||
/obj/item/seeds/bananaseed = 3,
|
|
||||||
/obj/item/seeds/berryseed = 3,
|
|
||||||
/obj/item/seeds/cabbageseed = 3,
|
|
||||||
/obj/item/seeds/carrotseed = 3,
|
|
||||||
/obj/item/seeds/celery = 3,
|
|
||||||
/obj/item/seeds/chantermycelium = 3,
|
|
||||||
/obj/item/seeds/cherryseed = 3,
|
|
||||||
/obj/item/seeds/chiliseed = 3,
|
|
||||||
/obj/item/seeds/cocoapodseed = 3,
|
|
||||||
/obj/item/seeds/cornseed = 3,
|
|
||||||
/obj/item/seeds/durian = 3,
|
|
||||||
/obj/item/seeds/eggplantseed = 3,
|
|
||||||
/obj/item/seeds/grapeseed = 3,
|
|
||||||
/obj/item/seeds/grassseed = 3,
|
|
||||||
/obj/item/seeds/replicapod = 3,
|
|
||||||
/obj/item/seeds/lavenderseed = 3,
|
|
||||||
/obj/item/seeds/lemonseed = 3,
|
|
||||||
/obj/item/seeds/lettuce = 3,
|
|
||||||
/obj/item/seeds/limeseed = 3,
|
|
||||||
/obj/item/seeds/mtearseed = 2,
|
|
||||||
/obj/item/seeds/orangeseed = 3,
|
|
||||||
/obj/item/seeds/onionseed = 3,
|
|
||||||
/obj/item/seeds/peanutseed = 3,
|
|
||||||
/obj/item/seeds/plumpmycelium = 3,
|
|
||||||
/obj/item/seeds/poppyseed = 3,
|
|
||||||
/obj/item/seeds/potatoseed = 3,
|
|
||||||
/obj/item/seeds/pumpkinseed = 3,
|
|
||||||
/obj/item/seeds/rhubarb = 3,
|
|
||||||
/obj/item/seeds/riceseed = 3,
|
|
||||||
/obj/item/seeds/rose = 3,
|
|
||||||
/obj/item/seeds/soyaseed = 3,
|
|
||||||
/obj/item/seeds/pineapple = 3,
|
|
||||||
/obj/item/seeds/sugarcaneseed = 3,
|
|
||||||
/obj/item/seeds/sunflowerseed = 3,
|
|
||||||
/obj/item/seeds/shandseed = 2,
|
|
||||||
/obj/item/seeds/tobaccoseed = 3,
|
|
||||||
/obj/item/seeds/tomatoseed = 3,
|
|
||||||
/obj/item/seeds/towermycelium = 3,
|
|
||||||
/obj/item/seeds/vanilla = 3,
|
|
||||||
/obj/item/seeds/watermelonseed = 3,
|
|
||||||
/obj/item/seeds/wheatseed = 3,
|
|
||||||
/obj/item/seeds/whitebeetseed = 3,
|
|
||||||
/obj/item/seeds/wabback = 2)
|
|
||||||
|
|
||||||
/obj/machinery/vending/hydronutrients/brig
|
|
||||||
name = "Brig NutriMax"
|
|
||||||
desc = "A plant nutrients vendor. Seems some items aren't included."
|
|
||||||
products = list(/obj/item/weapon/reagent_containers/glass/bottle/eznutrient = 6,/obj/item/weapon/reagent_containers/glass/bottle/left4zed = 4,/obj/item/weapon/reagent_containers/glass/bottle/robustharvest = 3,/obj/item/weapon/plantspray/pests = 20,
|
|
||||||
/obj/item/weapon/reagent_containers/glass/beaker = 4,/obj/item/weapon/storage/bag/plants = 5)
|
|
||||||
premium = list(/obj/item/weapon/reagent_containers/glass/bottle/ammonia = 10,/obj/item/weapon/reagent_containers/glass/bottle/diethylamine = 5)
|
|
||||||
|
|
||||||
/obj/machinery/vending/emergencyfood
|
/obj/machinery/vending/emergencyfood
|
||||||
name = "Food Cube Dispenser"
|
name = "Food Cube Dispenser"
|
||||||
desc = "An ominous machine dispensing food cubes. It will keep you fed, but at what cost?"
|
desc = "An ominous machine dispensing food cubes. It will keep you fed, but at what cost?"
|
||||||
@@ -3328,9 +3279,6 @@
|
|||||||
products = list(/obj/item/weapon/storage/box/wings/tray = 40)
|
products = list(/obj/item/weapon/storage/box/wings/tray = 40)
|
||||||
contraband = list(/obj/item/weapon/storage/box/wings/tray = 20)
|
contraband = list(/obj/item/weapon/storage/box/wings/tray = 20)
|
||||||
|
|
||||||
/obj/machinery/vending/cola
|
|
||||||
icon_state = "Soda_Machine"
|
|
||||||
|
|
||||||
/obj/machinery/vending/cola/soft
|
/obj/machinery/vending/cola/soft
|
||||||
icon = 'icons/obj/vending_vr.dmi'
|
icon = 'icons/obj/vending_vr.dmi'
|
||||||
icon_state = "Cola_Machine"
|
icon_state = "Cola_Machine"
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
icon_state = "grinder"
|
icon_state = "grinder"
|
||||||
density = TRUE
|
density = TRUE
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
req_access = list(access_kitchen,access_morgue)
|
req_access = list(access_kitchen,access_morgue)
|
||||||
|
|
||||||
var/operating = 0 //Is it on?
|
var/operating = 0 //Is it on?
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -339,7 +339,7 @@ I said no!
|
|||||||
result = /obj/item/weapon/reagent_containers/food/snacks/caramelapple
|
result = /obj/item/weapon/reagent_containers/food/snacks/caramelapple
|
||||||
|
|
||||||
/datum/recipe/twobread
|
/datum/recipe/twobread
|
||||||
reagents = list("wine" = 5)
|
reagents = list("redwine" = 5)
|
||||||
items = list(
|
items = list(
|
||||||
/obj/item/weapon/reagent_containers/food/snacks/slice/bread,
|
/obj/item/weapon/reagent_containers/food/snacks/slice/bread,
|
||||||
/obj/item/weapon/reagent_containers/food/snacks/slice/bread,
|
/obj/item/weapon/reagent_containers/food/snacks/slice/bread,
|
||||||
@@ -796,7 +796,7 @@ I said no!
|
|||||||
result = /obj/item/weapon/reagent_containers/food/snacks/chilicheesefries
|
result = /obj/item/weapon/reagent_containers/food/snacks/chilicheesefries
|
||||||
|
|
||||||
/datum/recipe/risotto
|
/datum/recipe/risotto
|
||||||
reagents = list("wine" = 5, "rice" = 10, "spacespice" = 1)
|
reagents = list("redwine" = 5, "rice" = 10, "spacespice" = 1)
|
||||||
fruit = list("mushroom" = 1)
|
fruit = list("mushroom" = 1)
|
||||||
reagent_mix = RECIPE_REAGENT_REPLACE //Get that rice and wine outta here
|
reagent_mix = RECIPE_REAGENT_REPLACE //Get that rice and wine outta here
|
||||||
result = /obj/item/weapon/reagent_containers/food/snacks/risotto
|
result = /obj/item/weapon/reagent_containers/food/snacks/risotto
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
result = /obj/item/weapon/reagent_containers/food/snacks/pandenata
|
result = /obj/item/weapon/reagent_containers/food/snacks/pandenata
|
||||||
|
|
||||||
/datum/recipe/tocino
|
/datum/recipe/tocino
|
||||||
reagents = list("sodiumchloride" = 5, "wine" = 5)
|
reagents = list("sodiumchloride" = 5, "redwine" = 5)
|
||||||
items = list(
|
items = list(
|
||||||
/obj/item/weapon/reagent_containers/food/snacks/rawcutlet
|
/obj/item/weapon/reagent_containers/food/snacks/rawcutlet
|
||||||
)
|
)
|
||||||
@@ -105,4 +105,4 @@
|
|||||||
/obj/item/weapon/reagent_containers/food/snacks/spreads/butter
|
/obj/item/weapon/reagent_containers/food/snacks/spreads/butter
|
||||||
)
|
)
|
||||||
result = /obj/item/weapon/reagent_containers/food/snacks/butterscotch
|
result = /obj/item/weapon/reagent_containers/food/snacks/butterscotch
|
||||||
result_quantity = 2
|
result_quantity = 2
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
/turf/simulated/floor/holofloor
|
/turf/simulated/floor/holofloor
|
||||||
thermal_conductivity = 0
|
thermal_conductivity = 0
|
||||||
|
flags = TURF_ACID_IMMUNE
|
||||||
|
|
||||||
/turf/simulated/floor/holofloor/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
/turf/simulated/floor/holofloor/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
return
|
return
|
||||||
@@ -129,12 +130,14 @@
|
|||||||
icon = 'icons/obj/furniture_vr.dmi'
|
icon = 'icons/obj/furniture_vr.dmi'
|
||||||
icon_state = "stool_padded_preview"
|
icon_state = "stool_padded_preview"
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
pressure_resistance = 15
|
pressure_resistance = 15
|
||||||
|
|
||||||
/obj/item/clothing/gloves/boxing/hologlove
|
/obj/item/clothing/gloves/boxing/hologlove
|
||||||
name = "boxing gloves"
|
name = "boxing gloves"
|
||||||
desc = "Because you really needed another excuse to punch your crewmates."
|
desc = "Because you really needed another excuse to punch your crewmates."
|
||||||
icon_state = "boxing"
|
icon_state = "boxing"
|
||||||
|
unacidable = TRUE
|
||||||
item_icons = list(
|
item_icons = list(
|
||||||
slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi',
|
slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi',
|
||||||
slot_r_hand_str = 'icons/mob/items/righthand_gloves.dmi',
|
slot_r_hand_str = 'icons/mob/items/righthand_gloves.dmi',
|
||||||
@@ -291,6 +294,7 @@
|
|||||||
throwforce = 0
|
throwforce = 0
|
||||||
w_class = ITEMSIZE_SMALL
|
w_class = ITEMSIZE_SMALL
|
||||||
flags = NOBLOODY
|
flags = NOBLOODY
|
||||||
|
unacidable = TRUE
|
||||||
var/active = 0
|
var/active = 0
|
||||||
|
|
||||||
/obj/item/weapon/holo/esword/green/New()
|
/obj/item/weapon/holo/esword/green/New()
|
||||||
@@ -359,6 +363,7 @@
|
|||||||
name = "basketball"
|
name = "basketball"
|
||||||
desc = "Here's your chance, do your dance at the Space Jam."
|
desc = "Here's your chance, do your dance at the Space Jam."
|
||||||
w_class = ITEMSIZE_LARGE //Stops people from hiding it in their bags/pockets
|
w_class = ITEMSIZE_LARGE //Stops people from hiding it in their bags/pockets
|
||||||
|
unacidable = TRUE
|
||||||
drop_sound = 'sound/items/drop/basketball.ogg'
|
drop_sound = 'sound/items/drop/basketball.ogg'
|
||||||
pickup_sound = 'sound/items/pickup/basketball.ogg'
|
pickup_sound = 'sound/items/pickup/basketball.ogg'
|
||||||
|
|
||||||
@@ -369,6 +374,7 @@
|
|||||||
icon_state = "hoop"
|
icon_state = "hoop"
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
density = TRUE
|
density = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
throwpass = 1
|
throwpass = 1
|
||||||
|
|
||||||
/obj/structure/holohoop/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
/obj/structure/holohoop/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||||
@@ -411,6 +417,7 @@
|
|||||||
var/area/currentarea = null
|
var/area/currentarea = null
|
||||||
var/eventstarted = 0
|
var/eventstarted = 0
|
||||||
|
|
||||||
|
unacidable = TRUE
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
use_power = USE_POWER_IDLE
|
use_power = USE_POWER_IDLE
|
||||||
idle_power_usage = 2
|
idle_power_usage = 2
|
||||||
|
|||||||
@@ -43,41 +43,46 @@
|
|||||||
..()
|
..()
|
||||||
wires = new(src)
|
wires = new(src)
|
||||||
if(!contraband_seeds.len)
|
if(!contraband_seeds.len)
|
||||||
contraband_seeds = pick(list(
|
contraband_seeds = pick( /// Some form of ambrosia in all lists.
|
||||||
list(
|
prob(30);list( /// General produce
|
||||||
/obj/item/seeds/ambrosiavulgarisseed = 3,
|
/obj/item/seeds/ambrosiavulgarisseed = 3,
|
||||||
/obj/item/seeds/greengrapeseed = 3,
|
/obj/item/seeds/greengrapeseed = 3,
|
||||||
/obj/item/seeds/reishimycelium = 2,
|
/obj/item/seeds/icepepperseed = 2,
|
||||||
/obj/item/seeds/bloodtomatoseed = 1
|
/obj/item/seeds/kudzuseed = 1
|
||||||
),
|
),
|
||||||
list(
|
prob(30);list( ///Mushroom batch
|
||||||
/obj/item/seeds/ambrosiavulgarisseed = 3,
|
/obj/item/seeds/ambrosiavulgarisseed = 1,
|
||||||
/obj/item/seeds/plastiseed = 3,
|
/obj/item/seeds/glowberryseed = 2,
|
||||||
/obj/item/seeds/kudzuseed = 2,
|
/obj/item/seeds/libertymycelium = 1,
|
||||||
/obj/item/seeds/rose/blood = 1
|
/obj/item/seeds/reishimycelium = 2,
|
||||||
),
|
/obj/item/seeds/sporemycelium = 1
|
||||||
list(
|
),
|
||||||
/obj/item/seeds/ambrosiavulgarisseed = 3,
|
prob(15);list( /// Survivalist
|
||||||
/obj/item/seeds/amanitamycelium = 3,
|
/obj/item/seeds/ambrosiadeusseed = 2,
|
||||||
/obj/item/seeds/libertymycelium = 2,
|
/obj/item/seeds/redtowermycelium = 2,
|
||||||
/obj/item/seeds/glowshroom = 1
|
/obj/item/seeds/vale = 2,
|
||||||
),
|
/obj/item/seeds/siflettuce = 2
|
||||||
list(
|
),
|
||||||
/obj/item/seeds/ambrosiavulgarisseed = 3,
|
prob(20);list( /// Cold plants
|
||||||
/obj/item/seeds/glowberryseed = 3,
|
/obj/item/seeds/ambrosiavulgarisseed = 2,
|
||||||
/obj/item/seeds/icepepperseed = 2,
|
/obj/item/seeds/thaadra = 2,
|
||||||
/obj/item/seeds/bluetomatoseed = 1
|
/obj/item/seeds/icepepperseed = 2,
|
||||||
),
|
/obj/item/seeds/siflettuce = 1
|
||||||
list(
|
),
|
||||||
/obj/item/seeds/durian = 2,
|
prob(10);list( ///Poison party
|
||||||
/obj/item/seeds/ambrosiadeusseed = 1,
|
/obj/item/seeds/ambrosiavulgarisseed = 3,
|
||||||
/obj/item/seeds/killertomatoseed = 1
|
/obj/item/seeds/surik = 1,
|
||||||
),
|
/obj/item/seeds/telriis = 1,
|
||||||
list(
|
/obj/item/seeds/nettleseed = 2,
|
||||||
/obj/item/seeds/ambrosiavulgarisseed = 3,
|
/obj/item/seeds/poisonberryseed = 1
|
||||||
/obj/item/seeds/random = 6
|
),
|
||||||
)
|
prob(5);list( /// Extra poison party!
|
||||||
))
|
/obj/item/seeds/ambrosiainfernusseed = 1,
|
||||||
|
/obj/item/seeds/amauri = 1,
|
||||||
|
/obj/item/seeds/surik = 1,
|
||||||
|
/obj/item/seeds/deathberryseed = 1 /// Very ow.
|
||||||
|
)
|
||||||
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/machinery/seed_storage/process()
|
/obj/machinery/seed_storage/process()
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
icon_state = "hydrotray3"
|
icon_state = "hydrotray3"
|
||||||
density = TRUE
|
density = TRUE
|
||||||
anchored = TRUE
|
anchored = TRUE
|
||||||
|
unacidable = TRUE
|
||||||
flags = OPENCONTAINER
|
flags = OPENCONTAINER
|
||||||
volume = 100
|
volume = 100
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
initial_flooring = /decl/flooring/looking_glass
|
initial_flooring = /decl/flooring/looking_glass
|
||||||
appearance_flags = TILE_BOUND
|
appearance_flags = TILE_BOUND
|
||||||
dynamic_lighting = FALSE
|
dynamic_lighting = FALSE
|
||||||
|
flags = TURF_ACID_IMMUNE
|
||||||
|
|
||||||
var/center = FALSE
|
var/center = FALSE
|
||||||
var/optional = FALSE
|
var/optional = FALSE
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user