Tendril loot changes: Demonic portals drop locked chests instead of just flat out the item, removes some items from some lists, punching mitts is a vendor item. Concussive gauntlets grant hunter boxing. (#93127)

This commit is contained in:
necromanceranne
2025-09-29 08:12:33 +02:00
committed by GitHub
parent ff48226b33
commit f843f61b9f
8 changed files with 99 additions and 118 deletions
@@ -34,6 +34,10 @@
purchase_path = /obj/item/kinetic_crusher
cost_per_order = 650
/datum/orderable_item/mining/punching_mitts
purchase_path = /obj/item/clothing/gloves/fingerless/punch_mitts
cost_per_order = 1000
/datum/orderable_item/mining/crusher_retool_kit
purchase_path = /obj/item/crusher_trophy/retool_kit
cost_per_order = 150
@@ -0,0 +1,66 @@
/// For spawning loot from necropolis chests or other sources, this randomly chooses one of the following entries to spawn.
/obj/effect/spawner/random/mining_loot
name = "random mining loot"
desc = "Spawns one random mining loot."
icon = 'icons/obj/storage/crates.dmi'
icon_state = "necrocrate"
loot = list(
/obj/item/shared_storage/red = 1,
/obj/item/soulstone/anybody/mining = 1,
/obj/item/clothing/glasses/godeye = 1,
/obj/item/reagent_containers/cup/bottle/potion/flight = 1,
/obj/item/clothing/gloves/gauntlets = 1,
/obj/effect/spawner/random/mining_loot/pka_mod = 1,
/obj/item/rod_of_asclepius = 1,
/obj/item/organ/heart/cursed/wizard = 1,
/obj/item/ship_in_a_bottle = 1,
/obj/item/clothing/suit/hooded/berserker = 1,
/obj/item/jacobs_ladder = 1,
/obj/item/guardian_creator/miner = 1,
/obj/item/warp_cube/red = 1,
/obj/item/wisp_lantern = 1,
/obj/item/immortality_talisman = 1,
/obj/item/book/granter/action/spell/summonitem = 1,
/obj/item/book_of_babel = 1,
/obj/item/clothing/neck/necklace/memento_mori = 1,
)
/obj/effect/spawner/random/mining_loot/demonic
name = "random demonic mining loot"
desc = "Spawns one random mining loot from the demonic list."
icon = 'icons/obj/storage/crates.dmi'
icon_state = "necrocrate"
loot = list(
/obj/item/shared_storage/red = 1,
/obj/item/clothing/neck/cloak/wolf_coat = 1,
/obj/item/soulstone/anybody/mining = 1,
/obj/item/clothing/glasses/godeye = 1,
/obj/item/reagent_containers/cup/bottle/potion/flight = 1,
/obj/item/clothing/gloves/gauntlets = 1,
/obj/effect/spawner/random/mining_loot/pka_mod = 1,
/obj/item/rod_of_asclepius = 1,
/obj/item/organ/heart/cursed/wizard = 1,
/obj/item/jacobs_ladder = 1,
/obj/item/guardian_creator/miner = 1,
/obj/item/weldingtool/abductor = 1,
/obj/item/warp_cube/red = 1,
/obj/item/immortality_talisman = 1,
/obj/item/book/granter/action/spell/summonitem = 1,
/obj/item/clothing/neck/necklace/memento_mori = 1,
/obj/item/book/granter/action/spell/sacredflame = 1,
)
/// For spawning a rare PKA modkit
/obj/effect/spawner/random/mining_loot/pka_mod
name = "random rare PKA modkits"
desc = "Spawns one random rare PKA modkits."
icon = 'icons/obj/mining.dmi'
icon_state = "modkit"
loot = list(
/obj/item/borg/upgrade/modkit/aoe/mobs/andturfs = 1,
/obj/item/borg/upgrade/modkit/cooldown/repeater = 1,
/obj/item/borg/upgrade/modkit/resonator_blasts = 1,
/obj/item/borg/upgrade/modkit/bounty = 1,
/obj/item/borg/upgrade/modkit/lifesteal = 1,
)
@@ -141,62 +141,11 @@ GLOBAL_LIST_INIT(ore_probability, list(
*/
/obj/effect/collapsing_demonic_portal/proc/drop_loot()
visible_message(span_warning("Something slips out of [src]!"))
var/loot = rand(1, 27)
var/loot = rand(1, 100)
switch(loot)
if(1)
new /obj/item/clothing/neck/cloak/wolf_coat(loc)
if(2)
new /obj/item/clothing/glasses/godeye(loc)
if(3)
new /obj/item/reagent_containers/cup/bottle/potion/flight(loc)
if(4)
new /obj/item/organ/heart/cursed/wizard(loc)
if(5)
new /obj/item/jacobs_ladder(loc)
if(6)
new /obj/item/rod_of_asclepius(loc)
if(7)
new /obj/item/warp_cube/red(loc)
if(8)
new /obj/item/wisp_lantern(loc)
if(9)
new /obj/item/immortality_talisman(loc)
if(10)
new /obj/item/book/granter/action/spell/summonitem(loc)
if(11)
new /obj/item/clothing/neck/necklace/memento_mori(loc)
if(12)
new /obj/item/borg/upgrade/modkit/lifesteal(loc)
new /obj/item/bedsheet/cult(loc)
if(13)
new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(loc)
if(14)
new /obj/item/disk/design_disk/modkit_disc/bounty(loc)
if(15)
new /obj/item/ship_in_a_bottle(loc)
new /obj/item/oar(loc)
if(16)
if(1 to 80)
new /obj/structure/closet/crate/necropolis/tendril/demonic(loc)
if(81 to 90)
new /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/doom(loc)
if(17)
new /obj/item/clothing/gloves/fingerless/punch_mitts(loc)
new /obj/item/clothing/head/cowboy(loc)
if(18)
new /obj/item/soulstone/anybody(loc)
if(19)
new /obj/item/disk/design_disk/modkit_disc/resonator_blast(loc)
if(20)
new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(loc)
if(21)
new /obj/item/slimepotion/transference(loc)
if(22)
new /obj/item/slime_extract/adamantine(loc)
if(23)
new /obj/item/weldingtool/abductor(loc)
if(24)
if(91 to INFINITY)
new /obj/structure/elite_tumor(loc)
if(25)
new /mob/living/basic/clown/clownhulk(loc)
if(26)
new /obj/item/clothing/shoes/winterboots/ice_boots(loc)
if(27)
new /obj/item/book/granter/action/spell/sacredflame(loc)
+1 -3
View File
@@ -1,9 +1,7 @@
/obj/item/clothing/gloves/fingerless/punch_mitts
name = "punching mitts"
desc = "Fingerless gloves with nasty spikes attached. Allows the wearer to utilize the ill-reputed fighting technique known as Hunter Boxing. The style \
allows the user to punch wildlife rapidly to death. Supposedly, this is an incredible workout, but few people are insane enough to attempt to \
punch every dangerous creature they encounter in the wild to death with their bare hands. Also kinda works against humanoids as well. \
Not that you would... right?"
allows the user to rapidly punch wildlife and rock into smithereens. Great workout. Extremely ill-advised for ensuring your own personal survival."
icon_state = "punch_mitts"
body_parts_covered = HANDS|ARMS
resistance_flags = LAVA_PROOF | FIRE_PROOF
@@ -114,6 +114,10 @@
fire = 100
acid = 30
/obj/item/clothing/gloves/gauntlets/Initialize(mapload)
. = ..()
AddComponent(/datum/component/martial_art_giver, /datum/martial_art/boxing/hunter)
/obj/item/clothing/gloves/gauntlets/equipped(mob/user, slot)
. = ..()
if(!(slot & ITEM_SLOT_GLOVES))
@@ -15,69 +15,14 @@
integrity_failure = 0 //prevents bust_open from firing
/// var to check if it got opened by a key
var/spawned_loot = FALSE
/// What random loot spawner our chest uses
var/loot_to_spawn = /obj/effect/spawner/random/mining_loot
/obj/structure/closet/crate/necropolis/tendril/attackby(obj/item/item, mob/user, list/modifiers, list/attack_modifiers)
if(!istype(item, /obj/item/skeleton_key) || spawned_loot)
return ..()
var/loot = rand(1,21)
var/mod
switch(loot)
if(1)
new /obj/item/shared_storage/red(src)
if(2)
new /obj/item/soulstone/anybody/mining(src)
if(3)
new /obj/item/organ/cyberimp/arm/toolkit/shard/katana(src)
if(4)
new /obj/item/clothing/glasses/godeye(src)
if(5)
new /obj/item/reagent_containers/cup/bottle/potion/flight(src)
if(6)
new /obj/item/clothing/gloves/gauntlets(src)
if(7)
mod = rand(1,4)
switch(mod)
if(1)
new /obj/item/disk/design_disk/modkit_disc/resonator_blast(src)
if(2)
new /obj/item/disk/design_disk/modkit_disc/rapid_repeater(src)
if(3)
new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(src)
if(4)
new /obj/item/disk/design_disk/modkit_disc/bounty(src)
if(8)
new /obj/item/rod_of_asclepius(src)
if(9)
new /obj/item/organ/heart/cursed/wizard(src)
if(10)
new /obj/item/ship_in_a_bottle(src)
if(11)
new /obj/item/clothing/suit/hooded/berserker(src)
if(12)
new /obj/item/jacobs_ladder(src)
if(13)
new /obj/item/guardian_creator/miner(src)
if(14)
new /obj/item/warp_cube/red(src)
if(15)
new /obj/item/wisp_lantern(src)
if(16)
new /obj/item/immortality_talisman(src)
if(17)
new /obj/item/book/granter/action/spell/summonitem(src)
if(18)
new /obj/item/book_of_babel(src)
if(19)
new /obj/item/borg/upgrade/modkit/lifesteal(src)
new /obj/item/bedsheet/cult(src)
if(20)
new /obj/item/clothing/neck/necklace/memento_mori(src)
if(21)
new /obj/item/clothing/gloves/fingerless/punch_mitts(src)
new /obj/item/clothing/head/cowboy(src)
if(!contents.len)
to_chat(user, span_warning("[src] makes a clunking sound as you try to open it. You feel compelled to let the gods know! (Please open an adminhelp and try again!)"))
CRASH("Failed to generate loot. loot number: [loot][mod ? "subloot: [mod]" : null]")
new loot_to_spawn(src)
spawned_loot = TRUE
qdel(item)
to_chat(user, span_notice("You disable the magic lock, revealing the loot."))
@@ -95,6 +40,10 @@
//Megafauna chests
/obj/structure/closet/crate/necropolis/tendril/demonic
name = "demonic chest"
loot_to_spawn = /obj/effect/spawner/random/mining_loot/demonic
/obj/structure/closet/crate/necropolis/dragon
name = "dragon chest"
+10
View File
@@ -98,3 +98,13 @@
set_items = list(
/obj/item/storage/backpack/duffelbag/mining_conscript,
)
/datum/voucher_set/mining/punching_mitts
name = "Punching Mitts"
description = "Contains a pair of punching mitts for turning the local wilderness into the local gravel pit with your BARE HANDS."
icon = 'icons/obj/clothing/gloves.dmi'
icon_state = "punch_mitts"
set_items = list(
/obj/item/clothing/gloves/fingerless/punch_mitts,
/obj/item/clothing/head/cowboy,
)
+1
View File
@@ -2442,6 +2442,7 @@
#include "code\game\objects\effects\spawners\random\lavaland_mobs.dm"
#include "code\game\objects\effects\spawners\random\maintenance.dm"
#include "code\game\objects\effects\spawners\random\medical.dm"
#include "code\game\objects\effects\spawners\random\mining_loot.dm"
#include "code\game\objects\effects\spawners\random\mod.dm"
#include "code\game\objects\effects\spawners\random\random.dm"
#include "code\game\objects\effects\spawners\random\russian_rifle_spawner.dm"