Example #1
0
    /// <summary>
    /// Callback for the "createTower" event. Called when the upgrade is confirmed through the dialog box.
    /// </summary>
    /// <param name="type">Type of the tower to create</param>
    public void CreateTower(ETowerType type)
    {
        GameObject prefab;

        switch (type)
        {
        case ETowerType.Red:
            prefab = redPrefab;
            break;

        case ETowerType.Gold:
            prefab = goldPrefab;
            break;

        case ETowerType.Green:
            prefab = greenPrefab;
            break;

        default:
            prefab = null;
            break;
        }

        InstantiateTower(prefab);
    }
Example #2
0
    /// <summary>
    /// Callback for the Upgrade UI.
    /// <param name="type">String indicating the type of tower upgrade requested.</param>
    /// </summary>
    public void OnClick(string type)
    {
        Hide();
        ETowerType requestedType = ETowerTypeUtils.GetTowerType(type);

        showUpgradeDialog.Invoke(requestedType);
    }
Example #3
0
    /// <summary>
    /// Callback for "showMoveDialog" event. Generates content for the move confirmation
    /// dialog and enables it.
    /// </summary>
    /// <param name="type"></param>
    public void ShowMoveDialog(ETowerType type)
    {
        currentType = type;
        DialogConfig config = new DialogConfig();

        int    cost = currentType.GetMoveCost();
        string messageString;

        if (cost > GameState.CurrentCash)
        {
            messageString = "You don't have enough cash. Required: " + cost + ". You have $" + GameState.CurrentCash;

            // As both buttons won't do anything special in this case, you could leave the callback
            config.OK = new DialogButton(
                interactable: false,
                text: "Move"
                );
            config.Cancel = new DialogButton(
                onClick: OnCancelClickMove,
                text: "Cancel"
                );
        }
        else
        {
            messageString = "Moving " + type.GetString() + " will cost $" + cost + ". You have $" + GameState.CurrentCash;
            config.OK     = new DialogButton(
                onClick: OnOKClickMove,
                text: "Move"
                );
            config.Cancel = new DialogButton(
                onClick: OnCancelClickMove,
                text: "Cancel"
                );
        }

        config.Message = messageString;
        dialogSystem.Show(config);
    }
Example #4
0
 /// <summary>
 /// Instantiate the tower.
 /// </summary>
 /// <returns>True if successfully instantiated the tower.</returns>
 public bool PlaceTower()
 {
     placePoint = transform.position;
     if (!blocked)
     {
         if (toDestroy)
         {
             string     type          = ETowerTypeUtils.GetString(TowerObject.GetComponent <TowerType>().Type);
             ETowerType requestedType = ETowerTypeUtils.GetTowerType(type);
             showMoveDialog.Invoke(requestedType);
         }
         else
         {
             isActionComplete = true;
             Instantiate(TowerObject, placePoint, transform.rotation);
         }
         return(true);
     }
     else
     {
         return(false);
     }
 }
Example #5
0
    /// <summary>
    /// Get the cost of upgrade for the tower.
    /// </summary>
    /// <param name="type">The type of tower to upgrade to.</param>
    /// <returns>Integer cost for that tower.</returns>
    public static int GetCost(this ETowerType type)
    {
        switch (type)
        {
        case ETowerType.Base:
            return(100);

        case ETowerType.Gold:
            return(200);

        case ETowerType.Green:
            return(200);

        case ETowerType.Red:
            return(300);

        default:
        {
            Debug.LogError("Invalid tower type: " + type);
            return(0);
        }
        }
    }
Example #6
0
    /// <summary>
    /// Returns the string representation for the given tower type enum.
    /// </summary>
    /// <param name="type">Enum to get the string for</param>
    /// <returns>String for that type.</returns>
    public static string GetString(this ETowerType type)
    {
        switch (type)
        {
        case ETowerType.Base:
            return("base");

        case ETowerType.Gold:
            return("gold");

        case ETowerType.Green:
            return("green");

        case ETowerType.Red:
            return("red");

        default:
        {
            Debug.LogError("Invalid tower type: " + type);
            return(null);
        }
        }
    }
