From b5674b89879ad5a94f867e62619ee34917a9d8ac Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Thu, 3 Sep 2020 09:33:16 +0100 Subject: [PATCH 1/2] Update taursuits_naga_vr.dmi --- icons/mob/taursuits_naga_vr.dmi | Bin 91367 -> 91369 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/taursuits_naga_vr.dmi b/icons/mob/taursuits_naga_vr.dmi index 7df326318cf162195997142e13aaf49167ff4567..bfec658879fe8ac64ae57108d174901c38f4aaed 100644 GIT binary patch delta 337 zcmV-X0j~b%$pz`j1&}0vGTWg_sG0@*LKHG?Vl&zKhC?{xP{q$^_ z3-u*J3-4>wM5GW4wD9(7q_~36!h$KRPJqCg8TKT%A95+YLy zD*h6w=$u^{v#7`sd-85jv4UR9S*Bd7@F9-}nWzr3>$R2Lps=H`8YyY_e&3PC*`s9& zR?rPtZ}~=7v4?ju$NiVA%HPMFQ{q8V51Y~Xh-{gH^%31kTjj5^DiKeZ=7sSfsjv3z zW+idM>w{9ZXW~3R+^lcE5qmt~1{cm&TvaSO;)}UjesY0Rf0(HoK;(0x=AQ*OOCNu%_w{ z>TWg_sA2(Eh(g9qT+JlN&J5!AUBH4?s^Ve)y=VJ5@e)3^pSuHW_B%5n3*`hYte>7u zbEd9DXyJWrnuru)ffn9gjTBc9T39fJm0VIsxG+seEYQN*G+*q01{7%FlJnsRs$t%?zfCI&K@mO zu!63~ddpY3iru}FIqrXCRsJ^SoDvU6j*QMnWXlw+kLXU1E2|RmglXPR?j-euCpT*$ zSG+zbWjhh)K8K4v3KsMuQ_;cSE>X#>Gxmh3kSM+~W$TAr<=lyL(ot4-?_}hlI$@`r heEhe=C2S8H*z9-a2ZMIWZ29~k>Vshcw_yPRh+|u}ohASP From b1601323d52a7db68500a277ef647e855784ae62 Mon Sep 17 00:00:00 2001 From: Meghan-Rossi <56671765+Meghan-Rossi@users.noreply.github.com> Date: Thu, 3 Sep 2020 06:19:38 +0100 Subject: [PATCH 2/2] Fix bumpnoms Gets bumpnoms working. Tested it with a fennec, seems to work fine. --- code/modules/mob/living/living.dm | 25 +++++++++++++------ .../mob/living/simple_mob/simple_mob_vr.dm | 22 ++++++++++------ 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index f72ec0d4888..68f993412af 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -132,16 +132,25 @@ default behaviour is: if((tmob.mob_always_swap || (tmob.a_intent == I_HELP || tmob.restrained()) && (a_intent == I_HELP || src.restrained())) && tmob.canmove && canmove && !tmob.buckled && !buckled && can_swap && can_move_mob(tmob, 1, 0)) // mutual brohugs all around! var/turf/oldloc = loc + //VOREstation Edit - Begin + + //check bumpnom chance, if it's a simplemob that's doing the bumping + var/mob/living/simple_mob/srcsimp = src + if(istype(srcsimp)) + if(srcsimp.tryBumpNom(tmob)) + now_pushing = 0 + return + + //if it's a simplemob being bumped, and the above didn't make them start getting bumpnommed, they get a chance to bumpnom + var/mob/living/simple_mob/tmobsimp = tmob + if(istype(tmobsimp)) + if(tmobsimp.tryBumpNom(src)) + now_pushing = 0 + return + + //VOREstation Edit - End forceMove(tmob.loc) //VOREstation Edit - Begin - if (istype(tmob, /mob/living/simple_mob)) //check bumpnom chance, if it's a simplemob that's bumped - tmob.Bumped(src) - else if(istype(src, /mob/living/simple_mob)) //otherwise, if it's a simplemob doing the bumping. Simplemob on simplemob doesn't seem to trigger but that's fine. - Bumped(tmob) - if (tmob.loc == src) //check if they got ate, and if so skip the forcemove - now_pushing = 0 - return - // In case of micros, we don't swap positions; instead occupying the same square! if (handle_micro_bump_helping(tmob)) now_pushing = 0 diff --git a/code/modules/mob/living/simple_mob/simple_mob_vr.dm b/code/modules/mob/living/simple_mob/simple_mob_vr.dm index 6b2d4bb6fea..ef631fa8975 100644 --- a/code/modules/mob/living/simple_mob/simple_mob_vr.dm +++ b/code/modules/mob/living/simple_mob/simple_mob_vr.dm @@ -244,17 +244,23 @@ "The stomach glorps and gurgles as it tries to work you into slop.") /mob/living/simple_mob/Bumped(var/atom/movable/AM, yes) - if(ismob(AM)) - var/mob/tmob = AM - if(will_eat(tmob) && !istype(tmob, type) && prob(vore_bump_chance) && !ckey) //check if they decide to eat. Includes sanity check to prevent cannibalism. - if(tmob.canmove && prob(vore_pounce_chance)) //if they'd pounce for other noms, pounce for these too, otherwise still try and eat them if they hold still - tmob.Weaken(5) - tmob.visible_message("\the [src] [vore_bump_emote] \the [tmob]!!") - set_AI_busy(TRUE) + if(tryBumpNom(AM)) + return + ..() + +/mob/living/simple_mob/proc/tryBumpNom(var/mob/tmob) + //returns TRUE if we actually start an attempt to bumpnom, FALSE if checks fail or the random bump nom chance fails + if(istype(tmob) && will_eat(tmob) && !istype(tmob, type) && prob(vore_bump_chance) && !ckey) //check if they decide to eat. Includes sanity check to prevent cannibalism. + if(tmob.canmove && prob(vore_pounce_chance)) //if they'd pounce for other noms, pounce for these too, otherwise still try and eat them if they hold still + tmob.Weaken(5) + tmob.visible_message("\the [src] [vore_bump_emote] \the [tmob]!!") + set_AI_busy(TRUE) + spawn() animal_nom(tmob) update_icon() set_AI_busy(FALSE) - ..() + return TRUE + return FALSE // Checks to see if mob doesn't like this kind of turf /mob/living/simple_mob/IMove(newloc)