mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-29 10:31:34 +00:00
This PR follows the material fishing rod PR, which had a small issue in which I had forgotten to add a return value to a proc and thus fish caught from material fishing rods would never be made of that specific material. I've tweaked some values for materials and fishing rods, I felt some of the "better" rods were a bit too fast, and some downright let you skip the fishing minigame with zero to one level. Also, I felt that, despite making fishing easier kinda, the area of the bait slider still felt a tad too small, so I've introduced a height multiplier for the slider so that it could cover more space, depending on the strength multiplier of the material (for once, not a new niche variable). This doesn't apply to fishing rods with strength multiplier less than 1 because they don't need to be made worse. About fish and cargo, I've added a soft cap (a 0.86 exponent) to fish selling price. It shouldn't affect the wide majority of fish you catch, however it does affect those that sell for over 6k per unit, which are few and rare. However, I've been pinged about some ludicrous money-making done by selling fish alone on a downstream server, likely from growing the big fish to be up twice their initial size and weight (capped to 2.5 the average value for the species), however, new features may push things a little further, so it's better to be safe than sorry. Screenshot below: They said it took them about a hour, however take it with a pinch of salt since it's by no mean easy and fast money by Terry's standards: I've also halved the selling price of jumpercable fish, which, despite requiring an emag or some sort luck, could easily be farmed in due time with little to no maintenance, being self-reproducing and hunger-less, and each of them would sell for 6k. conversely, I've increased the price of the unmarine mastodon a little because of the soft-cap, since it's very rare.
1085 lines
40 KiB
Plaintext
1085 lines
40 KiB
Plaintext
///Has no special properties.
|
|
/datum/material/iron
|
|
name = "iron"
|
|
desc = "Common iron ore often found in sedimentary and igneous layers of the crust."
|
|
color = "#B6BEC2"
|
|
categories = list(
|
|
MAT_CATEGORY_SILO = TRUE,
|
|
MAT_CATEGORY_RIGID=TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/iron
|
|
ore_type = /obj/item/stack/ore/iron
|
|
value_per_unit = 5 / SHEET_MATERIAL_AMOUNT
|
|
mat_rust_resistance = RUST_RESISTANCE_BASIC
|
|
mineral_rarity = MATERIAL_RARITY_COMMON
|
|
points_per_unit = 1 / SHEET_MATERIAL_AMOUNT
|
|
minimum_value_override = 0
|
|
tradable = TRUE
|
|
tradable_base_quantity = MATERIAL_QUANTITY_COMMON
|
|
fish_weight_modifier = 1.3
|
|
fishing_gravity_mult = 1.1
|
|
|
|
/datum/material/iron/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.apply_damage(10, BRUTE, BODY_ZONE_HEAD, wound_bonus = 5)
|
|
return TRUE
|
|
|
|
///Breaks extremely easily but is transparent.
|
|
/datum/material/glass
|
|
name = "glass"
|
|
desc = "Glass forged by melting sand."
|
|
color = "#6292AF"
|
|
alpha = 150
|
|
categories = list(
|
|
MAT_CATEGORY_SILO = TRUE,
|
|
MAT_CATEGORY_RIGID=TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
integrity_modifier = 0.1
|
|
sheet_type = /obj/item/stack/sheet/glass
|
|
ore_type = /obj/item/stack/ore/glass/basalt
|
|
shard_type = /obj/item/shard
|
|
debris_type = /obj/effect/decal/cleanable/glass
|
|
value_per_unit = 5 / SHEET_MATERIAL_AMOUNT
|
|
minimum_value_override = 0
|
|
tradable = TRUE
|
|
tradable_base_quantity = MATERIAL_QUANTITY_COMMON
|
|
beauty_modifier = 0.05
|
|
armor_modifiers = list(MELEE = 0.2, BULLET = 0.2, ENERGY = 1, BIO = 0.2, FIRE = 1, ACID = 0.2)
|
|
mineral_rarity = MATERIAL_RARITY_COMMON
|
|
points_per_unit = 1 / SHEET_MATERIAL_AMOUNT
|
|
texture_layer_icon_state = "shine"
|
|
fish_weight_modifier = 1.2
|
|
fishing_difficulty_modifier = 5
|
|
fishing_experience_multiplier = 1.2
|
|
fishing_bait_speed_mult = 0.9
|
|
fishing_deceleration_mult = 1.2
|
|
fishing_bounciness_mult = 0.5
|
|
fishing_gravity_mult = 0.9
|
|
|
|
/datum/material/glass/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.apply_damage(10, BRUTE, BODY_ZONE_HEAD, wound_bonus = 5, sharpness = TRUE) //cronch
|
|
return TRUE
|
|
|
|
/datum/material/glass/on_main_applied(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(isobj(source) && !isstack(source))
|
|
source.AddElement(/datum/element/can_shatter, shard_type, round(mat_amount / SHEET_MATERIAL_AMOUNT * multiplier), SFX_SHATTER)
|
|
|
|
/datum/material/glass/on_main_removed(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(isobj(source) && !isstack(source))
|
|
source.RemoveElement(/datum/element/can_shatter, shard_type, round(mat_amount / SHEET_MATERIAL_AMOUNT * multiplier), SFX_SHATTER)
|
|
|
|
/*
|
|
Color matrices are like regular colors but unlike with normal colors, you can go over 255 on a channel.
|
|
Unless you know what you're doing, only use the first three numbers. They're in RGB order.
|
|
*/
|
|
|
|
///Has no special properties. Could be good against vampires in the future perhaps.
|
|
/datum/material/silver
|
|
name = "silver"
|
|
desc = "Silver"
|
|
color = "#B5BCBB"
|
|
categories = list(
|
|
MAT_CATEGORY_SILO = TRUE,
|
|
MAT_CATEGORY_RIGID=TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/mineral/silver
|
|
ore_type = /obj/item/stack/ore/silver
|
|
value_per_unit = 50 / SHEET_MATERIAL_AMOUNT
|
|
tradable = TRUE
|
|
tradable_base_quantity = MATERIAL_QUANTITY_UNCOMMON
|
|
beauty_modifier = 0.075
|
|
mineral_rarity = MATERIAL_RARITY_SEMIPRECIOUS
|
|
points_per_unit = 16 / SHEET_MATERIAL_AMOUNT
|
|
texture_layer_icon_state = "shine"
|
|
fish_weight_modifier = 1.35
|
|
fishing_difficulty_modifier = -5
|
|
fishing_experience_multiplier = 0.85
|
|
fishing_completion_speed = 1.1
|
|
fishing_deceleration_mult = 1.1
|
|
fishing_bounciness_mult = 0.9
|
|
fishing_gravity_mult = 1.1
|
|
|
|
/datum/material/silver/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.apply_damage(10, BRUTE, BODY_ZONE_HEAD, wound_bonus = 5)
|
|
return TRUE
|
|
|
|
///Slight force increase
|
|
/datum/material/gold
|
|
name = "gold"
|
|
desc = "Gold"
|
|
color = "#E6BB45"
|
|
strength_modifier = 1.2
|
|
categories = list(
|
|
MAT_CATEGORY_SILO = TRUE,
|
|
MAT_CATEGORY_RIGID=TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/mineral/gold
|
|
ore_type = /obj/item/stack/ore/gold
|
|
value_per_unit = 125 / SHEET_MATERIAL_AMOUNT
|
|
tradable = TRUE
|
|
tradable_base_quantity = MATERIAL_QUANTITY_RARE
|
|
beauty_modifier = 0.15
|
|
armor_modifiers = list(MELEE = 1.1, BULLET = 1.1, LASER = 1.15, ENERGY = 1.15, BOMB = 1, BIO = 1, FIRE = 0.7, ACID = 1.1)
|
|
mineral_rarity = MATERIAL_RARITY_PRECIOUS
|
|
points_per_unit = 18 / SHEET_MATERIAL_AMOUNT
|
|
texture_layer_icon_state = "shine"
|
|
fish_weight_modifier = 1.5
|
|
fishing_difficulty_modifier = -8
|
|
fishing_cast_range = 1
|
|
fishing_experience_multiplier = 0.75
|
|
fishing_completion_speed = 1.2
|
|
fishing_bait_speed_mult = 1.1
|
|
fishing_deceleration_mult = 1.2
|
|
fishing_bounciness_mult = 0.8
|
|
fishing_gravity_mult = 1.2
|
|
|
|
/datum/material/gold/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.apply_damage(10, BRUTE, BODY_ZONE_HEAD, wound_bonus = 5)
|
|
return TRUE
|
|
|
|
///Has no special properties
|
|
/datum/material/diamond
|
|
name = "diamond"
|
|
desc = "Highly pressurized carbon"
|
|
color = "#C9D8F2"
|
|
categories = list(
|
|
MAT_CATEGORY_SILO = TRUE,
|
|
MAT_CATEGORY_RIGID=TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/mineral/diamond
|
|
ore_type = /obj/item/stack/ore/diamond
|
|
alpha = 132
|
|
starlight_color = COLOR_BLUE_LIGHT
|
|
value_per_unit = 500 / SHEET_MATERIAL_AMOUNT
|
|
strength_modifier = 1.1
|
|
integrity_modifier = 1.25
|
|
tradable = TRUE
|
|
tradable_base_quantity = MATERIAL_QUANTITY_EXOTIC
|
|
beauty_modifier = 0.3
|
|
armor_modifiers = list(MELEE = 1.3, BULLET = 1.3, LASER = 0.6, ENERGY = 1, BOMB = 1.2, BIO = 1, FIRE = 1, ACID = 1)
|
|
mineral_rarity = MATERIAL_RARITY_RARE
|
|
points_per_unit = 50 / SHEET_MATERIAL_AMOUNT
|
|
fish_weight_modifier = 1.4
|
|
fishing_difficulty_modifier = -12
|
|
fishing_cast_range = -1
|
|
fishing_experience_multiplier = 0.7
|
|
fishing_completion_speed = 1.25
|
|
fishing_bait_speed_mult = 1.1
|
|
fishing_deceleration_mult = 1.25
|
|
fishing_bounciness_mult = 0.8
|
|
fishing_gravity_mult = 1.1
|
|
|
|
/datum/material/diamond/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.apply_damage(15, BRUTE, BODY_ZONE_HEAD, wound_bonus = 7)
|
|
return TRUE
|
|
|
|
///Is slightly radioactive
|
|
/datum/material/uranium
|
|
name = "uranium"
|
|
desc = "Uranium"
|
|
color = "#2C992C"
|
|
categories = list(
|
|
MAT_CATEGORY_SILO = TRUE,
|
|
MAT_CATEGORY_RIGID=TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/mineral/uranium
|
|
ore_type = /obj/item/stack/ore/uranium
|
|
value_per_unit = 100 / SHEET_MATERIAL_AMOUNT
|
|
tradable = TRUE
|
|
tradable_base_quantity = MATERIAL_QUANTITY_RARE
|
|
beauty_modifier = 0.3 //It shines so beautiful
|
|
armor_modifiers = list(MELEE = 1.5, BULLET = 1.4, LASER = 0.5, ENERGY = 0.5, FIRE = 1, ACID = 1)
|
|
mineral_rarity = MATERIAL_RARITY_SEMIPRECIOUS
|
|
points_per_unit = 30 / SHEET_MATERIAL_AMOUNT
|
|
fish_weight_modifier = 2
|
|
fishing_completion_speed = 0.9
|
|
fishing_bait_speed_mult = 0.8
|
|
fishing_deceleration_mult = 1.4
|
|
fishing_bounciness_mult = 0.6
|
|
fishing_gravity_mult = 1.4
|
|
|
|
/datum/material/uranium/on_applied(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
|
|
// Uranium structures should irradiate, but not items, because item irradiation is a lot more annoying.
|
|
// For example, consider picking up uranium as a miner.
|
|
if (isitem(source))
|
|
return
|
|
|
|
source.AddElement(/datum/element/radioactive, chance = URANIUM_IRRADIATION_CHANCE * multiplier)
|
|
|
|
/datum/material/uranium/on_removed(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
|
|
if (isitem(source))
|
|
return
|
|
|
|
source.RemoveElement(/datum/element/radioactive, chance = URANIUM_IRRADIATION_CHANCE * multiplier)
|
|
|
|
/datum/material/uranium/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.reagents.add_reagent(/datum/reagent/uranium, rand(4, 6))
|
|
source_item?.reagents?.add_reagent(/datum/reagent/uranium, source_item.reagents.total_volume*(2/5))
|
|
return TRUE
|
|
|
|
///Adds firestacks on hit (Still needs support to turn into gas on destruction)
|
|
/datum/material/plasma
|
|
name = "plasma"
|
|
desc = "Isn't plasma a state of matter? Oh whatever."
|
|
color = "#BA3692"
|
|
categories = list(
|
|
MAT_CATEGORY_SILO = TRUE,
|
|
MAT_CATEGORY_RIGID=TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/mineral/plasma
|
|
ore_type = /obj/item/stack/ore/plasma
|
|
value_per_unit = 200 / SHEET_MATERIAL_AMOUNT
|
|
beauty_modifier = 0.15
|
|
armor_modifiers = list(MELEE = 1.4, BULLET = 0.7, ENERGY = 1.2, BIO = 1.2, ACID = 0.5)
|
|
mineral_rarity = MATERIAL_RARITY_PRECIOUS
|
|
points_per_unit = 15 / SHEET_MATERIAL_AMOUNT
|
|
fish_weight_modifier = 1.3
|
|
fishing_deceleration_mult = 1.3
|
|
fishing_bounciness_mult = 0.6
|
|
|
|
/datum/material/plasma/on_applied(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(ismovable(source))
|
|
source.AddElement(/datum/element/firestacker, 1 * multiplier)
|
|
source.AddComponent(/datum/component/combustible_flooder, "plasma", mat_amount * 0.05 * multiplier) //Empty temp arg, fully dependent on whatever ignited it.
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
ADD_TRAIT(source, TRAIT_ROD_LAVA_USABLE, REF(src))
|
|
|
|
/datum/material/plasma/on_removed(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
source.RemoveElement(/datum/element/firestacker, mat_amount = 1 * multiplier)
|
|
qdel(source.GetComponent(/datum/component/combustible_flooder))
|
|
qdel(source.GetComponent(/datum/component/explodable))
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
ADD_TRAIT(source, TRAIT_ROD_LAVA_USABLE, REF(src))
|
|
|
|
/datum/material/plasma/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.reagents.add_reagent(/datum/reagent/toxin/plasma, rand(6, 8))
|
|
source_item?.reagents?.add_reagent(/datum/reagent/toxin/plasma, source_item.reagents.total_volume*(2/5))
|
|
return TRUE
|
|
|
|
///Can cause bluespace effects on use. (Teleportation) (Not yet implemented)
|
|
/datum/material/bluespace
|
|
name = "bluespace crystal"
|
|
desc = "Crystals with bluespace properties"
|
|
color = "#2E50B7"
|
|
alpha = 200
|
|
starlight_color = COLOR_BLUE
|
|
categories = list(
|
|
MAT_CATEGORY_SILO = TRUE,
|
|
MAT_CATEGORY_RIGID=TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
beauty_modifier = 0.5
|
|
sheet_type = /obj/item/stack/sheet/bluespace_crystal
|
|
ore_type = /obj/item/stack/ore/bluespace_crystal
|
|
value_per_unit = 300 / SHEET_MATERIAL_AMOUNT
|
|
mineral_rarity = MATERIAL_RARITY_RARE
|
|
points_per_unit = 50 / SHEET_MATERIAL_AMOUNT
|
|
tradable = TRUE
|
|
tradable_base_quantity = MATERIAL_QUANTITY_EXOTIC
|
|
texture_layer_icon_state = "shine"
|
|
fish_weight_modifier = 1.3
|
|
fishing_difficulty_modifier = -5
|
|
fishing_cast_range = 5 //space-bending scifi magic
|
|
fishing_experience_multiplier = 0.85
|
|
fishing_completion_speed = 1.1
|
|
fishing_bait_speed_mult = 1.1
|
|
fishing_deceleration_mult = 0.9
|
|
fishing_bounciness_mult = 1.1
|
|
|
|
/datum/material/bluespace/on_main_applied(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
RegisterSignal(source, COMSIG_ROD_BEGIN_FISHING, PROC_REF(on_begin_fishing))
|
|
|
|
/datum/material/bluespace/proc/on_begin_fishing(obj/item/fishing_rod/rod, datum/fishing_challenge/challenge)
|
|
SIGNAL_HANDLER
|
|
if(prob(67))
|
|
return
|
|
var/list/elegible_fish_sources = flatten_list(GLOB.preset_fish_sources)
|
|
for(var/datum/fish_source/source as anything in elegible_fish_sources)
|
|
if(source.fish_source_flags & FISH_SOURCE_FLAG_NO_BLUESPACE_ROD)
|
|
elegible_fish_sources -= source
|
|
var/datum/fish_source/new_source = pick(elegible_fish_sources)
|
|
challenge.register_reward_signals(new_source)
|
|
|
|
/datum/material/bluespace/on_main_removed(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
UnregisterSignal(source, COMSIG_ROD_BEGIN_FISHING)
|
|
|
|
/datum/material/bluespace/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.reagents.add_reagent(/datum/reagent/bluespace, rand(5, 8))
|
|
source_item?.reagents?.add_reagent(/datum/reagent/bluespace, source_item.reagents.total_volume*(2/5))
|
|
return TRUE
|
|
|
|
///Honks and slips
|
|
/datum/material/bananium
|
|
name = "bananium"
|
|
desc = "Material with hilarious properties"
|
|
color = list(460/255, 464/255, 0, 0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) //obnoxiously bright yellow //It's literally perfect I can't change it
|
|
greyscale_color = "#FFF269"
|
|
categories = list(
|
|
MAT_CATEGORY_SILO = TRUE,
|
|
MAT_CATEGORY_RIGID=TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/mineral/bananium
|
|
ore_type = /obj/item/stack/ore/bananium
|
|
value_per_unit = 1000 / SHEET_MATERIAL_AMOUNT
|
|
beauty_modifier = 0.5
|
|
armor_modifiers = list(BOMB = 100, FIRE = 10) //Clowns cant be blown away.
|
|
mineral_rarity = MATERIAL_RARITY_UNDISCOVERED
|
|
points_per_unit = 60 / SHEET_MATERIAL_AMOUNT
|
|
fishing_difficulty_modifier = 20 //can't get a good grip on slipperiness.
|
|
fishing_cast_range = 3 //long slide
|
|
fishing_experience_multiplier = 1.6
|
|
fishing_completion_speed = 1.3
|
|
fishing_bait_speed_mult = 1.5
|
|
fishing_deceleration_mult = 0.5
|
|
fishing_bounciness_mult = 2
|
|
|
|
/datum/material/bananium/on_applied(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
source.LoadComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 50 * multiplier, falloff_exponent = 20)
|
|
source.AddComponent(/datum/component/slippery, min(mat_amount / 10 * multiplier, 80 * multiplier))
|
|
|
|
/datum/material/bananium/on_main_applied(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
RegisterSignal(source, COMSIG_ROD_BEGIN_FISHING, PROC_REF(on_begin_fishing))
|
|
|
|
/datum/material/bananium/proc/on_begin_fishing(obj/item/fishing_rod/rod, datum/fishing_challenge/challenge)
|
|
SIGNAL_HANDLER
|
|
if(prob(40))
|
|
RegisterSignal(challenge, COMSIG_FISHING_CHALLENGE_ROLL_REWARD, PROC_REF(roll_funny_fish))
|
|
|
|
/datum/material/bananium/proc/roll_funny_fish(datum/source, obj/item/fishing_rod/rod, mob/fisherman, atom/location, list/rewards)
|
|
SIGNAL_HANDLER
|
|
var/static/list/funny_fish = list(
|
|
/obj/item/fish/clownfish = 5,
|
|
/obj/item/fish/clownfish/lube = 3,
|
|
/obj/item/fish/soul = 2,
|
|
/obj/item/fish/skin_crab = 2,
|
|
/obj/item/fish/donkfish = 2,
|
|
)
|
|
rewards += pick_weight(funny_fish)
|
|
|
|
/datum/material/bananium/on_removed(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
qdel(source.GetComponent(/datum/component/slippery))
|
|
qdel(source.GetComponent(/datum/component/squeak))
|
|
|
|
/datum/material/bananium/on_main_removed(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
UnregisterSignal(source, COMSIG_ROD_BEGIN_FISHING)
|
|
|
|
/datum/material/bananium/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.reagents.add_reagent(/datum/reagent/consumable/banana, rand(8, 12))
|
|
source_item?.reagents?.add_reagent(/datum/reagent/consumable/banana, source_item.reagents.total_volume*(2/5))
|
|
return TRUE
|
|
|
|
///Mediocre force increase
|
|
/datum/material/titanium
|
|
name = "titanium"
|
|
desc = "Titanium"
|
|
color = "#EFEFEF"
|
|
strength_modifier = 1.3
|
|
categories = list(
|
|
MAT_CATEGORY_SILO = TRUE,
|
|
MAT_CATEGORY_RIGID=TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/mineral/titanium
|
|
ore_type = /obj/item/stack/ore/titanium
|
|
value_per_unit = 125 / SHEET_MATERIAL_AMOUNT
|
|
tradable = TRUE
|
|
tradable_base_quantity = MATERIAL_QUANTITY_UNCOMMON
|
|
beauty_modifier = 0.05
|
|
armor_modifiers = list(MELEE = 1.35, BULLET = 1.3, LASER = 1.3, ENERGY = 1.25, BOMB = 1.25, BIO = 1, FIRE = 0.7, ACID = 1)
|
|
mat_rust_resistance = RUST_RESISTANCE_TITANIUM
|
|
mineral_rarity = MATERIAL_RARITY_SEMIPRECIOUS
|
|
texture_layer_icon_state = "shine"
|
|
fish_weight_modifier = 1.2
|
|
fishing_difficulty_modifier = -5
|
|
fishing_cast_range = 1
|
|
fishing_completion_speed = 1.15
|
|
fishing_bait_speed_mult = 1.1
|
|
fishing_deceleration_mult = 1.3
|
|
fishing_bounciness_mult = 0.75
|
|
fishing_gravity_mult = 1.1
|
|
|
|
/datum/material/titanium/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.apply_damage(15, BRUTE, BODY_ZONE_HEAD, wound_bonus = 7)
|
|
return TRUE
|
|
|
|
/datum/material/runite
|
|
name = "runite"
|
|
desc = "Runite"
|
|
color = "#526F77"
|
|
strength_modifier = 1.3
|
|
categories = list(
|
|
MAT_CATEGORY_RIGID = TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/mineral/runite
|
|
value_per_unit = 600 / SHEET_MATERIAL_AMOUNT
|
|
beauty_modifier = 0.5
|
|
armor_modifiers = list(MELEE = 1.35, BULLET = 2, LASER = 0.5, ENERGY = 1.25, BOMB = 1.25, BIO = 1, FIRE = 1.4, ACID = 1) //rune is weak against magic lasers but strong against bullets. This is the combat triangle.
|
|
mineral_rarity = MATERIAL_RARITY_UNDISCOVERED
|
|
points_per_unit = 100 / SHEET_MATERIAL_AMOUNT
|
|
fish_weight_modifier = 1.5
|
|
fishing_difficulty_modifier = -13
|
|
fishing_cast_range = 1
|
|
fishing_experience_multiplier = 3.2 //grind all the way to level 100 in no time.
|
|
fishing_completion_speed = 1.3
|
|
fishing_bait_speed_mult = 0.9
|
|
fishing_deceleration_mult = 1.2
|
|
fishing_gravity_mult = 1.2
|
|
|
|
/datum/material/runite/on_applied(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
ADD_TRAIT(source, TRAIT_ROD_REMOVE_FISHING_DUD, REF(src)) //light-absorbing, environment-cancelling fishing rod.
|
|
|
|
/datum/material/runite/on_removed(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
REMOVE_TRAIT(source, TRAIT_ROD_REMOVE_FISHING_DUD, REF(src)) //light-absorbing, environment-cancelling fishing rod.
|
|
|
|
/datum/material/runite/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.apply_damage(20, BRUTE, BODY_ZONE_HEAD, wound_bonus = 10)
|
|
return TRUE
|
|
|
|
///Force decrease
|
|
/datum/material/plastic
|
|
name = "plastic"
|
|
desc = "Plastic"
|
|
color = "#BFB9AC"
|
|
strength_modifier = 0.85
|
|
sheet_type = /obj/item/stack/sheet/plastic
|
|
ore_type = /obj/item/stack/ore/slag //No plastic or coal ore, so we use slag.
|
|
categories = list(
|
|
MAT_CATEGORY_SILO = TRUE,
|
|
MAT_CATEGORY_RIGID=TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
value_per_unit = 25 / SHEET_MATERIAL_AMOUNT
|
|
beauty_modifier = -0.01
|
|
armor_modifiers = list(MELEE = 1.5, BULLET = 1.1, LASER = 0.3, ENERGY = 0.5, BOMB = 1, BIO = 1, FIRE = 1.1, ACID = 1)
|
|
mineral_rarity = MATERIAL_RARITY_UNDISCOVERED //Nobody's found oil on lavaland yet.
|
|
points_per_unit = 4 / SHEET_MATERIAL_AMOUNT
|
|
fish_weight_modifier = 0.8
|
|
fishing_difficulty_modifier = -5
|
|
fishing_cast_range = 2
|
|
fishing_experience_multiplier = 1.2
|
|
fishing_bait_speed_mult = 1.2
|
|
fishing_deceleration_mult = 0.8
|
|
fishing_bounciness_mult = 1.3
|
|
fishing_gravity_mult = 0.85
|
|
|
|
/datum/material/plastic/on_accidental_mat_consumption(mob/living/carbon/eater, obj/item/food)
|
|
eater.reagents.add_reagent(/datum/reagent/plastic_polymers, rand(6, 8))
|
|
food?.reagents?.add_reagent(/datum/reagent/plastic_polymers, food.reagents.total_volume*(2/5))
|
|
return TRUE
|
|
|
|
///Force decrease and mushy sound effect. (Not yet implemented)
|
|
/datum/material/biomass
|
|
name = "biomass"
|
|
desc = "Organic matter."
|
|
color = "#735b4d"
|
|
strength_modifier = 0.8
|
|
value_per_unit = 50 / SHEET_MATERIAL_AMOUNT
|
|
|
|
/datum/material/wood
|
|
name = "wood"
|
|
desc = "Flexible, durable, but flamable. Hard to come across in space."
|
|
color = "#855932"
|
|
strength_modifier = 0.5
|
|
sheet_type = /obj/item/stack/sheet/mineral/wood
|
|
categories = list(
|
|
MAT_CATEGORY_RIGID = TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
value_per_unit = 20 / SHEET_MATERIAL_AMOUNT
|
|
beauty_modifier = 0.1
|
|
armor_modifiers = list(MELEE = 1.1, BULLET = 1.1, LASER = 0.4, ENERGY = 0.4, BOMB = 1, BIO = 0.2, ACID = 0.3)
|
|
texture_layer_icon_state = "woodgrain"
|
|
fish_weight_modifier = 0.5
|
|
fishing_difficulty_modifier = 8
|
|
fishing_cast_range = -1
|
|
fishing_experience_multiplier = 1.3
|
|
fishing_completion_speed = 0.9
|
|
fishing_bait_speed_mult = 0.8
|
|
fishing_deceleration_mult = 1.3
|
|
fishing_bounciness_mult = 0.4
|
|
fishing_gravity_mult = 0.8
|
|
|
|
/datum/material/wood/on_main_applied(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(source.material_flags & MATERIAL_AFFECT_STATISTICS && isobj(source))
|
|
var/obj/wooden = source
|
|
wooden.resistance_flags |= FLAMMABLE
|
|
|
|
/datum/material/wood/on_main_removed(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(source.material_flags & MATERIAL_AFFECT_STATISTICS && isobj(source))
|
|
var/obj/wooden = source
|
|
wooden.resistance_flags &= ~FLAMMABLE
|
|
|
|
/datum/material/wood/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.apply_damage(5, BRUTE, BODY_ZONE_HEAD)
|
|
victim.reagents.add_reagent(/datum/reagent/cellulose, rand(8, 12))
|
|
source_item?.reagents?.add_reagent(/datum/reagent/cellulose, source_item.reagents.total_volume*(2/5))
|
|
|
|
return TRUE
|
|
|
|
///Stronk force increase
|
|
/datum/material/adamantine
|
|
name = "adamantine"
|
|
desc = "A powerful material made out of magic, I mean science!"
|
|
color = "#2B7A74"
|
|
strength_modifier = 1.5
|
|
categories = list(
|
|
MAT_CATEGORY_RIGID = TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/mineral/adamantine
|
|
value_per_unit = 500 / SHEET_MATERIAL_AMOUNT
|
|
beauty_modifier = 0.4
|
|
armor_modifiers = list(MELEE = 1.5, BULLET = 1.5, LASER = 1.3, ENERGY = 1.3, BOMB = 1, BIO = 1, FIRE = 2.5, ACID = 1)
|
|
mineral_rarity = MATERIAL_RARITY_UNDISCOVERED //Doesn't naturally spawn on lavaland.
|
|
points_per_unit = 100 / SHEET_MATERIAL_AMOUNT
|
|
fish_weight_modifier = 1.6
|
|
fishing_difficulty_modifier = -17
|
|
fishing_cast_range = 1
|
|
fishing_experience_multiplier = 0.6
|
|
fishing_completion_speed = 1.3
|
|
fishing_bait_speed_mult = 1.2
|
|
fishing_deceleration_mult = 1.3
|
|
fishing_bounciness_mult = 0.7
|
|
fishing_gravity_mult = 1.3
|
|
|
|
/datum/material/adamantine/on_applied(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
ADD_TRAIT(source, TRAIT_ROD_REMOVE_FISHING_DUD, REF(src)) //light-absorbing, environment-cancelling fishing rod.
|
|
|
|
/datum/material/adamantine/on_removed(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
REMOVE_TRAIT(source, TRAIT_ROD_REMOVE_FISHING_DUD, REF(src)) //light-absorbing, environment-cancelling fishing rod.
|
|
|
|
/datum/material/adamantine/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.apply_damage(20, BRUTE, BODY_ZONE_HEAD, wound_bonus = 10)
|
|
return TRUE
|
|
|
|
///RPG Magic.
|
|
/datum/material/mythril
|
|
name = "mythril"
|
|
desc = "How this even exists is byond me"
|
|
color = "#f2d5d7"
|
|
categories = list(
|
|
MAT_CATEGORY_RIGID = TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/mineral/mythril
|
|
value_per_unit = 1500 / SHEET_MATERIAL_AMOUNT
|
|
strength_modifier = 1.2
|
|
armor_modifiers = list(MELEE = 1.5, BULLET = 1.5, LASER = 1.5, ENERGY = 1.5, BOMB = 1.5, BIO = 1.5, FIRE = 1.5, ACID = 1.5)
|
|
beauty_modifier = 0.5
|
|
mineral_rarity = MATERIAL_RARITY_UNDISCOVERED //Doesn't naturally spawn on lavaland.
|
|
points_per_unit = 100 / SHEET_MATERIAL_AMOUNT
|
|
fish_weight_modifier = 1.4
|
|
fishing_difficulty_modifier = -20
|
|
fishing_cast_range = 2
|
|
fishing_experience_multiplier = 0.5
|
|
fishing_completion_speed = 1.35
|
|
fishing_bait_speed_mult = 1.2
|
|
fishing_deceleration_mult = 1.35
|
|
fishing_bounciness_mult = 0.65
|
|
fishing_gravity_mult = 1.3
|
|
|
|
/datum/material/mythril/on_applied(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(isitem(source))
|
|
source.AddComponent(/datum/component/fantasy)
|
|
ADD_TRAIT(source, TRAIT_INNATELY_FANTASTICAL_ITEM, REF(src)) // DO THIS LAST OR WE WILL NEVER GET OUR BONUSES!!!
|
|
|
|
/datum/material/mythril/on_removed(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(isitem(source))
|
|
REMOVE_TRAIT(source, TRAIT_INNATELY_FANTASTICAL_ITEM, REF(src)) // DO THIS FIRST OR WE WILL NEVER GET OUR BONUSES DELETED!!!
|
|
qdel(source.GetComponent(/datum/component/fantasy))
|
|
|
|
/datum/material/mythril/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.apply_damage(20, BRUTE, BODY_ZONE_HEAD, wound_bonus = 10)
|
|
return TRUE
|
|
|
|
//formed when freon react with o2, emits a lot of plasma when heated
|
|
/datum/material/hot_ice
|
|
name = "hot ice"
|
|
desc = "A weird kind of ice, feels warm to the touch"
|
|
color = "#88cdf1"
|
|
alpha = 150
|
|
starlight_color = COLOR_BLUE_LIGHT
|
|
categories = list(
|
|
MAT_CATEGORY_RIGID = TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/hot_ice
|
|
value_per_unit = 400 / SHEET_MATERIAL_AMOUNT
|
|
beauty_modifier = 0.2
|
|
fish_weight_modifier = 0.9
|
|
fishing_difficulty_modifier = -8
|
|
fishing_cast_range = 1
|
|
fishing_experience_multiplier = 0.9
|
|
fishing_completion_speed = 1.4
|
|
fishing_bait_speed_mult = 1.3
|
|
fishing_deceleration_mult = 0.5
|
|
fishing_bounciness_mult = 0.3
|
|
fishing_gravity_mult = 0.8
|
|
|
|
/datum/material/hot_ice/on_applied(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
source.AddComponent(/datum/component/combustible_flooder, "plasma", mat_amount * 1.5 * multiplier, (mat_amount * 0.2 + 300) * multiplier)
|
|
|
|
/datum/material/hot_ice/on_removed(atom/source, mat_amount, multiplier)
|
|
qdel(source.GetComponent(/datum/component/combustible_flooder))
|
|
return ..()
|
|
|
|
/datum/material/hot_ice/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.reagents.add_reagent(/datum/reagent/toxin/plasma, rand(5, 6))
|
|
source_item?.reagents?.add_reagent(/datum/reagent/toxin/plasma, source_item.reagents.total_volume*(3/5))
|
|
return TRUE
|
|
|
|
// It's basically adamantine, but it isn't!
|
|
/datum/material/metalhydrogen
|
|
name = "Metal Hydrogen"
|
|
desc = "Solid metallic hydrogen. Some say it should be impossible"
|
|
color = "#62708A"
|
|
alpha = 150
|
|
starlight_color = COLOR_MODERATE_BLUE
|
|
categories = list(
|
|
MAT_CATEGORY_RIGID = TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/mineral/metal_hydrogen
|
|
value_per_unit = 700 / SHEET_MATERIAL_AMOUNT
|
|
beauty_modifier = 0.35
|
|
strength_modifier = 1.2
|
|
armor_modifiers = list(MELEE = 1.35, BULLET = 1.3, LASER = 1.3, ENERGY = 1.25, BOMB = 0.7, BIO = 1, FIRE = 1.3, ACID = 1)
|
|
fish_weight_modifier = 0.6 //It may be metallic, but it's just "denser" hydrogen at the end of the day, no?
|
|
fishing_difficulty_modifier = -13
|
|
fishing_cast_range = 4
|
|
fishing_experience_multiplier = 0.8
|
|
fishing_completion_speed = 1.4
|
|
fishing_bait_speed_mult = 1.3
|
|
fishing_deceleration_mult = 0.8
|
|
fishing_bounciness_mult = 1.7
|
|
fishing_gravity_mult = 0.7
|
|
|
|
/datum/material/metalhydrogen/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.apply_damage(15, BRUTE, BODY_ZONE_HEAD, wound_bonus = 7)
|
|
return TRUE
|
|
|
|
//I don't like sand. It's coarse, and rough, and irritating, and it gets everywhere.
|
|
/datum/material/sand
|
|
name = "sand"
|
|
desc = "You know, it's amazing just how structurally sound sand can be."
|
|
color = "#EDC9AF"
|
|
categories = list(
|
|
MAT_CATEGORY_RIGID = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/sandblock
|
|
value_per_unit = 2 / SHEET_MATERIAL_AMOUNT
|
|
strength_modifier = 0.5
|
|
integrity_modifier = 0.1
|
|
armor_modifiers = list(MELEE = 0.25, BULLET = 0.25, LASER = 1.25, ENERGY = 0.25, BOMB = 0.25, BIO = 0.25, FIRE = 1.5, ACID = 1.5)
|
|
beauty_modifier = 0.25
|
|
turf_sound_override = FOOTSTEP_SAND
|
|
texture_layer_icon_state = "sand"
|
|
fish_weight_modifier = 1.2
|
|
fishing_difficulty_modifier = 30 //Sand fishing rods? What the hell are you doing?
|
|
fishing_cast_range = -2
|
|
fishing_experience_multiplier = 0.2
|
|
fishing_completion_speed = 0.8
|
|
fishing_bait_speed_mult = 0.8
|
|
fishing_deceleration_mult = 2.5
|
|
fishing_bounciness_mult = 0.3
|
|
fishing_gravity_mult = 0.9
|
|
|
|
/datum/material/sand/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.adjust_disgust(17)
|
|
return TRUE
|
|
|
|
//And now for our lavaland dwelling friends, sand, but in stone form! Truly revolutionary.
|
|
/datum/material/sandstone
|
|
name = "sandstone"
|
|
desc = "Bialtaakid 'ant taerif ma hdha."
|
|
color = "#ECD5A8"
|
|
categories = list(
|
|
MAT_CATEGORY_RIGID = TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/mineral/sandstone
|
|
value_per_unit = 5 / SHEET_MATERIAL_AMOUNT
|
|
armor_modifiers = list(MELEE = 0.5, BULLET = 0.5, LASER = 1.25, ENERGY = 0.5, BOMB = 0.5, BIO = 0.25, FIRE = 1.5, ACID = 1.5)
|
|
beauty_modifier = 0.3
|
|
turf_sound_override = FOOTSTEP_WOOD
|
|
texture_layer_icon_state = "brick"
|
|
fish_weight_modifier = 1.2
|
|
fishing_difficulty_modifier = 25 //Sand fishing rods? What the hell are you doing?
|
|
fishing_cast_range = -2
|
|
fishing_experience_multiplier = 0.3
|
|
fishing_completion_speed = 0.9
|
|
fishing_bait_speed_mult = 0.8
|
|
fishing_deceleration_mult = 2.5
|
|
fishing_bounciness_mult = 0.2
|
|
fishing_gravity_mult = 0.9
|
|
|
|
/datum/material/snow
|
|
name = "snow"
|
|
desc = "There's no business like snow business."
|
|
color = COLOR_WHITE
|
|
categories = list(
|
|
MAT_CATEGORY_RIGID = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/mineral/snow
|
|
strength_modifier = 0.4
|
|
integrity_modifier = 0.4
|
|
value_per_unit = 5 / SHEET_MATERIAL_AMOUNT
|
|
armor_modifiers = list(MELEE = 0.25, BULLET = 0.25, LASER = 0.25, ENERGY = 0.25, BOMB = 0.25, BIO = 0.25, FIRE = 0.25, ACID = 1.5)
|
|
beauty_modifier = 0.3
|
|
turf_sound_override = FOOTSTEP_SAND
|
|
texture_layer_icon_state = "sand"
|
|
fish_weight_modifier = 0.8
|
|
fishing_difficulty_modifier = 25
|
|
fishing_cast_range = -2
|
|
fishing_experience_multiplier = 0.3
|
|
fishing_completion_speed = 0.9
|
|
fishing_bait_speed_mult = 0.75
|
|
fishing_deceleration_mult = 0.3
|
|
fishing_bounciness_mult = 0.2
|
|
fishing_gravity_mult = 0.7
|
|
|
|
/datum/material/snow/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.reagents.add_reagent(/datum/reagent/water, rand(5, 10))
|
|
return TRUE
|
|
|
|
/datum/material/runedmetal
|
|
name = "runed metal"
|
|
desc = "Mir'ntrath barhah Nar'sie."
|
|
color = "#504742"
|
|
categories = list(
|
|
MAT_CATEGORY_RIGID = TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/runed_metal
|
|
value_per_unit = 1500 / SHEET_MATERIAL_AMOUNT
|
|
armor_modifiers = list(MELEE = 1.2, BULLET = 1.2, LASER = 1, ENERGY = 1, BOMB = 1.2, BIO = 1.2, FIRE = 1.5, ACID = 1.5)
|
|
beauty_modifier = -0.15
|
|
texture_layer_icon_state = "runed"
|
|
fish_weight_modifier = 1.5
|
|
fishing_difficulty_modifier = -6.66
|
|
fishing_experience_multiplier = 0.666
|
|
fishing_completion_speed = 1.666
|
|
fishing_bait_speed_mult = 1.666
|
|
fishing_deceleration_mult = 1.666
|
|
fishing_bounciness_mult = 0.666
|
|
fishing_gravity_mult = 1.666
|
|
|
|
/datum/material/runedmetal/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.reagents.add_reagent(/datum/reagent/fuel/unholywater, rand(8, 12))
|
|
victim.apply_damage(10, BRUTE, BODY_ZONE_HEAD, wound_bonus = 5)
|
|
return TRUE
|
|
|
|
/datum/material/bronze
|
|
name = "bronze"
|
|
desc = "Clock Cult? Never heard of it."
|
|
color = "#876223"
|
|
categories = list(
|
|
MAT_CATEGORY_RIGID = TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/bronze
|
|
value_per_unit = 50 / SHEET_MATERIAL_AMOUNT
|
|
armor_modifiers = list(MELEE = 1, BULLET = 1, LASER = 1, ENERGY = 1, BOMB = 1, BIO = 1, FIRE = 1.5, ACID = 1.5)
|
|
beauty_modifier = 0.2
|
|
fish_weight_modifier = 1.4
|
|
fishing_bait_speed_mult = 1.1
|
|
fishing_deceleration_mult = 0.8
|
|
fishing_bounciness_mult = 1.2
|
|
fishing_gravity_mult = 1.05
|
|
|
|
/datum/material/paper
|
|
name = "paper"
|
|
desc = "Ten thousand folds of pure starchy power."
|
|
color = "#E5DCD5"
|
|
categories = list(
|
|
MAT_CATEGORY_RIGID = TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/paperframes
|
|
value_per_unit = 5 / SHEET_MATERIAL_AMOUNT
|
|
strength_modifier = 0.3
|
|
armor_modifiers = list(MELEE = 0.1, BULLET = 0.1, LASER = 0.1, ENERGY = 0.1, BOMB = 0.1, BIO = 0.1, ACID = 1.5)
|
|
beauty_modifier = 0.3
|
|
turf_sound_override = FOOTSTEP_SAND
|
|
texture_layer_icon_state = "paper"
|
|
fish_weight_modifier = 0.4
|
|
fishing_difficulty_modifier = 40 //child's play
|
|
fishing_cast_range = -2
|
|
fishing_experience_multiplier = 0.1
|
|
fishing_bait_speed_mult = 0.7
|
|
fishing_deceleration_mult = 1.5
|
|
fishing_bounciness_mult = 0.2
|
|
fishing_gravity_mult = 0.6
|
|
|
|
/datum/material/paper/on_main_applied(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(!isobj(source) || !(source.material_flags & MATERIAL_AFFECT_STATISTICS))
|
|
return
|
|
var/obj/paper = source
|
|
paper.resistance_flags |= FLAMMABLE
|
|
paper.obj_flags |= UNIQUE_RENAME
|
|
if(istype(paper, /obj/item/fishing_rod))
|
|
RegisterSignal(paper, COMSIG_ROD_BEGIN_FISHING, PROC_REF(on_begin_fishing))
|
|
|
|
/datum/material/paper/proc/on_begin_fishing(obj/item/fishing_rod/rod, datum/fishing_challenge/challenge)
|
|
SIGNAL_HANDLER
|
|
if(prob(40)) //consider the default reward and it's 15%
|
|
RegisterSignal(challenge, COMSIG_FISHING_CHALLENGE_ROLL_REWARD, PROC_REF(roll_stickman))
|
|
|
|
/datum/material/paper/proc/roll_stickman(datum/source, obj/item/fishing_rod/rod, mob/fisherman, atom/location, list/rewards)
|
|
SIGNAL_HANDLER
|
|
rewards += pick(/mob/living/basic/stickman, /mob/living/basic/stickman/dog, /mob/living/basic/stickman/ranged)
|
|
|
|
/datum/material/paper/on_main_removed(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(!isobj(source) || !(source.material_flags & MATERIAL_AFFECT_STATISTICS))
|
|
return
|
|
var/obj/paper = source
|
|
paper.resistance_flags &= ~FLAMMABLE
|
|
if(istype(paper, /obj/item/fishing_rod))
|
|
UnregisterSignal(paper, COMSIG_ROD_BEGIN_FISHING)
|
|
|
|
/datum/material/cardboard
|
|
name = "cardboard"
|
|
desc = "They say cardboard is used by hobos to make incredible things."
|
|
color = "#5F625C"
|
|
categories = list(
|
|
MAT_CATEGORY_RIGID = TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/cardboard
|
|
value_per_unit = 6 / SHEET_MATERIAL_AMOUNT
|
|
strength_modifier = 0.3
|
|
armor_modifiers = list(MELEE = 0.25, BULLET = 0.25, LASER = 0.25, ENERGY = 0.25, BOMB = 0.25, BIO = 0.25, ACID = 1.5)
|
|
beauty_modifier = -0.1
|
|
fish_weight_modifier = 0.4
|
|
fishing_difficulty_modifier = 40 //child's play
|
|
fishing_cast_range = -2
|
|
fishing_experience_multiplier = 0.1
|
|
fishing_bait_speed_mult = 0.7
|
|
fishing_deceleration_mult = 1.5
|
|
fishing_bounciness_mult = 0.2
|
|
fishing_gravity_mult = 0.6
|
|
|
|
/datum/material/cardboard/on_main_applied(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(isobj(source) && source.material_flags & MATERIAL_AFFECT_STATISTICS)
|
|
var/obj/cardboard = source
|
|
cardboard.resistance_flags |= FLAMMABLE
|
|
cardboard.obj_flags |= UNIQUE_RENAME
|
|
|
|
/datum/material/cardboard/on_main_removed(atom/source, mat_amount, multiplier)
|
|
if(isobj(source) && source.material_flags & MATERIAL_AFFECT_STATISTICS)
|
|
var/obj/cardboard = source
|
|
cardboard.resistance_flags &= ~FLAMMABLE
|
|
return ..()
|
|
|
|
/datum/material/bone
|
|
name = "bone"
|
|
desc = "Man, building with this will make you the coolest caveman on the block."
|
|
color = "#e3dac9"
|
|
categories = list(
|
|
MAT_CATEGORY_RIGID = TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/bone
|
|
value_per_unit = 100 / SHEET_MATERIAL_AMOUNT
|
|
armor_modifiers = list(MELEE = 1.2, BULLET = 0.75, LASER = 0.75, ENERGY = 1.2, BOMB = 1, BIO = 1, FIRE = 1.5, ACID = 1.5)
|
|
beauty_modifier = -0.2
|
|
fish_weight_modifier = 1.05
|
|
fishing_difficulty_modifier = 15
|
|
fishing_cast_range = -2
|
|
fishing_experience_multiplier = 0.85
|
|
fishing_completion_speed = 0.9
|
|
fishing_bait_speed_mult = 0.9
|
|
fishing_deceleration_mult = 0.9
|
|
fishing_bounciness_mult = 0.8
|
|
fishing_gravity_mult = 0.85
|
|
|
|
/datum/material/bone/on_main_applied(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
RegisterSignal(source, COMSIG_ROD_BEGIN_FISHING, PROC_REF(on_begin_fishing))
|
|
else if(istype(source, /obj/item/fish))
|
|
ADD_TRAIT(source, TRAIT_FISH_MADE_OF_BONE, REF(src))
|
|
|
|
/datum/material/bone/proc/on_begin_fishing(obj/item/fishing_rod/rod, datum/fishing_challenge/challenge)
|
|
SIGNAL_HANDLER
|
|
if(prob(40))
|
|
RegisterSignal(challenge, COMSIG_FISHING_CHALLENGE_ROLL_REWARD, PROC_REF(roll_bones))
|
|
|
|
/datum/material/bone/proc/roll_bones(datum/source, obj/item/fishing_rod/rod, mob/fisherman, atom/location, list/rewards)
|
|
SIGNAL_HANDLER
|
|
var/static/list/bones = list(
|
|
/obj/item/fish/boned = 65,
|
|
/obj/item/fish/mastodon = 8,
|
|
/mob/living/basic/skeleton = 6,
|
|
/mob/living/basic/skeleton/ice = 6,
|
|
/mob/living/basic/skeleton/templar = 6,
|
|
/obj/item/instrument/trumpet/spectral/one_doot = 3,
|
|
/obj/item/instrument/saxophone/spectral/one_doot = 3,
|
|
/obj/item/instrument/trombone/spectral/one_doot = 3,
|
|
)
|
|
rewards += pick_weight(bones)
|
|
|
|
/datum/material/bone/on_main_removed(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
UnregisterSignal(source, COMSIG_ROD_BEGIN_FISHING)
|
|
else if(istype(source, /obj/item/fish))
|
|
REMOVE_TRAIT(source, TRAIT_FISH_MADE_OF_BONE, REF(src))
|
|
|
|
/datum/material/bamboo
|
|
name = "bamboo"
|
|
desc = "If it's good enough for pandas, it's good enough for you."
|
|
color = "#87a852"
|
|
categories = list(
|
|
MAT_CATEGORY_RIGID = TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/mineral/bamboo
|
|
strength_modifier = 0.5
|
|
value_per_unit = 5 / SHEET_MATERIAL_AMOUNT
|
|
armor_modifiers = list(MELEE = 0.5, BULLET = 0.5, LASER = 0.5, ENERGY = 0.5, BOMB = 0.5, BIO = 0.51, FIRE = 0.5, ACID = 1.5)
|
|
beauty_modifier = 0.2
|
|
turf_sound_override = FOOTSTEP_WOOD
|
|
texture_layer_icon_state = "bamboo"
|
|
fish_weight_modifier = 0.5
|
|
fishing_difficulty_modifier = -4
|
|
fishing_cast_range = -1
|
|
fishing_experience_multiplier = 1.3
|
|
fishing_completion_speed = 1.15
|
|
fishing_bait_speed_mult = 1.1
|
|
fishing_deceleration_mult = 0.8
|
|
fishing_bounciness_mult = 0.7
|
|
fishing_gravity_mult = 0.7
|
|
|
|
/datum/material/zaukerite
|
|
name = "zaukerite"
|
|
desc = "A light absorbing crystal"
|
|
color = COLOR_ALMOST_BLACK
|
|
categories = list(
|
|
MAT_CATEGORY_RIGID = TRUE,
|
|
MAT_CATEGORY_BASE_RECIPES = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL = TRUE,
|
|
MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/mineral/zaukerite
|
|
value_per_unit = 900 / SHEET_MATERIAL_AMOUNT
|
|
armor_modifiers = list(MELEE = 0.9, BULLET = 0.9, LASER = 1.75, ENERGY = 1.75, BOMB = 0.5, BIO = 1, FIRE = 0.1, ACID = 1)
|
|
beauty_modifier = 0.001
|
|
fish_weight_modifier = 1.2
|
|
fishing_difficulty_modifier = -14
|
|
fishing_experience_multiplier = 0.9
|
|
fishing_completion_speed = 1.3
|
|
fishing_bait_speed_mult = 1.2
|
|
fishing_deceleration_mult = 1.3
|
|
fishing_bounciness_mult = 1.1
|
|
fishing_gravity_mult = 1.3
|
|
|
|
/datum/material/zaukerite/on_applied(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
ADD_TRAIT(source, TRAIT_ROD_IGNORE_ENVIRONMENT, REF(src)) //light-absorbing, environment-cancelling fishing rod.
|
|
|
|
/datum/material/zaukerite/on_removed(atom/source, mat_amount, multiplier)
|
|
. = ..()
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
REMOVE_TRAIT(source, TRAIT_ROD_IGNORE_ENVIRONMENT, REF(src)) //light-absorbing, environment-cancelling fishing rod.
|
|
|
|
/datum/material/zaukerite/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item)
|
|
victim.apply_damage(30, BURN, BODY_ZONE_HEAD, wound_bonus = 5)
|
|
source_item?.reagents?.add_reagent(/datum/reagent/toxin/plasma, source_item.reagents.total_volume*5)
|
|
return TRUE
|