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; } }
/// <summary> /// 根据等级插入数据 /// </summary> /// <param name="gameLevelData"></param> public void InsertDataByLevel(GameLevelBean gameLevelData) { if (base.BaseDeleteData("level", gameLevelData.level + "")) { base.BaseInsertData(tableNameForMain, gameLevelData); } }
protected void SetGoldPileData() { goldPileData = ""; for (int i = 0; i < listGoldPile.Length; i++) { GameObject itemObj = listGoldPile[i]; if (itemObj == null) { continue; } goldPileData += (itemObj.name + ":" + itemObj.transform.position.x + "," + itemObj.transform.position.y + "," + itemObj.transform.position.z + "|"); DestroyImmediate(itemObj); } if (CheckUtil.StringIsNull(goldPileData)) { return; } List <GameLevelBean> listData = gameLevelService.QueryDataByLevel(levelForGame); if (!CheckUtil.ListIsNull(listData)) { GameLevelBean gameLevelData = listData[0]; gameLevelData.gold_pile = goldPileData; gameLevelService.InsertDataByLevel(gameLevelData); } }
public void GetGameLevelDataSuccess(GameLevelBean gameLevelData, Action <GameLevelBean> action) { this.gameLevelData = gameLevelData; if (callBack != null) { callBack.GetGameLevelDataSuccess(gameLevelData, action); } }
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 IEnumerator CoroutineForEnemySpeedChange() { isBuildEnemy = true; GameLevelBean gameLevelData = handler_Game.GetGameLevelData(); while (isBuildEnemy) { yield return(new WaitForSeconds(gameLevelData.enemy_speed_interval)); AddCharacterSpeed(CharacterTypeEnum.Enemy, gameLevelData.enemy_speed_incremental); } }
public void GetGameLevelDataByLevel(int level, Action <GameLevelBean> action) { GameLevelBean gameLevelData = GetModel().GetGameLevelDataByLevel(level); if (gameLevelData == null) { GetView().GetGameLevelDataFail("没有数据"); } else { GetView().GetGameLevelDataSuccess(gameLevelData, action); } }
public void GetGameLevelDataById(long id, Action <GameLevelBean> action) { GameLevelBean gameLevelData = GetModel().GetGameLevelDataById(id); if (gameLevelData == null) { GetView().GetGameLevelDataFail("没有数据"); } else { GetView().GetGameLevelDataSuccess(gameLevelData, action); } }
public IEnumerator CoroutineForEnemyLifeChange(CharacterDataBean enemyCharacterData) { isBuildEnemy = true; GameLevelBean gameLevelData = handler_Game.GetGameLevelData(); while (isBuildEnemy) { yield return(new WaitForSeconds(gameLevelData.enemy_life_interval)); enemyCharacterData.AddMaxLife(gameLevelData.enemy_life_incremental); SetCharacterLife(CharacterTypeEnum.Enemy, enemyCharacterData.maxLife); } }
public IEnumerator CoroutineForCreateEnmeyCharacter(CharacterDataBean baseCharacterData) { isBuildEnemy = true; GameLevelBean gameLevelData = handler_Game.GetGameLevelData(); while (isBuildEnemy) { CharacterDataBean enemyCharacterData = baseCharacterData.Clone(); CreateCharacter(enemyCharacterData); if (gameLevelData.enemy_build_interval <= 0) { gameLevelData.enemy_build_interval = 1; } yield return(new WaitForSeconds(gameLevelData.enemy_build_interval)); } }
protected void GetGoldPileData() { //清空数据 for (int i = 0; i < listGoldPile.Length; i++) { GameObject itemObj = listGoldPile[i]; DestroyImmediate(itemObj); } List <GameLevelBean> listData = gameLevelService.QueryDataByLevel(levelForGame); if (!CheckUtil.ListIsNull(listData)) { GameLevelBean gameLevelData = listData[0]; string goldPileData = gameLevelData.gold_pile; if (CheckUtil.StringIsNull(goldPileData)) { return; } string[] listGoldPileArray = StringUtil.SplitBySubstringForArrayStr(goldPileData, '|'); sizeForGoldPile = listGoldPileArray.Length; listGoldPile = new GameObject[sizeForGoldPile]; for (int i = 0; i < listGoldPileArray.Length; i++) { string itemGoldPileData = listGoldPileArray[i]; string[] pileTempData = StringUtil.SplitBySubstringForArrayStr(itemGoldPileData, ':'); pileTempData[0] = pileTempData[0].Replace("(Clone)", ""); GameObject objModel = Resources.Load("GoldPile/" + pileTempData[0]) as GameObject; GameObject objItem = Instantiate(objModel); objItem.name = objItem.name.Replace("(Clone)", ""); objItem.SetActive(true); float[] pileDataPosition = StringUtil.SplitBySubstringForArrayFloat(pileTempData[1], ','); objItem.transform.position = new Vector3(pileDataPosition[0], pileDataPosition[1], pileDataPosition[2]); listGoldPile[i] = objItem; } Resources.UnloadUnusedAssets(); } }
public void GetGameLevelDataSuccess(GameLevelBean gameLevelData, Action <GameLevelBean> action) { action?.Invoke(gameLevelData); }