private void Awake() { if (Instance != null) { Debug.LogError("Error: More than one wave spawner in scene!"); return; } Instance = this; shop = FindObjectOfType <Shop>(); if (commands == null) { commands = FindObjectOfType <LocalPlayerCommands>(); } if (NetworkServer.connections.Count != 0) { waitForPlayersCount = NetworkServer.connections.Count; } if (cleanUpScene) { CleanUpEnemies(); } InvokeRepeating("UpdateGhostPositions", 0f, UpdateGhostPositionInterval); GenerateAllWaves(); }
public void PlayerReady() { if (player == null) { player = FindObjectOfType <LocalPlayerCommands>(); } player.CmdReady(); gameObject.SetActive(false); }
public void CallBuildTurret(bool upgrading = false) { if (upgrading) { if (isUpgraded) { BuildManager.Instance.message.PlayMessage("Already Upgraded!", transform, Color.red); return; } if (!buildManager.HasMoneyUpgrade) { BuildManager.Instance.message.PlayMessage("Not Enough Money!", transform, Color.red); return; } playerStats.money -= turretBlueprint.upgradeCost; } else { if (!buildManager.HasMoney) { BuildManager.Instance.message.PlayMessage("Not Enough Money!", transform, Color.red); return; } if (!buildManager.HasResources()) { BuildManager.Instance.message.PlayMessage("Not Enough Resources!", transform, Color.red); return; } switch (buildManager.GetTurretToBuild().resourceType) { case ResourceTypes.stone: PlayerStats.Instance.stone -= buildManager.GetTurretToBuild().resourceCost; break; case ResourceTypes.diamond: PlayerStats.Instance.diamond -= buildManager.GetTurretToBuild().resourceCost; break; case ResourceTypes.green: PlayerStats.Instance.green -= buildManager.GetTurretToBuild().resourceCost; break; } playerStats.money -= buildManager.GetTurretToBuild().cost; } if (player == null) { player = FindObjectOfType <LocalPlayerCommands>(); } int _tID = buildManager.GetTurretToBuildIndex(); player.CmdBuildTurret(nodeID, _tID, upgrading); }
public void CallSellTurret() { if (player == null) { player = FindObjectOfType <LocalPlayerCommands>(); } if (turretBlueprint == null) { BuildManager.Instance.message.PlayMessage("No Turret To Sell!", transform, Color.red); return; } playerStats.money += turretBlueprint.GetSellAmount(isUpgraded); player.CmdSellTurret(nodeID); }
private void Start() { sceneCamera = Camera.main; motor = GetComponent <PlayerMotor>(); speed = startSpeed; commands = FindObjectOfType <LocalPlayerCommands>(); commands.CmdSetClientsRandomValues(); WaveSpawner.Instance.commands = commands; WaveSpawner.Instance.localPlayer = this; commands.CmdRequestSceneState(); rmbCooldownImage = GameObject.FindGameObjectWithTag("CooldownImageRmb"); rmbCooldownImageComponent = rmbCooldownImage.GetComponent <Image>(); ss3CooldownImage = GameObject.FindGameObjectWithTag("CooldownImageSS3"); ss3CooldownImageComponent = ss3CooldownImage.GetComponent <Image>(); }
private void OnSceneLoaded(Scene scene, LoadSceneMode mode) { motor = GetComponent <PlayerMotor>(); speed = startSpeed; commands = FindObjectOfType <LocalPlayerCommands>(); commands.CmdSetClientsRandomValues(); WaveSpawner.Instance.commands = commands; WaveSpawner.Instance.localPlayer = this; ResetCameras(); transform.position = new Vector3(0f, 2f, 0f); rmbCooldownImage = GameObject.FindGameObjectWithTag("CooldownImageRmb"); rmbCooldownImageComponent = rmbCooldownImage.GetComponent <Image>(); ss3CooldownImage = GameObject.FindGameObjectWithTag("CooldownImageSS3"); ss3CooldownImageComponent = ss3CooldownImage.GetComponent <Image>(); }
private void Update() { if (enemiesAlive < 0) { enemiesAlive = 0; //sometimes the count bugs out and becomes -1, not sure exactly where the problem happens. } enemyCountText.text = enemiesAlive.ToString(); if (PlayerStats.Instance.lives <= 0) { enabled = false; } if (waveActive) { return; } if (enemiesAlive > 0) { return; } if (finishedWaveAndReady == true) { if (waitingForZombies < 1f) { if (enemiesAlive <= 0) { waitingForZombies += Time.deltaTime; return; } else { waitingForZombies = 0f; return; } } if (commands == null) { commands = FindObjectOfType <LocalPlayerCommands>(); } commands.CmdReady(); finishedWaveAndReady = false; waitingForZombies = 0f; } if (playersReady < waitForPlayersCount) { return; } if (waveIndex >= waveMax) { BuildManager.Instance.message.PlayMessage("ALL WAVES COMPLETE!", transform, Color.green, 0.1f, 1, 2); enabled = false; return; } if (countdown <= 0f) { buildTimeToggle(); StartCoroutine(SpawnWave()); countdown = waveCountdownTimer; return; } if (!buildTime) { buildTimeToggle(); } countdown -= Time.deltaTime; countdown = Mathf.Clamp(countdown, 0f, Mathf.Infinity); waveCountdownText.text = string.Format("{0:00.0}", countdown); }