Ejemplo n.º 1
0
 public void ResetInfo(TowerBehaviour tower)
 {
     levelText.text       = "Level: " + tower.Level.ToString();
     damageText.text      = "Damage: " + tower.Damage.ToString("F1");
     attackSpeedText.text = "AttackSpeed: " + tower.SpeedAttack.ToString("F1");
     costText.text        = "Cost: " + tower.Cost.ToString("F1");
 }
Ejemplo n.º 2
0
    //private float bulletShootRate = 15;
    //public float BulletSpeed{get{return bulletShootRate;}set{bulletShootRate = value;}}

    // Use this for initialization
    void Awake()
    {
        GameObject     towerStats = GameObject.Find("TowerBase");
        TowerBehaviour stats      = towerStats.GetComponent <TowerBehaviour>();

        currency = 1000000;
    }
Ejemplo n.º 3
0
 private void Awake()
 {
     enemiesList    = new List <GameObject>();
     ProjectilePool = new Queue <GameObject>();
     PoolingProjectile();
     myTowerBehav = myTower.GetComponent <TowerBehaviour>();
 }
Ejemplo n.º 4
0
 private void OnTriggerExit(Collider other)
 {
     if (!other.name.Contains(myChampBehav.Team) && other.tag.Equals("Minion"))
     {
         RemoveEnemiesList(other);
     }
     else if (other.tag.Equals("Tower"))
     {
         TowerBehaviour behav = other.gameObject.GetComponent <TowerBehaviour>();
         if (!myChampBehav.Team.Equals(behav.Team))
         {
             RemoveEnemiesList(other);
         }
     }
     else if (other.tag.Equals("Suppressor") || other.tag.Equals("Nexus"))
     {
         SuppressorBehaviour behav = other.gameObject.GetComponent <SuppressorBehaviour>();
         //if (behav.isCanAtkMe)
         if (!myChampBehav.Team.Equals(behav.Team))
         {
             RemoveEnemiesList(other);
         }
     }
     else if (other.gameObject.layer.Equals(LayerMask.NameToLayer("Monster")))
     {
         RemoveEnemiesList(other);
     }
 }
Ejemplo n.º 5
0
 public void UpgradeTower()
 {
     //check if current tower is a single shot tower (will possible be changed) and apply the upgrade
     if (currentTower != null && currentTower.GetComponent <TowerBehaviour>() != null)
     {
         TowerBehaviour towerBehaviour = currentTower.GetComponent <TowerBehaviour>();
         if (stats.currentMoney >= towerBehaviour.upgradeCost)
         {
             stats.currentMoney       -= towerBehaviour.upgradeCost;
             towerBehaviour.damage     = 2;
             towerBehaviour.shootTimer = 0.25f;
             currentTower.GetComponent <Renderer>().material.color = Color.blue;
             towerBehaviour.upgraded = true;
         }
     }
     //check if current tower is an AoE tower (will possible be changed) and apply the upgrade
     else if (currentTower != null && currentTower.GetComponent <AoETowerBehaviour>() != null)
     {
         AoETowerBehaviour towerBehaviour = currentTower.GetComponent <AoETowerBehaviour>();
         if (stats.currentMoney >= towerBehaviour.upgradeCost)
         {
             stats.currentMoney   -= towerBehaviour.upgradeCost;
             towerBehaviour.damage = 2;
             towerBehaviour.numberOfProjectiles = 8;
             towerBehaviour.shootTimer          = 0.5f;
             currentTower.transform.GetChild(2).gameObject.SetActive(false);
             currentTower.transform.GetChild(3).gameObject.SetActive(true);
             currentTower.transform.GetChild(1).GetComponent <Renderer>().material.color = Color.blue;
             towerBehaviour.Start();
             towerBehaviour.upgraded = true;
         }
     }
 }
