public TutorialManager(CharacterType type, NpcSpawnData spawnData = null, string nickname = "") { parasitesStillAlive = 0; characterSpawner = type == CharacterType.Parasite ? new CharacterSpawner(Restart) : new CharacterSpawner(); characterType = type; localName = nickname; SpawnPlayer(); UiManager.Instance.SetCharacterType(type); UiManager.Instance.DeactivateControls(); triggerZones = GameObject.FindObjectsOfType <TriggerZone>(); infoScreens = GameObject.FindObjectsOfType <InfoScreen>(); detector = GameObject.FindObjectOfType <NPCInfectionDetector>(); if (spawnData != null) { npcManager = new NpcManager(spawnData); detector.ScanForNPCs(); } if (type == CharacterType.Parasite) { // Spawn static orbs GameObject orbManagerPrefab = Resources.Load("OrbManager") as GameObject; orbManager = GameObject.Instantiate(orbManagerPrefab).GetComponent <OrbManager>(); new ParasiteTutorialWinCondition(); } else { new HunterTutorialNpcWinCondition(); } InstantiatePauseOverlay(); SetPauseOverlayActive(false); }
void ParseForServerMode() { if (string.IsNullOrEmpty(GetArg("-server"))) { return; } GameObject serverGo = Instantiate(ServerPrefab); serverGo.name = "Server"; server = serverGo.GetComponent <NetworkServer>(); server.MaxConnections = 9999; server.SocketFactory = socketFactory; serverObjectManager = serverGo.GetComponent <ServerObjectManager>(); NetworkSceneManager networkSceneManager = serverGo.GetComponent <NetworkSceneManager>(); networkSceneManager.Server = server; serverObjectManager.Server = server; serverObjectManager.NetworkSceneManager = networkSceneManager; serverObjectManager.Start(); CharacterSpawner spawner = serverGo.GetComponent <CharacterSpawner>(); spawner.ServerObjectManager = serverObjectManager; spawner.Server = server; server.Started.AddListener(OnServerStarted); server.Authenticated.AddListener(conn => serverObjectManager.SpawnVisibleObjects(conn, true)); server.StartServer(); Console.WriteLine("Starting Server Only Mode"); }
void ParseForServerMode() { if (!string.IsNullOrEmpty(GetArg("-server"))) { var serverGo = new GameObject($"Server", typeof(NetworkServer), typeof(ServerObjectManager), typeof(NetworkSceneManager), typeof(CharacterSpawner)); server = serverGo.GetComponent <NetworkServer>(); server.MaxConnections = 9999; server.Transport = transport; serverObjectManager = serverGo.GetComponent <ServerObjectManager>(); NetworkSceneManager networkSceneManager = serverGo.GetComponent <NetworkSceneManager>(); networkSceneManager.Server = server; serverObjectManager.Server = server; serverObjectManager.NetworkSceneManager = networkSceneManager; serverObjectManager.Start(); CharacterSpawner spawner = serverGo.GetComponent <CharacterSpawner>(); spawner.PlayerPrefab = PlayerPrefab.GetComponent <NetworkIdentity>(); spawner.ServerObjectManager = serverObjectManager; spawner.Server = server; server.Started.AddListener(OnServerStarted); server.Authenticated.AddListener(conn => serverObjectManager.SetClientReady(conn)); _ = server.ListenAsync(); Console.WriteLine("Starting Server Only Mode"); } }
public void Setup() { go = new GameObject(); client = go.AddComponent <NetworkClient>(); server = go.AddComponent <NetworkServer>(); spawner = go.AddComponent <CharacterSpawner>(); sceneManager = go.AddComponent <NetworkSceneManager>(); serverObjectManager = go.AddComponent <ServerObjectManager>(); clientObjectManager = go.AddComponent <ClientObjectManager>(); spawner.SceneManager = sceneManager; sceneManager.Client = client; sceneManager.Server = server; serverObjectManager.Server = server; clientObjectManager.Client = client; clientObjectManager.NetworkSceneManager = sceneManager; spawner.Client = client; spawner.Server = server; spawner.ServerObjectManager = serverObjectManager; spawner.ClientObjectManager = clientObjectManager; playerPrefab = new GameObject(); NetworkIdentity playerId = playerPrefab.AddComponent <NetworkIdentity>(); spawner.PlayerPrefab = playerId; pos1 = new GameObject().transform; pos2 = new GameObject().transform; spawner.startPositions.Add(pos1); spawner.startPositions.Add(pos2); }
// Use this for initialization void Start() { characterSpawner = GetComponent <CharacterSpawner>(); cssm.Add(CharacterSpawnerStates.ON, new Action(OnState)); cssm.Add(CharacterSpawnerStates.OFF, new Action(OffState)); }
/* Main Functions */ void Start() { UnityEngine.Random.InitState((int)(System.DateTime.Now.Ticks)); triggers = gameObject.GetComponent <AITriggerManager>(); // must be initialized first movement = gameObject.GetComponent <AIMovementManager>(); inventory = gameObject.GetComponent <AIInventoryManager>(); weaponManager = gameObject.GetComponent <AIWeaponManager>(); BuildingSpawner buildingSpawner = GameObject.Find("BuildingSpawner").GetComponent <BuildingSpawner>(); buildingsGLOBAL = buildingSpawner.buildingLocations; placesToLoot = new List <GameObject>(buildingsGLOBAL); CharacterSpawner charSpawner = GameObject.Find("CharacterSpawner").GetComponent <CharacterSpawner>(); threatsGLOBAL = charSpawner.threats; //threats = new List<AIThreat>(threatsGLOBAL); status = gameObject.AddComponent <Status>(); status.health = 100; status.maxHealth = 100; status.armor = 0; status.maxArmor = 100; lootLevel = 0; skill = (int)(UnityEngine.Random.value * 8 + 2); aggression = (int)(UnityEngine.Random.value * 9 + 1); positionOptions = new List <GameObject>(); StartCoroutine(AILoop()); }
void SpawnPlayableCharacters() { CharacterType type; Character character; InputSource inputSource; characterSpawners = new CharacterSpawner[spawnData.playableCharacterSpawnPoints.Length]; for (int i = 0; i < spawnData.playableCharacterSpawnPoints.Length; i++) { NpcSpawnData.playableCharacterSpawnPoint spawnPoint = spawnData.playableCharacterSpawnPoints[i]; if (spawnPoint.isParasite) { type = CharacterType.Parasite; characterSpawners[i] = new CharacterSpawner(TutorialManager.OnParasiteKilled); inputSource = new EmptyInputSource(); } else { type = CharacterType.Hunter; characterSpawners[i] = new CharacterSpawner(); inputSource = new HunterAiInputSource(); } character = characterSpawners[i].SpawnPlayerCharacter(type, spawnPoint.coordinates, Vector2.zero, false, false, inputSource); // Don't draw hunter UI if (!spawnPoint.isParasite) { ((Hunter)character).isNpcControlled = true; } } }
void ListenCharacterDestroyed(CharacterSpawner _spawner, Character _character) { if (postDestroy != null) { postDestroy(_spawner, _character); } }
public void Restart(CharacterSpawner spawner) { // Respawn player spawner.DestroyCharacter(); SpawnPlayer(); UiManager.Instance.RemoveHud(); UiManager.Instance.SetCharacterType(characterType); UiManager.Instance.DeactivateControls(); foreach (TriggerZone zone in triggerZones) { zone.Reset(); } foreach (InfoScreen screen in infoScreens) { screen.Reset(); } // Respawn NPCs npcManager.Restart(); if (characterType == CharacterType.Parasite) { // NPC Infection Detector is only used in Parasite tutorial // and will log an error if it's Reset in the Hunter tutorial detector.Reset(); } }
void StartClient(int i, string networkAddress) { GameObject clientGo = Instantiate(ClientPrefab); clientGo.name = $"Client {i}"; NetworkClient client = clientGo.GetComponent <NetworkClient>(); ClientObjectManager objectManager = clientGo.GetComponent <ClientObjectManager>(); CharacterSpawner spawner = clientGo.GetComponent <CharacterSpawner>(); NetworkSceneManager networkSceneManager = clientGo.GetComponent <NetworkSceneManager>(); networkSceneManager.Client = client; objectManager.Client = client; objectManager.NetworkSceneManager = networkSceneManager; objectManager.Start(); objectManager.RegisterPrefab(MonsterPrefab.GetComponent <NetworkIdentity>()); objectManager.RegisterPrefab(PlayerPrefab.GetComponent <NetworkIdentity>()); spawner.Client = client; spawner.PlayerPrefab = PlayerPrefab.GetComponent <NetworkIdentity>(); spawner.ClientObjectManager = objectManager; spawner.SceneManager = networkSceneManager; client.SocketFactory = socketFactory; try { client.Connect(networkAddress); } catch (Exception ex) { Debug.LogException(ex); } }
async UniTask StartClient(int i, string networkAddress) { var clientGo = new GameObject($"Client {i}", typeof(NetworkClient), typeof(ClientObjectManager), typeof(CharacterSpawner), typeof(NetworkSceneManager)); NetworkClient client = clientGo.GetComponent <NetworkClient>(); ClientObjectManager objectManager = clientGo.GetComponent <ClientObjectManager>(); CharacterSpawner spawner = clientGo.GetComponent <CharacterSpawner>(); NetworkSceneManager networkSceneManager = clientGo.GetComponent <NetworkSceneManager>(); networkSceneManager.Client = client; objectManager.Client = client; objectManager.NetworkSceneManager = networkSceneManager; objectManager.Start(); objectManager.RegisterPrefab(MonsterPrefab.GetComponent <NetworkIdentity>()); objectManager.RegisterPrefab(PlayerPrefab.GetComponent <NetworkIdentity>()); spawner.Client = client; spawner.PlayerPrefab = PlayerPrefab.GetComponent <NetworkIdentity>(); spawner.ClientObjectManager = objectManager; spawner.SceneManager = networkSceneManager; client.Transport = transport; try { await client.ConnectAsync(networkAddress); } catch (Exception ex) { Debug.LogException(ex); } }
void ListenSpawn(CharacterSpawner _spawner, Character _character) { if (postSpawn != null) { postSpawn(_spawner, _character); } }
void Start() { //removes (Clone) that Unity gives to the gameObject's name transform.name = transform.name.Replace("(Clone)", "").Trim(); this.gameObject.SetActive(true); test = GameObject.Find("ground"); characterSpawner = test.GetComponent <CharacterSpawner>(); }
// CLEANUP: this and its associated variables should probably be extracted // to a separate class public static void OnParasiteKilled(CharacterSpawner spawner) { spawner.DestroyCharacter(); if (parasitesStillAlive == 0) { UiManager.Instance.SetReturnToMenuPanelActive(true); } }
public CameraManager( Camera camera, CinemachineVirtualCamera cinemachineCamera, CharacterSpawner characterSpawner) { _camera = camera; _cinemachineCamera = cinemachineCamera; _characterSpawner = characterSpawner; }
void Start() { _spawner = FindObjectOfType <CharacterSpawner> (); _meatSystem = FindObjectOfType <MeatSystem> (); _settings = FindObjectOfType <Settings> (); _meat = baseCharacter.meat; _cooldownPurchase = baseCharacter.cooldownPurchase; _nameText.text = baseCharacter.name; _meatText.text = _meat.ToString(); _button.onClick.AddListener(() => OnClick()); }
public ParasiteData(CharacterSpawner owner, DeathHandler deathHandler = null) { this.owner = owner; if (deathHandler == null) { deathHandler = DefaultDeathHandler; } this.deathHandler = deathHandler; hasHandledDeath = false; isVamparasite = false; ParasiteHealth = STARTING_HEALTH; }
public NetworkedCharacterSpawner( GenericMessageWithResponseClient messageWithResponse, GlobalHostPlayerManager globalHostPlayerManager, CharacterSpawner characterSpawner, NetworkRelay networkRelay, UnityClient client ) { _globalHostPlayerManager = globalHostPlayerManager; _messageWithResponse = messageWithResponse; _characterSpawner = characterSpawner; _networkRelay = networkRelay; _client = client; }
void InfectNpc(NonPlayerCharacter npc) { // Let the npc know it will be controlled by this player from now on npc.photonView.RequestOwnership(); // Store spawner for eventual transfer back to parasite CharacterSpawner.SetCharacter(npc); npc.SetName(characterName, false); // Set isInfected to true/update sprite on new authority's client npc.Infect(input); // Update client's camera and render settings to reflect new character npc.SetCameraFollow(false); npc.SetRenderLayer(); UiManager.Instance.ActivateControls(CharacterType.NPC); UiManager.Instance.minimap.SetTarget(npc.transform); npc.gameObject.AddComponent <AudioListener>(); }
private void Awake() { if (instance == null) { instance = this; characterDatas = new List <GOAP_Character.CharacterData>(); characterDatas.Add(example1); characterDatas.Add(example2); SceneManager.sceneLoaded += OnSceneLoaded; DontDestroyOnLoad(this.gameObject); } else { Destroy(gameObject); } }
private void Awake() { cSpawner = FindObjectOfType <CharacterSpawner>(); rbBody = transform.Find("Body").GetComponent <Rigidbody2D>(); rbHead = rbBody.transform.Find("Head").GetComponent <Rigidbody2D>(); child1 = rbBody.transform.Find("Arm_R").GetChild(3).GetComponent <Rigidbody2D>(); child2 = rbBody.transform.Find("Arm_L").GetChild(3).GetComponent <Rigidbody2D>(); enemies = FindObjectsOfType <PlayerConroller>().Except(this.Yield()).ToList(); foreach (Transform ch in rbBody.transform) { var lr = ch.GetComponent <LineRenderer>(); if (lr != null) { lines.Add(lr); } } crashForce = rbBody.GetComponent <CrashForce>(); }
public void OnEvent(EventData photonEvent) { switch (photonEvent.Code) { case EventCodes.StartGame: if (characterSpawner != null) { characterSpawner.DestroyCharacter(); } break; case EventCodes.AssignPlayerTypeAndSpawnPoint: // Deconstruct event int actorNumber = (int)EventCodes.GetEventContentAtPosition(photonEvent, 0); if (actorNumber == PhotonNetwork.LocalPlayer.ActorNumber) { CharacterType assignedCharacterType = (CharacterType)EventCodes.GetEventContentAtPosition(photonEvent, 1); Vector3 spawnPoint = (Vector2)EventCodes.GetEventContentAtPosition(photonEvent, 2); characterSpawner = new CharacterSpawner(); // Spawn Character of type `assignedCharacterType` across clients Character character = characterSpawner.SpawnPlayerCharacter( assignedCharacterType, spawnPoint, Vector2.zero, true, true, null, false, PhotonNetwork.LocalPlayer.NickName); character.gameObject.AddComponent <AudioListener>(); UiManager.Instance.minimap.SetTarget(character.transform); UiManager.Instance.minimap.Activate(); } break; case EventCodes.Mutation: if (characterSpawner != null) { // CharacterSpawner may be null if we're currently in a tutorial characterSpawner.OnMutation(); } break; } }
public override void ExtraSetup() { bundle = AssetBundle.LoadFromFile("Assets/Tests/Runtime/TestScene/testscene"); spawner = networkManagerGo.AddComponent <CharacterSpawner>(); spawner.Client = client; spawner.Server = server; spawner.SceneManager = sceneManager; spawner.ClientObjectManager = clientObjectManager; spawner.ServerObjectManager = serverObjectManager; player = new GameObject(); NetworkIdentity identity = player.AddComponent <NetworkIdentity>(); spawner.PlayerPrefab = identity; spawner.AutoSpawn = false; }
public override void ExtraSetup() { // call base for SceneManager Setup base.ExtraSetup(); // disable so awake isn't called till setup finished networkManagerGo.SetActive(false); spawner = networkManagerGo.AddComponent <CharacterSpawner>(); spawner.Client = client; spawner.Server = server; spawner.SceneManager = sceneManager; spawner.ClientObjectManager = clientObjectManager; spawner.ServerObjectManager = serverObjectManager; spawner.PlayerPrefab = CreateNetworkIdentity(); spawner.AutoSpawn = false; networkManagerGo.SetActive(true); }
void SpawnParasite() { Character newParasite = CharacterSpawner.SpawnPlayerCharacter(CharacterType.Parasite, transform.position, new Vector2(0, PARASITE_LAUNCH_VELOCITY), false, // Force Camera Snap false, // Should Camera Follow input, true, // Preserve Parasite Health characterName ); if (input.ShouldCameraFollowOwner()) { // Only show parasite controls if this client is playing as this parasite UiManager.Instance.ActivateControls(CharacterType.Parasite); UiManager.Instance.minimap.SetTarget(newParasite.transform); newParasite.gameObject.AddComponent <AudioListener>(); } }
private void SplitIntoTwo(string spriteName) { Debug.Log(spriteName); Sprite[] temp = null; temp = CharacterSpawner.GetSprSides(spriteName); if (temp != null) { Debug.Log(temp[0].name); Debug.Log(temp[1].name); } else { Debug.Log("Didnot get sprite splits"); } GameObject partOne = GameObjectUtility.customInstantiate(prefabPartOne, transform.position + new Vector3(0.8f, 0f, 0f)); partOne.GetComponent <SpriteRenderer> ().sprite = temp [0]; GameObject partTwo = GameObjectUtility.customInstantiate(prefabPartTwo, transform.position + new Vector3(-0.8f, 0f, 0f)); partTwo.GetComponent <SpriteRenderer> ().sprite = temp [1]; }
private void Start() { winobj = GameObject.Find("Player_Win_Canvas"); winImage = GameObject.Find("PWIN").GetComponent <Image>(); winobj.SetActive(false); mid = FindObjectOfType <CharacterSpawner>().transform; cam = GetComponent <Camera>(); cSpawner = FindObjectOfType <CharacterSpawner>(); var playercontrollers = FindObjectsOfType <PlayerConroller>(); var rbBodies = playercontrollers.Select(x => x.rbBody.transform); targets.AddRange(rbBodies); cSpawner.OnTargetRevived -= OnTargetRevived; cSpawner.OnDeath -= OnTargetDie; cSpawner.OnTargetRevived += OnTargetRevived; cSpawner.OnDeath += OnTargetDie; var dist = GetGreatestDistance(); float newZoom = Mathf.Lerp(maxZoom, minZoom, dist / zoomLimiter); cam.fieldOfView = newZoom; }
public void End() { characterSpawner.DestroyCharacter(); characterSpawner = null; npcManager.DespawnNPCs(); npcManager = null; GameObject.Destroy(pauseOverlay); // OrbManager is used in the parasite tutorial to manage the static // orbs that are part of the level if (orbManager != null) { orbManager.DestroyOrbs(); orbManager = null; } foreach (TriggerZone zone in triggerZones) { zone.Reset(); } foreach (InfoScreen screen in infoScreens) { screen.Reset(); } }
public LivingCharactersRegistry(CharacterSpawner characterSpawner) { _characterSpawner = characterSpawner; }
static void ListenCharacterSpawned(CharacterSpawner _spawner, Character _character) { Game.Character.Add(_character); }
static void ListenCharacterDestroyed(CharacterSpawner _spawner, Character _character) { // Game.Character.characters.Remove(_character.id); }
void ListenSpawn(CharacterSpawner _spawner, Character _character) { if (postSpawn != null) postSpawn(_spawner, _character); }
void ListenDestroy(CharacterSpawner _spawner, Character _character) { if (postDestroy != null) postDestroy(_spawner, _character); }
static void ListenCharacterDestroyed(CharacterSpawner _spawner, Character _character) { // Game.Character.characters.Remove(_character.id); }