private IEnumerator PlayerSkillThreeAttack() { state = FightState.ENEMYTURN; bool isDead = BattleLogicManager.AttackWithSkill(playerUnit, enemyUnit, playerUnit.equippedSkills[2]); enemyHUD.SetHP(enemyUnit.currentHP); playerHUD.SetMP(playerUnit.CurrentMP); yield return(new WaitForSeconds(2f)); if (isDead) { state = FightState.WON; playerUnit.GainExperience(enemyUnit.rewardExp); playerUnit.GainGold(enemyUnit.rewardGold); EndFight(playerUnit, enemyUnit, 1); } else { enemyHUD.SetHP(enemyUnit.currentHP); enemyHUD.SetMP(enemyUnit.CurrentMP); playerHUD.SetHP(playerUnit.currentHP); playerHUD.SetMP(playerUnit.CurrentMP); StartCoroutine(EnemyTurn()); } }
public void Init(BattleData _battleData) { m_BattleData = _battleData; m_BattleLogicMgr = new BattleLogicManager(m_BattleData, m_BattleData.mSeed); m_BattleScene = new BattleScene(m_BattleLogicMgr); m_TimeObj = TimerHelper.AddFrame(m_BattleData.mBattleKey, OnUpdate); }
/// <summary> /// 初始化使用Udp网络的游戏数据 /// </summary> public void InitUdpGame() { LoadJsonData(); m_PlayerMoveManager = new PlayerMoveManager(); m_BattleLogicManager = new BattleLogicManager(); m_BulletManager = new BulletManager(); m_SpawnManager = new SpawnManager(); m_GridManager = new GridManager(); m_GridManager.InitGrid(); }
private IEnumerator EnemyTurn() { //enemy ai goes here enemyTurnIndicator.SetActive(true); playerTurnIndicator.SetActive(false); currentRound += 0.5f; yield return(new WaitForSeconds(1f)); bool isDead = false; bool skillUsed = false; foreach (var skill in enemyUnit.equippedSkills) { if (enemyUnit.CurrentMP >= skill.EnergyCost && skillUsed == false) { int attackChoice = Random.Range(0, 2); if (attackChoice == 1) { skillUsed = true; isDead = BattleLogicManager.AttackWithSkill(enemyUnit, playerUnit, skill); } } } if (skillUsed == false) { isDead = BattleLogicManager.PerformNormalAttack(enemyUnit, playerUnit); } playerHUD.SetHP(playerUnit.currentHP); enemyHUD.SetMP(enemyUnit.CurrentMP); yield return(new WaitForSeconds(1f)); if (isDead) { state = FightState.LOST; EndFight(enemyUnit, playerUnit, 0); } else { enemyHUD.SetHP(enemyUnit.currentHP); enemyHUD.SetMP(enemyUnit.CurrentMP); playerHUD.SetHP(playerUnit.currentHP); playerHUD.SetMP(playerUnit.CurrentMP); state = FightState.PLAYERTURN; StartCoroutine(PlayerTurn()); roundDisplayText.text = $"Round: {(int)currentRound}"; } }
public BattleScene(BattleLogicManager battleLogicMgr) { m_BattleLogicMgr = battleLogicMgr; }