Merge branch 'master' of https://github.com/PolarisSS13/Polaris into polaris-sync-2018-01-20

This commit is contained in:
Leshana
2018-01-21 00:23:00 -05:00
15 changed files with 283 additions and 115 deletions
+1 -1
View File
@@ -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
+155 -63
View File
@@ -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 &apos;EDISON&apos;S BANE&apos;</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&apos;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>&quot;Particle Accelerator User&apos;s Guide&quot;</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 &quot;<i>Celebrity Grounding Rod Shelters of the Galaxy</i>&quot;</li>
</ol>
</body>
</html>"}
//R-UST port
/obj/item/weapon/book/manual/rust_engine
name = "R-UST Operating Manual"
+22 -22
View File
@@ -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"
+7 -5
View File
@@ -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()
+7 -16
View File
@@ -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)
+1 -1
View File
@@ -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
+2 -1
View File
@@ -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
+1 -1
View File
@@ -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"
+4
View File
@@ -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."
+4
View File
@@ -0,0 +1,4 @@
author: Leshana
delete-after: True
changes:
- bugfix: "Construction of heat exchange pipes, vents, and scrubbers now works properly again."
+4
View File
@@ -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

+1 -1
View File
@@ -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)