Ejemplo n.º 6
0
    private void OnTriggerExit(Collider other)
    {
        // 적이 공격 반경에서 나간다면 적 리스트에서 제거한다
        if (!other.name.Contains(myChampBehav.team) && other.tag.Equals("Minion"))
        {
            RemoveEnemiesList(other);
        }
        else if (other.tag.Equals("Tower"))
        {
            TowerBehaviour towerBehav = other.gameObject.GetComponent <TowerBehaviour>();

            if (!myChampBehav.team.Equals(towerBehav.team))
            {
                RemoveEnemiesList(other);
            }
        }
        else if (other.tag.Equals("Suppressor") || other.tag.Equals("Nexus"))
        {
            SuppressorBehaviour supBehav = other.gameObject.GetComponent <SuppressorBehaviour>();

            if (!myChampBehav.team.Equals(supBehav.team))
            {
                RemoveEnemiesList(other);
            }
        }
        else if (other.gameObject.layer.Equals(LayerMask.NameToLayer("Monster")))
        {
            RemoveEnemiesList(other);
        }
        else if (other.gameObject.layer.Equals(LayerMask.NameToLayer("Champion")))
        {
            RemoveEnemiesList(other);
        }
    }
Ejemplo n.º 7
0
    private void OnTriggerEnter(Collider other)
    {
        // 공격 반경에 적이 들어온다면 적 리스트에 추가한다. (논 타겟팅 어택 명령을 위한 것)
        if (!other.name.Contains(myChampBehav.team) && other.tag.Equals("Minion"))
        {
            AddEnemiesList(other);
        }
        else if (other.tag.Equals("Tower"))
        {
            TowerBehaviour towerBehav = other.gameObject.GetComponent <TowerBehaviour>();

            if (!myChampBehav.team.Equals(towerBehav.team))
            {
                AddEnemiesList(other);
            }
        }
        else if (other.tag.Equals("Suppressor") || other.tag.Equals("Nexus"))
        {
            SuppressorBehaviour supBehav = other.gameObject.GetComponent <SuppressorBehaviour>();

            if (!myChampBehav.team.Equals(supBehav.team))
            {
                AddEnemiesList(other);
            }
        }
        else if (other.gameObject.layer.Equals(LayerMask.NameToLayer("Monster")))
        {
            AddEnemiesList(other);
        }
        else if (other.gameObject.layer.Equals(LayerMask.NameToLayer("Champion")))
        {
            AddEnemiesList(other);
        }
    }
Ejemplo n.º 8
0
 private void Start()
 {
     towerBehaviour           = GetComponentInParent <TowerBehaviour>();
     text                     = GetComponent <TextMesh>();
     text.text                = "0";
     towerBehaviour.OnUpdate += LevelUpdateView;
 }
Ejemplo n.º 9
0
 IEnumerator AtkMotion()
 {
     while (true)
     {
         if (!isAtkPause)
         {
             bool check = true;
             if (!isTargetting)
             {
                 check = false;
             }
             else if (AtkTargetObj == null)
             {
                 check = false;
             }
             else if (AtkTargetObj.Equals(AStarTargetObj))
             {
                 check = false;
             }
             if (check)
             {
                 if (AtkTargetObj.tag.Equals("Minion"))
                 {
                     MinionBehavior behav = AtkTargetObj.GetComponent <MinionBehavior>();
                     if (behav != null)
                     {
                         if (behav.HitMe(myChampionData.mystat.Attack_Damage, "AD"))
                         {
                             ResetTarget();
                         }
                     }
                 }
                 else if (AtkTargetObj.tag.Equals("Player"))
                 {//이 태그대로 할건지 바뀌는지는 모르겠음. 우선 챔피언 공격임.
                     ChampionBehavior behav = AtkTargetObj.GetComponent <ChampionBehavior>();
                     if (behav != null)
                     {
                         if (behav.HitMe(myChampionData.mystat.Attack_Damage, "AD", gameObject))
                         {
                             ResetTarget();
                         }
                     }
                 }
                 else if (AtkTargetObj.tag.Equals("Tower"))
                 {
                     TowerBehaviour behav = AtkTargetObj.GetComponent <TowerBehaviour>();
                     if (behav != null)
                     {
                         if (behav.HitMe(myChampionData.mystat.Attack_Damage))
                         {
                             ResetTarget();
                         }
                     }
                 }
             }
         }
         yield return(new WaitForSeconds(1));
     }
 }
Ejemplo n.º 10
0
 private void Awake()
 {
     mainCamera     = Camera.main;
     myCanvas       = GameObject.FindGameObjectWithTag("HpbarCanvas").GetComponent <Canvas>();
     TheFogEntity   = GetComponent <FogOfWarEntity>();
     towerBehaviour = GetComponent <TowerBehaviour>();
     team           = towerBehaviour.Team.ToLower();
 }
