Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cult Pass:This is why we cannot have nice things #7345

Closed
wants to merge 33 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
15375c8
cultpass
Aurorablade May 19, 2017
12c4c30
why did you not upload..
Aurorablade May 19, 2017
d0ca483
random was silly
Aurorablade May 19, 2017
b3a7c59
okay github why did you do that.
Aurorablade May 19, 2017
e8c77b9
Backpack and death runes
Aurorablade May 21, 2017
b7f43cd
balances
Aurorablade May 25, 2017
191e713
stop touching this icon...
Aurorablade May 27, 2017
1d1b86e
wioops
Aurorablade May 27, 2017
d85308b
Runed metal and some spans.
Aurorablade May 29, 2017
439787d
to_chat fixes maybe
Aurorablade Jun 1, 2017
deef342
no bad hulks.
Aurorablade Jun 2, 2017
a4d3b60
no golem
Aurorablade Jun 5, 2017
b9b05ea
secs pylon heal delay to 5 seconds
Aurorablade Jun 6, 2017
815d8bd
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Jun 10, 2017
1640bef
more tweaks
Aurorablade Jun 12, 2017
e653724
tweaks
Aurorablade Jun 13, 2017
16caa74
Runes now support invoke damage
Aurorablade Jun 20, 2017
52c411a
feedback tweaks
Aurorablade Jun 21, 2017
3b8ca91
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Jun 23, 2017
d3480f7
feedback before conflicts
Aurorablade Jun 29, 2017
ef6d234
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Jun 29, 2017
12c428d
redoes repeaer sprite
Aurorablade Jul 11, 2017
48c6573
formatting and windup to dagger.
Aurorablade Jul 12, 2017
6529be0
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Jul 12, 2017
414bc7c
I hopefully didn't mess up the icons too much here..
Aurorablade Jul 12, 2017
55175fa
reverts living sacrefice change
Aurorablade Jul 24, 2017
3244dd3
Tweaks some bleeds dowwards
Aurorablade Jul 24, 2017
34ed159
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Jul 24, 2017
a55ecfb
fixes a error post conflict fix
Aurorablade Jul 25, 2017
9bbb12b
grrrrrrrr
Aurorablade Aug 15, 2017
c17971f
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Sep 15, 2017
326ef91
merges convert and sac
Aurorablade Sep 15, 2017
6a0844b
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Sep 30, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 4 additions & 3 deletions code/game/gamemodes/cult/cult_datums.dm
Original file line number Diff line number Diff line change
Expand Up @@ -86,20 +86,21 @@
entity_title1 = "The Silent One"
entity_title2 = "The One Who Beckons"
entity_title3 = "The Ferryman of Oblivion"
entity_icon_state = "legion"

cult_wall_icon_state = "deathcult"
cult_floor_icon_state = "carpet-broken"

artificer_name = "Boneshaper"

behemoth_name = "Draugr"
behemoth_icon_state = "horror"
behemoth_icon_state = "Draugr"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are these deffo capitalised in the file? I've come across several sprite issues lately due to caps inconsistency.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i will double check in a little while.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

they are.


wraith_name = "Wraith"
wraith_icon_state = "stand"
wraith_icon_state = "Wraith"

juggernaut_name = "Wight"
juggernaut_icon_state = "horror"
juggernaut_icon_state = "Draugr"

harvester_name = "Psychopomp"

Expand Down
70 changes: 65 additions & 5 deletions code/game/gamemodes/cult/cult_items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@
to_chat(user, "<span class='warning'>An overwhelming sense of nausea overpowers you!</span>")
user.Dizzy(120)

if(HULK in user.mutations)
to_chat(user, "<span class='danger'>You can't seem to hold the blade properly!</span>")
user.unEquip(src, 1)


/obj/item/weapon/melee/cultblade/dagger
name = "sacrificial dagger"
desc = "A strange dagger said to be used by sinister groups for \"preparing\" a corpse before sacrificing it to their dark gods."
Expand All @@ -43,11 +48,8 @@
embed_chance = 75

/obj/item/weapon/melee/cultblade/dagger/attack(atom/target, mob/living/carbon/human/user)

..()
if(ishuman(target))
var/mob/living/carbon/human/H = target
if((H.stat != DEAD) && !(NO_BLOOD in H.species.species_traits))
H.bleed(50)

