From 9b14e5a11ce458d081977e23dc3766fbe71a5c78 Mon Sep 17 00:00:00 2001
From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Date: Tue, 4 Jun 2024 08:14:22 -0500
Subject: [PATCH 01/14] No more crusher trophy effects (#3046)
## About The Pull Request
removes crusher trophies relevance from crushers. I didn't fully remove
them because they are neat for crafting and.. as trophies
atomization of #2848
## Why It's Good For The Game
miner power gamer cruft. Its not really needed when we are trying to
balance stuff around guns. Crusher still remains the strongest mostly
obtainable melee weapon.
## Changelog
:cl:
del: Trophies can no longer be used in crushers
/:cl:
---
.../icemoon_underground_drakelair.dmm | 1 -
.../lavaland_surface_lava_canyon.dmm | 1 -
.../components/crafting/recipes/tribal.dm | 6 +-
code/modules/cargo/exports/lavaland.dm | 46 +-
.../mining/equipment/kinetic_crusher.dm | 588 +-----------------
code/modules/mining/equipment/trophies.dm | 184 ++++++
.../mining/lavaland/necropolis_chests.dm | 54 +-
.../simple_animal/hostile/human/survivors.dm | 4 +-
.../hostile/megafauna/blood_drunk_miner.dm | 2 +-
.../hostile/megafauna/bubblegum.dm | 4 +-
.../hostile/megafauna/codename_claw.dm | 8 +-
.../hostile/megafauna/colossus.dm | 2 +-
.../hostile/megafauna/cult_templar.dm | 2 +-
.../hostile/megafauna/demonic_frost_miner.dm | 46 +-
.../simple_animal/hostile/megafauna/drake.dm | 6 +-
.../hostile/megafauna/hierophant.dm | 2 +-
.../hostile/megafauna/megafauna.dm | 12 +-
.../hostile/megafauna/swarmer.dm | 2 +-
.../hostile/megafauna/wendigo.dm | 2 +-
.../hostile/mining_mobs/basilisk.dm | 10 +-
.../hostile/mining_mobs/brimdemon.dm | 18 +-
.../mining_mobs/elites/goliath_broodmother.dm | 18 +-
.../hostile/mining_mobs/elites/legionnaire.dm | 19 +-
.../hostile/mining_mobs/goliath.dm | 6 +-
.../hostile/mining_mobs/hivelord.dm | 15 +-
.../hostile/mining_mobs/ice demon.dm | 52 +-
.../hostile/mining_mobs/ice whelp.dm | 2 +-
.../hostile/mining_mobs/lobstrosity.dm | 14 +-
.../hostile/mining_mobs/mining_mobs.dm | 13 +-
.../hostile/mining_mobs/polarbear.dm | 42 +-
.../simple_animal/hostile/mining_mobs/wolf.dm | 44 +-
shiptest.dme | 1 +
32 files changed, 302 insertions(+), 924 deletions(-)
create mode 100644 code/modules/mining/equipment/trophies.dm
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm
index 113fde2af9c7..d000b8fd17a7 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm
@@ -128,7 +128,6 @@
/obj/structure/stone_tile/slab,
/mob/living/simple_animal/hostile/megafauna/dragon/icemoon{
loot = list(/obj/structure/closet/crate/necropolis/dragon,/obj/item/keycard/gatedrop/drakelair);
- crusher_loot = list(/obj/structure/closet/crate/necropolis/dragon/crusher,/obj/item/keycard/gatedrop/drakelair)
},
/turf/open/indestructible/boss,
/area/ruin)
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm
index ea2d614717da..943b1dccf126 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm
@@ -891,7 +891,6 @@
"zb" = (
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner{
loot = list(/obj/item/melee/transforming/cleaving_saw,/obj/item/gun/energy/kinetic_accelerator,/obj/item/keycard/gatedrop/lavacanyon);
- crusher_loot = list(/obj/item/melee/transforming/cleaving_saw,/obj/item/gun/energy/kinetic_accelerator,/obj/item/crusher_trophy/miner_eye,/obj/item/keycard/gatedrop/lavacanyon)
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/overmap_encounter/planetoid/cave/explored)
diff --git a/code/datums/components/crafting/recipes/tribal.dm b/code/datums/components/crafting/recipes/tribal.dm
index ec974a563fce..83e5c03722bc 100644
--- a/code/datums/components/crafting/recipes/tribal.dm
+++ b/code/datums/components/crafting/recipes/tribal.dm
@@ -12,8 +12,8 @@
time = 35
reqs = list(/obj/item/stack/sheet/bone = 2,
/obj/item/stack/sheet/sinew = 3,
- /obj/item/crusher_trophy/wolf_ear = 2,
- /obj/item/crusher_trophy/fang = 1)
+ /obj/item/mob_trophy/wolf_ear = 2,
+ /obj/item/mob_trophy/fang = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/bonecodpiece
@@ -21,7 +21,7 @@
result = /obj/item/clothing/accessory/skullcodpiece
time = 20
reqs = list(/obj/item/stack/sheet/bone = 2,
- /obj/item/crusher_trophy/legion_skull = 1,
+ /obj/item/mob_trophy/legion_skull = 1,
/obj/item/stack/sheet/animalhide/goliath_hide = 1)
category = CAT_PRIMAL
diff --git a/code/modules/cargo/exports/lavaland.dm b/code/modules/cargo/exports/lavaland.dm
index cd1946265374..b330b0ec4bdc 100644
--- a/code/modules/cargo/exports/lavaland.dm
+++ b/code/modules/cargo/exports/lavaland.dm
@@ -58,40 +58,40 @@
/obj/item/guardiancreator/miner/choose,//this is basically the most valulable mining loot so good luck getting a miner to part ways
/obj/item/gun/magic/staff/spellblade,
)
-
+/*
/datum/export/lavaland/trophycommon
cost = 1500
unit_name = "common hunting trophy"
- export_types = list(/obj/item/crusher_trophy/legion_skull,
- /obj/item/crusher_trophy/wolf_ear,
- /obj/item/crusher_trophy/bear_paw,
- /obj/item/crusher_trophy/goliath_tentacle,
- /obj/item/crusher_trophy/watcher_wing)
+ export_types = list(/obj/item/mob_trophy/legion_skull,
+ /obj/item/mob_trophy/wolf_ear,
+ /obj/item/mob_trophy/bear_paw,
+ /obj/item/mob_trophy/goliath_tentacle,
+ /obj/item/mob_trophy/watcher_wing)
/datum/export/lavaland/trophyrare
cost = 5000
unit_name = "rare hunting trophy"
- export_types = list(/obj/item/crusher_trophy/dwarf_skull,
- /obj/item/crusher_trophy/fang,
- /obj/item/crusher_trophy/war_paw,
- /obj/item/crusher_trophy/elder_tentacle,
- /obj/item/crusher_trophy/ice_crystal,
- /obj/item/crusher_trophy/magma_wing,
- /obj/item/crusher_trophy/tail_spike,
- /obj/item/crusher_trophy/ice_wing)
+ export_types = list(/obj/item/mob_trophy/dwarf_skull,
+ /obj/item/mob_trophy/fang,
+ /obj/item/mob_trophy/war_paw,
+ /obj/item/mob_trophy/elder_tentacle,
+ /obj/item/mob_trophy/ice_crystal,
+ /obj/item/mob_trophy/magma_wing,
+ /obj/item/mob_trophy/tail_spike,
+ /obj/item/mob_trophy/ice_wing)
/datum/export/lavaland/trophymega
cost = 10000
unit_name = "big game hunting trophy"
- export_types = list(/obj/item/crusher_trophy/legionnaire_spine,
- /obj/item/crusher_trophy/ash_spike,
- /obj/item/crusher_trophy/demon_claws,
- /obj/item/crusher_trophy/broodmother_tongue,
- /obj/item/crusher_trophy/ice_block_talisman,
- /obj/item/crusher_trophy/king_goat,
- /obj/item/crusher_trophy/miner_eye,
- /obj/item/crusher_trophy/vortex_talisman,
- /obj/item/crusher_trophy/blaster_tubes)
+ export_types = list(/obj/item/mob_trophy/legionnaire_spine,
+ /obj/item/mob_trophy/ash_spike,
+ /obj/item/mob_trophy/demon_claws,
+ /obj/item/mob_trophy/broodmother_tongue,
+ /obj/item/mob_trophy/ice_block_talisman,
+ /obj/item/mob_trophy/miner_eye,
+ /obj/item/mob_trophy/vortex_talisman,
+ /obj/item/mob_trophy/blaster_tubes)
+*/
/datum/export/lavaland/megafauna/total_printout(datum/export_report/ex, notes = TRUE) //in the unlikely case a miner feels like selling megafauna loot
. = ..()
diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm
index 278fccd0fcd1..030e592d80cd 100644
--- a/code/modules/mining/equipment/kinetic_crusher.dm
+++ b/code/modules/mining/equipment/kinetic_crusher.dm
@@ -24,7 +24,6 @@
light_range = 5
light_on = FALSE
custom_price = 800
- var/list/trophies = list()
var/charged = TRUE
var/charge_time = 15
var/detonation_damage = 20
@@ -41,10 +40,6 @@
AddComponent(/datum/component/butchering, 60, 110) //technically it's huge and bulky, but this provides an incentive to use it
AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=15)
-/obj/item/kinetic_crusher/Destroy()
- QDEL_LIST(trophies)
- return ..()
-
/// triggered on wield of two handed item
/obj/item/kinetic_crusher/proc/on_wield(obj/item/source, mob/user)
wielded = TRUE
@@ -57,30 +52,6 @@
. = ..()
. += "Induce magnetism in an enemy by striking them with a magnetospheric wave, then hit them in melee to force a waveform collapse for [force + detonation_damage] damage."
. += "Does [force + detonation_damage + backstab_bonus] damage if the target is backstabbed, instead of [force + detonation_damage]."
- for(var/t in trophies)
- var/obj/item/crusher_trophy/T = t
- . += "It has \a [T] attached, which causes [T.effect_desc()]."
-
-/obj/item/kinetic_crusher/attackby(obj/item/I, mob/living/user)
- if(I.tool_behaviour == TOOL_CROWBAR)
- if(LAZYLEN(trophies))
- var/list/choose_options = list()
- for(var/obj/item/crusher_trophy/T in trophies)
- choose_options += list(T.name = image(icon = T.icon, icon_state = T.icon_state))
- var/picked_option = show_radial_menu(user, src, choose_options, radius = 38, require_near = TRUE)
- if(picked_option)
- to_chat(user, "You remove [picked_option].")
- I.play_tool_sound(src)
- for(var/obj/item/crusher_trophy/T in trophies)
- if(T.name == picked_option)
- T.remove_from(src, user)
- else
- to_chat(user, "There are no trophies on [src].")
- else if(istype(I, /obj/item/crusher_trophy))
- var/obj/item/crusher_trophy/T = I
- T.add_to(src, user)
- else
- return ..()
/obj/item/kinetic_crusher/attack(mob/living/target, mob/living/carbon/user)
if(!wielded)
@@ -90,10 +61,6 @@
var/datum/status_effect/crusher_damage/C = target.has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING)
var/target_health = target.health
..()
- for(var/t in trophies)
- if(!QDELETED(target))
- var/obj/item/crusher_trophy/T = t
- T.on_melee_hit(target, user)
if(!QDELETED(C) && !QDELETED(target))
C.total_damage += target_health - target.health //we did some damage, but let's not assume how much we did
@@ -106,9 +73,6 @@
if(!isturf(proj_turf))
return
var/obj/projectile/destabilizer/D = new /obj/projectile/destabilizer(proj_turf)
- for(var/t in trophies)
- var/obj/item/crusher_trophy/T = t
- T.on_projectile_fire(D, user)
D.preparePixelProjectile(target, user, clickparams)
D.firer = user
D.hammer_synced = src
@@ -125,9 +89,6 @@
return
var/datum/status_effect/crusher_damage/C = L.has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING)
var/target_health = L.health
- for(var/t in trophies)
- var/obj/item/crusher_trophy/T = t
- T.on_mark_detonation(target, user)
if(!QDELETED(L))
if(!QDELETED(C))
C.total_damage += target_health - L.health //we did some damage, but let's not assume how much we did
@@ -186,12 +147,7 @@
/obj/projectile/destabilizer/on_hit(atom/target, blocked = FALSE)
if(isliving(target))
var/mob/living/L = target
- var/had_effect = (L.has_status_effect(STATUS_EFFECT_CRUSHERMARK)) //used as a boolean
- var/datum/status_effect/crusher_mark/CM = L.apply_status_effect(STATUS_EFFECT_CRUSHERMARK, hammer_synced)
- if(hammer_synced)
- for(var/t in hammer_synced.trophies)
- var/obj/item/crusher_trophy/T = t
- T.on_mark_application(target, CM, had_effect)
+ L.apply_status_effect(STATUS_EFFECT_CRUSHERMARK, hammer_synced)
var/target_turf = get_turf(target)
if(ismineralturf(target_turf))
var/turf/closed/mineral/M = target_turf
@@ -199,535 +155,6 @@
M.gets_drilled(firer, TRUE)
..()
-//trophies
-/obj/item/crusher_trophy
- name = "tail spike"
- desc = "A strange spike with no usage."
- icon = 'icons/obj/lavaland/artefacts.dmi'
- icon_state = "tail_spike"
- var/bonus_value = 10 //if it has a bonus effect, this is how much that effect is
- var/denied_type = /obj/item/crusher_trophy
-
-/obj/item/crusher_trophy/examine(mob/living/user)
- . = ..()
- . += "Causes [effect_desc()] when attached to a kinetic crusher."
-
-/obj/item/crusher_trophy/proc/effect_desc()
- return "errors"
-
-/obj/item/crusher_trophy/attackby(obj/item/A, mob/living/user)
- if(istype(A, /obj/item/kinetic_crusher))
- add_to(A, user)
- else
- ..()
-
-/obj/item/crusher_trophy/proc/add_to(obj/item/kinetic_crusher/H, mob/living/user)
- for(var/t in H.trophies)
- var/obj/item/crusher_trophy/T = t
- if(istype(T, denied_type) || istype(src, T.denied_type))
- to_chat(user, "You can't seem to attach [src] to [H]. Maybe remove a few trophies?")
- return FALSE
- if(!user.transferItemToLoc(src, H))
- return
- H.trophies += src
- to_chat(user, "You attach [src] to [H].")
- return TRUE
-
-/obj/item/crusher_trophy/proc/remove_from(obj/item/kinetic_crusher/H, mob/living/user)
- forceMove(get_turf(H))
- H.trophies -= src
- return TRUE
-
-/obj/item/crusher_trophy/proc/on_melee_hit(mob/living/target, mob/living/user) //the target and the user
-/obj/item/crusher_trophy/proc/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user) //the projectile fired and the user
-/obj/item/crusher_trophy/proc/on_mark_application(mob/living/target, datum/status_effect/crusher_mark/mark, had_mark) //the target, the mark applied, and if the target had a mark before
-/obj/item/crusher_trophy/proc/on_mark_detonation(mob/living/target, mob/living/user) //the target and the user
-
-//goliath
-/obj/item/crusher_trophy/goliath_tentacle
- name = "goliath tentacle"
- desc = "A sliced-off goliath tentacle."
- icon_state = "goliath_tentacle"
- denied_type = /obj/item/crusher_trophy/goliath_tentacle
- bonus_value = 5
- var/missing_health_ratio = 0.1
- var/missing_health_desc = 10
-
-/obj/item/crusher_trophy/goliath_tentacle/effect_desc()
- return "waveform collapse to do [bonus_value] more damage for every [missing_health_desc] health you are missing"
-
-/obj/item/crusher_trophy/goliath_tentacle/on_mark_detonation(mob/living/target, mob/living/user)
- var/missing_health = user.maxHealth - user.health
- missing_health *= missing_health_ratio //bonus is active at all times, even if you're above 90 health
- missing_health *= bonus_value //multiply the remaining amount by bonus_value
- if(missing_health > 0)
- target.adjustBruteLoss(missing_health) //and do that much damage
-
-//ancient goliath
-/obj/item/crusher_trophy/elder_tentacle
- name = "elder tentacle"
- desc = "The barbed tip of a tentacle sliced from an incredibly ancient goliath."
- icon_state = "elder_tentacle"
- denied_type = /obj/item/crusher_trophy/elder_tentacle
- bonus_value = 3
- var/missing_health_ratio = 0.1
- var/missing_health_desc = 5
- icon = 'icons/obj/lavaland/elite_trophies.dmi'
-
-/obj/item/crusher_trophy/elder_tentacle/examine(mob/user)
- . = ..()
- . += "Suitable as a trophy for a proto-kinetic crusher."
-
-/obj/item/crusher_trophy/elder_tentacle/effect_desc()
- return "waveform collapse to do [bonus_value] more damage for every [missing_health_desc] health you are missing"
-
-/obj/item/crusher_trophy/elder_tentacle/on_mark_detonation(mob/living/target, mob/living/user)
- var/missing_health = user.maxHealth - user.health
- missing_health *= missing_health_ratio //bonus is active at all times, even if you're above 90 health
- missing_health *= bonus_value //multiply the remaining amount by bonus_value
- if(missing_health > 0)
- target.adjustBruteLoss(missing_health) //and do that much damage
-
-//crystal goliath
-/obj/item/crusher_trophy/goliath_crystal
- name = "goliath crystal"
- desc = "A crystal ripped off from a goliath infected by the strange crystals. You can see the original skin of the goliath deeply embeded in it."
- icon_state = "goliath_crystal"
- denied_type = /obj/item/crusher_trophy/elder_tentacle
- bonus_value = 4
- var/missing_health_ratio = 0.1
- var/missing_health_desc = 5
-
-/obj/item/crusher_trophy/goliath_crystal/effect_desc()
- return "waveform collapse to stun creatures for [bonus_value*0.1] second\s"
-
-/obj/item/crusher_trophy/goliath_crystal/on_mark_detonation(mob/living/simple_animal/target, mob/living/user)
- if(!ishostile(target))
- return
- var/mob/living/simple_animal/hostile/hostile_target = target
- var/hostile_ai_status = hostile_target.AIStatus
- hostile_target.AIStatus = AI_OFF
- addtimer(VARSET_CALLBACK(hostile_target, AIStatus, hostile_ai_status), bonus_value*0.1 SECONDS)
-
-//watcher
-/obj/item/crusher_trophy/watcher_wing
- name = "watcher wing"
- desc = "A wing ripped from a watcher."
- icon_state = "watcher_wing"
- denied_type = /obj/item/crusher_trophy/watcher_wing
- bonus_value = 5
-
-/obj/item/crusher_trophy/watcher_wing/effect_desc()
- return "waveform collapse to prevent certain creatures from using certain attacks for [bonus_value*0.1] second\s"
-
-/obj/item/crusher_trophy/watcher_wing/on_mark_detonation(mob/living/target, mob/living/user)
- if(ishostile(target))
- var/mob/living/simple_animal/hostile/H = target
- if(H.ranged) //briefly delay ranged attacks
- if(H.ranged_cooldown >= world.time)
- H.ranged_cooldown += bonus_value
- else
- H.ranged_cooldown = bonus_value + world.time
-
-//magmawing watcher
-/obj/item/crusher_trophy/magma_wing
- name = "magmatic sinew"
- desc = "A fuming organ, dropped by beings hotter then lava."
- icon_state = "magma_wing"
- denied_type = /obj/item/crusher_trophy/magma_wing
- gender = NEUTER
- bonus_value = 5
- var/deadly_shot = FALSE
-
-/obj/item/crusher_trophy/magma_wing/effect_desc()
- return "waveform collapse to make the next magnetic pulse deal [bonus_value] damage"
-
-/obj/item/crusher_trophy/magma_wing/examine(mob/user)
- . = ..()
- . += "Suitable as a trophy for a proto-kinetic crusher."
-
-/obj/item/crusher_trophy/magma_wing/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user)
- if(deadly_shot)
- marker.name = "superheated [marker.name]"
- marker.icon_state = "lava"
- marker.damage = bonus_value
- marker.nodamage = FALSE
- marker.speed = 2
- deadly_shot = FALSE
-
-/obj/item/crusher_trophy/magma_wing/on_mark_detonation(mob/living/target, mob/living/user)
- deadly_shot = TRUE
- addtimer(CALLBACK(src, PROC_REF(reset_deadly_shot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE)
-
-/obj/item/crusher_trophy/magma_wing/proc/reset_deadly_shot()
- deadly_shot = FALSE
-
-//icewing watcher
-/obj/item/crusher_trophy/ice_wing
- name = "frigid sinew"
- desc = "A carefully-preserved freezing organ, dropped by chilling beings."
- icon_state = "ice_wing"
- bonus_value = 8
- denied_type = /obj/item/crusher_trophy/ice_wing
-
-/obj/item/crusher_trophy/ice_wing/effect_desc()
- return "waveform collapse to prevent certain creatures from using certain attacks for [bonus_value*0.1] second\s"
-
-/obj/item/crusher_trophy/ice_wing/on_mark_detonation(mob/living/target, mob/living/user)
- if(ishostile(target))
- var/mob/living/simple_animal/hostile/H = target
- if(H.ranged) //briefly delay ranged attacks
- if(H.ranged_cooldown >= world.time)
- H.ranged_cooldown += bonus_value
- else
- H.ranged_cooldown = bonus_value + world.time
-
-//forgotten watcher
-/obj/item/crusher_trophy/watcher_wing_forgotten
- name = "forgotten watcher wing"
- desc = "A wing with a terminal infection of the strange crystals."
- icon_state = "watcher_wing_crystal"
- denied_type = /obj/item/crusher_trophy/watcher_wing_forgotten
- gender = NEUTER
- bonus_value = 20
- var/deadly_shot = FALSE
-
-/obj/item/crusher_trophy/watcher_wing_forgotten/effect_desc()
- return "waveform collapse to make the next magnetic pulse deal [bonus_value] damage"
-
-/obj/item/crusher_trophy/watcher_wing_forgotten/examine(mob/user)
- . = ..()
- . += "Suitable as a trophy for a proto-kinetic crusher."
-
-/obj/item/crusher_trophy/watcher_wing_forgotten/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user)
- if(deadly_shot)
- marker.name = "crystal [marker.name]"
- marker.icon_state = "crystal_shard"
- marker.damage = bonus_value
- marker.nodamage = FALSE
- marker.speed = 2
- deadly_shot = FALSE
-
-/obj/item/crusher_trophy/watcher_wing_forgotten/on_mark_detonation(mob/living/target, mob/living/user)
- deadly_shot = TRUE
- addtimer(CALLBACK(src, PROC_REF(reset_deadly_shot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE)
-
-/obj/item/crusher_trophy/watcher_wing_forgotten/proc/reset_deadly_shot()
- deadly_shot = FALSE
-
-//legion
-/obj/item/crusher_trophy/legion_skull
- name = "legion skull"
- desc = "A dead and lifeless legion skull. Could be used in crafting."
- icon_state = "legion_skull"
- denied_type = /obj/item/crusher_trophy/legion_skull
- bonus_value = 3
-
-/obj/item/crusher_trophy/legion_skull/examine(mob/user)
- . = ..()
- . += "Suitable as a trophy for a proto-kinetic crusher."
-
-/obj/item/crusher_trophy/legion_skull/effect_desc()
- return "a kinetic crusher to recharge [bonus_value*0.1] second\s faster"
-
-/obj/item/crusher_trophy/legion_skull/add_to(obj/item/kinetic_crusher/H, mob/living/user)
- . = ..()
- if(.)
- H.charge_time -= bonus_value
-
-/obj/item/crusher_trophy/legion_skull/remove_from(obj/item/kinetic_crusher/H, mob/living/user)
- . = ..()
- if(.)
- H.charge_time += bonus_value
-
-//dwarf legion
-/obj/item/crusher_trophy/dwarf_skull
- name = "shrunken skull"
- desc = "Looks like someone hasn't been drinking their milk. Could be used in crafting."
- icon = 'icons/obj/lavaland/elite_trophies.dmi'
- icon_state = "shrunk_skull"
- denied_type = /obj/item/crusher_trophy/dwarf_skull
- bonus_value = 6
-
-/obj/item/crusher_trophy/dwarf_skull/effect_desc()
- return "a kinetic crusher to recharge [bonus_value*0.1] second\s faster"
-
-/obj/item/crusher_trophy/dwarf_skull/add_to(obj/item/kinetic_crusher/H, mob/living/user)
- . = ..()
- if(.)
- H.charge_time -= bonus_value
-
-/obj/item/crusher_trophy/dwarf_skull/remove_from(obj/item/kinetic_crusher/H, mob/living/user)
- . = ..()
- if(.)
- H.charge_time += bonus_value
-
-
-//disfigured legion
-/obj/item/crusher_trophy/legion_skull_crystal
- name = "disfigured legion skull"
- desc = "A dead and lifeless legion skull. The crystals keep it alive, even in agony."
- icon_state = "legion_skull_crystal"
- denied_type = /obj/item/crusher_trophy/legion_skull_crystal
- bonus_value = 1
-
-/obj/item/crusher_trophy/legion_skull_crystal/examine(mob/user)
- . = ..()
- . += "Suitable as a trophy for a proto-kinetic crusher."
-
-/obj/item/crusher_trophy/legion_skull_crystal/effect_desc()
- return "waveform collapse to shoot 3 projectiles that only hits hostile fauna"
-
-/obj/item/crusher_trophy/legion_skull_crystal/on_mark_detonation(mob/living/target, mob/living/user)
- for(var/i in 0 to 5)
- var/obj/projectile/projectile_to_shoot = new /obj/projectile/crystalline_crusher(get_turf(src))
- projectile_to_shoot.preparePixelProjectile(get_step(src, pick(GLOB.alldirs)), get_turf(src))
- projectile_to_shoot.firer = user
- projectile_to_shoot.fire(i*(360/5))
- return ..()
-
-/obj/projectile/crystalline_crusher
- name = "Crystalline Shard"
- icon_state = "crystal_shard"
- damage = 25
- damage_type = BRUTE
- speed = 3
-
-/obj/projectile/crystalline_crusher/on_hit(atom/target, blocked)
- . = ..()
- var/turf/turf_hit = get_turf(target)
- new /obj/effect/temp_visual/goliath_tentacle/crystal/visual_only(turf_hit,firer)
-
-/obj/projectile/crystalline_crusher/can_hit_target(atom/target, list/passthrough, direct_target, ignore_loc)
- if(!(istype(target,/mob/living/simple_animal/hostile/asteroid)))
- if(isturf(target))
- return ..()
- return FALSE
- return ..()
-
-//blood-drunk hunter
-/obj/item/crusher_trophy/miner_eye
- name = "eye of a blood-drunk hunter"
- desc = "Its pupil is collapsed and turned to mush."
- icon_state = "hunter_eye"
- denied_type = /obj/item/crusher_trophy/miner_eye
-
-/obj/item/crusher_trophy/miner_eye/examine(mob/user)
- . = ..()
- . += "Suitable as a trophy for a proto-kinetic crusher."
-
-/obj/item/crusher_trophy/miner_eye/effect_desc()
- return "waveform collapse to grant stun immunity and 90% damage reduction for 1 second"
-
-/obj/item/crusher_trophy/miner_eye/on_mark_detonation(mob/living/target, mob/living/user)
- user.apply_status_effect(STATUS_EFFECT_BLOODDRUNK)
-
-//whelp
-/obj/item/crusher_trophy/tail_spike
- desc = "A spike taken from a young dragon's tail. Sharp enough to stab someone with."
- denied_type = /obj/item/crusher_trophy/tail_spike
- bonus_value = 5
- force = 10
- throwforce = 15
- throw_speed = 4
- sharpness = IS_SHARP
- attack_verb = list("cut", "sliced", "diced")
- hitsound = 'sound/weapons/bladeslice.ogg'
-
-/obj/item/crusher_trophy/tail_spike/effect_desc()
- return "waveform collapse to do [bonus_value] damage to nearby creatures and push them back"
-
-/obj/item/crusher_trophy/tail_spike/on_mark_detonation(mob/living/target, mob/living/user)
- for(var/mob/living/L in oview(2, user))
- if(L.stat == DEAD)
- continue
- playsound(L, 'sound/magic/fireball.ogg', 20, TRUE)
- new /obj/effect/temp_visual/fire(L.loc)
- addtimer(CALLBACK(src, PROC_REF(pushback), L, user), 1) //no free backstabs, we push AFTER module stuff is done
- L.adjustFireLoss(bonus_value, forced = TRUE)
-
-/obj/item/crusher_trophy/tail_spike/proc/pushback(mob/living/target, mob/living/user)
- if(!QDELETED(target) && !QDELETED(user) && (!target.anchored || ismegafauna(target))) //megafauna will always be pushed
- step(target, get_dir(user, target))
-
-//ash drake
-/obj/item/crusher_trophy/ash_spike
- desc = "A molten spike taken from an ash drake's tail. Hot to the touch and extremely sharp."
- icon = 'icons/obj/lavaland/elite_trophies.dmi'
- icon_state = "ash_spike"
- denied_type = /obj/item/crusher_trophy/ash_spike
- bonus_value = 15
- force = 15
- throwforce = 20
- throw_speed = 4
- sharpness = IS_SHARP
- attack_verb = list("cut", "braised", "singed")
- hitsound = 'sound/weapons/bladeslice.ogg'
-
-/obj/item/crusher_trophy/ash_spike/effect_desc()
- return "waveform collapse to do [bonus_value] damage to nearby creatures and push them back"
-
-/obj/item/crusher_trophy/ash_spike/examine(mob/user)
- . = ..()
- . += "Suitable as a trophy for a proto-kinetic crusher."
-
-/obj/item/crusher_trophy/ash_spike/on_mark_detonation(mob/living/target, mob/living/user)
- for(var/mob/living/L in oview(2, user))
- if(L.stat == DEAD)
- continue
- playsound(L, 'sound/magic/fireball.ogg', 20, TRUE)
- new /obj/effect/temp_visual/fire(L.loc)
- addtimer(CALLBACK(src, PROC_REF(pushback), L, user), 1) //no free backstabs, we push AFTER module stuff is done
- L.adjustFireLoss(bonus_value, forced = TRUE)
-
-/obj/item/crusher_trophy/ash_spike/proc/pushback(mob/living/target, mob/living/user)
- if(!QDELETED(target) && !QDELETED(user) && (!target.anchored || ismegafauna(target))) //megafauna will always be pushed
- step(target, get_dir(user, target))
-
-//bubblegum
-/obj/item/crusher_trophy/demon_claws
- name = "demon claws"
- desc = "A set of blood-drenched claws from a massive demon's hand."
- icon_state = "demon_claws"
- gender = PLURAL
- denied_type = /obj/item/crusher_trophy/demon_claws
- bonus_value = 10
- var/static/list/damage_heal_order = list(BRUTE, BURN, OXY)
-
-/obj/item/crusher_trophy/demon_claws/effect_desc()
- return "melee hits to do [bonus_value * 0.2] more damage and heal you for [bonus_value * 0.1], with 5X effect on waveform collapse"
-
-/obj/item/crusher_trophy/demon_claws/add_to(obj/item/kinetic_crusher/H, mob/living/user)
- . = ..()
- if(.)
- H.force += bonus_value * 0.2
- H.detonation_damage += bonus_value * 0.8
- AddComponent(/datum/component/two_handed, force_wielded=(20 + bonus_value * 0.2))
-
-/obj/item/crusher_trophy/demon_claws/remove_from(obj/item/kinetic_crusher/H, mob/living/user)
- . = ..()
- if(.)
- H.force -= bonus_value * 0.2
- H.detonation_damage -= bonus_value * 0.8
- AddComponent(/datum/component/two_handed, force_wielded=20)
-
-/obj/item/crusher_trophy/demon_claws/on_melee_hit(mob/living/target, mob/living/user)
- user.heal_ordered_damage(bonus_value * 0.1, damage_heal_order)
-
-/obj/item/crusher_trophy/demon_claws/on_mark_detonation(mob/living/target, mob/living/user)
- user.heal_ordered_damage(bonus_value * 0.4, damage_heal_order)
-
-//colossus
-/obj/item/crusher_trophy/blaster_tubes
- name = "blaster tubes"
- desc = "The blaster tubes from a colossus's arm."
- icon_state = "blaster_tubes"
- gender = PLURAL
- denied_type = /obj/item/crusher_trophy/blaster_tubes
- bonus_value = 15
- var/deadly_shot = FALSE
-
-/obj/item/crusher_trophy/blaster_tubes/examine(mob/user)
- . = ..()
- . += "Suitable as a trophy for a proto-kinetic crusher."
-
-/obj/item/crusher_trophy/blaster_tubes/effect_desc()
- return "waveform collapse to make the next magnetic pulse deal [bonus_value] damage but move slower"
-
-/obj/item/crusher_trophy/blaster_tubes/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user)
- if(deadly_shot)
- marker.name = "ominous [marker.name]"
- marker.icon_state = "chronobolt"
- marker.damage = bonus_value
- marker.nodamage = FALSE
- marker.speed = 2
- deadly_shot = FALSE
-
-/obj/item/crusher_trophy/blaster_tubes/on_mark_detonation(mob/living/target, mob/living/user)
- deadly_shot = TRUE
- addtimer(CALLBACK(src, PROC_REF(reset_deadly_shot)), 300, TIMER_UNIQUE|TIMER_OVERRIDE)
-
-/obj/item/crusher_trophy/blaster_tubes/proc/reset_deadly_shot()
- deadly_shot = FALSE
-
-//hierophant
-/obj/item/crusher_trophy/vortex_talisman
- name = "vortex talisman"
- desc = "A glowing trinket that was originally the Hierophant's beacon."
- icon_state = "vortex_talisman"
- denied_type = /obj/item/crusher_trophy/vortex_talisman
-
-/obj/item/crusher_trophy/vortex_talisman/effect_desc()
- return "waveform collapse to create a barrier you can pass"
-
-/obj/item/crusher_trophy/vortex_talisman/on_mark_detonation(mob/living/target, mob/living/user)
- var/turf/current_location = get_turf(user)
- var/area/current_area = current_location.loc
- if(current_area.area_flags & NOTELEPORT)
- to_chat(user, "[src] fizzles uselessly.")
- return
- var/turf/T = get_turf(user)
- new /obj/effect/temp_visual/hierophant/wall/crusher(T, user) //a wall only you can pass!
- var/turf/otherT = get_step(T, turn(user.dir, 90))
- if(otherT)
- new /obj/effect/temp_visual/hierophant/wall/crusher(otherT, user)
- otherT = get_step(T, turn(user.dir, -90))
- if(otherT)
- new /obj/effect/temp_visual/hierophant/wall/crusher(otherT, user)
-
-/obj/effect/temp_visual/hierophant/wall/crusher
- duration = 75
-
-//I am afraid of this code. It also does not function(in terms of doing damage to enemies) as of my last test.
-/obj/item/crusher_trophy/king_goat
- name = "king goat hoof"
- desc = "A hoof from the king of all goats, it still glows with a fraction of its original power..."
- icon_state = "goat_hoof" //needs a better sprite but I cant sprite .
- denied_type = /obj/item/crusher_trophy/king_goat
-
-/obj/item/crusher_trophy/king_goat/examine(mob/user)
- . = ..()
- . += "Suitable as a trophy for a proto-kinetic crusher."
-
-/obj/item/crusher_trophy/king_goat/effect_desc()
- return "you also passively recharge pulses 5x as fast while this is equipped and do a decent amount of damage at the cost of dulling the blade"
-
-/obj/item/crusher_trophy/king_goat/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user)
- marker.damage = 10 //in my testing only does damage to simple mobs so should be fine to have it high //it does damage to nobody. Please fix -M
-
-/obj/item/crusher_trophy/king_goat/add_to(obj/item/kinetic_crusher/H, mob/living/user)
- . = ..()
- if(.)
- H.charge_time = 3
- H.AddComponent(/datum/component/two_handed, force_wielded=5)
-
-/obj/item/crusher_trophy/king_goat/remove_from(obj/item/kinetic_crusher/H, mob/living/user)
- . = ..()
- if(.)
- H.charge_time = 15
- H.AddComponent(/datum/component/two_handed, force_wielded=20)
-
-/obj/item/crusher_trophy/shiny
- name = "shiny nugget"
- icon = 'icons/obj/lavaland/elite_trophies.dmi'
- desc = "A glimmering nugget of dull metal. As it turns out, the fools were right- pyrite is a far rarer substance than gold in the space age. You could probably sell this for a fair price."
- icon_state = "nugget"
- gender = PLURAL
- denied_type = /obj/item/crusher_trophy/shiny
-
-/obj/item/crusher_trophy/shiny/effect_desc()
- return "empowered butchering chances"
-
-/obj/item/crusher_trophy/shiny/add_to(obj/item/kinetic_crusher/H, mob/living/user)
- . = ..()
- if(.)
- H.AddComponent(/datum/component/butchering, 60, 210)
-
-/obj/item/crusher_trophy/shiny/remove_from(obj/item/kinetic_crusher/H, mob/living/user)
- . = ..()
- if(.)
- H.AddComponent(/datum/component/butchering, 60, 110)
-
//outdated Nanotrasen prototype of the crusher. Incredibly heavy, but the blade was made at a premium. //to alter this I had to duplicate some code, big moment.
/obj/item/kinetic_crusher/old
icon_state = "crusherold"
@@ -820,16 +247,3 @@
. = ..()
if(wielded)
. += "[icon_state]_lit"
-
-/obj/item/crusher_trophy/lobster_claw
- name = "lobster claw"
- icon_state = "lobster_claw"
- desc = "A lobster claw."
- denied_type = /obj/item/crusher_trophy/lobster_claw
- bonus_value = 1
-
-/obj/item/crusher_trophy/lobster_claw/effect_desc()
- return "mark detonation to briefly stagger the target for [bonus_value] seconds"
-
-/obj/item/crusher_trophy/lobster_claw/on_mark_detonation(mob/living/target, mob/living/user)
- target.apply_status_effect(/datum/status_effect/stagger, bonus_value SECONDS)
diff --git a/code/modules/mining/equipment/trophies.dm b/code/modules/mining/equipment/trophies.dm
new file mode 100644
index 000000000000..a9631c7ffc15
--- /dev/null
+++ b/code/modules/mining/equipment/trophies.dm
@@ -0,0 +1,184 @@
+//trophies
+/obj/item/mob_trophy
+ name = "tail spike"
+ desc = "A strange spike with no usage."
+ icon = 'icons/obj/lavaland/artefacts.dmi'
+ icon_state = "tail_spike"
+
+//legion
+/obj/item/mob_trophy/legion_skull
+ name = "legion skull"
+ desc = "A dead and lifeless legion skull. Could be used in crafting."
+ icon_state = "legion_skull"
+
+/obj/item/mob_trophy/wolf_ear
+ name = "wolf ear"
+ desc = "The battered remains of a wolf's ear. You could attach it to a crusher, or use the fur to craft a trophy."
+ icon = 'icons/obj/lavaland/elite_trophies.dmi'
+ icon_state = "torn_ear"
+
+/obj/item/mob_trophy/fang
+ name = "battle-stained fang"
+ desc = "A wolf fang, displaying the wear and tear associated with a long and colorful life. Could be attached to a kinetic crusher or used to make a trophy."
+ icon = 'icons/obj/lavaland/elite_trophies.dmi'
+ icon_state = "fang"
+
+/*
+//goliath
+/obj/item/mob_trophy/goliath_tentacle
+ name = "goliath tentacle"
+ desc = "A sliced-off goliath tentacle."
+ icon_state = "goliath_tentacle"
+
+//ancient goliath0
+/obj/item/mob_trophy/elder_tentacle
+ name = "elder tentacle"
+ desc = "The barbed tip of a tentacle sliced from an incredibly ancient goliath."
+ icon_state = "elder_tentacle"
+ icon = 'icons/obj/lavaland/elite_trophies.dmi'
+
+//crystal goliath
+/obj/item/mob_trophy/goliath_crystal
+ name = "goliath crystal"
+ desc = "A crystal ripped off from a goliath infected by the strange crystals. You can see the original skin of the goliath deeply embeded in it."
+ icon_state = "goliath_crystal"
+
+//watcher
+/obj/item/mob_trophy/watcher_wing
+ name = "watcher wing"
+ desc = "A wing ripped from a watcher."
+ icon_state = "watcher_wing"
+
+//magmawing watcher
+/obj/item/mob_trophy/magma_wing
+ name = "magmatic sinew"
+ desc = "A fuming organ, dropped by beings hotter then lava."
+ icon_state = "magma_wing"
+ gender = NEUTER
+
+//icewing watcher
+/obj/item/mob_trophy/ice_wing
+ name = "frigid sinew"
+ desc = "A carefully-preserved freezing organ, dropped by chilling beings."
+ icon_state = "ice_wing"
+
+//forgotten watcher
+/obj/item/mob_trophy/watcher_wing_forgotten
+ name = "forgotten watcher wing"
+ desc = "A wing with a terminal infection of the strange crystals."
+ icon_state = "watcher_wing_crystal"
+ gender = NEUTER
+
+//dwarf legion
+/obj/item/mob_trophy/dwarf_skull
+ name = "shrunken skull"
+ desc = "Looks like someone hasn't been drinking their milk. Could be used in crafting."
+ icon = 'icons/obj/lavaland/elite_trophies.dmi'
+ icon_state = "shrunk_skull"
+
+//disfigured legion
+/obj/item/mob_trophy/legion_skull_crystal
+ name = "disfigured legion skull"
+ desc = "A dead and lifeless legion skull. The crystals keep it alive, even in agony."
+ icon_state = "legion_skull_crystal"
+
+//blood-drunk hunter
+/obj/item/mob_trophy/miner_eye
+ name = "eye of a blood-drunk hunter"
+ desc = "Its pupil is collapsed and turned to mush."
+ icon_state = "hunter_eye"
+
+//whelp
+/obj/item/mob_trophy/tail_spike
+ desc = "A spike taken from a young dragon's tail. Sharp enough to stab someone with."
+ force = 10
+ throwforce = 15
+ throw_speed = 4
+ sharpness = IS_SHARP
+ attack_verb = list("cut", "sliced", "diced")
+ hitsound = 'sound/weapons/bladeslice.ogg'
+
+//ash drake
+/obj/item/mob_trophy/ash_spike
+ desc = "A molten spike taken from an ash drake's tail. Hot to the touch and extremely sharp."
+ icon = 'icons/obj/lavaland/elite_trophies.dmi'
+ icon_state = "ash_spike"
+ force = 15
+ throwforce = 20
+ throw_speed = 4
+ sharpness = IS_SHARP
+ attack_verb = list("cut", "braised", "singed")
+ hitsound = 'sound/weapons/bladeslice.ogg'
+
+//bubblegum
+/obj/item/mob_trophy/demon_claws
+ name = "demon claws"
+ desc = "A set of blood-drenched claws from a massive demon's hand."
+ icon_state = "demon_claws"
+ gender = PLURAL
+
+//colossus
+/obj/item/mob_trophy/blaster_tubes
+ name = "blaster tubes"
+ desc = "The blaster tubes from a colossus's arm."
+ icon_state = "blaster_tubes"
+ gender = PLURAL
+
+//hierophant
+/obj/item/mob_trophy/vortex_talisman
+ name = "vortex talisman"
+ desc = "A glowing trinket that was originally the Hierophant's beacon."
+ icon_state = "vortex_talisman"
+
+// Broodmother's loot: Broodmother Tongue
+/obj/item/mob_trophy/broodmother_tongue
+ name = "broodmother tongue"
+ desc = "The tongue of a broodmother. If attached a certain way, makes for a suitable crusher trophy."
+ icon = 'icons/obj/lavaland/elite_trophies.dmi'
+ icon_state = "broodmother_tongue"
+
+/obj/item/mob_trophy/shiny
+ name = "shiny nugget"
+ icon = 'icons/obj/lavaland/elite_trophies.dmi'
+ desc = "A glimmering nugget of dull metal. As it turns out, the fools were right- pyrite is a far rarer substance than gold in the space age. You could probably sell this for a fair price."
+ icon_state = "nugget"
+ gender = PLURAL
+
+/obj/item/mob_trophy/lobster_claw
+ name = "lobster claw"
+ icon_state = "lobster_claw"
+ desc = "A lobster claw."
+
+/obj/item/mob_trophy/ice_block_talisman
+ name = "ice block talisman"
+ desc = "A glowing trinket that a demonic miner had on him, it seems he couldn't utilize it for whatever reason."
+ icon_state = "freeze_cube"
+
+/obj/item/mob_trophy/brimdemon_fang
+ name = "brimdemon's fang"
+ icon_state = "brimdemon_fang"
+ desc = "A fang from a brimdemon's corpse."
+
+/obj/item/mob_trophy/ice_crystal
+ name = "frost gem"
+ icon = 'icons/obj/lavaland/elite_trophies.dmi'
+ desc = "The glowing remnant of an ancient ice demon- so cold that it hurts to touch."
+ icon_state = "ice_crystal"
+
+/obj/item/mob_trophy/lobster_claw
+ name = "lobster claw"
+ icon_state = "lobster_claw"
+ desc = "A lobster claw."
+
+/obj/item/mob_trophy/bear_paw
+ name = "polar bear paw"
+ desc = "It's a polar bear paw."
+ icon_state = "bear_paw"
+ icon ='icons/obj/lavaland/elite_trophies.dmi'
+
+/obj/item/mob_trophy/war_paw
+ name = "Armored bear paw"
+ desc = "It's a paw from a true warrior. Still remembers the basics of CQB."
+ icon_state = "armor_paw"
+ icon ='icons/obj/lavaland/elite_trophies.dmi'
+*/
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index 42cc2a74d6a4..36d556bc5f42 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -882,6 +882,39 @@
walk(hit_mob, 0) //stops them mid pathing even if they're stunimmune
hit_mob.apply_status_effect(/datum/status_effect/ice_block_talisman, 5 SECONDS)
+/datum/status_effect/ice_block_talisman
+ id = "ice_block_talisman"
+ duration = 40
+ status_type = STATUS_EFFECT_REFRESH
+ alert_type = /atom/movable/screen/alert/status_effect/ice_block_talisman
+ /// Stored icon overlay for the hit mob, removed when effect is removed
+ var/icon/cube
+
+/atom/movable/screen/alert/status_effect/ice_block_talisman
+ name = "Frozen Solid"
+ desc = "You're frozen inside an ice cube, and cannot move!"
+ icon_state = "frozen"
+
+/datum/status_effect/ice_block_talisman/on_apply()
+ RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(owner_moved))
+ if(!owner.stat)
+ to_chat(owner, "You become frozen in a cube!")
+ cube = icon('icons/effects/freeze.dmi', "ice_cube")
+ var/icon/size_check = icon(owner.icon, owner.icon_state)
+ cube.Scale(size_check.Width(), size_check.Height())
+ owner.add_overlay(cube)
+ return ..()
+
+/// Blocks movement from the status effect owner
+/datum/status_effect/ice_block_talisman/proc/owner_moved()
+ return COMPONENT_MOVABLE_BLOCK_PRE_MOVE
+
+/datum/status_effect/ice_block_talisman/on_remove()
+ if(!owner.stat)
+ to_chat(owner, "The cube melts!")
+ owner.cut_overlay(cube)
+ UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE)
+
//earthquake gauntlets
/obj/item/clothing/gloves/gauntlets
name = "concussive gauntlets"
@@ -1274,13 +1307,6 @@
if(4)
new /obj/item/dragons_blood(src)
-/obj/structure/closet/crate/necropolis/dragon/crusher
- name = "firey dragon chest"
-
-/obj/structure/closet/crate/necropolis/dragon/crusher/PopulateContents()
- ..()
- new /obj/item/crusher_trophy/ash_spike(src)
-
/obj/item/melee/ghost_sword
name = "\improper spectral blade"
desc = "A rusted and dulled blade. It doesn't look like it'd do much damage. It glows weakly."
@@ -1502,13 +1528,6 @@
if(3)
new /obj/item/gun/magic/staff/spellblade(src)
-/obj/structure/closet/crate/necropolis/bubblegum/crusher
- name = "bloody bubblegum chest"
-
-/obj/structure/closet/crate/necropolis/bubblegum/crusher/PopulateContents()
- ..()
- new /obj/item/crusher_trophy/demon_claws(src)
-
/obj/item/mayhem
name = "mayhem in a bottle"
desc = "A magically infused bottle of blood, the scent of which will drive anyone nearby into a murderous frenzy."
@@ -1584,13 +1603,6 @@
new random_crystal(src)
new /obj/item/organ/vocal_cords/colossus(src)
-/obj/structure/closet/crate/necropolis/colossus/crusher
- name = "angelic colossus chest"
-
-/obj/structure/closet/crate/necropolis/colossus/crusher/PopulateContents()
- ..()
- new /obj/item/crusher_trophy/blaster_tubes(src)
-
//Hierophant
/obj/item/hierophant_club
name = "hierophant club"
diff --git a/code/modules/mob/living/simple_animal/hostile/human/survivors.dm b/code/modules/mob/living/simple_animal/hostile/human/survivors.dm
index 4f8c758068ce..3c4ba08ed16d 100644
--- a/code/modules/mob/living/simple_animal/hostile/human/survivors.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/survivors.dm
@@ -12,10 +12,12 @@
move_force = MOVE_FORCE_DEFAULT
move_resist = MOVE_RESIST_DEFAULT
pull_force = PULL_FORCE_DEFAULT
+ /*
if(prob(15))
- new /obj/item/crusher_trophy/shiny(loc)
+ new /obj/item/mob_trophy/shiny(loc)
visible_message("You notice a glimmering nugget of shiny metal.")
..()
+ */
/mob/living/simple_animal/hostile/human/hermit/survivor
name = "Hermit Wanderer"
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm
index 5bdc5c882214..63519d29c7cd 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm
@@ -41,7 +41,7 @@ Difficulty: Medium
ranged_cooldown_time = 16
pixel_x = -16
base_pixel_x = -16
- crusher_loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator, /obj/item/crusher_trophy/miner_eye)
+ //mob_trophy = /obj/item/mob_trophy/miner_eye
loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator)
wander = FALSE
del_on_death = TRUE
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
index d62d695e1be7..1a0bbc10fac4 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
@@ -56,7 +56,7 @@ Difficulty: Hard
pixel_x = -32
base_pixel_x = -32
del_on_death = TRUE
- crusher_loot = list(/obj/structure/closet/crate/necropolis/bubblegum/crusher)
+ //mob_trophy = /obj/item/mob_trophy/demon_claws
loot = list(/obj/structure/closet/crate/necropolis/bubblegum)
blood_volume = BLOOD_VOLUME_MAXIMUM //BLEED FOR ME
var/charging = FALSE
@@ -504,7 +504,7 @@ Difficulty: Hard
health = 1
maxHealth = 1
alpha = 127.5
- crusher_loot = null
+ mob_trophy = null
loot = null
achievement_type = null
crusher_achievement_type = null
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm
index cca8a649353f..77b4544a6dbb 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/codename_claw.dm
@@ -21,7 +21,6 @@
ranged = TRUE
speed = 4
move_to_delay = 4
- crusher_loot = list(/obj/item/card/id/ert/deathsquad, /obj/item/documents/nanotrasen)
loot = list(/obj/item/card/id/ert/deathsquad, /obj/item/documents/nanotrasen)
wander = FALSE
blood_volume = BLOOD_VOLUME_NORMAL
@@ -59,8 +58,8 @@
speed = 5
move_to_delay = 5
speak_emote = list("verbalizes")
- crusher_loot = list(/obj/effect/spawner/clawloot)
- loot = list(/obj/effect/spawner/clawloot/crusher)
+ mob_trophy = /obj/item/nullrod/armblade/tentacle
+ loot = list(/obj/effect/spawner/clawloot)
health = 2250
maxHealth = 2250
shouldnt_move = TRUE //we want to show the transforming animation
@@ -76,9 +75,6 @@
new /obj/item/gun/energy/pulse/pistol(get_turf(src))
qdel(src)
-/obj/effect/spawner/clawloot/crusher/spawn_loot()
- new /obj/item/nullrod/armblade/tentacle(get_turf(src)) //idk what to put here, memed is the loot person
- return ..()
///LOOT END
//PHASE ONE
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
index bd09f06f3521..863abf56dad1 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
@@ -50,7 +50,7 @@ Difficulty: Very Hard
achievement_type = /datum/award/achievement/boss/colossus_kill
crusher_achievement_type = /datum/award/achievement/boss/colossus_crusher
score_achievement_type = /datum/award/score/colussus_score
- crusher_loot = list(/obj/structure/closet/crate/necropolis/colossus/crusher)
+ //mob_trophy = /obj/item/mob_trophy/blaster_tubes
loot = list(/obj/structure/closet/crate/necropolis/colossus)
deathmessage = "disintegrates, leaving a glowing core in its wake."
deathsound = 'sound/magic/demon_dies.ogg'
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm
index 96fbc8b5c4ec..08ef1a7b21cb 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm
@@ -24,7 +24,7 @@
vision_range = 10
damage_coeff = list(BRUTE = 1, BURN = 0.5, TOX = 0.5, CLONE = 0.5, STAMINA = 0, OXY = 0.5)
loot = list(/obj/item/claymore/cursed, /obj/item/clothing/suit/space/hardsuit/cult/enchanted)
- crusher_loot = list(/obj/item/claymore/cursed, /obj/item/clothing/suit/space/hardsuit/cult/enchanted, /obj/item/upgradescroll)
+ mob_trophy = list(/obj/item/claymore/cursed, /obj/item/clothing/suit/space/hardsuit/cult/enchanted, /obj/item/upgradescroll)
wander = FALSE
del_on_death = TRUE
blood_volume = BLOOD_VOLUME_NORMAL
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm
index 550c78532cd6..00a32a8dc449 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm
@@ -28,7 +28,7 @@ Difficulty: Extremely Hard
speed = 20
move_to_delay = 20
ranged = TRUE
- crusher_loot = list(/obj/effect/decal/remains/plasma, /obj/item/crusher_trophy/ice_block_talisman)
+ //mob_trophy = /obj/item/mob_trophy/ice_block_talisman
loot = list(/obj/effect/decal/remains/plasma)
wander = FALSE
del_on_death = TRUE
@@ -323,47 +323,3 @@ Difficulty: Extremely Hard
mineral_scan_pulse(T, world.view + 1)
. = ..()
-/obj/item/crusher_trophy/ice_block_talisman
- name = "ice block talisman"
- desc = "A glowing trinket that a demonic miner had on him, it seems he couldn't utilize it for whatever reason."
- icon_state = "freeze_cube"
- denied_type = /obj/item/crusher_trophy/ice_block_talisman
-
-/obj/item/crusher_trophy/ice_block_talisman/effect_desc()
- return "waveform collapse to freeze a creature in a block of ice for a period, preventing them from moving"
-
-/obj/item/crusher_trophy/ice_block_talisman/on_mark_detonation(mob/living/target, mob/living/user)
- target.apply_status_effect(/datum/status_effect/ice_block_talisman)
-
-/datum/status_effect/ice_block_talisman
- id = "ice_block_talisman"
- duration = 40
- status_type = STATUS_EFFECT_REFRESH
- alert_type = /atom/movable/screen/alert/status_effect/ice_block_talisman
- /// Stored icon overlay for the hit mob, removed when effect is removed
- var/icon/cube
-
-/atom/movable/screen/alert/status_effect/ice_block_talisman
- name = "Frozen Solid"
- desc = "You're frozen inside an ice cube, and cannot move!"
- icon_state = "frozen"
-
-/datum/status_effect/ice_block_talisman/on_apply()
- RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(owner_moved))
- if(!owner.stat)
- to_chat(owner, "You become frozen in a cube!")
- cube = icon('icons/effects/freeze.dmi', "ice_cube")
- var/icon/size_check = icon(owner.icon, owner.icon_state)
- cube.Scale(size_check.Width(), size_check.Height())
- owner.add_overlay(cube)
- return ..()
-
-/// Blocks movement from the status effect owner
-/datum/status_effect/ice_block_talisman/proc/owner_moved()
- return COMPONENT_MOVABLE_BLOCK_PRE_MOVE
-
-/datum/status_effect/ice_block_talisman/on_remove()
- if(!owner.stat)
- to_chat(owner, "The cube melts!")
- owner.cut_overlay(cube)
- UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
index 6fcf5ada7f4a..b7a2f0912653 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
@@ -54,10 +54,10 @@ Difficulty: Medium
ranged = TRUE
pixel_x = -32
base_pixel_x = -32
- crusher_loot = list(/obj/structure/closet/crate/necropolis/dragon/crusher)
+ //mob_trophy = /obj/item/mob_trophy/ash_spike
loot = list(/obj/structure/closet/crate/necropolis/dragon)
butcher_results = list(/obj/item/gem/amber = 1, /obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30)
- guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/crusher_trophy/ash_spike = 1)
+ guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/ashdrake = 10)
var/swooping = NONE
var/player_cooldown = 0
var/dungeon = FALSE //if true, on death will spawn a ghost role at a lank mark and open blast doors with a certain id
@@ -583,7 +583,7 @@ Difficulty: Medium
mouse_opacity = MOUSE_OPACITY_ICON
damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1)
loot = list()
- crusher_loot = list()
+ mob_trophy = list()
butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30)
attack_action_types = list()
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
index 4df97bac4a6f..ba112bbf5e72 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
@@ -59,7 +59,7 @@ Difficulty: Hard
ranged_cooldown_time = 40
aggro_vision_range = 21 //so it can see to one side of the arena to the other
loot = list(/obj/item/hierophant_club)
- crusher_loot = list(/obj/item/hierophant_club, /obj/item/crusher_trophy/vortex_talisman)
+ //mob_trophy = /obj/item/mob_trophy/vortex_talisman
wander = FALSE
gps_name = "Zealous Signal"
achievement_type = /datum/award/achievement/boss/hierophant_kill
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
index 120b850cf428..37934c0367e5 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
@@ -28,7 +28,7 @@
layer = LARGE_MOB_LAYER //Looks weird with them slipping under mineral walls and cameras and shit otherwise
mouse_opacity = MOUSE_OPACITY_OPAQUE // Easier to click on in melee, they're giant targets anyway
flags_1 = PREVENT_CONTENTS_EXPLOSION_1
- var/list/crusher_loot
+ var/mob_trophy
var/achievement_type
var/crusher_achievement_type
var/score_achievement_type
@@ -71,10 +71,10 @@
if(health > 0)
return
else
- var/datum/status_effect/crusher_damage/C = has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING)
+ spawn_mob_trophy()
+ var/datum/status_effect/crusher_damage/crusher = has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING)
var/crusher_kill = FALSE
- if(C && crusher_loot && C.total_damage >= maxHealth * 0.6)
- spawn_crusher_loot()
+ if(crusher && mob_trophy && crusher.total_damage >= maxHealth * 0.6)
crusher_kill = TRUE
if(true_spawn && !(flags_1 & ADMIN_SPAWNED_1))
var/tab = "megafauna_kills"
@@ -85,8 +85,8 @@
SSblackbox.record_feedback("tally", tab, 1, "[initial(name)]")
..()
-/mob/living/simple_animal/hostile/megafauna/proc/spawn_crusher_loot()
- loot = crusher_loot
+/mob/living/simple_animal/hostile/megafauna/proc/spawn_mob_trophy()
+ loot += mob_trophy
/mob/living/simple_animal/hostile/megafauna/gib()
if(health > 0)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm
index a2cceb5a3aaa..0c13b9d67f16 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm
@@ -39,7 +39,7 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa
for(var/t in swarmerTypes)
. += GLOB.AISwarmerCapsByType[t]
-
+//this should. not be a simple mob i think
/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon
name = "swarmer beacon"
desc = "That name is a bit of a mouthful, but stop paying attention to your mouth they're eating everything!"
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm
index 59a58bd48d16..095ad0f8fca2 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm
@@ -32,7 +32,7 @@ Difficulty: Hard
loot = list()
butcher_results = list()
guaranteed_butcher_results = list(/obj/item/wendigo_blood = 1)
- crusher_loot = list(/obj/item/crusher_trophy/demon_claws)
+ //mob_trophy = /obj/item/mob_trophy/demon_claws
wander = FALSE
del_on_death = FALSE
blood_volume = BLOOD_VOLUME_NORMAL
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm
index eb8302536e50..d10b9b86fb9b 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm
@@ -230,7 +230,7 @@
movement_type = FLYING
robust_searching = 1
attack_same = TRUE // So we'll fight basilisks
- crusher_loot = /obj/item/crusher_trophy/watcher_wing
+ //mob_trophy = /obj/item/mob_trophy/watcher_wing
gold_core_spawnable = NO_SPAWN
loot = list()
butcher_results = list(/obj/item/stack/ore/diamond = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 1)
@@ -294,8 +294,8 @@
light_power = 2.5
light_color = LIGHT_COLOR_LAVA
projectiletype = /obj/projectile/temp/basilisk/magmawing
- crusher_loot = /obj/item/crusher_trophy/magma_wing
- crusher_drop_mod = 75
+ //mob_trophy = /obj/item/mob_trophy/magma_wing
+ trophy_drop_mod = 75
/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/icewing
name = "icewing watcher"
@@ -309,8 +309,8 @@
ranged_cooldown_time = 20
projectiletype = /obj/projectile/temp/basilisk/icewing
butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/bone = 1) //No sinew; the wings are too fragile to be usable
- crusher_loot = /obj/item/crusher_trophy/ice_wing
- crusher_drop_mod = 75
+ //mob_trophy = /obj/item/mob_trophy/ice_wing
+ trophy_drop_mod = 75
/obj/projectile/temp/basilisk/magmawing
name = "scorching blast"
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm
index 1d9f6e174660..815bfca00028 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm
@@ -37,7 +37,7 @@
light_color = LIGHT_COLOR_BLOOD_MAGIC
light_power = 5
light_range = 1.4
- crusher_loot = /obj/item/crusher_trophy/brimdemon_fang
+ //mob_trophy = /obj/item/mob_trophy/brimdemon_fang
/// Are we charging/firing? If yes stops our movement.
var/firing = FALSE
/// A list of all the beam parts.
@@ -184,22 +184,6 @@
hit_mob.adjustFireLoss(5)
to_chat(hit_mob, span_danger("You're damaged by [src]!"))
-/obj/item/crusher_trophy/brimdemon_fang
- name = "brimdemon's fang"
- icon_state = "brimdemon_fang"
- desc = "A fang from a brimdemon's corpse."
- denied_type = /obj/item/crusher_trophy/brimdemon_fang
- var/static/list/comic_phrases = list("BOOM", "BANG", "KABLOW", "KAPOW", "OUCH", "BAM", "KAPOW", "WHAM", "POW", "KABOOM")
- var/static/list/damage_heal_order = list(BRUTE, BURN, OXY)
-
-/obj/item/crusher_trophy/brimdemon_fang/effect_desc()
- return "mark detonation creates audiosensory effects on the target and slightly heals the wielder"
-
-/obj/item/crusher_trophy/brimdemon_fang/on_mark_detonation(mob/living/target, mob/living/user)
- target.balloon_alert_to_viewers("[pick(comic_phrases)]!")
- playsound(target, 'sound/creatures/brimdemon_crush.ogg', 100)
- user.heal_ordered_damage(bonus_value * 0.4, damage_heal_order)
-
/obj/effect/decal/cleanable/brimdust
name = "brimdust"
desc = "Dust from a brimdemon. It is considered valuable for botanical and heating purposes."
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm
index 7e2b1c3d990c..cb7eaad0e988 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm
@@ -43,7 +43,7 @@
mob_biotypes = MOB_ORGANIC|MOB_BEAST
mouse_opacity = MOUSE_OPACITY_ICON
deathmessage = "explodes into gore!"
- loot_drop = /obj/item/crusher_trophy/broodmother_tongue
+ //loot_drop = /obj/item/mob_trophy/broodmother_tongue
attack_action_types = list(/datum/action/innate/elite_attack/tentacle_patch,
/datum/action/innate/elite_attack/spawn_children,
@@ -246,22 +246,6 @@
T = get_step(T, i)
new /obj/effect/temp_visual/goliath_tentacle/broodmother(T, spawner)
-// Broodmother's loot: Broodmother Tongue
-/obj/item/crusher_trophy/broodmother_tongue
- name = "broodmother tongue"
- desc = "The tongue of a broodmother. If attached a certain way, makes for a suitable crusher trophy."
- icon = 'icons/obj/lavaland/elite_trophies.dmi'
- icon_state = "broodmother_tongue"
- denied_type = /obj/item/crusher_trophy/broodmother_tongue
- bonus_value = 35
-
-/obj/item/crusher_trophy/broodmother_tongue/effect_desc()
- return "waveform collapse to have a [bonus_value]% chance to summon a patch of goliath tentacles at the target's location"
-
-/obj/item/crusher_trophy/broodmother_tongue/on_mark_detonation(mob/living/target, mob/living/user)
- if(rand(1, 100) <= bonus_value && target.stat != DEAD)
- new /obj/effect/temp_visual/goliath_tentacle/broodmother/patch(get_turf(target), user)
-
/mob/living/simple_animal/hostile/asteroid/elite/broodmother_child/rockplanet
name = "baby gruboid"
desc = "A young gruboid recently born. As a defense mechanism, they violently explode if killed."
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm
index f0b6dc3e8d54..e6ea404aca09 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm
@@ -38,7 +38,7 @@
mouse_opacity = MOUSE_OPACITY_ICON
deathsound = 'sound/magic/curse.ogg'
deathmessage = "'s arms reach out before it falls apart onto the floor, lifeless."
- loot_drop = /obj/item/crusher_trophy/legionnaire_spine
+ loot_drop = /obj/item/mob_trophy/legionnaire_spine
attack_action_types = list(/datum/action/innate/elite_attack/legionnaire_charge,
/datum/action/innate/elite_attack/head_detach,
@@ -278,23 +278,8 @@
transform *= 0.33
// Legionnaire's loot: Legionnaire Spine
-
-/obj/item/crusher_trophy/legionnaire_spine
+/obj/item/mob_trophy/legionnaire_spine
name = "legionnaire spine"
desc = "The spine of a legionnaire. It almost feels like it's moving..."
icon = 'icons/obj/lavaland/elite_trophies.dmi'
icon_state = "legionnaire_spine"
- denied_type = /obj/item/crusher_trophy/legionnaire_spine
- bonus_value = 50//These skulls are a joke, so this bonus value had to be put on steroidal emergency treatment
-
-/obj/item/crusher_trophy/legionnaire_spine/effect_desc()
- return "waveform collapse to have a [bonus_value]% chance to summon a loyal legion skull"
-
-/obj/item/crusher_trophy/legionnaire_spine/on_mark_detonation(mob/living/target, mob/living/user)
- if(!rand(1, 100) <= bonus_value || target.stat == DEAD)
- return
- var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/A = new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion(user.loc)
- A.flags_1 |= (flags_1 & ADMIN_SPAWNED_1)
- A.GiveTarget(target)
- A.friends = user
- A.faction = user.faction.Copy()
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm
index ce3850d22f01..d8aedc292ca0 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm
@@ -147,7 +147,7 @@
icon_dead = "goliath_dead"
throw_message = "does nothing to the tough hide of the"
pre_attack_icon = "goliath_preattack"
- crusher_loot = /obj/item/crusher_trophy/goliath_tentacle
+ //mob_trophy = /obj/item/mob_trophy/goliath_tentacle
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/goliath = 2, /obj/item/stack/sheet/bone = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/ore/silver = 10)
guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide = 2)
loot = list()
@@ -249,11 +249,11 @@
maxHealth = 180
health = 180
speed = 4
- crusher_loot = /obj/item/crusher_trophy/elder_tentacle
+ //mob_trophy = /obj/item/mob_trophy/elder_tentacle
pre_attack_icon = "ancient_goliath_preattack"
throw_message = "does nothing to the rocky hide of the"
guaranteed_butcher_results = list()
- crusher_drop_mod = 75
+ trophy_drop_mod = 75
wander = FALSE
bonus_tame_chance = 10
var/list/cached_tentacle_turfs
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm
index 6e6c521fe445..d637b19a2a08 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm
@@ -50,8 +50,8 @@
OpenFire()
return TRUE
-/mob/living/simple_animal/hostile/asteroid/hivelord/spawn_crusher_loot()
- loot += crusher_loot //we don't butcher
+/mob/living/simple_animal/hostile/asteroid/hivelord/spawn_mob_trophy()
+ loot += mob_trophy //we don't butcher
/mob/living/simple_animal/hostile/asteroid/hivelord/death(gibbed)
mouse_opacity = MOUSE_OPACITY_ICON
@@ -119,7 +119,7 @@
throw_message = "bounces harmlessly off of"
loot = list(/obj/item/organ/regenerative_core/legion)
brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion
- crusher_loot = /obj/item/crusher_trophy/legion_skull
+ mob_trophy = /obj/item/mob_trophy/legion_skull
del_on_death = 1
stat_attack = HARD_CRIT
robust_searching = 1
@@ -131,7 +131,7 @@
move_resist = MOVE_RESIST_DEFAULT
pull_force = PULL_FORCE_DEFAULT
if(prob(15))
- new /obj/item/crusher_trophy/legion_skull(loc)
+ new /obj/item/mob_trophy/legion_skull(loc)
visible_message("One of the [src]'s skulls looks intact.")
..()
@@ -150,7 +150,7 @@
icon_living = "dwarf_legion"
icon_aggro = "dwarf_legion"
icon_dead = "dwarf_legion"
- crusher_loot = /obj/item/crusher_trophy/dwarf_skull
+ //mob_trophy = /obj/item/mob_trophy/dwarf_skull
maxHealth = 150
health = 150
move_to_delay = 2
@@ -182,9 +182,6 @@
move_force = MOVE_FORCE_DEFAULT
move_resist = MOVE_RESIST_DEFAULT
pull_force = PULL_FORCE_DEFAULT
- if(prob(75))
- new /obj/item/crusher_trophy/dwarf_skull(loc)
- visible_message("One of the [src]'s skulls looks like it survived.")
..()
//Legion skull
@@ -334,7 +331,7 @@
icon_living = "snowlegion"
icon_aggro = "snowlegion_alive"
icon_dead = "snowlegion"
- crusher_loot = /obj/item/crusher_trophy/legion_skull
+ mob_trophy = /obj/item/mob_trophy/legion_skull
loot = list(/obj/item/organ/regenerative_core/legion)
brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/snow
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm
index 2315f6e61a4f..786cdaa80966 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice demon.dm
@@ -74,8 +74,6 @@
new /obj/item/assembly/signaler/anomaly/bluespace(loc)
if(prob(5))
new /obj/item/gem/fdiamond(loc)
- if(prob(10))
- new /obj/item/crusher_trophy/ice_wing(loc)
return ..()
/mob/living/simple_animal/hostile/asteroid/old_demon
@@ -122,7 +120,7 @@
footstep_type = FOOTSTEP_MOB_CLAW
/// Distance the demon will teleport from the target
var/teleport_distance = 3
- crusher_drop_mod = 75
+ trophy_drop_mod = 75
/obj/projectile/temp/basilisk/ice
name = "ice blast"
@@ -157,8 +155,6 @@
new /obj/item/assembly/signaler/anomaly/bluespace(loc)
if(prob(20))
new /obj/item/gem/fdiamond(loc)
- if(prob(50))
- new /obj/item/crusher_trophy/ice_crystal(loc)
return ..()
/mob/living/simple_animal/hostile/asteroid/ice_demon/random/Initialize()
@@ -166,49 +162,3 @@
if(prob(15))
new /mob/living/simple_animal/hostile/asteroid/old_demon(loc)
return INITIALIZE_HINT_QDEL
-
-/obj/item/crusher_trophy/ice_crystal
- name = "frost gem"
- icon = 'icons/obj/lavaland/elite_trophies.dmi'
- desc = "The glowing remnant of an ancient ice demon- so cold that it hurts to touch."
- icon_state = "ice_crystal"
- denied_type = /obj/item/crusher_trophy/ice_crystal
-
-/obj/item/crusher_trophy/ice_crystal/effect_desc()
- return "waveform collapse to freeze a creature in a block of ice for a period, preventing them from moving"
-
-/obj/item/crusher_trophy/ice_crystal/on_mark_detonation(mob/living/target, mob/living/user)
- target.apply_status_effect(/datum/status_effect/ice_crystal)
-
-/datum/status_effect/ice_crystal
- id = "ice_crystal"
- duration = 20
- status_type = STATUS_EFFECT_REFRESH
- alert_type = /atom/movable/screen/alert/status_effect/ice_crystal
- /// Stored icon overlay for the hit mob, removed when effect is removed
- var/icon/cube
-
-/atom/movable/screen/alert/status_effect/ice_crystal
- name = "Frozen Solid"
- desc = "You're frozen inside an ice cube, and cannot move!"
- icon_state = "frozen"
-
-/datum/status_effect/ice_crystal/on_apply()
- RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(owner_moved))
- if(!owner.stat)
- to_chat(owner, "You become frozen in a cube!")
- cube = icon('icons/effects/freeze.dmi', "ice_cube")
- var/icon/size_check = icon(owner.icon, owner.icon_state)
- cube.Scale(size_check.Width(), size_check.Height())
- owner.add_overlay(cube)
- return ..()
-
-/// Blocks movement from the status effect owner
-/datum/status_effect/ice_crystal/proc/owner_moved()
- return COMPONENT_MOVABLE_BLOCK_PRE_MOVE
-
-/datum/status_effect/ice_crystal/on_remove()
- if(!owner.stat)
- to_chat(owner, "The cube melts!")
- owner.cut_overlay(cube)
- UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE)
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice whelp.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice whelp.dm
index ceef301b2349..7a4d8cb234c2 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice whelp.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice whelp.dm
@@ -28,7 +28,7 @@
move_resist = MOVE_FORCE_VERY_STRONG
butcher_results = list(/obj/item/stack/ore/diamond = 3, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 10, /obj/item/stack/sheet/animalhide/ashdrake = 1)
loot = list()
- crusher_loot = /obj/item/crusher_trophy/tail_spike
+ //mob_trophy = /obj/item/mob_trophy/tail_spike
deathmessage = "collapses on its side."
deathsound = 'sound/magic/demon_dies.ogg'
stat_attack = HARD_CRIT
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm
index d95c21ec9bbb..074bda5cf91a 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm
@@ -33,7 +33,7 @@
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/rawcrab = 2, /obj/item/stack/sheet/bone = 2)
robust_searching = TRUE
footstep_type = FOOTSTEP_MOB_CLAW
- crusher_loot = /obj/item/crusher_trophy/lobster_claw
+ //mob_trophy = /obj/item/mob_trophy/lobster_claw
/mob/living/simple_animal/hostile/asteroid/lobstrosity/beach
name = "tropical lobstrosity"
@@ -42,15 +42,3 @@
icon_living = "lobstrosity"
icon_dead = "lobstrosity_dead"
-/obj/item/crusher_trophy/lobster_claw
- name = "lobster claw"
- icon_state = "lobster_claw"
- desc = "A lobster claw."
- denied_type = /obj/item/crusher_trophy/lobster_claw
- bonus_value = 1
-
-/obj/item/crusher_trophy/lobster_claw/effect_desc()
- return "mark detonation to briefly stagger the target for [bonus_value] seconds"
-
-/obj/item/crusher_trophy/lobster_claw/on_mark_detonation(mob/living/target, mob/living/user)
- target.apply_status_effect(/datum/status_effect/stagger, bonus_value SECONDS)
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm
index b66c71fd58b2..eaf546b3f627 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm
@@ -12,7 +12,7 @@
response_harm_simple = "strike"
status_flags = 0
a_intent = INTENT_HARM
- var/crusher_loot
+ var/mob_trophy
var/throw_message = "bounces off of"
var/throw_deflection = 20 //WS edit - Whitesands
var/fromtendril = FALSE
@@ -20,7 +20,7 @@
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
mob_size = MOB_SIZE_LARGE
var/icon_aggro = null
- var/crusher_drop_mod = 25
+ var/trophy_drop_mod = 25
var/datum/armor/armor //WS edit - Whitesands
/mob/living/simple_animal/hostile/asteroid/Initialize(mapload)
@@ -70,13 +70,12 @@
/mob/living/simple_animal/hostile/asteroid/death(gibbed)
SSblackbox.record_feedback("tally", "mobs_killed_mining", 1, type)
- var/datum/status_effect/crusher_damage/C = has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING)
- if(C && crusher_loot && prob((C.total_damage/maxHealth) * crusher_drop_mod)) //on average, you'll need to kill 4 creatures before getting the item
- spawn_crusher_loot()
+ if(prob(trophy_drop_mod)) //on average, you'll need to kill 4 creatures before getting the item
+ spawn_mob_trophy()
..(gibbed)
-/mob/living/simple_animal/hostile/asteroid/proc/spawn_crusher_loot()
- butcher_results[crusher_loot] = 1
+/mob/living/simple_animal/hostile/asteroid/proc/spawn_mob_trophy()
+ butcher_results[mob_trophy] = 1
/mob/living/simple_animal/hostile/asteroid/handle_temperature_damage()
if(bodytemperature < minbodytemp)
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm
index f9d15892f75d..2bcb3fe06f9a 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm
@@ -27,7 +27,7 @@
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/bear = 3, /obj/item/stack/sheet/bone = 2)
guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 1)
loot = list()
- crusher_loot = /obj/item/crusher_trophy/bear_paw
+ //mob_trophy = /obj/item/mob_trophy/bear_paw
stat_attack = HARD_CRIT
robust_searching = TRUE
footstep_type = FOOTSTEP_MOB_CLAW
@@ -57,24 +57,6 @@
desc = "It seems sentient somehow."
faction = list("neutral")
-/obj/item/crusher_trophy/bear_paw
- name = "polar bear paw"
- desc = "It's a polar bear paw."
- icon_state = "bear_paw"
- icon ='icons/obj/lavaland/elite_trophies.dmi'
- denied_type = /obj/item/crusher_trophy/bear_paw
-
-/obj/item/crusher_trophy/bear_paw/effect_desc()
- return "doubled strikes when below 50% health"
-
-/obj/item/crusher_trophy/bear_paw/on_mark_detonation(mob/living/target, mob/living/user)
- if(user.health / user.maxHealth > 0.5)
- return
- var/obj/item/I = user.get_active_held_item()
- if(!I)
- return
- I.melee_attack_chain(user, target, null)
-
//elite bear
/mob/living/simple_animal/hostile/asteroid/polarbear/warrior
name = "polar warbear"
@@ -91,29 +73,11 @@
icon_state = "warbear"
icon_living = "warbear"
icon_dead = "warbear_dead"
- crusher_loot = /obj/item/crusher_trophy/war_paw
- crusher_drop_mod = 75
+ //mob_trophy = /obj/item/mob_trophy/war_paw
+ trophy_drop_mod = 75
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/bear = 3, /obj/item/stack/sheet/bone = 2, /obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 3)
guaranteed_butcher_results = list(/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 3, /obj/item/bear_armor = 1)
-/obj/item/crusher_trophy/war_paw
- name = "Armored bear paw"
- desc = "It's a paw from a true warrior. Still remembers the basics of CQB."
- icon_state = "armor_paw"
- icon ='icons/obj/lavaland/elite_trophies.dmi'
- denied_type = /obj/item/crusher_trophy/war_paw
-
-/obj/item/crusher_trophy/war_paw/effect_desc()
- return "doubled strikes when below 70% health"
-
-/obj/item/crusher_trophy/war_paw/on_mark_detonation(mob/living/target, mob/living/user)
- if(user.health / user.maxHealth > 0.7)
- return
- var/obj/item/I = user.get_active_held_item()
- if(!I)
- return
- I.melee_attack_chain(user, target, null)
-
/mob/living/simple_animal/hostile/asteroid/polarbear/random/Initialize()
. = ..()
if(prob(15))
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm
index 7df8c04f0cf4..336616dfe110 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm
@@ -30,9 +30,9 @@
move_force = MOVE_FORCE_WEAK
move_resist = MOVE_FORCE_WEAK
pull_force = MOVE_FORCE_WEAK
- butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2, /obj/item/stack/sheet/sinew/wolf = 2, /obj/item/stack/sheet/bone = 2, /obj/item/crusher_trophy/wolf_ear = 0.5)
+ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2, /obj/item/stack/sheet/sinew/wolf = 2, /obj/item/stack/sheet/bone = 2, /obj/item/mob_trophy/wolf_ear = 0.5)
loot = list()
- crusher_loot = /obj/item/crusher_trophy/wolf_ear
+ mob_trophy = /obj/item/mob_trophy/wolf_ear
stat_attack = HARD_CRIT
knockdown_time = 1 SECONDS
robust_searching = TRUE
@@ -108,23 +108,10 @@
move_resist = MOVE_RESIST_DEFAULT
pull_force = PULL_FORCE_DEFAULT
if(prob(15))
- new /obj/item/crusher_trophy/wolf_ear(loc)
+ new /obj/item/mob_trophy/wolf_ear(loc)
visible_message("You notice a damaged ear that might be salvagable.")
..()
-/obj/item/crusher_trophy/wolf_ear
- name = "wolf ear"
- desc = "The battered remains of a wolf's ear. You could attach it to a crusher, or use the fur to craft a trophy."
- icon = 'icons/obj/lavaland/elite_trophies.dmi'
- icon_state = "torn_ear"
- denied_type = /obj/item/crusher_trophy/wolf_ear
-
-/obj/item/crusher_trophy/wolf_ear/effect_desc()
- return "waveform collapse to give the user a slight speed boost"
-
-/obj/item/crusher_trophy/wolf_ear/on_mark_detonation(mob/living/target, mob/living/user)
- user.apply_status_effect(/datum/status_effect/speed_boost, 3 SECONDS)
-
//alpha wolf- smaller chance to spawn, practically a miniboss. Has the ability to do a short, untelegraphed lunge with a stun. Be careful!
/mob/living/simple_animal/hostile/asteroid/wolf/alpha
name = "alpha wolf"
@@ -149,35 +136,12 @@
charge_frequency = 20 SECONDS
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2, /obj/item/stack/sheet/sinew/wolf = 4, /obj/item/stack/sheet/sinew/wolf = 4, /obj/item/stack/sheet/bone = 5)
loot = list()
- crusher_loot = /obj/item/crusher_trophy/fang
+ mob_trophy = /obj/item/mob_trophy/fang
/mob/living/simple_animal/hostile/asteroid/wolf/alpha/gib()
move_force = MOVE_FORCE_DEFAULT
move_resist = MOVE_RESIST_DEFAULT
pull_force = PULL_FORCE_DEFAULT
- if(prob(75))
- new /obj/item/crusher_trophy/fang(loc)
- visible_message("You find an intact fang that looks salvagable.")
- ..()
-
-/obj/item/crusher_trophy/fang
- name = "battle-stained fang"
- desc = "A wolf fang, displaying the wear and tear associated with a long and colorful life. Could be attached to a kinetic crusher or used to make a trophy."
- icon = 'icons/obj/lavaland/elite_trophies.dmi'
- icon_state = "fang"
- denied_type = /obj/item/crusher_trophy/fang
- var/bleed_stacks_per_hit = 5
-
-/obj/item/crusher_trophy/fang/effect_desc()
- return "waveform collapse to build up a small stack of bleeding, causing a burst of damage if applied repeatedly."
-
-/obj/item/crusher_trophy/fang/on_mark_detonation(mob/living/M, mob/living/user)
- if(istype(M) && (M.mob_biotypes & MOB_ORGANIC))
- var/datum/status_effect/stacking/saw_bleed/bloodletting/B = M.has_status_effect(/datum/status_effect/stacking/saw_bleed/bloodletting)
- if(!B)
- M.apply_status_effect(/datum/status_effect/stacking/saw_bleed/bloodletting, bleed_stacks_per_hit)
- else
- B.add_stacks(bleed_stacks_per_hit)
/mob/living/simple_animal/hostile/asteroid/wolf/random/Initialize()
. = ..()
diff --git a/shiptest.dme b/shiptest.dme
index 4226d6068494..b8df46bc4017 100644
--- a/shiptest.dme
+++ b/shiptest.dme
@@ -2421,6 +2421,7 @@
#include "code\modules\mining\equipment\regenerative_core.dm"
#include "code\modules\mining\equipment\resonator.dm"
#include "code\modules\mining\equipment\survival_pod.dm"
+#include "code\modules\mining\equipment\trophies.dm"
#include "code\modules\mining\equipment\wormhole_jaunter.dm"
#include "code\modules\mining\laborcamp\laborstacker.dm"
#include "code\modules\mining\lavaland\ash_flora.dm"
From 387fc592719030bda0263bc35d965dff300721d0 Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Tue, 4 Jun 2024 08:25:20 -0500
Subject: [PATCH 02/14] Automatic changelog generation for PR #3046 [ci skip]
---
html/changelogs/AutoChangeLog-pr-3046.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-3046.yml
diff --git a/html/changelogs/AutoChangeLog-pr-3046.yml b/html/changelogs/AutoChangeLog-pr-3046.yml
new file mode 100644
index 000000000000..2a6fdd6b1d5e
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3046.yml
@@ -0,0 +1,4 @@
+author: FalloutFalcon
+changes:
+ - {rscdel: Trophies can no longer be used in crushers}
+delete-after: true
From f1e8f62d7b984da7639bf57367b54b36f8db0ace Mon Sep 17 00:00:00 2001
From: Mark Suckerberg
Date: Tue, 4 Jun 2024 12:22:21 -0500
Subject: [PATCH 03/14] Update Dockerfile
Signed-off-by: Mark Suckerberg
---
Dockerfile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Dockerfile b/Dockerfile
index 4a8028dc7fca..0d759e966811 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -11,7 +11,7 @@ COPY dependencies.sh .
RUN dpkg --add-architecture i386 \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
- curl ca-certificates gcc-multilib \
+ curl ca-certificates gcc-multilib clang \
g++-multilib libc6-i386 zlib1g-dev:i386 \
libssl-dev:i386 pkg-config:i386 git \
&& /bin/bash -c "source dependencies.sh \
@@ -34,7 +34,7 @@ RUN git init \
&& git remote add origin \$AUXMOS_REPO \
&& git fetch --depth 1 origin \$AUXMOS_VERSION" \
&& git checkout FETCH_HEAD \
- && cargo rustc --target=i686-unknown-linux-gnu --release --features all_reaction_hooks,katmos -- -C target-cpu=native
+ && env PKG_CONFIG_ALLOW_CROSS=1 cargo build --release --target=i686-unknown-linux-gnu --features "all_reaction_hooks,katmos"
# Install nodejs which is required to deploy Shiptest
FROM base as node
From 09f295713525515dba7e91f95ec0fb5f8f1a9f05 Mon Sep 17 00:00:00 2001
From: Mark Suckerberg
Date: Tue, 4 Jun 2024 12:57:12 -0500
Subject: [PATCH 04/14] Update Dockerfile
Signed-off-by: Mark Suckerberg
---
Dockerfile | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/Dockerfile b/Dockerfile
index 0d759e966811..84ecb97a7e3e 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -11,9 +11,9 @@ COPY dependencies.sh .
RUN dpkg --add-architecture i386 \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
- curl ca-certificates gcc-multilib clang \
- g++-multilib libc6-i386 zlib1g-dev:i386 \
- libssl-dev:i386 pkg-config:i386 git \
+ curl ca-certificates gcc-multilib \
+ clang g++-multilib libc6-i386 \
+ zlib1g-dev:i386 pkg-config:i386 git \
&& /bin/bash -c "source dependencies.sh \
&& curl https://sh.rustup.rs | sh -s -- -y -t i686-unknown-linux-gnu --no-modify-path --profile minimal --default-toolchain \$RUST_VERSION" \
&& rm -rf /var/lib/apt/lists/*
From 07aafafbe91b19dbaee96dc75bdadcb3dfbc15f3 Mon Sep 17 00:00:00 2001
From: Mark Suckerberg
Date: Tue, 4 Jun 2024 13:08:26 -0500
Subject: [PATCH 05/14] Update Dockerfile
Signed-off-by: Mark Suckerberg
---
Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Dockerfile b/Dockerfile
index 84ecb97a7e3e..ffb19ede3e62 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -25,7 +25,7 @@ RUN git init \
&& /bin/bash -c "source dependencies.sh \
&& git fetch --depth 1 origin \$RUST_G_VERSION" \
&& git checkout FETCH_HEAD \
- && cargo build --release --all-features --target i686-unknown-linux-gnu
+ && cargo build --release --target i686-unknown-linux-gnu
# Build auxmos
FROM rust-build as auxmos
From e8bc9ab3540f064c0f815dcdb3aed80f53718107 Mon Sep 17 00:00:00 2001
From: Mark Suckerberg
Date: Tue, 4 Jun 2024 13:13:06 -0500
Subject: [PATCH 06/14] Update Dockerfile
Signed-off-by: Mark Suckerberg
---
Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Dockerfile b/Dockerfile
index ffb19ede3e62..6cefd0618365 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:1
-FROM beestation/byond:515.1616 as base
+FROM beestation/byond:515.1633 as base
# Install the tools needed to compile our rust dependencies
FROM base as rust-build
From f463852b23af40742171a0316a1730b3f612e29c Mon Sep 17 00:00:00 2001
From: Theos
Date: Tue, 4 Jun 2024 18:16:04 -0400
Subject: [PATCH 07/14] Broken bones now hurt less on rollerbeds (#3024)
## About The Pull Request
fixes #2968
splints would work for some stuff but they are both uncommon (only spawn
in like brute kits/need to be crafted) and don't work on the head or
chest. Also gives rollerbeds a niche
## Why It's Good For The Game
Life or random damage ticks for broken cat
it's a bit unintuitive that putting someone on a rollerbed won't make
them resistant/immune to bone jostling
## Changelog
:cl:
balance: Rollerbeds stop broken bone damage ticks from occurring while
buckled
/:cl:
---------
Signed-off-by: Theos
---
code/modules/surgery/bodyparts/bodyparts.dm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm
index 366fb41790ab..7cf31dc83ca6 100644
--- a/code/modules/surgery/bodyparts/bodyparts.dm
+++ b/code/modules/surgery/bodyparts/bodyparts.dm
@@ -745,8 +745,8 @@
bone_status = BONE_FLAG_NORMAL
/obj/item/bodypart/proc/on_mob_move()
- // Dont trigger if it isn't broken or if it has no owner
- if(bone_status != BONE_FLAG_BROKEN || !owner)
+ // Dont trigger if it isn't broken or if it has no owner or is buckled to a rollerbed
+ if(bone_status != BONE_FLAG_BROKEN || !owner || istype(owner?.buckled, /obj/structure/bed/roller))
return
if(prob(5))
From 57937c76f2468745625a6085012bb981b1256a60 Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Tue, 4 Jun 2024 17:27:05 -0500
Subject: [PATCH 08/14] Automatic changelog generation for PR #3024 [ci skip]
---
html/changelogs/AutoChangeLog-pr-3024.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-3024.yml
diff --git a/html/changelogs/AutoChangeLog-pr-3024.yml b/html/changelogs/AutoChangeLog-pr-3024.yml
new file mode 100644
index 000000000000..c416b89db883
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3024.yml
@@ -0,0 +1,4 @@
+author: SomeguyManperson
+changes:
+ - {balance: Rollerbeds stop broken bone damage ticks from occurring while buckled}
+delete-after: true
From 73b825e59ec02e0a9fe70d3840a624a64627b21c Mon Sep 17 00:00:00 2001
From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Date: Tue, 4 Jun 2024 18:45:03 -0500
Subject: [PATCH 09/14] i broke codeowner (#3068)
## About The Pull Request
fixes codeowner breaking i think
## Why It's Good For The Game
oopsie
## Changelog
:cl:
fix: fixed CODEOWNERS, i hope
/:cl:
---
.github/CODEOWNERS | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index d456e8d2ddd2..950887721316 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -24,9 +24,9 @@
/code/modules/food_and_drinks/drinks/drinks/breakawayflask.dm @FalloutFalcon
/code/modules/food_and_drinks/food/ration.dm @FalloutFalcon
/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @FalloutFalcon
-/code/modules/projectiles @FalloutFalcon
+/code/modules/projectiles/ @FalloutFalcon
/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @FalloutFalcon
-/code/modules/unit_tests/icons @FalloutFalcon
+/code/modules/unit_tests/icons/ @FalloutFalcon
# MarkSuckerberg
From 492c19a5499bff7b5946f3514c046202fbbd9e82 Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Tue, 4 Jun 2024 18:55:50 -0500
Subject: [PATCH 10/14] Automatic changelog generation for PR #3068 [ci skip]
---
html/changelogs/AutoChangeLog-pr-3068.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-3068.yml
diff --git a/html/changelogs/AutoChangeLog-pr-3068.yml b/html/changelogs/AutoChangeLog-pr-3068.yml
new file mode 100644
index 000000000000..d41ad7d4dd3d
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3068.yml
@@ -0,0 +1,4 @@
+author: FalloutFalcon
+changes:
+ - {bugfix: 'fixed CODEOWNERS, i hope'}
+delete-after: true
From 40a0a601e213995a1ea2e545fbcf7b59258e1ff9 Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Wed, 5 Jun 2024 00:52:48 +0000
Subject: [PATCH 11/14] Automatic changelog compile [ci skip]
---
html/changelogs/AutoChangeLog-pr-3024.yml | 4 ----
html/changelogs/AutoChangeLog-pr-3046.yml | 4 ----
html/changelogs/AutoChangeLog-pr-3065.yml | 4 ----
html/changelogs/AutoChangeLog-pr-3068.yml | 4 ----
html/changelogs/archive/2024-06.yml | 7 +++++++
5 files changed, 7 insertions(+), 16 deletions(-)
delete mode 100644 html/changelogs/AutoChangeLog-pr-3024.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-3046.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-3065.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-3068.yml
diff --git a/html/changelogs/AutoChangeLog-pr-3024.yml b/html/changelogs/AutoChangeLog-pr-3024.yml
deleted file mode 100644
index c416b89db883..000000000000
--- a/html/changelogs/AutoChangeLog-pr-3024.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: SomeguyManperson
-changes:
- - {balance: Rollerbeds stop broken bone damage ticks from occurring while buckled}
-delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3046.yml b/html/changelogs/AutoChangeLog-pr-3046.yml
deleted file mode 100644
index 2a6fdd6b1d5e..000000000000
--- a/html/changelogs/AutoChangeLog-pr-3046.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: FalloutFalcon
-changes:
- - {rscdel: Trophies can no longer be used in crushers}
-delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3065.yml b/html/changelogs/AutoChangeLog-pr-3065.yml
deleted file mode 100644
index 2ce48895bc29..000000000000
--- a/html/changelogs/AutoChangeLog-pr-3065.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: SomeguyManperson
-changes:
- - {bugfix: The shadow's gunslinger buff now properly provides an AP bonus}
-delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3068.yml b/html/changelogs/AutoChangeLog-pr-3068.yml
deleted file mode 100644
index d41ad7d4dd3d..000000000000
--- a/html/changelogs/AutoChangeLog-pr-3068.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: FalloutFalcon
-changes:
- - {bugfix: 'fixed CODEOWNERS, i hope'}
-delete-after: true
diff --git a/html/changelogs/archive/2024-06.yml b/html/changelogs/archive/2024-06.yml
index 090ed888b9b0..3ae595f3d879 100644
--- a/html/changelogs/archive/2024-06.yml
+++ b/html/changelogs/archive/2024-06.yml
@@ -108,3 +108,10 @@
rkz, Benjamin(benbot16), Rohesie, Qustinnus, jlsnow301:
- refactor: refactored do_afters to use timed_action_flags for unique args
- code_imp: centralized do_mob and do_atom into do_after
+2024-06-05:
+ FalloutFalcon:
+ - rscdel: Trophies can no longer be used in crushers
+ - bugfix: fixed CODEOWNERS, i hope
+ SomeguyManperson:
+ - bugfix: The shadow's gunslinger buff now properly provides an AP bonus
+ - balance: Rollerbeds stop broken bone damage ticks from occurring while buckled
From 7477965d82406235cf044ce25ab35e2486e516b7 Mon Sep 17 00:00:00 2001
From: Theos
Date: Wed, 5 Jun 2024 01:24:51 -0400
Subject: [PATCH 12/14] Revokes hermit immortality snail deals (#3069)
## About The Pull Request
Speedmerge please
## Why It's Good For The Game
Immortal hermits is bad i think, we dont even have snails so they wont
die
## Changelog
:cl:
fix: melee hermits have had their immortal snail deals revoked
/:cl:
Signed-off-by: Theos
---
.../modules/mob/living/simple_animal/hostile/human/survivors.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/mob/living/simple_animal/hostile/human/survivors.dm b/code/modules/mob/living/simple_animal/hostile/human/survivors.dm
index 3c4ba08ed16d..f7abea96b222 100644
--- a/code/modules/mob/living/simple_animal/hostile/human/survivors.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/survivors.dm
@@ -12,11 +12,11 @@
move_force = MOVE_FORCE_DEFAULT
move_resist = MOVE_RESIST_DEFAULT
pull_force = PULL_FORCE_DEFAULT
+ ..()
/*
if(prob(15))
new /obj/item/mob_trophy/shiny(loc)
visible_message("You notice a glimmering nugget of shiny metal.")
- ..()
*/
/mob/living/simple_animal/hostile/human/hermit/survivor
From 194b597aa438193923e1e2191276f295aa33a19f Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Wed, 5 Jun 2024 00:35:50 -0500
Subject: [PATCH 13/14] Automatic changelog generation for PR #3069 [ci skip]
---
html/changelogs/AutoChangeLog-pr-3069.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-3069.yml
diff --git a/html/changelogs/AutoChangeLog-pr-3069.yml b/html/changelogs/AutoChangeLog-pr-3069.yml
new file mode 100644
index 000000000000..3d75ef12010e
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3069.yml
@@ -0,0 +1,4 @@
+author: SomeguyManperson
+changes:
+ - {bugfix: melee hermits have had their immortal snail deals revoked}
+delete-after: true
From c8d2262b49319ff4d5398841010f1a88ecf40cad Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Thu, 6 Jun 2024 00:52:25 +0000
Subject: [PATCH 14/14] Automatic changelog compile [ci skip]
---
html/changelogs/AutoChangeLog-pr-3069.yml | 4 ----
html/changelogs/archive/2024-06.yml | 3 +++
2 files changed, 3 insertions(+), 4 deletions(-)
delete mode 100644 html/changelogs/AutoChangeLog-pr-3069.yml
diff --git a/html/changelogs/AutoChangeLog-pr-3069.yml b/html/changelogs/AutoChangeLog-pr-3069.yml
deleted file mode 100644
index 3d75ef12010e..000000000000
--- a/html/changelogs/AutoChangeLog-pr-3069.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: SomeguyManperson
-changes:
- - {bugfix: melee hermits have had their immortal snail deals revoked}
-delete-after: true
diff --git a/html/changelogs/archive/2024-06.yml b/html/changelogs/archive/2024-06.yml
index 3ae595f3d879..b6d113723f62 100644
--- a/html/changelogs/archive/2024-06.yml
+++ b/html/changelogs/archive/2024-06.yml
@@ -115,3 +115,6 @@
SomeguyManperson:
- bugfix: The shadow's gunslinger buff now properly provides an AP bonus
- balance: Rollerbeds stop broken bone damage ticks from occurring while buckled
+2024-06-06:
+ SomeguyManperson:
+ - bugfix: melee hermits have had their immortal snail deals revoked