Ejemplo n.º 11
0
    public void TowerDestroyed(TowerBehaviour tower)
    {
        // Update list of towers.
        allTowers.Remove(tower);

        // Update number of active towers.
        towersBuilt[tower.type] -= 1;
    }
Ejemplo n.º 12
0
    private void InstantiateTowerRadiusObject(GameObject newTowerObject, TowerBehaviour newTowerBehaviour)
    {
        var towerRadiusObject = GameObject.Instantiate(GuiController.Instance.TowerRadius, newTowerObject.transform.position, Quaternion.Euler(new Vector3(90, 0, 0)));

        towerRadiusObject.transform.SetParent(newTowerObject.transform);
        towerRadiusObject.GetComponent <RectTransform>().sizeDelta = new Vector2(newTowerBehaviour.Tower.Range * 2, newTowerBehaviour.Tower.Range * 2);
        newTowerBehaviour.TowerRadius = towerRadiusObject;
    }
Ejemplo n.º 13
0
 // Use this for initialization
 void Start()
 {
     if (transform.GetComponent <TowerBehaviour>() != null)
     {
         towerBehaviour = transform.GetComponent <TowerBehaviour>();
     }
     f_maxHealth      = f_health;
     f_previousHealth = f_health;
 }
Ejemplo n.º 14
0
    public override void OnInspectorGUI()
    {
        TowerBehaviour target = (TowerBehaviour)this.target;

        target.enemyLayer   = EditorGUILayout.LayerField("Enemy Layer", target.enemyLayer);
        target.reach        = EditorGUILayout.IntSlider("Reach", target.reach, 0, 10);
        target.cooldownTime = EditorGUILayout.IntSlider("Cooldown Time (s)", target.cooldownTime, 1, 10);
        EditorGUILayout.LabelField("Current Cooldown", target.currentCooldown.ToString());
    }
Ejemplo n.º 15
0
 private void Awake()
 {
     enemiesList    = new List <GameObject>();
     ProjectilePool = new Queue <GameObject>();
     shootPointBlue = transform.GetChild(0).transform;
     PoolingProjectile();
     myTowerBehav = myTower.GetComponent <TowerBehaviour>();
     sysmsg       = GameObject.FindGameObjectWithTag("SystemMsg").GetComponent <SystemMessage>();
 }
Ejemplo n.º 16
0
 public void UpgradeTowerFireRate()
 {
     if ((resource.wood >= 50 + (50 * towerUpgradeCostFireRate)) && (resource.gold >= 50 + (50 * towerUpgradeCostFireRate)) && (resource.barracks >= 1))
     {
         TowerBehaviour.ChangeFireRate(0.1f);
         resource.RemoveGold(50 + (50 * towerUpgradeCostFireRate));
         resource.RemoveWood(50 + (50 * towerUpgradeCostFireRate));
         towerUpgradeCostFireRate++;
     }
 }
Ejemplo n.º 17
0
    public int GetSessionCurrencyCostForTower(TowerBehaviour tower)
    {
        // Based on the tower's base cost and the number of towers, returns the currency cost.
        int towersCount;

        towersBuilt.TryGetValue(tower.type, out towersCount);

        // TODO: maybe work on this formula?
        return(tower.sessionCurrencyCost + (int)(towersCount * Mathf.Sqrt(towersCount) * tower.sessionCurrencyAdditionalCostPerTower));
    }
 // Start is called before the first frame update
 void Start()
 {
     _image  = GetComponent <Image>();
     _button = GetComponent <Button>();
     _infos.gameObject.SetActive(false);
     mouse_in      = false;
     _active       = false;
     SelectedTower = selected_tower.GetComponent <TowerBehaviour>();
     _player       = Player.GetComponent <PlayerBehaviour>();
 }
