Exemplo n.º 1
0
    public void initEnterData(SceneEnterData data)
    {
        if (!enabled)
        {
            return;
        }

        ScenePreInfoData preInfo = _scene.getPreInfo();

        if (preInfo != null)
        {
            RoleShowData[] signedPlayers = _scene.getPreInfo().signedPlayers;

            if (signedPlayers != null)
            {
                foreach (RoleShowData v in signedPlayers)
                {
                    _signedPlayers.put(v.playerID, v);
                }
            }
        }

        BattleSceneData bData = data.battleData;

        onRefreshBattleStateByServer(bData.state, bData.timeTick);

        if (_scene.isDriveAll())
        {
            //客户端场景,直接进入pre状态
            switchState(BattleStateType.Pre);
        }
    }
Exemplo n.º 2
0
    private void Awake()
    {
        pathToSaveFile = Application.streamingAssetsPath + "/save.json";

        if (!File.Exists(pathToSaveFile))
        {
            ProgressData save = new ProgressData();

            BattleSceneData sceneData = _battleScenesManager.GetBattleSceneDataById(BattleScenesManager.SceneName.Tutorial01);

            LevelData levelData = new LevelData();
            levelData.SceneName = sceneData.TargetSceneName;

            foreach (ObjectiveData objective in sceneData.Objectives)
            {
                levelData.Objectives.Add(objective);
            }

            foreach (ObjectiveData quest in sceneData.Quests)
            {
                levelData.Quests.Add(quest);
            }

            save.LevelsData.Add(levelData);

            string savedJson = JsonUtility.ToJson(save);

            File.WriteAllText(pathToSaveFile, savedJson);
        }
    }
Exemplo n.º 3
0
 /// <summary>
 /// 回池
 /// </summary>
 protected override void toRelease(DataPool pool)
 {
     this.hero  = null;
     this.units = null;
     this.roles = null;
     this.selfBindFieldItemBags = null;
     this.bindVisionUnits       = null;
     this.battleData            = null;
 }
Exemplo n.º 4
0
    public void StartBattle(BattleSceneData battleSceneData)
    {
        _previousLevel = battleSceneData.PreviousLevel;
        /* -- Set up Battle -- */
        PlayerLoader.BattleSetUp(battleSceneData.PlayerMingmings, battleSceneData.PlayerCards.ToList());
        EnemyLoader.BattleSetUp(battleSceneData.EnemyMingmings, battleSceneData.EnemyCards.ToList());

        _playerTurn = PlayerTurn.PlayerOne;

        StartCoroutine(StartTurnAfterSeconds(1));
    }
Exemplo n.º 5
0
    /// <summary>
    /// 复制(潜拷贝)
    /// </summary>
    protected override void toShadowCopy(BaseData data)
    {
        if (!(data is BattleSceneData))
        {
            return;
        }

        BattleSceneData mData = (BattleSceneData)data;

        this.state    = mData.state;
        this.timeTick = mData.timeTick;
    }
Exemplo n.º 6
0
        // Use this for initialization
        void Start()
        {
            if (GameSceneController.Singleton is null)
            {
                var _playerMingmings = playerMinmings.Select(m => new MingmingInstance(m.MingMingData, m.Level));
                var _enemyMingmings  = enemyMinmings.Select(m => new MingmingInstance(m.MingMingData, m.Level));

                var battleScene = new BattleSceneData(sceneName, playerCards, enemyCards, null, _playerMingmings, _enemyMingmings);

                BattleManager.Singleton.StartBattle(battleScene);
            }
        }
Exemplo n.º 7
0
        public void GetEncounter()
        {
            OnStartEncounter?.Invoke();
            var thisScene   = new LevelSceneData(gameObject.scene.name, this, _player);
            var battleScene = new BattleSceneData(
                GameSceneController.BattleScene,
                _player.DevController.DeckHolder.CurrentDeck,
                trainerController.DevController.DeckHolder.CurrentDeck,
                thisScene,
                _player.DevController.PlayableMingmings,
                trainerController.DevController.PlayableMingmings
                );

            GameSceneController.Singleton.SwapScenes(thisScene, battleScene);
        }
Exemplo n.º 8
0
    /// <summary>
    /// 复制(潜拷贝)
    /// </summary>
    protected override void toShadowCopy(BaseData data)
    {
        if (!(data is SceneEnterData))
        {
            return;
        }

        SceneEnterData mData = (SceneEnterData)data;

        this.hero  = mData.hero;
        this.units = mData.units;
        this.roles = mData.roles;
        this.selfBindFieldItemBags = mData.selfBindFieldItemBags;
        this.bindVisionUnits       = mData.bindVisionUnits;
        this.battleData            = mData.battleData;
    }
