mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-24 13:30:42 +01:00
Vampire adjustments (#692)
Hypnotise buffed to last slightly longer, and to silence the target, to make it worth the blood cost and activation time Scaling and datum adjusted to make more vamps in rounds (1 vamp per 50 players is unreal) Frenzy gets removed at a faster rate while draining blood Fixed a bug where thralls got vampire powers Added debug logs for antag spawning, to be pushed live for debug purposes.
This commit is contained in:
@@ -155,6 +155,8 @@
|
||||
if(spawn_target == null)
|
||||
spawn_target = initial_spawn_target
|
||||
|
||||
log_debug("ANTAG SPAWN: Attempting antag spawn. Antag: [id], spawn target: [spawn_target], ")
|
||||
|
||||
// Update our boundaries.
|
||||
if(!candidates.len)
|
||||
return 0
|
||||
|
||||
@@ -90,6 +90,7 @@
|
||||
// Minimum: initial_spawn_target
|
||||
// Maximum: hard_cap or hard_cap_round
|
||||
cur_max = max(initial_spawn_target,min(round(count/ticker.mode.antag_scaling_coeff),cur_max))
|
||||
log_debug("ANTAG SPAWN: Updated current max. Antag: [id], players: [count], new current max: [cur_max].")
|
||||
|
||||
// Updates the initial spawn target to match the player count.
|
||||
// Intended to stop 6 nuke ops in a 15 player round. RIP those rounds.
|
||||
@@ -110,7 +111,5 @@
|
||||
var/new_cap = max(initial_spawn_req, round(count/modifier))
|
||||
|
||||
// Default to the hardcap if we're about to surpass it
|
||||
if (new_cap > hard_cap)
|
||||
initial_spawn_target = hard_cap
|
||||
else
|
||||
initial_spawn_target = new_cap
|
||||
initial_spawn_target = min(hard_cap, new_cap)
|
||||
log_debug("ANTAG SPAWN: Updated initial spawn target. Antag: [id], players: [count], new spawn target: [initial_spawn_target].")
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
round_description = "There are Vampires from Space Transylvania on the station, keep your blood close and neck safe!"
|
||||
extended_round_description = "Life always finds a way. However, life can sometimes take a more disturbing route. Humanity's extensive knowledge of xeno-biological specimens has made them confident and arrogant. Yet something slipped past their eyes. Something dangerous. Something alive. Most frightening of all, however, is that this something is someone. An unknown alien specimen has incorporated itself into the crew of the NSS Exodus. No one knows where it came from. No one knows who it is or what it wants. One thing is for certain though... there is never just one of them. Good luck."
|
||||
config_tag = "vampire"
|
||||
required_players = 1
|
||||
required_players = 2
|
||||
required_enemies = 1
|
||||
end_on_antag_death = 1
|
||||
antag_scaling_coeff = 8
|
||||
|
||||
@@ -6,6 +6,10 @@
|
||||
if (!mind.vampire)
|
||||
mind.vampire = new /datum/vampire()
|
||||
|
||||
// No powers to thralls. Ew.
|
||||
if (mind.vampire.status & VAMP_ISTHRALL)
|
||||
return
|
||||
|
||||
mind.vampire.blood_usable += 30
|
||||
|
||||
verbs += new/datum/game_mode/vampire/verb/vampire_help
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
vampire.status |= VAMP_DRAINING
|
||||
|
||||
visible_message("\red <b>[src.name] bites [T.name]'s neck!<b>", "\red <b>You bite [T.name]'s neck and begin to drain their blood.", "\blue You hear a soft puncture and a wet sucking noise")
|
||||
visible_message("<span class='danger'>[src.name] bites [T.name]'s neck!</span>", "<span class='danger'>You bite [T.name]'s neck and begin to drain their blood.</span>", "<span class='notice'>You hear a soft puncture and a wet sucking noise</span>")
|
||||
admin_attack_log(src, T, "drained blood from [key_name(T)]", "was drained blood from by [key_name(src)]", "is draining blood from")
|
||||
|
||||
T << "<span class='warning'>You are unable to resist or even move. Your mind blanks as you're being fed upon.</span>"
|
||||
@@ -47,14 +47,14 @@
|
||||
|
||||
while (do_mob(src, T, 50))
|
||||
if (!mind.vampire)
|
||||
src << "\red Your fangs have disappeared!"
|
||||
src << "<span class='danger'>Your fangs have disappeared!</span>"
|
||||
return
|
||||
|
||||
blood_total = vampire.blood_total
|
||||
blood_usable = vampire.blood_usable
|
||||
|
||||
if (!T.vessel.get_reagent_amount("blood"))
|
||||
src << "\red [T] has no more blood left to give."
|
||||
src << "<span class='danger'>[T] has no more blood left to give.</span>"
|
||||
break
|
||||
|
||||
if (!T.stunned)
|
||||
@@ -85,22 +85,22 @@
|
||||
blood = min(5, T.vessel.get_reagent_amount("blood"))
|
||||
vampire.blood_usable += blood
|
||||
|
||||
frenzy_lower_chance = 20
|
||||
frenzy_lower_chance = 40
|
||||
|
||||
if (prob(frenzy_lower_chance) && vampire.frenzy > 0)
|
||||
vampire.frenzy--
|
||||
|
||||
if (blood_total != vampire.blood_total)
|
||||
var/update_msg = "\blue <b>You have accumulated [vampire.blood_total] [vampire.blood_total > 1 ? "units" : "unit"] of blood.</b>"
|
||||
var/update_msg = "<span class='notice'>You have accumulated [vampire.blood_total] [vampire.blood_total > 1 ? "units" : "unit"] of blood.</span>"
|
||||
if (blood_usable != vampire.blood_usable)
|
||||
update_msg += "<b> And have [vampire.blood_usable] left to use.</b>"
|
||||
update_msg += "<span class='notice'> And have [vampire.blood_usable] left to use.</span>"
|
||||
|
||||
src << update_msg
|
||||
check_vampire_upgrade()
|
||||
T.vessel.remove_reagent("blood", 25)
|
||||
|
||||
vampire.status &= ~VAMP_DRAINING
|
||||
src << "\blue You extract your fangs from [T.name]'s neck and stop draining them of blood. They will remember nothing of this occurance. Provided they survived."
|
||||
src << "<span class='notice'>You extract your fangs from [T.name]'s neck and stop draining them of blood. They will remember nothing of this occurance. Provided they survived.</span>"
|
||||
|
||||
if (T.stat != 2)
|
||||
T << "<span class='warning'>You remember nothing about being fed upon. Instead, you simply remember having a pleasant encounter with [src.name].</span>"
|
||||
@@ -122,7 +122,7 @@
|
||||
src << "<span class='warning'>You're blindfolded!</span>"
|
||||
return
|
||||
|
||||
visible_message("\red <b>[src.name]'s eyes emit a blinding flash!</b>")
|
||||
visible_message("<span class='danger'>[src.name]'s eyes emit a blinding flash!</span>")
|
||||
var/list/victims = list()
|
||||
for (var/mob/living/carbon/human/H in view(2))
|
||||
if (H == src)
|
||||
@@ -133,7 +133,7 @@
|
||||
|
||||
H.Weaken(8)
|
||||
H.stuttering = 20
|
||||
H << "\red You are blinded by [src]'s glare!"
|
||||
H << "<span class='danger'>You are blinded by [src]'s glare!</span>"
|
||||
flick("flash", H.flash)
|
||||
victims += H
|
||||
|
||||
@@ -175,11 +175,11 @@
|
||||
src << "<span class='notice'>You begin peering into [T.name]'s mind, looking for a way to render them useless.</span>"
|
||||
|
||||
if (do_mob(src, T, 50))
|
||||
src << "\red You dominate [T.name]'s mind and render them temporarily powerless to resist."
|
||||
T << "\red You are captivated by [src.name]'s gaze, and find yourself unable to move or even speak."
|
||||
T.Weaken(20)
|
||||
T.Stun(20)
|
||||
T.stuttering = 20
|
||||
src << "<span class='danger'> You dominate [T.name]'s mind and render them temporarily powerless to resist.</span>"
|
||||
T << "<span class='danger'> You are captivated by [src.name]'s gaze, and find yourself unable to move or even speak.</span>"
|
||||
T.Weaken(25)
|
||||
T.Stun(25)
|
||||
T.silent += 30
|
||||
|
||||
vampire.use_blood(10)
|
||||
admin_attack_log(src, T, "used hypnotise to stun [key_name(T)]", "was stunned by [key_name(src)] using hypnotise", "used hypnotise on")
|
||||
@@ -188,7 +188,7 @@
|
||||
spawn(1200)
|
||||
verbs += /mob/living/carbon/human/proc/vampire_hypnotise
|
||||
else
|
||||
src << "\red You broke your gaze."
|
||||
src << "<span class='warning'>You broke your gaze.</span>"
|
||||
|
||||
// Targeted teleportation, must be to a low-light tile.
|
||||
/mob/living/carbon/human/proc/vampire_veilstep(var/turf/T in world)
|
||||
|
||||
Reference in New Issue
Block a user