diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/scrubble.dm b/code/modules/mob/living/simple_mob/subtypes/vore/scrubble.dm index 38249b994c2..79e7e6d9f60 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/scrubble.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/scrubble.dm @@ -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("\The [src] pounces on \the [M]!!") @@ -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 ..() diff --git a/maps/redgate/jungle_underground.dmm b/maps/redgate/jungle_underground.dmm index 7f0d00b7f5f..4b70203ae29 100644 --- a/maps/redgate/jungle_underground.dmm +++ b/maps/redgate/jungle_underground.dmm @@ -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,