Exemplo n.º 9
0
    /// <summary>
    /// 是否数据一致
    /// </summary>
    protected override bool toDataEquals(BaseData data)
    {
        BattleSceneData mData = (BattleSceneData)data;

        if (this.state != mData.state)
        {
            return(false);
        }

        if (this.timeTick != mData.timeTick)
        {
            return(false);
        }

        return(true);
    }
Exemplo n.º 10
0
    public void SetData(PlayerPreferencesManager playerPreferencesManager, BattleSceneData data)
    {
        sceneData        = data;
        Title.text       = data.SceneTitle;
        Thumbnail.sprite = data.SceneThumbnail;

        int objectivesAmount = data.Objectives.Count;
        int questsAmount     = data.Quests.Count;

        ObjectivesLabel.text = LanguageManager.Instance.GetTextValue(_objectivesLabelLocId);

        ProgressData progressData = playerPreferencesManager.LoadProgressData();

        for (int i = 0; i < objectivesAmount; i++)
        {
            GameObject objective = GameObject.Instantiate(ObjectivePrefab);
            objective.transform.SetParent(ObjectivesContainer);
            objective.transform.localScale = Vector3.one;
            objective.transform.SetSiblingIndex(i + 1);
            objective.GetComponent <HUDBattleSceneObjective>().Label.text = data.GetObjectiveById(i).Name;
            objective.GetComponent <HUDBattleSceneObjective>().SetToggle(progressData.GetLevelDataById(data.TargetSceneName).GetObjectiveById(i).Completed);
        }

        QuestsLabel.text = LanguageManager.Instance.GetTextValue(_questsLabelLocId);

        for (int i = 0; i < questsAmount; i++)
        {
            GameObject quest = GameObject.Instantiate(ObjectivePrefab);
            quest.transform.SetParent(ObjectivesContainer);
            quest.transform.localScale = Vector3.one;
            quest.transform.SetSiblingIndex(i + objectivesAmount + 2);
            quest.GetComponent <HUDBattleSceneObjective>().Label.text = data.GetQuestById(i).Name;
            quest.GetComponent <HUDBattleSceneObjective>().SetToggle(progressData.GetLevelDataById(data.TargetSceneName).GetQuestById(i).Completed);
        }

        AcceptButtonLabel.text = LanguageManager.Instance.GetTextValue(_acceptButtonLabelLocId);
        CancelButtonLabel.text = LanguageManager.Instance.GetTextValue(_cancelButtonLabelLocId);

        //AcceptButtonLabel.GetComponentInParent<UIButton>().OnClick.AddListener(OnAcceptClicked);
        //CancelButtonLabel.GetComponentInParent<UIButton>().OnClick.AddListener(OnCancelClicked);

        //if (data.MapConversation != null)
        //    Card._Common._ConversationsManager.StartConversation(data.MapConversation);
    }
Exemplo n.º 11
0
    public void GetEncounter()
    {
        bool hasEncounter = Rules.GetRandomFloat() <= EncounterChance;

        if (!hasEncounter)
        {
            return;
        }

        mingmings.Clear();

        int mingmingSpawns = Rules.GetRandomInt(1, MaxMingmings + 1);

        for (int i = 0; i < mingmingSpawns; i++)
        {
            var _drop = DropTable.GetDrop();

            if (_drop != null)
            {
                int mingmingLevel = Rules.GetRandomInt(MinMingmingLevel, MaxMingmingLevel + 1);
                var _mingming     = new MingmingInstance((MingmingData)_drop, mingmingLevel);
                _mingming.Name = "Wild " + _mingming.Name;
                mingmings.Add(_mingming);
            }
        }

        if (mingmings.Any())
        {
            OnStartEncounter?.Invoke();
            var player = FindObjectOfType <PlayerController>();

            var thisScene   = new LevelSceneData(gameObject.scene.name, this, player);
            var battleScene = new BattleSceneData(GameSceneController.BattleScene, player.DevController.DeckHolder.CurrentDeck, new List <CardData>(),
                                                  thisScene, player.DevController.PlayableMingmings, mingmings);

            GameSceneController.Singleton.SwapScenes(thisScene, battleScene);
        }
    }
Exemplo n.º 12
0
    public virtual void makeSceneEnterData(SceneEnterData data)
    {
        if (!enabled)
        {
            return;
        }

        BattleSceneData bData = GameC.factory.createBattleSceneData();

        bData.state     = _state;
        bData.timeTick  = _timeTick;
        data.battleData = bData;

        //units

        ScenePreInfoData preInfo = _scene.getPreInfo();

        if (preInfo != null)
        {
            //指定进入角色构造
            RoleShowData[] signedPlayers = preInfo.signedPlayers;

            if (signedPlayers != null)
            {
                foreach (RoleShowData v in signedPlayers)
                {
                    //不是自己(有其他角色就自行创建)
                    if (v.playerID != data.hero.identity.playerID)
                    {
                        UnitData unitData = _scene.inout.createCharacterDataForRobot(v.playerID);

                        data.units.add(unitData);
                    }
                }
            }
        }
    }
