mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 19:17:50 +01:00
Buffs the Prince of Terror (#22421)
* The fast prince of belair * The charging prince of belair * Lewc review * Update code/modules/mob/living/simple_animal/hostile/terror_spiders/prince.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Sean review * Sirryan Review * Range is now 9 for widescreen --------- Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
This commit is contained in:
@@ -65,9 +65,8 @@
|
||||
var/mob/M = pick_n_take(candidates)
|
||||
S.key = M.key
|
||||
dust_if_respawnable(M)
|
||||
if(infestation_type != PRINCE_SPIDER)
|
||||
S.forceMove(vent)
|
||||
S.add_ventcrawl(vent)
|
||||
S.forceMove(vent)
|
||||
S.add_ventcrawl(vent)
|
||||
SEND_SOUND(S, sound('sound/ambience/antag/terrorspider.ogg'))
|
||||
S.give_intro_text()
|
||||
spawncount--
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
maxHealth = 600 // 30 laser shots
|
||||
health = 600
|
||||
regen_points_per_hp = 6 // double the normal - IE halved regen speed
|
||||
move_to_delay = 3
|
||||
speed = 0.5
|
||||
melee_damage_lower = 30
|
||||
melee_damage_upper = 40
|
||||
ventcrawler = 0
|
||||
@@ -40,3 +42,67 @@
|
||||
L.KnockDown(10 SECONDS)
|
||||
L.adjustStaminaLoss(40)
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/terror_spider/prince/Initialize(mapload)
|
||||
. = ..()
|
||||
if(mind)
|
||||
var/obj/effect/proc_holder/spell/spell = new /obj/effect/proc_holder/spell/princely_charge()
|
||||
mind.AddSpell(spell)
|
||||
else
|
||||
RegisterSignal(src, COMSIG_MOB_LOGIN, TYPE_PROC_REF(/mob/living/simple_animal/hostile/poison/terror_spider/prince, give_spell))
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/terror_spider/prince/proc/give_spell()
|
||||
SIGNAL_HANDLER
|
||||
var/obj/effect/proc_holder/spell/spell = new /obj/effect/proc_holder/spell/princely_charge()
|
||||
mind.AddSpell(spell)
|
||||
UnregisterSignal(src, COMSIG_MOB_LOGIN)
|
||||
|
||||
/obj/effect/proc_holder/spell/princely_charge
|
||||
name = "Princely Charge"
|
||||
desc = "You charge at wherever you click on screen, dealing large amounts of damage, stunning and destroying walls and other objects."
|
||||
gain_desc = "You can now charge at a target on screen, dealing massive damage and destroying structures."
|
||||
base_cooldown = 30 SECONDS
|
||||
clothes_req = FALSE
|
||||
action_icon_state = "terror_prince"
|
||||
|
||||
/obj/effect/proc_holder/spell/princely_charge/create_new_targeting()
|
||||
return new /datum/spell_targeting/clicked_atom
|
||||
|
||||
/obj/effect/proc_holder/spell/princely_charge/cast(list/targets, mob/user)
|
||||
var/target = targets[1]
|
||||
if(isliving(user))
|
||||
var/mob/living/L = user
|
||||
L.apply_status_effect(STATUS_EFFECT_CHARGING)
|
||||
L.throw_at(target, 9, 1, L, FALSE, callback = CALLBACK(L, TYPE_PROC_REF(/mob/living, remove_status_effect), STATUS_EFFECT_CHARGING))
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/terror_spider/prince/throw_impact(atom/hit_atom, throwingdatum)
|
||||
. = ..()
|
||||
if(!has_status_effect(STATUS_EFFECT_CHARGING) || has_status_effect(STATUS_EFFECT_IMPACT_IMMUNE))
|
||||
return
|
||||
|
||||
var/hit_something = FALSE
|
||||
if(ismovable(hit_atom))
|
||||
var/atom/movable/AM = hit_atom
|
||||
var/atom/throw_target = get_edge_target_turf(AM, dir)
|
||||
if(!AM.anchored || ismecha(AM))
|
||||
AM.throw_at(throw_target, 5, 12, src)
|
||||
hit_something = TRUE
|
||||
if(isobj(hit_atom))
|
||||
var/obj/O = hit_atom
|
||||
O.take_damage(150, BRUTE)
|
||||
hit_something = TRUE
|
||||
if(isliving(hit_atom))
|
||||
var/mob/living/L = hit_atom
|
||||
L.adjustBruteLoss(60)
|
||||
L.KnockDown(12 SECONDS)
|
||||
L.Confused(10 SECONDS)
|
||||
shake_camera(L, 4, 3)
|
||||
hit_something = TRUE
|
||||
if(isturf(hit_atom))
|
||||
var/turf/T = hit_atom
|
||||
if(iswallturf(T))
|
||||
T.dismantle_wall(TRUE)
|
||||
hit_something = TRUE
|
||||
if(hit_something)
|
||||
visible_message("<span class='danger'>[src] slams into [hit_atom]!</span>", "<span class='userdanger'>You slam into [hit_atom]!</span>")
|
||||
playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 100, TRUE)
|
||||
|
||||
@@ -474,3 +474,7 @@ GLOBAL_LIST_EMPTY(ts_infected_list)
|
||||
. = ..()
|
||||
if(pulling && !ismob(pulling) && pulling.density)
|
||||
. += 6 // Drastic move speed penalty for dragging anything that is not a mob or a non dense object
|
||||
|
||||
/mob/living/simple_animal/hostile/poison/terror_spider/Login()
|
||||
. = ..()
|
||||
SEND_SIGNAL(src, COMSIG_MOB_LOGIN)
|
||||
|
||||
Reference in New Issue
Block a user