예제 #1
0
 void PopupResult(string result)
 {
     if (result == "yes")
     {
         BattlePvPManager.BattlePVPServerConnect(BattlePvPServerConnectType.BuyTicket, BuyTicketResult);
     }
 }
예제 #2
0
 void ShowRedTeam()
 {
     BattlePvPManager.InitRedTeam();
     for (int i = 0; i < userBattlePvPHeroSlotList.Count; i++)
     {
         userBattlePvPHeroSlotList[i].InitSlot();
     }
     for (int i = 0; i < BattlePvPManager.redTeamDataList.Count; i++)
     {
         HeroData hero = BattlePvPManager.redTeamDataList[i];
         userBattlePvPHeroSlotList[i].InitSlot(hero);
     }
 }
예제 #3
0
 public void OnClickSearchButton()
 {
     pvpPanel.SetActive(false);
     BattlePvPManager.BattlePVPServerConnect(BattlePvPServerConnectType.SelectBattlePvPInfo, ServerResult);
 }
예제 #4
0
 public void OnClickShowBattleLogButton()
 {
     BattlePvPManager.BattlePVPServerConnect(BattlePvPServerConnectType.SelectBattleLog, BattleLogServerResult);
 }
예제 #5
0
 void BattleStart()
 {
     BattlePvPManager.BattlePVPServerConnect(BattlePvPServerConnectType.BattleStart, BattleStartResult);
 }
예제 #6
0
 private void Awake()
 {
     Instance = this;
 }
예제 #7
0
파일: BattlePvP.cs 프로젝트: TimonYoon/Dev
    /// <summary> 배틀 진행 </summary>
    IEnumerator BattleProcess()
    {
        if (onStartBattle != null)
        {
            onStartBattle();
        }


        float startTime   = Time.time;
        float elapsedTime = 0f;

        //페이드인
        battlePhase   = BattlePhase.FadeIn;
        fadeInProcess = 0f;
        while (elapsedTime < battleFadeInTime)
        {
            fadeInProcess = elapsedTime / battleFadeInTime;

            elapsedTime = Time.time - startTime;

            yield return(null);
        }

        fadeInProcess = 1f;

        //전투 준비
        battlePhase = BattlePhase.Ready;

        //전투
        battlePhase = BattlePhase.Battle;

        //레드 팀 출전
        yield return(StartCoroutine(SpawnHero(BattleUnit.Team.Red)));

        //블루 팀 출전
        yield return(StartCoroutine(SpawnHero(BattleUnit.Team.Blue)));



        //스테이지 시작 trigger
        for (int i = 0; i < redTeamList.Count; i++)
        {
            BattleHero hero = redTeamList[i];
            for (int j = 0; j < hero.buffController.buffList.Count; j++)
            {
                Buff buff = hero.buffController.buffList[j];
                if (buff.baseData.trigger != "OnStartStage")
                {
                    continue;
                }

                if (buff.triggerProbability < UnityEngine.Random.Range(1, 10001))
                {
                    continue;
                }

                BattleUnit target = null;
                if (buff.baseData.triggerTarget == "SkillTarget")
                {
                    target = hero;
                }
                else if (buff.baseData.triggerTarget == "BuffTarget")
                {
                    target = hero;
                }

                if (target && !target.isDie)
                {
                    target.buffController.AttachBuff(hero, buff.baseData.triggerBuff, 1, buff);
                }
            }
        }
        for (int i = 0; i < blueTeamList.Count; i++)
        {
            BattleHero hero = blueTeamList[i];
            for (int a = 0; a < hero.buffController.buffList.Count; a++)
            {
                Buff buff = hero.buffController.buffList[a];
                if (buff.baseData.trigger != "OnStartStage")
                {
                    continue;
                }

                if (buff.triggerProbability < UnityEngine.Random.Range(1, 10001))
                {
                    continue;
                }

                BattleUnit target = null;
                if (buff.baseData.triggerTarget == "SkillTarget")
                {
                    target = hero;
                }
                else if (buff.baseData.triggerTarget == "BuffTarget")
                {
                    target = hero;
                }

                if (target && !target.isDie)
                {
                    target.buffController.AttachBuff(hero, buff.baseData.triggerBuff, 1, buff);
                }
            }
        }

        // 전투 시작 시간 체크
        pvpStartTime = Time.time + pvpTime;
        LoadingManager.Close();
        isWin = false;

        //아군 혹은 적군 전부 사망할 때 까지 전투 상태
        while (battlePhase == BattlePhase.Battle)
        {
            if (battleTeamList[0].isAllDie)
            {
                break;
            }

            if (battleTeamList[1].isAllDie)
            {
                isWin = true;
                break;
            }

            pvpReminingTime = pvpStartTime - Time.time;

            if (isGiveUp)
            {
                isWin = false;
                break;
            }

            // 전투시간 초과시
            if (pvpReminingTime <= 0)
            {
                // 남은 체력 비교
                isWin = CompareHp();
                break;
            }
            yield return(null);
        }

        battlePhase = BattlePhase.Finish;

        //페이드아웃
        battlePhase = BattlePhase.FadeOut;


        startTime      = Time.time;
        elapsedTime    = 0f;
        fadeOutProcess = 0f;
        while (elapsedTime < battleFadeOutTime)
        {
            fadeOutProcess = elapsedTime / battleFadeOutTime;

            elapsedTime = Time.time - startTime;

            yield return(null);
        }
        fadeOutProcess = 1f;

        BattlePvPManager.BattlePVPServerConnect(BattlePvPServerConnectType.PvPResult, ServerResult);

        yield break;
    }