Skip to content

Commit

Permalink
Blood Cult 2: Electric Boogaloo (ParadiseSS13#14516)
Browse files Browse the repository at this point in the history
* DMI files

* Progress

* we compiling

* innate cult action, various progress

* Reorganise runes, fix cult dagger action and admin cultist

* Cult tooltips, dagger icons

* Add mirror shield, return runes back to OG circles

* Cult structure lights, pylon update

* bola update, progress..

* cleaning rune fix, girder/structures anchor

* speed up cult walls

* Convert rune update, tweaks

* Add teleport portals

* fix runtimes

* cult objs start

* move current cult objs to backup

* Rework cult objectives, add narsie/singulo interactions

* spacing, admin log and message

* reviewstuff

* refactor cult conceal/reveal

* add a bit of range to reveal

* blood magic tweaks, hallway not in summon areas

* implement structure concealment, offer uncuff

* add parry sound, fix cult airlock reveal appearance

* Update remaining runes

* fix pylon blood restaure, up blood magic cost

* review tweaks and progress

* fix compilation

* fix offering rune bug

* Draw blood rune action refactor

* moar tweaks

* fixes, holy water blood magic clean, icons

* Add cultist hardsuit, tweaks

* reduce needed pylons for cult ghost, cult shield

* spirit realm fixes

* fix dark spirit

* Add blood rites

* exotic blood handling

* spacing, add adminbus dagger, bal. rune health cost

* woops

missed a var

* fix blood rite healing

* emp spell cult immunity

* fix exploit and narsie references

* new rune sprites

* color defines

* SEND_SOUNDS, cult summon areas

* fix soap, barrier, and add CC location on narsie

* cult structure fix

* functional ascendance, undo cult spacesuit changes

* woops

* whetstone qdel, tweaks

* fix empty area selection bug

* cult ascendance numbers

* add cult blade sprite, add sacrificing head/brains

* review stuff

* fix runtime and twisted cons target

* review stuff

* code clarity

* remove unnecessary cultist checks

* Add support for wizard cultists

* cleanip

* fix concealed glass airlocks

* update objs

* remove talisman ref

* fix status procs

* clarifications, remove unnecessary var

* deconflicting

* deconflicting LF

* oops

* readd new icons

* more conflcit stuff

* readd drill and jaws icons

* review stuff

* silence on conversion

* Readd compact sniper icons

* Remove ambiguity

* 2 sacrifices required

* check antag panel improvements, bug fixes

* limits narsie cult ghost cheese

* CC message

* trailing newlines

* Shade/construct update

* bug fixes

* balance bloodboil, update CC message

* add a newline to something i didnt touch

idk ask travis bout it

* remove metastation extra null rod and shard

* fix teleport runes list, update icon

* remove tg cultist icon

* update cult actions with new tome

* Remove mirror shield throw, spell constructs

Add in sacrificing any brain with a mind.

* Fix more conflicts

* Fix double return

* Add descriptions to cult recipes, fix icons

* fix shuttle curse exploit

* Update wall rune, cult shields, runed recipe width

* implement flagellant sprites, misc changes

* Fix conversion rune

* Add cult blood barrage healing

* Trailing line

* fix whitespace

* Remove can_speak check on invoke

* Deconflict pt. 2

* Bugfixes the 1st

Fixes bugs 2 and 4 in the 'Known Issues' section

* cult.dm tweaks

Oh boy, even more commits!

* Fixes blood halberds swapping directions on wield

* Tweaks and stylin'

Changed a few span classes around and added a 'Remaining Charges' display to the Blood Rite spell

* Ritual tweaks (And some other stuff)

Fixes:
Altar stray pixel,
Using 'Twisted Construction' on a cult door,
Rune drawing checks,
probably more idk

* Rune tweaks & fixes

Fixes:
Wraith glowing not turning off while jaunted,
A MASSIVE oversight by me with playsound(),

probably also some other stuff but I've been staring at this file for a week and I've forgot most of what I did.

* Testmerge fixes the 1st

Fixes:
Ascendent is now Ascendant,
The Cultist greeting is now in the correct order,
IPCs now draw oil coloured runes,
No longer able to sacrifice a body multiple times,
Sacrificing a brain or head now gives a soul shard,
Converting an IPC or someone with robotic limbs now heals them correctly,
Probably more.

* Mirror Shield balancing

Being hit by a projectile above a damage threshold (10) now increases the chances of the mirror shield shattering, by 3% per damage point.

This may seem pretty low, but an Energy Gun would have a 30% chance of breaking the shield per hit. (Assuming I did this right, anyway.)

* Insect repairs and more

Changes:

Makes the shuttle curse lines a define,
Comments out the changing construct names,
Made flagellant robes block hair,
Added documentation to the mirror shield (See said documentation for details),
Made the cooldown examine text for cult structures display minutes and seconds,
Removed the ability to sacrifice the same body multiple times,
Cleaned up the soulstone code (and hopefully didn't break anything),

Probably still missed something, oh well!

* Rune opacity and Stun timing

Changes:

Halved all the values of the 'Stun' spell, since it was presumably an oversight. (20 second stun to 10)
The 'mouse_opacity' for runes has been set to 'opaque', this means that clicking on any spot on the tile will select it. (Less fiddly)
The '(REMOVE SPELL)' choice when choosing spells now only shows if there's any spells to remove.
Dunking someones head in the lava forge now only works if they have a head.

Also fixed a whole bunch of typos/gramatical errors.

* Blood Boil, Blood Barrage and EMP Sprites!

Changes:

Overhauled the 'Blood Boil' rune (See documentation)
Added in-hand sprites and red sparks for 'Blood bolt barrage'.
The nar'sie rune now removes all runes around it to prevent clipping.
Fixed runtime when examining the 'Arcane Barrage' spell.

Added new sprites for the EMP spell, courtesy of @kugamo!

Co-Authored-By: Kugamo <[email protected]>

* A few more tweaks

Changes:

Halved the percentages of 'Rise' (Glowing eyes) and 'Ascend' (Halos) to 10% and 20% respectively.
Hopefully fixed shield walls being passable while active.
Changed "Nar-sie" to "Nar'sie" in a few places.

* TM 2 fixes

Changes:

Teleport runes now only show the user when the animation has finished.
Cult shields are now invisible to ghosts when disabled.
Crayon runes now use the new rune sprites.
Construct night vision now actually works.
You can no longer soulstone yourself.
The death message for cult structures is now bigger.
Cult objectives are now displayed at roundstart.
Tweaked the icons for artificer spells.
Tweaked some cult related 'Tip of the round's.
Summoned cult ghosts no longer show in the 'Check Antagonists' panel when dead. (Hopefully)

* Cult members and Deconversion

Changes:

Using the 'Study the Veil' ability now shows how many members the cult has.
Holy water now unequips all cult clothing on deconversion. (Flagellant robe, blindfold, etc.)
Nar'Sie no longer warns admins that it doesn't have a containment field.
Fixed Zealot's Blindfolds not temporarily blinding any non-cultists who touch them.
The 'Summon Cultist' rune description now explains that restrained cultists cannot be summoned.
Fixed Travis (Probably)

* Cult Rise/Ascend balancing V1

The values here will almost certainly need some tweaking, but I feel like it's better than it was before; and certainly more customisable.

* Possibly maybe hopefully (one of) the last commits

Changes:

The cult halo no longer vanishes on relogging.
It's now possible to drag things on to runes again.

* A few minor fixes, and a major one

Changes:

Resetting your action button positions no longer completely breaks blood spells.
The downside to this fix is that Blood spells can no longer be moved around, so sorry sorry about that.

Fixes: ParadiseSS13#14393
Fixes: ParadiseSS13#13855

* New weapon sprites!

Adds fancy new sprites for all cult daggers and swords, courtesy of @McRamon!

They will need adjustments for Vox and Kidan at some point, and the Skrell inhand can look a bit odd at times, but those are also problems for every other weapon in the game so that can be fixed later.

Co-Authored-By: McRamon <[email protected]>

* TM 3 fixes

Changes:

Fixed action button related bugs, including making them movable again! (probably caused a bunch more but eh),
Slightly tweaked threshold for ascendance,
Blood Rites now cleans up slime blood,
The Deconversion message is now bigger,
Flagellant robes now take 5% more damage (Lasers do 30 damage rather than 29),
Teleport runes can no longer be erased while a portal effect is open,
Teleport rune portals now always show the Z-Level if they're not in station space,
Teleporting another player no longer makes you temporarily invisible,
Attempting to summon a restrained cultist now gives said cultist a warning message,
Fixed a runtime when placing a soulstone in a construct,
Cultists now show on the Orbit menu if you have AntagHUD enabled,
Fixed a few typos

Co-authored-by: datlo <[email protected]>
Co-authored-by: Kugamo <[email protected]>
Co-authored-by: McRamon <[email protected]>
  • Loading branch information
4 people authored Nov 7, 2020
1 parent 9aa98e2 commit 678435d
Show file tree
Hide file tree
Showing 99 changed files with 3,715 additions and 2,812 deletions.
4 changes: 0 additions & 4 deletions _maps/map_files/MetaStation/MetaStation.v41A.II.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -87001,11 +87001,7 @@
pixel_x = -2;
pixel_y = 2
},
/obj/item/nullrod{
pixel_x = 4
},
/obj/item/organ/internal/heart,
/obj/item/soulstone/anybody/chaplain,
/turf/simulated/floor/plasteel{
tag = "icon-cult";
icon_state = "cult";
Expand Down
5 changes: 5 additions & 0 deletions code/__DEFINES/colors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,11 @@
#define COLOR_ASSEMBLY_BLUE "#38559E"
#define COLOR_ASSEMBLY_PURPLE "#6F6192"

//blood colors

#define COLOR_BLOOD_BASE "#A10808"
#define COLOR_BLOOD_MACHINE "#1F181F"

// Pipe colours
#define PIPE_COLOR_GREY "#ffffff" //yes white is grey
#define PIPE_COLOR_RED "#ff0000"
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/construction.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@

//other construction-related things

//windows affected by nar-sie turn this color.
//windows affected by nar'sie turn this color.
#define NARSIE_WINDOW_COLOUR "#7D1919"

//let's just pretend fulltile windows being children of border windows is fine
Expand Down
66 changes: 66 additions & 0 deletions code/__DEFINES/cult.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
// Rune colors, for easy reference
#define RUNE_COLOR_TALISMAN "#0000FF"
#define RUNE_COLOR_TELEPORT "#551A8B"
#define RUNE_COLOR_OFFER "#FFFFFF"
#define RUNE_COLOR_DARKRED "#7D1717"
#define RUNE_COLOR_MEDIUMRED "#C80000"
#define RUNE_COLOR_BURNTORANGE "#CC5500"
#define RUNE_COLOR_RED "#FF0000"
#define RUNE_COLOR_LIGHTRED "#FF726F"
#define RUNE_COLOR_EMP "#4D94FF"
#define RUNE_COLOR_SUMMON "#00FF00"

#define is_sacrifice_target(A) SSticker.mode?.cult_objs.is_sac_target(A)

// Blood magic
/// Maximum number of spells with an empowering rune
#define MAX_BLOODCHARGE 4
/// Maximum number of spells without an empowering rune
#define RUNELESS_MAX_BLOODCHARGE 1
#define BLOOD_SPEAR_COST 150
#define BLOOD_BARRAGE_COST 300
#define BLOOD_BEAM_COST 500
#define METAL_TO_CONSTRUCT_SHELL_CONVERSION 50

// Cult Status
/// At what population does it switch to highpop values
#define CULT_POPULATION_THRESHOLD 100
/// Percent before rise (Lowpop)
#define CULT_RISEN_LOW 0.2
/// Percent before ascend (Lowpop)
#define CULT_ASCENDANT_LOW 0.3
/// Percent before rise (Highpop)
#define CULT_RISEN_HIGH 0.1
/// Percent before ascend (Highpop)
#define CULT_ASCENDANT_HIGH 0.2

// Screen locations
#define DEFAULT_BLOODSPELLS "6:-29,4:-2"
#define DEFAULT_BLOODTIP "14:6,14:27"
#define DEFAULT_TOOLTIP "6:-29,5:-2"

// Text
#define CULT_GREETING "<span class='cultlarge'>You catch a glimpse of the Realm of [SSticker.cultdat.entity_name], [SSticker.cultdat.entity_title3]. \
You now see how flimsy the world is, you see that it should be open to the knowledge of [SSticker.cultdat.entity_name].</span>"

#define CULT_CURSES list("A fuel technician just slit his own throat and begged for death.", \
"The shuttle's navigation programming was replaced by a file containing two words, IT COMES.", \
"The shuttle's custodian tore out his guts and began painting strange shapes on the floor.", \
"A shuttle engineer began screaming 'DEATH IS NOT THE END' and ripped out wires until an arc flash seared off her flesh.", \
"A shuttle inspector started laughing madly over the radio and then threw herself into an engine turbine.", \
"The shuttle dispatcher was found dead with bloody symbols carved into their flesh.", \
"Steve repeatedly touched a lightbulb until his hands fell off.")

// Misc
#define SOULS_TO_REVIVE 3
#define BLOODCULT_EYE "#FF0000"
#define SUMMON_POSSIBILITIES 3
#define CULT_CLOTHING list(/obj/item/clothing/suit/hooded/cultrobes, /obj/item/clothing/suit/space/cult, /obj/item/clothing/suit/hooded/cultrobes/cult_shield, \
/obj/item/clothing/suit/hooded/cultrobes/flagellant_robe, /obj/item/clothing/glasses/hud/health/night/cultblind)

