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

Removes Chaplain Magic #2936

Merged
merged 15 commits into from
Jun 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@
pixel_x = -5;
pixel_y = 12
},
/obj/item/clothing/head/helmet/chaplain/ancient{
/obj/item/clothing/head/witchunter{
pixel_y = 13;
pixel_x = -5
},
Expand Down
3 changes: 1 addition & 2 deletions _maps/RandomRuins/SpaceRuins/spacemall.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -2809,10 +2809,9 @@
/obj/item/clothing/head/collectable/chef,
/obj/item/clothing/head/collectable/HoP,
/obj/item/clothing/head/collectable/rabbitears,
/obj/item/clothing/head/helmet/chaplain,
/obj/item/clothing/head/witchunter,
/obj/item/clothing/neck/cloak/trans,
/obj/item/clothing/neck/cloak/cap,
/obj/item/clothing/head/helmet/chaplain/witchunter_hat,
/obj/item/clothing/neck/beads,
/obj/item/clothing/neck/necklace/dope,
/obj/item/clothing/neck/stripedredscarf,
Expand Down
6 changes: 3 additions & 3 deletions _maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -424,7 +424,7 @@
"qo" = (
/obj/structure/closet/cabinet,
/obj/item/spear/bonespear,
/obj/item/clothing/suit/armor/riot/chaplain/studentuni,
/obj/item/clothing/suit/armor/witchhunter,
/obj/item/reagent_containers/food/snacks/grown/berries/death,
/turf/open/floor/wood/waste,
/area/ruin/wasteplanet)
Expand Down Expand Up @@ -461,7 +461,7 @@
/area/ruin/wasteplanet)
"qU" = (
/obj/structure/closet/cabinet,
/obj/item/clothing/suit/armor/riot/chaplain/studentuni,
/obj/item/clothing/suit/armor/witchhunter,
/turf/open/floor/wood/waste,
/area/ruin/wasteplanet)
"rh" = (
Expand Down Expand Up @@ -492,7 +492,7 @@
"sV" = (
/obj/structure/closet/cabinet,
/obj/item/claymore/bone,
/obj/item/clothing/suit/armor/riot/chaplain/studentuni,
/obj/item/clothing/suit/armor/witchhunter,
/turf/open/floor/wood/waste,
/area/ruin/wasteplanet)
"tB" = (
Expand Down
2 changes: 1 addition & 1 deletion _maps/shuttles/roumain/srm_elder.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -2617,7 +2617,7 @@
/obj/item/clothing/under/suit/roumain,
/obj/item/clothing/suit/armor/roumain,
/obj/item/clothing/head/cowboy/sec/roumain,
/obj/item/clothing/suit/armor/riot/chaplain/witchhunter,
/obj/item/clothing/suit/armor/witchhunter,
/obj/item/flashlight/lantern,
/obj/structure/closet/secure_closet/hunter,
/obj/item/lighter,
Expand Down
2 changes: 1 addition & 1 deletion check_regex.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ standards:

- exactly:
[
268,
265,
"non-bitwise << uses",
'(?<!\d)(?<!\d\s)(?<!<)<<(?!=|\s\d|\d|<|\/)',
]
Expand Down
5 changes: 0 additions & 5 deletions code/__DEFINES/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -445,11 +445,6 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define FALL_NO_MESSAGE (1<<1) //Used to suppress the "[A] falls through [old_turf]" messages where it'd make little sense at all, like going downstairs.
#define FALL_STOP_INTERCEPTING (1<<2) //Used in situations where halting the whole "intercept" loop would be better, like supermatter dusting (and thus deleting) the atom.

//Religion

#define HOLY_ROLE_PRIEST 1 //default priestly role
#define HOLY_ROLE_HIGHPRIEST 2 //the one who designates the religion

#define ALIGNMENT_GOOD "good"
#define ALIGNMENT_NEUT "neutral"
#define ALIGNMENT_EVIL "evil"
Expand Down
1 change: 0 additions & 1 deletion code/datums/mind.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@
var/damnation_type = 0
var/datum/mind/soulOwner //who owns the soul. Under normal circumstances, this will point to src
var/hasSoul = TRUE // If false, renders the character unable to sell their soul.
var/holy_role = NONE //is this person a chaplain or admin role allowed to use bibles, Any rank besides 'NONE' allows for this.

var/mob/living/enslaved_to //If this mind's master is another mob
var/datum/language_holder/language_holder
Expand Down
2 changes: 0 additions & 2 deletions code/game/gamemodes/cult/cult.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@
if(!istype(M))
return FALSE
if(M.mind)
if(ishuman(M) && (M.mind.holy_role))
return FALSE
if(specific_cult && specific_cult.is_sacrifice_target(M.mind))
return FALSE
if(M.mind.enslaved_to && !iscultist(M.mind.enslaved_to))
Expand Down
207 changes: 3 additions & 204 deletions code/game/objects/items/holy_weapons.dm
Original file line number Diff line number Diff line change
@@ -1,150 +1,12 @@
// CHAPLAIN CUSTOM ARMORS //

/obj/item/clothing/head/helmet/chaplain
name = "crusader helmet"
desc = "Deus Vult."
icon_state = "knight_templar"
item_state = "knight_templar"
armor = list("melee" = 50, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
strip_delay = 80
dog_fashion = null

/obj/item/clothing/suit/armor/riot/chaplain
name = "crusader armour"
desc = "God wills it!"
icon_state = "chaplain_templar"
item_state = "knight_templar"
allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
slowdown = 0
clothing_flags = NONE

/obj/item/choice_beacon/holy
name = "armaments beacon"
desc = "Contains a set of armaments for the chaplain."

/obj/item/choice_beacon/holy/canUseBeacon(mob/living/user)
if(user.mind && user.mind.holy_role)
return ..()
else
playsound(src, 'sound/machines/buzz-sigh.ogg', 40, TRUE)
return FALSE

/obj/item/choice_beacon/holy/generate_display_names()
var/static/list/holy_item_list
if(!holy_item_list)
holy_item_list = list()
var/list/templist = typesof(/obj/item/storage/box/holy)
for(var/V in templist)
var/atom/A = V
holy_item_list[initial(A.name)] = A
return holy_item_list

/obj/item/choice_beacon/holy/spawn_option(obj/choice,mob/living/M)
if(!GLOB.holy_armor_type)
..()
playsound(src, 'sound/effects/pray_chaplain.ogg', 40, TRUE)
SSblackbox.record_feedback("tally", "chaplain_armor", 1, "[choice]")
GLOB.holy_armor_type = choice
else
to_chat(M, "<span class='warning'>A selection has already been made. Self-Destructing...</span>")
return


/obj/item/storage/box/holy
name = "Templar Kit"

/obj/item/storage/box/holy/PopulateContents()
new /obj/item/clothing/head/helmet/chaplain(src)
new /obj/item/clothing/suit/armor/riot/chaplain(src)

/obj/item/storage/box/holy/student
name = "Profane Scholar Kit"

/obj/item/storage/box/holy/student/PopulateContents()
new /obj/item/clothing/suit/armor/riot/chaplain/studentuni(src)
new /obj/item/clothing/head/helmet/chaplain/cage(src)

/obj/item/clothing/suit/armor/riot/chaplain/studentuni
name = "student robe"
desc = "The uniform of a bygone institute of learning."
icon_state = "chaplain_studentuni"
item_state = "studentuni"
body_parts_covered = ARMS|CHEST
allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)

/obj/item/clothing/head/helmet/chaplain/cage
name = "cage"
desc = "A cage that restrains the will of the self, allowing one to see the profane world for what it is."
flags_inv = HIDEHAIR //bald
mob_overlay_icon = 'icons/mob/large-worn-icons/64x64/head.dmi'
icon_state = "cage"
item_state = "cage"
worn_x_dimension = 64
worn_y_dimension = 64

/obj/item/storage/box/holy/sentinel
name = "Stone Sentinel Kit"

/obj/item/storage/box/holy/sentinel/PopulateContents()
new /obj/item/clothing/suit/armor/riot/chaplain/ancient(src)
new /obj/item/clothing/head/helmet/chaplain/ancient(src)

/obj/item/clothing/head/helmet/chaplain/ancient
name = "ancient helmet"
desc = "None may pass!"
icon_state = "knight_ancient"
item_state = "knight_ancient"

/obj/item/clothing/suit/armor/riot/chaplain/ancient
name = "ancient armour"
desc = "Defend the treasure..."
icon_state = "chaplain_ancient"
item_state = "knight_ancient"

/obj/item/storage/box/holy/witchhunter
name = "Witchhunter Kit"

/obj/item/storage/box/holy/witchhunter/PopulateContents()
new /obj/item/clothing/suit/armor/riot/chaplain/witchhunter(src)
new /obj/item/clothing/head/helmet/chaplain/witchunter_hat(src)

/obj/item/clothing/suit/armor/riot/chaplain/witchhunter
name = "witchunter garb"
desc = "This worn outfit saw much use back in the day."
icon_state = "chaplain_witchhunter"
item_state = "witchhunter"
body_parts_covered = CHEST|GROIN|LEGS|ARMS

/obj/item/clothing/head/helmet/chaplain/witchunter_hat
name = "witchunter hat"
desc = "This hat saw much use back in the day."
icon_state = "witchhunterhat"
item_state = "witchhunterhat"
flags_cover = HEADCOVERSEYES
flags_inv = HIDEEYES|HIDEHAIR

/obj/item/storage/box/holy/adept
name = "Divine Adept Kit"

/obj/item/storage/box/holy/adept/PopulateContents()
new /obj/item/clothing/suit/armor/riot/chaplain/adept(src)
new /obj/item/clothing/head/helmet/chaplain/adept(src)

/obj/item/clothing/head/helmet/chaplain/adept
name = "adept hood"
desc = "Its only heretical when others do it."
icon_state = "crusader"
item_state = "crusader"
flags_cover = HEADCOVERSEYES
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
/obj/item/storage/box/holy/PopulateContents()
new /obj/item/clothing/head/witchunter(src)
new /obj/item/clothing/suit/armor/witchhunter(src)

/obj/item/clothing/suit/armor/riot/chaplain/adept
name = "adept robes"
desc = "The ideal outfit for burning the unfaithful."
icon_state = "chaplain_crusader"
item_state = "crusader"

/obj/item/storage/box/holy/follower
name = "Followers of the Chaplain Kit"
Expand Down Expand Up @@ -203,62 +65,6 @@
var/reskinned = FALSE
var/chaplain_spawnable = TRUE

/obj/item/nullrod/Initialize()
. = ..()
AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, null, null, FALSE)

/obj/item/nullrod/attack_self(mob/user)
if(user.mind && (user.mind.holy_role) && !reskinned)
reskin_holy_weapon(user)

/**
* reskin_holy_weapon: Shows a user a list of all available nullrod reskins and based on his choice replaces the nullrod with the reskinned version
*
* Arguments:
* * M The mob choosing a nullrod reskin
*/
/obj/item/nullrod/proc/reskin_holy_weapon(mob/M)
if(GLOB.holy_weapon_type)
return
var/list/display_names = list()
var/list/nullrod_icons = list()
for(var/V in typesof(/obj/item/nullrod))
var/obj/item/nullrod/rodtype = V
if(initial(rodtype.chaplain_spawnable))
display_names[initial(rodtype.name)] = rodtype
nullrod_icons += list(initial(rodtype.name) = image(icon = initial(rodtype.icon), icon_state = initial(rodtype.icon_state)))

nullrod_icons = sortList(nullrod_icons)
var/choice = show_radial_menu(M, src , nullrod_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), M), radius = 42, require_near = TRUE)
if(!choice || !check_menu(M))
return

