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(); }
/// <summary> /// 创建角色 /// </summary> /// <param name="characterData"></param> public void CreateCharacter(CharacterDataBean characterData) { if (!handler_Gold.GetTargetGold(transform.position)) { //没有金币了也不创建角色 return; } UserDataBean userData = handler_GameData.GetUserData(); if (characterData.characterType == CharacterTypeEnum.Player) { //如果超过上线则不创建 if (manager.GetPlayerCharacterNumber() >= userData.pirateNumber) { return; } } if (characterData.characterType == CharacterTypeEnum.Enemy) { //如果超过上线则不创建 if (manager.GetEnemyCharacterNumber() >= numberForEnemy) { return; } } Vector3 startPosition = handler_Scene.GetStartPosition(characterData.characterType); manager.CreateCharacter(startPosition, characterData); }
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; } }
public void InitData() { //打开UI manager_UI.OpenUI(UIEnum.GameMain); //加载模型 UserModelDataBean userModelData = handler_GameData.GetUserData().GetFirstUnlockModel(); if (userModelData != null) { handler_GameModel.LoadModel(userModelData, null); } else { } }
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(); }
private void Update() { UserDataBean userData = handler_GameData.GetUserData(); SetMoney(userData.GetUserMoney()); }