Example #1
0
    /// <summary>
    /// Start this instance.
    /// </summary>
    void Start()
    {
        anim = GetComponent <Animator>();
        Debug.Assert(spawnPoint, "Wrong initial settings");
        BuildingPlace buildingPlace = GetComponentInParent <BuildingPlace>();

        defPoint        = buildingPlace.GetComponentInChildren <DefendPoint>();
        cooldownCounter = cooldown;
        // Upgrade all existing defenders on tower build
        Dictionary <GameObject, Transform> oldDefenders = new Dictionary <GameObject, Transform>();

        foreach (KeyValuePair <GameObject, Transform> pair in defPoint.activeDefenders)
        {
            oldDefenders.Add(pair.Key, pair.Value);
        }
        defPoint.activeDefenders.Clear();
        foreach (KeyValuePair <GameObject, Transform> pair in oldDefenders)
        {
            // Spawn new defender in the same place
            Spawn(pair.Key.transform, pair.Value);
        }
        // Destroy old defenders
        foreach (KeyValuePair <GameObject, Transform> pair in oldDefenders)
        {
            Destroy(pair.Key);
        }
    }
 /// <summary>
 /// Awake this instance.
 /// </summary>
 void Awake()
 {
     cooldownCounter = cooldown;
     aiBehavior      = GetComponent <AiBehavior>();
     defPoint        = transform.parent.GetComponentInChildren <DefendPoint>();
     Debug.Assert(aiBehavior && spawnPoint && defPoint, "Wrong initial parameters");
 }
Example #3
0
    /// <summary>
    /// Start this instance.
    /// </summary>
    void Start()
    {
        BuildingPlace buildingPlace = GetComponentInParent <BuildingPlace>();

        defendPoint = buildingPlace.GetComponentInChildren <DefendPoint>();
        tower       = GetComponentInParent <Tower>();
        Debug.Assert(defendPoint && tower, "Wrong initial settings");
    }
Example #4
0
    // Start is called before the first frame update
    void Start()
    {
        BuildingPlace buildingPlace = GetComponentInParent <BuildingPlace>();

        defendPoint     = buildingPlace.GetComponentInChildren <DefendPoint>();
        coolDownCounter = coolDown;
        //升级当前已生成的士兵
        foreach (Transform point in defendPoint.GetDefendPoint())
        {
            //如果防守点已经有士兵
            AIBehavior soldier = point.GetComponentInChildren <AIBehavior>();
            if (soldier != null)
            {
                //在相同的坐标上生成新的
                Spawn(soldier.transform, point);
                //摧毁之前的士兵
                Destroy(soldier.gameObject);
            }
        }
    }
Example #5
0
    /// <summary>
    /// Start this instance.
    /// </summary>
    void Start()
    {
        Debug.Assert(spawnPoint, "Wrong initial settings");
        IPlacementArea placementArea = GetComponentInParent <IPlacementArea>();

        defPoint        = placementArea.transform.gameObject.GetComponentInChildren <DefendPoint>();
        cooldownCounter = cooldown;
        // Upgrade all existing defenders on tower build
        foreach (Transform point in defPoint.GetDefendPoints())
        {
            // If defend point already has defender
            Targetable defender = point.GetComponentInChildren <Targetable>();
            if (defender != null)
            {
                // Spawn new defender in the same place
                Spawn(defender.transform, point);
                // Destroy old defender
                Destroy(defender.gameObject);
            }
        }
    }
Example #6
0
    /// <summary>
    /// Start this instance.
    /// </summary>
    void Start()
    {
        Debug.Assert(spawnPoint, "Wrong initial settings");
        BuildingPlace buildingPlace = GetComponentInParent <BuildingPlace>();

        defPoint        = buildingPlace.GetComponentInChildren <DefendPoint>();
        cooldownCounter = cooldown;
        // Upgrade all existing defenders on tower build
        foreach (Transform point in defPoint.GetDefendPoints())
        {
            // If defend point already has defender
            AiBehavior defender = point.GetComponentInChildren <AiBehavior>();
            if (defender != null)
            {
                // Spawn new defender in the same place
                Spawn(defender.transform, point);
                // Destroy old defender
                Destroy(defender.gameObject);
            }
        }
    }