From 912601a30dd19be64f3735a7a376bcaaf0313d7c Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Fri, 13 Dec 2013 19:38:49 -0500 Subject: [PATCH] Vampire Gamemode! --- baystation12.dme | 3 + code/datums/mind.dm | 46 +- code/game/gamemodes/objective.dm | 12 + code/game/gamemodes/vampire/vampire.dm | 409 ++++++++++++++++++ code/game/gamemodes/vampire/vampire_powers.dm | 370 ++++++++++++++++ code/game/machinery/alarm.dm | 19 +- code/modules/client/preferences.dm | 1 + code/modules/mob/dead/observer/observer.dm | 4 + .../living/carbon/human/human_attackhand.dm | 18 + code/modules/mob/living/carbon/human/life.dm | 15 + .../mob/living/carbon/human/whisper.dm | 4 +- .../mob/living/simple_animal/hostile/bat.dm | 59 +++ .../living/simple_animal/hostile/hostile.dm | 2 + code/modules/reagents/Chemistry-Reagents.dm | 48 +- code/modules/virus2/disease2.dm | 2 + code/modules/virus2/effect.dm | 6 +- code/setup.dm | 20 +- icons/mob/animal.dmi | Bin 197548 -> 201414 bytes icons/mob/bats.dmi | Bin 0 -> 1321 bytes icons/mob/hud.dmi | Bin 2965 -> 3113 bytes icons/mob/mob.dmi | Bin 179652 -> 179972 bytes sound/effects/creepyshriek.ogg | Bin 0 -> 45042 bytes 22 files changed, 1013 insertions(+), 25 deletions(-) create mode 100644 code/game/gamemodes/vampire/vampire.dm create mode 100644 code/game/gamemodes/vampire/vampire_powers.dm create mode 100644 code/modules/mob/living/simple_animal/hostile/bat.dm create mode 100644 icons/mob/bats.dmi create mode 100644 sound/effects/creepyshriek.ogg diff --git a/baystation12.dme b/baystation12.dme index 9be3fc79cc8..efde1247b12 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -249,6 +249,8 @@ #include "code\game\gamemodes\revolution\revolution.dm" #include "code\game\gamemodes\revolution\rp_revolution.dm" #include "code\game\gamemodes\traitor\traitor.dm" +#include "code\game\gamemodes\vampire\vampire.dm" +#include "code\game\gamemodes\vampire\vampire_powers.dm" #include "code\game\gamemodes\vox\vox.dm" #include "code\game\gamemodes\vox\heist\heist.dm" #include "code\game\gamemodes\vox\trade\trade.dm" @@ -1078,6 +1080,7 @@ #include "code\modules\mob\living\simple_animal\friendly\spiderbot.dm" #include "code\modules\mob\living\simple_animal\friendly\tomato.dm" #include "code\modules\mob\living\simple_animal\hostile\alien.dm" +#include "code\modules\mob\living\simple_animal\hostile\bat.dm" #include "code\modules\mob\living\simple_animal\hostile\bear.dm" #include "code\modules\mob\living\simple_animal\hostile\carp.dm" #include "code\modules\mob\living\simple_animal\hostile\creature.dm" diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 0ed504fbcaa..4f93aad29ce 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -52,7 +52,7 @@ datum/mind var/datum/faction/faction //associated faction var/datum/changeling/changeling //changeling holder - + var/datum/vampire/vampire //vampire holder var/rev_cooldown = 0 // the world.time since the mob has been brigged, or -1 if not at all @@ -128,6 +128,7 @@ datum/mind "cult", "wizard", "changeling", + "vampire", "nuclear", "traitor", // "traitorchan", "monkey", @@ -222,6 +223,20 @@ datum/mind // text += "
All the changelings are dead! Restart in [round((changeling.TIME_TO_GET_REVIVED-(world.time-changeling.changelingdeathtime))/10)] seconds." sections["changeling"] = text + /** VAMPIRE ***/ + text = "vampire" + if (ticker.mode.config_tag=="vampire") + text = uppertext(text) + text = "[text]: " + if (src in ticker.mode.vampires) + text += "YES|no" + if (objectives.len==0) + text += "
Objectives are empty! Randomize!" + else + text += "yes|NO" + sections["vampire"] = text + + /** NUCLEAR ***/ text = "nuclear" if (ticker.mode.config_tag=="nuclear") @@ -387,7 +402,7 @@ datum/mind if(!def_value)//If it's a custom objective, it will be an empty string. def_value = "custom" - var/new_obj_type = input("Select objective type:", "Objective type", def_value) as null|anything in list("assassinate", "debrain", "protect", "prevent", "harm", "brig", "hijack", "escape", "survive", "steal", "download", "nuclear", "capture", "absorb", "custom") + var/new_obj_type = input("Select objective type:", "Objective type", def_value) as null|anything in list("assassinate", "blood", "debrain", "protect", "prevent", "harm", "brig", "hijack", "escape", "survive", "steal", "download", "nuclear", "capture", "absorb", "custom") if (!new_obj_type) return var/datum/objective/new_objective = null @@ -455,7 +470,7 @@ datum/mind if (!steal.select_target()) return - if("download","capture","absorb") + if("download","capture","absorb", "blood") var/def_num if(objective&&objective.type==text2path("/datum/objective/[new_obj_type]")) def_num = objective.target_amount @@ -474,6 +489,9 @@ datum/mind if("absorb") new_objective = new /datum/objective/absorb new_objective.explanation_text = "Absorb [target_number] compatible genomes." + if("blood") + new_objective = new /datum/objective/blood + new_objective.explanation_text = "Accumulate atleast [target_number] units of blood in total." new_objective.owner = src new_objective.target_amount = target_number @@ -735,6 +753,28 @@ datum/mind updateappearance(current, current.dna.uni_identity) domutcheck(current, null) + else if (href_list["vampire"]) + switch(href_list["vampire"]) + if("clear") + if(src in ticker.mode.vampires) + ticker.mode.vampires -= src + special_role = null + current.remove_vampire_powers() + if(vampire) del(vampire) + current << "You grow weak and lose your powers! You are no longer a vampire and are stuck in your current form!" + log_admin("[key_name_admin(usr)] has de-vampired [current].") + if("vampire") + if(!(src in ticker.mode.vampires)) + ticker.mode.vampires += src + ticker.mode.grant_vampire_powers(current) + special_role = "Vampire" + current << "Your powers are awoken. Your lust for blood grows... You are a Vampire!" + log_admin("[key_name_admin(usr)] has vampired [current].") + if("autoobjectives") + ticker.mode.forge_vampire_objectives(src) + usr << "\blue The objectives for vampire [key] have been generated. You can edit them and announce manually." + + else if (href_list["nuclear"]) switch(href_list["nuclear"]) if("clear") diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index f262818d656..3302cbe5abe 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -745,3 +745,15 @@ datum/objective/absorb /*-------ENDOF CULTIST------*/ */ +datum/objective/blood + proc/gen_amount_goal(low = 150, high = 400) + target_amount = rand(low,high) + target_amount = round(round(target_amount/5)*5) + explanation_text = "Accumulate atleast [target_amount] units of blood in total." + return target_amount + + check_completion() + if(owner && owner.vampire && owner.vampire.bloodtotal && owner.vampire.bloodtotal >= target_amount) + return 1 + else + return 0 diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm new file mode 100644 index 00000000000..35ccec0392d --- /dev/null +++ b/code/game/gamemodes/vampire/vampire.dm @@ -0,0 +1,409 @@ +//This is the gamemode file for the ported goon gamemode vampires. +//They get a traitor objective and a blood sucking objective +/datum/game_mode + var/list/datum/mind/vampires = list() + var/list/datum/mind/enthralled = list() //those controlled by a vampire + var/list/thralls = list() //vammpires controlling somebody +/datum/game_mode/vampire + name = "vampire" + config_tag = "vampire" + restricted_jobs = list("AI", "Cyborg", "Mobile MMI", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Chaplain") //Consistent screening has filtered all infiltration attempts on high value jobs + protected_jobs = list() + required_players = 1 + required_players_secret = 15 + required_enemies = 1 + recommended_enemies = 4 + + uplink_welcome = "Syndicate Uplink Console:" + uplink_uses = 10 + + var/const/prob_int_murder_target = 50 // intercept names the assassination target half the time + var/const/prob_right_murder_target_l = 25 // lower bound on probability of naming right assassination target + var/const/prob_right_murder_target_h = 50 // upper bound on probability of naimg the right assassination target + + var/const/prob_int_item = 50 // intercept names the theft target half the time + var/const/prob_right_item_l = 25 // lower bound on probability of naming right theft target + var/const/prob_right_item_h = 50 // upper bound on probability of naming the right theft target + + var/const/prob_int_sab_target = 50 // intercept names the sabotage target half the time + var/const/prob_right_sab_target_l = 25 // lower bound on probability of naming right sabotage target + var/const/prob_right_sab_target_h = 50 // upper bound on probability of naming right sabotage target + + var/const/prob_right_killer_l = 25 //lower bound on probability of naming the right operative + var/const/prob_right_killer_h = 50 //upper bound on probability of naming the right operative + var/const/prob_right_objective_l = 25 //lower bound on probability of determining the objective correctly + var/const/prob_right_objective_h = 50 //upper bound on probability of determining the objective correctly + + var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) + var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) + + var/vampire_amount = 4 + + +/datum/game_mode/vampire/announce() + world << "The current game mode is - Vampires!" + world << "There are Vampires from Space Transylvania on the station, keep your blood close and neck safe!" + +/datum/game_mode/vampire/pre_setup() + + if(config.protect_roles_from_antagonist) + restricted_jobs += protected_jobs + + var/list/datum/mind/possible_vampires = get_players_for_role(BE_VAMPIRE) + + for(var/datum/mind/player in possible_vampires) + for(var/job in restricted_jobs)//Removing robots from the list + if(player.assigned_role == job) + possible_vampires -= player + + vampire_amount = 1 + round(num_players() / 10) + + if(possible_vampires.len>0) + for(var/i = 0, i < vampire_amount, i++) + if(!possible_vampires.len) break + var/datum/mind/vampire = pick(possible_vampires) + possible_vampires -= vampire + vampires += vampire + modePlayer += vampires + return 1 + else + return 0 + +/datum/game_mode/vampire/post_setup() + for(var/datum/mind/vampire in vampires) + grant_vampire_powers(vampire.current) + vampire.special_role = "Vampire" + forge_vampire_objectives(vampire) + greet_vampire(vampire) + + spawn (rand(waittime_l, waittime_h)) + send_intercept() + ..() + return + +/datum/game_mode/proc/auto_declare_completion_vampire() + if(traitors.len) + var/text = "The vampires were:" + for(var/datum/mind/vampire in vampires) + var/traitorwin = 1 + + text += "
[vampire.key] was [vampire.name] (" + if(vampire.current) + if(vampire.current.stat == DEAD) + text += "died" + else + text += "survived" + if(vampire.current.real_name != vampire.name) + text += " as [vampire.current.real_name]" + else + text += "body destroyed" + text += ")" + + if(vampire.objectives.len)//If the traitor had no objectives, don't need to process this. + var/count = 1 + for(var/datum/objective/objective in vampire.objectives) + if(objective.check_completion()) + text += "
Objective #[count]: [objective.explanation_text] Success!" + feedback_add_details("traitor_objective","[objective.type]|SUCCESS") + else + text += "
Objective #[count]: [objective.explanation_text] Fail." + feedback_add_details("traitor_objective","[objective.type]|FAIL") + traitorwin = 0 + count++ + + var/special_role_text + if(vampire.special_role) + special_role_text = lowertext(vampire.special_role) + else + special_role_text = "antagonist" + + if(traitorwin) + text += "
The [special_role_text] was successful!" + feedback_add_details("traitor_success","SUCCESS") + else + text += "
The [special_role_text] has failed!" + feedback_add_details("traitor_success","FAIL") + world << text + return 1 + +/datum/game_mode/proc/auto_declare_completion_enthralled() + if(traitors.len) + var/text = "The Enthralled were:" + for(var/datum/mind/enthralled in enthralled) + text += "
[enthralled.key] was [enthralled.name] (" + if(enthralled.current) + if(enthralled.current.stat == DEAD) + text += "died" + else + text += "survived" + if(enthralled.current.real_name != enthralled.name) + text += " as [enthralled.current.real_name]" + else + text += "body destroyed" + text += ")" + world << text + return 1 + +/datum/game_mode/proc/forge_vampire_objectives(var/datum/mind/vampire) + //Objectives are traitor objectives plus blood objectives + + var/datum/objective/blood/blood_objective = new + blood_objective.owner = vampire + blood_objective.gen_amount_goal(150, 400) + vampire.objectives += blood_objective + + var/datum/objective/assassinate/kill_objective = new + kill_objective.owner = vampire + kill_objective.find_target() + vampire.objectives += kill_objective + + var/datum/objective/steal/steal_objective = new + steal_objective.owner = vampire + steal_objective.find_target() + vampire.objectives += steal_objective + + + switch(rand(1,100)) + if(1 to 80) + if (!(locate(/datum/objective/escape) in vampire.objectives)) + var/datum/objective/escape/escape_objective = new + escape_objective.owner = vampire + vampire.objectives += escape_objective + else + if (!(locate(/datum/objective/survive) in vampire.objectives)) + var/datum/objective/survive/survive_objective = new + survive_objective.owner = vampire + vampire.objectives += survive_objective + return + +/datum/game_mode/proc/grant_vampire_powers(mob/living/carbon/vampire_mob) + if(!istype(vampire_mob)) return + vampire_mob.make_vampire() + +/datum/game_mode/proc/greet_vampire(var/datum/mind/vampire, var/you_are=1) + var/dat + if (you_are) + dat = "\red You are a Vampire! \black
" + dat += {"To bite someone, target the head and use harm intent with an empty hand. Drink blood to gain new powers. +You are weak to holy things and starlight. Don't go into space and avoid the Chaplain, the chapel and especially Holy Water."} + vampire.current << dat + vampire.current << "You must complete the following tasks:" + + if (vampire.current.mind) + if (vampire.current.mind.assigned_role == "Clown") + vampire.current << "Your lust for blood has allowed you to overcome your clumsy nature allowing you to wield weapons without harming yourself." + vampire.current.mutations.Remove(CLUMSY) + + var/obj_count = 1 + for(var/datum/objective/objective in vampire.objectives) + vampire.current << "Objective #[obj_count]: [objective.explanation_text]" + obj_count++ + return + +/datum/vampire + var/bloodtotal = 0 // CHANGE TO ZERO WHEN PLAYTESTING HAPPENS + var/bloodusable = 0 // CHANGE TO ZERO WHEN PLAYTESTING HAPPENS + var/mob/living/owner = null + var/gender = FEMALE + var/iscloaking = 0 // handles the vampire cloak toggle + var/list/powers = list() // list of available powers and passives, see defines in setup.dm + var/mob/living/carbon/human/draining // who the vampire is draining of blood +/datum/vampire/New(gend = FEMALE) + gender = gend + +/mob/proc/make_vampire() + if(!mind) return + if(!mind.vampire) + mind.vampire = new /datum/vampire(gender) + mind.vampire.owner = src + verbs += /client/proc/vampire_rejuvinate + verbs += /client/proc/vampire_hypnotise + verbs += /client/proc/vampire_glare + //testing purposes REMOVE BEFORE PUSH TO MASTER + /*for(var/handler in typesof(/client/proc)) + if(findtext("[handler]","vampire_")) + verbs += handler*/ + for(var/i = 1; i <= 3; i++) // CHANGE TO 3 RATHER THAN 12 AFTER TESTING IS DONE + mind.vampire.powers.Add(i) + +/mob/proc/remove_vampire_powers() + for(var/handler in typesof(/client/proc)) + if(findtext("[handler]","vampire_")) + verbs -= handler + +/mob/proc/handle_bloodsucking(mob/living/carbon/human/H) + src.mind.vampire.draining = H + var/blood = 0 + var/bloodtotal = 0 //used to see if we increased our blood total + var/bloodusable = 0 //used to see if we increased our blood usable + src.attack_log += text("\[[time_stamp()]\] Bit [src.name] ([src.ckey]) in the neck and draining their blood") + H.attack_log += text("\[[time_stamp()]\] Has been bit in the neck by [src.name] ([src.ckey])") + log_attack("[src.name] ([src.ckey]) bit [H.name] ([H.ckey]) in the neck") + src.visible_message("\red [src.name] bites [H.name]'s neck!", "\red You bite [H.name]'s neck and begin to drain their blood.", "\blue You hear a soft puncture and a wet sucking noise") + while(do_mob(src, H, 50)) + if(!mind.vampire || !(mind in ticker.mode.vampires)) + src << "\red Your fangs have disappeared!" + return 0 + bloodtotal = src.mind.vampire.bloodtotal + bloodusable = src.mind.vampire.bloodusable + if(!H.vessel.get_reagent_amount("blood")) + src << "\red They've got no blood left to give." + break + if(H.stat < 2) //alive + blood = min(10, H.vessel.get_reagent_amount("blood"))// if they have less than 10 blood, give them the remnant else they get 10 blood + src.mind.vampire.bloodtotal += blood + src.mind.vampire.bloodusable += blood + H.adjustCloneLoss(5) // beep boop 10 damage + else + blood = min(5, H.vessel.get_reagent_amount("blood"))// The dead only give 5 bloods + src.mind.vampire.bloodtotal += blood + if(bloodtotal != src.mind.vampire.bloodtotal) + src << "\blue You have accumulated [src.mind.vampire.bloodtotal] [src.mind.vampire.bloodtotal > 1 ? "units" : "unit"] of blood[src.mind.vampire.bloodusable != bloodusable ?", and have [src.mind.vampire.bloodusable] left to use" : "."]" + check_vampire_upgrade(mind) + H.vessel.remove_reagent("blood",25) + + src.mind.vampire.draining = null + src << "\blue You stop draining [H.name] of blood." + return 1 + +/mob/proc/check_vampire_upgrade(datum/mind/v) + if(!v) return + if(!v.vampire) return + var/datum/vampire/vamp = v.vampire + var/list/old_powers = vamp.powers.Copy() + + // This used to be a switch statement. + // Don't use switch statements for shit like this, since blood can be any random-ass value. + // if(100) requires the blood to be at EXACTLY 100 units to trigger. + // if(blud >= 100) activates when blood is at or over 100 units. + // TODO: Make this modular. + + // TIER 1 + if(vamp.bloodtotal >= 100) + if(!(VAMP_VISION in vamp.powers)) + vamp.powers.Add(VAMP_VISION) + if(!(VAMP_SHAPE in vamp.powers)) + vamp.powers.Add(VAMP_SHAPE) + + // TIER 2 + if(vamp.bloodtotal >= 150) + if(!(VAMP_CLOAK in vamp.powers)) + vamp.powers.Add(VAMP_CLOAK) + if(!(VAMP_DISEASE in vamp.powers)) + vamp.powers.Add(VAMP_DISEASE) + + // TIER 3 + if(vamp.bloodtotal >= 200) + if(!(VAMP_BATS in vamp.powers)) + vamp.powers.Add(VAMP_BATS) + if(!(VAMP_SCREAM in vamp.powers)) + vamp.powers.Add(VAMP_SCREAM) + // Commented out until we can figured out a way to stop this from spamming. + //src << "\blue Your rejuvination abilities have improved and will now heal you over time when used." + + // TIER 4 + if(vamp.bloodtotal >= 300) + if(!(VAMP_JAUNT in vamp.powers)) + vamp.powers.Add(VAMP_JAUNT) + if(!(VAMP_SLAVE in vamp.powers)) + vamp.powers.Add(VAMP_SLAVE) + + // TIER 5 + if(vamp.bloodtotal >= 500) + if(!(VAMP_FULL in vamp.powers)) + vamp.powers.Add(VAMP_FULL) + + announce_new_power(old_powers, vamp.powers) + +/mob/proc/announce_new_power(list/old_powers, list/new_powers) + for(var/n in new_powers) + if(!(n in old_powers)) + switch(n) + if(VAMP_SHAPE) + src << "\blue You have gained the shapeshifting ability, at the cost of stored blood you can change your form permanently." + verbs += /client/proc/vampire_shapeshift + if(VAMP_VISION) + src << "\blue Your vampiric vision has improved." + //no verb + if(VAMP_DISEASE) + src << "\blue You have gained the Diseased Touch ability which causes those you touch to die shortly after unless treated medically." + verbs += /client/proc/vampire_disease + if(VAMP_CLOAK) + src << "\blue You have gained the Cloak of Darkness ability which when toggled makes you near invisible in the shroud of darkness." + verbs += /client/proc/vampire_cloak + if(VAMP_BATS) + src << "\blue You have gained the Summon Bats ability." + verbs += /client/proc/vampire_bats // work in progress + if(VAMP_SCREAM) + src << "\blue You have gained the Chriopteran Screech ability which stuns anything with ears in a large radius and shatters glass in the process." + verbs += /client/proc/vampire_screech + if(VAMP_JAUNT) + src << "\blue You have gained the Mist Form ability which allows you to take on the form of mist for a short period and pass over any obstacle in your path." + verbs += /client/proc/vampire_jaunt + if(VAMP_SLAVE) + src << "\blue You have gained the Enthrall ability which at a heavy blood cost allows you to enslave a human that is not loyal to any other for a random period of time." + verbs += /client/proc/vampire_enthrall + if(VAMP_FULL) + src << "\blue You have reached your full potential and are no longer weak to the effects of anything holy and your vision has been improved greatyl." + //no verb +//prepare for copypaste +/datum/game_mode/proc/update_vampire_icons_added(datum/mind/vampire_mind) + var/ref = "\ref[vampire_mind]" + if(ref in thralls) + if(vampire_mind.current) + if(vampire_mind.current.client) + var/I = image('icons/mob/mob.dmi', loc = vampire_mind.current, icon_state = "vampire") + vampire_mind.current.client.images += I + for(var/headref in thralls) + for(var/datum/mind/t_mind in thralls[headref]) + var/datum/mind/head = locate(headref) + if(head) + if(head.current) + if(head.current.client) + var/I = image('icons/mob/mob.dmi', loc = t_mind.current, icon_state = "vampthrall") + head.current.client.images += I + if(t_mind.current) + if(t_mind.current.client) + var/I = image('icons/mob/mob.dmi', loc = head.current, icon_state = "vampire") + t_mind.current.client.images += I + if(t_mind.current) + if(t_mind.current.client) + var/I = image('icons/mob/mob.dmi', loc = t_mind.current, icon_state = "vampthrall") + t_mind.current.client.images += I + +/datum/game_mode/proc/update_vampire_icons_removed(datum/mind/vampire_mind) + for(var/headref in thralls) + var/datum/mind/head = locate(headref) + for(var/datum/mind/t_mind in thralls[headref]) + if(t_mind.current) + if(t_mind.current.client) + for(var/image/I in t_mind.current.client.images) + if((I.icon_state == "vampthrall" || I.icon_state == "vampire") && I.loc == vampire_mind.current) + //world.log << "deleting [vampire_mind] overlay" + del(I) + if(head) + //world.log << "found [head.name]" + if(head.current) + if(head.current.client) + for(var/image/I in head.current.client.images) + if((I.icon_state == "vampthrall" || I.icon_state == "vampire") && I.loc == vampire_mind.current) + //world.log << "deleting [vampire_mind] overlay" + del(I) + if(vampire_mind.current) + if(vampire_mind.current.client) + for(var/image/I in vampire_mind.current.client.images) + if(I.icon_state == "vampthrall" || I.icon_state == "vampire") + del(I) + +/datum/game_mode/proc/remove_vampire_mind(datum/mind/vampire_mind, datum/mind/head) + //var/list/removal + if(!istype(head)) + head = vampire_mind //workaround for removing a thrall's control over the enthralled + var/ref = "\ref[head]" + if(ref in thralls) + thralls[ref] -= vampire_mind + enthralled -= vampire_mind + vampire_mind.special_role = null + update_vampire_icons_removed(vampire_mind) + //world << "Removed [vampire_mind.current.name] from vampire shit" + vampire_mind.current << "\red The fog clouding your mind clears. You remember nothing from the moment you were enthralled until now." \ No newline at end of file diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm new file mode 100644 index 00000000000..efe60907559 --- /dev/null +++ b/code/game/gamemodes/vampire/vampire_powers.dm @@ -0,0 +1,370 @@ +//This should hold all the vampire related powers + + +/mob/proc/vampire_power(required_blood=0, max_stat=0) + + if(!src.mind) return 0 + if(!ishuman(src)) + src << "You are in too weak of a form to do this!" + return 0 + + var/datum/vampire/vampire = src.mind.vampire + if(!vampire) + world.log << "[src] has vampire verbs but isn't a vampire." + return 0 + + if(src.stat > max_stat) + src << "You are incapacitated." + return 0 + + if(vampire.bloodusable < required_blood) + src << "You require at least [required_blood] units of usable blood to do that!" + return 0 + + return 1 + +/mob/proc/vampire_can_reach(mob/M as mob, active_range = 1) + if(M.loc == src.loc) return 1 //target and source are in the same thing + if(!isturf(src.loc) || !isturf(M.loc)) return 0 //One is inside, the other is outside something. + if(AStar(src.loc, M.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, active_range)) //If a path exists, good! + return 1 + return 0 + +/mob/proc/vampire_active(required_blood=0, max_stat=0, active_range=1) + var/pass = vampire_power(required_blood, max_stat) + if(!pass) return + var/datum/vampire/vampire = mind.vampire + if(!vampire) return + var/list/victims = list() + for(var/mob/living/carbon/C in oview(active_range)) + victims += C + var/mob/living/carbon/T = input(src, "Victim?") as null|anything in victims + + if(!T) return + if(!(T in view(active_range))) return + if(!vampire_can_reach(T, active_range)) return + if(!vampire_power(required_blood, max_stat)) return + return T + +/client/proc/vampire_rejuvinate() + set category = "Vampire" + set name = "Rejuvinate " + set desc= "Flush your system with spare blood to remove any incapacitating effects" + var/datum/mind/M = usr.mind + if(!M) return + if(M.current.vampire_power(0, 1)) + M.current.weakened = 0 + M.current.stunned = 0 + M.current.paralysis = 0 + //M.vampire.bloodusable -= 10 + M.current << "\blue You flush your system with clean blood and remove any incapacitating effects." + M.current.verbs -= /client/proc/vampire_rejuvinate + spawn(200) + M.current.verbs += /client/proc/vampire_rejuvinate + +/client/proc/vampire_hypnotise() + set category = "Vampire" + set name = "Hypnotise (20)" + set desc= "A piercing stare that incapacitates your victim for a good length of time." + var/datum/mind/M = usr.mind + if(!M) return + + var/mob/living/carbon/C = M.current.vampire_active(20, 0, 1) + + if(!C) return + M.current.visible_message("[M]'s eyes flash briefly as he stares into [C.name]'s eyes") + M.current.remove_vampire_blood(20) + M.current.verbs -= /client/proc/vampire_hypnotise + spawn(1800) + M.current.verbs += /client/proc/vampire_hypnotise + if(do_mob(M.current, C, 50)) + if(C.mind && C.mind.vampire) + M.current << "\red Your piercing gaze fails to knock out [C.name]." + C << "\blue [M.current]'s feeble gaze is ineffective." + return + else + M.current << "\red Your piercing gaze knocks out [C.name]." + C << "\red You find yourself unable to move and barely able to speak" + C.Weaken(20) + C.Stun(20) + C.stuttering = 20 + else + M.current << "\red You broke your gaze." + return + +/client/proc/vampire_disease() + set category = "Vampire" + set name = "Diseased Touch (100)" + set desc = "Touches your victim with infected blood giving them the Shutdown Syndrome which quickly shutsdown their major organs resulting in a quick painful death." + var/datum/mind/M = usr.mind + if(!M) return + + var/mob/living/carbon/C = M.current.vampire_active(100, 0, 1) + if(!C) return + if(!M.current.vampire_can_reach(C, 1)) + M.current << "\red You cannot touch [C.name] from where you are standing!" + return + M.current << "\red You stealthily infect [C.name] with your diseased touch." + /*var/t_him = "it" + if (src.gender == MALE) + t_him = "him" + else if (src.gender == FEMALE) + t_him = "her" + M.current.visible_message("\blue [M] shakes [src] trying to wake [t_him] up!" ) + playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)*/ + C.help_shake_act(M.current) // i use da colon + var/datum/disease2/disease/shutdown = new /datum/disease2/disease + var/datum/disease2/effectholder/holder = new /datum/disease2/effectholder + var/datum/disease2/effect/organs/vampire/O = new /datum/disease2/effect/organs/vampire + holder.effect += O + holder.chance = 10 + shutdown.infectionchance = 100 + shutdown.antigen |= text2num(pick(ANTIGENS)) + shutdown.antigen |= text2num(pick(ANTIGENS)) + shutdown.spreadtype = "None" + shutdown.uniqueID = rand(0,10000) + shutdown.effects += holder + shutdown.speed = 10 + infect_virus2(C,shutdown,0) + M.current.remove_vampire_blood(100) + M.current.verbs -= /client/proc/vampire_disease + spawn(1800) M.current.verbs += /client/proc/vampire_disease + +/client/proc/vampire_glare() + set category = "Vampire" + set name = "Glare" + set desc= "A scary glare that incapacitates people for a short while around you." + var/datum/mind/M = usr.mind + if(!M) return + if(M.current.vampire_power(0, 1)) + M.current.visible_message("\red [M.current]'s eyes emit a blinding flash!") + //M.vampire.bloodusable -= 10 + M.current.verbs -= /client/proc/vampire_glare + spawn(300) + M.current.verbs += /client/proc/vampire_glare + if(istype(M.current:glasses, /obj/item/clothing/glasses/sunglasses/blindfold)) + M.current << "You're blindfolded" + return + for(var/mob/living/carbon/C in oview(1)) + if(C.mind && C.mind.vampire) continue + if(!M.current.vampire_can_reach(C, 1)) continue + C.Stun(8) + C.Weaken(8) + C.stuttering = 20 + C << "\red You are blinded by [M.current]'s glare" + +/client/proc/vampire_shapeshift() + set category = "Vampire" + set name = "Shapeshift (50)" + set desc = "Changes your name and appearance at the cost of 50 blood and has a cooldown of 3 minutes." + var/datum/mind/M = usr.mind + if(!M) return + if(M.current.vampire_power(50, 0)) + M.current.visible_message("[M.current] transforms!") + M.current.client.prefs.real_name = random_name(M.current.gender) + M.current.client.prefs.randomize_appearance_for(M.current) + M.current.regenerate_icons() + M.current.remove_vampire_blood(50) + M.current.verbs -= /client/proc/vampire_shapeshift + spawn(1800) M.current.verbs += /client/proc/vampire_shapeshift + +/client/proc/vampire_screech() + set category = "Vampire" + set name = "Chiroptean Screech (30)" + set desc = "An extremely loud shriek that stuns nearby humans and breaks windows as well." + var/datum/mind/M = usr.mind + if(!M) return + if(M.current.vampire_power(30, 0)) + M.current.visible_message("\red [M.current.name] lets out an ear piercing shriek!", "\red You let out a loud shriek.", "\red You hear a loud painful shriek!") + for(var/mob/living/carbon/C in ohearers(4, M.current)) + if(C == M.current) continue + if(ishuman(C) && (C:l_ear || C:r_ear) && istype((C:l_ear || C:r_ear), /obj/item/clothing/ears/earmuffs)) continue + C << "You hear a ear piercing shriek and your senses dull!" + C.Weaken(8) + C.ear_deaf = 20 + C.stuttering = 20 + C.Stun(8) + C.make_jittery(150) + for(var/obj/structure/window/W in oview(3)) + new W.shardtype(W.loc) + if(W.reinf) new /obj/item/stack/rods(W.loc) + del(W) + playsound(M.current.loc, 'sound/effects/creepyshriek.ogg', 100, 1) + M.current.remove_vampire_blood(30) + M.current.verbs -= /client/proc/vampire_screech + spawn(1800) M.current.verbs += /client/proc/vampire_screech + +/client/proc/vampire_enthrall() + set category = "Vampire" + set name = "Enthrall (300)" + set desc = "You use a large portion of your power to sway those loyal to none to be loyal to you only." + var/datum/mind/M = usr.mind + if(!M) return + var/mob/living/carbon/C = M.current.vampire_active(300, 0, 1) + if(!C) return + M.current.visible_message("\red [M.current.name] bites [C.name]'s neck!", "\red You bite [C.name]'s neck and begin the flow of power.") + C << "You feel the tendrils of evil invade your mind." + if(!ishuman(C)) + M.current << "\red You can only enthrall humans" + return + + if(do_mob(M.current, C, 50)) + if(M.current.can_enthrall(C) && M.current.vampire_power(300, 0)) // recheck + M.current.handle_enthrall(C) + M.current.remove_vampire_blood(300) + else + M.current << "\red You or your target either moved or you dont have enough usable blood." + return + M.current.verbs -= /client/proc/vampire_enthrall + spawn(1800) M.current.verbs += /client/proc/vampire_enthrall + + +/client/proc/vampire_cloak() + set category = "Vampire" + set name = "Cloak of Darkness (toggle)" + set desc = "Toggles whether you are currently cloaking yourself in darkness." + var/datum/mind/M = usr.mind + if(!M) return + if(M.current.vampire_power(0, 0)) + M.vampire.iscloaking = !M.vampire.iscloaking + M.current << "\blue You will now be [M.vampire.iscloaking ? "hidden" : "seen"] in darkness." + +/mob/proc/handle_vampire_cloak() + if(!mind || !mind.vampire || !ishuman(src)) + alpha = 255 + return + var/turf/simulated/T = get_turf(src) + + if(!istype(T)) + return 0 + + if(!mind.vampire.iscloaking) + alpha = 255 + return 0 + if(T.lighting_lumcount <= 2) + alpha = round((255 * 0.15)) + return 1 + else + alpha = round((255 * 0.80)) + +/mob/proc/can_enthrall(mob/living/carbon/C) + if(!C) + world.log << "something bad happened on enthralling a mob src is [src] [src.key] \ref[src]" + return 0 + if(!C.mind) + src << "\red [C.name]'s mind is not there for you to enthrall." + return 0 + if(/obj/item/weapon/implant/traitor in C.contents || /obj/item/weapon/implant/loyalty in C.contents || C.mind in ticker.mode.vampires || C.mind.vampire || C.mind in ticker.mode.enthralled) + C.visible_message("[C] seems to resist the takeover!", "You feel a familiar sensation in your skull that quickly dissipates.") + return 0 + if(!ishuman(C)) + src << "\red You can only enthrall humans!" + return 0 + return 1 + +/mob/proc/handle_enthrall(mob/living/carbon/human/H as mob) + if(!istype(H)) + src << "\red SOMETHING WENT WRONG, YELL AT POMF OR NEXIS" + return 0 + var/ref = "\ref[src.mind]" + if(!(ref in ticker.mode.thralls)) + ticker.mode.thralls[ref] = list(H.mind) + ticker.mode.enthralled.Add(H.mind) + ticker.mode.enthralled[H.mind] = src.mind + H.mind.special_role = "VampThrall" + H << "\red You have been Enthralled by [name]. Follow their every command." + src << "\red You have successfully Enthralled [H.name]. If they refuse to do as you say just adminhelp." + ticker.mode.update_vampire_icons_added(H.mind) + ticker.mode.update_vampire_icons_added(src.mind) + log_admin("[ckey(src.key)] has mind-slaved [ckey(H.key)].") + +/client/proc/vampire_bats() + set category = "Vampire" + set name = "Summon Bats (75)" + set desc = "You summon a pair of space bats who attack nearby targets until they or their target is dead." + var/datum/mind/M = usr.mind + if(!M) return + if(M.current.vampire_power(75, 0)) + var/list/turf/locs = new + var/number = 0 + for(var/direction in alldirs) //looking for bat spawns + if(locs.len == 2) //we found 2 locations and thats all we need + break + var/turf/T = get_step(M.current,direction) //getting a loc in that direction + if(AStar(M.current.loc, T, /turf/proc/AdjacentTurfs, /turf/proc/Distance, 1)) // if a path exists, so no dense objects in the way its valid salid + locs += T + if(locs.len) + for(var/turf/tospawn in locs) + number++ + new /mob/living/simple_animal/hostile/scarybat(tospawn, M.current) + if(number != 2) //if we only found one location, spawn one on top of our tile so we dont get stacked bats + new /mob/living/simple_animal/hostile/scarybat(M.current.loc, M.current) + else // we had no good locations so make two on top of us + new /mob/living/simple_animal/hostile/scarybat(M.current.loc, M.current) + new /mob/living/simple_animal/hostile/scarybat(M.current.loc, M.current) + M.current.remove_vampire_blood(75) + M.current.verbs -= /client/proc/vampire_bats + spawn(1200) M.current.verbs += /client/proc/vampire_bats + +/client/proc/vampire_jaunt() + //AHOY COPY PASTE INCOMING + set category = "Vampire" + set name = "Mist Form (30)" + set desc = "You take on the form of mist for a short period of time." + var/jaunt_duration = 50 //in deciseconds + var/datum/mind/M = usr.mind + if(!M) return + + if(M.current.vampire_power(30, 0)) + if(M.current.buckled) M.current.buckled.unbuckle() + spawn(0) + var/mobloc = get_turf(M.current.loc) + var/obj/effect/dummy/spell_jaunt/holder = new /obj/effect/dummy/spell_jaunt( mobloc ) + var/atom/movable/overlay/animation = new /atom/movable/overlay( mobloc ) + animation.name = "water" + animation.density = 0 + animation.anchored = 1 + animation.icon = 'icons/mob/mob.dmi' + animation.icon_state = "liquify" + animation.layer = 5 + animation.master = holder + M.current.ExtinguishMob() + if(M.current.buckled) + M.current.buckled.unbuckle() + flick("liquify",animation) + M.current.loc = holder + M.current.client.eye = holder + var/datum/effect/effect/system/steam_spread/steam = new /datum/effect/effect/system/steam_spread() + steam.set_up(10, 0, mobloc) + steam.start() + sleep(jaunt_duration) + mobloc = get_turf(M.current.loc) + animation.loc = mobloc + steam.location = mobloc + steam.start() + M.current.canmove = 0 + sleep(20) + flick("reappear",animation) + sleep(5) + if(!M.current.Move(mobloc)) + for(var/direction in list(1,2,4,8,5,6,9,10)) + var/turf/T = get_step(mobloc, direction) + if(T) + if(M.current.Move(T)) + break + M.current.canmove = 1 + M.current.client.eye = M.current + del(animation) + del(holder) + M.current.remove_vampire_blood(30) + M.current.verbs -= /client/proc/vampire_jaunt + spawn(600) M.current.verbs += /client/proc/vampire_jaunt + +/mob/proc/remove_vampire_blood(amount = 0) + var/bloodold + if(!mind || !mind.vampire) + return + bloodold = mind.vampire.bloodusable + mind.vampire.bloodusable = max(0, (mind.vampire.bloodusable - amount)) + if(bloodold != mind.vampire.bloodusable) + src << "\blue You have [mind.vampire.bloodusable] left to use." \ No newline at end of file diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 6cbdea01e46..0b76e21c88f 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -227,20 +227,21 @@ var/datum/gas_mixture/gas = location.remove_air(0.25*environment.total_moles) var/heat_capacity = 0 + var/energy_used if(gas) heat_capacity = gas.heat_capacity() - var/energy_used = min( abs( heat_capacity*(gas.temperature - target_temperature) ), MAX_ENERGY_CHANGE) + energy_used = min( abs( heat_capacity*(gas.temperature - target_temperature) ), MAX_ENERGY_CHANGE) - //Use power. Assuming that each power unit represents 1000 watts.... - use_power(energy_used/1000, ENVIRON) + //Use power. Assuming that each power unit represents 1000 watts.... + use_power(energy_used/1000, ENVIRON) - //We need to cool ourselves. - if(environment.temperature > target_temperature) - gas.temperature -= energy_used/heat_capacity - else - gas.temperature += energy_used/heat_capacity + //We need to cool ourselves. + if(environment.temperature > target_temperature) + gas.temperature -= energy_used/heat_capacity + else + gas.temperature += energy_used/heat_capacity - environment.merge(gas) + environment.merge(gas) if(abs(environment.temperature - target_temperature) <= 0.5) regulating_temperature = 0 diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 0e6eb04874f..2eea7058c5d 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -17,6 +17,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set "ninja" = "true", // 10 "vox raider" = IS_MODE_COMPILED("heist"), // 11 "diona" = 1, // 12 + "vampire" = IS_MODE_COMPILED("vampire") // 13 ) var/const/MAX_SAVE_SLOTS = 10 diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 027b2c9082a..fd720510e3d 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -168,6 +168,10 @@ Works together with spawning an observer, noted above. U.client.images += image(tempHud,target,"huddeathsquad") if("Ninja") U.client.images += image(tempHud,target,"hudninja") + if("Vampire") + U.client.images += image(tempHud,target,"vampire") + if("VampThrall") + U.client.images += image(tempHud,target,"vampthrall") else//If we don't know what role they have but they have one. U.client.images += image(tempHud,target,"hudunknown1") else//If the silicon mob has no law datum, no inherent laws, or a law zero, add them to the hud. diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index dc4c601a6bf..4d020dedc8f 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -90,6 +90,24 @@ if("hurt") + //Vampire code + if(M.zone_sel && M.zone_sel.selecting == "head" && src != M) + if(M.mind && M.mind.vampire && (M.mind in ticker.mode.vampires) && !M.mind.vampire.draining) + if((head && (head.flags & HEADCOVERSMOUTH)) || (wear_mask && (wear_mask.flags & MASKCOVERSMOUTH))) + M << "\red Remove their mask!" + return 0 + if((M.head && (M.head.flags & HEADCOVERSMOUTH)) || (M.wear_mask && (M.wear_mask.flags & MASKCOVERSMOUTH))) + M << "\red Remove your mask!" + return 0 + if(mind && mind.vampire && (mind in ticker.mode.vampires)) + M << "\red Your fangs fail to pierce [src.name]'s cold flesh" + return 0 + //we're good to suck the blood, blaah + M.handle_bloodsucking(src) + return + //end vampire codes + + M.attack_log += text("\[[time_stamp()]\] [M.species.attack_verb]ed [src.name] ([src.ckey])") src.attack_log += text("\[[time_stamp()]\] Has been [M.species.attack_verb]ed by [M.name] ([M.ckey])") diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 22c85d1c797..e0838aa2930 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -125,6 +125,9 @@ for(var/obj/item/weapon/grab/G in src) G.process() + if(mind && mind.vampire) + handle_vampire_cloak() + /mob/living/carbon/human/calculate_affecting_pressure(var/pressure) ..() @@ -403,6 +406,11 @@ internals.icon_state = "internal0" return null +// USED IN DEATHWHISPERS + proc/isInCrit() + // Health is in deep shit and we're not already dead + return health <= 0 && stat != 2 + proc/handle_breath(datum/gas_mixture/breath) if(status_flags & GODMODE) @@ -1222,6 +1230,13 @@ see_in_dark = 8 see_invisible = SEE_INVISIBLE_LEVEL_ONE + if(mind && mind.vampire) + if((VAMP_VISION in mind.vampire.powers) && !(VAMP_FULL in mind.vampire.powers)) + sight |= SEE_MOBS + if((VAMP_FULL in mind.vampire.powers)) + sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS + see_in_dark = 8 + if(!druggy) see_invisible = SEE_INVISIBLE_LEVEL_TWO if(XRAY in mutations) sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS see_in_dark = 8 diff --git a/code/modules/mob/living/carbon/human/whisper.dm b/code/modules/mob/living/carbon/human/whisper.dm index ede4b95973b..e8ab1a3f944 100644 --- a/code/modules/mob/living/carbon/human/whisper.dm +++ b/code/modules/mob/living/carbon/human/whisper.dm @@ -89,7 +89,7 @@ var/list/heard_a = list() // understood us var/list/heard_b = list() // didn't understand us var/and_passes_on="" - if(!said_last_words) + if(!said_last_words && src.isInCrit()) and_passes_on=" - and passes on" said_last_words=src.stat @@ -153,6 +153,6 @@ M.show_message(rendered, 2) if(said_last_words) src.stat = 2 - src.death() + src.death(0) src.regenerate_icons() diff --git a/code/modules/mob/living/simple_animal/hostile/bat.dm b/code/modules/mob/living/simple_animal/hostile/bat.dm new file mode 100644 index 00000000000..ed8d291ffdb --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/bat.dm @@ -0,0 +1,59 @@ +/mob/living/simple_animal/hostile/scarybat + name = "space bat" + desc = "A cute little blood sucking bat that looks pretty pissed." + icon_state = "scarybat" + icon_living = "scarybat" + icon_dead = "scarybat-dead" + icon_gib = "scarybat-dead" + speak_chance = 0 + turns_per_move = 3 + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat + response_help = "pets the" + response_disarm = "gently pushes aside the" + response_harm = "hits the" + speed = 4 + maxHealth = 20 + health = 20 + + harm_intent_damage = 8 + melee_damage_lower = 10 + melee_damage_upper = 10 + attacktext = "bites" + attack_sound = 'sound/weapons/bite.ogg' + + //Space carp aren't affected by atmos. + min_oxy = 0 + max_oxy = 0 + min_tox = 0 + max_tox = 0 + min_co2 = 0 + max_co2 = 0 + min_n2 = 0 + max_n2 = 0 + minbodytemp = 0 + +// break_stuff_probability = 2 + + faction = "scarybat" + var/mob/living/owner + +/mob/living/simple_animal/hostile/scarybat/New(loc, mob/living/L as mob) + ..() + if(istype(L)) + owner = L + +/mob/living/simple_animal/hostile/scarybat/Process_Spacemove(var/check_drift = 0) + return ..() //No drifting in space for space carp! //original comments do not steal + +/mob/living/simple_animal/hostile/scarybat/FindTarget() + . = ..() + if(.) + emote("flutters towards [.]") + +/mob/living/simple_animal/hostile/scarybat/AttackingTarget() + . =..() + var/mob/living/L = . + if(istype(L)) + if(prob(15)) + L.Stun(1) + L.visible_message("\the [src] scares \the [L]!") \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index f8262ce8832..7fa0463c5b3 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -26,6 +26,8 @@ if(isliving(A)) var/mob/living/L = A + if(istype(src, /mob/living/simple_animal/hostile/scarybat)) + if(src:owner == L) continue if(L.faction == src.faction && !attack_same) continue else if(L in friends) diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 0a072a74fd8..2cfc22ceb8e 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -225,6 +225,14 @@ datum if(!istype(M, /mob/living)) return + // Put out fire + if(method == TOUCH) + M.adjust_fire_stacks(-(volume / 10)) + if(M.fire_stacks <= 0) + M.ExtinguishMob() + return + + // Grays treat water like acid. if(ishuman(M)) var/mob/living/carbon/human/H = M @@ -297,14 +305,6 @@ datum if(!cube.wrapped) cube.Expand() return - reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with water can help put them out! - if(!istype(M, /mob/living)) - return - if(method == TOUCH) - M.adjust_fire_stacks(-(volume / 10)) - if(M.fire_stacks <= 0) - M.ExtinguishMob() - return lube name = "Space Lube" @@ -600,7 +600,39 @@ datum ticker.mode.remove_cultist(M.mind) for(var/mob/O in viewers(M, null)) O.show_message(text("\blue []'s eyes blink and become clearer.", M), 1) // So observers know it worked. + // Vamps react to this like acid + if((M.mind in ticker.mode.vampires) && prob(10)) + if(!M) M = holder.my_atom + M.adjustToxLoss(1*REM) + M.take_organ_damage(0, 1*REM) holder.remove_reagent(src.id, 10 * REAGENTS_METABOLISM) //high metabolism to prevent extended uncult rolls. + + + reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with water can help put them out! + // Vamps react to this like acid + if(ishuman(M)) + if((M.mind in ticker.mode.vampires)) + var/mob/living/carbon/human/H=M + if(method == TOUCH) + if(H.wear_mask) + H << "\red Your mask protects you from the holy water!" + return + if(H.head) + H << "\red Your helmet protects you from the holy water!" + return + if(!M.unacidable) + if(prob(15) && volume >= 30) + var/datum/organ/external/affecting = H.get_organ("head") + if(affecting) + if(affecting.take_damage(25, 0)) + H.UpdateDamageIcon() + H.status_flags |= DISFIGURED + H.emote("scream") + else + M.take_organ_damage(min(15, volume * 2)) // uses min() and volume to make sure they aren't being sprayed in trace amounts (1 unit != insta rape) -- Doohl + else + if(!M.unacidable) + M.take_organ_damage(min(15, volume * 2)) return serotrotium diff --git a/code/modules/virus2/disease2.dm b/code/modules/virus2/disease2.dm index ac5ef88843d..a43ec5bffdd 100644 --- a/code/modules/virus2/disease2.dm +++ b/code/modules/virus2/disease2.dm @@ -100,6 +100,8 @@ disease.stageprob = stageprob disease.antigen = antigen disease.uniqueID = uniqueID + disease.speed = speed + disease.stage = stage for(var/datum/disease2/effectholder/holder in effects) var/datum/disease2/effectholder/newholder = new /datum/disease2/effectholder newholder.effect = new holder.effect.type diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm index ab17cbc9a67..923b2cf7d0e 100644 --- a/code/modules/virus2/effect.dm +++ b/code/modules/virus2/effect.dm @@ -141,7 +141,11 @@ H << "You can't feel your [E.display_name] anymore..." for (var/datum/organ/external/C in E.children) C.status |= ORGAN_DEAD - mob.adjustToxLoss(15*multiplier) + H.update_body(1) + if(multiplier < 1) multiplier = 1 + H.adjustToxLoss(10*multiplier) + vampire + stage = 3 deactivate(var/mob/living/carbon/mob,var/multiplier) if(istype(mob, /mob/living/carbon/human)) diff --git a/code/setup.dm b/code/setup.dm index 76357df62b6..38cf78a402c 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -665,6 +665,7 @@ var/list/TAGGERLOCATIONS = list("Disposals", #define BE_NINJA 1024 #define BE_VOX 2048 #define BE_PLANT 4096 +#define BE_VAMPIRE 8192 var/list/be_special_flags = list( "Traitor" = BE_TRAITOR, @@ -679,7 +680,8 @@ var/list/be_special_flags = list( "Monkey" = BE_MONKEY, "Ninja" = BE_NINJA, "Vox" = BE_VOX, - "Diona" = BE_PLANT + "Diona" = BE_PLANT, + "Vampire" = BE_VAMPIRE ) #define AGE_MIN 17 //youngest a character can be @@ -771,4 +773,18 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse //Flags for zone sleeping #define ZONE_ACTIVE 1 -#define ZONE_SLEEPING 0 \ No newline at end of file +#define ZONE_SLEEPING 0 + +// Vampire power defines +#define VAMP_REJUV 1 +#define VAMP_GLARE 2 +#define VAMP_HYPNO 3 +#define VAMP_SHAPE 4 +#define VAMP_VISION 5 +#define VAMP_DISEASE 6 +#define VAMP_CLOAK 7 +#define VAMP_BATS 8 +#define VAMP_SCREAM 9 +#define VAMP_JAUNT 10 +#define VAMP_SLAVE 11 +#define VAMP_FULL 12 \ No newline at end of file diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index f249d5ce6ffece49098b9a28fd79cbada6394de5..29c366ecab0264941319843a9b65395a66a9984a 100644 GIT binary patch delta 20570 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 delta 16674 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≠Pg+Q|9Vjq7(^i@Q*{gg%PKnJ^T1h%OBO%f_2 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 y&004jl0{{R3eocQU0000XP)t-s|Ns9f zB_Sjs9sd9TXIDfU85cS-Dj*&kLpm@2|Nqqj0r=cUkN^Mx0d!JMQvg8b*k%9#0DgK@ zSad{Xb7OL8aCB*JZU6vyoKseCa&`CgQ*iP13i7ZcLV~b|66I=)}6Cwh4%2k#? zyOJ`Gm^b2ll~tNcMU@Me9jRz+*EyZk7G9!yUSEKiGl$Jn&K6J2^`>Bv88LXg0j>?< zl~^twn(K#RE}ZVbo08n5NqPQ$`^q1(q%@xxNT{5&3-3a67k26Nr+Nb+toDv^*mc{`MxjgR}Bn z%x<*_q`clPQ7*K(YT#JlB3|EU3sPSm64n!3Y_FG$0FDKrJG#yV&;`7luU1cH);f`>rW^&KopI>1j?KVMguQ;UrRCM-$7iy>)VSC^meyYaOR)fd!vpd{&l zrFmU#!n~ebikXC?;=4!L&Hzi2?v;@==SmN1YVA?V3pfDkJ2Jy!X)cgJ6=!Rd=LPw% z>(HYI&GE+e8;E_!kNCfU)tV(+k$(msLONU7nkgm>`A26fk7mktydnR{Y~|5R>6VD( zADOL~z4ABLh?CQS^x#k&mJs&`hwDiU+#ejQCo!;o^w5)T`PSE8B+8{eLSq5w8I!Q< zrw26UiTVrl(@|62r@v@!K-f=5O?j_|rLh4)KOHyau?J|6;Qa>r>9{G6k0mD3Cux9w zI&RA2V~LMV(d5{B?sneR16zXWTDRRHND;Ok*b#o7s4@q(_t5yh{@{xT072ssAph`@ zP*{Hu%0GN06xJW?)j}p>X&d35^)xiSUNwaR|d3jy8lh94#1n zw&j7~L;Mj(3uzuYjrF)Tc-@we=D{ML3~3&h&(EQZR7l6^VRts$r>JT0H)H28%sb^A z9xgg|N;*7TbZnJ0zq(4&hSIZ%L1R}-sAv&!dH_OLOYr*b1=}kSaV^2P%->$^QxO}e f-~B+}=byqKv$5Q+jc4ep00000NkvXXu0mjfa64w* literal 0 HcmV?d00001 diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 9853c59275590275b2cf394aacd1f5f52d26f0c8..752359124145f8dd05d1959403b080f7c31d5e58 100644 GIT binary patch delta 2738 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 diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi index 4d16add44d2868578447f46f00a42f8a12a8d3b6..0d588a9c0a615efe31133618624cbe81471f1aef 100644 GIT binary patch delta 8574 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 aJt*Kwu`{E0qcH{o{+=mnJS~y8c=vyBT9}dm diff --git a/sound/effects/creepyshriek.ogg b/sound/effects/creepyshriek.ogg new file mode 100644 index 0000000000000000000000000000000000000000..86933130d5df41dcf1ce527fc3e844c0902e5d00 GIT binary patch literal 45042 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 dFc$oaYzcHhx`t81jO7NViV>5-$M#!*006APO