// lean in and eat bodies made out of flesh ================================================= // public static bool Eat(this JobDriver_Stumble driver, Zombie zombie, PheromoneGrid grid) { if (zombie.hasTankyShield != -1f || zombie.hasTankyHelmet != -1f || zombie.hasTankySuit != -1f) { return(false); } if (driver.eatTarget != null && driver.eatTarget.Spawned == false) { driver.eatTarget = null; driver.lastEatTarget = null; driver.eatDelayCounter = 0; } if (driver.eatTarget == null && grid.GetZombieCount(zombie.Position) <= 2) { driver.eatTarget = CanIngest(zombie); } var eatTargetPawn = driver.eatTarget as Pawn ?? (driver.eatTarget as Corpse)?.InnerPawn; if (eatTargetPawn != null) { if (driver.LeanAndDelay(zombie, eatTargetPawn)) { return(true); } if (driver.EatBodyPart(zombie, eatTargetPawn)) { return(true); } } else { if (zombie.Drawer.leaner is ZombieLeaner zombieLeaner) { zombieLeaner.extraOffset = Vector3.zero; } } return(false); }