mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 02:57:48 +01:00
A lot more Cult fixes (#15161)
* Some fixes 1: ERT members can no longer be given as an assassinate/sacrifice antag objective. 2. Cultists attempting to teleport to a deleted rune will no longer be teleported into nullspace. 3. Re-ordered the cult Blood Rites spell code because it was bugging me. (sorry qwerty) * Cult stuff 1: Cultists can no longer be chosen as a sacrifice target 2: Rune drawing is limited to one at a time (No spamming on one tile) 3: Removed some unneccesary `/improper`s from area names, for the cult Summoning locations 4: Changed a couple of colours to use defines * QDELETED() * Eye colour fix * Reorganisation, Objectives, and Gender The majority of the changes here are just reordering the procs, but there's a few fixes too: 1. Roundstart cultists now get given the 'servecult' objective. 2. Deconverting someone now removes their 'servecult' objective, so they won't be notified about target changes. 3. Stopped summoned ghosts from experiencing a spontaneous gender change. * Screwdriver fix * Prayer bead stripping * Some more construct fixes 1: Fixed *all* holy constructs getting the 'Summon soulstone' ability 2: Fixed Wraiths getting their blue light reset to red after jaunting 3: Added a 'holy' variable to constructs, and made the holyification its own proc. * qdeleted * Construct Converting Apparently you can convert holy constructs. Who knew! * Another two weeks Moved all the construct icon states to their own file, and fixed Nar'Sie constructs not getting a glowing effect. * Grab fix Fixed upgrading a grab having the ability to potentially transport the victim across dimensions. * Not actually a cult fix but eh Fixes: Runtime in outfit.dm, 114: bad number And updates the cult corpse from legion spawns * Teleport spell effect Fixed the teleport effect for the spell being attached to the wrong mob. * Small cleanup * Eye colour cloning fix * Veil Shifter Fixed: Runtime in cult_items.dm,355: pick() from empty list Veil shifters not retaining any grabs after teleporting. * Adjacent
This commit is contained in:
@@ -202,7 +202,7 @@
|
||||
H.ha_style = "None"
|
||||
update_head_accessory()
|
||||
|
||||
/mob/living/carbon/human/proc/change_eye_color(colour = "#000000", update_dna = 1)
|
||||
/mob/living/carbon/human/proc/change_eye_color(colour = "#000000", update_dna = TRUE)
|
||||
// Update the main DNA datum, then sync the change across the organs
|
||||
var/obj/item/organ/internal/eyes/eyes_organ = get_int_organ(/obj/item/organ/internal/eyes)
|
||||
if(eyes_organ)
|
||||
@@ -215,10 +215,16 @@
|
||||
|
||||
if(update_dna)
|
||||
update_dna()
|
||||
sync_organ_dna(assimilate=0)
|
||||
sync_organ_dna(assimilate = FALSE)
|
||||
update_eyes()
|
||||
update_body()
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/human/proc/get_eye_color()
|
||||
var/obj/item/organ/internal/eyes/E = get_int_organ(/obj/item/organ/internal/eyes)
|
||||
if(E)
|
||||
return E.eye_color
|
||||
return FALSE
|
||||
|
||||
/mob/living/carbon/human/proc/change_hair_color(colour = "#000000", secondary)
|
||||
var/obj/item/organ/external/head/H = get_organ("head")
|
||||
|
||||
@@ -973,7 +973,7 @@
|
||||
M.LAssailant = usr
|
||||
|
||||
/mob/living/proc/check_pull()
|
||||
if(pulling && !(pulling in orange(1)))
|
||||
if(pulling && !pulling.Adjacent(src))
|
||||
stop_pulling()
|
||||
|
||||
/mob/living/proc/update_z(new_z) // 1+ to register, null to unregister
|
||||
|
||||
@@ -4,9 +4,10 @@
|
||||
mob_biotypes = NONE
|
||||
speak_emote = list("hisses")
|
||||
emote_hear = list("wails","screeches")
|
||||
response_help = "thinks better of touching"
|
||||
response_help = "thinks better of touching"
|
||||
response_disarm = "flails at"
|
||||
response_harm = "punches"
|
||||
response_harm = "punches"
|
||||
icon = 'icons/mob/cult.dmi'
|
||||
icon_dead = "shade_dead"
|
||||
speed = 0
|
||||
a_intent = INTENT_HARM
|
||||
@@ -26,6 +27,9 @@
|
||||
deathmessage = "collapses in a shattered heap."
|
||||
var/construct_type = "shade"
|
||||
var/list/construct_spells = list()
|
||||
/// Is this a holy/purified construct?
|
||||
var/holy = FALSE
|
||||
/// Message to send to the construct when they are created, containing information about their role.
|
||||
var/playstyle_string = "<b>You are a generic construct! Your job is to not exist, and you should probably adminhelp this.</b>"
|
||||
|
||||
/mob/living/simple_animal/hostile/construct/New()
|
||||
@@ -98,7 +102,6 @@
|
||||
name = "Juggernaut"
|
||||
real_name = "Juggernaut"
|
||||
desc = "A possessed suit of armour driven by the will of the restless dead"
|
||||
icon = 'icons/mob/mob.dmi'
|
||||
icon_state = "behemoth"
|
||||
icon_living = "behemoth"
|
||||
maxHealth = 250
|
||||
@@ -149,7 +152,6 @@
|
||||
name = "Wraith"
|
||||
real_name = "Wraith"
|
||||
desc = "A wicked bladed shell contraption piloted by a bound spirit"
|
||||
icon = 'icons/mob/mob.dmi'
|
||||
icon_state = "floating"
|
||||
icon_living = "floating"
|
||||
maxHealth = 75
|
||||
@@ -174,7 +176,6 @@
|
||||
name = "Artificer"
|
||||
real_name = "Artificer"
|
||||
desc = "A bulbous construct dedicated to building and maintaining Cult armies."
|
||||
icon = 'icons/mob/mob.dmi'
|
||||
icon_state = "artificer"
|
||||
icon_living = "artificer"
|
||||
maxHealth = 50
|
||||
@@ -254,7 +255,6 @@
|
||||
name = "Behemoth"
|
||||
real_name = "Behemoth"
|
||||
desc = "The pinnacle of occult technology, Behemoths are the ultimate weapon in the Cult's arsenal."
|
||||
icon = 'icons/mob/mob.dmi'
|
||||
icon_state = "behemoth"
|
||||
icon_living = "behemoth"
|
||||
maxHealth = 750
|
||||
@@ -288,7 +288,6 @@
|
||||
name = "Harvester"
|
||||
real_name = "Harvester"
|
||||
desc = "A harbinger of enlightenment. It'll be all over soon."
|
||||
icon = 'icons/mob/mob.dmi'
|
||||
icon_state = "harvester"
|
||||
icon_living = "harvester"
|
||||
maxHealth = 60
|
||||
@@ -316,6 +315,17 @@
|
||||
AIStatus = AI_ON
|
||||
environment_smash = 1 //only token destruction, don't smash the cult wall NO STOP
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/construct/proc/make_holy()
|
||||
if(holy) // Already holy-fied
|
||||
return
|
||||
holy = TRUE
|
||||
set_light(3, 5, LIGHT_COLOR_DARK_BLUE)
|
||||
name = "Holy [name]"
|
||||
real_name = "Holy [real_name]"
|
||||
faction.Remove("cult")
|
||||
|
||||
|
||||
///ui stuff
|
||||
|
||||
/mob/living/simple_animal/hostile/construct/armoured/update_health_hud()
|
||||
|
||||
@@ -419,11 +419,13 @@
|
||||
back = /obj/item/tank/internals/oxygen
|
||||
mask = /obj/item/clothing/mask/breath
|
||||
if("Cultist")
|
||||
uniform = /obj/item/clothing/under/roman
|
||||
suit = /obj/item/clothing/suit/hooded/cultrobes
|
||||
suit_store = /obj/item/tome
|
||||
r_pocket = /obj/item/restraints/legcuffs/bola/cult
|
||||
uniform = /obj/item/clothing/under/color/black
|
||||
back = /obj/item/storage/backpack/cultpack
|
||||
suit = /obj/item/clothing/suit/hooded/cultrobes/alt
|
||||
if(prob(40))
|
||||
suit_store = /obj/item/melee/cultblade
|
||||
l_pocket = /obj/item/melee/cultblade/dagger
|
||||
glasses = /obj/item/clothing/glasses/hud/health/night
|
||||
backpack_contents = list(/obj/item/reagent_containers/food/drinks/bottle/unholywater = 1, /obj/item/cult_shift = 1, /obj/item/flashlight/flare = 1, /obj/item/stack/sheet/runed_metal = 15)
|
||||
if(prob(60))
|
||||
r_pocket = /obj/item/reagent_containers/food/drinks/bottle/unholywater
|
||||
backpack_contents = list(/obj/item/tome = 1, /obj/item/restraints/legcuffs/bola/cult = 1, /obj/item/stack/sheet/runed_metal = 15)
|
||||
. = ..()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "Shade"
|
||||
real_name = "Shade"
|
||||
desc = "A bound spirit"
|
||||
icon = 'icons/mob/mob.dmi'
|
||||
icon = 'icons/mob/cult.dmi'
|
||||
icon_state = "shade"
|
||||
icon_living = "shade"
|
||||
icon_dead = "shade_dead"
|
||||
@@ -34,6 +34,10 @@
|
||||
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/death(gibbed)
|
||||
. = ..()
|
||||
SSticker.mode.remove_cultist(mind, FALSE)
|
||||
@@ -48,11 +52,6 @@
|
||||
/mob/living/simple_animal/shade/Process_Spacemove()
|
||||
return TRUE
|
||||
|
||||
|
||||
/mob/living/simple_animal/shade/cult/Initialize(mapload)
|
||||
. = ..()
|
||||
icon_state = SSticker.cultdat?.shade_icon_state
|
||||
|
||||
/mob/living/simple_animal/shade/holy
|
||||
holy = TRUE
|
||||
icon_state = "shade_angelic"
|
||||
|
||||
@@ -193,6 +193,8 @@
|
||||
/obj/item/grab/proc/adjust_position()
|
||||
if(affecting.buckled)
|
||||
return
|
||||
if(!assailant.Adjacent(affecting)) // To prevent teleportation via grab
|
||||
return
|
||||
if(affecting.lying && state != GRAB_KILL)
|
||||
animate(affecting, pixel_x = 0, pixel_y = 0, 5, 1, LINEAR_EASING)
|
||||
return //KJK
|
||||
|
||||
@@ -265,16 +265,11 @@
|
||||
M.SetConfused(0)
|
||||
return
|
||||
if(iscultist(M))
|
||||
SSticker.mode.remove_cultist(M.mind)
|
||||
SSticker.mode.remove_cultist(M.mind, TRUE, TRUE)
|
||||
holder.remove_reagent(id, volume) // maybe this is a little too perfect and a max() cap on the statuses would be better??
|
||||
M.SetJitter(0)
|
||||
M.SetStuttering(0)
|
||||
M.SetConfused(0)
|
||||
if(ishuman(M)) // Unequip all cult clothing
|
||||
var/mob/living/carbon/human/H = M
|
||||
for(var/I in H.contents)
|
||||
if(is_type_in_list(I, CULT_CLOTHING))
|
||||
H.unEquip(I)
|
||||
return
|
||||
if(ishuman(M) && M.mind && M.mind.vampire && !M.mind.vampire.get_ability(/datum/vampire_passive/full) && prob(80))
|
||||
var/mob/living/carbon/V = M
|
||||
|
||||
Reference in New Issue
Block a user