Skip to content

Commit e12723b

Browse files
this is too much work, reworked into an actual retaliate hostile mob because it was too snowflake otherwise
1 parent c3af2ae commit e12723b

File tree

3 files changed

+27
-24
lines changed

3 files changed

+27
-24
lines changed

code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
/mob/living/simple_animal/hostile/retaliate
22
var/list/enemies = list()
33
var/hostile = 0 //Reverts back into a hostile mob when toggle to 1
4+
var/stat_calm_threshold = UNCONSCIOUS
45

56
/mob/living/simple_animal/hostile/retaliate/Found(var/atom/A)
67
if(isliving(A))
78
var/mob/living/L = A
8-
if(!L.stat)
9+
if(L.stat < stat_threshold)
910
stance = HOSTILE_STANCE_ATTACK
1011
return L
1112
else if(!L.reagents || !L.reagents.has_reagent(KILLERPHEROMONES))

maps/randomvaults/spessmart.dm

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ var/list/clothing_prices = list() //gets filled on initialize()
332332
spawn()
333333
S.close()
334334

335-
for(var/mob/living/simple_animal/hostile/spessmart_guardian/C in all_contents)
335+
for(var/mob/living/simple_animal/hostile/retaliate/spessmart_guardian/C in all_contents)
336336
C.Retaliate()
337337

338338
src.firealert()
@@ -634,7 +634,7 @@ var/list/clothing_prices = list() //gets filled on initialize()
634634

635635
return 1
636636

637-
/mob/living/simple_animal/hostile/spessmart_guardian
637+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian
638638
name = "Spessmart MERC-Bot"
639639
desc = "Equipped with a ballistic weapon and a melee range shocker that is powerful enough to knock out a mega goliath through three layers of protection, this EMP-proof bot is not to be messed around with."
640640

@@ -645,6 +645,8 @@ var/list/clothing_prices = list() //gets filled on initialize()
645645
anchored = 1
646646
canmove = 0
647647

648+
stat_calm_threshold = DEAD
649+
648650
melee_damage_lower = 10
649651
melee_damage_upper = 25
650652

@@ -679,21 +681,21 @@ var/list/clothing_prices = list() //gets filled on initialize()
679681
var/alert_on_movement = 1 //If moved, trigger an alert and become agressive
680682
var/retaliated = FALSE
681683

682-
/mob/living/simple_animal/hostile/spessmart_guardian/New()
684+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian/New()
683685
..()
684686

685687
overlays.Add(image('icons/mob/robots.dmi', icon_state = "eyes-securitron"))
686688

687-
/mob/living/simple_animal/hostile/spessmart_guardian/Life()
689+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian/Life()
688690
EscapeConfinement()
689691
..()
690692

691-
/mob/living/simple_animal/hostile/spessmart_guardian/death(var/gibbed = FALSE)
693+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian/death(var/gibbed = FALSE)
692694
..(TRUE)
693695
robogibs(get_turf(src))
694696
qdel(src)
695697

696-
/mob/living/simple_animal/hostile/spessmart_guardian/update_canmove()
698+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian/update_canmove()
697699
if(retaliated || client)
698700
canmove = 1
699701
anchored = 0
@@ -702,16 +704,16 @@ var/list/clothing_prices = list() //gets filled on initialize()
702704
anchored = 1
703705
return canmove
704706

705-
/mob/living/simple_animal/hostile/spessmart_guardian/Move(NewLoc, Dir = 0, step_x = 0, step_y = 0, glide_size_override = 0)
707+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian/Move(NewLoc, Dir = 0, step_x = 0, step_y = 0, glide_size_override = 0)
706708
if(alert_on_movement && !canmove)
707709
Retaliate()
708710

709711
..()
710712

711-
/mob/living/simple_animal/hostile/spessmart_guardian/proc/Retaliate()
712-
if(timestopped)
713+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian/Retaliate()
714+
. = ..()
715+
if(!retaliated)
713716
spawn(5)
714-
retaliated = TRUE
715717
wander = 1
716718
canmove = 1
717719
anchored = 0
@@ -723,16 +725,16 @@ var/list/clothing_prices = list() //gets filled on initialize()
723725
var/phrase = pick("Spessmart law was broken. The punishment is death.", "Spessmart law is above everything. Prepare to die.", "Spessmart law is sacred. Die, heretic.", "Threat to Spessmart detected. Extermination protocol started.")
724726
say(phrase)
725727