Exemplo n.º 13
0
    private void Start()
    {
        currentMode = m_gameManager.GetGameMode();

        //데이터 초기화
        if (currentMode == 1 || currentMode == 2)//스토리모드일경우
        {
            m_gameManager.SetCurrentSceneKey(m_gameManager.GetCurrentSceneKey() + 1);
            sceneData = m_gameManager.GetSceneIndData(currentMode);

            m_data = m_gameManager.GetBattleSceneData(currentMode);
        }
        else if (currentMode == 3) //연습모드 일경우
        {
            m_gameManager.SetPracticeSceneDataKey(m_gameManager.GetPracticeSceneKey() + 1);
            sceneData = m_gameManager.GetSceneIndData(currentMode);
            m_data    = m_gameManager.GetBattleSceneData(currentMode);
        }



        m_generator.SetProblempocket(m_data.problemPocket, m_data.hellProblemPocket);

        //백그라운드 오디오 가져오기 및 재생

        bg_audioclip = Resources.Load("BGM/" + m_data.BGM) as AudioClip;

        m_audioSource.clip = bg_audioclip;
        m_audioSource.Play();
        m_audioSource.loop = true;



        show_chapter_num = m_data.chapterNum;
        show_stage_num   = m_data.stageNum;
        Debug.Log(" Chapter : " + show_chapter_num.ToString() + " : Stage : " + show_stage_num.ToString());
        ///

        /*
         * m_enemy.GetComponent<SpriteRenderer>().sprite = Resources.Load("EnemySprite/" + m_data.enemyPrefab.ToString())as Sprite;
         * m_enemy.transform.position = new Vector3(507.392f, 405.248f, -9000f);
         * m_enemy.transform.rotation = transform.rotation;///확인후 삭제
         */
        ///
        //m_enemy = Resources.Load("EnemyPref/" + m_data.key.ToString()) as GameObject;


        m_enemy = Instantiate(Resources.Load("EnemyPref/Mob_" + m_data.enemyPrefab.ToString()) as GameObject, new Vector3(0f, 0f, 0f), transform.rotation) as GameObject;
        m_enemy.transform.Translate(new Vector3(-m_enemy.GetComponent <SpriteRenderer>().bounds.size.x / 2, m_enemy.GetComponent <SpriteRenderer>().bounds.size.y / 2, 0));

        //m_enemy = Instantiate(Resources.Load("EnemyPref/Boss_" + m_data.enemyPrefab.ToString()) as GameObject, new Vector3(507.392f, 405.248f, -9000f), transform.rotation) as GameObject;


        m_enemy.transform.SetParent(m_canvas.transform, false);

        ///
        bg_image_.sprite = Resources.Load("Background/" + m_data.BGImage, typeof(Sprite)) as Sprite;

        //bullet 이미지 받아오기
        ///더미데이터 받아오는중. 투사체 이미지 업로드 완료 후 수정요망
        Sprite[] bullets = new Sprite[3];
        for (int i = 0; i < 3; i++)
        {
            //"chapter-imageNum"
            bullets[i] = Resources.Load("EnemyBullet/projectile_" + m_data.chapterNum.ToString() + "_" + m_data.stageNum.ToString(), typeof(Sprite)) as Sprite;
            // Debug.Log(bullets[i].name);
        }
        hintHandler.LoadBulletImage(bullets);


        if (Is2to5BossStage() == 8)
        {
            chunjiin.GetComponent <KeyboardHandler>().isSejong = true;
        }
        stageStatus = StageState.READY;
    }
