mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 09:42:29 +00:00
THE CULTENNING - brings bloodcult to an acceptable state part 1 of my 3 part plan (#3025)
## About The Pull Request Upon being converted to cult while mind-shielded, a pop up option will come up with the option to be gibbed and turn into a shade, or to simply die/be husked while still dropping a soul shard that's offered to ghosts. ## Why It's Good For The Game The main complaint cult gets is that security/other mindshielded players get denied the ability to play as their character upon being sacrificed, you have now been granted free will as to what happens. ## Proof Of Testing  <details> <summary>Screenshots/Videos</summary> </details> ## Changelog 🆑 balance: cult no longer gibs mindshields /🆑 --------- Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
This commit is contained in:
@@ -33,3 +33,6 @@
|
|||||||
// makes the mob immune to crusher marks even if they are within the required mob size
|
// makes the mob immune to crusher marks even if they are within the required mob size
|
||||||
#define TRAIT_CRUSHER_MARK_IMMUNE "crusher_mark_immune"
|
#define TRAIT_CRUSHER_MARK_IMMUNE "crusher_mark_immune"
|
||||||
|
|
||||||
|
// makes it so cult cannot get another blood stone from this mob
|
||||||
|
#define TRAIT_HAS_BEEN_CULT_SACRIFICED "has_been_cult_sacrificed"
|
||||||
|
|
||||||
|
|||||||
@@ -281,6 +281,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
|
|||||||
"TRAIT_HALT_RADIATION_EFFECTS" = TRAIT_HALT_RADIATION_EFFECTS,
|
"TRAIT_HALT_RADIATION_EFFECTS" = TRAIT_HALT_RADIATION_EFFECTS,
|
||||||
"TRAIT_HANDS_BLOCKED" = TRAIT_HANDS_BLOCKED,
|
"TRAIT_HANDS_BLOCKED" = TRAIT_HANDS_BLOCKED,
|
||||||
"TRAIT_HARDLY_WOUNDED" = TRAIT_HARDLY_WOUNDED,
|
"TRAIT_HARDLY_WOUNDED" = TRAIT_HARDLY_WOUNDED,
|
||||||
|
"TRAIT_HAS_BEEN_CULT_SACRIFICED" = TRAIT_HAS_BEEN_CULT_SACRIFICED, //Bubber edit
|
||||||
"TRAIT_HAS_BEEN_KIDNAPPED" = TRAIT_HAS_BEEN_KIDNAPPED,
|
"TRAIT_HAS_BEEN_KIDNAPPED" = TRAIT_HAS_BEEN_KIDNAPPED,
|
||||||
"TRAIT_HAS_CRANIAL_FISSURE" = TRAIT_HAS_CRANIAL_FISSURE,
|
"TRAIT_HAS_CRANIAL_FISSURE" = TRAIT_HAS_CRANIAL_FISSURE,
|
||||||
"TRAIT_HATED_BY_DOGS" = TRAIT_HATED_BY_DOGS,
|
"TRAIT_HATED_BY_DOGS" = TRAIT_HATED_BY_DOGS,
|
||||||
|
|||||||
@@ -128,6 +128,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
|
|||||||
"TRAIT_GUN_NATURAL" = TRAIT_GUN_NATURAL,
|
"TRAIT_GUN_NATURAL" = TRAIT_GUN_NATURAL,
|
||||||
"TRAIT_HANDS_BLOCKED" = TRAIT_HANDS_BLOCKED,
|
"TRAIT_HANDS_BLOCKED" = TRAIT_HANDS_BLOCKED,
|
||||||
"TRAIT_HARDLY_WOUNDED" = TRAIT_HARDLY_WOUNDED,
|
"TRAIT_HARDLY_WOUNDED" = TRAIT_HARDLY_WOUNDED,
|
||||||
|
"TRAIT_HAS_BEEN_CULT_SACRIFICED" = TRAIT_HAS_BEEN_CULT_SACRIFICED, //Bubber edit
|
||||||
"TRAIT_HATED_BY_DOGS" = TRAIT_HATED_BY_DOGS,
|
"TRAIT_HATED_BY_DOGS" = TRAIT_HATED_BY_DOGS,
|
||||||
"TRAIT_HEAVY_DRINKER" = TRAIT_HEAVY_DRINKER,
|
"TRAIT_HEAVY_DRINKER" = TRAIT_HEAVY_DRINKER,
|
||||||
"TRAIT_HEAVY_SLEEPER" = TRAIT_HEAVY_SLEEPER,
|
"TRAIT_HEAVY_SLEEPER" = TRAIT_HEAVY_SLEEPER,
|
||||||
|
|||||||
@@ -390,12 +390,35 @@ structure_check() searches for nearby cultist structures required for the invoca
|
|||||||
sacrificial.investigate_log("has been sacrificially dusted by the cult.", INVESTIGATE_DEATHS)
|
sacrificial.investigate_log("has been sacrificially dusted by the cult.", INVESTIGATE_DEATHS)
|
||||||
sacrificial.dust(TRUE, FALSE, TRUE)
|
sacrificial.dust(TRUE, FALSE, TRUE)
|
||||||
else if (sacrificial)
|
else if (sacrificial)
|
||||||
var/obj/item/soulstone/stone = new(loc)
|
//BUBBER EDIT BEGIN: removes force gib from cult
|
||||||
if(sacrificial.mind && !HAS_TRAIT(sacrificial, TRAIT_SUICIDED))
|
if(!HAS_TRAIT(sacrificial, TRAIT_HAS_BEEN_CULT_SACRIFICED))
|
||||||
stone.capture_soul(sacrificial, invokers[1], forced = TRUE)
|
ADD_TRAIT(sacrificial, TRAIT_HAS_BEEN_CULT_SACRIFICED, MAGIC_TRAIT)
|
||||||
playsound(sacrificial, 'sound/effects/magic/disintegrate.ogg', 100, TRUE)
|
var/obj/item/soulstone/stone = new(loc)
|
||||||
sacrificial.investigate_log("has been sacrificially gibbed by the cult.", INVESTIGATE_DEATHS)
|
|
||||||
sacrificial.gib(DROP_ALL_REMAINS)
|
var/shard_choice = tgui_alert(
|
||||||
|
user = sacrificial,
|
||||||
|
message = "Do you wish to become a soul shard for the cult, selecting yes will gib you and you will play as a soul shard, selecting no will husk you and your body will stay intact.",
|
||||||
|
title = "Choose your fate",
|
||||||
|
buttons = list("Decline", "Accept"),
|
||||||
|
timeout = 10 SECONDS,
|
||||||
|
autofocus = TRUE
|
||||||
|
)
|
||||||
|
if(shard_choice == "Accept")
|
||||||
|
if(sacrificial.mind && !HAS_TRAIT(sacrificial, TRAIT_SUICIDED))
|
||||||
|
stone.capture_soul(sacrificial, invokers[1], forced = TRUE)
|
||||||
|
playsound(sacrificial, 'sound/effects/magic/disintegrate.ogg', 100, TRUE)
|
||||||
|
sacrificial.investigate_log("has been sacrificially gibbed by the cult.", INVESTIGATE_DEATHS)
|
||||||
|
sacrificial.gib(DROP_ALL_REMAINS)
|
||||||
|
else
|
||||||
|
sacrificial.death(FALSE)
|
||||||
|
sacrificial.become_husk(BURN)
|
||||||
|
sacrificial.investigate_log("has been sacrificially husked by the cult.", INVESTIGATE_DEATHS)
|
||||||
|
stone.capture_ghost(sacrificial, invokers[1])
|
||||||
|
else
|
||||||
|
sacrificial.death(FALSE)
|
||||||
|
sacrificial.become_husk(BURN)
|
||||||
|
sacrificial.investigate_log("has been sacrificially husked by the cult.", INVESTIGATE_DEATHS)
|
||||||
|
//BUBBER EDIT END
|
||||||
|
|
||||||
try_spawn_sword() // after sharding and gibbing, which potentially dropped a null rod
|
try_spawn_sword() // after sharding and gibbing, which potentially dropped a null rod
|
||||||
|
|
||||||
|
|||||||
13
modular_zubbers/code/modules/antagonists/wizard/soulstone.dm
Normal file
13
modular_zubbers/code/modules/antagonists/wizard/soulstone.dm
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
/obj/item/soulstone/proc/capture_ghost(mob/living/carbon/victim, user)
|
||||||
|
var/mob/chosen_one = SSpolling.poll_ghosts_for_target(
|
||||||
|
check_jobban = ROLE_CULTIST,
|
||||||
|
poll_time = 20 SECONDS,
|
||||||
|
checked_target = src,
|
||||||
|
ignore_category = POLL_IGNORE_SHADE,
|
||||||
|
alert_pic = /mob/living/basic/shade,
|
||||||
|
jump_target = src,
|
||||||
|
role_name_text = "a shade",
|
||||||
|
chat_text_border_icon = /mob/living/basic/shade,
|
||||||
|
)
|
||||||
|
on_poll_concluded(user, victim, chosen_one)
|
||||||
|
return TRUE //it'll probably get someone ;)
|
||||||
@@ -8927,6 +8927,7 @@
|
|||||||
#include "modular_zubbers\code\modules\antagonists\wizard\events_removal.dm"
|
#include "modular_zubbers\code\modules\antagonists\wizard\events_removal.dm"
|
||||||
#include "modular_zubbers\code\modules\antagonists\wizard\events_rework.dm"
|
#include "modular_zubbers\code\modules\antagonists\wizard\events_rework.dm"
|
||||||
#include "modular_zubbers\code\modules\antagonists\wizard\grand_finale_removal.dm"
|
#include "modular_zubbers\code\modules\antagonists\wizard\grand_finale_removal.dm"
|
||||||
|
#include "modular_zubbers\code\modules\antagonists\wizard\soulstone.dm"
|
||||||
#include "modular_zubbers\code\modules\arcades\assets\arcade.dm"
|
#include "modular_zubbers\code\modules\arcades\assets\arcade.dm"
|
||||||
#include "modular_zubbers\code\modules\arcades\code\loot\arcade_weights_classic.dm"
|
#include "modular_zubbers\code\modules\arcades\code\loot\arcade_weights_classic.dm"
|
||||||
#include "modular_zubbers\code\modules\arcades\code\loot\arcade_weights_mechanical.dm"
|
#include "modular_zubbers\code\modules\arcades\code\loot\arcade_weights_mechanical.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user