Moar whitespace normalization [MDB IGNORE] (#7750)

Co-authored-by: Raeschen <rycoop29@gmail.com>
This commit is contained in:
Drathek
2024-02-16 10:54:47 +01:00
committed by GitHub
co-authored by Raeschen
parent eecf6bbff9
commit 3995338290
1177 changed files with 550902 additions and 550902 deletions
+219 -219
View File
@@ -1,219 +1,219 @@
/datum/ColorMate
var/name = "colouring"
var/atom/movable/inserted
var/activecolor = "#FFFFFF"
var/list/color_matrix_last
var/active_mode = COLORMATE_HSV
var/build_hue = 0
var/build_sat = 1
var/build_val = 1
/// Minimum lightness for normal mode
var/minimum_normal_lightness = 50
/// Minimum lightness for matrix mode, tested using 4 test colors of full red, green, blue, white.
var/minimum_matrix_lightness = 75
/// Minimum matrix tests that must pass for something to be considered a valid color (see above)
var/minimum_matrix_tests = 2
/// Temporary messages
var/temp
/datum/ColorMate/New(mob/user)
color_matrix_last = list(
1, 0, 0,
0, 1, 0,
0, 0, 1,
0, 0, 0,
)
if(istype(user))
inserted = user
. = ..()
/datum/ColorMate/Destroy()
inserted = null
. = ..()
/datum/ColorMate/tgui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "ColorMate", name)
ui.open()
/datum/ColorMate/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "ColorMate", src.name)
ui.set_autoupdate(FALSE) //This might be a bit intensive, better to not update it every few ticks
ui.open()
/datum/ColorMate/tgui_state(mob/user)
return GLOB.tgui_conscious_state
/datum/ColorMate/tgui_data()
. = list()
.["activemode"] = active_mode
.["matrixcolors"] = list(
"rr" = color_matrix_last[1],
"rg" = color_matrix_last[2],
"rb" = color_matrix_last[3],
"gr" = color_matrix_last[4],
"gg" = color_matrix_last[5],
"gb" = color_matrix_last[6],
"br" = color_matrix_last[7],
"bg" = color_matrix_last[8],
"bb" = color_matrix_last[9],
"cr" = color_matrix_last[10],
"cg" = color_matrix_last[11],
"cb" = color_matrix_last[12],
)
.["buildhue"] = build_hue
.["buildsat"] = build_sat
.["buildval"] = build_val
if(temp)
.["temp"] = temp
if(inserted)
.["item"] = list()
.["item"]["name"] = inserted.name
.["item"]["sprite"] = icon2base64(get_flat_icon(inserted,dir=SOUTH,no_anim=TRUE))
.["item"]["preview"] = icon2base64(build_preview())
else
.["item"] = null
/datum/ColorMate/tgui_act(action, params)
. = ..()
if(.)
return
if(inserted)
switch(action)
if("switch_modes")
active_mode = text2num(params["mode"])
return TRUE
if("choose_color")
var/chosen_color = input(inserted, "Choose a color: ", "ColorMate colour picking", activecolor) as color|null
if(chosen_color)
activecolor = chosen_color
return TRUE
if("paint")
do_paint(inserted)
temp = "Painted Successfully!"
if(istype(inserted, /mob/living/simple_mob))
var/mob/living/simple_mob/M = inserted
M.has_recoloured = TRUE
if(istype(inserted, /mob/living/silicon/robot))
var/mob/living/silicon/robot/R = inserted
R.has_recoloured = TRUE
Destroy()
if("drop")
temp = ""
Destroy()
if("clear")
inserted.remove_atom_colour(FIXED_COLOUR_PRIORITY)
playsound(src, 'sound/effects/spray3.ogg', 50, 1)
temp = "Cleared Successfully!"
return TRUE
if("set_matrix_color")
color_matrix_last[params["color"]] = params["value"]
return TRUE
if("set_hue")
build_hue = clamp(text2num(params["buildhue"]), 0, 360)
return TRUE
if("set_sat")
build_sat = clamp(text2num(params["buildsat"]), -10, 10)
return TRUE
if("set_val")
build_val = clamp(text2num(params["buildval"]), -10, 10)
return TRUE
/datum/ColorMate/proc/do_paint(mob/user)
var/color_to_use
switch(active_mode)
if(COLORMATE_TINT)
color_to_use = activecolor
if(COLORMATE_MATRIX)
color_to_use = rgb_construct_color_matrix(
text2num(color_matrix_last[1]),
text2num(color_matrix_last[2]),
text2num(color_matrix_last[3]),
text2num(color_matrix_last[4]),
text2num(color_matrix_last[5]),
text2num(color_matrix_last[6]),
text2num(color_matrix_last[7]),
text2num(color_matrix_last[8]),
text2num(color_matrix_last[9]),
text2num(color_matrix_last[10]),
text2num(color_matrix_last[11]),
text2num(color_matrix_last[12]),
)
if(COLORMATE_HSV)
color_to_use = color_matrix_hsv(build_hue, build_sat, build_val)
color_matrix_last = color_to_use
if(!color_to_use || !check_valid_color(color_to_use, user))
to_chat(user, SPAN_NOTICE("Invalid color."))
return FALSE
inserted.add_atom_colour(color_to_use, FIXED_COLOUR_PRIORITY)
playsound(src, 'sound/effects/spray3.ogg', 50, 1)
return TRUE
/// Produces the preview image of the item, used in the UI, the way the color is not stacking is a sin.
/datum/ColorMate/proc/build_preview()
if(inserted) //sanity
var/list/cm
switch(active_mode)
if(COLORMATE_MATRIX)
cm = rgb_construct_color_matrix(
text2num(color_matrix_last[1]),
text2num(color_matrix_last[2]),
text2num(color_matrix_last[3]),
text2num(color_matrix_last[4]),
text2num(color_matrix_last[5]),
text2num(color_matrix_last[6]),
text2num(color_matrix_last[7]),
text2num(color_matrix_last[8]),
text2num(color_matrix_last[9]),
text2num(color_matrix_last[10]),
text2num(color_matrix_last[11]),
text2num(color_matrix_last[12]),
)
if(!check_valid_color(cm, usr))
return get_flat_icon(inserted, dir=SOUTH, no_anim=TRUE)
if(COLORMATE_TINT)
if(!check_valid_color(activecolor, usr))
return get_flat_icon(inserted, dir=SOUTH, no_anim=TRUE)
if(COLORMATE_HSV)
cm = color_matrix_hsv(build_hue, build_sat, build_val)
color_matrix_last = cm
if(!check_valid_color(cm, usr))
return get_flat_icon(inserted, dir=SOUTH, no_anim=TRUE)
var/cur_color = inserted.color
inserted.color = null
inserted.color = (active_mode == COLORMATE_TINT ? activecolor : cm)
var/icon/preview = get_flat_icon(inserted, dir=SOUTH, no_anim=TRUE)
inserted.color = cur_color
temp = ""
. = preview
/datum/ColorMate/proc/check_valid_color(list/cm, mob/user)
if(!islist(cm)) // normal
var/list/HSV = ReadHSV(RGBtoHSV(cm))
if(HSV[3] < minimum_normal_lightness)
temp = "[cm] is too dark (Minimum lightness: [minimum_normal_lightness])"
return FALSE
return TRUE
else // matrix
// We test using full red, green, blue, and white
// A predefined number of them must pass to be considered valid
var/passed = 0
#define COLORTEST(thestring, thematrix) passed += (ReadHSV(RGBtoHSV(RGBMatrixTransform(thestring, thematrix)))[3] >= minimum_matrix_lightness)
COLORTEST("FF0000", cm)
COLORTEST("00FF00", cm)
COLORTEST("0000FF", cm)
COLORTEST("FFFFFF", cm)
#undef COLORTEST
if(passed < minimum_matrix_tests)
temp = "Matrix is too dark. (passed [passed] out of [minimum_matrix_tests] required tests. Minimum lightness: [minimum_matrix_lightness])."
return FALSE
return TRUE
/datum/ColorMate
var/name = "colouring"
var/atom/movable/inserted
var/activecolor = "#FFFFFF"
var/list/color_matrix_last
var/active_mode = COLORMATE_HSV
var/build_hue = 0
var/build_sat = 1
var/build_val = 1
/// Minimum lightness for normal mode
var/minimum_normal_lightness = 50
/// Minimum lightness for matrix mode, tested using 4 test colors of full red, green, blue, white.
var/minimum_matrix_lightness = 75
/// Minimum matrix tests that must pass for something to be considered a valid color (see above)
var/minimum_matrix_tests = 2
/// Temporary messages
var/temp
/datum/ColorMate/New(mob/user)
color_matrix_last = list(
1, 0, 0,
0, 1, 0,
0, 0, 1,
0, 0, 0,
)
if(istype(user))
inserted = user
. = ..()
/datum/ColorMate/Destroy()
inserted = null
. = ..()
/datum/ColorMate/tgui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "ColorMate", name)
ui.open()
/datum/ColorMate/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "ColorMate", src.name)
ui.set_autoupdate(FALSE) //This might be a bit intensive, better to not update it every few ticks
ui.open()
/datum/ColorMate/tgui_state(mob/user)
return GLOB.tgui_conscious_state
/datum/ColorMate/tgui_data()
. = list()
.["activemode"] = active_mode
.["matrixcolors"] = list(
"rr" = color_matrix_last[1],
"rg" = color_matrix_last[2],
"rb" = color_matrix_last[3],
"gr" = color_matrix_last[4],
"gg" = color_matrix_last[5],
"gb" = color_matrix_last[6],
"br" = color_matrix_last[7],
"bg" = color_matrix_last[8],
"bb" = color_matrix_last[9],
"cr" = color_matrix_last[10],
"cg" = color_matrix_last[11],
"cb" = color_matrix_last[12],
)
.["buildhue"] = build_hue
.["buildsat"] = build_sat
.["buildval"] = build_val
if(temp)
.["temp"] = temp
if(inserted)
.["item"] = list()
.["item"]["name"] = inserted.name
.["item"]["sprite"] = icon2base64(get_flat_icon(inserted,dir=SOUTH,no_anim=TRUE))
.["item"]["preview"] = icon2base64(build_preview())
else
.["item"] = null
/datum/ColorMate/tgui_act(action, params)
. = ..()
if(.)
return
if(inserted)
switch(action)
if("switch_modes")
active_mode = text2num(params["mode"])
return TRUE
if("choose_color")
var/chosen_color = input(inserted, "Choose a color: ", "ColorMate colour picking", activecolor) as color|null
if(chosen_color)
activecolor = chosen_color
return TRUE
if("paint")
do_paint(inserted)
temp = "Painted Successfully!"
if(istype(inserted, /mob/living/simple_mob))
var/mob/living/simple_mob/M = inserted
M.has_recoloured = TRUE
if(istype(inserted, /mob/living/silicon/robot))
var/mob/living/silicon/robot/R = inserted
R.has_recoloured = TRUE
Destroy()
if("drop")
temp = ""
Destroy()
if("clear")
inserted.remove_atom_colour(FIXED_COLOUR_PRIORITY)
playsound(src, 'sound/effects/spray3.ogg', 50, 1)
temp = "Cleared Successfully!"
return TRUE
if("set_matrix_color")
color_matrix_last[params["color"]] = params["value"]
return TRUE
if("set_hue")
build_hue = clamp(text2num(params["buildhue"]), 0, 360)
return TRUE
if("set_sat")
build_sat = clamp(text2num(params["buildsat"]), -10, 10)
return TRUE
if("set_val")
build_val = clamp(text2num(params["buildval"]), -10, 10)
return TRUE
/datum/ColorMate/proc/do_paint(mob/user)
var/color_to_use
switch(active_mode)
if(COLORMATE_TINT)
color_to_use = activecolor
if(COLORMATE_MATRIX)
color_to_use = rgb_construct_color_matrix(
text2num(color_matrix_last[1]),
text2num(color_matrix_last[2]),
text2num(color_matrix_last[3]),
text2num(color_matrix_last[4]),
text2num(color_matrix_last[5]),
text2num(color_matrix_last[6]),
text2num(color_matrix_last[7]),
text2num(color_matrix_last[8]),
text2num(color_matrix_last[9]),
text2num(color_matrix_last[10]),
text2num(color_matrix_last[11]),
text2num(color_matrix_last[12]),
)
if(COLORMATE_HSV)
color_to_use = color_matrix_hsv(build_hue, build_sat, build_val)
color_matrix_last = color_to_use
if(!color_to_use || !check_valid_color(color_to_use, user))
to_chat(user, SPAN_NOTICE("Invalid color."))
return FALSE
inserted.add_atom_colour(color_to_use, FIXED_COLOUR_PRIORITY)
playsound(src, 'sound/effects/spray3.ogg', 50, 1)
return TRUE
/// Produces the preview image of the item, used in the UI, the way the color is not stacking is a sin.
/datum/ColorMate/proc/build_preview()
if(inserted) //sanity
var/list/cm
switch(active_mode)
if(COLORMATE_MATRIX)
cm = rgb_construct_color_matrix(
text2num(color_matrix_last[1]),
text2num(color_matrix_last[2]),
text2num(color_matrix_last[3]),
text2num(color_matrix_last[4]),
text2num(color_matrix_last[5]),
text2num(color_matrix_last[6]),
text2num(color_matrix_last[7]),
text2num(color_matrix_last[8]),
text2num(color_matrix_last[9]),
text2num(color_matrix_last[10]),
text2num(color_matrix_last[11]),
text2num(color_matrix_last[12]),
)
if(!check_valid_color(cm, usr))
return get_flat_icon(inserted, dir=SOUTH, no_anim=TRUE)
if(COLORMATE_TINT)
if(!check_valid_color(activecolor, usr))
return get_flat_icon(inserted, dir=SOUTH, no_anim=TRUE)
if(COLORMATE_HSV)
cm = color_matrix_hsv(build_hue, build_sat, build_val)
color_matrix_last = cm
if(!check_valid_color(cm, usr))
return get_flat_icon(inserted, dir=SOUTH, no_anim=TRUE)
var/cur_color = inserted.color
inserted.color = null
inserted.color = (active_mode == COLORMATE_TINT ? activecolor : cm)
var/icon/preview = get_flat_icon(inserted, dir=SOUTH, no_anim=TRUE)
inserted.color = cur_color
temp = ""
. = preview
/datum/ColorMate/proc/check_valid_color(list/cm, mob/user)
if(!islist(cm)) // normal
var/list/HSV = ReadHSV(RGBtoHSV(cm))
if(HSV[3] < minimum_normal_lightness)
temp = "[cm] is too dark (Minimum lightness: [minimum_normal_lightness])"
return FALSE
return TRUE
else // matrix
// We test using full red, green, blue, and white
// A predefined number of them must pass to be considered valid
var/passed = 0
#define COLORTEST(thestring, thematrix) passed += (ReadHSV(RGBtoHSV(RGBMatrixTransform(thestring, thematrix)))[3] >= minimum_matrix_lightness)
COLORTEST("FF0000", cm)
COLORTEST("00FF00", cm)
COLORTEST("0000FF", cm)
COLORTEST("FFFFFF", cm)
#undef COLORTEST
if(passed < minimum_matrix_tests)
temp = "Matrix is too dark. (passed [passed] out of [minimum_matrix_tests] required tests. Minimum lightness: [minimum_matrix_lightness])."
return FALSE
return TRUE
+298 -298
View File
@@ -1,299 +1,299 @@
#define MAT_WISP "strange wisp"
#define MAT_FROSCALE "frost scale"
#define MAT_CRYSCALE "crystal scale"
#define MAT_DREAMSCALE "furred scale"
#define MAT_SHELLCHITIN "shell chitin"
/datum/material/wisp
name = MAT_WISP
icon_colour = "#F13C00"
stack_type = /obj/item/stack/material/wisp
stack_origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4)
icon_base = "solid"
icon_reinf = "reinf_mesh"
integrity = 30
weight = 10
ignition_point = T0C+600
melting_point = T0C+800
protectiveness = 5
conductive = 0
opacity = 0.5
reflectivity = 30
supply_conversion_value = 6
/obj/item/stack/material/wisp
name = "Strange Wisp"
desc = "The by-product of mob grinding."
icon = 'modular_chomp/icons/obj/crafting.dmi'
icon_state = "wisp"
default_type = MAT_WISP
no_variants = FALSE
pass_color = TRUE
strict_color_stacking = TRUE
/datum/material/frostscale
name = MAT_FROSCALE
icon_colour = "#0000CC"
stack_type = /obj/item/stack/material/frostscale
stack_origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4)
icon_base = "solid"
icon_reinf = "reinf_mesh"
integrity = 250
weight = 50
ignition_point = T0C+20
melting_point = T0C+40
protectiveness = 30
conductive = 0
opacity = 0.5
reflectivity = 0
supply_conversion_value = 8
/obj/item/stack/material/frostscale
name = "Frost Scale"
desc = "The by-product of mob grinding."
icon = 'modular_chomp/icons/obj/crafting.dmi'
icon_state = "scale"
color = "#0000CC"
default_type = MAT_FROSCALE
no_variants = FALSE
pass_color = TRUE
strict_color_stacking = TRUE
/datum/material/crystalscale
name = MAT_CRYSCALE
icon_colour = "#006633"
stack_type = /obj/item/stack/material/crystalscale
stack_origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4)
icon_base = "solid"
icon_reinf = "reinf_mesh"
integrity = 250
weight = 10
radiation_resistance = 25 //less then lead because it's lighter then lead.
protectiveness = 30
conductive = 0
opacity = 0.25
reflectivity = 60
supply_conversion_value = 4
/obj/item/stack/material/crystalscale
name = "Crystak Scale"
desc = "The by-product of mob grinding."
icon = 'modular_chomp/icons/obj/crafting.dmi'
icon_state = "scale"
color = "#006633"
default_type = MAT_CRYSCALE
no_variants = FALSE
pass_color = TRUE
strict_color_stacking = TRUE
/datum/material/dreamscale
name = MAT_DREAMSCALE
icon_colour = "#006633"
stack_type = /obj/item/stack/material/dreamscale
stack_origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4)
icon_base = "solid"
icon_reinf = "reinf_mesh"
integrity = 200
weight = 30
ignition_point = T0C+200
melting_point = T0C+400
protectiveness = 60
reflectivity = 30
supply_conversion_value = 1
/obj/item/stack/material/dreamscale
name = "Dream Scale"
desc = "The by-product of mob grinding."
icon = 'modular_chomp/icons/obj/crafting.dmi'
icon_state = "scale"
default_type = MAT_DREAMSCALE
no_variants = FALSE
pass_color = TRUE
strict_color_stacking = TRUE
/datum/material/shellchitin
name = MAT_SHELLCHITIN
icon_colour = "#006633"
stack_type = /obj/item/stack/material/dreamscale
stack_origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4)
icon_base = "solid"
icon_reinf = "reinf_mesh"
integrity = 250
weight = 100
ignition_point = T0C+300
melting_point = T0C+600
protectiveness = 50
reflectivity = 0
supply_conversion_value = 1
/obj/item/stack/material/shellchitin
name = "Shell Chitin"
desc = "The by-product of mob grinding."
icon = 'modular_chomp/icons/obj/crafting.dmi'
icon_state = "shell"
default_type = MAT_SHELLCHITIN
no_variants = FALSE
pass_color = TRUE
strict_color_stacking = TRUE
//Putting this here for now because in intial PRs, I enjoy making/altering as few files as possible.
//Solar ray stuff
/obj/item/clothing/suit/armor/firecloak
name = "solar cloak"
desc = "A strange cloak made from remnants of solar rays."
icon = 'icons/inventory/accessory/item.dmi'
icon_state = "seccloak"
color = "#F13C00"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 10, bio = 0, rad = 0)
/obj/item/clothing/suit/armor/firecloak/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(istype(damage_source, /obj/item/projectile))
return FALSE
if(attacker && attacker != user)
shoot_fire(attacker)
else
return FALSE
/obj/item/clothing/suit/armor/firecloak/proc/shoot_fire(mob/target)
var/obj/item/projectile/P = new /obj/item/projectile/fire(get_turf(src))
P.launch_projectile(target, BP_TORSO, src)
/obj/item/weapon/material/sword/rapier/solar
name = "solar rapier"
desc = "A slender, fancy and sharply pointed sword, wisps of fire swirling around it."
icon_state = "rapier"
item_state = "rapier"
slot_flags = SLOT_BELT
applies_material_colour = 0
force_divisor = 0.50
color = "#F13C00"
/obj/item/weapon/material/sword/rapier/solar/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone)
. = ..()
target.add_modifier(/datum/modifier/fire/weak, 12 SECONDS) //should be 12 damage?
//Icicle
/obj/item/weapon/gun/energy/icelauncher
name = "Strange Pistol"
desc = "A homemade and somehow functional icicle launcher."
icon = 'icons/obj/gun_ch.dmi'
icon_state = "ziplas"
item_state = "ziplas"
color = "#0000CC"
w_class = ITEMSIZE_SMALL
slot_flags = SLOT_BELT|SLOT_BACK
charge_cost = 300 //You got 5 shot
battery_lock = 1
projectile_type = /obj/item/projectile/icicle //But it hurts a lot
cell_type = /obj/item/weapon/cell/device/weapon
/obj/item/clothing/shoes/boots/frost
name = "frost boots"
desc = "Handmade boots of scavanged bits."
icon_state = "winterboots"
color = "#0000CC"
cold_protection = FEET
min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE
heat_protection = FEET
max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE
snow_speed = -1
rock_climbing = TRUE
item_flags = NOSLIP
//Turtle
/obj/item/weapon/material/twohanded/sledgehammer/gravity
name = "Gravity Sledgehammer"
desc = "A sledgehammer in bits of a gravity turtle's shell."
unwielded_force_divisor = 0.25
force_divisor = 0.40 //
dulled_divisor = 0.80 //Still metal on a stick
w_class = ITEMSIZE_LARGE
slot_flags = SLOT_BACK
force_wielded = 25
applies_material_colour = 1
/obj/item/weapon/material/twohanded/sledgehammer/gravity/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone)
. = ..()
var/atom/target_zone = get_edge_target_turf(user,get_dir(user, target))
if(!target.anchored)
target.throw_at(target_zone, 6, 2, user, FALSE)
user.visible_message("<span class='warning'>\The [src] discharges with a thunderous boom!</span>")
playsound(src, 'sound/weapons/resonator_blast.ogg', 100, 1, -1)
//Eel stuff
/obj/item/weapon/material/twohanded/fireaxe/scythe/harvester
name = "Scaled Scythe"
desc = "A scythe cladded in dream eel scales, allowing for better defense at the cost of offense."
force_wielded = 18
force_divisor = 0.3 // 18 with hardness 60 (steel)
unwielded_force_divisor = 0.10
var/defend_chance = 50
var/projectile_parry_chance = 50
/obj/item/clothing/suit/armor/alien/dreamercloak
name = "Dreamer Cloak"
desc = "A strange cloak, something about it feels off."
icon = 'icons/inventory/accessory/item.dmi'
icon_state = "seccloak" //custom sprite for this for sure.
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
block_chance = 35
slowdown = -0.5
//uggg, why isnt this apart of the base material melee weapons
/obj/item/weapon/material/twohanded/fireaxe/scythe/harvester/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(.)
return .
if(default_parry_check(user, attacker, damage_source) && prob(defend_chance))
user.visible_message("<span class='danger'>\The [user] parries [attack_text] with \the [src]!</span>")
return 1
if(unique_parry_check(user, attacker, damage_source) && prob(projectile_parry_chance))
user.visible_message("<span class='danger'>\The [user] deflects [attack_text] with \the [src]!</span>")
return 1
return 0
/obj/item/clothing/gloves/toxinregen
name = "purging gloves"
desc = "A pair of gloves with a small storage of green liquid on the outside. On the inside, a a hypodermic needle can be seen \
on each glove."
icon_state = "regen"
item_state = "graygloves"
siemens_coefficient = 0
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_COLD_PROTECTION_TEMPERATURE
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE
/obj/item/clothing/gloves/toxinregen/equipped(var/mob/living/carbon/human/H)
if(H && H.gloves == src)
wearer = H
if(wearer.can_feel_pain())
to_chat(H, "<span class='danger'>You feel a stabbing sensation in your hands as you slide \the [src] on!</span>")
wearer.custom_pain("You feel a sharp pain in your hands!",1)
..()
/obj/item/clothing/gloves/toxinregen/dropped(var/mob/living/carbon/human/H)
..()
if(wearer)
if(wearer.can_feel_pain())
to_chat(wearer, "<span class='danger'>You feel the hypodermic needles as you slide \the [src] off!</span>")
wearer.custom_pain("Your hands hurt like hell!",1)
wearer = null
/obj/item/clothing/gloves/toxinregen/New()
START_PROCESSING(SSobj, src)
..()
/obj/item/clothing/gloves/toxinregen/Destroy()
wearer = null
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/clothing/gloves/toxinregen/process()
if(!wearer || wearer.isSynthetic() || wearer.stat == DEAD || wearer.nutrition <= 10)
return
if(wearer.getToxLoss())
#define MAT_WISP "strange wisp"
#define MAT_FROSCALE "frost scale"
#define MAT_CRYSCALE "crystal scale"
#define MAT_DREAMSCALE "furred scale"
#define MAT_SHELLCHITIN "shell chitin"
/datum/material/wisp
name = MAT_WISP
icon_colour = "#F13C00"
stack_type = /obj/item/stack/material/wisp
stack_origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4)
icon_base = "solid"
icon_reinf = "reinf_mesh"
integrity = 30
weight = 10
ignition_point = T0C+600
melting_point = T0C+800
protectiveness = 5
conductive = 0
opacity = 0.5
reflectivity = 30
supply_conversion_value = 6
/obj/item/stack/material/wisp
name = "Strange Wisp"
desc = "The by-product of mob grinding."
icon = 'modular_chomp/icons/obj/crafting.dmi'
icon_state = "wisp"
default_type = MAT_WISP
no_variants = FALSE
pass_color = TRUE
strict_color_stacking = TRUE
/datum/material/frostscale
name = MAT_FROSCALE
icon_colour = "#0000CC"
stack_type = /obj/item/stack/material/frostscale
stack_origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4)
icon_base = "solid"
icon_reinf = "reinf_mesh"
integrity = 250
weight = 50
ignition_point = T0C+20
melting_point = T0C+40
protectiveness = 30
conductive = 0
opacity = 0.5
reflectivity = 0
supply_conversion_value = 8
/obj/item/stack/material/frostscale
name = "Frost Scale"
desc = "The by-product of mob grinding."
icon = 'modular_chomp/icons/obj/crafting.dmi'
icon_state = "scale"
color = "#0000CC"
default_type = MAT_FROSCALE
no_variants = FALSE
pass_color = TRUE
strict_color_stacking = TRUE
/datum/material/crystalscale
name = MAT_CRYSCALE
icon_colour = "#006633"
stack_type = /obj/item/stack/material/crystalscale
stack_origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4)
icon_base = "solid"
icon_reinf = "reinf_mesh"
integrity = 250
weight = 10
radiation_resistance = 25 //less then lead because it's lighter then lead.
protectiveness = 30
conductive = 0
opacity = 0.25
reflectivity = 60
supply_conversion_value = 4
/obj/item/stack/material/crystalscale
name = "Crystak Scale"
desc = "The by-product of mob grinding."
icon = 'modular_chomp/icons/obj/crafting.dmi'
icon_state = "scale"
color = "#006633"
default_type = MAT_CRYSCALE
no_variants = FALSE
pass_color = TRUE
strict_color_stacking = TRUE
/datum/material/dreamscale
name = MAT_DREAMSCALE
icon_colour = "#006633"
stack_type = /obj/item/stack/material/dreamscale
stack_origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4)
icon_base = "solid"
icon_reinf = "reinf_mesh"
integrity = 200
weight = 30
ignition_point = T0C+200
melting_point = T0C+400
protectiveness = 60
reflectivity = 30
supply_conversion_value = 1
/obj/item/stack/material/dreamscale
name = "Dream Scale"
desc = "The by-product of mob grinding."
icon = 'modular_chomp/icons/obj/crafting.dmi'
icon_state = "scale"
default_type = MAT_DREAMSCALE
no_variants = FALSE
pass_color = TRUE
strict_color_stacking = TRUE
/datum/material/shellchitin
name = MAT_SHELLCHITIN
icon_colour = "#006633"
stack_type = /obj/item/stack/material/dreamscale
stack_origin_tech = list(TECH_MATERIAL = 3, TECH_BIO = 4)
icon_base = "solid"
icon_reinf = "reinf_mesh"
integrity = 250
weight = 100
ignition_point = T0C+300
melting_point = T0C+600
protectiveness = 50
reflectivity = 0
supply_conversion_value = 1
/obj/item/stack/material/shellchitin
name = "Shell Chitin"
desc = "The by-product of mob grinding."
icon = 'modular_chomp/icons/obj/crafting.dmi'
icon_state = "shell"
default_type = MAT_SHELLCHITIN
no_variants = FALSE
pass_color = TRUE
strict_color_stacking = TRUE
//Putting this here for now because in intial PRs, I enjoy making/altering as few files as possible.
//Solar ray stuff
/obj/item/clothing/suit/armor/firecloak
name = "solar cloak"
desc = "A strange cloak made from remnants of solar rays."
icon = 'icons/inventory/accessory/item.dmi'
icon_state = "seccloak"
color = "#F13C00"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 10, bio = 0, rad = 0)
/obj/item/clothing/suit/armor/firecloak/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(istype(damage_source, /obj/item/projectile))
return FALSE
if(attacker && attacker != user)
shoot_fire(attacker)
else
return FALSE
/obj/item/clothing/suit/armor/firecloak/proc/shoot_fire(mob/target)
var/obj/item/projectile/P = new /obj/item/projectile/fire(get_turf(src))
P.launch_projectile(target, BP_TORSO, src)
/obj/item/weapon/material/sword/rapier/solar
name = "solar rapier"
desc = "A slender, fancy and sharply pointed sword, wisps of fire swirling around it."
icon_state = "rapier"
item_state = "rapier"
slot_flags = SLOT_BELT
applies_material_colour = 0
force_divisor = 0.50
color = "#F13C00"
/obj/item/weapon/material/sword/rapier/solar/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone)
. = ..()
target.add_modifier(/datum/modifier/fire/weak, 12 SECONDS) //should be 12 damage?
//Icicle
/obj/item/weapon/gun/energy/icelauncher
name = "Strange Pistol"
desc = "A homemade and somehow functional icicle launcher."
icon = 'icons/obj/gun_ch.dmi'
icon_state = "ziplas"
item_state = "ziplas"
color = "#0000CC"
w_class = ITEMSIZE_SMALL
slot_flags = SLOT_BELT|SLOT_BACK
charge_cost = 300 //You got 5 shot
battery_lock = 1
projectile_type = /obj/item/projectile/icicle //But it hurts a lot
cell_type = /obj/item/weapon/cell/device/weapon
/obj/item/clothing/shoes/boots/frost
name = "frost boots"
desc = "Handmade boots of scavanged bits."
icon_state = "winterboots"
color = "#0000CC"
cold_protection = FEET
min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE
heat_protection = FEET
max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE
snow_speed = -1
rock_climbing = TRUE
item_flags = NOSLIP
//Turtle
/obj/item/weapon/material/twohanded/sledgehammer/gravity
name = "Gravity Sledgehammer"
desc = "A sledgehammer in bits of a gravity turtle's shell."
unwielded_force_divisor = 0.25
force_divisor = 0.40 //
dulled_divisor = 0.80 //Still metal on a stick
w_class = ITEMSIZE_LARGE
slot_flags = SLOT_BACK
force_wielded = 25
applies_material_colour = 1
/obj/item/weapon/material/twohanded/sledgehammer/gravity/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone)
. = ..()
var/atom/target_zone = get_edge_target_turf(user,get_dir(user, target))
if(!target.anchored)
target.throw_at(target_zone, 6, 2, user, FALSE)
user.visible_message("<span class='warning'>\The [src] discharges with a thunderous boom!</span>")
playsound(src, 'sound/weapons/resonator_blast.ogg', 100, 1, -1)
//Eel stuff
/obj/item/weapon/material/twohanded/fireaxe/scythe/harvester
name = "Scaled Scythe"
desc = "A scythe cladded in dream eel scales, allowing for better defense at the cost of offense."
force_wielded = 18
force_divisor = 0.3 // 18 with hardness 60 (steel)
unwielded_force_divisor = 0.10
var/defend_chance = 50
var/projectile_parry_chance = 50
/obj/item/clothing/suit/armor/alien/dreamercloak
name = "Dreamer Cloak"
desc = "A strange cloak, something about it feels off."
icon = 'icons/inventory/accessory/item.dmi'
icon_state = "seccloak" //custom sprite for this for sure.
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
block_chance = 35
slowdown = -0.5
//uggg, why isnt this apart of the base material melee weapons
/obj/item/weapon/material/twohanded/fireaxe/scythe/harvester/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(.)
return .
if(default_parry_check(user, attacker, damage_source) && prob(defend_chance))
user.visible_message("<span class='danger'>\The [user] parries [attack_text] with \the [src]!</span>")
return 1
if(unique_parry_check(user, attacker, damage_source) && prob(projectile_parry_chance))
user.visible_message("<span class='danger'>\The [user] deflects [attack_text] with \the [src]!</span>")
return 1
return 0
/obj/item/clothing/gloves/toxinregen
name = "purging gloves"
desc = "A pair of gloves with a small storage of green liquid on the outside. On the inside, a a hypodermic needle can be seen \
on each glove."
icon_state = "regen"
item_state = "graygloves"
siemens_coefficient = 0
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_COLD_PROTECTION_TEMPERATURE
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE
/obj/item/clothing/gloves/toxinregen/equipped(var/mob/living/carbon/human/H)
if(H && H.gloves == src)
wearer = H
if(wearer.can_feel_pain())
to_chat(H, "<span class='danger'>You feel a stabbing sensation in your hands as you slide \the [src] on!</span>")
wearer.custom_pain("You feel a sharp pain in your hands!",1)
..()
/obj/item/clothing/gloves/toxinregen/dropped(var/mob/living/carbon/human/H)
..()
if(wearer)
if(wearer.can_feel_pain())
to_chat(wearer, "<span class='danger'>You feel the hypodermic needles as you slide \the [src] off!</span>")
wearer.custom_pain("Your hands hurt like hell!",1)
wearer = null
/obj/item/clothing/gloves/toxinregen/New()
START_PROCESSING(SSobj, src)
..()
/obj/item/clothing/gloves/toxinregen/Destroy()
wearer = null
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/clothing/gloves/toxinregen/process()
if(!wearer || wearer.isSynthetic() || wearer.stat == DEAD || wearer.nutrition <= 10)
return
if(wearer.getToxLoss())
wearer.adjustToxLoss(-0.5)
+124 -124
View File
@@ -1,125 +1,125 @@
/datum/crafting_recipe/ziplaser
name = "Ziplaser"
result = /obj/item/weapon/gun/energy/zip/craftable
reqs = list(list(/obj/item/weapon/cell/high = 1),
list(/obj/item/stack/rods = 2),
list(/obj/item/stack/material/steel = 8),
list(/obj/item/stack/material/plastic = 5),
list(/obj/item/weapon/cell/device = 2)
)
time = 120
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/primitive_platecarrier
name = "primitive plate carrier"
result = /obj/item/clothing/suit/armor/pcarrier/primative
reqs = list(
list(/obj/item/stack/material/leather = 10),
list(/obj/item/stack/rods = 4),
list(/obj/item/stack/material/cloth = 5)
)
time = 120
category = CAT_CLOTHING
/datum/crafting_recipe/surgerytable
name = "surgery table"
result = /obj/machinery/optable
reqs = list(
list(/obj/item/stack/material/silver = 12),
list(/obj/item/stack/rods = 10),
list(/obj/item/stack/material/leather = 1)
)
time = 240
category = CAT_MISC
/datum/crafting_recipe/solarcloak
name = "solar cloak"
result = /obj/item/clothing/suit/armor/firecloak
reqs = list(
list(/obj/item/stack/material/cloth = 10),
list(/obj/item/stack/material/wisp = 2)
)
time = 60
category = CAT_CLOTHING
/datum/crafting_recipe/dreamcloak
name = "solar cloak"
result = /obj/item/clothing/suit/armor/alien/dreamercloak
reqs = list(
list(/obj/item/stack/material/cloth = 10),
list(/obj/item/stack/material/dreamscale = 2)
)
time = 60
category = CAT_CLOTHING
/datum/crafting_recipe/toxinregengloves
name = "purging gloves"
result = /obj/item/clothing/gloves/toxinregen
reqs = list(
list(/obj/item/stack/material/cloth = 10),
list(/obj/item/stack/material/crystalscale = 2),
list(/obj/item/stack/material/resin = 8),
/obj/item/weapon/stock_parts/capacitor = 1
)
time = 60
category = CAT_CLOTHING
/datum/crafting_recipe/iceboots
name = "frost boots"
result = /obj/item/clothing/shoes/boots/frost
reqs = list(
list(/obj/item/stack/material/frostscale = 2),
/obj/item/clothing/shoes/boots/winter = 1
)
time = 60
category = CAT_CLOTHING
/datum/crafting_recipe/strangepistol
name = "Strange Weapon"
result = /obj/item/weapon/gun/energy/icelauncher
reqs = list(
list(/obj/item/stack/material/steel = 8),
list(/obj/item/stack/material/plastic = 3),
list(/obj/item/weapon/cell/device = 1),
list(/obj/item/stack/material/frostscale = 2)
)
time = 60
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/solarrapier
name = "Solar Rapier"
result = /obj/item/weapon/material/sword/rapier/solar
reqs = list(
list(/obj/item/stack/material/steel = 15),
list(/obj/item/stack/material/leather = 3),
list(/obj/item/stack/material/wisp = 2)
)
time = 60
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/gravityhammer
name = "Gravity Hammer"
result = /obj/item/weapon/material/twohanded/sledgehammer/gravity
reqs = list(list(/obj/item/stack/material/steel = 15),
list(/obj/item/stack/material/leather = 3),
list(/obj/item/stack/material/shellchitin = 2),
list(/obj/item/weapon/cell/high = 1)
)
time = 60
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/harvester
name = "Harvester"
result = /obj/item/weapon/material/twohanded/fireaxe/scythe/harvester
reqs = list(list(/obj/item/stack/material/steel = 15),
list(/obj/item/stack/material/leather = 3),
list(/obj/item/stack/material/dreamscale = 2)
)
time = 60
category = CAT_WEAPONRY
/datum/crafting_recipe/ziplaser
name = "Ziplaser"
result = /obj/item/weapon/gun/energy/zip/craftable
reqs = list(list(/obj/item/weapon/cell/high = 1),
list(/obj/item/stack/rods = 2),
list(/obj/item/stack/material/steel = 8),
list(/obj/item/stack/material/plastic = 5),
list(/obj/item/weapon/cell/device = 2)
)
time = 120
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/primitive_platecarrier
name = "primitive plate carrier"
result = /obj/item/clothing/suit/armor/pcarrier/primative
reqs = list(
list(/obj/item/stack/material/leather = 10),
list(/obj/item/stack/rods = 4),
list(/obj/item/stack/material/cloth = 5)
)
time = 120
category = CAT_CLOTHING
/datum/crafting_recipe/surgerytable
name = "surgery table"
result = /obj/machinery/optable
reqs = list(
list(/obj/item/stack/material/silver = 12),
list(/obj/item/stack/rods = 10),
list(/obj/item/stack/material/leather = 1)
)
time = 240
category = CAT_MISC
/datum/crafting_recipe/solarcloak
name = "solar cloak"
result = /obj/item/clothing/suit/armor/firecloak
reqs = list(
list(/obj/item/stack/material/cloth = 10),
list(/obj/item/stack/material/wisp = 2)
)
time = 60
category = CAT_CLOTHING
/datum/crafting_recipe/dreamcloak
name = "solar cloak"
result = /obj/item/clothing/suit/armor/alien/dreamercloak
reqs = list(
list(/obj/item/stack/material/cloth = 10),
list(/obj/item/stack/material/dreamscale = 2)
)
time = 60
category = CAT_CLOTHING
/datum/crafting_recipe/toxinregengloves
name = "purging gloves"
result = /obj/item/clothing/gloves/toxinregen
reqs = list(
list(/obj/item/stack/material/cloth = 10),
list(/obj/item/stack/material/crystalscale = 2),
list(/obj/item/stack/material/resin = 8),
/obj/item/weapon/stock_parts/capacitor = 1
)
time = 60
category = CAT_CLOTHING
/datum/crafting_recipe/iceboots
name = "frost boots"
result = /obj/item/clothing/shoes/boots/frost
reqs = list(
list(/obj/item/stack/material/frostscale = 2),
/obj/item/clothing/shoes/boots/winter = 1
)
time = 60
category = CAT_CLOTHING
/datum/crafting_recipe/strangepistol
name = "Strange Weapon"
result = /obj/item/weapon/gun/energy/icelauncher
reqs = list(
list(/obj/item/stack/material/steel = 8),
list(/obj/item/stack/material/plastic = 3),
list(/obj/item/weapon/cell/device = 1),
list(/obj/item/stack/material/frostscale = 2)
)
time = 60
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/solarrapier
name = "Solar Rapier"
result = /obj/item/weapon/material/sword/rapier/solar
reqs = list(
list(/obj/item/stack/material/steel = 15),
list(/obj/item/stack/material/leather = 3),
list(/obj/item/stack/material/wisp = 2)
)
time = 60
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/gravityhammer
name = "Gravity Hammer"
result = /obj/item/weapon/material/twohanded/sledgehammer/gravity
reqs = list(list(/obj/item/stack/material/steel = 15),
list(/obj/item/stack/material/leather = 3),
list(/obj/item/stack/material/shellchitin = 2),
list(/obj/item/weapon/cell/high = 1)
)
time = 60
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/harvester
name = "Harvester"
result = /obj/item/weapon/material/twohanded/fireaxe/scythe/harvester
reqs = list(list(/obj/item/stack/material/steel = 15),
list(/obj/item/stack/material/leather = 3),
list(/obj/item/stack/material/dreamscale = 2)
)
time = 60
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
@@ -1,7 +1,7 @@
/decl/hierarchy/outfit/job/bridge_officer
name = OUTFIT_JOB_NAME("Bridge Officer")
uniform = /obj/item/clothing/under/utility
l_ear = /obj/item/device/radio/headset/headset_com
shoes = /obj/item/clothing/shoes/boots/winter/explorer
id_type = /obj/item/weapon/card/id/silver/secretary
/decl/hierarchy/outfit/job/bridge_officer
name = OUTFIT_JOB_NAME("Bridge Officer")
uniform = /obj/item/clothing/under/utility
l_ear = /obj/item/device/radio/headset/headset_com
shoes = /obj/item/clothing/shoes/boots/winter/explorer
id_type = /obj/item/weapon/card/id/silver/secretary
pda_type = /obj/item/device/pda/heads
+52 -52
View File
@@ -1,53 +1,53 @@
/datum/supply_pack/misc/solarray
name = "Exotic crate - Solar Ray"
contains = list()
cost = 100
containertype = /obj/structure/largecrate/animal/solarray
containername = "Exotic crate"
/datum/supply_pack/misc/livingice
name = "Exotic crate - Living Ice"
contains = list()
cost = 100
containertype = /obj/structure/largecrate/animal/livingice
containername = "Exotic crate"
/datum/supply_pack/misc/radcrab
name = "Exotic crate - Crystaline Crab"
contains = list()
cost = 100
containertype = /obj/structure/largecrate/animal/radcrab
containername = "Exotic crate"
/datum/supply_pack/misc/dreameel
name = "Exotic crate - Dream Eel"
contains = list()
cost = 100
containertype = /obj/structure/largecrate/animal/dreameel
containername = "Exotic crate"
/datum/supply_pack/misc/gravityshell
name = "Exotic crate - Gravity Shell"
contains = list()
cost = 100
containertype = /obj/structure/largecrate/animal/gravityshell
containername = "Exotic crate"
/datum/supply_pack/misc/fulton
name = "Bluespace Fulton Kit"
contains = list(
/obj/item/extraction_pack = 2,
/obj/item/fulton_core = 1
)
cost = 200
containertype = /obj/structure/closet/crate/nanotrasen
container name = "Bluespace Fulton kit crate"
/datum/supply_pack/misc/fulton_surplus
name = "Surplus Bluespace Fultons"
contains = list(
/obj/item/extraction_pack = 2
)
cost = 100
containertype = /obj/structure/closet/crate/nanotrasen
/datum/supply_pack/misc/solarray
name = "Exotic crate - Solar Ray"
contains = list()
cost = 100
containertype = /obj/structure/largecrate/animal/solarray
containername = "Exotic crate"
/datum/supply_pack/misc/livingice
name = "Exotic crate - Living Ice"
contains = list()
cost = 100
containertype = /obj/structure/largecrate/animal/livingice
containername = "Exotic crate"
/datum/supply_pack/misc/radcrab
name = "Exotic crate - Crystaline Crab"
contains = list()
cost = 100
containertype = /obj/structure/largecrate/animal/radcrab
containername = "Exotic crate"
/datum/supply_pack/misc/dreameel
name = "Exotic crate - Dream Eel"
contains = list()
cost = 100
containertype = /obj/structure/largecrate/animal/dreameel
containername = "Exotic crate"
/datum/supply_pack/misc/gravityshell
name = "Exotic crate - Gravity Shell"
contains = list()
cost = 100
containertype = /obj/structure/largecrate/animal/gravityshell
containername = "Exotic crate"
/datum/supply_pack/misc/fulton
name = "Bluespace Fulton Kit"
contains = list(
/obj/item/extraction_pack = 2,
/obj/item/fulton_core = 1
)
cost = 200
containertype = /obj/structure/closet/crate/nanotrasen
container name = "Bluespace Fulton kit crate"
/datum/supply_pack/misc/fulton_surplus
name = "Surplus Bluespace Fultons"
contains = list(
/obj/item/extraction_pack = 2
)
cost = 100
containertype = /obj/structure/closet/crate/nanotrasen
container name = "Surplus Bluespace Fultons crate"
@@ -1,8 +1,8 @@
/datum/supply_pack/sci/borgos
name = "Borg-O's Five-Pack"
contains = list(
/obj/item/trash/rkibble = 5,
)
cost = 45
containertype = /obj/structure/closet/crate/ward
/datum/supply_pack/sci/borgos
name = "Borg-O's Five-Pack"
contains = list(
/obj/item/trash/rkibble = 5,
)
cost = 45
containertype = /obj/structure/closet/crate/ward
containername = "Borg-O's crate"
@@ -1,37 +1,37 @@
/datum/supply_pack/security/secpsg
name = "Security Belt PSGs"
contains = list(
/obj/item/device/personal_shield_generator/belt/security/loaded,
/obj/item/device/personal_shield_generator/belt/security/loaded
)
cost = 150
containertype = /obj/structure/closet/crate/secure/gear
containername = "Personal Shield Generators crate"
/datum/supply_pack/security/secstrongpsg
name = "Security Reinforced Backpack PSG"
contains = list(
/obj/item/device/personal_shield_generator/security/strong/loaded
)
cost = 200
containertype = /obj/structure/closet/crate/secure/gear
containername = "Reinforced PSG crate"
/datum/supply_pack/security/secstrongpsg
name = "Security PSG-P"
contains = list(
/obj/item/device/personal_shield_generator/belt/parry
)
cost = 250
containertype = /obj/structure/closet/crate/secure/gear
containername = "PSG-P crate"
/datum/supply_pack/security/rednetgun
name = "Experimental Capture Gun"
num_contained = 4
contains = list(
/obj/item/weapon/gun/energy/rednetgun
)
cost = 150
containertype = /obj/structure/closet/crate/secure/gear
/datum/supply_pack/security/secpsg
name = "Security Belt PSGs"
contains = list(
/obj/item/device/personal_shield_generator/belt/security/loaded,
/obj/item/device/personal_shield_generator/belt/security/loaded
)
cost = 150
containertype = /obj/structure/closet/crate/secure/gear
containername = "Personal Shield Generators crate"
/datum/supply_pack/security/secstrongpsg
name = "Security Reinforced Backpack PSG"
contains = list(
/obj/item/device/personal_shield_generator/security/strong/loaded
)
cost = 200
containertype = /obj/structure/closet/crate/secure/gear
containername = "Reinforced PSG crate"
/datum/supply_pack/security/secstrongpsg
name = "Security PSG-P"
contains = list(
/obj/item/device/personal_shield_generator/belt/parry
)
cost = 250
containertype = /obj/structure/closet/crate/secure/gear
containername = "PSG-P crate"
/datum/supply_pack/security/rednetgun
name = "Experimental Capture Gun"
num_contained = 4
contains = list(
/obj/item/weapon/gun/energy/rednetgun
)
cost = 150
containertype = /obj/structure/closet/crate/secure/gear
containername = "Expirmental Capture crate"