Exemplo n.º 14
0
    /// <summary>
    /// 读取字节流(完整版)
    /// </summary>
    protected override void toReadBytesFull(BytesReadStream stream)
    {
        stream.startReadObj();

        if (stream.readBoolean())
        {
            BaseData heroT = stream.readDataFullNotNull();
            if (heroT != null)
            {
                if (heroT is UnitData)
                {
                    this.hero = (UnitData)heroT;
                }
                else
                {
                    this.hero = new UnitData();
                    if (!(heroT.GetType().IsAssignableFrom(typeof(UnitData))))
                    {
                        stream.throwTypeReadError(typeof(UnitData), heroT.GetType());
                    }
                    this.hero.shadowCopy(heroT);
                }
            }
            else
            {
                this.hero = null;
            }
        }
        else
        {
            this.hero = null;
        }

        int unitsLen = stream.readLen();

        if (this.units != null)
        {
            this.units.clear();
            this.units.ensureCapacity(unitsLen);
        }
        else
        {
            this.units = new SList <UnitData>();
        }

        SList <UnitData> unitsT = this.units;

        for (int unitsI = unitsLen - 1; unitsI >= 0; --unitsI)
        {
            UnitData unitsV;
            BaseData unitsVT = stream.readDataFullNotNull();
            if (unitsVT != null)
            {
                if (unitsVT is UnitData)
                {
                    unitsV = (UnitData)unitsVT;
                }
                else
                {
                    unitsV = new UnitData();
                    if (!(unitsVT.GetType().IsAssignableFrom(typeof(UnitData))))
                    {
                        stream.throwTypeReadError(typeof(UnitData), unitsVT.GetType());
                    }
                    unitsV.shadowCopy(unitsVT);
                }
            }
            else
            {
                unitsV = null;
            }

            unitsT.add(unitsV);
        }

        int rolesLen = stream.readLen();

        if (this.roles != null)
        {
            this.roles.clear();
            this.roles.ensureCapacity(rolesLen);
        }
        else
        {
            this.roles = new LongObjectMap <SceneRoleData>(rolesLen);
        }

        LongObjectMap <SceneRoleData> rolesT = this.roles;

        for (int rolesI = rolesLen - 1; rolesI >= 0; --rolesI)
        {
            SceneRoleData rolesV;
            BaseData      rolesVT = stream.readDataFullNotNull();
            if (rolesVT != null)
            {
                if (rolesVT is SceneRoleData)
                {
                    rolesV = (SceneRoleData)rolesVT;
                }
                else
                {
                    rolesV = new SceneRoleData();
                    if (!(rolesVT.GetType().IsAssignableFrom(typeof(SceneRoleData))))
                    {
                        stream.throwTypeReadError(typeof(SceneRoleData), rolesVT.GetType());
                    }
                    rolesV.shadowCopy(rolesVT);
                }
            }
            else
            {
                rolesV = null;
            }

            rolesT.put(rolesV.playerID, rolesV);
        }

        if (stream.readBoolean())
        {
            int selfBindFieldItemBagsLen = stream.readLen();
            if (this.selfBindFieldItemBags != null)
            {
                this.selfBindFieldItemBags.clear();
                this.selfBindFieldItemBags.ensureCapacity(selfBindFieldItemBagsLen);
            }
            else
            {
                this.selfBindFieldItemBags = new IntObjectMap <FieldItemBagBindData>(selfBindFieldItemBagsLen);
            }

            IntObjectMap <FieldItemBagBindData> selfBindFieldItemBagsT = this.selfBindFieldItemBags;
            for (int selfBindFieldItemBagsI = selfBindFieldItemBagsLen - 1; selfBindFieldItemBagsI >= 0; --selfBindFieldItemBagsI)
            {
                FieldItemBagBindData selfBindFieldItemBagsV;
                if (stream.readBoolean())
                {
                    BaseData selfBindFieldItemBagsVT = stream.readDataFullNotNull();
                    if (selfBindFieldItemBagsVT != null)
                    {
                        if (selfBindFieldItemBagsVT is FieldItemBagBindData)
                        {
                            selfBindFieldItemBagsV = (FieldItemBagBindData)selfBindFieldItemBagsVT;
                        }
                        else
                        {
                            selfBindFieldItemBagsV = new FieldItemBagBindData();
                            if (!(selfBindFieldItemBagsVT.GetType().IsAssignableFrom(typeof(FieldItemBagBindData))))
                            {
                                stream.throwTypeReadError(typeof(FieldItemBagBindData), selfBindFieldItemBagsVT.GetType());
                            }
                            selfBindFieldItemBagsV.shadowCopy(selfBindFieldItemBagsVT);
                        }
                    }
                    else
                    {
                        selfBindFieldItemBagsV = null;
                    }
                }
                else
                {
                    selfBindFieldItemBagsV = null;
                }

                selfBindFieldItemBagsT.put(selfBindFieldItemBagsV.instanceID, selfBindFieldItemBagsV);
            }
        }
        else
        {
            this.selfBindFieldItemBags = null;
        }

        if (stream.readBoolean())
        {
            int bindVisionUnitsLen = stream.readLen();
            if (this.bindVisionUnits != null)
            {
                this.bindVisionUnits.clear();
                this.bindVisionUnits.ensureCapacity(bindVisionUnitsLen);
            }
            else
            {
                this.bindVisionUnits = new IntObjectMap <UnitSimpleData>(bindVisionUnitsLen);
            }

            IntObjectMap <UnitSimpleData> bindVisionUnitsT = this.bindVisionUnits;
            for (int bindVisionUnitsI = bindVisionUnitsLen - 1; bindVisionUnitsI >= 0; --bindVisionUnitsI)
            {
                int            bindVisionUnitsK;
                UnitSimpleData bindVisionUnitsV;
                bindVisionUnitsK = stream.readInt();

                if (stream.readBoolean())
                {
                    BaseData bindVisionUnitsVT = stream.readDataFullNotNull();
                    if (bindVisionUnitsVT != null)
                    {
                        if (bindVisionUnitsVT is UnitSimpleData)
                        {
                            bindVisionUnitsV = (UnitSimpleData)bindVisionUnitsVT;
                        }
                        else
                        {
                            bindVisionUnitsV = new UnitSimpleData();
                            if (!(bindVisionUnitsVT.GetType().IsAssignableFrom(typeof(UnitSimpleData))))
                            {
                                stream.throwTypeReadError(typeof(UnitSimpleData), bindVisionUnitsVT.GetType());
                            }
                            bindVisionUnitsV.shadowCopy(bindVisionUnitsVT);
                        }
                    }
                    else
                    {
                        bindVisionUnitsV = null;
                    }
                }
                else
                {
                    bindVisionUnitsV = null;
                }

                bindVisionUnitsT.put(bindVisionUnitsK, bindVisionUnitsV);
            }
        }
        else
        {
            this.bindVisionUnits = null;
        }

        if (stream.readBoolean())
        {
            BaseData battleDataT = stream.readDataFullNotNull();
            if (battleDataT != null)
            {
                if (battleDataT is BattleSceneData)
                {
                    this.battleData = (BattleSceneData)battleDataT;
                }
                else
                {
                    this.battleData = new BattleSceneData();
                    if (!(battleDataT.GetType().IsAssignableFrom(typeof(BattleSceneData))))
                    {
                        stream.throwTypeReadError(typeof(BattleSceneData), battleDataT.GetType());
                    }
                    this.battleData.shadowCopy(battleDataT);
                }
            }
            else
            {
                this.battleData = null;
            }
        }
        else
        {
            this.battleData = null;
        }

        stream.endReadObj();
    }
