From 8503d8ab4e3da4ea6383d54da30e9b56a55ce9aa Mon Sep 17 00:00:00 2001 From: silicons Date: Sat, 9 Sep 2023 09:24:56 -0700 Subject: [PATCH] a --- citadel.dme | 1 + code/__DEFINES/materials/stats.dm | 7 ++++++ .../items/weapons/material/material.dm | 22 ++++++------------- code/modules/materials/dynamics.dm | 3 ++- .../xenoarcheaology/finds/find_spawning.dm | 2 +- 5 files changed, 18 insertions(+), 17 deletions(-) create mode 100644 code/__DEFINES/materials/stats.dm diff --git a/citadel.dme b/citadel.dme index 392dc101373..34041acd8c6 100644 --- a/citadel.dme +++ b/citadel.dme @@ -230,6 +230,7 @@ #include "code\__DEFINES\materials\helpers.dm" #include "code\__DEFINES\materials\misc.dm" #include "code\__DEFINES\materials\parts.dm" +#include "code\__DEFINES\materials\stats.dm" #include "code\__DEFINES\mining\legacy.dm" #include "code\__DEFINES\misc\message_ranges.dm" #include "code\__DEFINES\mobs\actions.dm" diff --git a/code/__DEFINES/materials/stats.dm b/code/__DEFINES/materials/stats.dm new file mode 100644 index 00000000000..2c0cd08c23a --- /dev/null +++ b/code/__DEFINES/materials/stats.dm @@ -0,0 +1,7 @@ + +#define MATERIAL_MELEE_STATS_DAMAGE 1 +#define MATERIAL_MELEE_STATS_FLAG 2 +#define MATERIAL_MELEE_STATS_TIER 3 +#define MATERIAL_MELEE_STATS_MODE 4 + +#define MATERIAL_MELEE_STATS_LISTLEN 4 diff --git a/code/game/objects/items/weapons/material/material.dm b/code/game/objects/items/weapons/material/material.dm index 78dcbde7a5e..c15ede92bff 100644 --- a/code/game/objects/items/weapons/material/material.dm +++ b/code/game/objects/items/weapons/material/material.dm @@ -15,7 +15,8 @@ SLOT_ID_RIGHT_HAND = 'icons/mob/items/righthand_material.dmi', ) material_parts = /datum/material/steel - material_costs = 4000 + material_costs = SHEET_MATERIAL_AMOUNT * 2 + /// applies material color var/material_color = TRUE /// material significance @@ -46,14 +47,6 @@ /obj/item/material/update_material_single(datum/material/material) . = ..() - #warn ticking stuff - var/needs_ticking = MATERIAL_NEEDS_PROCESSING(material) - var/is_ticking = atom_flags & ATOM_MATERIALS_TICKING - if(needs_ticking && !is_ticking) - START_TICKING_MATERIALS(src) - else if(!needs_ticking && is_ticking) - STOP_TICKING_MATERIALS(src) - if(material_color) color = material.icon_colour else @@ -61,9 +54,12 @@ siemens_coefficient = material.relative_conductivity atom_flags = (atom_flags & ~(NOCONDUCT)) | (material.relative_conductivity == 0? NOCONDUCT : NONE) name = "[material.display_name] [initial(name)]" - var/list/returned = material.melee_stats(initial(damage_mode)) - #warn impl + var/list/returned = material.melee_stats(initial(damage_mode)) + damage_force = returned[MATERIAL_MELEE_STATS_DAMAGE] + damage_mode = returned[MATERIAL_MELEE_STATS_MODE] + damage_flag = returned[MATERIAL_MELEE_STATS_FLAG] + damage_tier = returned[MATERIAL_MELEE_STATS_TIER] /obj/item/material/proc/update_force() if(no_force_calculations) @@ -77,10 +73,6 @@ damage_force = round(damage_force*dulled_divisor) throw_force = round(material.get_blunt_damage()*thrown_force_divisor) -/obj/item/material/proc/set_material(datum/material/new_material) - health = round(material.integrity/10) - update_force() - /obj/item/material/melee_mob_hit(mob/target, mob/user, clickchain_flags, list/params, mult, target_zone, intent) . = ..() MATERIAL_INVOKE(src, MATERIAL_TRAIT_ATTACK, target, target_zone, src, ATTACK_TYPE_MELEE) diff --git a/code/modules/materials/dynamics.dm b/code/modules/materials/dynamics.dm index 0e40bf880a0..7a34b3825c6 100644 --- a/code/modules/materials/dynamics.dm +++ b/code/modules/materials/dynamics.dm @@ -44,8 +44,9 @@ * autodetect with initial damage modes of item * alternatively forced modes can be specified via the param * - * @return list(damage, armorflag, tier, mode, throwforce, throwspeed) + * @return list(damage, armorflag, tier, mode) */ /datum/material/proc/melee_stats(initial_modes, multiplier = 1) + . = new /list(MATERIAL_MELEE_STATS_LISTLEN) #warn impl - this requires caching diff --git a/code/modules/xenoarcheaology/finds/find_spawning.dm b/code/modules/xenoarcheaology/finds/find_spawning.dm index 3b3874d7376..d92b6bb99a6 100644 --- a/code/modules/xenoarcheaology/finds/find_spawning.dm +++ b/code/modules/xenoarcheaology/finds/find_spawning.dm @@ -545,7 +545,7 @@ )) var/obj/item/material/MW = new_item MW.material_color = TRUE - MW.set_material(new_item_mat) + MW.set_material_part(MATERIAL_PART_DEFAULT, new_item_mat) if(istype(MW, /obj/item/material/twohanded)) var/obj/item/material/twohanded/TH = MW TH.force_unwielded *= 0.7