Example #1
0
    public float BuildingComplete(int level)
    {
        if (!_isSet)
        {
            SetUpComponent();
        }

        //Set new structure sprite
        if (level == 1)
        {
            this.transform.GetComponent <SpriteRenderer>().sprite = _builtSpriteLevel1;
        }
        else if (level == 2)
        {
            this.transform.GetComponent <SpriteRenderer>().sprite = _builtSpriteLevel2;
        }
        else if (level == 3)
        {
            this.transform.GetComponent <SpriteRenderer>().sprite = _builtSpriteLevel3;
        }
        //increment Population Capacity
        //Note: its okay that this is called again when Loading Save Data, becuz the save data gets called after and overwrites it thankfully
        BuildableObject scr = GetComponent <BuildableObject>();

        if (scr)
        {
            if (scr.getTeam() == 1)
            {
                ResourceManagerScript.Instance.incrementPopulationCapacity(capacityIncrementAmount[level] - capacityIncrementAmount[level - 1]);
            }
        }


        return(_hitpoints + (_hitPointGrowth * level));
    }
Example #2
0
    public void CheckEnemy()
    {
        BuildableObject b = this.GetComponent <BuildableObject>();

        if (b)
        {
            if (b.getTeam() == 2)
            {
                b.SetType("Outpost");
                b.SetLevel(1);
                b.BuildComplete();
            }
        }
    }
Example #3
0
    public void DemolishAction(int level)
    {
        //decrement Population Capacity
        BuildableObject scr = GetComponent <BuildableObject>();

        //get if on player team
        if (scr)
        {
            if (scr.getTeam() == 1)
            {
                ResourceManagerScript.Instance.incrementPopulationCapacity(-capacityIncrementAmount[level]);
            }
        }
    }
Example #4
0
    public void CheckEnemy()
    {
        BuildableObject b = this.GetComponent <BuildableObject>();

        if (b)
        {
            if (b.getTeam() == 2)
            {
                b.SetType("TownCenter");
                b.SetLevel(1); GameManager.Instance.setTownCenter(this);
                b.BuildComplete();
            }
            else
            {
                GameManager.Instance.setTownCenter(this);
            }
        }
    }
Example #5
0
 void OnTriggerEnter2D(Collider2D hitInfo)
 {
     // Put proper hit detection code here
     if (hitInfo.transform.parent)
     {
         Rodent          unknownRodent   = hitInfo.transform.parent.gameObject.GetComponent <Rodent>();
         PlayerStats     king            = hitInfo.transform.parent.gameObject.GetComponent <PlayerStats>();
         BuildableObject unknownBuilding = hitInfo.transform.parent.gameObject.GetComponent <BuildableObject>();
         if (unknownRodent)
         {
             if (unknownRodent.getTeam() == enemyTeam)
             {
                 unknownRodent.Damage(attackDamage);
                 Destroy(gameObject);
             }
         }
         else if (unknownBuilding)
         {
             if (unknownBuilding.getTeam() == enemyTeam && unknownBuilding.getType() != BuildableObject.BuildingType.TownCenter &&
                 unknownBuilding.getType() != BuildableObject.BuildingType.WoodPile && unknownBuilding.getType() != BuildableObject.BuildingType.StonePile &&
                 unknownBuilding.getType() != BuildableObject.BuildingType.GarbageCan)
             {
                 unknownBuilding.Damage(attackDamage);
                 Destroy(gameObject);
             }
         }
         else if (king)
         {
             if (enemyTeam == 1)
             {
                 king.Damage(attackDamage);
                 Destroy(gameObject);
             }
         }
     }
 }
Example #6
0
    public void AgroRadiusTrigger(Collider2D collision)
    {
        // Add a target to the list based on collisions
        //Debug.Log("Collided with " + collision.gameObject.ToString());

        //check that it HAS a parent

        if (collision.transform.parent)
        {
            Rodent          unknownRodent   = collision.transform.parent.gameObject.GetComponent <Rodent>();
            PlayerStats     king            = collision.transform.parent.gameObject.GetComponent <PlayerStats>();
            BuildableObject unknownBuilding = collision.transform.parent.gameObject.GetComponent <BuildableObject>();

            if (unknownRodent)
            {
                // Debug.LogWarning("Found Rodent" + unknownRodent.getName() + " on team:  " + unknownRodent.getTeam());
                // Rodent case
                if (unknownRodent.getTeam() == getEnemyTeam())
                {
                    _inRange.Add(unknownRodent.gameObject);
                    //Debug.Log("Rodent added to targets in range " + unknownRodent.getName() + unknownRodent.getTeam());
                    // print("called from AgroRadiusTrigger");
                    if (_inRange.Count == 1 && royalGuard)
                    {
                        print("Newest target added to queue: " + unknownRodent.gameObject);
                        currentTarget = unknownRodent.gameObject;
                    }
                }
            }
            else if (unknownBuilding)
            {
                if (unknownBuilding.getTeam() == getEnemyTeam())
                {
                    // Ensure this isn't a natural resource
                    if (unknownBuilding.getType() != BuildableObject.BuildingType.WoodPile && unknownBuilding.getType() != BuildableObject.BuildingType.StonePile &&
                        unknownBuilding.getType() != BuildableObject.BuildingType.GarbageCan)
                    {
                        _inRange.Add(unknownBuilding.gameObject);
                        if (_inRange.Count == 1 && royalGuard)
                        {
                            print("Newest target added to queue: " + currentTarget.ToString());
                            currentTarget = unknownBuilding.gameObject;
                        }
                    }
                }
            }

            // Special case: Finding King as an attack target
            else if (team == 2 && king)
            {
                _inRange.Add(king.gameObject);
                if (_inRange.Count == 1)
                {
                    print("Newest target added to queue: " + king.gameObject);
                    currentTarget = king.gameObject;
                    //Should probably update state to stop moving, and start attacking
                    MovingInIdle = false;
                }
            }
        }
    }