public void CreateShip(CharacterTypeEnum characterType, long shipId, Action callBack) { CptUtil.RemoveChild(transform); GameLevelBean gameLevelData = handler_Game.GetGameLevelData(); GameBean gameData = handler_Game.GetGameData(); switch (characterType) { case CharacterTypeEnum.Player: manager.GetShipDataById((shipData) => { shipData.ship_damage = gameData.playerForDamage; shipData.characterType = CharacterTypeEnum.Player; shipData.intervalForFire = handler_GameData.GetFireCD(); StartCoroutine(CoroutineForCreateShip(shipData, callBack)); }, shipId); break; case CharacterTypeEnum.Enemy: manager.GetShipDataById((shipData) => { shipData.intervalForFire = gameLevelData.enemy_fire_interval; shipData.characterType = CharacterTypeEnum.Enemy; shipData.limitForFireNumber = gameLevelData.enemy_fire_limit_number; StartCoroutine(CoroutineForCreateShip(shipData, callBack)); }, shipId); break; } }
public void OnClickForAddSpeed() { GameDataHandler gameDataHandler = uiComponent.handler_GameData; GameBean gameData = uiComponent.handler_Game.GetGameData(); UserDataBean userData = gameDataHandler.GetUserData(); int maxLevel = uiComponent.handler_GameData.GetLevelMaxForSpeed(); gameDataHandler.GetLevelLevelUpDataForSpeed(gameData.levelForSpeed, out float addSpeed, out long preSpeedGold); if (!gameData.HasEnoughGold(preSpeedGold)) { //钱不够 uiComponent.manager_Msg.ShowMsg(GameCommonInfo.GetUITextById(1001)); return; } bool isLevelUp = gameData.LevelUpForPlayerSpeed(maxLevel, addSpeed); if (!isLevelUp) { //升级失败 uiComponent.manager_Msg.ShowMsg(GameCommonInfo.GetUITextById(1002)); return; } //支付金币 gameData.PayGold(preSpeedGold); uiComponent.handler_Character.SetCharacterSpeed(CharacterTypeEnum.Player, gameData.GetPlayerSpeed() + userData.speed); uiComponent.handler_Character.RefreshCharacter(CharacterTypeEnum.Player); RefreshUI(); }
public void OnClickForAddGoldPrice() { UserDataBean userData = uiComponent.handler_GameData.GetUserData(); GameDataHandler gameDataHandler = uiComponent.handler_GameData; GameBean gameData = uiComponent.handler_Game.GetGameData(); int maxLevel = uiComponent.handler_GameData.GetLevelMaxForGoldPrice(); gameDataHandler.GetLevelUpDataForGoldPrice(gameData.levelForGoldPrice, out int addPrice, out long prePriceGold); if (!gameData.HasEnoughGold(prePriceGold)) { //钱不够 uiComponent.manager_Msg.ShowMsg(GameCommonInfo.GetUITextById(1001)); return; } bool isLevelUp = gameData.LevelUpForGoldPrice(maxLevel, addPrice); if (!isLevelUp) { //升级失败 uiComponent.manager_Msg.ShowMsg(GameCommonInfo.GetUITextById(1002)); return; } //支付金币 gameData.PayGold(prePriceGold); RefreshUI(); }
/// <summary> /// 获取游戏场景等级 /// </summary> /// <returns></returns> public void GetGameLevelScene(out float levelPro, out int level) { GameBean gameData = GetGameData(); levelPro = gameData.levelProgressForScene; level = gameData.levelForScene; }
public override void RefreshUI() { base.RefreshUI(); ui_ChildAttributeAdd.RefreshUI(); GameBean gameData = handler_Game.GetGameData(); ui_Battle.SetData(gameData.playerGoldNumber, gameData.enemyGoldNumber); }
public void ChangeGameStatus(GameStatusEnum gameStatus) { GetGameData().gameStatus = gameStatus; switch (gameStatus) { case GameStatusEnum.GamePre: //扫描地形 //AstarPath.active.ScanAsync(); //初始化数据 handler_GameData.GetPlayerInitData(out float playerSpeed, out int playerLife); GameBean gameData = new GameBean(playerSpeed, playerLife); SetGameData(gameData); manager_UI.RefreshAllUI(); //打开UI manager_UI.OpenUIAndCloseOther <UIGameStart>(UIEnum.GameStart); //创建金币 GameLevelBean gameLevelData = GetGameLevelData(); handler_Gold.CreateGold(gameLevelData.gold_pile, gameLevelData.gold_number, gameLevelData.gold_id); break; case GameStatusEnum.GameIng: //开启角色创建 UserDataBean userData = handler_GameData.GetUserData(); CharacterDataBean playerCharacterData = new CharacterDataBean(CharacterTypeEnum.Player) { life = userData.life + GetGameData().playerForLife, maxLife = userData.life + GetGameData().playerForLife, moveSpeed = userData.speed + GetGameData().GetPlayerSpeed() }; CharacterDataBean enemyCharacterData = new CharacterDataBean(CharacterTypeEnum.Enemy) { life = GetGameLevelData().enemy_life, maxLife = GetGameLevelData().enemy_life, moveSpeed = GetGameLevelData().enemy_speed }; StartCoroutine(handler_Character.InitCreateCharacter(playerCharacterData, enemyCharacterData, GetGameLevelData().enemy_number)); //创建船 Action enemyShipCallBack = () => { //开启敌舰自动攻击 handler_Ship.OpenShipFireAutoForEnemy(); }; handler_Ship.CreateShip(CharacterTypeEnum.Player, 1, null); handler_Ship.CreateShip(CharacterTypeEnum.Enemy, GetGameLevelData().enemy_ship_id, enemyShipCallBack); //开启经验计算 StartCoroutine(CoroutineForLevelProgress()); break; case GameStatusEnum.GameEnd: //打开UI manager_UI.OpenUIAndCloseOther <UIGameEnd>(UIEnum.GameEnd); CleanGameData(); break; } }
void Start() { GameBean gameData = new GameBean(); gameData.SetGameState(GameStateEnum.Init); GameHandler.Instance.manager.SetGameData(gameData); BuildingHandler.Instance.InitSceneData(1, () => { gameData.SetGameState(GameStateEnum.Gaming); }); }
private void Update() { GameBean gameData = GameHandler.Instance.manager.GetGameData(); if (gameData.GetGameState() != GameStateEnum.Gaming) { return; } HandleForMove(); HandleForLR(); }
public IEnumerator CoroutineForLevelProgress() { GameBean gameData = GetGameData(); while (GetGameData().gameStatus == GameStatusEnum.GameIng) { yield return(new WaitForSeconds(0.1f)); float exp = handler_GameData.GetLevelSceneExp(gameData.levelForScene); gameData.AddLevelProgressForScene(exp); } }
public void SetButtonStatusForAttribute(Button btAttribute, long levelUpMoney) { GameBean gameData = uiComponent.handler_Game.GetGameData(); if (gameData.HasEnoughGold(levelUpMoney)) { btAttribute.interactable = true; } else { btAttribute.interactable = false; } }
/// <summary> /// 升级 /// </summary> public void LevelUpScene(int addMoneyRate, float deleyAddGoldTime) { GameBean gameData = manager.GetGameData(); if (gameData.levelProgressForScene < 1) { return; } int totalLevel = gameData.levelForSpeed + gameData.levelForGoldPrice + gameData.levelForPirateNumber; long addMoney = handler_GameData.GetLevelSceneMoney(totalLevel); gameData.LevelUpForScene(); StartCoroutine(CoroutineForDelayAddGold(deleyAddGoldTime, addMoneyRate * addMoney)); }
public void OnClickForLevelUp() { GameBean gameData = handler_Game.GetGameData(); if (gameData.levelProgressForScene < 1) { return; } int totalLevel = gameData.levelForSpeed + gameData.levelForPirateNumber + gameData.levelForGoldPrice; long addMoney = handler_GameData.GetLevelSceneMoney(totalLevel); DialogBean dialogData = new DialogBean(); DialogForLevelUpView dialogForLevelUp = manager_Dialog.CreateDialog <DialogForLevelUpView>(DialogEnum.LevelUp, this, dialogData); dialogForLevelUp.SetData(addMoney); }
public void RefreshUI() { GameBean gameData = uiComponent.handler_Game.GetGameData(); GameDataHandler gameDataHandler = uiComponent.handler_GameData; gameDataHandler.GetLevelLevelUpDataForSpeed(gameData.levelForSpeed, out float addSpeed, out long preSpeedGold); SetTextForAttribute(ui_TvSpeedLevel, ui_TvSpeedMoney, gameData.levelForSpeed, gameDataHandler.GetLevelMaxForSpeed(), preSpeedGold); SetButtonStatusForAttribute(ui_BtSpeedAdd, preSpeedGold); gameDataHandler.GetLevelLevelUpDataForNumber(gameData.levelForPirateNumber, out int addNumber, out long preNumberGold); SetTextForAttribute(ui_TvNumberLevel, ui_TvNumberMoney, gameData.levelForPirateNumber, gameDataHandler.GetLevelMaxForNumber(), preNumberGold); SetButtonStatusForAttribute(ui_BtNumberAdd, preNumberGold); gameDataHandler.GetLevelUpDataForGoldPrice(gameData.levelForGoldPrice, out int addPrice, out long prePriceGold); SetTextForAttribute(ui_TvGoldPriceLevel, ui_TvGoldPriceMoney, gameData.levelForGoldPrice, gameDataHandler.GetLevelMaxForGoldPrice(), prePriceGold); SetButtonStatusForAttribute(ui_BtGoldPriceAdd, prePriceGold); }
private void Update() { GameBean gameData = handler_Game.GetGameData(); if (gameData != null) { SetGold(gameData.gold); } if (handler_Game != null) { handler_Game.GetScore(out long playerGold, out long enmeyGold); SetScore(playerGold, enmeyGold); SetGoldProgress(handler_Gold.GetGoldMaxNumber(), handler_Gold.GetGoldNumber()); handler_Game.GetGameLevelScene(out float gameLevelSceneProgress, out int gameLevelScene); ui_LevelUp.SetLevelUpPro(gameLevelScene, gameLevelSceneProgress); } }
public void OnClickForAddNumber() { GameBean gameData = uiComponent.handler_Game.GetGameData(); GameDataHandler gameDataHandler = uiComponent.handler_GameData; UserDataBean userData = gameDataHandler.GetUserData(); int maxLevel = uiComponent.handler_GameData.GetLevelMaxForNumber(); gameDataHandler.GetLevelLevelUpDataForNumber(gameData.levelForPirateNumber, out int addNumber, out long preNumberGold); if (!gameData.HasEnoughGold(preNumberGold)) { //钱不够 uiComponent.manager_Msg.ShowMsg(GameCommonInfo.GetUITextById(1001)); return; } bool isLevelUp = gameData.LevelUpForPlayerPirateNumber(maxLevel, addNumber); if (!isLevelUp) { //升级失败 uiComponent.manager_Msg.ShowMsg(GameCommonInfo.GetUITextById(1002)); return; } //支付金币 gameData.PayGold(preNumberGold); //生成海盗 for (int i = 0; i < addNumber; i++) { CharacterDataBean playerCharacterData = new CharacterDataBean(CharacterTypeEnum.Player) { life = userData.life + gameData.playerForLife, maxLife = userData.life + gameData.playerForLife, moveSpeed = userData.speed + gameData.GetPlayerSpeed() }; uiComponent.handler_Character.CreateCharacter(playerCharacterData); } RefreshUI(); }
public void SetGameData(GameBean gameData) { this.gameData = gameData; }
public void AddUserGold(long number) { GameBean gameData = manager.GetGameData(); gameData.AddGold(number); }
public void SetGameData(GameBean gameData) { manager.SetGameData(gameData); }