ancient vampire raise vampires/shapeshift

This commit is contained in:
Kyep
2018-11-18 16:54:26 -08:00
parent b7c613f76c
commit 1c8542414d
4 changed files with 122 additions and 11 deletions
+23 -9
View File
@@ -427,7 +427,10 @@
/obj/item/storage/box/survival = 1,
/obj/item/flashlight = 1,
/obj/item/reagent_containers/food/drinks/bottle/bottleofbanana = 1,
/obj/item/grenade/clown_grenade = 1
/obj/item/grenade/clown_grenade = 1,
/obj/item/melee/baton/cattleprod = 1,
/obj/item/stock_parts/cell/super = 1,
/obj/item/bikehorn/rubberducky = 1
)
/datum/outfit/admin/tunnel_clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -487,6 +490,7 @@
var/obj/item/card/id/I = H.wear_id
if(istype(I))
apply_to_card(I, H, list(access_mime, access_theatre, access_maint_tunnels), "Mime")
H.sec_hud_set_ID()
/datum/outfit/admin/greytide
name = "Greytide"
@@ -597,8 +601,9 @@
if(istype(I))
apply_to_card(I, H, list(access_maint_tunnels), "Bard")
var/obj/item/clothing/ears/headphones/P = r_ear
if(istype(P))
P.attack_self(H) // activate them, display musical notes effect
/datum/outfit/admin/soviet
@@ -1050,8 +1055,8 @@
/datum/outfit/admin/ancient_vampire
name = "Ancient Vampire"
uniform = /obj/item/clothing/under/color/black
suit = /obj/item/clothing/suit/hooded/chaplain_hoodie
uniform = /obj/item/clothing/under/victsuit/red
suit = /obj/item/clothing/suit/draculacoat
back = /obj/item/storage/backpack
gloves = /obj/item/clothing/gloves/combat
shoes = /obj/item/clothing/shoes/syndigaloshes/black
@@ -1060,6 +1065,7 @@
backpack_contents = list(
/obj/item/storage/box/survival = 1,
/obj/item/flashlight = 1,
/obj/item/clothing/under/color/black = 1
)
/datum/outfit/admin/ancient_vampire/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
@@ -1067,10 +1073,11 @@
if(visualsOnly)
return
var/obj/item/clothing/suit/hooded/chaplain_hoodie/C = H.wear_suit
var/obj/item/clothing/suit/hooded/chaplain_hoodie/C = new(H.loc)
if(istype(C))
C.name = "ancient robes"
C.hood.name = "ancient hood"
H.equip_to_slot_or_del(C, slot_in_backpack)
var/obj/item/card/id/I = H.wear_id
if(istype(I))
@@ -1080,10 +1087,17 @@
if(!H.mind.vampire)
H.make_vampire()
if(H.mind.vampire)
H.mind.vampire.bloodusable = 999
H.mind.vampire.bloodtotal = 999
H.mind.vampire.bloodusable = 9999
H.mind.vampire.bloodtotal = 9999
H.mind.vampire.check_vampire_upgrade(0)
H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/shapeshift/bats)
to_chat(H, "You have gained the ability to shapeshift into bat form. While capable of basic self defense, you cannot use your other abilities in that form.")
H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/raise_vampires)
to_chat(H, "You have gained the ability to Raise Vampires. This extremely powerful AOE ability affects all humans near you. Vampires/thralls are healed. Corpses are raised as vampires. Others are stunned, then brain damaged, then killed.")
H.dna.SetSEState(JUMPBLOCK, 1)
genemutcheck(H, JUMPBLOCK, null, MUTCHK_FORCED)
H.update_mutations()
H.gene_stability = 100
/datum/outfit/admin/wizard
name = "Blue Wizard"
+13 -1
View File
@@ -79,4 +79,16 @@
shapeshift_type = /mob/living/simple_animal/hostile/megafauna/dragon/lesser
list/current_shapes = list(/mob/living/simple_animal/hostile/megafauna/dragon/lesser)
list/current_casters = list()
list/possible_shapes = list(/mob/living/simple_animal/hostile/megafauna/dragon/lesser)
list/possible_shapes = list(/mob/living/simple_animal/hostile/megafauna/dragon/lesser)
/obj/effect/proc_holder/spell/targeted/shapeshift/bats
name = "Bat Form"
desc = "Take on the shape of a swarm of bats."
invocation = "none"
invocation_type = "none"
action_icon_state = "vampire_bats"
shapeshift_type = /mob/living/simple_animal/hostile/scarybat/batswarm
list/current_shapes = list(/mob/living/simple_animal/hostile/scarybat/batswarm)
list/current_casters = list()
list/possible_shapes = list(/mob/living/simple_animal/hostile/scarybat/batswarm)
@@ -535,3 +535,75 @@
/datum/vampire_passive/full
gain_desc = "You have reached your full potential and are no longer weak to the effects of anything holy and your vision has been improved greatly."
/obj/effect/proc_holder/spell/targeted/raise_vampires
name = "Raise Vampires"
desc = "Summons deadly vampires from bluespace."
school = "transmutation"
charge_max = 100
clothes_req = 0
human_req = 1
invocation = "none"
invocation_type = "none"
max_targets = 0
range = 3
cooldown_min = 20
action_icon_state = "revive_thrall"
sound = 'sound/magic/WandODeath.ogg'
/obj/effect/proc_holder/spell/targeted/raise_vampires/cast(list/targets, mob/user = usr)
var/raised_count = 0
new /obj/effect/temp_visual/cult/sparks(user.loc)
var/turf/T = get_turf(user)
to_chat(user, "<span class='warning'>You call out within bluespace, summoning more vampiric spirits to aid you!</span>")
for(var/mob/living/carbon/human/H in targets)
T.Beam(H, "sendbeam", 'icons/effects/effects.dmi', time=30, maxdistance=7, beam_type=/obj/effect/ebeam)
new /obj/effect/temp_visual/cult/sparks(H.loc)
raised_count += H.raise_vampire(user)
/mob/living/carbon/human/proc/raise_vampire(var/mob/M)
if(!istype(M))
log_debug("human/proc/raise_vampire called with invalid argument.")
return 0
if(!mind)
visible_message("[src] looks to be too stupid to understand what is going on.")
return 0
if(dna && (NO_BLOOD in dna.species.species_traits) || dna.species.exotic_blood || !blood_volume)
visible_message("[src] looks unfazed!")
return 0
if(mind.vampire || mind.special_role == SPECIAL_ROLE_VAMPIRE || mind.special_role == SPECIAL_ROLE_VAMPIRE_THRALL)
visible_message("<span class='notice'>[src] looks refreshed!</span>")
adjustBruteLoss(-60)
adjustFireLoss(-60)
for(var/obj/item/organ/external/E in bodyparts)
if(prob(25))
if(E.mend_fracture())
E.perma_injury = 0
return 0
if(stat != DEAD)
if(weakened)
visible_message("<span class='warning'>[src] looks to be in pain!</span>")
adjustBrainLoss(60)
else
visible_message("<span class='warning'>[src] looks to be stunned by the energy!</span>")
Weaken(20)
return 0
for(var/obj/item/implant/mindshield/L in src)
if(L && L.implanted)
qdel(L)
for(var/obj/item/implant/traitor/T in src)
if(T && T.implanted)
qdel(T)
visible_message("<span class='warning'>[src] gets an eerie red glow in their eyes!</span>")
var/datum/objective/protect/protect_objective = new
protect_objective.owner = mind
protect_objective.target = M.mind
protect_objective.explanation_text = "Protect [M.real_name]."
mind.objectives += protect_objective
add_attack_logs(M, src, "Vampire-sired")
mind.make_Vampire()
revive()
Weaken(20)
return 1
@@ -60,4 +60,17 @@
if(istype(L))
if(prob(15))
L.Stun(1)
L.visible_message("<span class='danger'>\the [src] scares \the [L]!</span>")
L.visible_message("<span class='danger'>\the [src] scares \the [L]!</span>")
/mob/living/simple_animal/hostile/scarybat/batswarm
name = "bat swarm"
desc = "A swarm of vicious, angry-looking space bats."
speed = 1
harm_intent_damage = 25
maxHealth = 300
melee_damage_lower = 10
melee_damage_upper = 30
a_intent = INTENT_HARM
universal_speak = 1
universal_understand = 1