726-
/mob/living/simple_animal/hostile/spessmart_guardian/secure_area/attack_hand(mob/user)
728+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian/secure_area/attack_hand(mob/user)
727729
if(user.a_intent == I_HELP)
728730
say("[user.gender == FEMALE ? "Miss" : "Sir"], only Spessmart employees with level 5 access may access this area. If you are a Spessmart employee, please show me your ID card.")
729731
else
730732
return ..()
731733

732-
/mob/living/simple_animal/hostile/spessmart_guardian/recharging
734+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian/recharging
733735
var/introduced = FALSE
734736

735-
/mob/living/simple_animal/hostile/spessmart_guardian/recharging/Aggro()
737+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian/recharging/Aggro()
736738
if(!introduced)
737739
say("The tank was labeled and scanned as drinking water, not welding fuel. It was not my fault that it was fed to the human. It is nonsense that you're punishing me instead of... Wait. You are not EPSILON. Unknown intruder detected. Extermination protocol started.")
738740
introduced = TRUE

maps/randomvaults/spessmart.dmm

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@
182182
/turf/simulated/floor,
183183
/area/vault/supermarket/shop)
184184
"aw" = (
185-
/mob/living/simple_animal/hostile/spessmart_guardian,
185+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian,
186186
/turf/simulated/floor{
187187
icon_state = "dark"
188188
},
@@ -306,7 +306,7 @@
306306
/turf/simulated/floor/grass,
307307
/area/vault/supermarket/shop)
308308
"aM" = (
309-
/mob/living/simple_animal/hostile/spessmart_guardian,
309+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian,
310310
/turf/simulated/floor,
311311
/area/vault/supermarket/shop)
312312
"aN" = (
@@ -319,7 +319,7 @@
319319
icon_state = "warning";
320320
tag = "icon-warning (WEST)"
321321
},
322-
/mob/living/simple_animal/hostile/spessmart_guardian,
322+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian,
323323
/turf/simulated/floor{
324324
icon_state = "dark"
325325
},
@@ -383,7 +383,7 @@
383383
icon_state = "warning";
384384
tag = "icon-warning (WEST)"
385385
},
386-
/mob/living/simple_animal/hostile/spessmart_guardian,
386+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian,
387387
/turf/simulated/floor{
388388
dir = 6;
389389
icon_state = "dark"
@@ -715,7 +715,7 @@
715715
icon_state = "warning";
716716
tag = "icon-warning (SOUTHWEST)"
717717
},
718-
/mob/living/simple_animal/hostile/spessmart_guardian,
718+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian,
719719
/turf/simulated/floor{
720720
dir = 6;
721721
icon_state = "dark"
@@ -988,7 +988,7 @@
988988
dir = 4;
989989
icon_state = "pipe-c"
990990
},
991-
/mob/living/simple_animal/hostile/spessmart_guardian,
991+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian,
992992
/turf/simulated/floor{
993993
icon_state = "dark"
994994
},
@@ -1016,7 +1016,7 @@
10161016
/area/vault/supermarket/restricted)
10171017
"cp" = (
10181018
/obj/machinery/recharge_station,
1019-
/mob/living/simple_animal/hostile/spessmart_guardian/recharging,
1019+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian/recharging,
10201020
/turf/simulated/floor/plating/airless,
10211021
/area/vault/supermarket/restricted)
10221022
"cq" = (
@@ -1579,15 +1579,15 @@
15791579
/turf/simulated/floor/plating/airless,
15801580
/area/vault/supermarket/restricted)
15811581
"dC" = (
1582-
/mob/living/simple_animal/hostile/spessmart_guardian/secure_area,
1582+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian/secure_area,
15831583
/turf/simulated/floor,
15841584
/area/vault/supermarket/restricted)
15851585
"dD" = (
15861586
/obj/structure/flora/pottedplant/random,
15871587
/turf/simulated/floor,
15881588
/area/vault/supermarket/entrance)
15891589
"dE" = (
1590-
/mob/living/simple_animal/hostile/spessmart_guardian,
1590+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian,
15911591
/turf/simulated/floor,
15921592
/area/vault/supermarket/entrance)
15931593
"dF" = (
@@ -1984,7 +1984,7 @@
19841984
},
19851985
/area/vault/supermarket/entrance)
19861986
"eF" = (
1987-
/mob/living/simple_animal/hostile/spessmart_guardian,
1987+
/mob/living/simple_animal/hostile/retaliate/spessmart_guardian,
19881988
/turf/simulated/floor{
19891989
icon_state = "bar"
19901990
},

0 commit comments

Comments
 (0)