mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 19:44:09 +01:00
ancient vampire raise vampires/shapeshift
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user