Scrubble and jungle fixes

Fixed pounce behaviour of Scrubbles to be properly checked and have a proper cooldown.

Fixed some empty air tiles on the jungle underground.
This commit is contained in:
SatinIsle
2024-04-08 12:39:35 +01:00
parent 1ccc50ccf3
commit c28a7aac73
2 changed files with 150 additions and 29 deletions
@@ -68,7 +68,7 @@
value = CATALOGUER_REWARD_HARD
/mob/living/simple_mob/vore/scrubble/PounceTarget(var/mob/living/M, var/successrate = 100)
vore_pounce_cooldown = world.time + 1 SECONDS // don't attempt another pounce for a while
vore_pounce_cooldown = world.time + 20 SECONDS // don't attempt another pounce for a while
if(prob(successrate)) // pounce success!
M.Weaken(5)
M.visible_message("<span class='danger'>\The [src] pounces on \the [M]!</span>!")
@@ -105,7 +105,7 @@
var/mob/living/L = target
var/distance = get_dist(holder, target)
if(distance <= 1)
if(L.devourable && L.allowmobvore && (H.vore_fullness < H.vore_capacity))
if(H.will_eat(L) && H.CanPounceTarget(L))
H.face_atom(L)
H.PounceTarget(L)
return
@@ -114,6 +114,19 @@
step_away(holder, target, 7)
ai_log("flee_from_target() : Exiting.", AI_LOG_DEBUG)
/mob/living/simple_mob/vore/scrubble/CanPounceTarget(var/mob/living/M) //returns either FALSE or a %chance of success
if(!M.canmove || issilicon(M) || world.time < vore_pounce_cooldown) //eliminate situations where pouncing CANNOT happen
return FALSE
if(!prob(vore_pounce_chance) || !will_eat(M)) //mob doesn't want to pounce
return FALSE
if(vore_standing_too) //100% chance of hitting people we can eat on the spot
return 100
var/TargetHealthPercent = (M.health/M.getMaxHealth())*100 //now we start looking at the target itself
if (TargetHealthPercent > vore_pounce_maxhealth) //target is too healthy to pounce
return FALSE
else
return 100 //Changed for scrubbles, they will pounce someone at full health.
/datum/ai_holder/simple_mob/hostile/scrubble/find_target(list/possible_targets, has_targets_list)
if(!isanimal(holder)) //Only simplemobs have the vars we need
return ..()
+135 -27
View File
@@ -70,7 +70,11 @@
/obj/item/clothing/under/dress/gothic,
/obj/random/fantasy_item/better,
/obj/random/potion_ingredient,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercavepond)
"bc" = (
/obj/structure/table/standard,
@@ -242,7 +246,11 @@
/area/redgate/jungle/facilitynw)
"cW" = (
/obj/item/weapon/bone/leg,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercavepond)
"cY" = (
/obj/structure/bed/chair/wood/wings,
@@ -682,7 +690,11 @@
/area/redgate/jungle/facilitysw)
"hH" = (
/obj/structure/bonfire/permanent,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercave)
"hL" = (
/obj/structure/bed/chair/backed_red{
@@ -793,7 +805,11 @@
/turf/simulated/floor/tiled,
/area/redgate/jungle/facilitynw)
"jB" = (
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/facilitysw)
"jF" = (
/obj/item/broken_device/random,
@@ -1026,7 +1042,11 @@
/area/redgate/jungle/facilitycasino)
"mK" = (
/obj/item/weapon/bone/arm,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercavepond)
"mM" = (
/obj/structure/table/steel_reinforced,
@@ -1038,7 +1058,11 @@
color = "#009914";
name = "grassy bed"
},
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercaveswamp)
"mS" = (
/turf/simulated/floor/bmarble,
@@ -1109,7 +1133,11 @@
/area/redgate/jungle/facilityse)
"nE" = (
/obj/structure/stairs/spawner/north,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/facilitynw)
"nI" = (
/obj/machinery/vending/medical,
@@ -1182,7 +1210,11 @@
/obj/item/weapon/material/fishing_net,
/obj/random/fantasy_item,
/obj/random/potion_ingredient,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercaveswamp)
"ov" = (
/turf/simulated/floor/water/contaminated,
@@ -1481,7 +1513,11 @@
/area/redgate/jungle/facilityse)
"sy" = (
/obj/random/underdark,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/facilitysw)
"sA" = (
/obj/item/weapon/bone,
@@ -1517,7 +1553,11 @@
/area/redgate/jungle/facilityse)
"tc" = (
/obj/structure/prop/rock/sharp,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercave)
"tf" = (
/obj/item/weapon/mine/stun,
@@ -1603,7 +1643,11 @@
/obj/machinery/light/small/torch{
dir = 8
},
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercaveswamp)
"tQ" = (
/obj/structure/table/steel_reinforced,
@@ -1632,7 +1676,11 @@
/area/redgate/jungle/facilitycasino)
"ue" = (
/obj/structure/closet/walllocker/medical/east,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/facilitynw)
"uf" = (
/obj/random/tank,
@@ -2129,7 +2177,11 @@
/turf/simulated/floor,
/area/redgate/jungle/facilitynw)
"Bf" = (
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/facilityne)
"Bh" = (
/turf/simulated/wall,
@@ -2759,7 +2811,11 @@
/turf/simulated/floor,
/area/redgate/jungle/facilitysw)
"Ie" = (
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercaveswamp)
"If" = (
/obj/structure/railing/grey{
@@ -3176,7 +3232,11 @@
/area/redgate/jungle/facilitynw)
"Nd" = (
/obj/random/fantasy_item,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercave)
"Nh" = (
/obj/machinery/vending/desatti,
@@ -3254,7 +3314,11 @@
/area/redgate/jungle/facilitynw)
"Oo" = (
/obj/structure/prop/rock/small,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercavepond)
"Oq" = (
/mob/living/simple_mob/vore/stalker,
@@ -3280,7 +3344,11 @@
/turf/simulated/floor,
/area/redgate/jungle/facilitynw)
"OJ" = (
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercavepond)
"OK" = (
/obj/random/miniature,
@@ -3373,7 +3441,11 @@
/obj/machinery/door/airlock/angled_bay/double{
dir = 8
},
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/facilityne)
"Pt" = (
/obj/structure/loot_pile/surface/bones,
@@ -3484,7 +3556,11 @@
/area/redgate/jungle/facilityne)
"QC" = (
/obj/structure/prop/rock/sharp,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercavepond)
"QH" = (
/obj/machinery/door/airlock/angled_bay/double{
@@ -3615,7 +3691,11 @@
/area/redgate/jungle/facilityne)
"Ss" = (
/obj/structure/prop/rock/round,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercave)
"Sv" = (
/obj/machinery/light/small,
@@ -3668,7 +3748,11 @@
/area/redgate/jungle/facilitycasino)
"SY" = (
/obj/structure/prop/rock/flat,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercavepond)
"Te" = (
/obj/machinery/light/small{
@@ -3882,7 +3966,11 @@
/turf/simulated/floor,
/area/redgate/jungle/facilityse)
"VS" = (
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/facilitynw)
"VW" = (
/obj/effect/decal/cleanable/blood/oil,
@@ -4050,7 +4138,11 @@
/area/redgate/jungle/facilitysw)
"Yy" = (
/obj/structure/loot_pile/surface/bones,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercavepond)
"Yz" = (
/obj/structure/railing/grey{
@@ -4105,7 +4197,11 @@
/area/redgate/jungle/facilitybar)
"Zo" = (
/obj/random/outcrop,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/facilitysw)
"Zy" = (
/obj/structure/railing/grey,
@@ -4125,11 +4221,19 @@
/area/redgate/jungle/facilitynw)
"ZI" = (
/obj/structure/loot_pile/surface/bones,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercaveswamp)
"ZJ" = (
/obj/item/weapon/bone/ribs,
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercavepond)
"ZM" = (
/obj/structure/reagent_dispensers/he3,
@@ -4141,7 +4245,11 @@
/turf/simulated/floor/carpet/blue,
/area/redgate/jungle/facilityse)
"ZR" = (
/turf/simulated/mineral/floor/ignore_cavegen,
/turf/simulated/mineral/floor/ignore_cavegen{
nitrogen = 82.1472;
oxygen = 21.8366;
temperature = 293.15
},
/area/redgate/jungle/underwatercave)
"ZU" = (
/obj/structure/table/steel_reinforced,