void Update() { Vector2 mouseDelta = new Vector2(Input.GetAxisRaw("Mouse X"), Input.GetAxisRaw("Mouse Y")); m_Pitch -= mouseDelta.y * m_MouseSensitivity.y; m_Yaw += mouseDelta.x * m_MouseSensitivity.x; m_Camera.localRotation = Quaternion.Euler(m_Pitch, m_Yaw, 0); if (pointingToMove) { Ray ray = new Ray(m_PointerOriginTransform.position, m_PointerOriginTransform.forward); RaycastHit hit; float dist = 200f; if (Physics.Raycast(ray, out hit, float.MaxValue, m_TowerMask)) { m_SelectedTower = hit.collider.GetComponent <PlayerTower>(); m_SelectedTower.SetSelection(true); dist = hit.distance; } else { m_SelectedTower?.SetSelection(false); m_SelectedTower = null; } Vector3 hitPosition = ray.origin + ray.direction * dist; m_PointerLine.SetPositions(new [] { m_PointerOriginTransform.position, hitPosition }); } }
void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.name == "PlayerShot") { rb.freezeRotation = false; transform.right = startV; rb.freezeRotation = true; //transform.Rotate(Vector3.right, startZ - transform.rotation.z); } else if (collision.gameObject.name == "left tower") { PlayerTower tower = collision.gameObject.GetComponent <PlayerTower>(); tower.health = tower.health - this.power; Destroy(gameObject); } }
public void DoGameCycle() { if (Monsters.TrueForAll(monster => monster.Cycles.DeathCyclesDid >= 60)) { PlayerTower.ChangeHealState(); CurrentWave++; if ((CurrentWave - 3) % 5 == 0 && CurrentWave > 0 && (CurrentWave - 3) % 10 != 0) { Monsters.Add(new Monster(EntityType.King, GateCoordinates[1], this)); } else if (CurrentWave > 0 && (CurrentWave - 3) % 10 == 0) { Monsters.Add(new Monster(EntityType.Igni, GateCoordinates[1], this)); } else { Monsters = this.CreateRandomMonstersAsync((CurrentWave - 3) / 5 + 1); } MonsterToAdd.Clear(); } else if (PlayerTower.HealthAmount > 0) { PlayerTower.ChangeState(); while (MonsterToAdd.Count != 0) { Monsters.Add(MonsterToAdd.Dequeue()); } foreach (var monster in Monsters) { monster.Act(this); } } else { IsGameFinished = true; } }
private void Start() { m_PlayerTower = FindObjectOfType <PlayerTower>(); m_GameDataListener = FindObjectOfType <GameDataListener>(); }