Exemplo n.º 15
0
    void LoadXml()
    {
        System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();

        sw.Start();


        TextAsset[] textAsset = new TextAsset[] {
            (TextAsset)Resources.Load("2umjul_Goyu"),
            (TextAsset)Resources.Load("2umjul_Hanja"),
            (TextAsset)Resources.Load("2umjul_Waerae"),
            (TextAsset)Resources.Load("2umjul_Honjong"),
            //(TextAsset)Resources.Load("BattleSceneXml"),
            (TextAsset)Resources.Load("BattleSceneXml_0607"),
            (TextAsset)Resources.Load("DialogSceneXml"),
            (TextAsset)Resources.Load("SceneDataXml")
        };

        XmlDocument xmlDoc = new XmlDocument();

        for (int i = 0; i < 4; i++) // 단어 데이터들 딕셔너리에 저장
        {
            dictTbl[i] = new Dictionary <string, string>();
            xmlDoc.LoadXml(textAsset[i].text);

            XmlNodeList nodes = xmlDoc.SelectNodes("WordDic/WordSet"); // 가져올 노드 설정
            int         count = 0;

            foreach (XmlNode node in nodes)
            {
                dictTbl[i].Add(node.SelectSingleNode("Key").InnerText, node.SelectSingleNode("Value").InnerText);
                count++;
            }
            Debug.Log("wordCount:" + count);
        }
        if (hintXmlTool == null)
        {
            for (int i = 4; i < 5; i++) // 배틀씬데이터 저장
            {
                xmlDoc.LoadXml(textAsset[i].text);
                XmlNodeList nodes    = xmlDoc.SelectNodes("BattleScene/BattleSceneSet");
                int         indCount = 0;
                foreach (XmlNode node in nodes)
                {
                    BattleSceneData BSD = new BattleSceneData();
                    BSD.key        = int.Parse(node.SelectSingleNode("key").InnerText);
                    BSD.chapterNum = int.Parse(node.SelectSingleNode("chapterNum").InnerText);
                    BSD.stageNum   = int.Parse(node.SelectSingleNode("stageNum").InnerText);
                    string tmp_prob = node.SelectSingleNode("problemPocket").InnerText;
                    BSD.problemPocket = tmp_prob.Split(new char[] { ',' });
                    string tmp_hellprob = node.SelectSingleNode("hellProblemPocket").InnerText;
                    BSD.hellProblemPocket = tmp_hellprob.Split(new char[] { ',' });
                    BSD.enemyPrefab       = int.Parse(node.SelectSingleNode("enemyPrefab").InnerText);
                    BSD.enemyHp           = float.Parse(node.SelectSingleNode("enemyHP").InnerText);
                    BSD.enemyDamage       = float.Parse(node.SelectSingleNode("enemyDamage").InnerText);
                    BSD.isBoss            = bool.Parse(node.SelectSingleNode("isBoss").InnerText);
                    BSD.bossPattern       = int.Parse(node.SelectSingleNode("bossPattern").InnerText);
                    BSD.nextDialogNum     = int.Parse(node.SelectSingleNode("nextDialogNum").InnerText);
                    BSD.BGImage           = node.SelectSingleNode("BGImage").InnerText;
                    BSD.BGM = node.SelectSingleNode("BGM").InnerText; //암것도 안 들어있어서 주석 처리. 나중에 넣어주세요!
                    battleDataTbl[indCount++] = BSD;
                }
            }

            for (int i = 5; i < 6; i++) //다이얼로그 데이터 저장
            {
                xmlDoc.LoadXml(textAsset[i].text);
                XmlNodeList nodes    = xmlDoc.SelectNodes("DialogScene/DialogSet");
                int         indCount = 0;
                foreach (XmlNode node in nodes)
                {
                    DialogData DLD = new DialogData();
                    DLD.key        = int.Parse(node.SelectSingleNode("key").InnerText);
                    DLD.chapterNum = int.Parse(node.SelectSingleNode("chapterNum").InnerText);
                    DLD.stageNum   = int.Parse(node.SelectSingleNode("stageNum").InnerText);
                    string tmp_script = node.SelectSingleNode("script").InnerText;
                    DLD.script = tmp_script.Split(new char[] { '/' });
                    string   tmp_conv_state     = node.SelectSingleNode("conv_state").InnerText;
                    string[] tmp_conv_state_arr = tmp_conv_state.Split(new char[] { '/' });
                    DLD.conv_state = tmp_conv_state_arr;
                    //DLD.conv_state = Array.ConvertAll<string, int>(tmp_conv_state_arr, int.Parse);
                    DLD.isKnockDown           = bool.Parse(node.SelectSingleNode("isKnockDown").InnerText);
                    DLD.BGImage               = node.SelectSingleNode("BGImage").InnerText;
                    DLD.enemyImage            = node.SelectSingleNode("enemyImage").InnerText;
                    DLD.enemyWholeImage       = node.SelectSingleNode("enemyWholeImage").InnerText;
                    DLD.BGM                   = node.SelectSingleNode("BGM").InnerText; //암것도 안 들어있어서 주석 처리. 나중에 넣어주세요!
                    dialogDataTbl[indCount++] = DLD;
                }
            }
            for (int i = 6; i < 7; i++) //다이얼로그 데이터 저장
            {
                xmlDoc.LoadXml(textAsset[i].text);
                XmlNodeList nodes    = xmlDoc.SelectNodes("SceneData/SceneDataSet");
                int         indCount = 0;
                foreach (XmlNode node in nodes)
                {
                    SceneData SCD = new SceneData();
                    SCD.key                  = int.Parse(node.SelectSingleNode("key").InnerText);
                    SCD.nextScene            = int.Parse(node.SelectSingleNode("nextSceneCase").InnerText);
                    SCD.nextSceneKey         = int.Parse(node.SelectSingleNode("nextSceneKey").InnerText);
                    sceneDataTbl[indCount++] = SCD;
                }
            }
        }


        sw.Stop();//시간측정을 위한 함수
        Debug.Log(sw.ElapsedMilliseconds.ToString() + "ms");
        if (hintXmlTool == null)
        {
            m_gameManager.SetXmlDictData(dictTbl);
            m_gameManager.SetXmlBattleSceneData(battleDataTbl);
            m_gameManager.SetXmlDialogData(dialogDataTbl);
            m_gameManager.SetXmlSceneData(sceneDataTbl);
        }
        else
        {
            hintXmlTool.Loop();
        }
    }
