public static void Setup()
        {
            AgentInterfacer[] agentInters = LSDatabaseManager.CurrentDatabase.AgentData;

            AgentCodes   = (AgentCode[])Enum.GetValues(typeof(AgentCode));
            CachedAgents = new Dictionary <AgentCode, FastStack <LSAgent> >(agentInters.Length);

            for (int i = 0; i < agentInters.Length; i++)
            {
                AgentInterfacer interfacer = agentInters[i];
                AgentCode       agentCode  = interfacer.GetAgentCode();
                CodeInterfacerMap.Add(agentCode, interfacer);
                CachedAgents.Add(agentCode, new FastStack <LSAgent>(2));
            }
        }
Example #2
0
        public void Setup(AgentInterfacer interfacer)
        {
            LoadComponents();


            GameObject.DontDestroyOnLoad(gameObject);

            setupAbilitys.FastClear();

            MyAgentCode  = interfacer.GetAgentCode();
            Interfacer   = interfacer;
            SpawnVersion = 1;
            CheckCasting = true;

            Influencer = new LSInfluencer();
            if (_visualCenter == null)
            {
                _visualCenter = CachedTransform;
            }

            if (Animator.IsNotNull())
            {
                Animator.Setup();
            }


            abilityManager.Setup(this);
            Ringer = RingController.Create();
            if (Ringer.IsNotNull())
            {
                Ringer.Setup(this);
            }

            Influencer.Setup(this);
            Body.Setup(this);

            SelectionRadiusSquared = _selectionRadius * _selectionRadius;
            if (StatsBarer != null)
            {
                StatsBarer.Setup(this);
            }
        }