cult team

This commit is contained in:
kevinz000
2020-03-10 20:11:18 -07:00
parent a43f9ec7be
commit 18471be4ce
10 changed files with 37 additions and 15 deletions
+1 -1
View File
@@ -334,7 +334,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
return return
var/datum/antagonist/cult/antag = mob_viewer.mind.has_antag_datum(/datum/antagonist/cult,TRUE) var/datum/antagonist/cult/antag = mob_viewer.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
if(!antag) if(!antag?.cult_team)
return return
var/datum/objective/sacrifice/sac_objective = locate() in antag.cult_team.objectives var/datum/objective/sacrifice/sac_objective = locate() in antag.cult_team.objectives
+1 -1
View File
@@ -96,7 +96,7 @@
add_cultist(cult_mind, 0, equip=TRUE) add_cultist(cult_mind, 0, equip=TRUE)
if(!main_cult) if(!main_cult)
var/datum/antagonist/cult/C = cult_mind.has_antag_datum(/datum/antagonist/cult,TRUE) var/datum/antagonist/cult/C = cult_mind.has_antag_datum(/datum/antagonist/cult,TRUE)
if(C && C.cult_team) if(C?.cult_team)
main_cult = C.cult_team main_cult = C.cult_team
..() ..()
+1 -1
View File
@@ -439,7 +439,7 @@
"<span class='userdanger'>A feeling of warmth washes over you, rays of holy light surround your body and protect you from the flash of light!</span>") "<span class='userdanger'>A feeling of warmth washes over you, rays of holy light surround your body and protect you from the flash of light!</span>")
else // cult doesn't stun any longer when halos are out, instead it does burn damage + knockback! else // cult doesn't stun any longer when halos are out, instead it does burn damage + knockback!
var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
if(user_antag.cult_team.cult_ascendent) if(user_antag.cult_team?.cult_ascendent)
if(!iscultist(L)) if(!iscultist(L))
L.adjustFireLoss(20) L.adjustFireLoss(20)
if(L.move_resist < MOVE_FORCE_STRONG) if(L.move_resist < MOVE_FORCE_STRONG)
+4 -4
View File
@@ -12,7 +12,7 @@
var/ignore_implant = FALSE var/ignore_implant = FALSE
var/make_team = TRUE var/make_team = TRUE
var/give_equipment = FALSE var/give_equipment = FALSE
var/datum/team/cult/_cult_team var/datum/team/cult/cult_team
var/neutered = FALSE //can not use round ending, gibbing, converting, or similar things with unmatched round impact var/neutered = FALSE //can not use round ending, gibbing, converting, or similar things with unmatched round impact
var/ignore_eligibility_checks = FALSE var/ignore_eligibility_checks = FALSE
var/ignore_holy_water = FALSE var/ignore_holy_water = FALSE
@@ -122,7 +122,7 @@
if(ishuman(current)) if(ishuman(current))
magic.Grant(current) magic.Grant(current)
current.throw_alert("bloodsense", /obj/screen/alert/bloodsense) current.throw_alert("bloodsense", /obj/screen/alert/bloodsense)
if(cult_team.cult_risen) if(cult_team?.cult_risen)
cult_team.rise(current) cult_team.rise(current)
if(cult_team.cult_ascendent) if(cult_team.cult_ascendent)
cult_team.ascend(current) cult_team.ascend(current)
@@ -155,7 +155,7 @@
owner.current.visible_message("<span class='deconversion_message'>[owner.current] looks like [owner.current.p_theyve()] just reverted to [owner.current.p_their()] old faith!</span>", null, null, null, owner.current) owner.current.visible_message("<span class='deconversion_message'>[owner.current] looks like [owner.current.p_theyve()] just reverted to [owner.current.p_their()] old faith!</span>", null, null, null, owner.current)
to_chat(owner.current, "<span class='userdanger'>An unfamiliar white light flashes through your mind, cleansing the taint of the Geometer and all your memories as her servant.</span>") to_chat(owner.current, "<span class='userdanger'>An unfamiliar white light flashes through your mind, cleansing the taint of the Geometer and all your memories as her servant.</span>")
owner.current.log_message("has renounced the cult of Nar'Sie!", LOG_ATTACK, color="#960000") owner.current.log_message("has renounced the cult of Nar'Sie!", LOG_ATTACK, color="#960000")
if(cult_team.blood_target && cult_team.blood_target_image && owner.current.client) if(cult_team?.blood_target && cult_team.blood_target_image && owner.current.client)
owner.current.client.images -= cult_team.blood_target_image owner.current.client.images -= cult_team.blood_target_image
. = ..() . = ..()
@@ -217,7 +217,7 @@
throwing.Grant(current) throwing.Grant(current)
current.update_action_buttons_icon() current.update_action_buttons_icon()
current.apply_status_effect(/datum/status_effect/cult_master) current.apply_status_effect(/datum/status_effect/cult_master)
if(cult_team.cult_risen) if(cult_team?.cult_risen)
cult_team.rise(current) cult_team.rise(current)
if(cult_team.cult_ascendent) if(cult_team.cult_ascendent)
cult_team.ascend(current) cult_team.ascend(current)
+16 -4
View File
@@ -74,7 +74,7 @@
/datum/action/innate/cult/mastervote/IsAvailable() /datum/action/innate/cult/mastervote/IsAvailable()
var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
if(!C || C.cult_team.cult_vote_called || !ishuman(owner)) if(!C?.cult_team || C.cult_team.cult_vote_called || !ishuman(owner))
return FALSE return FALSE
return ..() return ..()
@@ -82,6 +82,9 @@
var/choice = alert(owner, "The mantle of leadership is heavy. Success in this role requires an expert level of communication and experience. Are you sure?",, "Yes", "No") var/choice = alert(owner, "The mantle of leadership is heavy. Success in this role requires an expert level of communication and experience. Are you sure?",, "Yes", "No")
if(choice == "Yes" && IsAvailable()) if(choice == "Yes" && IsAvailable())
var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
if(!C.cult_team)
to_chat(owner, "<span class='cult bold'>Do you not alreaady lead yourself?</span>")
returns
pollCultists(owner,C.cult_team) pollCultists(owner,C.cult_team)
/proc/pollCultists(var/mob/living/Nominee,datum/team/cult/team) //Cult Master Poll /proc/pollCultists(var/mob/living/Nominee,datum/team/cult/team) //Cult Master Poll
@@ -151,6 +154,9 @@
var/datum/antagonist/cult/antag = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) var/datum/antagonist/cult/antag = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
if(!antag) if(!antag)
return return
if(!antag.cult_team)
to_chat(owner, "<span class='cult bold'>You have no team. You are alone.</span>")
return
for(var/i in 1 to 4) for(var/i in 1 to 4)
chant(i) chant(i)
var/list/destinations = list() var/list/destinations = list()
@@ -261,7 +267,10 @@
return FALSE return FALSE
var/datum/antagonist/cult/C = caller.mind.has_antag_datum(/datum/antagonist/cult,TRUE) var/datum/antagonist/cult/C = caller.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
if(!C.cult_team)
to_chat(ranged_ability_user, "<span class='cultlarge'>What is the point of marking a target for yourself?</span>")
remove_ranged_ability()
return
if(target in view(7, get_turf(ranged_ability_user))) if(target in view(7, get_turf(ranged_ability_user)))
if(C.cult_team.blood_target) if(C.cult_team.blood_target)
to_chat(ranged_ability_user, "<span class='cult'>The cult has already designated a target!</span>") to_chat(ranged_ability_user, "<span class='cult'>The cult has already designated a target!</span>")
@@ -330,8 +339,11 @@
/datum/action/innate/cult/ghostmark/Activate() /datum/action/innate/cult/ghostmark/Activate()
var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
if(!C.cult_team)
to_chat(owmer, "<span class='cultbold'>You are alone. You do not have a team.</span>")
return
if(C.cult_team.blood_target) if(C.cult_team.blood_target)
if(cooldown>world.time) if(cooldown > world.time)
reset_blood_target(C.cult_team) reset_blood_target(C.cult_team)
to_chat(owner, "<span class='cultbold'>You have cleared the cult's blood target!</span>") to_chat(owner, "<span class='cultbold'>You have cleared the cult's blood target!</span>")
deltimer(C.cult_team.blood_target_reset_timer) deltimer(C.cult_team.blood_target_reset_timer)
@@ -339,7 +351,7 @@
else else
to_chat(owner, "<span class='cultbold'>The cult has already designated a target!</span>") to_chat(owner, "<span class='cultbold'>The cult has already designated a target!</span>")
return return
if(cooldown>world.time) if(cooldown > world.time)
to_chat(owner, "<span class='cultbold'>You aren't ready to place another blood mark yet!</span>") to_chat(owner, "<span class='cultbold'>You aren't ready to place another blood mark yet!</span>")
return return
target = owner.orbiting?.parent || get_turf(owner) target = owner.orbiting?.parent || get_turf(owner)
+2 -2
View File
@@ -87,8 +87,8 @@ This file contains the cult dagger and rune list code
to_chat(user, "<span class='cultlarge'>Only one ritual site remains - it must be reserved for the final summoning!</span>") to_chat(user, "<span class='cultlarge'>Only one ritual site remains - it must be reserved for the final summoning!</span>")
return return
if(ispath(rune_to_scribe, /obj/effect/rune/narsie)) if(ispath(rune_to_scribe, /obj/effect/rune/narsie))
var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team?.objectives
var/datum/objective/sacrifice/sac_objective = locate() in user_antag.cult_team.objectives var/datum/objective/sacrifice/sac_objective = locate() in user_antag.cult_team?.objectives
if(!summon_objective) if(!summon_objective)
to_chat(user, "<span class='warning'>Nar'Sie does not wish to be summoned!</span>") to_chat(user, "<span class='warning'>Nar'Sie does not wish to be summoned!</span>")
return return
+6
View File
@@ -485,6 +485,9 @@ structure_check() searches for nearby cultist structures required for the invoca
fail_invoke() fail_invoke()
return return
var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
if(!user_antag.cult_team)
to_chat(user, "<span class='cultlarge'>You can't seem to make the arcane links to your fellows that you'd need to use this.</span>")
return
var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives
var/area/place = get_area(src) var/area/place = get_area(src)
if(!(place in summon_objective.summon_spots)) if(!(place in summon_objective.summon_spots))
@@ -955,6 +958,9 @@ structure_check() searches for nearby cultist structures required for the invoca
var/area/place = get_area(src) var/area/place = get_area(src)
var/mob/living/user = invokers[1] var/mob/living/user = invokers[1]
var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
if(!user_antag.cult_team)
to_chat(user, "<span class='cultlarge'>You can't seem to make the arcane links to your fellows that you'd need to use this.</span>")
return
var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives
if(summon_objective.summon_spots.len <= 1) if(summon_objective.summon_spots.len <= 1)
to_chat(user, "<span class='cultlarge'>Only one ritual site remains - it must be reserved for the final summoning!</span>") to_chat(user, "<span class='cultlarge'>Only one ritual site remains - it must be reserved for the final summoning!</span>")
@@ -145,7 +145,7 @@
if("VICTIM") if("VICTIM")
var/mob/living/carbon/human/T = target var/mob/living/carbon/human/T = target
var/datum/antagonist/cult/C = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) var/datum/antagonist/cult/C = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
if(C && C.cult_team.is_sacrifice_target(T.mind)) if(C && C.cult_team?.is_sacrifice_target(T.mind))
if(iscultist(user)) if(iscultist(user))
to_chat(user, "<span class='cult'><b>\"This soul is mine.</b></span> <span class='cultlarge'>SACRIFICE THEM!\"</span>") to_chat(user, "<span class='cult'><b>\"This soul is mine.</b></span> <span class='cultlarge'>SACRIFICE THEM!\"</span>")
else else
@@ -389,6 +389,9 @@
var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult) var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult)
if(!C) if(!C)
return return
if(!C.cult_team)
to_chat(the_construct, "<span class='cult italic'>You are alone, and have no team.</span>")
return
var/datum/objective/eldergod/summon_objective = locate() in C.cult_team.objectives var/datum/objective/eldergod/summon_objective = locate() in C.cult_team.objectives
if(summon_objective.check_completion()) if(summon_objective.check_completion())
+2 -1
View File
@@ -51,7 +51,8 @@
for(var/datum/antagonist/cult/C in GLOB.antagonists) for(var/datum/antagonist/cult/C in GLOB.antagonists)
if(!C.owner) if(!C.owner)
continue continue
all_cults |= C.cult_team if(C.cult_team)
all_cults |= C.cult_team
for(var/datum/team/cult/T in all_cults) for(var/datum/team/cult/T in all_cults)
deltimer(T.blood_target_reset_timer) deltimer(T.blood_target_reset_timer)
T.blood_target = src T.blood_target = src