var/A = display_names[choice] // This needs to be on a separate var as list member access is not allowed for new
var/obj/item/nullrod/holy_weapon = new A
GLOB.holy_weapon_type = holy_weapon.type

SSblackbox.record_feedback("tally", "chaplain_weapon", 1, "[choice]")

if(holy_weapon)
holy_weapon.reskinned = TRUE
qdel(src)
M.put_in_active_hand(holy_weapon)

/**
* check_menu: Checks if we are allowed to interact with a radial menu
*
* Arguments:
* * user The mob interacting with a menu
*/
/obj/item/nullrod/proc/check_menu(mob/user)
if(!istype(user))
return FALSE
if(QDELETED(src) || reskinned)
return FALSE
if(user.incapacitated() || !user.is_holding(src))
return FALSE
return TRUE

/obj/item/nullrod/godhand
icon_state = "disintegrate"
item_state = "disintegrate"
Expand Down Expand Up @@ -648,13 +454,6 @@
hitsound = 'sound/weapons/bite.ogg'
var/used_blessing = FALSE

/obj/item/nullrod/carp/attack_self(mob/living/user)
if(used_blessing)
else if(user.mind && (user.mind.holy_role))
to_chat(user, "<span class='boldnotice'>You are blessed by Carp-Sie. Wild space carp will no longer attack you.</span>")
user.faction |= "carp"
used_blessing = TRUE

/obj/item/nullrod/claymore/bostaff //May as well make it a "claymore" and inherit the blocking
name = "monk's staff"
desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts, it is now used to harass the clown."
Expand Down
Loading
Loading