/obj/item/weapon/restraints/legcuffs/bola/cult
name = "runed bola"
Expand Down Expand Up @@ -117,7 +119,7 @@
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 30, bio = 30, rad = 30)

/obj/item/clothing/suit/space/cult
name = "cult armour"
name = "cult armor"
icon_state = "cult_armour"
item_state = "cult_armour"
desc = "A bulky suit of armour, bristling with spikes. It looks space proof."
Expand Down Expand Up @@ -319,6 +321,7 @@
if(uses <= 0)
icon_state ="shifter_drained"
playsound(mobloc, "sparks", 50, 1)
C.apply_damage(2, "BRUTE")
new /obj/effect/overlay/temp/cult/phase/out(mobloc)

var/atom/movable/pulled = handle_teleport_grab(destination, C)
Expand All @@ -332,3 +335,60 @@

else
to_chat(C, "<span class='danger'>The veil cannot be torn here!</span>")


/obj/item/weapon/melee/cultblade/ghost
name = "eldritch sword"
force = 15
flags = NODROP

/obj/item/weapon/melee/cultblade/ghost/dropped(mob/living/carbon/human/user)
..()
qdel(src)

/obj/item/clothing/head/culthood/alt/ghost
flags = NODROP

/obj/item/clothing/head/culthood/alt/ghost/dropped(mob/living/carbon/human/user)
..()
qdel(src)

/obj/item/clothing/suit/cultrobes/alt/ghost
flags = NODROP

/obj/item/clothing/suit/cultrobes/alt/ghost/dropped(mob/living/carbon/human/user)
..()
qdel(src)

/obj/item/clothing/shoes/cult/ghost
flags = NODROP

/obj/item/clothing/shoes/cult/ghost/dropped(mob/living/carbon/human/user)
..()
qdel(src)

//CULT

/obj/item/clothing/suit/space/eva/plasmaman/cultist
name = "plasmaman cultist armor"
icon_state = "plasmaman_cult"
item_state = "plasmaman_cult"
desc = "A bulky suit of armour, menacing with red energy. It looks like it would fit a plasmaman."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sadly it should be armor not armour

slowdown = 1
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)

/obj/item/clothing/head/helmet/space/eva/plasmaman/cultist
name = "plasmaman cultist helmet"
icon_state = "plasmamanCult_helmet0"
base_state = "plasmamanCult_helmet"
desc = "A helmet designed by cultists. It glows menacingly with unearthly flames."
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)

/datum/outfit/ghost_cultist
name = "Cultist Ghost"

uniform = /obj/item/clothing/under/color/black
suit = /obj/item/clothing/suit/cultrobes/alt/ghost
shoes = /obj/item/clothing/shoes/cult/ghost
head = /obj/item/clothing/head/culthood/alt/ghost
r_hand = /obj/item/weapon/melee/cultblade/ghost
30 changes: 17 additions & 13 deletions code/game/gamemodes/cult/cult_objectives.dm
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,10 @@
explanation = "We need to sacrifice [sacrifice_target.name], the [sacrifice_target.assigned_role], for his blood is the key that will lead our master to this realm. You will need 3 cultists around a Sacrifice rune to perform the ritual."

for(var/datum/mind/cult_mind in cult)
to_chat(cult_mind.current, "<span class='cult'>You and your acolytes have completed your task, but this place requires yet more preparation!</span>")
to_chat(cult_mind.current, "<B>Objective #[current_objective]</B>: [explanation]")
cult_mind.memory += "<B>Objective #[current_objective]</B>: [explanation]<BR>"
if(cult_mind)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inside a typed loop, shouldn't be null

to_chat(cult_mind.current, "<span class='cult'>You and your acolytes have completed your task, but this place requires yet more preparation!</span>")
to_chat(cult_mind.current, "<B>Objective #[current_objective]</B>: [explanation]")
Copy link
Contributor

@SamHPurp SamHPurp Jun 27, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't we be using <span>'s rather than <b>?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thats a constant with some objectives so its more then here.

cult_mind.memory += "<B>Objective #[current_objective]</B>: [explanation]<BR>"

