Пример #1
0
 private void AddPathes(Chain c, List <Path> newPathes, List <PathEvent> newEvents)
 {
     if (inspectedChains.Contains(c))
     {
         return;
     }
     else
     {
         inspectedChains.Add(c);
     }
     foreach (State s in c.states)
     {
         foreach (Path p in s.pathes)
         {
             if (p.aimState != null && GuidManager.GetChainByState(p.aimState) != c)
             {
                 AddPathes(GuidManager.GetChainByState(p.aimState), newPathes, newEvents);
             }
             if (p.withEvent)
             {
                 newEvents.Add(new PathEvent());
                 newPathes.Add(p);
             }
         }
     }
     inspectedChains.Clear();
 }
Пример #2
0
 private void InvokeEvent(Path p)
 {
     if (!PersonChain.states.Contains(p.aimState))
     {
         PersonChain = GuidManager.GetChainByState(p.aimState);
     }
     if (pathEventsList.ContainsKey(p))
     {
         pathEventsList[p].Invoke();
     }
 }