// Cult objective status
#define NARSIE_IS_ASLEEP 0
#define NARSIE_DEMANDS_SACRIFICE 1
#define NARSIE_NEEDS_SUMMONING 2
#define NARSIE_HAS_RISEN 3
#define NARSIE_HAS_FALLEN -1
76 changes: 37 additions & 39 deletions code/__DEFINES/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -167,45 +167,46 @@
#define MFOAM_IRON 2

//Human Overlays Indexes/////////
#define BODY_LAYER 38
#define MUTANTRACE_LAYER 37
#define TAIL_UNDERLIMBS_LAYER 36 //Tail split-rendering.
#define LIMBS_LAYER 35
#define INTORGAN_LAYER 34
#define MARKINGS_LAYER 33
#define UNDERWEAR_LAYER 32
#define MUTATIONS_LAYER 31
#define H_DAMAGE_LAYER 30
#define UNIFORM_LAYER 29
#define ID_LAYER 28
#define SHOES_LAYER 27
#define GLOVES_LAYER 26
#define EARS_LAYER 25
#define SUIT_LAYER 24
#define BELT_LAYER 23 //Possible make this an overlay of somethign required to wear a belt?
#define SUIT_STORE_LAYER 22
#define BACK_LAYER 21
#define HEAD_ACCESSORY_LAYER 20
#define FHAIR_LAYER 19
#define GLASSES_LAYER 18
#define HAIR_LAYER 17 //TODO: make part of head layer?
#define HEAD_ACC_OVER_LAYER 16 //Select-layer rendering.
#define FHAIR_OVER_LAYER 15 //Select-layer rendering.
#define GLASSES_OVER_LAYER 14 //Select-layer rendering.
#define TAIL_LAYER 13 //bs12 specific. this hack is probably gonna come back to haunt me
#define FACEMASK_LAYER 12
#define OVER_MASK_LAYER 11 //Select-layer rendering.
#define HEAD_LAYER 10
#define COLLAR_LAYER 9
#define HANDCUFF_LAYER 8
#define LEGCUFF_LAYER 7
#define L_HAND_LAYER 6
#define R_HAND_LAYER 5
#define TARGETED_LAYER 4 //BS12: Layer for the target overlay from weapon targeting system
#define BODY_LAYER 39
#define MUTANTRACE_LAYER 38
#define TAIL_UNDERLIMBS_LAYER 37 //Tail split-rendering.
#define LIMBS_LAYER 36
#define INTORGAN_LAYER 35
#define MARKINGS_LAYER 34
#define UNDERWEAR_LAYER 33
#define MUTATIONS_LAYER 32
#define H_DAMAGE_LAYER 31
#define UNIFORM_LAYER 30
#define ID_LAYER 29
#define SHOES_LAYER 28
#define GLOVES_LAYER 27
#define EARS_LAYER 26
#define SUIT_LAYER 25
#define BELT_LAYER 24 //Possible make this an overlay of somethign required to wear a belt?
#define SUIT_STORE_LAYER 23
#define BACK_LAYER 22
#define HEAD_ACCESSORY_LAYER 21
#define FHAIR_LAYER 20
#define GLASSES_LAYER 19
#define HAIR_LAYER 18 //TODO: make part of head layer?
#define HEAD_ACC_OVER_LAYER 17 //Select-layer rendering.
#define FHAIR_OVER_LAYER 16 //Select-layer rendering.
#define GLASSES_OVER_LAYER 15 //Select-layer rendering.
#define TAIL_LAYER 14 //bs12 specific. this hack is probably gonna come back to haunt me
#define FACEMASK_LAYER 13
#define OVER_MASK_LAYER 12 //Select-layer rendering.
#define HEAD_LAYER 11
#define COLLAR_LAYER 10
#define HANDCUFF_LAYER 9
#define LEGCUFF_LAYER 8
#define L_HAND_LAYER 7
#define R_HAND_LAYER 6
#define TARGETED_LAYER 5 //BS12: Layer for the target overlay from weapon targeting system
#define HALO_LAYER 4 //blood cult ascended halo, because there's currently no better solution for adding/removing
#define FIRE_LAYER 3 //If you're on fire
#define MISC_LAYER 2
#define FROZEN_LAYER 1
#define TOTAL_LAYERS 38
#define TOTAL_LAYERS 39