message_admins("New Cult Objective: [new_objective]")
log_admin("New Cult Objective: [new_objective]")
Expand All @@ -98,9 +99,10 @@
objectives +="survive"
explanation = "Our knowledge must live on. Make sure at least [acolytes_needed] acolytes escape on the shuttle to spread their work on an another station."
for(var/datum/mind/cult_mind in cult)
to_chat(cult_mind.current, "<span class='cult'>You and your acolytes suddenly feel the urge to do your best, but survive!</span>")
to_chat(cult_mind.current, "<B>Objective Survive</B>: [explanation]")
cult_mind.memory += "<B>Objective Survive</B>: [explanation]<BR>"
if(cult_mind)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inside a typed loop, shouldn't be null

to_chat(cult_mind.current, "<span class='cult'>You and your acolytes suddenly feel the urge to do your best, but survive!</span>")
to_chat(cult_mind.current, "<B>Objective Survive</B>: [explanation]")
cult_mind.memory += "<B>Objective Survive</B>: [explanation]<BR>"


/datum/game_mode/cult/proc/second_phase()
Expand All @@ -115,9 +117,10 @@
explanation = "Bring the Slaughter via the rune 'Bring forth the slaughter'."

for(var/datum/mind/cult_mind in cult)
to_chat(cult_mind.current, "<span class='cult'>You and your acolytes have succeeded in preparing the station for the ultimate ritual!</span>")
to_chat(cult_mind.current, "<B>Objective #[current_objective]</B>: [explanation]")
cult_mind.memory += "<B>Objective #[current_objective]</B>: [explanation]<BR>"
if(cult_mind)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is inside a typed loop, it shouldn't ever be null

to_chat(cult_mind.current, "<span class='cult'>You and your acolytes have succeeded in preparing the station for the ultimate ritual!</span>")
to_chat(cult_mind.current, "<B>Objective #[current_objective]</B>: [explanation]")
cult_mind.memory += "<B>Objective #[current_objective]</B>: [explanation]<BR>"

/datum/game_mode/cult/proc/third_phase()
current_objective++
Expand All @@ -132,15 +135,16 @@

switch(last_objective)
if("harvest")
explanation = "[ticker.mode.cultdat.entity_title1] hungers for his first meal of this never-ending day. Offer him [harvest_target] humans in sacrifice."
explanation = "[ticker.mode.cultdat.entity_title1] hungers for their first meal of this never-ending day. Offer them [harvest_target] humans in sacrifice."
if("hijack")
explanation = "[ticker.mode.cultdat.entity_name] wishes for his troops to start the assault on Centcom immediately. Hijack the escape shuttle and don't let a single non-cultist board it."
explanation = "[ticker.mode.cultdat.entity_name] wishes for their troops to start the assault on Centcom immediately. Hijack the escape shuttle and don't let a single non-cultist board it."
if("massacre")
explanation = "[ticker.mode.cultdat.entity_name] wants to watch you as you massacre the remaining humans on the station (until less than [massacre_target] humans are left alive)."

for(var/datum/mind/cult_mind in cult)
to_chat(cult_mind.current, "<B>Objective #[current_objective]</B>: [explanation]")
cult_mind.memory += "<B>Objective #[current_objective]</B>: [explanation]<BR>"
if(cult_mind)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

inside a typed loop, shouldn't be null

to_chat(cult_mind.current, "<B>Objective #[current_objective]</B>: [explanation]")
cult_mind.memory += "<B>Objective #[current_objective]</B>: [explanation]<BR>"

message_admins("Last Cult Objective: [last_objective]")
log_admin("Last Cult Objective: [last_objective]")
Expand Down
5 changes: 4 additions & 1 deletion code/game/gamemodes/cult/cult_structures.dm
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@
to_chat(user, "<span class='notice'>\The [src] is [anchored ? "":"not "]secured to the floor.</span>")