Ejemplo n.º 19
0
 private void Awake()
 {
     enemiesList         = new List <GameObject>();
     projectilePool      = new Queue <GameObject>();
     shootPointTransform = transform.GetChild(0).transform;
     PoolingProjectile();
     myTowerBehav          = myTower.GetComponent <TowerBehaviour>();
     sysMsg                = GameObject.FindGameObjectWithTag("SystemMsg").GetComponent <SystemMessage>();
     towerProjectileHitObj = Instantiate(towerProjectileHitPrefab, transform.position, Quaternion.identity, transform);
     towerProjectileHitObj.SetActive(false);
 }
Ejemplo n.º 20
0
    // Update is called once per frame
    void Update()
    {
        /* Alternate behaviour: always go to nearest tower. */
        List <TowerBehaviour> towers       = gameplayManager.GetTowers();
        TowerBehaviour        closestTower = FindClosestTower(towers);

        if (closestTower)
        {
            shooter.GetComponent <EnemyShooterController> ().target = closestTower.transform;
        }
    }
Ejemplo n.º 21
0
    // select Tower, also enable descriptor
    void OnTowerSelected(TowerBehaviour obj)
    {
        selectedTower = obj;
        desc.changeDescriptor(selectedTower.getTowerType());
        desc.gameObject.SetActive(true);
        foreach (Button button in buttons)
        {
            button.interactable = true;
        }

        this.gameObject.SetActive(true);
    }
Ejemplo n.º 22
0
        void CreateATower(Vector2Int position, float height, Color color)
        {
            // Simple instantiation for now
            GameObject     tower          = GameObject.Instantiate(towerReference).gameObject;
            TowerBehaviour towerBehaviour = tower.GetComponent <TowerBehaviour>();

            tower.transform.parent   = centerAnchor;
            tower.transform.position = new Vector3(position.x, 0, position.y);
            towerBehaviour.SetHeight(height);

            tower.GetComponent <Renderer>().material.SetColor("_Color", color);
        }
Ejemplo n.º 23
0
    // Use this for initialization
    void Start()
    {
        gameCounter = GameObject.Find("GameCounter");
        gc          = gameCounter.GetComponent <GameCounter>();

        mTrackableBehaviour = GetComponent <TrackableBehaviour>();
        if (mTrackableBehaviour)
        {
            mTrackableBehaviour.RegisterTrackableEventHandler(this);
        }
        tb = turret.GetComponent <TowerBehaviour>();
    }
Ejemplo n.º 24
0
 public void ShowInfo(TowerBehaviour tower)
 {
     if (currentTower != null)
     {
         currentTower.GetComponent <Outline>().enabled = false;
         currentTower.ReturnRangeAttack.GetComponent <Outline>().enabled = false;
     }
     currentTower = tower;
     currentTower.GetComponent <Outline>().enabled = true;
     currentTower.ReturnRangeAttack.GetComponent <Outline>().enabled = true;
     gameObject.SetActive(true);
     ResetInfo(tower);
 }
Ejemplo n.º 25
0
        protected async void RepairLoop()
        {
            TowerBehaviour initialTowerTarget = TargetTower;

            while (!unitGravityBody.IsMoving && CurrentHealth > 0 && TargetTower == initialTowerTarget && TargetTower.CurrentHealth < 100)
            {
                initialTowerTarget = TargetTower;
                await new WaitForSeconds(0.5f);
                print($"Repaired tower {TargetTower.name} by {repairUnitData.RepairAmount}");
                TargetTower.Repair(repairUnitData.RepairAmount);
                await new WaitForSeconds(repairUnitData.RepairCooldown);
            }
        }
Ejemplo n.º 26
0
        protected async void AttackTowerLoop()
        {
            TowerBehaviour initialTowerTarget = TargetTower;

            while (!unitGravityBody.IsMoving && CurrentHealth > 0 && TargetTower == initialTowerTarget && TargetTower.CurrentHealth > 0)
            {
                initialTowerTarget = TargetTower;
                await new WaitForSeconds(0.5f);
                print($"Attacked tower {TargetTower.name} by {attackerUnitData.AttackAmount}");
                TargetTower.TakeDamage(attackerUnitData.AttackAmount);
                await new WaitForSeconds(attackerUnitData.AttackCooldown);
            }
        }