///Access Region Codes///
#define REGION_ALL 0
Expand Down Expand Up @@ -446,9 +447,6 @@
#define SENSOR_VITALS 2
#define SENSOR_COORDS 3

// Cult summon possibilities
#define SUMMON_POSSIBILITIES 3

// Dice rigged options.
#define DICE_NOT_RIGGED 1
#define DICE_BASICALLY_RIGGED 2
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/status_effects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@

//#define STATUS_EFFECT_HISWRATH /datum/status_effect/his_wrath //His Wrath.

#define STATUS_EFFECT_SUMMONEDGHOST /datum/status_effect/cultghost //is a cult ghost and can't use manifest runes
#define STATUS_EFFECT_SUMMONEDGHOST /datum/status_effect/cultghost //is a cult ghost: can see dead people, can't manifest more ghosts

#define STATUS_EFFECT_CRUSHERMARK /datum/status_effect/crusher_mark //if struck with a proto-kinetic crusher, takes a ton of damage

Expand Down
5 changes: 5 additions & 0 deletions code/__HELPERS/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,10 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_BLOODCRAWL_EAT "bloodcrawl_eat"
#define TRAIT_JESTER "jester"

//
// common trait sources
#define ROUNDSTART_TRAIT "roundstart" //cannot be removed without admin intervention
#define CULT_TRAIT "cult"

