This commit is contained in:
Ghommie
2020-06-30 00:49:06 +02:00
303 changed files with 6981 additions and 73525 deletions
@@ -94,6 +94,9 @@ GLOBAL_LIST_EMPTY(antagonists)
if(skill_modifiers)
for(var/A in skill_modifiers)
ADD_SINGLETON_SKILL_MODIFIER(owner, A, type)
var/datum/skill_modifier/job/M = GLOB.skill_modifiers[GET_SKILL_MOD_ID(A, type)]
if(istype(M))
M.name = "[name] Training"
SEND_SIGNAL(owner.current, COMSIG_MOB_ANTAG_ON_GAIN, src)
/datum/antagonist/proc/is_banned(mob/M)
@@ -31,10 +31,6 @@
beating = 0
var/fakingit = 0
/obj/item/organ/heart/vampheart/prepare_eat()
..()
// Do cool stuff for eating vamp heart?
/obj/item/organ/heart/vampheart/Restart()
beating = 0 // DONT run ..(). We don't want to start beating again.
return 0
@@ -101,7 +101,7 @@
H.update_hair()
H.update_body_parts()
// Wait here til we deactivate power or go unconscious
// Wait here until we deactivate power or go unconscious
var/datum/antagonist/bloodsucker/bloodsuckerdatum = owner.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
while (ContinueActive(owner) && istype(bloodsuckerdatum))//active && owner && owner.stat == CONSCIOUS)
bloodsuckerdatum.AddBloodVolume(-0.2)
@@ -397,20 +397,31 @@
escape_objective_possible = FALSE
break
var/changeling_objective = rand(1,3)
var/generic_absorb_objective = FALSE
var/multiple_lings = length(get_antag_minds(/datum/antagonist/changeling,TRUE)) > 1
switch(changeling_objective)
if(1)
var/datum/objective/absorb/absorb_objective = new
absorb_objective.owner = owner
absorb_objective.gen_amount_goal(6, 8)
objectives += absorb_objective
generic_absorb_objective = TRUE
if(2)
var/datum/objective/absorb_changeling/ac = new
ac.owner = owner
objectives += ac
if(multiple_lings)
var/datum/objective/absorb_changeling/ac = new
ac.owner = owner
objectives += ac
else
generic_absorb_objective = TRUE
if(3)
var/datum/objective/absorb_most/ac = new
ac.owner = owner
objectives += ac
if(multiple_lings)
var/datum/objective/absorb_most/ac = new
ac.owner = owner
objectives += ac
else
generic_absorb_objective = TRUE
if(generic_absorb_objective)
var/datum/objective/absorb/absorb_objective = new
absorb_objective.owner = owner
absorb_objective.gen_amount_goal(6, 8)
objectives += absorb_objective
if(prob(60))
if(prob(85))
@@ -1,7 +1,7 @@
/obj/effect/proc_holder/changeling/spiders
name = "Spread Infestation"
desc = "Our form divides, creating arachnids which will grow into deadly beasts."
helptext = "The spiders are thoughtless creatures, and may attack their creators when fully grown. Requires at least 3 DNA gained through Absorb, and not through DNA sting. This ability is very loud, and will guarantee that our blood will react violently to heat."
helptext = "The spiders are thoughtless creatures, and may attack their creators when fully grown. Requires at least 3 DNA gained through Absorb (regardless of current amount), and not through DNA sting. This ability is very loud, and will guarantee that our blood will react violently to heat."
chemical_cost = 45
dna_cost = 1
loudness = 4
@@ -257,6 +257,8 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
return
if (active)
return //prevent the AI from activating an already active doomsday
if (owner_AI.shunted)
return //prevent AI from activating doomsday while shunted.
active = TRUE
set_us_up_the_bomb(owner)
@@ -560,6 +560,27 @@
. += "You cast it [times] times.<br>"
return .
/datum/spellbook_entry/summon/curse_of_madness
name = "Curse of Madness"
desc = "Curses the station, warping the minds of everyone inside, causing lasting traumas. Warning: this spell can affect you if not cast from a safe distance."
cost = 4
/datum/spellbook_entry/summon/curse_of_madness/Buy(mob/living/carbon/human/user, obj/item/spellbook/book)
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name)
active = TRUE
var/message = stripped_input(user, "Whisper a secret truth to drive your victims to madness.", "Whispers of Madness")
if(!message)
return FALSE
curse_of_madness(user, message)
to_chat(user, "<span class='notice'>You have cast the curse of insanity!</span>")
playsound(user, 'sound/magic/mandswap.ogg', 50, 1)
return TRUE
/datum/spellbook_entry/summon/curse_of_madness/IsAvailible()
if(!SSticker.mode) // In case spellbook is placed on map
return FALSE
return (!CONFIG_GET(flag/no_summon_traumas) && ..())
/obj/item/spellbook
name = "spell book"
desc = "An unearthly tome that glows with power."