/obj/structure/cult/functional/attackby(obj/I, mob/user, params)
if(HULK in user.mutations)
to_chat(user, "<span class='danger'>You cannot seem to manipulate this structure with your bulky hands!</span>")
return
if(istype(I, /obj/item/weapon/tome) && iscultist(user))
anchored = !anchored
to_chat(user, "<span class='notice'>You [anchored ? "":"un"]secure \the [src] [anchored ? "to":"from"] the floor.</span>")
Expand Down Expand Up @@ -180,7 +183,7 @@ var/list/blacklisted_pylon_turfs = typecacheof(list(
death_message = "<span class='warning'>The pylon's crystal vibrates and glows fiercely before violently shattering!</span>"
death_sound = 'sound/effects/pylon_shatter.ogg'

var/heal_delay = 25
var/heal_delay = 30
var/last_heal = 0
var/corrupt_delay = 50
var/last_corrupt = 0
Expand Down
13 changes: 8 additions & 5 deletions code/game/gamemodes/cult/ritual.dm
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,10 @@
text += "<font color='red'><b>Teleport</b></font><br>This rune is unique in that it requires a keyword before the scribing can begin. When invoked, it will find any other Teleport runes; \
If any are found, the user can choose which rune to send to. Upon activation, the rune teleports everything above it to the selected rune.<br><br>"

text += "<font color='red'><b>Rite of Enlightenment</b></font><br>This rune is critical to the success of the cult. It will allow you to convert normal crew members into cultists. \
To do this, simply place the crew member upon the rune and invoke it. This rune requires two invokers to use. If the target to be converted is mindshielded or a certain assignment, they will \
be unable to be converted. People [ticker.mode.cultdat.entity_title3] wishes sacrificed will also be ineligible for conversion, and anyone with a shielding presence like the null rod will not be converted.<br> \
Successful conversions will produce a tome for the new cultist.<br><br>"
text += "<font color='red'><b>Rite of Enlightenment</b></font><br>This rune is necessary to achieve your goals.</b> Placing a noncultist above it will convert them if it can and sacrifice them otherwise. \
It requires two invokers to convert a target and three to sacrifice a living target or the sacrifice target.<br>\
Successful conversions will produce a tome for the new cultist, in addition to healing them.<br> \
Successful sacrifices will please the [ticker.mode.cultdat.entity_title3], can complete your objective if it sacrificed the sacrifice target, and will attempt to place the target into a soulstone.<br><br>"

text += "<font color='red'><b>Rite of Tribute</b></font><br><b>This rune is necessary to achieve your goals.</b> Simply place any dead creature upon the rune and invoke it (this will not \
target cultists!). If this creature has a mind, a soulstone will be created and the creature's soul transported to it. Sacrificing the dead can be done alone, but sacrificing living crew <b>or your cult's target</b> will require 3 cultists. \
Expand Down Expand Up @@ -215,6 +215,9 @@
if(!((CULT_ELDERGOD in cult_mode.objectives) || (CULT_SLAUGHTER in cult_mode.objectives)))
to_chat(user, "<span class='warning'>[cult_mode.cultdat.entity_name]'s power does not wish to be unleashed!</span>")
return 0
if(!is_station_level(user.z))
to_chat(user, "<span class='cultlarge'>\"The veil is too strong here! The station is the best ritual location!\"</span>")
return 0
var/confirm_final = alert(user, "This is the FINAL step to summon your deities power, it is a long, painful ritual and the crew will be alerted to your presence", "Are you prepared for the final battle?", "My life for [cult_mode.cultdat.entity_name]!", "No")
if(confirm_final == "No" || confirm_final == null)
to_chat(user, "<span class='cult'>You decide to prepare further before scribing the rune.</span>")
Expand Down Expand Up @@ -283,7 +286,7 @@
var/mob/living/carbon/human/H = user
var/dam_zone = pick("head", "chest", "groin", "l_arm", "l_hand", "r_arm", "r_hand", "l_leg", "l_foot", "r_leg", "r_foot")
var/obj/item/organ/external/affecting = H.get_organ(ran_zone(dam_zone))
user.visible_message("<span class='warning'>[user] cuts open their \The [affecting] and begins writing in their own blood!</span>", "<span class='cult'>You slice open your [affecting] and begin drawing a sigil of [ticker.mode.cultdat.entity_title3].</span>")
user.visible_message("<span class='warning'>[user] cuts open their [affecting] and begins writing in their own blood!</span>", "<span class='cult'>You slice open your [affecting] and begin drawing a sigil of [ticker.mode.cultdat.entity_title3].</span>")
user.apply_damage(initial(rune_to_scribe.scribe_damage), BRUTE , affecting)
if(!do_after(user, initial(rune_to_scribe.scribe_delay)-scribereduct, target = get_turf(user)))
for(var/V in shields)
Expand Down