mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-23 12:08:28 +01:00
@@ -1,35 +1,3 @@
|
||||
/**********************Miner Lockers**************************/
|
||||
|
||||
/obj/structure/closet/secure_closet/miner
|
||||
name = "miner's equipment"
|
||||
icon_state = "miningsec1"
|
||||
icon_closed = "miningsec"
|
||||
icon_locked = "miningsec1"
|
||||
icon_opened = "miningsecopen"
|
||||
icon_broken = "miningsecbroken"
|
||||
icon_off = "miningsecoff"
|
||||
req_access = list(access_mining)
|
||||
|
||||
/obj/structure/closet/secure_closet/miner/New()
|
||||
..()
|
||||
sleep(2)
|
||||
if(prob(50))
|
||||
new /obj/item/weapon/storage/backpack/industrial(src)
|
||||
else
|
||||
new /obj/item/weapon/storage/backpack/satchel/eng(src)
|
||||
new /obj/item/device/radio/headset/headset_cargo(src)
|
||||
new /obj/item/clothing/under/rank/miner(src)
|
||||
new /obj/item/clothing/gloves/black(src)
|
||||
new /obj/item/clothing/shoes/black(src)
|
||||
new /obj/item/device/analyzer(src)
|
||||
new /obj/item/weapon/storage/bag/ore(src)
|
||||
new /obj/item/device/flashlight/lantern(src)
|
||||
new /obj/item/weapon/shovel(src)
|
||||
new /obj/item/weapon/pickaxe(src)
|
||||
new /obj/item/clothing/glasses/material(src)
|
||||
new /obj/item/clothing/suit/storage/hooded/wintercoat/miner(src)
|
||||
new /obj/item/clothing/shoes/boots/winter/mining(src)
|
||||
|
||||
/******************************Lantern*******************************/
|
||||
|
||||
/obj/item/device/flashlight/lantern
|
||||
|
||||
@@ -616,11 +616,11 @@
|
||||
var/temp_adj = 0
|
||||
if(loc_temp < bodytemperature) //Place is colder than we are
|
||||
var/thermal_protection = get_cold_protection(loc_temp) //This returns a 0 - 1 value, which corresponds to the percentage of protection based on what you're wearing and what you're exposed to.
|
||||
if(thermal_protection < 1)
|
||||
if(thermal_protection < 0.99) //For some reason, < 1 returns false if the value is 1.
|
||||
temp_adj = (1-thermal_protection) * ((loc_temp - bodytemperature) / BODYTEMP_COLD_DIVISOR) //this will be negative
|
||||
else if (loc_temp > bodytemperature) //Place is hotter than we are
|
||||
var/thermal_protection = get_heat_protection(loc_temp) //This returns a 0 - 1 value, which corresponds to the percentage of protection based on what you're wearing and what you're exposed to.
|
||||
if(thermal_protection < 1)
|
||||
if(thermal_protection < 0.99) //For some reason, < 1 returns false if the value is 1.
|
||||
temp_adj = (1-thermal_protection) * ((loc_temp - bodytemperature) / BODYTEMP_HEAT_DIVISOR)
|
||||
|
||||
//Use heat transfer as proportional to the gas density. However, we only care about the relative density vs standard 101 kPa/20 C air. Therefore we can use mole ratios
|
||||
|
||||
@@ -83,15 +83,15 @@
|
||||
var/datum/language/species_language = all_languages[default_language]
|
||||
return species_language.get_random_name(gender)
|
||||
|
||||
/datum/species/vox/equip_survival_gear(var/mob/living/carbon/human/H)
|
||||
/datum/species/vox/equip_survival_gear(var/mob/living/carbon/human/H, var/extendedtank = 0,var/comprehensive = 0)
|
||||
. = ..()
|
||||
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/mask/breath(H), slot_wear_mask)
|
||||
if(H.backbag == 1)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/tank/vox(H), slot_back)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/vox(H), slot_r_hand)
|
||||
H.internal = H.back
|
||||
else
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/tank/vox(H), slot_r_hand)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/vox(H.back), slot_in_backpack)
|
||||
H.internal = H.r_hand
|
||||
H.internal = locate(/obj/item/weapon/tank) in H.contents
|
||||
if(istype(H.internal,/obj/item/weapon/tank) && H.internals)
|
||||
|
||||
@@ -233,19 +233,39 @@
|
||||
/datum/species/proc/sanitize_name(var/name, var/robot = 0)
|
||||
return sanitizeName(name, MAX_NAME_LEN, robot)
|
||||
|
||||
/datum/species/proc/equip_survival_gear(var/mob/living/carbon/human/H,var/extendedtank = 1)
|
||||
/datum/species/proc/equip_survival_gear(var/mob/living/carbon/human/H,var/extendedtank = 0,var/comprehensive = 0)
|
||||
var/boxtype = /obj/item/weapon/storage/box/survival //Default survival box
|
||||
|
||||
if(H.isSynthetic())
|
||||
boxtype = /obj/item/weapon/storage/box/synth //VOREStation Edit - Synth survival box on Tether
|
||||
else if(extendedtank)
|
||||
boxtype = /obj/item/weapon/storage/box/engineer //Special box for engineers
|
||||
boxtype = /obj/item/weapon/storage/box //Empty box for synths
|
||||
|
||||
//Special box for engineers
|
||||
if(comprehensive)
|
||||
boxtype = /obj/item/weapon/storage/box/survival/comp
|
||||
|
||||
//Create the box
|
||||
var/obj/item/weapon/storage/box/box = new boxtype(H)
|
||||
|
||||
//Create a tank (if such a thing exists for this species)
|
||||
var/tanktext = "/obj/item/weapon/tank/emergency/" + "[breath_type]"
|
||||
var/obj/item/weapon/tank/emergency/tankpath //Will force someone to come look here if they ever alter this path.
|
||||
if(extendedtank)
|
||||
tankpath = text2path(tanktext + "/engi")
|
||||
if(!tankpath) //Is it just that there's no /engi?
|
||||
tankpath = text2path(tanktext + "/double")
|
||||
|
||||
if(!tankpath)
|
||||
tankpath = text2path(tanktext)
|
||||
|
||||
if(tankpath)
|
||||
new tankpath(box)
|
||||
|
||||
box.calibrate_size()
|
||||
|
||||
if(H.backbag == 1)
|
||||
if (extendedtank) H.equip_to_slot_or_del(new boxtype(H), slot_r_hand)
|
||||
else H.equip_to_slot_or_del(new boxtype(H), slot_r_hand)
|
||||
H.equip_to_slot_or_del(box, slot_r_hand)
|
||||
else
|
||||
if (extendedtank) H.equip_to_slot_or_del(new boxtype(H.back), slot_in_backpack)
|
||||
else H.equip_to_slot_or_del(new boxtype(H.back), slot_in_backpack)
|
||||
H.equip_to_slot_or_del(box, slot_in_backpack)
|
||||
|
||||
/datum/species/proc/create_organs(var/mob/living/carbon/human/H) //Handles creation of mob organs.
|
||||
|
||||
|
||||
@@ -328,7 +328,7 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HURT)
|
||||
set name = "a-intent"
|
||||
set hidden = 1
|
||||
|
||||
if(isliving(src))
|
||||
if(isliving(src) && !isrobot(src))
|
||||
switch(input)
|
||||
if(I_HELP,I_DISARM,I_GRAB,I_HURT)
|
||||
a_intent = input
|
||||
|
||||
@@ -43,8 +43,11 @@
|
||||
/datum/nano_module/power_monitor/proc/refresh_sensors()
|
||||
grid_sensors = list()
|
||||
var/turf/T = get_turf(nano_host())
|
||||
var/list/levels = list()
|
||||
if(T)
|
||||
levels += using_map.get_map_levels(T.z, FALSE)
|
||||
for(var/obj/machinery/power/sensor/S in machines)
|
||||
if((T && S.loc.z == T.z) || (S.long_range)) // Consoles have range on their Z-Level. Sensors with long_range var will work between Z levels.
|
||||
if(T && (S.loc.z == T.z) || (S.loc.z in levels) || (S.long_range)) // Consoles have range on their Z-Level. Sensors with long_range var will work between Z levels.
|
||||
if(S.name_tag == "#UNKN#") // Default name. Shouldn't happen!
|
||||
warning("Powernet sensor with unset ID Tag! [S.x]X [S.y]Y [S.z]Z")
|
||||
else
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/item/weapon/gun/energy/gun
|
||||
name = "energy gun"
|
||||
desc = "Another bestseller of Lawson Arms and the FTU, the LAEP90 Perun is a versatile energy based sidearm, capable of switching between low and high capacity projectile settings. In other words: Stun or Kill."
|
||||
desc = "Another bestseller of Lawson Arms and "+TSC_HEPH+", the LAEP90 Perun is a versatile energy based sidearm, capable of switching between low and high capacity projectile settings. In other words: Stun or Kill."
|
||||
icon_state = "energystun100"
|
||||
item_state = null //so the human update icon uses the icon_state instead.
|
||||
fire_delay = 10 // Handguns should be inferior to two-handed weapons.
|
||||
@@ -64,4 +64,4 @@
|
||||
firemodes = list(
|
||||
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, modifystate="nucgunstun", charge_cost = 240),
|
||||
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="nucgunkill", charge_cost = 480),
|
||||
)
|
||||
)
|
||||
|
||||
@@ -15,8 +15,6 @@
|
||||
flags = OPENCONTAINER
|
||||
slot_flags = SLOT_BELT
|
||||
preserve_item = 1
|
||||
var/reusable = 1
|
||||
var/used = 0
|
||||
var/filled = 0
|
||||
var/list/filled_reagents = list()
|
||||
|
||||
@@ -64,9 +62,6 @@
|
||||
admin_inject_log(user, M, src, contained, trans)
|
||||
to_chat(user, "<span class='notice'>[trans] units injected. [reagents.total_volume] units remaining in \the [src].</span>")
|
||||
|
||||
if(!reusable && !used)
|
||||
used = !used
|
||||
|
||||
return
|
||||
//A vial-loaded hypospray. Cartridge-based!
|
||||
/obj/item/weapon/reagent_containers/hypospray/vial
|
||||
@@ -122,11 +117,10 @@
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector
|
||||
name = "autoinjector"
|
||||
desc = "A rapid and safe way to administer small amounts of drugs by untrained or trained personnel."
|
||||
icon_state = "autoinjector"
|
||||
item_state = "autoinjector"
|
||||
icon_state = "blue"
|
||||
item_state = "blue"
|
||||
amount_per_transfer_from_this = 5
|
||||
volume = 5
|
||||
reusable = 0
|
||||
filled = 1
|
||||
filled_reagents = list("inaprovaline" = 5)
|
||||
preserve_item = 0
|
||||
@@ -139,33 +133,35 @@
|
||||
filled = 0
|
||||
filled_reagents = list()
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/used
|
||||
used = 1
|
||||
filled_reagents = list()
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/used/New()
|
||||
..()
|
||||
flags &= ~OPENCONTAINER
|
||||
icon_state = "[initial(icon_state)]0"
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/attack(mob/M as mob, mob/user as mob)
|
||||
..()
|
||||
if(used) //Prevents autoinjectors to be refilled.
|
||||
if(reagents.total_volume <= 0) //Prevents autoinjectors to be refilled.
|
||||
flags &= ~OPENCONTAINER
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/update_icon()
|
||||
if(!used && reagents.reagent_list.len)
|
||||
if(reagents.total_volume > 0)
|
||||
icon_state = "[initial(icon_state)]1"
|
||||
else if(used)
|
||||
icon_state = "[initial(icon_state)]0"
|
||||
else
|
||||
icon_state = "[initial(icon_state)]2"
|
||||
icon_state = "[initial(icon_state)]0"
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/examine(mob/user)
|
||||
..(user)
|
||||
. = ..(user)
|
||||
if(reagents && reagents.reagent_list.len)
|
||||
user << "<span class='notice'>It is currently loaded.</span>"
|
||||
else if(used)
|
||||
user << "<span class='notice'>It is spent.</span>"
|
||||
to_chat(user, "<span class='notice'>It is currently loaded.</span>")
|
||||
else
|
||||
user << "<span class='notice'>It is currently unloaded.</span>"
|
||||
to_chat(user, "<span class='notice'>It is spent.</span>")
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/detox
|
||||
name = "autoinjector (antitox)"
|
||||
icon_state = "green"
|
||||
filled_reagents = list("anti_toxin" = 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting
|
||||
name = "clotting agent"
|
||||
|
||||
Reference in New Issue
Block a user