Example #7
0
    void OnClick()
    {
        if (type == ETowerType.NONE && houseAction.isActivity)
        {
            PlayManager playManager = PlayManager.Instance;
            if (playManager.objectUpgrade.Tower != houseController.gameObject)
            {
                playManager.resetUpgrade();
            }

            type = ETowerType.CHOOSED;

            panelTween.PlayForward();
            playManager.tempInit.panelDragonInfo.GetComponent <TweenPosition>().PlayReverse();

            playManager.objectUpgrade.Tower = houseController.gameObject;
            playManager.resetBuilding();

            // set range for tower
            playManager.setRangeTower(0, this.gameObject);

            // get range of tower current
            playManager.towerInfoController.rangeCurrent = 0;

            try
            {
                DragonHouseData nextLV = ReadDatabase.Instance.DragonInfo.House[houseController.ID.Level + 1];

                playManager.towerInfoController.setHouseInfo(houseController);
                playManager.towerInfoController.setNextHouseIcon(new STowerID(ETower.DRAGON, houseController.ID.Level + 1));

                // get range of tower next level
                playManager.towerInfoController.rangeUpgrade = 0;
            }
            catch
            {
                playManager.towerInfoController.setHouseInfo(houseController);
            }

            // show tutorial upgrade neu lan dau tien su dung
            if (PlayerInfo.Instance.tutorialInfo.tutorial_upgrade == 0 && WaveController.Instance.currentMap == 1)
            {
                PlayerInfo.Instance.tutorialInfo.tutorial_upgrade = 1;
                PlayerInfo.Instance.tutorialInfo.Save();

                playManager.tutorial.SetActive(true);
                UIButtonTutorialPlay.Instance.startTutorialUpgrade();
            }

            if (SceneState.Instance.State == ESceneState.ADVENTURE)
            {
                if (PlayTouchManager.Instance.skillTarget != null)
                {
                    if (PlayTouchManager.Instance.skillTarget != this.gameObject)
                    {
                        PlayDragonInfoSkillController temp = PlayTouchManager.Instance.skillTarget.GetComponent <PlayDragonInfoSkillController>();
                        temp.selected.GetComponent <TweenScale>().PlayReverse();
                        temp.selected.GetComponent <TweenAlpha>().PlayReverse();

                        temp.typeSprite.GetComponent <TweenPosition>().PlayReverse();
                        temp.typeSprite.GetComponent <TweenAlpha>().PlayReverse();
                        temp.isTap = false;

                        PlayTouchManager.Instance.skillTarget = null;
                        PlayTouchManager.Instance.setCurrentOffenseType(ESkillOffense.AOE);
                    }
                }
            }
        }
    }
Example #8
0
 public void reset()
 {
     type = ETowerType.NONE;
 }
Example #9
0
    void OnClick()
    {
        if (type == ETowerType.NONE && towerAction.isActivity)
        {
            PlayManager playManager = PlayManager.Instance;
            if (playManager.objectUpgrade.Tower != towerController.gameObject)
                playManager.resetUpgrade();

            type = ETowerType.CHOOSED;

            panelTween.PlayForward();

            if (playManager.tempInit.panelDragonInfo != null)
            {
                playManager.tempInit.panelDragonInfo.GetComponent<TweenPosition>().PlayReverse();
            }

            playManager.objectUpgrade.Tower = towerController.gameObject;
            playManager.resetBuilding();

            // set range for tower
            playManager.setRangeTower(towerController.attribute.Range, this.gameObject);

            // get range of tower current
            playManager.towerInfoController.rangeCurrent = towerController.attribute.Range;

			if(towerController is TowerPassiveController)
			{
				TowerPassiveController towerPassiveController = (TowerPassiveController)towerController;
				TowerPassiveController nextLV = (TowerPassiveController)towerPassiveController.nextLevel;
			 	
				if(nextLV != null)
				{

					playManager.towerPassiveInfoController.setTowerInfo(towerPassiveController);

					playManager.towerPassiveInfoController.setNextTowerIcon(nextLV.ID);
					playManager.towerPassiveInfoController.setValueInfo(towerPassiveController.ID,towerPassiveController.passiveAttribute.Describe
					                                                    );
				}
				else
				{

					playManager.towerPassiveInfoController.setTowerInfo(towerPassiveController);
					playManager.towerPassiveInfoController.setValueInfo(towerPassiveController.ID,towerPassiveController.passiveAttribute.Describe);
				}
			}
			else
			{
				TowerController nextLV = towerController.nextLevel;
				if (nextLV != null)
				{

					playManager.towerInfoController.setTowerInfo(towerController);
					
					playManager.towerInfoController.setNextTowerIcon(nextLV.ID);
					playManager.towerInfoController.setBulletInfo(towerController.ID, towerController.attackType.ToString(), towerController.bullet);
					// get range of tower next level
					playManager.towerInfoController.rangeUpgrade = nextLV.attribute.Range;
				}
				else
				{
					
					playManager.towerInfoController.setTowerInfo(towerController);
					playManager.towerInfoController.setBulletInfo(towerController.ID, towerController.attackType.ToString(), towerController.bullet);
				}
				
			}
			// show tutorial upgrade neu lan dau tien su dung
			if (PlayerInfo.Instance.tutorialInfo.tutorial_upgrade == 0 && WaveController.Instance.currentMap == 1
                && SceneState.Instance.State == ESceneState.ADVENTURE)
            {
                PlayerInfo.Instance.tutorialInfo.tutorial_upgrade = 1;
                PlayerInfo.Instance.tutorialInfo.Save();

                playManager.tutorial.SetActive(true);
                UIButtonTutorialPlay.Instance.startTutorialUpgrade();
            }

            if (SceneState.Instance.State == ESceneState.ADVENTURE)
            {
                if (PlayTouchManager.Instance.skillTarget != null)
                {
                    if (PlayTouchManager.Instance.skillTarget != this.gameObject)
                    {
                        PlayDragonInfoSkillController temp = PlayTouchManager.Instance.skillTarget.GetComponent<PlayDragonInfoSkillController>();
                        temp.selected.GetComponent<TweenScale>().PlayReverse();
                        temp.selected.GetComponent<TweenAlpha>().PlayReverse();

                        temp.typeSprite.GetComponent<TweenPosition>().PlayReverse();
                        temp.typeSprite.GetComponent<TweenAlpha>().PlayReverse();
                        temp.isTap = false;

                        PlayTouchManager.Instance.skillTarget = null;
                        PlayTouchManager.Instance.setCurrentOffenseType(ESkillOffense.AOE);
                    }
                }
            }
        }
    }