Exemplo n.º 16
0
    /// <summary>
    /// 复制(深拷贝)
    /// </summary>
    protected override void toCopy(BaseData data)
    {
        if (!(data is SceneEnterData))
        {
            return;
        }

        SceneEnterData mData = (SceneEnterData)data;

        if (mData.hero != null)
        {
            this.hero = (UnitData)mData.hero.clone();
        }
        else
        {
            this.hero = null;
        }

        if (mData.units != null)
        {
            if (this.units != null)
            {
                this.units.clear();
                this.units.ensureCapacity(mData.units.size());
            }
            else
            {
                this.units = new SList <UnitData>();
            }

            SList <UnitData> unitsT = this.units;
            if (!mData.units.isEmpty())
            {
                UnitData[] unitsVValues = mData.units.getValues();
                for (int unitsVI = 0, unitsVLen = mData.units.length(); unitsVI < unitsVLen; ++unitsVI)
                {
                    UnitData unitsV = unitsVValues[unitsVI];
                    UnitData unitsU;
                    if (unitsV != null)
                    {
                        unitsU = (UnitData)unitsV.clone();
                    }
                    else
                    {
                        unitsU = null;
                        nullObjError("unitsU");
                    }

                    unitsT.add(unitsU);
                }
            }
        }
        else
        {
            this.units = null;
            nullObjError("units");
        }

        if (mData.roles != null)
        {
            if (this.roles != null)
            {
                this.roles.clear();
                this.roles.ensureCapacity(mData.roles.size());
            }
            else
            {
                this.roles = new LongObjectMap <SceneRoleData>(mData.roles.size());
            }

            LongObjectMap <SceneRoleData> rolesT = this.roles;
            if (!mData.roles.isEmpty())
            {
                SceneRoleData[] rolesVValues = mData.roles.getValues();
                for (int rolesVI = rolesVValues.Length - 1; rolesVI >= 0; --rolesVI)
                {
                    SceneRoleData rolesV = rolesVValues[rolesVI];
                    if (rolesV != null)
                    {
                        SceneRoleData rolesU;
                        if (rolesV != null)
                        {
                            rolesU = (SceneRoleData)rolesV.clone();
                        }
                        else
                        {
                            rolesU = null;
                            nullObjError("rolesU");
                        }

                        rolesT.put(rolesU.playerID, rolesU);
                    }
                }
            }
        }
        else
        {
            this.roles = null;
            nullObjError("roles");
        }

        if (mData.selfBindFieldItemBags != null)
        {
            if (this.selfBindFieldItemBags != null)
            {
                this.selfBindFieldItemBags.clear();
                this.selfBindFieldItemBags.ensureCapacity(mData.selfBindFieldItemBags.size());
            }
            else
            {
                this.selfBindFieldItemBags = new IntObjectMap <FieldItemBagBindData>(mData.selfBindFieldItemBags.size());
            }

            IntObjectMap <FieldItemBagBindData> selfBindFieldItemBagsT = this.selfBindFieldItemBags;
            if (!mData.selfBindFieldItemBags.isEmpty())
            {
                FieldItemBagBindData[] selfBindFieldItemBagsVValues = mData.selfBindFieldItemBags.getValues();
                for (int selfBindFieldItemBagsVI = selfBindFieldItemBagsVValues.Length - 1; selfBindFieldItemBagsVI >= 0; --selfBindFieldItemBagsVI)
                {
                    FieldItemBagBindData selfBindFieldItemBagsV = selfBindFieldItemBagsVValues[selfBindFieldItemBagsVI];
                    if (selfBindFieldItemBagsV != null)
                    {
                        FieldItemBagBindData selfBindFieldItemBagsU;
                        if (selfBindFieldItemBagsV != null)
                        {
                            selfBindFieldItemBagsU = (FieldItemBagBindData)selfBindFieldItemBagsV.clone();
                        }
                        else
                        {
                            selfBindFieldItemBagsU = null;
                        }

                        selfBindFieldItemBagsT.put(selfBindFieldItemBagsU.instanceID, selfBindFieldItemBagsU);
                    }
                }
            }
        }
        else
        {
            this.selfBindFieldItemBags = null;
        }

        if (mData.bindVisionUnits != null)
        {
            if (this.bindVisionUnits != null)
            {
                this.bindVisionUnits.clear();
                this.bindVisionUnits.ensureCapacity(mData.bindVisionUnits.size());
            }
            else
            {
                this.bindVisionUnits = new IntObjectMap <UnitSimpleData>(mData.bindVisionUnits.size());
            }

            IntObjectMap <UnitSimpleData> bindVisionUnitsT = this.bindVisionUnits;
            if (!mData.bindVisionUnits.isEmpty())
            {
                int              bindVisionUnitsKFreeValue = mData.bindVisionUnits.getFreeValue();
                int[]            bindVisionUnitsKKeys      = mData.bindVisionUnits.getKeys();
                UnitSimpleData[] bindVisionUnitsVValues    = mData.bindVisionUnits.getValues();
                for (int bindVisionUnitsKI = bindVisionUnitsKKeys.Length - 1; bindVisionUnitsKI >= 0; --bindVisionUnitsKI)
                {
                    int bindVisionUnitsK = bindVisionUnitsKKeys[bindVisionUnitsKI];
                    if (bindVisionUnitsK != bindVisionUnitsKFreeValue)
                    {
                        UnitSimpleData bindVisionUnitsV = bindVisionUnitsVValues[bindVisionUnitsKI];
                        int            bindVisionUnitsW;
                        UnitSimpleData bindVisionUnitsU;
                        bindVisionUnitsW = bindVisionUnitsK;

                        if (bindVisionUnitsV != null)
                        {
                            bindVisionUnitsU = (UnitSimpleData)bindVisionUnitsV.clone();
                        }
                        else
                        {
                            bindVisionUnitsU = null;
                        }

                        bindVisionUnitsT.put(bindVisionUnitsW, bindVisionUnitsU);
                    }
                }
            }
        }
        else
        {
            this.bindVisionUnits = null;
        }

        if (mData.battleData != null)
        {
            this.battleData = (BattleSceneData)mData.battleData.clone();
        }
        else
        {
            this.battleData = null;
        }
    }
