mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-09 07:08:03 +01:00
Disassemble finished and unfinished Golem shells with a crowbar (Not Golem species) (#95167)
## About The Pull Request Lets players disassemble unfinished Golem shells in `lavaland_ruin_code` and finished Golem shells in `golem_roles` by using a crowbar on them. Both dropping a single adamantine on successful deconstruction, with the finished shell dropping half of whatever was originally used to create it. ## Why It's Good For The Game If a Xenobiologist is able to set up a golem factory. (Chemistry IV drip into industrial adamantine + 1u plasma dropper on metal extract) players have no way to counter this as non living Golems are immune to damage. This gives players counterplay, letting them disassemble Golem shells if they can reach the factory, and scare off the creator. ## Changelog 🆑 DaddyChristmas balance: Golem shells can now be deconstructed with a crowbar (Not Golem the species!) /🆑 --------- Co-authored-by: Jacquerel <hnevard@gmail.com>
This commit is contained in:
@@ -18,6 +18,12 @@
|
||||
/// Typepath to a material to feed to the golem as soon as it is built
|
||||
var/initial_type
|
||||
|
||||
//Deconstruction var's
|
||||
var/list/obj/item/stack/drop_on_deconstruct
|
||||
//Time it takes to deconstruct a completed shell. Note : You can dissssemble multiple at once
|
||||
var/deconstruct_time = 4 SECONDS
|
||||
|
||||
|
||||
/obj/effect/mob_spawn/ghost_role/human/golem/Initialize(mapload, mob/living/creator, made_of)
|
||||
initial_type = made_of
|
||||
. = ..()
|
||||
@@ -106,3 +112,27 @@
|
||||
if(owner_ref?.resolve())
|
||||
forced_name = "Golem ([rand(1,999)])"
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/effect/mob_spawn/ghost_role/human/golem/crowbar_act(mob/living/user, obj/item/tool)
|
||||
|
||||
if(DOING_INTERACTION_WITH_TARGET(user, src))
|
||||
return ITEM_INTERACT_SUCCESS
|
||||
|
||||
if(user.combat_mode)
|
||||
return
|
||||
to_chat(user, span_notice("You begin prying load-bearing chunks from the completed shell."))
|
||||
playsound(user, 'sound/items/tools/crowbar.ogg', 70)
|
||||
|
||||
if(do_after(user, delay = deconstruct_time, target = src))
|
||||
new /obj/item/stack/sheet/mineral/adamantine(get_turf(src))
|
||||
if(initial_type)
|
||||
new initial_type(get_turf(src), 5)
|
||||
else
|
||||
new /obj/item/stack/sheet/iron/five(get_turf(src))
|
||||
|
||||
to_chat(user, span_notice("The Golem crumbles in on itself!"))
|
||||
playsound(src, 'sound/effects/rock/rock_break.ogg', 60)
|
||||
qdel(src)
|
||||
|
||||
return ITEM_INTERACT_SUCCESS
|
||||
|
||||
Reference in New Issue
Block a user