// unique trait sources
#define CULT_EYES "cult_eyes"
2 changes: 0 additions & 2 deletions code/_globalvars/game_modes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,3 @@ GLOBAL_DATUM(start_state, /datum/station_state) // Used in round-end report. Don

GLOBAL_VAR(custom_event_msg)
GLOBAL_VAR(custom_event_admin_msg)

GLOBAL_LIST_EMPTY(summon_spots)
13 changes: 10 additions & 3 deletions code/_onclick/hud/action_button.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
/obj/screen/movable/action_button
var/datum/action/linked_action
var/actiontooltipstyle = ""
screen_loc = null
var/ordered = TRUE

/obj/screen/movable/action_button/MouseDrop(over_object)
if((istype(over_object, /obj/screen/movable/action_button) && !istype(over_object, /obj/screen/movable/action_button/hide_toggle)))
Expand All @@ -12,7 +14,9 @@
var/list/actions = usr.actions
actions.Swap(actions.Find(linked_action), actions.Find(B.linked_action))
moved = FALSE
ordered = TRUE
B.moved = FALSE
B.ordered = TRUE
closeToolTip(usr)
usr.update_action_buttons()
else if(istype(over_object, /obj/screen/movable/action_button/hide_toggle))
Expand All @@ -28,7 +32,7 @@
to_chat(usr, "<span class='warning'>Action button \"[name]\" is locked, unlock it first.</span>")
return TRUE
moved = FALSE
usr.update_action_buttons() //redraw buttons that are no longer considered "moved"
usr.update_action_buttons(TRUE) //redraw buttons that are no longer considered "moved"
return TRUE
if(modifiers["ctrl"])
locked = !locked
Expand Down Expand Up @@ -120,7 +124,7 @@

