mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-18 03:21:30 +01:00
Merge branch 'master' of https://github.com/quotefox/Hyper-Station-13
This commit is contained in:
@@ -323,7 +323,7 @@
|
||||
|
||||
/obj/item/paper/fluff/awaymissions/snowdin/secnotice
|
||||
name = "Security Notice"
|
||||
info = {"YOu have been assigned to this Arctic Post with intention of protecting Nanotrasen assets and ensuring vital information is kept secure while the stationed crew obeys protocol. The picked
|
||||
info = {"You have been assigned to this Arctic Post with intention of protecting Nanotrasen assets and ensuring vital information is kept secure while the stationed crew obeys protocol. The picked
|
||||
staff for this post have been pre-screened with no prior incidients on record, but incase of an issue you have been given a single holding cell and instructions to contact Central to terminate the
|
||||
offending crewmember."}
|
||||
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
crate_name = "swat crate"
|
||||
|
||||
/datum/supply_pack/security/armory/swattasers //Lesser AEG tbh
|
||||
name = "SWAT tatical tasers Crate"
|
||||
name = "SWAT tactical tasers Crate"
|
||||
desc = "Contains two tactical energy gun, these guns are able to tase, disable and lethal as well as hold a seclight. Requires Armory access to open."
|
||||
cost = 7000
|
||||
contains = list(/obj/item/gun/energy/e_gun/stun,
|
||||
|
||||
@@ -21,19 +21,19 @@
|
||||
|
||||
/obj/item/clothing/under/syndicate/tacticool
|
||||
name = "tacticool turtleneck"
|
||||
desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-."
|
||||
icon_state = "tactifool"
|
||||
desc = "A robust looking turtleneck designed to fit tightly against the body while still being comfortable."
|
||||
icon_state = "syndicate"
|
||||
item_state = "bl_suit"
|
||||
item_color = "tactifool"
|
||||
item_color = "syndicate"
|
||||
has_sensor = HAS_SENSORS
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40)
|
||||
|
||||
/obj/item/clothing/under/syndicate/tacticool/skirt
|
||||
name = "tacticool skirtleneck"
|
||||
desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-."
|
||||
icon_state = "tactifool_skirt"
|
||||
desc = "A robust looking skirtleneck designed to fit tightly against the body while still being comfortable."
|
||||
icon_state = "syndicate_skirt"
|
||||
item_state = "bl_suit"
|
||||
item_color = "tactifool_skirt"
|
||||
item_color = "syndicate_skirt"
|
||||
has_sensor = HAS_SENSORS
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40)
|
||||
fitted = FEMALE_UNIFORM_TOP
|
||||
|
||||
@@ -116,3 +116,12 @@
|
||||
bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4)
|
||||
tastes = list("rice" = 1, "egg" = 1)
|
||||
foodtype = GRAIN | MEAT //EGG = MEAT -NinjaNomNom 2017
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/salad/hellcobb
|
||||
name = "hell cobb salad"
|
||||
desc = "If you're being honest with yourself it's just a bowl of mushrooms with chunks of meat and an egg."
|
||||
icon_state = "hellcobb"
|
||||
trash = /obj/item/reagent_containers/glass/bowl/mushroom_bowl
|
||||
bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4)
|
||||
tastes = list("fruity cactus" = 5, "ash" = 1, "tough meat" = 3, "your eternal damnation" = 1)
|
||||
foodtype = FRUIT | MEAT | VEGETABLES //MUSHROOM = VEGETABLE -VladinXXV 2021
|
||||
|
||||
@@ -254,3 +254,20 @@
|
||||
tastes = list("bungo" = 2, "hot curry" = 4, "tropical sweetness" = 1)
|
||||
filling_color = "#E6A625"
|
||||
foodtype = VEGETABLES | FRUIT | DAIRY
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/soup/creamofwastes
|
||||
name = "cream of the wastes soup"
|
||||
desc = "Locals say the bowl gives it a unique flavor each time. That might just be whatever killed the goliath getting in your bowl, though."
|
||||
icon_state = "wastessoup"
|
||||
trash = /obj/item/reagent_containers/glass/bowl/mushroom_bowl
|
||||
var/snowflake_reagent = null
|
||||
list_reagents = list(/datum/reagent/consumable/nutriment = 6)
|
||||
tastes = list("a fresh kill" = 3, "creamy mushroom" = 5, "a warm sunset over the scorched landscape of hell" = 1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/soup/creamofwastes/Initialize()
|
||||
. = ..()
|
||||
snowflake_reagent = pick(/datum/reagent/consumable/capsaicin, /datum/reagent/consumable/frostoil,
|
||||
/datum/reagent/blood, /datum/reagent/oil, /datum/reagent/consumable/honey,
|
||||
/datum/reagent/carbon, /datum/reagent/drug/mushroomhallucinogen)
|
||||
bonus_reagents = list(snowflake_reagent = 5, /datum/reagent/consumable/nutriment = 6)
|
||||
reagents.add_reagent(snowflake_reagent, 5)
|
||||
|
||||
@@ -94,3 +94,16 @@
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/salad/citrusdelight
|
||||
subcategory = CAT_SALAD
|
||||
|
||||
/datum/crafting_recipe/food/hellcobb
|
||||
name = "Hell Cobb Salad"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/glass/bowl/mushroom_bowl = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf = 3,
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit = 2,
|
||||
/obj/item/reagent_containers/food/snacks/meat/steak/goliath = 1,
|
||||
/obj/item/reagent_containers/food/snacks/boiledegg = 1
|
||||
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/salad/hellcobb
|
||||
subcategory = CAT_SALAD
|
||||
|
||||
@@ -247,3 +247,15 @@
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/soup/macaco
|
||||
subcategory = CAT_SOUP
|
||||
|
||||
/datum/crafting_recipe/food/creamofwastes
|
||||
name = "Cream of the Wastes soup"
|
||||
reqs = list(
|
||||
/datum/reagent/consumable/milk = 10,
|
||||
/obj/item/reagent_containers/glass/bowl/mushroom_bowl = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem =2,
|
||||
/obj/item/reagent_containers/food/snacks/meat/steak/goliath = 2 //wanted to make this three cutlets, but goliath meat doesn't get a unique cutlet
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/soup/creamofwastes
|
||||
subcategory = CAT_SOUP
|
||||
|
||||
@@ -509,7 +509,7 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums
|
||||
name = "scanner control interface"
|
||||
icon = 'icons/obj/library.dmi'
|
||||
icon_state = "bigscanner"
|
||||
desc = "It servers the purpose of scanning stuff."
|
||||
desc = "It serves the purpose of scanning stuff."
|
||||
density = TRUE
|
||||
var/obj/item/book/cache // Last scanned book
|
||||
|
||||
|
||||
@@ -407,7 +407,7 @@
|
||||
if(O)
|
||||
O.on_life()
|
||||
else
|
||||
if(reagents.has_reagent("formaldehyde", 1)) // No organ decay if the body contains formaldehyde.
|
||||
if(reagents.has_reagent(/datum/reagent/toxin/formaldehyde, 1)) // No organ decay if the body contains formaldehyde.
|
||||
return
|
||||
for(var/V in internal_organs)
|
||||
var/obj/item/organ/O = V
|
||||
|
||||
+27
-21
@@ -19,6 +19,8 @@
|
||||
var/ndir = SOUTH // target dir
|
||||
var/turn_angle = 0
|
||||
var/obj/machinery/power/solar_control/control = null
|
||||
var/obj/item/solar_assembly/assembly
|
||||
var/efficiency = 1
|
||||
|
||||
/obj/machinery/power/solar/Initialize(mapload, obj/item/solar_assembly/S)
|
||||
. = ..()
|
||||
@@ -45,14 +47,13 @@
|
||||
|
||||
/obj/machinery/power/solar/proc/Make(obj/item/solar_assembly/S)
|
||||
if(!S)
|
||||
S = new /obj/item/solar_assembly(src)
|
||||
S.glass_type = /obj/item/stack/sheet/glass
|
||||
S = new /obj/item/solar_assembly
|
||||
S.glass_type = new /obj/item/stack/sheet/glass(null, 2)
|
||||
S.anchored = TRUE
|
||||
else
|
||||
S.forceMove(src)
|
||||
if(S.glass_type == /obj/item/stack/sheet/rglass) //if the panel is in reinforced glass
|
||||
max_integrity *= 2 //this need to be placed here, because panels already on the map don't have an assembly linked to
|
||||
obj_integrity = max_integrity
|
||||
S.moveToNullspace()
|
||||
S.glass_type.on_solar_construction(src)
|
||||
obj_integrity = max_integrity
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/power/solar/crowbar_act(mob/user, obj/item/I)
|
||||
@@ -85,14 +86,14 @@
|
||||
/obj/machinery/power/solar/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(disassembled)
|
||||
var/obj/item/solar_assembly/S = locate() in src
|
||||
if(S)
|
||||
S.forceMove(loc)
|
||||
S.give_glass(stat & BROKEN)
|
||||
if(assembly)
|
||||
assembly.forceMove(loc)
|
||||
assembly.give_glass(stat & BROKEN)
|
||||
else
|
||||
playsound(src, "shatter", 70, 1)
|
||||
new /obj/item/shard(src.loc)
|
||||
new /obj/item/shard(src.loc)
|
||||
var/shard = assembly?.glass_type ? assembly.glass_type.shard_type : /obj/item/shard
|
||||
new shard(loc)
|
||||
new shard(loc)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -131,7 +132,7 @@
|
||||
if(powernet == control.powernet)//check if the panel is still connected to the computer
|
||||
if(obscured) //get no light from the sun, so don't generate power
|
||||
return
|
||||
var/sgen = SOLARGENRATE * sunfrac
|
||||
var/sgen = SOLARGENRATE * sunfrac * efficiency
|
||||
add_avail(sgen)
|
||||
control.gen += sgen
|
||||
else //if we're no longer on the same powernet, remove from control computer
|
||||
@@ -186,19 +187,23 @@
|
||||
w_class = WEIGHT_CLASS_BULKY // Pretty big!
|
||||
anchored = FALSE
|
||||
var/tracker = 0
|
||||
var/glass_type = null
|
||||
var/obj/item/stack/sheet/glass_type
|
||||
var/static/list/allowed_sheets = typecacheof(list(/obj/item/stack/sheet/glass, /obj/item/stack/sheet/rglass,
|
||||
/obj/item/stack/sheet/plasmaglass, /obj/item/stack/sheet/plasmarglass,
|
||||
/obj/item/stack/sheet/titaniumglass, /obj/item/stack/sheet/plastitaniumglass))
|
||||
|
||||
// Give back the glass type we were supplied with
|
||||
/obj/item/solar_assembly/proc/give_glass(device_broken)
|
||||
var/atom/Tsec = drop_location()
|
||||
if(device_broken)
|
||||
new /obj/item/shard(Tsec)
|
||||
new /obj/item/shard(Tsec)
|
||||
var/shard = glass_type ? glass_type.shard_type : /obj/item/shard
|
||||
if(shard)
|
||||
new shard(Tsec)
|
||||
new shard(Tsec)
|
||||
else if(glass_type)
|
||||
new glass_type(Tsec, 2)
|
||||
forceMove(glass_type, Tsec)
|
||||
glass_type = null
|
||||
|
||||
|
||||
/obj/item/solar_assembly/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/wrench) && isturf(loc))
|
||||
if(isinspace())
|
||||
@@ -213,13 +218,14 @@
|
||||
W.play_tool_sound(src, 75)
|
||||
return 1
|
||||
|
||||
if(istype(W, /obj/item/stack/sheet/glass) || istype(W, /obj/item/stack/sheet/rglass))
|
||||
if(is_type_in_typecache(W, allowed_sheets))
|
||||
if(!anchored)
|
||||
to_chat(user, "<span class='warning'>You need to secure the assembly before you can add glass.</span>")
|
||||
return
|
||||
var/obj/item/stack/sheet/S = W
|
||||
if(S.use(2))
|
||||
glass_type = W.type
|
||||
var/obj/item/stack/sheet/G = S.change_stack(null, 2)
|
||||
if(G)
|
||||
glass_type = G
|
||||
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
|
||||
user.visible_message("[user] places the glass on the solar assembly.", "<span class='notice'>You place the glass on the solar assembly.</span>")
|
||||
if(tracker)
|
||||
|
||||
@@ -16,10 +16,19 @@
|
||||
var/id = 0
|
||||
var/sun_angle = 0 // sun angle as set by sun datum
|
||||
var/obj/machinery/power/solar_control/control = null
|
||||
var/obj/item/solar_assembly/assembly
|
||||
|
||||
/obj/machinery/power/tracker/Initialize(mapload, obj/item/solar_assembly/S)
|
||||
. = ..()
|
||||
Make(S)
|
||||
if(!S)
|
||||
assembly = new /obj/item/solar_assembly
|
||||
assembly.glass_type = new /obj/item/stack/sheet/glass(null, 2)
|
||||
assembly.tracker = TRUE
|
||||
assembly.anchored = TRUE
|
||||
else
|
||||
S.moveToNullspace()
|
||||
assembly = S
|
||||
update_icon()
|
||||
connect_to_network()
|
||||
|
||||
/obj/machinery/power/tracker/Destroy()
|
||||
@@ -40,15 +49,6 @@
|
||||
control.connected_tracker = null
|
||||
control = null
|
||||
|
||||
/obj/machinery/power/tracker/proc/Make(obj/item/solar_assembly/S)
|
||||
if(!S)
|
||||
S = new /obj/item/solar_assembly(src)
|
||||
S.glass_type = /obj/item/stack/sheet/glass
|
||||
S.tracker = 1
|
||||
S.anchored = TRUE
|
||||
S.forceMove(src)
|
||||
update_icon()
|
||||
|
||||
//updates the tracker icon and the facing angle for the control computer
|
||||
/obj/machinery/power/tracker/proc/set_angle(angle)
|
||||
sun_angle = angle
|
||||
@@ -77,14 +77,14 @@
|
||||
/obj/machinery/power/solar/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
if(disassembled)
|
||||
var/obj/item/solar_assembly/S = locate() in src
|
||||
if(S)
|
||||
S.forceMove(loc)
|
||||
S.give_glass(stat & BROKEN)
|
||||
if(assembly)
|
||||
assembly.forceMove(loc)
|
||||
assembly.give_glass(stat & BROKEN)
|
||||
else
|
||||
playsound(src, "shatter", 70, 1)
|
||||
new /obj/item/shard(src.loc)
|
||||
new /obj/item/shard(src.loc)
|
||||
var/shard = assembly?.glass_type ? assembly.glass_type.shard_type : /obj/item/shard
|
||||
new shard(loc)
|
||||
new shard(loc)
|
||||
qdel(src)
|
||||
|
||||
// Tracker Electronic
|
||||
|
||||
@@ -206,7 +206,7 @@
|
||||
item_state = "combatshotgun"
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/shot/com
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
unique_reskin = list("Tatical" = "cshotgun",
|
||||
unique_reskin = list("Tactical" = "cshotgun",
|
||||
"Slick" = "cshotgun_slick"
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user