mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-20 20:37:34 +01:00
Cult and antag fixes/tweaks (#3524)
This commit is contained in:
@@ -65,6 +65,10 @@
|
||||
return 1
|
||||
if(istype(A,/obj/item/device/radio/beacon))
|
||||
return 1
|
||||
if(istype(A,/obj/item/phylactery))
|
||||
return 1
|
||||
if(istype(A,/obj/effect/decal/wizard_mark))
|
||||
return 1
|
||||
|
||||
for(var/i=1, i<=A.contents.len, i++)
|
||||
var/atom/B = A.contents[i]
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
bantype = "changeling"
|
||||
feedback_tag = "changeling_objective"
|
||||
restricted_jobs = list("AI", "Cyborg", "Head of Security", "Captain", "Internal Affairs Agent")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective")
|
||||
protected_jobs = list("Security Officer", "Security Cadet", "Warden", "Detective", "Forensic Technician")
|
||||
restricted_species = list("Baseline Frame","Shell Frame","Industrial Frame")
|
||||
welcome_text = "Use say \"#g message\" to communicate with your fellow changelings. Remember: you get all of their absorbed DNA if you absorb them."
|
||||
flags = ANTAG_SUSPICIOUS | ANTAG_RANDSPAWN | ANTAG_VOTABLE
|
||||
antaghud_indicator = "hudchangeling"
|
||||
|
||||
|
||||
faction = "Changeling"
|
||||
|
||||
/datum/antagonist/changeling/get_special_objective_text(var/datum/mind/player)
|
||||
|
||||
@@ -18,7 +18,7 @@ var/datum/antagonist/cultist/cult
|
||||
role_text_plural = "Cultists"
|
||||
bantype = "cultist"
|
||||
restricted_jobs = list("Chaplain","AI", "Cyborg", "Internal Affairs Agent", "Head of Security", "Captain")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective")
|
||||
protected_jobs = list("Security Officer", "Security Cadet", "Warden", "Detective", "Forensic Technician")
|
||||
feedback_tag = "cult_objective"
|
||||
antag_indicator = "cult"
|
||||
welcome_text = "You have a talisman in your possession; one that will help you start the cult on this station. Use it well and remember - there are others."
|
||||
|
||||
@@ -29,7 +29,7 @@ var/datum/antagonist/revolutionary/revs
|
||||
faction_invisible = 1
|
||||
|
||||
restricted_jobs = list("AI", "Cyborg")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Personnel", "Chief Engineer", "Research Director", "Chief Medical Officer", "Captain", "Head of Security", "Internal Affairs Agent")
|
||||
protected_jobs = list("Security Officer", "Security Cadet", "Warden", "Detective", "Forensic Technician", "Head of Personnel", "Chief Engineer", "Research Director", "Chief Medical Officer", "Captain", "Head of Security", "Internal Affairs Agent")
|
||||
|
||||
/datum/antagonist/revolutionary/New()
|
||||
..()
|
||||
|
||||
@@ -4,7 +4,7 @@ var/datum/antagonist/traitor/traitors
|
||||
/datum/antagonist/traitor
|
||||
id = MODE_TRAITOR
|
||||
restricted_jobs = list("Internal Affairs Agent", "Head of Security", "Captain")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective")
|
||||
protected_jobs = list("Security Officer", "Security Cadet", "Warden", "Detective", "Forensic Technician")
|
||||
flags = ANTAG_SUSPICIOUS | ANTAG_RANDSPAWN | ANTAG_VOTABLE
|
||||
|
||||
faction = "syndicate"
|
||||
|
||||
@@ -7,7 +7,7 @@ var/datum/antagonist/vampire/vamp = null
|
||||
bantype = "vampires"
|
||||
feedback_tag = "vampire_objective"
|
||||
restricted_jobs = list("AI", "Cyborg", "Chaplain", "Head of Security", "Captain", "Internal Affairs Agent")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective")
|
||||
protected_jobs = list("Security Officer", "Security Cadet", "Warden", "Detective", "Forensic Technician")
|
||||
restricted_species = list("Baseline Frame","Shell Frame","Industrial Frame","Diona")
|
||||
welcome_text = "You are a Vampire! Use the \"<b>Vampire Help</b>\" command to learn about the backstory and mechanics! Stay away from the Chaplain, and use the darkness to your advantage."
|
||||
flags = ANTAG_SUSPICIOUS | ANTAG_RANDSPAWN | ANTAG_VOTABLE
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/item/clothing/head/culthood
|
||||
name = "hood"
|
||||
name = "ragged hood"
|
||||
icon_state = "culthood"
|
||||
desc = "A torn, dust-caked hood."
|
||||
flags_inv = HIDEFACE|HIDEEARS|HIDEEYES
|
||||
@@ -78,7 +78,7 @@
|
||||
icon_state = "cult_hoodalt"
|
||||
|
||||
/obj/item/clothing/suit/cultrobes
|
||||
name = "robes"
|
||||
name = "ragged robes"
|
||||
desc = "A ragged, dusty set of robes."
|
||||
icon_state = "cultrobes"
|
||||
item_state = "cultrobes"
|
||||
@@ -104,7 +104,7 @@
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
|
||||
/obj/item/clothing/head/helmet/space/cult
|
||||
name = "cult helmet"
|
||||
name = "eldritch helmet"
|
||||
desc = "A bulky helmet, bristling with spikes. It looks space proof."
|
||||
icon_state = "cult_helmet"
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
|
||||
@@ -114,7 +114,7 @@
|
||||
return
|
||||
|
||||
/obj/item/clothing/suit/space/cult
|
||||
name = "cult armour"
|
||||
name = "eldritch armour"
|
||||
icon_state = "cult_armour"
|
||||
item_state = "cult_armour"
|
||||
desc = "A bulky suit of armour, bristling with spikes. It looks space proof."
|
||||
|
||||
@@ -116,7 +116,7 @@ var/list/sacrificed = list()
|
||||
|
||||
if(!target) //didn't find any new targets
|
||||
if(!converting.len)
|
||||
fizzle()
|
||||
fizzle(user)
|
||||
else
|
||||
user << "<span class='danger'>You sense that the power of the dark one is already working away at them.</span>"
|
||||
return
|
||||
@@ -179,6 +179,7 @@ var/list/sacrificed = list()
|
||||
cult.add_antagonist(target.mind)
|
||||
converting -= target
|
||||
target.hallucination = 0 //sudden clarity
|
||||
playsound(target, 'sound/effects/bloodcult.ogg', 100, 1)
|
||||
|
||||
sleep(100) //proc once every 10 seconds
|
||||
return 1
|
||||
@@ -187,7 +188,7 @@ var/list/sacrificed = list()
|
||||
|
||||
/obj/effect/rune/proc/tearreality(var/mob/living/user)
|
||||
if(!cult.allow_narsie)
|
||||
return fizzle()
|
||||
return fizzle(user)
|
||||
|
||||
var/list/cultists = new()
|
||||
for(var/mob/M in range(1,src))
|
||||
@@ -214,7 +215,7 @@ var/list/sacrificed = list()
|
||||
user.say("Ta'gh fara[pick("'","`")]qha fel d'amar det!")
|
||||
else
|
||||
user.whisper("Ta'gh fara[pick("'","`")]qha fel d'amar det!")
|
||||
playsound(U, 'sound/items/Welder2.ogg', 25, 1)
|
||||
playsound(U, 'sound/magic/Disable_Tech.ogg', 25, 1)
|
||||
var/turf/T = get_turf(U)
|
||||
if(T)
|
||||
T.hotspot_expose(700,125)
|
||||
@@ -242,6 +243,7 @@ var/list/sacrificed = list()
|
||||
user.visible_message("<span class='danger'>Blood flows from the rune into [user]!</span>", \
|
||||
"<span class='danger'>The blood starts flowing from the rune and into your frail mortal body. You feel... empowered.</span>", \
|
||||
"<span class='warning'>You hear a liquid flowing.</span>")
|
||||
playsound(user, 'sound/magic/enter_blood.ogg', 100, 1)
|
||||
|
||||
if(user.bhunger)
|
||||
user.bhunger = max(user.bhunger-2*drain,0)
|
||||
@@ -325,7 +327,7 @@ var/list/sacrificed = list()
|
||||
user << "<span class='warning'>The Geometer of Blood wants that corpse for himself.</span>"
|
||||
else
|
||||
user << "<span class='warning'>The sacrifical corpse is not dead. You must free it from this world of illusions before it may be used.</span>"
|
||||
return fizzle()
|
||||
return fizzle(user)
|
||||
|
||||
var/mob/dead/observer/ghost
|
||||
for(var/mob/dead/observer/O in loc)
|
||||
@@ -421,7 +423,7 @@ var/list/sacrificed = list()
|
||||
var/obj/effect/rune/this_rune = src
|
||||
src = null
|
||||
if(user.loc!=this_rune.loc)
|
||||
return this_rune.fizzle()
|
||||
return this_rune.fizzle(user)
|
||||
var/mob/dead/observer/ghost
|
||||
for(var/mob/dead/observer/O in this_rune.loc)
|
||||
if(!O.client) continue
|
||||
@@ -430,9 +432,9 @@ var/list/sacrificed = list()
|
||||
ghost = O
|
||||
break
|
||||
if(!ghost)
|
||||
return this_rune.fizzle()
|
||||
return this_rune.fizzle(user)
|
||||
if(jobban_isbanned(ghost, "cultist"))
|
||||
return this_rune.fizzle()
|
||||
return this_rune.fizzle(user)
|
||||
|
||||
user.say("Gal'h'rfikk harfrandid mud[pick("'","`")]gib!")
|
||||
var/mob/living/carbon/human/apparition/D = new(this_rune.loc)
|
||||
@@ -450,6 +452,7 @@ var/list/sacrificed = list()
|
||||
D.underwear = 0
|
||||
D.key = ghost.key
|
||||
cult.add_antagonist(D.mind)
|
||||
playsound(loc, 'sound/magic/exit_blood.ogg', 100, 1)
|
||||
|
||||
if(!chose_name)
|
||||
D.real_name = pick("Anguished", "Blasphemous", "Corrupt", "Cruel", "Depraved", "Despicable", "Disturbed", "Exacerbated", "Foul", "Hateful", "Inexorable", "Implacable", "Impure", "Malevolent", "Malignant", "Malicious", "Pained", "Profane", "Profligate", "Relentless", "Resentful", "Restless", "Spiteful", "Tormented", "Unclean", "Unforgiving", "Vengeful", "Vindictive", "Wicked", "Wronged")
|
||||
@@ -484,7 +487,7 @@ var/list/sacrificed = list()
|
||||
if (!newtalisman)
|
||||
if (unsuitable_newtalisman)
|
||||
user << "<span class='warning'>The blank is tainted. It is unsuitable.</span>"
|
||||
return fizzle()
|
||||
return fizzle(user)
|
||||
|
||||
var/obj/effect/rune/imbued_from
|
||||
var/obj/item/weapon/paper/talisman/T
|
||||
@@ -577,7 +580,7 @@ var/list/sacrificed = list()
|
||||
var/input = input(user, "Please choose a message to tell to the other acolytes.", "Voice of Blood", "")//sanitize() below, say() and whisper() have their own
|
||||
if(!input)
|
||||
if (istype(src))
|
||||
fizzle()
|
||||
fizzle(user)
|
||||
return 0
|
||||
else
|
||||
return 0
|
||||
@@ -783,7 +786,7 @@ var/list/sacrificed = list()
|
||||
if(users.len>=3)
|
||||
var/mob/living/carbon/cultist = input("Choose the one who you want to free", "Followers of Geometer") as null|anything in (cultists - users)
|
||||
if(!cultist)
|
||||
return fizzle()
|
||||
return fizzle(user)
|
||||
if (cultist == user) //just to be sure.
|
||||
return
|
||||
if(!(cultist.buckled || \
|
||||
@@ -828,12 +831,12 @@ var/list/sacrificed = list()
|
||||
if(users.len>=3)
|
||||
var/mob/living/carbon/cultist = input("Choose the one who you want to summon", "Followers of Geometer") as null|anything in (cultists - user)
|
||||
if(!cultist)
|
||||
return fizzle()
|
||||
return fizzle(user)
|
||||
if (cultist == user) //just to be sure.
|
||||
return
|
||||
if(cultist.buckled || cultist.handcuffed || (!isturf(cultist.loc) && !istype(cultist.loc, /obj/structure/closet)))
|
||||
user << "<span class='warning'>You cannot summon \the [cultist], for \his shackles of blood are strong.</span>"
|
||||
return fizzle()
|
||||
return fizzle(user)
|
||||
cultist.loc = src.loc
|
||||
cultist.lying = 1
|
||||
cultist.regenerate_icons()
|
||||
@@ -875,7 +878,7 @@ var/list/sacrificed = list()
|
||||
admin_attacker_log_many_victims(user, affected, "Used a deafen rune.", "Was victim of a deafen rune.", "used a deafen rune on")
|
||||
qdel(src)
|
||||
else
|
||||
return fizzle()
|
||||
return fizzle(user)
|
||||
else
|
||||
var/list/affected = new()
|
||||
for(var/mob/living/carbon/C in range(7,user))
|
||||
|
||||
@@ -222,6 +222,7 @@
|
||||
visible_message("<span class='danger'>[src.name]'s eyes no longer glow with violent rage, their form reverting to resemble that of a normal human's.</span>", "<span class='danger'>The beast within you retreats. You gain control over your body once more.</span>")
|
||||
|
||||
verbs -= /mob/living/carbon/human/proc/grapple
|
||||
regenerate_icons()
|
||||
|
||||
// Removes all vampire powers.
|
||||
/mob/proc/remove_vampire_powers()
|
||||
|
||||
@@ -13,6 +13,9 @@
|
||||
|
||||
if(shattered) return
|
||||
|
||||
if(user.mind && user.mind.vampire && (!(user.mind.vampire.status & VAMP_ISTHRALL)))
|
||||
user << "<span class='notice'>Your reflection appears distorted on the surface of \the [src].</span>"
|
||||
|
||||
if(ishuman(user))
|
||||
var/datum/nano_module/appearance_changer/AC = ui_users[user]
|
||||
if(!AC)
|
||||
@@ -108,6 +111,10 @@
|
||||
var/list/ui_users = list()
|
||||
|
||||
/obj/item/weapon/mirror/attack_self(mob/user as mob)
|
||||
|
||||
if(user.mind && user.mind.vampire && (!(user.mind.vampire.status & VAMP_ISTHRALL)))
|
||||
user << "<span class='notice'>Your reflection appears distorted on the surface of \the [src].</span>"
|
||||
|
||||
if(ishuman(user))
|
||||
var/datum/nano_module/appearance_changer/AC = ui_users[user]
|
||||
if(!AC)
|
||||
|
||||
@@ -652,7 +652,7 @@
|
||||
|
||||
M.equip_to_slot_or_del(pda, slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy(M), slot_belt)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pistol(M), slot_belt)
|
||||
|
||||
var/obj/item/weapon/card/id/centcom/W = new(M)
|
||||
W.name = "[M.real_name]'s ID Card"
|
||||
@@ -677,7 +677,7 @@
|
||||
|
||||
M.equip_to_slot_or_del(pda, slot_r_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_l_store)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy(M), slot_belt)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pistol(M), slot_belt)
|
||||
|
||||
var/obj/item/weapon/card/id/centcom/W = new(M)
|
||||
W.name = "[M.real_name]'s ID Card"
|
||||
@@ -688,22 +688,7 @@
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
if("emergency response team")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(M), slot_shoes)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(M), slot_gloves)
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_belt)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
|
||||
var/obj/item/weapon/card/id/W = new(M)
|
||||
W.name = "[M.real_name]'s ID Card"
|
||||
W.icon_state = "centcom"
|
||||
W.access = get_all_accesses()
|
||||
W.access += get_all_centcom_access()
|
||||
W.assignment = "Emergency Response Team"
|
||||
W.registered_name = M.real_name
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
ert.equip(M)
|
||||
|
||||
if("protection detail")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/ccpolice(M), slot_w_uniform)
|
||||
@@ -713,7 +698,7 @@
|
||||
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(M), slot_l_ear)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(M), slot_glasses)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/nuclear(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/swat/peacekeeper(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/accessory/holster/hip(M.back), slot_in_backpack)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pistol(M.back), slot_in_backpack)
|
||||
@@ -821,7 +806,7 @@
|
||||
W.assignment = "Special Operations Officer"
|
||||
W.registered_name = M.real_name
|
||||
M.equip_to_slot_or_del(W, slot_wear_id)
|
||||
|
||||
|
||||
if("blue wizard")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/under/lightpurple(M), slot_w_uniform)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(M), slot_wear_suit)
|
||||
@@ -857,7 +842,7 @@
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/staff(M), slot_l_hand)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(M), slot_back)
|
||||
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack)
|
||||
|
||||
|
||||
if("soviet admiral")
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/head/hgpiratecap(M), slot_head)
|
||||
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
|
||||
|
||||
@@ -74,12 +74,13 @@
|
||||
playsound(src, "clownstep", 20, 1)
|
||||
|
||||
/obj/item/clothing/shoes/cult
|
||||
name = "boots"
|
||||
name = "ragged boots"
|
||||
desc = "A ragged, dusty pair of boots."
|
||||
icon_state = "cult"
|
||||
item_state = "cult"
|
||||
force = 5
|
||||
siemens_coefficient = 0
|
||||
armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0)
|
||||
|
||||
cold_protection = FEET
|
||||
min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE
|
||||
|
||||
@@ -432,6 +432,8 @@
|
||||
addtimer(thecallback, offset)
|
||||
offset += rand(5, 15)
|
||||
|
||||
playsound(src.loc, 'sound/effects/light_flicker.ogg', 75, 1)
|
||||
|
||||
addtimer(CALLBACK(src, .proc/end_flicker), offset)
|
||||
|
||||
/obj/machinery/light/proc/handle_flicker()
|
||||
|
||||
@@ -2,18 +2,19 @@
|
||||
name = "blood packs bags"
|
||||
desc = "This box contains blood packs."
|
||||
icon_state = "sterile"
|
||||
New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/blood/empty(src)
|
||||
new /obj/item/weapon/reagent_containers/blood/empty(src)
|
||||
new /obj/item/weapon/reagent_containers/blood/empty(src)
|
||||
new /obj/item/weapon/reagent_containers/blood/empty(src)
|
||||
new /obj/item/weapon/reagent_containers/blood/empty(src)
|
||||
new /obj/item/weapon/reagent_containers/blood/empty(src)
|
||||
new /obj/item/weapon/reagent_containers/blood/empty(src)
|
||||
|
||||
/obj/item/weapon/storage/box/bloodpacks/fill()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/blood/empty(src)
|
||||
new /obj/item/weapon/reagent_containers/blood/empty(src)
|
||||
new /obj/item/weapon/reagent_containers/blood/empty(src)
|
||||
new /obj/item/weapon/reagent_containers/blood/empty(src)
|
||||
new /obj/item/weapon/reagent_containers/blood/empty(src)
|
||||
new /obj/item/weapon/reagent_containers/blood/empty(src)
|
||||
new /obj/item/weapon/reagent_containers/blood/empty(src)
|
||||
|
||||
/obj/item/weapon/reagent_containers/blood
|
||||
name = "BloodPack"
|
||||
name = "blood pack"
|
||||
desc = "Contains blood used for transfusion."
|
||||
icon = 'icons/obj/bloodpack.dmi'
|
||||
icon_state = "empty"
|
||||
@@ -21,11 +22,12 @@
|
||||
|
||||
var/blood_type = null
|
||||
var/vampire_marks = null
|
||||
var/being_feed = FALSE
|
||||
|
||||
/obj/item/weapon/reagent_containers/blood/Initialize()
|
||||
. = ..()
|
||||
if(blood_type != null)
|
||||
name = "BloodPack [blood_type]"
|
||||
name = "blood pack [blood_type]"
|
||||
reagents.add_reagent("blood", 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=blood_type,"resistances"=null,"trace_chem"=null))
|
||||
update_icon()
|
||||
|
||||
@@ -41,8 +43,12 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/blood/attack(mob/living/carbon/human/M as mob, mob/living/carbon/human/user as mob, var/target_zone)
|
||||
if (user == M && (user.mind.vampire))
|
||||
if (being_feed)
|
||||
user << "<span class='notice'>You are already feeding on \the [src].</span>"
|
||||
return
|
||||
if (reagents.get_reagent_amount("blood"))
|
||||
user.visible_message("<span class='warning'>[user] raises \the [src] up to their mouth and bites into it.</span>", "<span class='notice'>You raise \the [src] up to your mouth and bite into it, starting to drain its contents.<br>You need to stand still.</span>")
|
||||
being_feed = TRUE
|
||||
vampire_marks = TRUE
|
||||
if (!LAZYLEN(src.other_DNA))
|
||||
LAZYADD(src.other_DNA, M.dna.unique_enzymes)
|
||||
@@ -61,7 +67,7 @@
|
||||
if (reagents.get_reagent_amount("blood") < 1)
|
||||
break
|
||||
user.visible_message("<span class='warning'>[user] licks \his fangs dry, lowering \the [src].</span>", "<span class='notice'>You lick your fangs clean of the tasteless blood.</span>")
|
||||
|
||||
being_feed = FALSE
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -73,14 +79,14 @@
|
||||
/obj/item/weapon/reagent_containers/blood/attackby(obj/item/weapon/P as obj, mob/user as mob)
|
||||
..()
|
||||
if (istype(P, /obj/item/weapon/pen))
|
||||
if (reagents.get_reagent_amount("blood") && name != "Empty BloodPack") //Stops people mucking with bloodpacks that are filled
|
||||
if (reagents.get_reagent_amount("blood") && name != "empty blood pack") //Stops people mucking with bloodpacks that are filled
|
||||
usr << "<span class='notice'>You can't relabel [name] until it is empty!</span>"
|
||||
return
|
||||
var/blood_name = input(usr, "What blood type would you like to label it as?", "Blood Types") in list("A+", "A-", "B+", "B-", "O+", "O-", "AB+", "AB-", "Cancel")
|
||||
if (blood_name == "Cancel") return
|
||||
var/obj/item/i = usr.get_active_hand()
|
||||
if (!istype(i, /obj/item/weapon/pen) || !in_range(user, src)) return //Checks to see if pen is still held or bloodback is in range
|
||||
name = "BloodPack [blood_name]"
|
||||
name = "blood pack [blood_name]"
|
||||
desc = "Contains blood used for transfusion."
|
||||
usr << "<span class='notice'>You label the blood pack as [blood_name].</span>"
|
||||
return
|
||||
@@ -167,12 +173,12 @@
|
||||
blood_type = "O-"
|
||||
|
||||
/obj/item/weapon/reagent_containers/blood/empty
|
||||
name = "Empty BloodPack"
|
||||
name = "empty blood pack"
|
||||
desc = "Seems pretty useless... Maybe if there were a way to fill it?"
|
||||
icon_state = "empty"
|
||||
|
||||
/obj/item/weapon/reagent_containers/blood/ripped
|
||||
name = "Ripped BloodPack"
|
||||
name = "ripped blood pack"
|
||||
desc = "It's torn up and useless."
|
||||
icon = 'icons/obj/bloodpack.dmi'
|
||||
icon_state = "ripped"
|
||||
|
||||
@@ -17,6 +17,10 @@
|
||||
user << "You can't contract with yourself!"
|
||||
return
|
||||
|
||||
if(iscultist(user))
|
||||
user << "Your soul already belongs to other powers!"
|
||||
return
|
||||
|
||||
var/ans = alert(user,"The contract clearly states that signing this contract will bind your soul to \the [contract_master]. Are you sure you want to continue?","[src]","Yes","No")
|
||||
|
||||
if(ans == "Yes")
|
||||
@@ -119,42 +123,52 @@
|
||||
contract_master = "\improper Wizard Academy"
|
||||
|
||||
/obj/item/weapon/contract/boon/wizard/artificer
|
||||
name = "artificer contract"
|
||||
path = /spell/aoe_turf/conjure/construct
|
||||
desc = "This contract has a passage dedicated to an entity known as 'Nar-Sie'"
|
||||
|
||||
/obj/item/weapon/contract/boon/wizard/fireball
|
||||
name = "fireball contract"
|
||||
path = /spell/targeted/projectile/dumbfire/fireball
|
||||
desc = "This contract feels warm to the touch."
|
||||
|
||||
/obj/item/weapon/contract/boon/wizard/smoke
|
||||
name = "smoke contract"
|
||||
path = /spell/aoe_turf/smoke
|
||||
desc = "This contract smells as dank as they come."
|
||||
|
||||
/obj/item/weapon/contract/boon/wizard/mindswap
|
||||
name = "mindswap contract"
|
||||
path = /spell/targeted/mind_transfer
|
||||
desc = "This contract looks ragged and torn."
|
||||
|
||||
/obj/item/weapon/contract/boon/wizard/forcewall
|
||||
name = "forcewall contract"
|
||||
path = /spell/aoe_turf/conjure/forcewall
|
||||
contract_master = "\improper Mime Federation"
|
||||
desc = "This contract has a dedication to mimes everywhere at the top."
|
||||
|
||||
/obj/item/weapon/contract/boon/wizard/knock
|
||||
name = "knock contract"
|
||||
path = /spell/aoe_turf/knock
|
||||
desc = "This contract is hard to hold still."
|
||||
|
||||
/obj/item/weapon/contract/boon/wizard/horsemask
|
||||
name = "horsemask contract"
|
||||
path = /spell/targeted/equip_item/horsemask
|
||||
desc = "This contract is more horse than your mind has room for."
|
||||
|
||||
/obj/item/weapon/contract/boon/wizard/charge
|
||||
name = "charge contract"
|
||||
path = /spell/aoe_turf/charge
|
||||
desc = "This contract is made of 100% post-consumer wizard."
|
||||
|
||||
/obj/item/weapon/contract/boon/wizard/gestalt
|
||||
name = "conjure gestalt contract"
|
||||
path = /spell/aoe_turf/conjure/grove/gestalt
|
||||
desc = "This contract is a druid's favorite."
|
||||
|
||||
/obj/item/weapon/contract/boon/wizard/statue
|
||||
name = "flesh to stone contract"
|
||||
path = /spell/targeted/flesh_to_stone
|
||||
desc = "This contract is truly petrifying."
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
author: Alberyk
|
||||
|
||||
delete-after: True
|
||||
|
||||
changes:
|
||||
- soundadd: "Added new sounds to some cult runes."
|
||||
- tweak: "Cultists can not accept wizard contracts anymore."
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user