Ejemplo n.º 27
0
    private void OnTriggerEnter(Collider other)
    {
        if (!PhotonNetwork.isMasterClient)
        {
            return;
        }

        int tp = 6;

        if (other.name.Contains(enemyColor) && other.tag.Equals("Minion"))
        {
            AddEnemiesList(other);
            tp = 3;
        }
        else if (other.gameObject.layer.Equals(LayerMask.NameToLayer("Champion")))
        {
            if (other.GetComponent <ChampionBehavior>().Team.Equals(enemyColor))
            {
                AddEnemiesList(other);
                tp = 5;
            }
        }
        else if (other.tag.Equals("Tower"))
        {
            TowerBehaviour t = other.GetComponent <TowerBehaviour>();
            if (t.isCanAtkMe)
            {
                if (t.Team.Equals(enemyColor))
                {
                    AddEnemiesList(other);
                    tp = 4;
                }
            }
        }
        else if (other.tag.Equals("Suppressor") || other.tag.Equals("Nexus"))
        {
            SuppressorBehaviour s = other.GetComponent <SuppressorBehaviour>();
            if (s.isCanAtkMe)
            {
                if (s.Team.Equals(enemyColor))
                {
                    AddEnemiesList(other);
                    tp = 4;
                }
            }
        }
        if (tp < targetPriority)
        {
            TargetSearch();
        }
    }
Ejemplo n.º 28
0
    public void TowerBuilt(TowerBehaviour tower)
    {
        // Update session currency.
        sessionCurrencyManager.SubstractSessionCurrency(GetSessionCurrencyCostForTower(tower));

        // Update list of towers.
        allTowers.Add(tower);

        // Update number of active towers.
        int oldValue;

        towersBuilt.TryGetValue(tower.type, out oldValue);
        towersBuilt [tower.type] = oldValue + 1;
    }
Ejemplo n.º 29
0
    private void OnEnable()
    {
        myteam     = PhotonNetwork.player.GetTeam().ToString().ToLower();
        Icon       = GetComponent <SpriteRenderer>();
        MinionRed  = Resources.Load <Sprite>("Minimap/MIcon_Red_Minion");
        MinionBlue = Resources.Load <Sprite>("Minimap/MIcon_Blue_Minion") as Sprite;
        TowerRed   = Resources.Load <Sprite>("Minimap/MIcon_Red_Tower") as Sprite;
        TowerBlue  = Resources.Load <Sprite>("Minimap/MIcon_Blue_Tower") as Sprite;

        if (transform.parent.name.Contains("Minion"))
        {
            MBehavior = transform.parent.GetComponent <MinionBehavior>();
            if (myteam.Equals(MBehavior.team.ToString().ToLower()))
            {
                Icon.sprite = MinionBlue;
            }
            else
            {
                Icon.sprite = MinionRed;
            }
            transform.localPosition = new Vector3(0, 200, 0);
            transform.localRotation = Quaternion.Euler(90, 0, 0);
            transform.localScale    = new Vector3(3, 3, 3);
        }
        else if (transform.parent.name.Contains("Tower"))
        {
            TBehavior = transform.parent.GetComponent <TowerBehaviour>();
            if (myteam.Equals(TBehavior.Team.ToString().ToLower()))
            {
                Icon.sprite = TowerBlue;
            }
            else
            {
                Icon.sprite = TowerRed;
            }
        }
        else if (transform.parent.name.Contains("Nexus") || transform.parent.name.Contains("Suppressor"))
        {
            SBehavior = transform.parent.GetComponent <SuppressorBehaviour>();
            if (myteam.Equals(SBehavior.Team.ToString().ToLower()))
            {
                Icon.sprite = TowerBlue;
            }
            else
            {
                Icon.sprite = TowerRed;
            }
        }
    }
Ejemplo n.º 30
0
 private void OnTriggerExit(Collider other)
 {
     if (!other.name.Contains(myChampBehav.Team) && other.tag.Equals("Minion"))
     {
         RemoveEnemiesList(other);
     }
     else if (other.tag.Equals("Tower"))
     {
         TowerBehaviour behav = other.gameObject.GetComponent <TowerBehaviour>();
         if (!myChampBehav.Team.Equals(behav.Team))
         {
             RemoveEnemiesList(other);
         }
     }
 }
Ejemplo n.º 31
0
	void Start()
    {
        parent = transform.parent.gameObject.GetComponent<TowerBehaviour>();
    }