mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-16 17:43:35 +01:00
Datumizes Cult. (#24379)
* cult 1 * massive data refactor * progress * More crap * IM SCARED IT COMPILES * oops * more fixes * good comment * hell yeah, team control * lol * blamo * blam * More stuff * team refactor * epic merge fail * src not _src_ * more * progress * cult * more stuff * water * goodbye __IMPLIED_TYPE__ * time to undraft * FUCK FUCK FUCK * okay this is better * goodbye todos * fix * order of operations * last fix? maybe * yeah * oops * okay this should be ALL the fixes * wow * hell yeah * wow * fixes duplicate teams + adds more team safeties * how the fuck did this happen * admin objective improvements * wah more bullshit * guh * fuuuuck * fucking hell * fixes
This commit is contained in:
@@ -111,7 +111,6 @@
|
||||
if(SSticker && SSticker.mode)
|
||||
other_antags += list(
|
||||
"Blob" = (mind.special_role == SPECIAL_ROLE_BLOB),
|
||||
"Cultist" = (mind in SSticker.mode.cult),
|
||||
"Wizard" = (mind in SSticker.mode.wizards),
|
||||
"Wizard's Apprentice" = (mind in SSticker.mode.apprentices),
|
||||
"Nuclear Operative" = (mind in SSticker.mode.syndicates),
|
||||
|
||||
@@ -31,10 +31,10 @@
|
||||
return "<span class='warning'>[p_they(TRUE)] [p_have()] [hand_blood_color != "#030303" ? "blood-stained":"oil-stained"] hands!</span>\n"
|
||||
if("eyes")
|
||||
if(HAS_TRAIT(src, SCRYING))
|
||||
if(iscultist(src) && HAS_TRAIT(src, CULT_EYES))
|
||||
if(IS_CULTIST(src) && HAS_TRAIT(src, CULT_EYES))
|
||||
return "<span class='boldwarning'>[p_their(TRUE)] glowing red eyes are glazed over!</span>\n"
|
||||
return "<span class='boldwarning'>[p_their(TRUE)] eyes are glazed over.</span>\n"
|
||||
if(iscultist(src) && HAS_TRAIT(src, CULT_EYES))
|
||||
if(IS_CULTIST(src) && HAS_TRAIT(src, CULT_EYES))
|
||||
return "<span class='boldwarning'>[p_their(TRUE)] eyes are glowing an unnatural red!</span>\n"
|
||||
|
||||
return msg
|
||||
|
||||
@@ -1676,7 +1676,7 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
|
||||
rad_act(current_size * 3)
|
||||
|
||||
/mob/living/carbon/human/narsie_act()
|
||||
if(iswizard(src) && iscultist(src)) //Wizard cultists are immune to narsie because it would prematurely end the wiz round that's about to end by the automated shuttle call anyway
|
||||
if(iswizard(src) && IS_CULTIST(src)) //Wizard cultists are immune to narsie because it would prematurely end the wiz round that's about to end by the automated shuttle call anyway
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
@@ -1343,7 +1343,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
|
||||
/mob/living/carbon/human/proc/update_halo_layer()
|
||||
remove_overlay(HALO_LAYER)
|
||||
|
||||
if(iscultist(src) && SSticker.mode.cult_ascendant)
|
||||
if(IS_CULTIST(src) && SSticker.mode.cult_team.cult_ascendant)
|
||||
var/istate = pick("halo1", "halo2", "halo3", "halo4", "halo5", "halo6")
|
||||
var/mutable_appearance/new_halo_overlay = mutable_appearance('icons/effects/32x64.dmi', istate, -HALO_LAYER)
|
||||
overlays_standing[HALO_LAYER] = new_halo_overlay
|
||||
|
||||
@@ -482,11 +482,6 @@
|
||||
C.reagents.clear_reagents()
|
||||
QDEL_LIST_CONTENTS(C.reagents.addiction_list)
|
||||
C.reagents.addiction_threshold_accumulated.Cut()
|
||||
if(iscultist(src))
|
||||
if(SSticker.mode.cult_risen)
|
||||
SSticker.mode.rise(src)
|
||||
if(SSticker.mode.cult_ascendant)
|
||||
SSticker.mode.ascend(src)
|
||||
|
||||
QDEL_LIST_CONTENTS(C.processing_patches)
|
||||
|
||||
|
||||
@@ -39,8 +39,6 @@ GLOBAL_DATUM_INIT(paiController, /datum/paiController, new) // Global handler fo
|
||||
card.setPersonality(pai)
|
||||
card.looking_for_personality = 0
|
||||
|
||||
SSticker.mode.update_cult_icons_removed(card.pai.mind)
|
||||
|
||||
pai_candidates -= candidate
|
||||
usr << browse(null, "window=findPai")
|
||||
return
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
SetSleeping(0)
|
||||
if(mind && SSticker && SSticker.mode)
|
||||
SSticker.mode.remove_revolutionary(mind, 1)
|
||||
SSticker.mode.remove_cultist(mind, 1)
|
||||
mind.remove_antag_datum(/datum/antagonist/cultist)
|
||||
SSticker.mode.remove_wizard(mind)
|
||||
mind.remove_antag_datum(/datum/antagonist/changeling)
|
||||
mind.remove_antag_datum(/datum/antagonist/vampire)
|
||||
|
||||
@@ -36,30 +36,26 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/construct/Initialize(mapload)
|
||||
. = ..()
|
||||
if(!SSticker.mode)//work around for maps with runes and cultdat is not loaded all the way
|
||||
name = "[construct_type] ([rand(1, 1000)])"
|
||||
real_name = construct_type
|
||||
icon_living = construct_type
|
||||
icon_state = construct_type
|
||||
else
|
||||
name = "[SSticker.cultdat.get_name(construct_type)] ([rand(1, 1000)])"
|
||||
real_name = SSticker.cultdat.get_name(construct_type)
|
||||
icon_living = SSticker.cultdat.get_icon(construct_type)
|
||||
icon_state = SSticker.cultdat.get_icon(construct_type)
|
||||
name = "[GET_CULT_DATA(get_name(construct_type), construct_type)] ([rand(1, 1000)])"
|
||||
real_name = GET_CULT_DATA(get_name(construct_type), construct_type)
|
||||
icon_living = GET_CULT_DATA(get_icon(construct_type), construct_type)
|
||||
icon_state = GET_CULT_DATA(get_icon(construct_type), construct_type)
|
||||
|
||||
for(var/spell in construct_spells)
|
||||
AddSpell(new spell(null))
|
||||
|
||||
set_light(2, 3, l_color = SSticker.cultdat ? SSticker.cultdat.construct_glow : LIGHT_COLOR_BLOOD_MAGIC)
|
||||
set_light(2, 3, l_color = GET_CULT_DATA(construct_glow, LIGHT_COLOR_BLOOD_MAGIC))
|
||||
|
||||
/mob/living/simple_animal/hostile/construct/Destroy()
|
||||
mind?.remove_antag_datum(/datum/antagonist/cultist, silent_removal = TRUE)
|
||||
remove_held_body()
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/construct/death(gibbed)
|
||||
mind?.remove_antag_datum(/datum/antagonist/cultist, silent_removal = TRUE)
|
||||
if(held_body) // Null check for empty bodies
|
||||
held_body.forceMove(get_turf(src))
|
||||
SSticker.mode.add_cult_immunity(held_body)
|
||||
SSticker.mode?.cult_team?.add_cult_immunity(held_body)
|
||||
if(ismob(held_body)) // Check if the held_body is a mob
|
||||
held_body.key = key
|
||||
else if(istype(held_body, /obj/item/organ/internal/brain)) // Check if the held_body is a brain
|
||||
@@ -72,10 +68,6 @@
|
||||
playsound(src, 'sound/effects/pylon_shatter.ogg', 40, TRUE)
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/construct/Destroy()
|
||||
SSticker.mode.remove_cultist(show_message = FALSE, target_mob = src)
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/construct/proc/add_held_body(atom/movable/body)
|
||||
held_body = body
|
||||
RegisterSignal(body, COMSIG_PARENT_QDELETING, PROC_REF(remove_held_body))
|
||||
|
||||
@@ -373,7 +373,7 @@ Difficulty: Hard
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/hit_up_narsi()
|
||||
SetRecoveryTime(20)
|
||||
visible_message("<span class='colossus'><b>[pick("[SSticker.cultdat.entity_name], I call on YOU for one of MY favours you owe me!", "[SSticker.cultdat.entity_title1], I call on you for some support...", "Let us see how you like the minions of [SSticker.cultdat.entity_title2]!", "Oh, [SSticker.cultdat.entity_title3] join me in RENDING THIS WHELP APART!")]</b></span>")
|
||||
visible_message("<span class='colossus'><b>[pick("[GET_CULT_DATA(entity_name, "Nar'sie")], I call on YOU for one of MY favours you owe me!", "[GET_CULT_DATA(entity_title1, "Nar'sie")], I call on you for some support...", "Let us see how you like the minions of [GET_CULT_DATA(entity_title2, "Nar'sie")]!", "Oh, [GET_CULT_DATA(entity_title3, "Nar'sie")] join me in RENDING THIS WHELP APART!")]</b></span>")
|
||||
var/list/turfs = list()
|
||||
var/constructs = 0
|
||||
for(var/turf/T in view(6, target))
|
||||
|
||||
@@ -284,7 +284,7 @@
|
||||
continue
|
||||
if(T.z != usr.z) //No crossing zlvls
|
||||
continue
|
||||
if(istype(i, /obj/item/shield/mirror) && !iscultist(usr)) //No teleporting to cult bases
|
||||
if(istype(i, /obj/item/shield/mirror) && !IS_CULTIST(usr)) //No teleporting to cult bases
|
||||
continue
|
||||
if(istype(i, /obj/structure/mirror))
|
||||
var/obj/structure/mirror/B = i
|
||||
|
||||
@@ -34,12 +34,8 @@
|
||||
deathmessage = "lets out a contented sigh as their form unwinds."
|
||||
var/holy = FALSE
|
||||
|
||||
/mob/living/simple_animal/shade/cult/Initialize(mapload)
|
||||
. = ..()
|
||||
icon_state = SSticker.cultdat?.shade_icon_state
|
||||
|
||||
/mob/living/simple_animal/shade/Destroy()
|
||||
SSticker.mode.remove_cultist(show_message = FALSE, target_mob = src)
|
||||
mind?.remove_antag_datum(/datum/antagonist/cultist, silent_removal = TRUE)
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/shade/attackby(obj/item/O, mob/user) //Marker -Agouri
|
||||
@@ -56,6 +52,12 @@
|
||||
holy = TRUE
|
||||
icon_state = "shade_angelic"
|
||||
|
||||
/mob/living/simple_animal/shade/cult
|
||||
|
||||
/mob/living/simple_animal/shade/cult/Initialize(mapload)
|
||||
. = ..()
|
||||
icon_state = GET_CULT_DATA(shade_icon_state, initial(icon_state))
|
||||
|
||||
/mob/living/simple_animal/shade/sword
|
||||
faction = list("neutral")
|
||||
a_intent = INTENT_HARM // scuffed sword mechanics bad
|
||||
|
||||
@@ -1486,12 +1486,11 @@ GLOBAL_LIST_INIT(holy_areas, typecacheof(list(
|
||||
return FALSE
|
||||
|
||||
//Allows cult to bypass holy areas once they summon
|
||||
var/datum/game_mode/gamemode = SSticker.mode
|
||||
if(iscultist(src) && gamemode.cult_objs.cult_status == NARSIE_HAS_RISEN)
|
||||
if(mind.has_antag_datum(/datum/antagonist/cultist) && SSticker.mode.cult_team.cult_status == NARSIE_HAS_RISEN)
|
||||
return FALSE
|
||||
|
||||
//Execption for Holy Constructs
|
||||
if(isconstruct(src) && !iscultist(src))
|
||||
if(isconstruct(src) && !mind.has_antag_datum(/datum/antagonist/cultist))
|
||||
return FALSE
|
||||
|
||||
to_chat(src, "<span class='warning'>Your powers are useless on this holy ground.</span>")
|
||||
|
||||
Reference in New Issue
Block a user