Beispiel #1
0
            private void SpawnNpc(Vector3 position, Quaternion rotation)
            {
                NPCPlayerApex npc = (NPCPlayerApex)GameManager.server.CreateEntity(NPC_PREFAB, position, rotation);

                if (npc == null)
                {
                    return;
                }

                npc.enableSaving = false;
                npc.startHealth  = _settings.NpcHealth;
                npc.Spawn();
                npc.displayName = _settings.NpcName;
                npc.InitializeHealth(_settings.NpcHealth, _settings.NpcHealth);
                npc.Stats.VisionRange            = _settings.NpcAggression + 3f;
                npc.Stats.DeaggroRange           = _settings.NpcAggression + 2f;
                npc.Stats.AggressionRange        = _settings.NpcAggression + 1f;
                npc.Stats.LongRange              = _settings.NpcAggression;
                npc.Stats.MaxRoamRange           = _settings.NpcRadius;
                npc.Stats.Hostility              = 1f;
                npc.Stats.Defensiveness          = 1f;
                npc.Stats.OnlyAggroMarkedTargets = true;
                npc.InitFacts();

                npc.gameObject.AddComponent <NavigationComponent>()
                ?.SetDestination(position);

                CacheAdd(npc);

                npc.Invoke(() => GiveKit(npc, _settings.Kits.GetRandom(), _settings.UseKits), 2f);
            }