Exemplo n.º 1
0
 // Event where agent shares a seen agent
 public void SeenAgent(OtherAgent oa)
 {
     TimesSeenOtherAgents.Add(oa);
     if (!SharedSeenOtherAgents.ContainsKey(oa.Name))
     {
         SharedSeenOtherAgents.Add(oa.Name, oa);
     }
     else
     {
         SharedSeenOtherAgents[oa.Name] = oa;
     }
 }
Exemplo n.º 2
0
    // Event where agent no longer sees agent
    public void UnseenAgent(OtherAgent oa)
    {
        int index = TimesSeenOtherAgents.FindLastIndex(x => x == oa);

        if (index != -1)
        {
            TimesSeenOtherAgents.RemoveAt(index);
        }
        if (!TimesSeenOtherAgents.Contains(oa))
        {
            SharedSeenOtherAgents.Remove(oa.Name);
        }
    }
Exemplo n.º 3
0
    void Update()
    {
        var agentsToRemove = new List <string>();

        foreach (KeyValuePair <string, OtherAgent> a in SharedSeenOtherAgents)
        {
            if (!LevelManager.Instance.Agents.Exists(x => x.name == a.Key))
            {
                agentsToRemove.Add(a.Key);
            }
        }

        foreach (string s in agentsToRemove)
        {
            SharedSeenOtherAgents.Remove(s);
        }
    }