From 730d96ad061fce1861f2691aa1c9f45bc2ee89b7 Mon Sep 17 00:00:00 2001 From: Fikou Date: Tue, 17 Sep 2019 16:50:32 +0200 Subject: [PATCH] bunch of datum mats stuff mostly related to coins (#46289) adamantine and mythril are now datum mats (mythril still admin only), adamantine has 1.5 strength buff to whatever is made out of it, mythril adds rpg loot elements to whatever is made out of it you can now put plastic, adamantine and mythril in the autolathe and coin mint you can now put titanium in coin mint switches a bunch of stuff in cargo exports, including mythril and plastic being worth cash money coin code has been changed to datum mats, the custom sprites have been lost except for antag token --- code/datums/components/fantasy/_fantasy.dm | 4 +- code/datums/materials/_material.dm | 4 +- code/datums/materials/basemats.dm | 56 +++++- code/game/atoms.dm | 3 +- code/game/machinery/autolathe.dm | 13 +- code/game/machinery/slotmachine.dm | 2 +- .../objects/items/stacks/sheets/mineral.dm | 2 + .../items/stacks/sheets/sheet_types.dm | 1 - code/modules/cargo/exports/materials.dm | 46 +++-- code/modules/cargo/exports/sheets.dm | 15 +- code/modules/mining/mint.dm | 39 ++-- code/modules/mining/ores_coins.dm | 166 +++++++----------- icons/obj/economy.dmi | Bin 25238 -> 17036 bytes 13 files changed, 196 insertions(+), 155 deletions(-) diff --git a/code/datums/components/fantasy/_fantasy.dm b/code/datums/components/fantasy/_fantasy.dm index 1122b7b3960..457313471e6 100644 --- a/code/datums/components/fantasy/_fantasy.dm +++ b/code/datums/components/fantasy/_fantasy.dm @@ -91,7 +91,7 @@ master.force = max(0, master.force + quality) master.throwforce = max(0, master.throwforce + quality) - master.armor = master.armor.modifyAllRatings(quality) + master.armor = master.armor?.modifyAllRatings(quality) var/newName = originalName for(var/i in affixes) @@ -122,7 +122,7 @@ master.force = max(0, master.force - quality) master.throwforce = max(0, master.throwforce - quality) - master.armor = master.armor.modifyAllRatings(-quality) + master.armor = master.armor?.modifyAllRatings(-quality) master.name = originalName diff --git a/code/datums/materials/_material.dm b/code/datums/materials/_material.dm index dcfaf4ad68b..e1e8c29871d 100644 --- a/code/datums/materials/_material.dm +++ b/code/datums/materials/_material.dm @@ -18,12 +18,12 @@ Simple datum which is instanced once per type and is used for every object of sa var/list/categories = list() ///The type of sheet this material creates. This should be replaced as soon as possible by greyscale sheets. var/sheet_type - ///The type of coin this material spawns. This should be replaced as soon as possible by greyscale coins. - var/coin_type ///This is a modifier for force, and resembles the strength of the material var/strength_modifier = 1 ///This is a modifier for integrity, and resembles the strength of the material var/integrity_modifier = 1 + ///This is the amount of value per 1 unit of the material + var/value_per_unit = 0 ///Armor modifiers, multiplies an items normal armor vars by these amounts. var/armor_modifiers = list("melee" = 1, "bullet" = 1, "laser" = 1, "energy" = 1, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 1, "acid" = 1) diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm index 26882b1bb2f..55d3760cf5e 100644 --- a/code/datums/materials/basemats.dm +++ b/code/datums/materials/basemats.dm @@ -6,7 +6,7 @@ color = "#878687" categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) sheet_type = /obj/item/stack/sheet/metal - coin_type = /obj/item/coin/iron + value_per_unit = 0.0025 ///Breaks extremely easily but is transparent. /datum/material/glass @@ -18,6 +18,7 @@ categories = list(MAT_CATEGORY_RIGID = TRUE) integrity_modifier = 0.1 sheet_type = /obj/item/stack/sheet/glass + value_per_unit = 0.0025 armor_modifiers = list("melee" = 0.2, "bullet" = 0.2, "laser" = 0, "energy" = 1, "bomb" = 0, "bio" = 0.2, "rad" = 0.2, "fire" = 1, "acid" = 0.2) // yeah ok retard ///Has no special properties. Could be good against vampires in the future perhaps. @@ -28,7 +29,7 @@ color = "#bdbebf" categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) sheet_type = /obj/item/stack/sheet/mineral/silver - coin_type = /obj/item/coin/silver + value_per_unit = 0.025 ///Slight force increase /datum/material/gold @@ -39,7 +40,7 @@ strength_modifier = 1.2 categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) sheet_type = /obj/item/stack/sheet/mineral/gold - coin_type = /obj/item/coin/gold + value_per_unit = 0.0625 armor_modifiers = list("melee" = 1.1, "bullet" = 1.1, "laser" = 1.15, "energy" = 1.15, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 0.7, "acid" = 1.1) ///Has no special properties @@ -50,7 +51,7 @@ color = "#22c2d4" categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) sheet_type = /obj/item/stack/sheet/mineral/diamond - coin_type = /obj/item/coin/diamond + value_per_unit = 0.25 armor_modifiers = list("melee" = 1.3, "bullet" = 1.3, "laser" = 0.6, "energy" = 1, "bomb" = 1.2, "bio" = 1, "rad" = 1, "fire" = 1, "acid" = 1) ///Is slightly radioactive @@ -61,7 +62,7 @@ color = "#1fb83b" categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) sheet_type = /obj/item/stack/sheet/mineral/uranium - coin_type = /obj/item/coin/uranium + value_per_unit = 0.05 armor_modifiers = list("melee" = 1.5, "bullet" = 1.4, "laser" = 0.5, "energy" = 0.5, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 1, "acid" = 1) /datum/material/uranium/on_applied(atom/source, amount, material_flags) @@ -81,7 +82,7 @@ color = "#eb80f2" categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) sheet_type = /obj/item/stack/sheet/mineral/plasma - coin_type = /obj/item/coin/plasma + value_per_unit = 0.1 armor_modifiers = list("melee" = 1.4, "bullet" = 0.7, "laser" = 0, "energy" = 1.2, "bomb" = 0, "bio" = 1.2, "rad" = 1, "fire" = 0, "acid" = 0.5) /datum/material/plasma/on_applied(atom/source, amount, material_flags) @@ -103,6 +104,7 @@ color = "#506bc7" categories = list(MAT_CATEGORY_ORE = TRUE) sheet_type = /obj/item/stack/sheet/bluespace_crystal + value_per_unit = 0.15 ///Honks and slips /datum/material/bananium @@ -112,7 +114,7 @@ color = "#fff263" categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) sheet_type = /obj/item/stack/sheet/mineral/bananium - coin_type = /obj/item/coin/bananium + value_per_unit = 0.5 armor_modifiers = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 100, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0) //Clowns cant be blown away. /datum/material/bananium/on_applied(atom/source, amount, material_flags) @@ -136,6 +138,7 @@ strength_modifier = 1.3 categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) sheet_type = /obj/item/stack/sheet/mineral/titanium + value_per_unit = 0.0625 armor_modifiers = list("melee" = 1.35, "bullet" = 1.3, "laser" = 1.3, "energy" = 1.25, "bomb" = 1.25, "bio" = 1, "rad" = 1, "fire" = 0.7, "acid" = 1) /datum/material/runite @@ -146,16 +149,19 @@ strength_modifier = 1.3 categories = list(MAT_CATEGORY_RIGID = TRUE) sheet_type = /obj/item/stack/sheet/mineral/runite + value_per_unit = 0.3 armor_modifiers = list("melee" = 1.35, "bullet" = 2, "laser" = 0.5, "energy" = 1.25, "bomb" = 1.25, "bio" = 1, "rad" = 1, "fire" = 1.4, "acid" = 1) //rune is weak against magic lasers but strong against bullets. This is the combat triangle. ///Force decrease /datum/material/plastic name = "plastic" id = "plastic" - desc = "plastic" + desc = "Plastic" color = "#caccd9" strength_modifier = 0.85 sheet_type = /obj/item/stack/sheet/plastic + value_per_unit = 0.0125 + armor_modifiers = list("melee" = 1.5, "bullet" = 1.1, "laser" = 0.3, "energy" = 0.5, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 1.1, "acid" = 1) ///Force decrease and mushy sound effect. (Not yet implemented) /datum/material/biomass @@ -164,3 +170,37 @@ desc = "Organic matter" color = "#735b4d" strength_modifier = 0.8 + value_per_unit = 0.025 + +///Stronk force increase +/datum/material/adamantine + name = "adamantine" + id = "adamantine" + desc = "A powerful material made out of magic, I mean science!" + color = "#6d7e8e" + strength_modifier = 1.5 + categories = list(MAT_CATEGORY_RIGID = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/adamantine + value_per_unit = 0.25 + armor_modifiers = list("melee" = 1.5, "bullet" = 1.5, "laser" = 1.3, "energy" = 1.3, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 2.5, "acid" = 1) + +///RPG Magic. (Admin only) +/datum/material/mythril + name = "mythril" + id = "mythril" + desc = "How this even exists is byond me" + color = "#ffedee" + categories = list(MAT_CATEGORY_RIGID = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/mythril + value_per_unit = 0.75 + armor_modifiers = list("melee" = 2, "bullet" = 2, "laser" = 2, "energy" = 2, "bomb" = 2, "bio" = 2, "rad" = 2, "fire" = 2, "acid" = 2) + +/datum/material/mythril/on_applied_obj(atom/source, amount, material_flags) + . = ..() + if(istype(source, /obj/item)) + source.AddComponent(/datum/component/fantasy) + +/datum/material/mythril/on_removed_obj(atom/source, material_flags) + . = ..() + if(istype(source, /obj/item)) + qdel(source.GetComponent(/datum/component/fantasy)) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 33fd61adfcc..46297241d97 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -155,8 +155,7 @@ if(custom_materials && custom_materials.len) var/temp_list = list() for(var/i in custom_materials) - var/datum/material/material = getmaterialref(i) || i - temp_list[material] = custom_materials[material] //Get the proper instanced version + temp_list[getmaterialref(i)] = custom_materials[i] //Get the proper instanced version custom_materials = null //Null the list to prepare for applying the materials properly set_custom_materials(temp_list) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 29f6a6786a0..04dd796eda4 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -1,6 +1,6 @@ -#define AUTOLATHE_MAIN_MENU 1 -#define AUTOLATHE_CATEGORY_MENU 2 -#define AUTOLATHE_SEARCH_MENU 3 +#define AUTOLATHE_MAIN_MENU 1 +#define AUTOLATHE_CATEGORY_MENU 2 +#define AUTOLATHE_SEARCH_MENU 3 /obj/machinery/autolathe name = "autolathe" @@ -59,8 +59,11 @@ /datum/material/bluespace, /datum/material/bananium, /datum/material/titanium, - /datum/material/runite), - 0, TRUE, null, null, CALLBACK(src, .proc/AfterMaterialInsert)) + /datum/material/runite, + /datum/material/plastic, + /datum/material/adamantine, + /datum/material/mythril + ), 0, TRUE, null, null, CALLBACK(src, .proc/AfterMaterialInsert)) . = ..() wires = new /datum/wires/autolathe(src) diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index f0af836bfba..3d8a67c69df 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -93,7 +93,7 @@ else if(!user.temporarilyRemoveItemFromInventory(C)) return - to_chat(user, "You insert a [C.cmineral] coin into [src]'s slot!") + to_chat(user, "You insert [C] into [src]'s slot!") balance += C.value qdel(C) else diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index f6fe9f1c119..3abefe3cce2 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -365,6 +365,7 @@ GLOBAL_LIST_INIT(adamantine_recipes, list( icon_state = "sheet-adamantine" item_state = "sheet-adamantine" singular_name = "adamantine sheet" + materials = list(/datum/material/adamantine=MINERAL_MATERIAL_AMOUNT) merge_type = /obj/item/stack/sheet/mineral/adamantine /obj/item/stack/sheet/mineral/adamantine/Initialize(mapload, new_amount, merge = TRUE) @@ -394,6 +395,7 @@ GLOBAL_LIST_INIT(adamantine_recipes, list( item_state = "sheet-mythril" singular_name = "mythril sheet" novariants = TRUE + materials = list(/datum/material/mythril=MINERAL_MATERIAL_AMOUNT) merge_type = /obj/item/stack/sheet/mineral/mythril /* diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 322f0d08918..720dca9d757 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -257,7 +257,6 @@ GLOBAL_LIST_INIT(bamboo_recipes, list ( \ icon_state = "sheet-bamboo" item_state = "sheet-bamboo" icon = 'icons/obj/stack_objects.dmi' - sheettype = "bamboo" throwforce = 15 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0) resistance_flags = FLAMMABLE diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm index 4f478d3c6e8..8982ed1fd68 100644 --- a/code/modules/cargo/exports/materials.dm +++ b/code/modules/cargo/exports/materials.dm @@ -32,47 +32,67 @@ /datum/export/material/bananium cost = 1000 material_id = /datum/material/bananium - message = "cm3 of bananium" + message = "cm3 of bananium" /datum/export/material/diamond cost = 500 material_id = /datum/material/diamond - message = "cm3 of diamonds" + message = "cm3 of diamonds" /datum/export/material/plasma cost = 200 k_elasticity = 0 material_id = /datum/material/plasma - message = "cm3 of plasma" + message = "cm3 of plasma" /datum/export/material/uranium cost = 100 material_id = /datum/material/uranium - message = "cm3 of uranium" + message = "cm3 of uranium" /datum/export/material/gold cost = 125 material_id = /datum/material/gold - message = "cm3 of gold" + message = "cm3 of gold" /datum/export/material/silver cost = 50 material_id = /datum/material/silver - message = "cm3 of silver" + message = "cm3 of silver" /datum/export/material/titanium cost = 125 material_id = /datum/material/titanium - message = "cm3 of titanium" + message = "cm3 of titanium" -/datum/export/material/plastitanium - cost = 325 // plasma + titanium costs - material_id = /datum/material/titanium // code can only check for one material_id; plastitanium is half plasma, half titanium - message = "cm3 of plastitanium" +/datum/export/material/adamantine + cost = 500 + material_id = /datum/material/adamantine + message = "cm3 of adamantine" + +/datum/export/material/mythril + cost = 1500 + material_id = /datum/material/mythril + message = "cm3 of mythril" + +/datum/export/material/bscrystal + cost = 300 + message = "of bluespace crystals" + material_id = /datum/material/bluespace + +/datum/export/material/plastic + cost = 25 + message = "cm3 of plastic" + material_id = /datum/material/plastic + +/datum/export/material/runite + cost = 600 + message = "cm3 of runite" + material_id = /datum/material/runite /datum/export/material/metal cost = 5 - message = "cm3 of metal" + message = "cm3 of metal" material_id = /datum/material/iron export_types = list( /obj/item/stack/sheet/metal, /obj/item/stack/tile/plasteel, @@ -80,7 +100,7 @@ /datum/export/material/glass cost = 5 - message = "cm3 of glass" + message = "cm3 of glass" material_id = /datum/material/glass export_types = list(/obj/item/stack/sheet/glass, /obj/item/stack/ore, /obj/item/shard) diff --git a/code/modules/cargo/exports/sheets.dm b/code/modules/cargo/exports/sheets.dm index 708eb34133a..1c666a4db4d 100644 --- a/code/modules/cargo/exports/sheets.dm +++ b/code/modules/cargo/exports/sheets.dm @@ -67,10 +67,10 @@ message = "of reinforced glass" export_types = list(/obj/item/stack/sheet/rglass) -/datum/export/stack/bscrystal - cost = 300 - message = "of bluespace crystals" - export_types = list(/obj/item/stack/sheet/bluespace_crystal) +/datum/export/stack/plastitanium + cost = 325 // plasma + titanium costs + message = "of plastitanium" + export_types = list(/obj/item/stack/sheet/mineral/plastitanium) /datum/export/stack/wood cost = 30 @@ -99,10 +99,3 @@ cost = 1000 message = "of alien alloy" export_types = list(/obj/item/stack/sheet/mineral/abductor) - -/datum/export/stack/adamantine - unit_name = "bar" - cost = 500 - message = "of adamantine" - export_types = list(/obj/item/stack/sheet/mineral/adamantine) - diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm index a85f07c7cad..330571146fb 100644 --- a/code/modules/mining/mint.dm +++ b/code/modules/mining/mint.dm @@ -15,8 +15,21 @@ /obj/machinery/mineral/mint/Initialize() . = ..() - AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/plasma, /datum/material/silver, /datum/material/gold, /datum/material/uranium, /datum/material/diamond, /datum/material/bananium), MINERAL_MATERIAL_AMOUNT * 50, FALSE, /obj/item/stack) - chosen = getmaterialref(chosen) + AddComponent(/datum/component/material_container, list( + /datum/material/iron, + /datum/material/plasma, + /datum/material/silver, + /datum/material/gold, + /datum/material/uranium, + /datum/material/titanium, + /datum/material/diamond, + /datum/material/bananium, + /datum/material/adamantine, + /datum/material/mythril, + /datum/material/plastic, + /datum/material/runite + ), MINERAL_MATERIAL_AMOUNT * 50, FALSE, /obj/item/stack) + chosen = getmaterialref(chosen) /obj/machinery/mineral/mint/process() @@ -74,18 +87,19 @@ chosen = new_material if(href_list["chooseAmt"]) coinsToProduce = CLAMP(coinsToProduce + text2num(href_list["chooseAmt"]), 0, 1000) + updateUsrDialog() if(href_list["makeCoins"]) var/temp_coins = coinsToProduce processing = TRUE icon_state = "coinpress1" var/coin_mat = MINERAL_MATERIAL_AMOUNT * 0.2 var/datum/material/M = chosen - if(!M || !M.coin_type) + if(!M) updateUsrDialog() return while(coinsToProduce > 0 && materials.use_amount_mat(coin_mat, chosen)) - create_coins(M.coin_type) + create_coins() coinsToProduce-- newCoins++ src.updateUsrDialog() @@ -97,12 +111,15 @@ src.updateUsrDialog() return -/obj/machinery/mineral/mint/proc/create_coins(P) +/obj/machinery/mineral/mint/proc/create_coins() var/turf/T = get_step(src,output_dir) + var/temp_list = list() + temp_list[chosen] = 400 if(T) - var/obj/item/O = new P(src) - var/obj/item/storage/bag/money/M = locate(/obj/item/storage/bag/money, T) - if(!M) - M = new /obj/item/storage/bag/money(src) - unload_mineral(M) - O.forceMove(M) + var/obj/item/O = new /obj/item/coin(src) + var/obj/item/storage/bag/money/B = locate(/obj/item/storage/bag/money, T) + O.set_custom_materials(temp_list) + if(!B) + B = new /obj/item/storage/bag/money(src) + unload_mineral(B) + O.forceMove(B) diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index 9592c0150c1..2a689b780c3 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -304,18 +304,33 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ /obj/item/coin icon = 'icons/obj/economy.dmi' name = "coin" - icon_state = "coin__heads" + icon_state = "coin" flags_1 = CONDUCT_1 force = 1 throwforce = 2 w_class = WEIGHT_CLASS_TINY + custom_materials = list(/datum/material/iron = 400) + material_flags = MATERIAL_ADD_PREFIX var/string_attached var/list/sideslist = list("heads","tails") - var/cmineral = null var/cooldown = 0 - var/value = 1 + var/value var/coinflip +/obj/item/coin/Initialize() + . = ..() + coinflip = pick(sideslist) + icon_state = "coin_[coinflip]" + pixel_x = rand(0,16)-8 + pixel_y = rand(0,8)-8 + +/obj/item/coin/set_custom_materials(var/list/materials, multiplier = 1) + . = ..() + value = 0 + for(var/i in custom_materials) + var/datum/material/M = i + value += M.value_per_unit * custom_materials[M] + /obj/item/coin/get_item_credit_value() return value @@ -338,101 +353,9 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ else user.visible_message("\the [src] lands on [coinflip]! [user] keeps on living!") -/obj/item/coin/Initialize() - . = ..() - pixel_x = rand(0,16)-8 - pixel_y = rand(0,8)-8 - /obj/item/coin/examine(mob/user) . = ..() - if(value) - . += "It's worth [value] credit\s." - -/obj/item/coin/gold - name = "gold coin" - cmineral = "gold" - icon_state = "coin_gold_heads" - value = 25 - materials = list(/datum/material/gold = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list(/datum/reagent/gold = 4) - -/obj/item/coin/silver - name = "silver coin" - cmineral = "silver" - icon_state = "coin_silver_heads" - value = 10 - materials = list(/datum/material/silver = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list(/datum/reagent/silver = 4) - -/obj/item/coin/diamond - name = "diamond coin" - cmineral = "diamond" - icon_state = "coin_diamond_heads" - value = 100 - materials = list(/datum/material/diamond = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list(/datum/reagent/carbon = 4) - -/obj/item/coin/iron - name = "iron coin" - cmineral = "iron" - icon_state = "coin_iron_heads" - value = 1 - materials = list(/datum/material/iron = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list(/datum/reagent/iron = 4) - -/obj/item/coin/plasma - name = "plasma coin" - cmineral = "plasma" - icon_state = "coin_plasma_heads" - value = 40 - materials = list(/datum/material/plasma = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list(/datum/reagent/toxin/plasma = 4) - -/obj/item/coin/uranium - name = "uranium coin" - cmineral = "uranium" - icon_state = "coin_uranium_heads" - value = 25 - materials = list(/datum/material/uranium = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list(/datum/reagent/uranium = 4) - -/obj/item/coin/bananium - name = "bananium coin" - cmineral = "bananium" - icon_state = "coin_bananium_heads" - value = 200 //makes the clown cry - materials = list(/datum/material/bananium = MINERAL_MATERIAL_AMOUNT*0.2) - grind_results = list(/datum/reagent/consumable/banana = 4) - -/obj/item/coin/adamantine - name = "adamantine coin" - cmineral = "adamantine" - icon_state = "coin_adamantine_heads" - value = 100 - -/obj/item/coin/mythril - name = "mythril coin" - cmineral = "mythril" - icon_state = "coin_mythril_heads" - value = 300 - -/obj/item/coin/twoheaded - cmineral = "iron" - icon_state = "coin_iron_heads" - desc = "Hey, this coin's the same on both sides!" - sideslist = list("heads") - materials = list(/datum/material/iron = MINERAL_MATERIAL_AMOUNT*0.2) - value = 1 - grind_results = list(/datum/reagent/iron = 4) - -/obj/item/coin/antagtoken - name = "antag token" - icon_state = "coin_valid_valid" - cmineral = "valid" - desc = "A novelty coin that helps the heart know what hard evidence cannot prove." - sideslist = list("valid", "salad") - value = 0 - grind_results = list(/datum/reagent/consumable/sodiumchloride = 4) + . += "It's worth [value] credit\s." /obj/item/coin/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/stack/cable_coil)) @@ -467,10 +390,10 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ if(string_attached) //does the coin have a wire attached to_chat(user, "The coin won't flip very well with something attached!" ) return FALSE//do not flip the coin - coinflip = pick(sideslist) cooldown = world.time + 15 - flick("coin_[cmineral]_flip", src) - icon_state = "coin_[cmineral]_[coinflip]" + flick("coin_[coinflip]_flip", src) + coinflip = pick(sideslist) + icon_state = "coin_[coinflip]" playsound(user.loc, 'sound/items/coinflip.ogg', 50, TRUE) var/oldloc = loc sleep(15) @@ -480,5 +403,50 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ "You hear the clattering of loose change.") return TRUE//did the coin flip? useful for suicide_act +/obj/item/coin/gold + custom_materials = list(/datum/material/gold = 400) + +/obj/item/coin/silver + custom_materials = list(/datum/material/silver = 400) + +/obj/item/coin/diamond + custom_materials = list(/datum/material/diamond = 400) + +/obj/item/coin/plasma + custom_materials = list(/datum/material/plasma = 400) + +/obj/item/coin/uranium + custom_materials = list(/datum/material/uranium = 400) + +/obj/item/coin/titanium + custom_materials = list(/datum/material/titanium = 400) + +/obj/item/coin/bananium + custom_materials = list(/datum/material/bananium = 400) + +/obj/item/coin/adamantine + custom_materials = list(/datum/material/adamantine = 400) + +/obj/item/coin/mythril + custom_materials = list(/datum/material/mythril = 400) + +/obj/item/coin/plastic + custom_materials = list(/datum/material/plastic = 400) + +/obj/item/coin/runite + custom_materials = list(/datum/material/runite = 400) + +/obj/item/coin/twoheaded + desc = "Hey, this coin's the same on both sides!" + sideslist = list("heads") + +/obj/item/coin/antagtoken + name = "antag token" + desc = "A novelty coin that helps the heart know what hard evidence cannot prove." + custom_materials = list(/datum/material/plastic = 400) + sideslist = list("valid", "salad") + material_flags = MATERIAL_NO_COLOR + +/obj/item/coin/iron #undef ORESTACK_OVERLAYS_MAX diff --git a/icons/obj/economy.dmi b/icons/obj/economy.dmi index cb050e27ab0b45dc2d808da50d8fd9add8b227d0..caaa94361826d3c83752ca8b57d160c088975dda 100644 GIT binary patch literal 17036 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 F{uk-nxw8NO literal 25238 zcmb@uby$>N_dYr_D&5^kNT+l+2ug<_N_T_QAW{Z`(t@Ofw16~>fS`1TbTvx?$-anpehIwK?d+oi}zSn)P%^ST(YWR0)?m{3Cd<}KwClCl)HtN8| z2EXizRhxo88UqbXe3WgyUwAos_&B<|K_CGcWyx)BuLX#d2M@@NymU(9#acYSJu#FJ zfrZshy)vZaulizedBuR9!=2NuNkM|{XqVZ>&|%Ti+T!l-bo^Z>uIr^uiP!0My>^28 zSdLLcpjp0#Yh`iAWfu;v>Y9_0(DVc~Jf&J>c(b|3F!_EEPV83sn+C&%p7PYHoq`mR z;i$#0UP-)szZcJW6ALh{bOnF+xOfG>*wf5@davg16A|2DPMePUGCpe8$79$vFnwCc z)}t~tNg56fI32ob=U4WKw;EbUgakYcGx0)_w|(9jYYP zQFSNQlWlv;vARs`A+LlXmMuy$!k-d0o}suG&z3#U;`qYDp(H%6i#S6$WR|p+G-_>J zCb&6;aP1xW#3YZACgL{$;(*v0CBc`}9m& z5qUUwXnUXF=D2m4{*_+VAjxYS^pDK#y}r>CsWaLhjR))|&a)8#G7#f;&=1TtcFR?n z!QtNza%`5lZcHqLnZIlEvWpa;r?r8oYb)<2@d~X17R;VC}qT$X6R(T=c_WW^_9FZr}%4 z=E~C4Sq=H)oo}Z_YkFUe$_y3W*2J*i@p66hHjG6>z21f7la81;dP6@vu3KA-`OaVV z>gx26`HIO_JAXevx#PLC%h0n+*}*=OqoX5_l;&pX&ZISOZ*N|=cW+uZ-?cK~aq;X^ z=~-H4eo9RI_3I6(qq}=yPL2Z99f>%Fl$v~3%o6unRd;f7s+`$NOi8gie8q{#g%2Xa z1q?j?hJlAB&dypu_$-^%y}gC;@$u;-yfDMe-5RjMe0L^3rloZ!a_QsVxx>uNjMg;w zNKFk#EsnwWiis>__}o53fl3pz0rBeVS2lT>3mO_42RFC%KOb2Uuj)ds{65f2brlWfZq=ee={b;$3x_uotz`j zW4aLHGi+lwxJl}W+?H#6*Cc0iYro{c{w*ynE!lfxV2i!@<;$0dw!)CJ-9PhkJF$os z>czE_-ku(^4X2_9!|*bUld}aYXQ+-2J`Mrh!PZ%N3lgi1(W3$H>Q%lVL_{^>u+4sM z!P(6Xdu*F=?^0e)itHqska2#;+yCV1EktJgrj;e^RgK*J`&}C|3zV7DD67^dVjxy+ zc==&v$;sGR>g%72_SGIk>4(;2cU%!Io(=HL3XGG8n`gB!ag2k)v!*xvR^FfJ2^+!()55&L`0V6``Cz7Di{Rh^{|EHYG2-yuIfb zQY^nekF>owSQ;A}6L6oGb`hgB+o*VV>Ur~8eA^k@#L7x;(HG2eJK$Z3iHY%9S%Zkv zohDzW@=Yl^f}`VO{&Y+l!XPFl4hx((TPybA zv#1~1xdzVn&Tr^+_gaBh$<@heTg;tvi;z(^WKjX1yGq9_SZ(dgORGD- zqCdZOZJ5dTgWaT9u&yh-J1;6I*vx`9A`Xv!S$HixzeTNzESOb3O)-6v(b z5@%E1K#Lm};1|y>7iK4J_x)idC$+ce(#W6v+T9^(SpIQa=TZ}8<{P!4`xUop%=Zf> z&yT8?(>`4ZO%zg|UeUkwpWAD_sS7O=C?!O~e}6;x^XyyQUN&KWWgHqB`uUp?TAGzN zG(R8u7ehcqq-OBksMN%ItL%6Z_uf5>vFbl)QJ+HH+{$ey%b(Io2UHqk&=uXRZEDGJ zaNtCDDERq_iKUlK+F}xE90Zmmy5xwu{52l-3ip9PKo8vy&sc8PGg+NrDmR=7=+Ruwkc*k znXiybyuku8*j4sFt11-E@Se&Ac9ZyqZsg5W$?s2FS*C?P7dxvHJ8mP)Wfr8p&-41% zE+3LhYwYq%oLet?!+8aLe5kyoB?E}knAq4OBO{8=&JXD6>5&AlEb2Yl%9bJ~CMM=@ zUIpfdLQe`|&pYq-LT@&pXVaH>22iHkpFyLOl0R=Rvu;7~`NzyUP$s49){#(Mx7${e zmc2UZ9|z{U!B1qiPPGrVEK@Z4)W@<0p*2k}Z#`}_>!flzomc)||B=wVz1D)rx_{U{ zYZc;&_au%N;Z6gmE;qZqIh&w=Ly)cet#|0_>t5{|vt0Q7&4S=c($DUN+*6479VIyM zx&2iTZR)wD5TUp$ytXgJc);Hr+L3V8a66oK?UZiDGcq+b^>pDmGdK6!)m0lY>4q#u zkdR2tk$ZV$Gd(jS;k!+?wY7EObk*iP1LMy$yWll)zbd;4^x2`x zO~}pZP<-aW^vd@Y9b(Z^UNmdr_F#eQawWhnBxq5h-X#;0A=!ona(#%HFcX*XZyixyHq zK!?F_he#1f>M*$)M(HMG(2MyF-Z||}?E^=rUT0?coR%M7&i?onEL_}$1kEGuAp<9LsyXQeTJ*nx&{=zwf>3N(LUYiKtvO6_(Ts4^fL&>MCvX?5n`bIcI6KJnJ)8Gs5 z%|`ko!XM%2Tbh^esMSP`3=coja>lu(|J+dq&p$w1v-WaG8dNc)UNxZNL{nkphl z_uIz7!WtePRsgp258+B4hgtm54LvCAJ+s2F{T;b7r_BlG>%$(`#!y8qdd;8*^!*gI zSpjj%GmH;2E9s`Ev28JSO%SHyq;H)NbkQw4=ejY)O5bZnhlkqF(id0{7pyie@~mEe z5Zk1>xNG6Xpa*?%03tx3?`Y&bN(Wb0TljnnGL$~FwoeC_$DJxJ3^I4n~I_h#g#^&q0PtGrO@#QLEgYc_ZBrh~DZ`3wC)u42yO z>|6)7k~$<=w)f@DJxuKOEtqsZVaF>Pw4~bX9b<}=1S)LuBuc$nna<_HmA^=?{iD_Gk0>xlH-emR-W+exBCe*JNQ97hR z4tp}^)0B;9k)elbkGStx%p#dBkVFL0ujAxyOyFUbL3^TD&pHGcwfYbNX zqlVPa>t;M3(jl(K$Hxtf{SC`4{O5d|&!(MwzWC2O9;zZUFVaJGF%Ig^g3MqXYP$4m zH{YsboQ?4pEegNY)OC)`PYg69Y)C#>8oPXI=xOXG3z>QM?CO)Z!?*{|K=G)G>t0RW zkLrrj9lPh6IM>L1Z_b`YWjRRUhfJ0&s~nl~WAPmqqoCAcXjN`RnC59=b$0xP0p#wP z!kbXY+qZA)tsQwfqD%1Qf{eb@*4d((+ZruwiY1$^3Fdk0l{*RddbbB{YeZtlNEEfo zWnw^PblrdPPqv}B>OR$ZAAPELAZ3XHTsZ_ zAS4aM@agGki0=h656}Dcb-RHqIbE=BL2s`X8jc5~TAsiP(E@?Va^+6yU|k*X+dsL6 z-$k)}_{{GZgZU57WhH>6N&)m2~m zBaM$5dOt9>xDOXkp?_|q44Qq6z`GT9q~iNyh-$gR|6E^rq=nrtl z&)AmT>Id6*2OBi=?fW!&uq9&DgZx`eyN!Rdedpwj<5lB$`tbu;013lFuFkl=eftK+ zmz$fre*Lra30;_9_vQI~knSCPeA}5?R|I9>XHl)IV3=YH??!M{a^02{6nQElCiX;6 zFMEM_ECJEb&;b5Cs)Hf>$wKz-JB4wO5dreJ^-s8u^t~qkI zmxI!$WBL?f8<|0mG<0;pi&V^@jm>C8(@aZH56YZpkdTvia%2U2b+>KABBptB`dv^d z9~Kr?uG}vaJZD7^StzbqInsT*Z%s<_`}p^u617aANH&2mk7ct-_n$wD53DZlzIpRz zb#3jt(>S*ZElb)b!N}w=3d?H+riIY*FIQ#>Q&biMm&Y5XAcLp^sYq{)k|O-!iX<_fsYKK%6QQ+>c=diU`g=7O(ZH{bl7_-XV5ePz@;EU7@BJidIs^`Wq^ zKIJa;9G+o_EEMOW_IBI<5waG^w|OrdHewhhv)ya)@Jg0QUQ?5EI8SYKc2+w`U#cT7 zsyg8Cc?gwtTR0XZ7`WbKG_jcbd?_X-rpI9Iu>g9l&Yj40yWHH|i!Sk2YqZnm7zyw7 zlSURLom;gJNny9!6|-`m?d05GB_Pd>L(vogNXmuBLX;Mr-|3%DUR@$!NI3h8u@a-Q zCkz3LXm8)W`&Lx62vT$mhTeU6buK^Rrj#G|MiV06b?r{f;43A3bNRU3wE5F|giFXP zFxqPk8=3l$u2|aWaVK^VDlRTA+^klcXV+xYJ$!w?wUYP*ZnGg7Hr^Eg^mb84|yK{bB;F zNCiSGg)fOy{lJ_Dd@+2Yuiy0LZ`Ai~sT5&uRBzGy4psS{x;2w({^fnVFmeubgV>J$BQ)&Kb< z^XAbzTt&Eus3;d?X=#b`?ed{kPik4#c$E=a3@(js=+Eb{QCNfCc-^n}&w_f+uOHne zSk1UX^78b*&p*xDbw_~Njp+2>82GX?0q0LyZa_bisZ&KurM7MJf(?a*I`i9=n@G$RH{v%S|PAH?pXF$khppNg(%sH;C){`F>B`ll}|35FL& z*^1ReK9c3%=+ERlF;RCGgzD=jkWf%`wY|ncGpT%r1}uuW08o1bzY zg0aJVugOYR3bUJ!tTdrnjCjb%6&BNne4nB%(|Hi^@k?`HwhJ@wi=W_vm`?K8xU!-Je3Gh3gt|t(c(1iWo>2zMn~mKHUE}Snt-umbV(X#<=mhUdHt5{BP9WESC(85I`Dt z*#!kZV%?+AGci#&Goul<>qB*x$D}f>zWyQbCW)6vU!NiGGmleRhjv7s7?^E zXi%f%T!cvsZkEpDEz9tVa*jfqYG#D^o=Ki`5R?FnG$bCn!{XZ_=JtF(!sLmVTkc6~ zkow0T?D+2Z0$!90ByY+pD&Ijcne$LoRCI81dJY&NX~bq;Ge9mq@_E^^ ztl0+#9<2F~FYD{4O55H&{KnOIW9V&1ob@?ZE+Yl&VoRqEKaee3MJ^0LL@tZ56hWc8!zXn~ z?#e{jeYR4i$Pgn=co zI`GuVt!YoJy}cb$R95DD83c$;sEhk@qj~$q1pf_g_5$xnnsrAMF$f59wc>*Io_GsE zc3O4klzbMOerokj=HxpRU59N6Q0zq?4?-n;y%_v=KR*j48_pC@T@1dsT)k{|dsmtP zeaB4idD=kpr2bED=cC6{4f=>tBteH-8^nhd@w?%ENQ-n1+~eV&o}S!-f~ZfQNan~i zwX|d;=~6N?%hTg)2{MP`z?4!tv_$@}lT8}`+3DADsvw#Xr7DWpPJVq9c9YXcI;V|m zpfton9JeW@B0qf$qKkAcBZC94w3#PvSm|&zzwl8$;JY_B9nSXWf-dh@KoTZ~v3W!y)t{ zte@qevRqtT88Si1fb38blYjm^x4eS-k&zJvL9~)M1M8_)!lY>r_qcazWv(w9}&=}m0eX{uLGNolzg2M^V7m8UiBf7&e!a{0mzx< zDWu$Sh(p;7l9j~ps1d@7(euQ@Li^>* z2Fr*_0IFKh_Ypf4g;iBv9&d>(Eke}9Nu69>^BWqd(aEOGXYSzQ%0DKPl#~qEzp`3F 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%0DdZo}K@C8qz>h8<*qTEcxZ!dJ@!8(bC{M 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