Exemplo n.º 17
0
    /// <summary>
    /// 读取字节流(简版)
    /// </summary>
    protected override void toReadBytesSimple(BytesReadStream stream)
    {
        if (stream.readBoolean())
        {
            this.hero = (UnitData)stream.readDataSimpleNotNull();
        }
        else
        {
            this.hero = null;
        }

        int unitsLen = stream.readLen();

        if (this.units != null)
        {
            this.units.clear();
            this.units.ensureCapacity(unitsLen);
        }
        else
        {
            this.units = new SList <UnitData>();
        }

        SList <UnitData> unitsT = this.units;

        for (int unitsI = unitsLen - 1; unitsI >= 0; --unitsI)
        {
            UnitData unitsV;
            unitsV = (UnitData)stream.readDataSimpleNotNull();

            unitsT.add(unitsV);
        }

        int rolesLen = stream.readLen();

        if (this.roles != null)
        {
            this.roles.clear();
            this.roles.ensureCapacity(rolesLen);
        }
        else
        {
            this.roles = new LongObjectMap <SceneRoleData>(rolesLen);
        }

        LongObjectMap <SceneRoleData> rolesT = this.roles;

        for (int rolesI = rolesLen - 1; rolesI >= 0; --rolesI)
        {
            SceneRoleData rolesV;
            rolesV = (SceneRoleData)stream.readDataSimpleNotNull();

            rolesT.put(rolesV.playerID, rolesV);
        }

        if (stream.readBoolean())
        {
            int selfBindFieldItemBagsLen = stream.readLen();
            if (this.selfBindFieldItemBags != null)
            {
                this.selfBindFieldItemBags.clear();
                this.selfBindFieldItemBags.ensureCapacity(selfBindFieldItemBagsLen);
            }
            else
            {
                this.selfBindFieldItemBags = new IntObjectMap <FieldItemBagBindData>(selfBindFieldItemBagsLen);
            }

            IntObjectMap <FieldItemBagBindData> selfBindFieldItemBagsT = this.selfBindFieldItemBags;
            for (int selfBindFieldItemBagsI = selfBindFieldItemBagsLen - 1; selfBindFieldItemBagsI >= 0; --selfBindFieldItemBagsI)
            {
                FieldItemBagBindData selfBindFieldItemBagsV;
                if (stream.readBoolean())
                {
                    selfBindFieldItemBagsV = (FieldItemBagBindData)stream.readDataSimpleNotNull();
                }
                else
                {
                    selfBindFieldItemBagsV = null;
                }

                selfBindFieldItemBagsT.put(selfBindFieldItemBagsV.instanceID, selfBindFieldItemBagsV);
            }
        }
        else
        {
            this.selfBindFieldItemBags = null;
        }

        if (stream.readBoolean())
        {
            int bindVisionUnitsLen = stream.readLen();
            if (this.bindVisionUnits != null)
            {
                this.bindVisionUnits.clear();
                this.bindVisionUnits.ensureCapacity(bindVisionUnitsLen);
            }
            else
            {
                this.bindVisionUnits = new IntObjectMap <UnitSimpleData>(bindVisionUnitsLen);
            }

            IntObjectMap <UnitSimpleData> bindVisionUnitsT = this.bindVisionUnits;
            for (int bindVisionUnitsI = bindVisionUnitsLen - 1; bindVisionUnitsI >= 0; --bindVisionUnitsI)
            {
                int            bindVisionUnitsK;
                UnitSimpleData bindVisionUnitsV;
                bindVisionUnitsK = stream.readInt();

                if (stream.readBoolean())
                {
                    bindVisionUnitsV = (UnitSimpleData)stream.readDataSimpleNotNull();
                }
                else
                {
                    bindVisionUnitsV = null;
                }

                bindVisionUnitsT.put(bindVisionUnitsK, bindVisionUnitsV);
            }
        }
        else
        {
            this.bindVisionUnits = null;
        }

        if (stream.readBoolean())
        {
            this.battleData = (BattleSceneData)stream.readDataSimpleNotNull();
        }
        else
        {
            this.battleData = null;
        }
    }