/obj/screen/movable/action_button/MouseEntered(location, control, params)
if(!QDELETED(src))
openToolTip(usr, src, params, title = name, content = desc)
openToolTip(usr, src, params, title = name, content = desc, theme = actiontooltipstyle)

/obj/screen/movable/action_button/MouseExited()
closeToolTip(usr)
Expand All @@ -147,9 +151,12 @@
client.screen += A.button
else
for(var/datum/action/A in actions)
button_number++
A.override_location() // If the action has a location override, call it
A.UpdateButtonIcon()

var/obj/screen/movable/action_button/B = A.button
if(B.ordered)
button_number++
if(!B.moved)
B.screen_loc = hud_used.ButtonNumberToScreenCoords(button_number)
else
Expand Down
6 changes: 5 additions & 1 deletion code/datums/action.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
var/obj/screen/movable/action_button/button = null
var/button_icon = 'icons/mob/actions/actions.dmi'
var/background_icon_state = "bg_default"

var/buttontooltipstyle = ""
var/icon_icon = 'icons/mob/actions/actions.dmi'
var/button_icon_state = "default"
var/mob/owner
Expand All @@ -22,6 +22,7 @@
button = new
button.linked_action = src
button.name = name
button.actiontooltipstyle = buttontooltipstyle
if(desc)
button.desc = desc

