示例#1
0
 public void Raise(TurretSettings turretSettings)
 {
     for (int i = this._listeners.Count - 1; i >= 0; --i)
     {
         this._listeners[i].OnEventRaised(turretSettings);
     }
 }
示例#2
0
    public void Upgrade()
    {
        GameObject.FindObjectOfType <AudioManager>().upgrade.Play();

        TurretSettings currentTurretSettings = currentTurret.GetComponent <TurretSettings>();

        // If we haven't maxed out the turret level
        if (currentTurretSettings.level < currentTurretSettings.maxLevel)
        {
            currentTurretSettings.level++;

            currentTurretSettings.bodyDecal.material = currentTurretSettings.levelColours[currentTurretSettings.level];
            currentTurretSettings.gunDecal.material  = currentTurretSettings.levelColours[currentTurretSettings.level];
            currentTurretSettings.platform.material  = currentTurretSettings.levelColours[currentTurretSettings.level];

            currentTurretSettings.ChangeRadius();
            currentTurretSettings.ChangeFireRate();

            upgradeCost += upgradeIncrement;

            MakeSelected(false, originalColour);
        }
        else
        {
            print("This turret is at its max level!");
        }
    }
示例#3
0
    private void SpawnTurret(TurretSettings turretSettings, Vector3 position)
    {
        TurretHelper turret = GameObject.Instantiate(turretSettings.TurretPrefab, this._enemyTurretContainer);

        turret.transform.position = position;
        turret.enabled            = false;
        turret.gameObject.layer   = this._enemyTeamLayer;
        turret.GetComponent <EnemyTurret>().enabled = true;
        turret.GetComponent <AcquireTarget>().SetTargetLayer(this._playerTeamLayer);
        turret.Spawner = this;
        this._remainingTurrets.Add(turret);
    }
示例#4
0
    public void StartPlacingTurret(TurretSettings turretSettings)
    {
        if (this.Building)
        {
            return;
        }
        if (this._tmpTurret != null)
        {
            GameObject.Destroy(this._tmpTurret);
        }

        this.enabled                       = true;
        this._tmpTurretSettings            = turretSettings;
        this._tmpTurret                    = GameObject.Instantiate(turretSettings.TurretPrefab, this._turretsContainer);
        this._tmpTurret.TurretPlacer       = this;
        this._tmpTurret.transform.position = this.GetMouseScenePosition();
    }
示例#5
0
    public Collider2D GetTarget(Transform from, TurretSettings settings)
    {
        Collider2D[] results;

        results = Physics2D.OverlapCircleAll(from.position, settings.Range, this._targetLayer.value);

        if (results.Length <= 0)
        {
            return(null);
        }

        Collider2D best         = null;
        float      bestDistance = float.MaxValue;

        RaycastHit2D[] hits;

        foreach (Collider2D collider in results)
        {
            Collider2D tmpBest         = null;
            float      tmpBestDistance = bestDistance;
            hits = Physics2D.LinecastAll(from.position, collider.transform.position, this._layersLineCast);

            foreach (RaycastHit2D hit in hits)
            {
                if (hit.transform == from) // We shouldn't target ourself!
                {
                    continue;
                }
                if (hit.distance < tmpBestDistance)
                {
                    tmpBest         = hit.collider;
                    tmpBestDistance = hit.distance;
                }
            }
            if (tmpBest != null && this._targetLayer.value == (this._targetLayer.value | (1 << tmpBest.gameObject.layer)))
            {
                best         = tmpBest;
                bestDistance = tmpBestDistance;
            }
        }
        return(best);
    }
示例#6
0
 public void SetTurretToBuild(TurretHelper turret, TurretSettings turretSettings)
 {
     this._turret         = turret;
     this._turretSettings = turretSettings;
 }
示例#7
0
 public void OnEventRaised(TurretSettings turretSettings)
 {
     this._response.Invoke(turretSettings);
 }