public bool Take(CoverSearch search, Vector3 observer) { Observer = observer; var wasIn = In; var closest = search.FindClosest(); var previousMain = Main; if (Main == null && closest != null) { Main = closest; LeftAdjacent = Main.LeftAdjacent; RightAdjacent = Main.RightAdjacent; } else { Clear(); } if (Main != previousMain) { MainChangeAge = 0; } if (In && !wasIn) { return(true); } else { return(false); } }
public void Maintain(CoverSearch search, Vector3 observer) { Observer = observer; var closest = search.FindClosest(); var previousMain = Main; if (Main != null && Main != closest) { if (closest != null) { if (closest == LeftAdjacent) { StandLeft(); Main = closest; } else if (closest == RightAdjacent) { StandRight(); Main = closest; } else { Main = null; } } else { Main = null; } } if (Main != null) { LeftAdjacent = Main.LeftAdjacent; RightAdjacent = Main.RightAdjacent; } else { LeftAdjacent = null; RightAdjacent = null; } if (Main != previousMain) { MainChangeAge = 0; } }