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:
skull132
2016-08-14 22:02:35 +03:00
committed by GitHub
parent 05a82b6e84
commit 087e8fcd0e
7 changed files with 44 additions and 22 deletions
+2
View File
@@ -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
+3 -4
View File
@@ -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].")
+1 -1
View File
@@ -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
+15 -15
View File
@@ -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)
@@ -0,0 +1,17 @@
# Your name.
author: Skull132
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- tweak: "Vampire's Hypnotise ability now renders the victim unable to speak while stunned, much like the changeling's silence sting."
- tweak: "Vampire scaling boosted, we should now see the game spawn more than one vampire."
- tweak: "Vampires now lose frenzy faster while feeding. One victim, completely drained, should be enough to get out of a mid-level frenzy."
- bugfix: "Vampire thralls are no longer given vampiric abilities/powers."
- wip: "Added debug logs relating to antag spawning. Will keep these active for a bit to see what's going where."
+2 -2
View File
@@ -6,7 +6,7 @@ This guide contains important OOC information on vampire related mechanics, as w
Vampires are individuals who, after attempting blood magic or being converted by a vampire themselves, have been corrupted by the Veil and given insidious power. As creatures of the night they have lost all need to eat or drink and are instead consumed with an unquenching thirst for blood to sustain themselves and to grow more powerful and grow ever closer to tapping the full power of The Veil.<br>
<h2>Mechanics</h2><br>
<b>Blood</b> - Blood comes in two forms: usable and total. The usable blood can be considered your mana pool. It gets trained as you use more powers. Total blood can be thought of as experience points. They cannot be removed, and they will move you further up the power tree.<br>
<b>Blood</b> - Blood comes in two forms: <b>usable</b> and <b>total</b>. The usable blood can be considered your mana pool. It gets trained as you use more powers. Total blood can be thought of as experience points. They cannot be removed, and they will move you further up the power tree.<br>
You start with 30 units of usable blood. Be careful with your initial pool: if you expend it, you will start slowly frenzying.<br>
<b>Progression</b> - Vampire's progression is linear. The more total blood you train, the more powers you unlock. As the final step, you will unlock the Veil's full power, which augments the existing powers.<br>
<b>Frenzy</b> - With the raw corruption of the Veil locked within your body, maintaining your sanity is a constant battle. Should you ever run out of usable blood, or become enraged through other means, you may find yourself frenzied. You are reverted to a snarling creature who only wants to consume blood until you are able to break out of it, and regain control. This is done by draining blood.<br>
@@ -17,7 +17,7 @@ Vampire's powers all come from blood magic. In essence, it's similar to the Cult
<b>Drain Blood</b> - The most basic power a vampire needs. Feeding. Your victim will be unable to resist from the moment you've sunk your fangs into them, and will not remember anything about the encounter, beyond having a pleasant interaction with your character. For every 10 points of blood gained, you drain roughly twice that from your victim. While draining blood, you also sate the Veil's desires, and thus lower your frenzy counter.<br>
<b>Blood Heal</b> - Uses the blood of your victims to heal you. You must not move or be interrupted in any other way while doing this act of magic. Eventually, all damage will be healed, including broken bones and damaged organs.<br>
<b>Glare</b> - An area of effect stun ability. Knocks out everyone not wearing proper eyeprotection within a 2 tile radius.<br>
<b>Hypnotise</b> - A targeted stun ability. Requires that you and your target remain stationary for a short amount of time. The stun effect lasts longer than that applied by Glare.<br>
<b>Hypnotise</b> - A targeted stun ability. Requires that you and your target remain stationary for a short amount of time. In addition to the stun effects lasting longer than that of Glare's, the target of Hypnotise is also rendered unable to speak for a short amount of time.<br>
<b>Presence</b> - When <i>toggled</i> and activated, you begin emitting a positive influence towards other characters. Other players within sight range, if influencable through blood magic, will see messages encouraging them to be warmer and more receptive towards your character than they normally would be.<br>
<b>Veil Step</b> - Activated by right clicking on any tile in the game. You jump to that tile, provided that it's covered in shadows to some degree. If you're a vampire that's gained full power, you will also take anyone you're grabbing along with you.<br>
<b>Dominate</b> - Activation mechanics are the same as hypnotise: both you and your target need to remain stationary and undisturbed for a short amount of time. Once you succeed in activating it, you get to issue a command to your target. These commands have to be accomplishable in the short term future. For example, you can ask someone to open the doors to the armoury, but you cannot ask someone to remain as your ally forever. A vampire having reached his full potential can dominate a victim instantly.<br>