mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-08-24 05:36:57 +01:00
Tweaking drake AI.
This commit is contained in:
@@ -80,8 +80,8 @@
|
||||
if(length(MED.apply_sounds))
|
||||
playsound(user, pick(MED.apply_sounds), 25)
|
||||
|
||||
if(do_mob(user, src, 1 SECOND) && MED.get_amount() >= 1 && health < getMaxHealth())
|
||||
heal_organ_damage(MED.heal_brute * 5, MED.heal_burn * 5)
|
||||
if(do_mob(user, src, 2 SECONDS) && MED.get_amount() >= 1 && health < getMaxHealth())
|
||||
heal_organ_damage(MED.heal_brute * 25, MED.heal_burn * 25)
|
||||
visible_message(SPAN_NOTICE("\The [user] applies \the [MED] to \the [src]."))
|
||||
MED.use(1)
|
||||
return
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
desc = "Your wounds have been salved with Sivian sap."
|
||||
mob_overlay_state = "cyan_sparkles"
|
||||
stacks = MODIFIER_STACK_FORBID
|
||||
on_created_text = "<span class = 'notice'>The glowing sap seethes and bubbles in your wounds, tingling and stinging as infection is burned away.</span>"
|
||||
on_expired_text = "<span class = 'notice'>The last of the sap in your wounds is absorbed by your body.</span>"
|
||||
on_created_text = "<span class = 'notice'>The glowing sap seethes and bubbles in your wounds, tingling and stinging.</span>"
|
||||
on_expired_text = "<span class = 'notice'>The last of the sap in your wounds fizzles away.</span>"
|
||||
|
||||
/datum/modifier/sifsap_salve/tick()
|
||||
|
||||
@@ -351,6 +351,11 @@ var/global/list/last_drake_howl = list()
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/get_eye_color()
|
||||
return eye_colour
|
||||
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/do_tame(var/obj/O, var/mob/user)
|
||||
. = ..()
|
||||
if(attacked_by_human && ishuman(user) && ((user in tamers) || (user in friends)))
|
||||
attacked_by_human = FALSE
|
||||
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/handle_special()
|
||||
..()
|
||||
if(client || world.time >= next_alpha_check)
|
||||
@@ -421,9 +426,12 @@ var/global/list/last_drake_howl = list()
|
||||
var/mob/living/carbon/human/H = friend
|
||||
for(var/obj/item/organ/external/E in H.organs)
|
||||
if(E.status & ORGAN_BLEEDING)
|
||||
E.organ_clamp()
|
||||
H.bloodstr.add_reagent("sifsap", rand(1,2))
|
||||
for(var/datum/wound/W in E.wounds)
|
||||
W.salve()
|
||||
for(var/datum/wound/W in E.wounds)
|
||||
W.salve()
|
||||
W.disinfect()
|
||||
|
||||
// Everyone else is just poisoned.
|
||||
else if(!istype(friend, /mob/living/simple_mob/animal/sif))
|
||||
friend.adjustToxLoss(rand(10,20))
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/ICheckRangedAttack(atom/A)
|
||||
|
||||
/mob/living/simple_mob/animal/sif/grafadreka
|
||||
// Some mobtypes are immune to stun, so trying to incapacitate them
|
||||
// is pointless. Track them here so we don't endlessly run away from
|
||||
// Beepsky until he beats us to death.
|
||||
@@ -8,7 +7,8 @@
|
||||
/mob/living/simple_mob/humanoid/merc
|
||||
)
|
||||
|
||||
. = ..() && isliving(A)
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/ICheckRangedAttack(atom/A)
|
||||
. = ..() && isliving(A) && has_sap(2) && (world.time >= next_spit)
|
||||
if(.)
|
||||
|
||||
var/mob/living/M = A
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
for(var/mobtype in stun_immune_types)
|
||||
if(istype(A, mobtype))
|
||||
return FALSE // bots are immune to stuns
|
||||
return FALSE
|
||||
|
||||
/mob/living/simple_mob/animal/sif/grafadreka/IIsAlly(mob/living/L)
|
||||
. = ..()
|
||||
@@ -57,7 +57,11 @@
|
||||
if(!istype(drake) || prey.lying || prey.incapacitated())
|
||||
return FALSE
|
||||
// We can spit at them - disengage so you can pew pew.
|
||||
if(get_dist(target, holder) <= 1 && drake.has_sap(2))
|
||||
if(get_dist(target, holder) <= 1 && drake.has_sap(2) && (world.time >= drake.next_spit))
|
||||
// No point spitting at immune mobs.
|
||||
for(var/mobtype in drake.stun_immune_types)
|
||||
if(istype(target, mobtype))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/datum/ai_holder/simple_mob/intentional/grafadreka/pre_ranged_attack(atom/A)
|
||||
|
||||
Reference in New Issue
Block a user