Example #1
0
    // Checks if the agent can see through the shadow
    private bool CheckShadow(Agent checker, string name)
    {
        Agent checkedAgent = Agents.Find(x => x.name == name);

        System.Random rand = new System.Random();

        if (checkedAgent != null && ShadowMap.ContainsKey(checkedAgent))
        {
            Dictionary <Agent, int> seenList = ShadowMap[checkedAgent];

            if (!seenList.ContainsKey(checker))
            {
                seenList.Add(checker, rand.Next(100));
            }

            bool spotted = seenList[checker] > SpottingChance;

            if (spotted)
            {
                ShadowMap.Remove(checkedAgent);
                checkedAgent.Shadow = false;
            }

            return(spotted);
        }

        return(false);
    }