public void InitStageInfo()
 {
     stageState          = new UserStageStateData();
     stageActionInfo     = new battleActionData();
     stageReward         = new stageRewardData();
     userInfo.sceneState = SCENE_STATE.Lobby;
 }
 public void InitUserInfo()
 {
     userInfo         = null;
     userMainCharInfo = new MainCharInfo();
     userLobbyInfo    = new UserLobbyInfo();
     servantDic       = new Dictionary <int, UserServantData>();
     monsterDic       = new Dictionary <int, UserMonsterData>();
     equipmentDic     = new Dictionary <int, UserEquipmentData>();
     weaponDic        = new Dictionary <int, UserEquipmentData>();
     armorDic         = new Dictionary <int, UserEquipmentData>();
     accessoryDic     = new Dictionary <int, UserEquipmentData>();
     itemDic          = new Dictionary <int, UserItemData>();
     partyInfo        = new UserPartyData();
     stageState       = new UserStageStateData();
     stageActionInfo  = new battleActionData();
     stageReward      = new stageRewardData();
 }
Example #3
0
    // 배틀데이터를 받아와 공격 ( 메인 배틀 한턴 )
    public IEnumerator BattleStart()
    {
        BattleUIManager.Inst.StageInfoOff();
        isBattleStart = true;

        battleActionData stageActionInfo = UserDataManager.Inst.GetStageAction();

        UserDataManager.Inst.stageState.turn = stageActionInfo.turn;

        for (int i = 0; i < stageActionInfo.character_action_list.Count; i++)
        {
            if (stageActionInfo.character_action_list[i].action_type == 2)
            {
                character[stageActionInfo.character_action_list[i].my_position].GetComponent <BasicAttack>().Attack(stageActionInfo.character_action_list[i]);
            }
            else if (stageActionInfo.character_action_list[i].action_type == 3)
            {
                if (stageActionInfo.character_action_list[i].my_position < 10)
                {
                    BattleUIManager.Inst.MySkAction(GetCharState(stageActionInfo.character_action_list[i].my_position).activeSkillList[0].id);
                }
                else
                {
                    BattleUIManager.Inst.EnemySkAction(GetCharState(stageActionInfo.character_action_list[i].my_position).activeSkillList[0].id);
                }

                SkillManager.Inst.SendMessage("Skill_" + GetCharState(stageActionInfo.character_action_list[i].my_position).activeSkillList[0].id.ToString(), stageActionInfo.character_action_list[i]);
            }

            if (i + 1 != stageActionInfo.character_action_list.Count &&
                stageActionInfo.character_action_list[i].action_info_list.Count != 0 &&
                stageActionInfo.character_action_list[i + 1].action_info_list[0].target_position == stageActionInfo.character_action_list[i].my_position &&
                stageActionInfo.character_action_list[i + 1].my_position == stageActionInfo.character_action_list[i].action_info_list[0].target_position
                )
            {
                yield return(new WaitForSeconds(7.0f));
            }
            else
            {
                yield return(new WaitForSeconds(3.0f));
            }
            isAfterDelay = false;
        }

        yield return(new WaitForSeconds(3.0f));

        for (int i = 0; i < stageActionInfo.character_buff_list.Count; i++)
        {
            actionInfo tump = new actionInfo();
            tump.damage          = stageActionInfo.character_buff_list[i].damage;
            tump.target_position = stageActionInfo.character_buff_list[i].position;
            if (stageActionInfo.character_buff_list[i].type == 1 || stageActionInfo.character_buff_list[i].type == 3)
            {
                DamageManager.Inst.DamageShow(tump, true, ELEMENT_TYPE.None, false);
            }
            else if (stageActionInfo.character_buff_list[i].type == 2 || stageActionInfo.character_buff_list[i].type == 4)
            {
                DamageManager.Inst.DamageShow(tump, false, ELEMENT_TYPE.None, false);
            }

            yield return(new WaitForSeconds(0.1f));
        }

        isBattleStart = false;

        turnIndex++;
        BattleUIManager.Inst.StageInfoOn();

        int myHp = 0, enemyHp = 0;

        for (int i = 0; i < 10; i++)
        {
            myHp    += status[i].NowHp;
            enemyHp += status[i + 10].NowHp;
        }

        if (enemyHp == 0)
        {
#if UNITY_EDITOR
            Cheat.Inst.RequestStageRewardCheat();
#else
            if (UserDataManager.Inst.GetUserInfo().sceneState == SCENE_STATE.PVP)
            {
                PacketManager.Inst.RequestPVPResult();
            }
            else
            {
                PacketManager.Inst.RequestStageReward();
            }
#endif
        }
        else if (myHp == 0)
        {
            battleFail.SetActive(true);
        }
        else if (isAuto)
        {
            yield return(new WaitForSeconds(2.0f));

            TurnEnd();
        }
    }
 public void SetStageAction(battleActionData getBattleActionData)
 {
     stageActionInfo = getBattleActionData;
 }