Example #10
0
 public void reset()
 {
     type = ETowerType.NONE;
 }
Example #11
0
    void OnClick()
    {
        if (type == ETowerType.NONE && towerAction.isActivity)
        {
            PlayManager playManager = PlayManager.Instance;
            if (playManager.objectUpgrade.Tower != towerController.gameObject)
            {
                playManager.resetUpgrade();
            }

            type = ETowerType.CHOOSED;

            panelTween.PlayForward();

            if (playManager.tempInit.panelDragonInfo != null)
            {
                playManager.tempInit.panelDragonInfo.GetComponent <TweenPosition>().PlayReverse();
            }

            playManager.objectUpgrade.Tower = towerController.gameObject;
            playManager.resetBuilding();

            // set range for tower
            playManager.setRangeTower(towerController.attribute.Range, this.gameObject);

            // get range of tower current
            playManager.towerInfoController.rangeCurrent = towerController.attribute.Range;

            if (towerController is TowerPassiveController)
            {
                TowerPassiveController towerPassiveController = (TowerPassiveController)towerController;
                TowerPassiveController nextLV = (TowerPassiveController)towerPassiveController.nextLevel;

                if (nextLV != null)
                {
                    playManager.towerPassiveInfoController.setTowerInfo(towerPassiveController);

                    playManager.towerPassiveInfoController.setNextTowerIcon(nextLV.ID);
                    playManager.towerPassiveInfoController.setValueInfo(towerPassiveController.ID, towerPassiveController.passiveAttribute.Describe
                                                                        );
                }
                else
                {
                    playManager.towerPassiveInfoController.setTowerInfo(towerPassiveController);
                    playManager.towerPassiveInfoController.setValueInfo(towerPassiveController.ID, towerPassiveController.passiveAttribute.Describe);
                }
            }
            else
            {
                TowerController nextLV = towerController.nextLevel;
                if (nextLV != null)
                {
                    playManager.towerInfoController.setTowerInfo(towerController);

                    playManager.towerInfoController.setNextTowerIcon(nextLV.ID);
                    playManager.towerInfoController.setBulletInfo(towerController.ID, towerController.attackType.ToString(), towerController.bullet);
                    // get range of tower next level
                    playManager.towerInfoController.rangeUpgrade = nextLV.attribute.Range;
                }
                else
                {
                    playManager.towerInfoController.setTowerInfo(towerController);
                    playManager.towerInfoController.setBulletInfo(towerController.ID, towerController.attackType.ToString(), towerController.bullet);
                }
            }
            // show tutorial upgrade neu lan dau tien su dung
            if (PlayerInfo.Instance.tutorialInfo.tutorial_upgrade == 0 && WaveController.Instance.currentMap == 1 &&
                SceneState.Instance.State == ESceneState.ADVENTURE)
            {
                PlayerInfo.Instance.tutorialInfo.tutorial_upgrade = 1;
                PlayerInfo.Instance.tutorialInfo.Save();

                playManager.tutorial.SetActive(true);
                UIButtonTutorialPlay.Instance.startTutorialUpgrade();
            }

            if (SceneState.Instance.State == ESceneState.ADVENTURE)
            {
                if (PlayTouchManager.Instance.skillTarget != null)
                {
                    if (PlayTouchManager.Instance.skillTarget != this.gameObject)
                    {
                        PlayDragonInfoSkillController temp = PlayTouchManager.Instance.skillTarget.GetComponent <PlayDragonInfoSkillController>();
                        temp.selected.GetComponent <TweenScale>().PlayReverse();
                        temp.selected.GetComponent <TweenAlpha>().PlayReverse();

                        temp.typeSprite.GetComponent <TweenPosition>().PlayReverse();
                        temp.typeSprite.GetComponent <TweenAlpha>().PlayReverse();
                        temp.isTap = false;

                        PlayTouchManager.Instance.skillTarget = null;
                        PlayTouchManager.Instance.setCurrentOffenseType(ESkillOffense.AOE);
                    }
                }
            }
        }
    }