/// <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); }
/// <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); }
/// <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); }
/// <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); } }
/// <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); } } }
/// <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); } } }
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); } } } } }
public void reset() { type = ETowerType.NONE; }
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); } } } } }
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); } } } } }