Expand Down Expand Up @@ -64,6 +65,9 @@
/datum/action/proc/Process()
return

/datum/action/proc/override_location() // Override to set coordinates manually
return

/datum/action/proc/IsAvailable()// returns 1 if all checks pass
if(!owner)
return FALSE
Expand Down
60 changes: 15 additions & 45 deletions code/datums/mind.dm
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@
. = _memory_edit_header("cult")
if(src in SSticker.mode.cult)
. += "<a href='?src=[UID()];cult=clear'>no</a>|<b><font color='red'>CULTIST</font></b>"
. += "<br>Give <a href='?src=[UID()];cult=tome'>tome</a>|<a href='?src=[UID()];cult=equip'>equip</a>."
. += "<br>Give <a href='?src=[UID()];cult=dagger'>dagger</a>|<a href='?src=[UID()];cult=runedmetal'>runedmetal</a>."
else
. += "<b>NO</b>|<a href='?src=[UID()];cult=cultist'>cultist</a>"

Expand Down Expand Up @@ -412,8 +412,6 @@
sections["implant"] = memory_edit_implant(H)
/** REVOLUTION ***/
sections["revolution"] = memory_edit_revolution(H)
/** CULT ***/
sections["cult"] = memory_edit_cult(H)
/** WIZARD ***/
sections["wizard"] = memory_edit_wizard(H)
/** CHANGELING ***/
Expand All @@ -433,6 +431,9 @@
sections["eventmisc"] = memory_edit_eventmisc(H)
/** TRAITOR ***/
sections["traitor"] = memory_edit_traitor()
if(!issilicon(current))
/** CULT ***/
sections["cult"] = memory_edit_cult(H)
/** SILICON ***/
if(issilicon(current))
sections["silicon"] = memory_edit_silicon()
Expand Down Expand Up @@ -725,15 +726,6 @@
special_role = null
SSticker.mode.head_revolutionaries -=src
to_chat(src, "<span class='warning'><Font size = 3><B>The nanobots in the mindshield implant remove all thoughts about being a revolutionary. Get back to work!</B></Font></span>")
if(src in SSticker.mode.cult)
SSticker.mode.cult -= src
SSticker.mode.update_cult_icons_removed(src)
special_role = null
var/datum/game_mode/cult/cult = SSticker.mode
if(istype(cult))
cult.memorize_cult_objectives(src)
to_chat(current, "<span class='warning'><FONT size = 3><B>The nanobots in the mindshield implant remove all thoughts about being in a cult. Have a productive day!</B></FONT></span>")
memory = ""

