mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-28 22:48:38 +01:00
Merge branch 'master' of https://github.com/PolarisSS13/Polaris into polaris-sync-2018-01-20
This commit is contained in:
@@ -327,7 +327,7 @@
|
||||
*/
|
||||
/obj/machinery/computer/scan_consolenew/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
|
||||
if(user == connected.occupant || user.stat)
|
||||
if(!connected || user == connected.occupant || user.stat)
|
||||
return
|
||||
|
||||
// this is the data which will be sent to the ui
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
/obj/item/device/kit
|
||||
icon_state = "modkit"
|
||||
icon = 'icons/obj/device.dmi'
|
||||
var/new_name = "mech" //What is the variant called?
|
||||
var/new_desc = "A mech." //How is the new mech described?
|
||||
var/new_icon = "ripley" //What base icon will the new mech use?
|
||||
w_class = ITEMSIZE_SMALL
|
||||
var/new_name = "custom item"
|
||||
var/new_desc = "A custom item."
|
||||
var/new_icon
|
||||
var/new_icon_file
|
||||
var/new_icon_override_file
|
||||
var/uses = 1 // Uses before the kit deletes itself.
|
||||
var/list/allowed_types = list()
|
||||
|
||||
/obj/item/device/kit/examine()
|
||||
..()
|
||||
usr << "It has [uses] [uses>1?"uses":"use"] left."
|
||||
to_chat(usr, "It has [uses] use\s left.")
|
||||
|
||||
/obj/item/device/kit/proc/use(var/amt, var/mob/user)
|
||||
uses -= amt
|
||||
@@ -18,6 +21,42 @@
|
||||
user.drop_item()
|
||||
qdel(src)
|
||||
|
||||
/obj/item/device/kit/proc/can_customize(var/obj/item/I)
|
||||
return is_type_in_list(I, allowed_types)
|
||||
|
||||
/obj/item/device/kit/proc/set_info(var/kit_name, var/kit_desc, var/kit_icon, var/kit_icon_file = CUSTOM_ITEM_OBJ, var/kit_icon_override_file = CUSTOM_ITEM_MOB, var/additional_data)
|
||||
new_name = kit_name
|
||||
new_desc = kit_desc
|
||||
new_icon = kit_icon
|
||||
new_icon_file = kit_icon_file
|
||||
new_icon_override_file = kit_icon_override_file
|
||||
|
||||
for(var/path in splittext(additional_data, ", "))
|
||||
allowed_types |= text2path(path)
|
||||
|
||||
/obj/item/device/kit/proc/customize(var/obj/item/I, var/mob/user)
|
||||
if(can_customize(I))
|
||||
I.name = new_name ? new_name : I.name
|
||||
I.desc = new_desc ? new_desc : I.desc
|
||||
I.icon = new_icon_file ? new_icon_file : I.icon
|
||||
I.icon_override = new_icon_override_file ? new_icon_override_file : I.icon_override
|
||||
if(new_icon)
|
||||
I.icon_state = new_icon
|
||||
var/obj/item/clothing/under/U = I
|
||||
if(istype(U))
|
||||
U.worn_state = I.icon_state
|
||||
U.update_rolldown_status()
|
||||
use(1, user)
|
||||
|
||||
// Generic use
|
||||
/obj/item/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/device/kit))
|
||||
var/obj/item/device/kit/K = W
|
||||
K.customize(src, user)
|
||||
return
|
||||
|
||||
..()
|
||||
|
||||
// Root hardsuit kit defines.
|
||||
// Icons for modified hardsuits need to be in the proper .dmis because suit cyclers may cock them up.
|
||||
/obj/item/device/kit/suit
|
||||
@@ -25,88 +64,141 @@
|
||||
desc = "A kit for modifying a voidsuit."
|
||||
uses = 2
|
||||
var/new_light_overlay
|
||||
var/new_mob_icon_file
|
||||
|
||||
/obj/item/device/kit/suit/can_customize(var/obj/item/I)
|
||||
return istype(I, /obj/item/clothing/head/helmet/space/void) || istype(I, /obj/item/clothing/suit/space/void) || istype(I, /obj/item/clothing/suit/storage/hooded/explorer)
|
||||
|
||||
/obj/item/device/kit/suit/set_info(var/kit_name, var/kit_desc, var/kit_icon, var/kit_icon_file = CUSTOM_ITEM_OBJ, var/kit_icon_override_file = CUSTOM_ITEM_MOB, var/additional_data)
|
||||
..()
|
||||
|
||||
new_light_overlay = additional_data
|
||||
|
||||
|
||||
/obj/item/device/kit/suit/customize(var/obj/item/I, var/mob/user)
|
||||
if(can_customize(I))
|
||||
if(istype(I, /obj/item/clothing/head/helmet/space/void))
|
||||
var/obj/item/clothing/head/helmet/space/void/helmet = I
|
||||
helmet.name = "[new_name] suit helmet"
|
||||
helmet.desc = new_desc
|
||||
helmet.icon_state = "[new_icon]_helmet"
|
||||
helmet.item_state = "[new_icon]_helmet"
|
||||
if(new_icon_file)
|
||||
helmet.icon = new_icon_file
|
||||
if(new_icon_override_file)
|
||||
helmet.icon_override = new_icon_override_file
|
||||
if(new_light_overlay)
|
||||
helmet.light_overlay = new_light_overlay
|
||||
to_chat(user, "You set about modifying the helmet into [helmet].")
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(istype(H))
|
||||
helmet.species_restricted = list(H.species.get_bodytype(H))
|
||||
else if(istype(I, /obj/item/clothing/suit/storage/hooded))
|
||||
var/obj/item/clothing/suit/storage/hooded/suit = I
|
||||
suit.name = "[new_name] suit"
|
||||
suit.desc = new_desc
|
||||
suit.icon_state = "[new_icon]_suit"
|
||||
suit.toggleicon = "[new_icon]_suit"
|
||||
suit.item_state = "[new_icon]_suit"
|
||||
var/obj/item/clothing/head/hood/S = suit.hood
|
||||
S.icon_state = "[new_icon]_helmet"
|
||||
S.item_state = "[new_icon]_helmet"
|
||||
if(new_icon_file)
|
||||
suit.icon = new_icon_file
|
||||
S.icon = new_icon_file
|
||||
if(new_icon_override_file)
|
||||
suit.icon_override = new_icon_override_file
|
||||
S.icon_override = new_icon_override_file
|
||||
to_chat(user, "You set about modifying the suit into [suit].")
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(istype(H))
|
||||
suit.species_restricted = list(H.species.get_bodytype(H))
|
||||
else
|
||||
var/obj/item/clothing/suit/space/void/suit = I
|
||||
suit.name = "[new_name] voidsuit"
|
||||
suit.desc = new_desc
|
||||
suit.icon_state = "[new_icon]_suit"
|
||||
suit.item_state = "[new_icon]_suit"
|
||||
if(new_icon_file)
|
||||
suit.icon = new_icon_file
|
||||
if(new_icon_override_file)
|
||||
suit.icon_override = new_icon_override_file
|
||||
to_chat(user, "You set about modifying the suit into [suit].")
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(istype(H))
|
||||
suit.species_restricted = list(H.species.get_bodytype(H))
|
||||
use(1,user)
|
||||
|
||||
/obj/item/clothing/head/helmet/space/void/attackby(var/obj/item/O, var/mob/user)
|
||||
if(istype(O,/obj/item/device/kit/suit))
|
||||
var/obj/item/device/kit/suit/kit = O
|
||||
name = "[kit.new_name] suit helmet"
|
||||
desc = kit.new_desc
|
||||
icon_state = "[kit.new_icon]_helmet"
|
||||
item_state = "[kit.new_icon]_helmet"
|
||||
if(kit.new_icon_file)
|
||||
icon = kit.new_icon_file
|
||||
if(kit.new_mob_icon_file)
|
||||
icon_override = kit.new_mob_icon_file
|
||||
if(kit.new_light_overlay)
|
||||
light_overlay = kit.new_light_overlay
|
||||
user << "You set about modifying the helmet into [src]."
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(istype(H))
|
||||
species_restricted = list(H.species.get_bodytype())
|
||||
kit.use(1,user)
|
||||
return 1
|
||||
kit.customize(src, user)
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/suit/space/void/attackby(var/obj/item/O, var/mob/user)
|
||||
if(istype(O,/obj/item/device/kit/suit))
|
||||
var/obj/item/device/kit/suit/kit = O
|
||||
name = "[kit.new_name] voidsuit"
|
||||
desc = kit.new_desc
|
||||
icon_state = "[kit.new_icon]_suit"
|
||||
item_state = "[kit.new_icon]_suit"
|
||||
if(kit.new_icon_file)
|
||||
icon = kit.new_icon_file
|
||||
if(kit.new_mob_icon_file)
|
||||
icon_override = kit.new_mob_icon_file
|
||||
user << "You set about modifying the suit into [src]."
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(istype(H))
|
||||
species_restricted = list(H.species.get_bodytype())
|
||||
kit.use(1,user)
|
||||
return 1
|
||||
kit.customize(src, user)
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/attackby(var/obj/item/O, var/mob/user)
|
||||
if(istype(O,/obj/item/device/kit/suit))
|
||||
var/obj/item/device/kit/suit/kit = O
|
||||
kit.customize(src, user)
|
||||
return
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/device/kit/paint
|
||||
name = "mecha customisation kit"
|
||||
desc = "A kit containing all the needed tools and parts to repaint a mech."
|
||||
var/removable = null
|
||||
var/list/allowed_types = list()
|
||||
|
||||
/obj/item/device/kit/paint/can_customize(var/obj/mecha/M)
|
||||
if(!istype(M))
|
||||
return 0
|
||||
|
||||
for(var/type in allowed_types)
|
||||
if(type == M.initial_icon)
|
||||
return 1
|
||||
|
||||
/obj/item/device/kit/paint/set_info(var/kit_name, var/kit_desc, var/kit_icon, var/kit_icon_file = CUSTOM_ITEM_OBJ, var/kit_icon_override_file = CUSTOM_ITEM_MOB, var/additional_data)
|
||||
..()
|
||||
|
||||
allowed_types = splittext(additional_data, ", ")
|
||||
|
||||
|
||||
/obj/item/device/kit/paint/examine()
|
||||
..()
|
||||
usr << "This kit will convert an exosuit into: [new_name]."
|
||||
usr << "This kit can be used on the following exosuit models:"
|
||||
to_chat(usr, "This kit will convert an exosuit into: [new_name].")
|
||||
to_chat(usr, "This kit can be used on the following exosuit models:")
|
||||
for(var/exotype in allowed_types)
|
||||
usr << "- [capitalize(exotype)]"
|
||||
to_chat(usr, "- [capitalize(exotype)]")
|
||||
|
||||
/obj/item/device/kit/paint/customize(var/obj/mecha/M, var/mob/user)
|
||||
if(!can_customize(M))
|
||||
to_chat(user, "That kit isn't meant for use on this class of exosuit.")
|
||||
return
|
||||
|
||||
if(M.occupant)
|
||||
to_chat(user, "You can't customize a mech while someone is piloting it - that would be unsafe!")
|
||||
return
|
||||
|
||||
user.visible_message("[user] opens [src] and spends some quality time customising [M].")
|
||||
M.name = new_name
|
||||
M.desc = new_desc
|
||||
M.initial_icon = new_icon
|
||||
if(new_icon_file)
|
||||
M.icon = new_icon_file
|
||||
M.reset_icon()
|
||||
use(1, user)
|
||||
|
||||
/obj/mecha/attackby(var/obj/item/weapon/W, var/mob/user)
|
||||
if(istype(W, /obj/item/device/kit/paint))
|
||||
if(occupant)
|
||||
user << "You can't customize a mech while someone is piloting it - that would be unsafe!"
|
||||
return
|
||||
|
||||
var/obj/item/device/kit/paint/P = W
|
||||
var/found = null
|
||||
|
||||
for(var/type in P.allowed_types)
|
||||
if(type==src.initial_icon)
|
||||
found = 1
|
||||
break
|
||||
|
||||
if(!found)
|
||||
user << "That kit isn't meant for use on this class of exosuit."
|
||||
return
|
||||
|
||||
user.visible_message("[user] opens [P] and spends some quality time customising [src].")
|
||||
src.name = P.new_name
|
||||
src.desc = P.new_desc
|
||||
src.initial_icon = P.new_icon
|
||||
if(P.new_icon_file)
|
||||
src.icon = P.new_icon_file
|
||||
src.reset_icon()
|
||||
P.use(1, user)
|
||||
return 1
|
||||
P.customize(src, user)
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -147,6 +147,76 @@
|
||||
</body>
|
||||
</html>"}
|
||||
|
||||
// TESLA Engine
|
||||
|
||||
/obj/item/weapon/book/manual/tesla_engine
|
||||
name = "Tesla Operating Manual"
|
||||
icon_state ="bookTesla"
|
||||
author = "Engineering Encyclopedia"
|
||||
title = "Tesla Engine User's Guide"
|
||||
dat = {"<html>
|
||||
<head>
|
||||
<style>
|
||||
h1 {font-size: 18px; margin: 15px 0px 5px;}
|
||||
h2 {font-size: 15px; margin: 15px 0px 5px;}
|
||||
li {margin: 2px 0px 2px 15px;}
|
||||
ul {margin: 5px; padding: 0px;}
|
||||
ol {margin: 5px; padding: 0px 15px;}
|
||||
body {font-size: 13px; font-family: Verdana;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>OPERATING MANUAL FOR MK 2 PROTOTYPE TESLA ENGINE 'EDISON'S BANE'</h1>
|
||||
<br>
|
||||
<h2>OPERATING PRINCIPLES</h2>
|
||||
<p>This big floaty ball of pure electricity can only be contained by the containment field. It periodically will discharge energy in the form of an electric shock which can be harvested for energy.</p>
|
||||
<p>When you shoot the energy ball with the Particle Accelerator, it gains energy, and when enough energy is accumulated a mini-energy ball that orbits the big energy ball will be formed. This can happen as many times as you let it, each mini-ball will send off an extra shock when the energy ball pulses. Be warned, the more mini-balls the energy ball has, the more shocks it sends out at once and the further it can travel each move.</p>
|
||||
<p>An energy ball will shoot bolts of electricity off at conductors, which it prioritizes in this order:
|
||||
<ol>
|
||||
<li>Tesla coils</li>
|
||||
<li>Grounding rods</li>
|
||||
<li>People and animals</li>
|
||||
<li>Machines</li>
|
||||
</ol>
|
||||
</p>
|
||||
<p>Tesla Coils will attract the energy ball's bolts. They will take half the power of the bolt (if they are connected to a wire node), pump it into the powernet it is hooked to, and then will send the other half of the power to the next available conductor, which follows the criteria listed above. Preferably, this will be another coil to harness more of the power and pump it into the grid.</p>
|
||||
<p>Grounding Rods are safety precautions to prevent the tesla bolts from hitting machinery or personnel. If the tesla is loose, being near one will usually keep you safe from direct shocks.</p>
|
||||
<br>
|
||||
<h2>STARTUP PROCEDURE</h2>
|
||||
<ol>
|
||||
<li>Bolt and weld down the Field Generators, ensuring they form a complete rectangle.</li>
|
||||
<li>Bolt and weld down the Emitters, ensuring their fire will strike the corner Field Generators</li>
|
||||
<li>Bolt down the Tesla Generator inside the rectangle formed by the Field Generators in a spot where it will be struck by fire from the Particle Accelerator</li>
|
||||
<li>Bolt down Telsa Coils and Grounding Rods</li>
|
||||
<li>Activate the Emitters</li>
|
||||
<li>Activate each of the Field Generators, then wait until the containment field has completely formed.</li>
|
||||
<li>Setup the Particle Accelerator (see our best seller <i>"Particle Accelerator User's Guide"</i>!) and activate it.</li>
|
||||
<li>After a short time the Telsa Generator will create an energy ball, being consumed in the process.</li>
|
||||
</ol>
|
||||
<br>
|
||||
<h2>OPERATION AND MAINTENANCE</h2>
|
||||
<ol>
|
||||
<li>Ensure that electrical protection and meson goggles are worn at all times while working in the engine room.</li>
|
||||
<li>Ensure that Telsa Coils and/or Grounding Rods are placed to safely collect or ground any and all shock.</li>
|
||||
<li>Ensure that all Emitters remain activated and have unobstructed lines of fire to the Field Generators.</li>
|
||||
<li>Do <b>not</b> let the Emitters run out of power.</li>
|
||||
</ol>
|
||||
<br>
|
||||
<h2>SHUTDOWN PROCEDURE</h2>
|
||||
<ol>
|
||||
<li>De-activate the Particle Accelerator. The energy ball will begin to shrink and lose mini-balls.</li>
|
||||
<li>When the energy ball has completely dissipated, the Emitters can be de-activated.</li>
|
||||
</ol>
|
||||
<br>
|
||||
<h2>ENERGY BALL ESCAPE PROCEDURE</h2>
|
||||
<ol>
|
||||
<li>Do not let it escape.</li>
|
||||
<li>Have someone ready to blame when it does escape.</li>
|
||||
<li>Buy our forthcoming manual "<i>Celebrity Grounding Rod Shelters of the Galaxy</i>"</li>
|
||||
</ol>
|
||||
</body>
|
||||
</html>"}
|
||||
|
||||
//R-UST port
|
||||
/obj/item/weapon/book/manual/rust_engine
|
||||
name = "R-UST Operating Manual"
|
||||
|
||||
@@ -665,10 +665,10 @@ obj/item/clothing/suit/storage/toggle/peacoat
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
hooded = 1
|
||||
hoodtype = /obj/item/clothing/head/winterhood
|
||||
hoodtype = /obj/item/clothing/head/hood/winter
|
||||
allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask)
|
||||
|
||||
/obj/item/clothing/head/winterhood
|
||||
/obj/item/clothing/head/hood/winter
|
||||
name = "winter hood"
|
||||
desc = "A hood attached to a heavy winter jacket."
|
||||
icon_state = "generic_hood"
|
||||
@@ -682,9 +682,9 @@ obj/item/clothing/suit/storage/toggle/peacoat
|
||||
icon_state = "coatcaptain"
|
||||
item_state_slots = list(slot_r_hand_str = "coatcaptain", slot_l_hand_str = "coatcaptain")
|
||||
armor = list(melee = 20, bullet = 15, laser = 20, energy = 10, bomb = 15, bio = 0, rad = 0)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/captain
|
||||
hoodtype = /obj/item/clothing/head/hood/winter/captain
|
||||
|
||||
/obj/item/clothing/head/winterhood/captain
|
||||
/obj/item/clothing/head/hood/winter/captain
|
||||
name = "colony director's winter hood"
|
||||
armor = list(melee = 20, bullet = 15, laser = 20, energy = 10, bomb = 15, bio = 0, rad = 0)
|
||||
|
||||
@@ -693,9 +693,9 @@ obj/item/clothing/suit/storage/toggle/peacoat
|
||||
icon_state = "coatsecurity"
|
||||
item_state_slots = list(slot_r_hand_str = "coatsecurity", slot_l_hand_str = "coatsecurity")
|
||||
armor = list(melee = 25, bullet = 20, laser = 20, energy = 15, bomb = 20, bio = 0, rad = 0)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/security
|
||||
hoodtype = /obj/item/clothing/head/hood/winter/security
|
||||
|
||||
/obj/item/clothing/head/winterhood/security
|
||||
/obj/item/clothing/head/hood/winter/security
|
||||
name = "security winter hood"
|
||||
armor = list(melee = 25, bullet = 20, laser = 20, energy = 15, bomb = 20, bio = 0, rad = 0)
|
||||
|
||||
@@ -704,9 +704,9 @@ obj/item/clothing/suit/storage/toggle/peacoat
|
||||
icon_state = "coatmedical"
|
||||
item_state_slots = list(slot_r_hand_str = "coatmedical", slot_l_hand_str = "coatmedical")
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/medical
|
||||
hoodtype = /obj/item/clothing/head/hood/winter/medical
|
||||
|
||||
/obj/item/clothing/head/winterhood/medical
|
||||
/obj/item/clothing/head/hood/winter/medical
|
||||
name = "medical winter hood"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
|
||||
|
||||
@@ -715,9 +715,9 @@ obj/item/clothing/suit/storage/toggle/peacoat
|
||||
icon_state = "coatscience"
|
||||
item_state_slots = list(slot_r_hand_str = "coatscience", slot_l_hand_str = "coatscience")
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/science
|
||||
hoodtype = /obj/item/clothing/head/hood/winter/science
|
||||
|
||||
/obj/item/clothing/head/winterhood/science
|
||||
/obj/item/clothing/head/hood/winter/science
|
||||
name = "science winter hood"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0)
|
||||
|
||||
@@ -726,9 +726,9 @@ obj/item/clothing/suit/storage/toggle/peacoat
|
||||
icon_state = "coatengineer"
|
||||
item_state_slots = list(slot_r_hand_str = "coatengineer", slot_l_hand_str = "coatengineer")
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/engineering
|
||||
hoodtype = /obj/item/clothing/head/hood/winter/engineering
|
||||
|
||||
/obj/item/clothing/head/winterhood/engineering
|
||||
/obj/item/clothing/head/hood/winter/engineering
|
||||
name = "engineering winter hood"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20)
|
||||
|
||||
@@ -736,27 +736,27 @@ obj/item/clothing/suit/storage/toggle/peacoat
|
||||
name = "atmospherics winter coat"
|
||||
icon_state = "coatatmos"
|
||||
item_state_slots = list(slot_r_hand_str = "coatatmos", slot_l_hand_str = "coatatmos")
|
||||
hoodtype = /obj/item/clothing/head/winterhood/engineering/atmos
|
||||
hoodtype = /obj/item/clothing/head/hood/winter/engineering/atmos
|
||||
|
||||
/obj/item/clothing/head/winterhood/engineering/atmos
|
||||
/obj/item/clothing/head/hood/winter/engineering/atmos
|
||||
name = "atmospherics winter hood"
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/hydro
|
||||
name = "hydroponics winter coat"
|
||||
icon_state = "coathydro"
|
||||
item_state_slots = list(slot_r_hand_str = "coathydro", slot_l_hand_str = "coathydro")
|
||||
hoodtype = /obj/item/clothing/head/winterhood/hydro
|
||||
hoodtype = /obj/item/clothing/head/hood/winter/hydro
|
||||
|
||||
/obj/item/clothing/head/winterhood/hydro
|
||||
/obj/item/clothing/head/hood/winter/hydro
|
||||
name = "hydroponics winter hood"
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/cargo
|
||||
name = "cargo winter coat"
|
||||
icon_state = "coatcargo"
|
||||
item_state_slots = list(slot_r_hand_str = "coatcargo", slot_l_hand_str = "coatcargo")
|
||||
hoodtype = /obj/item/clothing/head/winterhood/cargo
|
||||
hoodtype = /obj/item/clothing/head/hood/winter/cargo
|
||||
|
||||
/obj/item/clothing/head/winterhood/cargo
|
||||
/obj/item/clothing/head/hood/winter/cargo
|
||||
name = "cargo winter hood"
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/miner
|
||||
@@ -764,9 +764,9 @@ obj/item/clothing/suit/storage/toggle/peacoat
|
||||
icon_state = "coatminer"
|
||||
item_state_slots = list(slot_r_hand_str = "coatminer", slot_l_hand_str = "coatminer")
|
||||
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
hoodtype = /obj/item/clothing/head/winterhood/miner
|
||||
hoodtype = /obj/item/clothing/head/hood/winter/miner
|
||||
|
||||
/obj/item/clothing/head/winterhood/miner
|
||||
/obj/item/clothing/head/hood/winter/miner
|
||||
name = "mining winter hood"
|
||||
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
|
||||
@@ -780,7 +780,7 @@ obj/item/clothing/suit/storage/toggle/peacoat
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
|
||||
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
hooded = TRUE
|
||||
hoodtype = /obj/item/clothing/head/explorer
|
||||
hoodtype = /obj/item/clothing/head/hood/explorer
|
||||
siemens_coefficient = 0.9
|
||||
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 50, bio = 100, rad = 50) // Inferior to sec vests in bullet/laser but better for environmental protection.
|
||||
allowed = list(
|
||||
@@ -794,7 +794,7 @@ obj/item/clothing/suit/storage/toggle/peacoat
|
||||
/obj/item/weapon/pickaxe
|
||||
)
|
||||
|
||||
/obj/item/clothing/head/explorer
|
||||
/obj/item/clothing/head/hood/explorer
|
||||
name = "explorer hood"
|
||||
desc = "An armoured hood for exploring harsh environments."
|
||||
icon_state = "explorer"
|
||||
|
||||
@@ -5,9 +5,11 @@
|
||||
var/hoodtype = null //so the chaplain hoodie or other hoodies can override this
|
||||
var/suittoggled = 0
|
||||
var/hooded = 0
|
||||
var/toggleicon
|
||||
action_button_name = "Toggle Hood"
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/New()
|
||||
toggleicon = "[initial(icon_state)]"
|
||||
MakeHood()
|
||||
..()
|
||||
|
||||
@@ -17,7 +19,7 @@
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/proc/MakeHood()
|
||||
if(!hood)
|
||||
var/obj/item/clothing/head/winterhood/W = new hoodtype(src)
|
||||
var/obj/item/clothing/head/hood/winter/W = new hoodtype(src)
|
||||
hood = W
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/ui_action_click()
|
||||
@@ -29,7 +31,7 @@
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/proc/RemoveHood()
|
||||
icon_state = "[initial(icon_state)]"
|
||||
icon_state = toggleicon
|
||||
suittoggled = 0
|
||||
hood.canremove = TRUE // This shouldn't matter anyways but just incase.
|
||||
if(ishuman(hood.loc))
|
||||
@@ -46,16 +48,16 @@
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = src.loc
|
||||
if(H.wear_suit != src)
|
||||
H << "<span class='warning'>You must be wearing [src] to put up the hood!</span>"
|
||||
to_chat(H, "<span class='warning'>You must be wearing [src] to put up the hood!</span>")
|
||||
return
|
||||
if(H.head)
|
||||
H << "<span class='warning'>You're already wearing something on your head!</span>"
|
||||
to_chat(H, "<span class='warning'>You're already wearing something on your head!</span>")
|
||||
return
|
||||
else
|
||||
H.equip_to_slot_if_possible(hood,slot_head,0,0,1)
|
||||
suittoggled = 1
|
||||
hood.canremove = FALSE
|
||||
icon_state = "[initial(icon_state)]_t"
|
||||
icon_state = "[toggleicon]_t"
|
||||
H.update_inv_wear_suit()
|
||||
else
|
||||
RemoveHood()
|
||||
@@ -9,11 +9,13 @@
|
||||
// On-mob icons must be in CUSTOM_ITEM_MOB with state name [item_icon].
|
||||
// Inhands must be in CUSTOM_ITEM_MOB as [icon_state]_l and [icon_state]_r.
|
||||
|
||||
// Kits must have mech icons in CUSTOM_ITEM_OBJ under [kit_icon].
|
||||
// Mech kits must have mech icons in CUSTOM_ITEM_OBJ under [kit_icon].
|
||||
// Broken must be [kit_icon]-broken and open must be [kit_icon]-open.
|
||||
|
||||
// Kits must also have hardsuit icons in CUSTOM_ITEM_MOB as [kit_icon]_suit
|
||||
// and [kit_icon]_helmet, and in CUSTOM_ITEM_OBJ as [kit_icon].
|
||||
// Voidsuits and hooded kits must also have hardsuit icons in CUSTOM_ITEM_MOB as [kit_icon]_suit
|
||||
// and [kit_icon]_helmet, and in CUSTOM_ITEM_OBJ as [kit_icon]_suit.
|
||||
// If hooded, have [kit_icon]_suit_t in both files for the hood-up version.
|
||||
// If not using the default overlay, have [kit_icon]_light in both files for custom light overlays.
|
||||
|
||||
/var/list/custom_items = list()
|
||||
|
||||
@@ -30,7 +32,7 @@
|
||||
var/kit_name
|
||||
var/kit_desc
|
||||
var/kit_icon
|
||||
var/additional_data
|
||||
var/additional_data //for modular modkits, item path; for mech modkits, allowed mechs; for voidsuit modkits, light overlays
|
||||
|
||||
/datum/custom_item/proc/spawn_item(var/newloc)
|
||||
var/obj/item/citem = new item_path(newloc)
|
||||
@@ -69,18 +71,7 @@
|
||||
// Kits are dumb so this is going to have to be hardcoded/snowflake.
|
||||
if(istype(item, /obj/item/device/kit))
|
||||
var/obj/item/device/kit/K = item
|
||||
K.new_name = kit_name
|
||||
K.new_desc = kit_desc
|
||||
K.new_icon = kit_icon
|
||||
K.new_icon_file = CUSTOM_ITEM_OBJ
|
||||
if(istype(item, /obj/item/device/kit/paint))
|
||||
var/obj/item/device/kit/paint/kit = item
|
||||
kit.allowed_types = splittext(additional_data, ", ")
|
||||
else if(istype(item, /obj/item/device/kit/suit))
|
||||
var/obj/item/device/kit/suit/kit = item
|
||||
kit.new_light_overlay = additional_data
|
||||
kit.new_mob_icon_file = CUSTOM_ITEM_MOB
|
||||
|
||||
K.set_info(kit_name, kit_desc, kit_icon, additional_data = additional_data)
|
||||
return item
|
||||
|
||||
/datum/custom_item/proc/apply_inherit_inhands(var/obj/item/item)
|
||||
|
||||
@@ -141,7 +141,7 @@ var/const/CE_STABLE_THRESHOLD = 0.5
|
||||
|
||||
//Bleeding out
|
||||
var/blood_max = 0
|
||||
var/blood_loss_divisor = 30 //lower factor = more blood loss
|
||||
var/blood_loss_divisor = 30.01 //lower factor = more blood loss
|
||||
|
||||
// Some species bleed out differently
|
||||
blood_loss_divisor /= species.bloodloss_rate
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
var/list/glass_special = null // null equivalent to list()
|
||||
|
||||
/datum/reagent/proc/remove_self(var/amount) // Shortcut
|
||||
holder.remove_reagent(id, amount)
|
||||
if(holder)
|
||||
holder.remove_reagent(id, amount)
|
||||
|
||||
// This doesn't apply to skin contact - this is for, e.g. extinguishers and sprays. The difference is that reagent is not directly on the mob's skin - it might just be on their clothing.
|
||||
/datum/reagent/proc/touch_mob(var/mob/M, var/amount)
|
||||
|
||||
@@ -2489,13 +2489,13 @@
|
||||
/datum/reagent/ethanol/euphoria
|
||||
name = "Euphoria"
|
||||
id = "euphoria"
|
||||
description = "Invented by a Eutopian marketing team, this is one of the most expensive cocktails in existance."
|
||||
description = "Invented by a Eutopian marketing team, this is one of the most expensive cocktails in existence."
|
||||
taste_description = "impossibly rich alcohol"
|
||||
color = "#614126"
|
||||
strength = 9
|
||||
|
||||
glass_name = "Euphoria"
|
||||
glass_desc = "Invented by a Eutopian marketing team, this is one of the most expensive cocktails in existance."
|
||||
glass_desc = "Invented by a Eutopian marketing team, this is one of the most expensive cocktails in existence."
|
||||
|
||||
/datum/reagent/ethanol/xanaducannon
|
||||
name = "Xanadu Cannon"
|
||||
@@ -2583,7 +2583,7 @@
|
||||
/datum/reagent/ethanol/winebrandy
|
||||
name = "Wine Brandy"
|
||||
id = "winebrandy"
|
||||
description = "An premium spirit made from distilled wine."
|
||||
description = "A premium spirit made from distilled wine."
|
||||
taste_description = "very sweet dried fruit with many elegant notes"
|
||||
color = "#4C130B" // rgb(76,19,11)
|
||||
strength = 20
|
||||
@@ -2735,7 +2735,7 @@
|
||||
color = "#a0692e" // rgb(160, 105, 46)
|
||||
strength = 20
|
||||
|
||||
glass_name = "Whisker Sour"
|
||||
glass_name = "Whiskey Sour"
|
||||
glass_desc = "A smokey, refreshing lemoned whiskey."
|
||||
|
||||
/datum/reagent/ethanol/oldfashioned
|
||||
|
||||
@@ -1868,7 +1868,7 @@
|
||||
required_reagents = list("tea" = 5, "limejuice" = 1)
|
||||
result_amount = 6
|
||||
|
||||
/datum/chemical_reaction/drinks/limetea
|
||||
/datum/chemical_reaction/drinks/orangetea
|
||||
name = "Orange Tea"
|
||||
id = "orangetea"
|
||||
result = "orangetea"
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
author: Arokha
|
||||
delete-after: True
|
||||
changes:
|
||||
- tweak: "Remove borg hud items as they have normal huds as their sensor augs now, and can see records with them."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: Leshana
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Construction of heat exchange pipes, vents, and scrubbers now works properly again."
|
||||
@@ -0,0 +1,4 @@
|
||||
author: Leshana
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Added the operating manual book for the Tesla Engine."
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 30 KiB |
@@ -196,7 +196,7 @@
|
||||
"dN" = (/obj/structure/closet/bombclosetsecurity,/turf/simulated/floor/tiled/dark,/area/awaymission/snowfield/base)
|
||||
"dO" = (/obj/structure/closet/medical_wall{pixel_y = -32},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/adv,/turf/simulated/floor/tiled/dark,/area/awaymission/snowfield/base)
|
||||
"dP" = (/obj/structure/table/steel_reinforced,/obj/item/weapon/storage/backpack/satchel/sec,/turf/simulated/floor/tiled/dark,/area/awaymission/snowfield/base)
|
||||
"dQ" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/closet,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/head/winterhood,/turf/simulated/floor/tiled/neutral,/area/awaymission/snowfield/base)
|
||||
"dQ" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/closet,/obj/item/clothing/shoes/boots/winter,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/head/hood/winter,/turf/simulated/floor/tiled/neutral,/area/awaymission/snowfield/base)
|
||||
"dR" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/closet/crate/internals,/turf/simulated/floor/tiled/neutral,/area/awaymission/snowfield/base)
|
||||
"dS" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/effect/decal/remains/human,/turf/simulated/floor/tiled/neutral,/area/awaymission/snowfield/base)
|
||||
"dT" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/effect/decal/remains/human,/mob/living/simple_animal/hostile/mimic/crate,/turf/simulated/floor/tiled/neutral,/area/awaymission/snowfield/base)
|
||||
|
||||
Reference in New Issue
Block a user