else if(href_list["revolution"])

Expand Down Expand Up @@ -851,41 +843,19 @@
if(!(src in SSticker.mode.cult))
SSticker.mode.add_cultist(src)
special_role = SPECIAL_ROLE_CULTIST
to_chat(current, "<span class='cultitalic'>You catch a glimpse of the Realm of [SSticker.cultdat.entity_name], [SSticker.cultdat.entity_title3]. You now see how flimsy the world is, you see that it should be open to the knowledge of [SSticker.cultdat.entity_name].</span>")
to_chat(current, CULT_GREETING)
to_chat(current, "<span class='cultitalic'>Assist your new compatriots in their dark dealings. Their goal is yours, and yours is theirs. You serve [SSticker.cultdat.entity_title2] above all else. Bring It back.</span>")
log_admin("[key_name(usr)] has culted [key_name(current)]")
message_admins("[key_name_admin(usr)] has culted [key_name_admin(current)]")
if(!GLOB.summon_spots.len)
while(GLOB.summon_spots.len < SUMMON_POSSIBILITIES)
var/area/summon = pick(return_sorted_areas() - GLOB.summon_spots)
if(summon && is_station_level(summon.z) && summon.valid_territory)
GLOB.summon_spots += summon
if("tome")
log_and_message_admins("[key_name(usr)] has culted [key_name(current)]")
if("dagger")
var/mob/living/carbon/human/H = current
if(istype(H))
var/obj/item/tome/T = new(H)

var/list/slots = list (
"backpack" = slot_in_backpack,
"left pocket" = slot_l_store,
"right pocket" = slot_r_store,
"left hand" = slot_l_hand,
"right hand" = slot_r_hand,
)
var/where = H.equip_in_one_of_slots(T, slots)
if(!where)
to_chat(usr, "<span class='warning'>Spawning tome failed!</span>")
qdel(T)
else
to_chat(H, "A tome, a message from your new master, appears in your [where].")
log_admin("[key_name(usr)] has spawned a tome for [key_name(current)]")
message_admins("[key_name_admin(usr)] has spawned a tome for [key_name_admin(current)]")

if("equip")
if(!SSticker.mode.equip_cultist(current))
to_chat(usr, "<span class='warning'>Spawning equipment failed!</span>")
log_admin("[key_name(usr)] has equipped [key_name(current)] as a cultist")
message_admins("[key_name_admin(usr)] has equipped [key_name_admin(current)] as a cultist")
if(!SSticker.mode.cult_give_item(/obj/item/melee/cultblade/dagger, H))
to_chat(usr, "<span class='warning'>Spawning dagger failed!</span>")
log_and_message_admins("[key_name(usr)] has equipped [key_name(current)] with a cult dagger")
if("runedmetal")
var/mob/living/carbon/human/H = current
if(!SSticker.mode.cult_give_item(/obj/item/stack/sheet/runed_metal/ten, H))
to_chat(usr, "<span class='warning'>Spawning runed metal failed!</span>")
log_and_message_admins("[key_name(usr)] has equipped [key_name(current)] with 10 runed metal sheets")

else if(href_list["wizard"])

Expand Down
Loading

0 comments on commit 678435d

Please sign in to comment.