Пример #1
0
        public void UpdateData(IPlayerCharacterData character)
        {
            this.character = character;
            var selectedQuestId = SelectionManager.SelectedUI != null ? SelectionManager.SelectedUI.Data.dataId : 0;

            SelectionManager.DeselectSelectedUI();
            SelectionManager.Clear();

            if (character == null)
            {
                CacheList.HideAll();
                return;
            }

            var characterQuests = character.Quests;

            CacheList.Generate(characterQuests, (index, characterQuest, ui) =>
            {
                var uiCharacterQuest = ui.GetComponent <UICharacterQuest>();
                uiCharacterQuest.Setup(characterQuest, character, index);
                uiCharacterQuest.Show();
                SelectionManager.Add(uiCharacterQuest);
                if (selectedQuestId.Equals(characterQuest.dataId))
                {
                    uiCharacterQuest.OnClickSelect();
                }
            });
        }
Пример #2
0
        public void UpdateData(ICharacterData character)
        {
            this.character = character;

            var selectedBuffKey = SelectionManager.SelectedUI != null?SelectionManager.SelectedUI.CharacterBuff.GetKey() : string.Empty;

            SelectionManager.DeselectSelectedUI();
            SelectionManager.Clear();

            if (character == null)
            {
                CacheList.HideAll();
                return;
            }

            var buffs = character.Buffs;

            CacheList.Generate(buffs, (index, characterBuff, ui) =>
            {
                var uiCharacterBuff = ui.GetComponent <UICharacterBuff>();
                uiCharacterBuff.Setup(characterBuff, character, index);
                uiCharacterBuff.Show();
                SelectionManager.Add(uiCharacterBuff);
                if (selectedBuffKey.Equals(characterBuff.GetKey()))
                {
                    uiCharacterBuff.OnClickSelect();
                }
            });
        }
Пример #3
0
    public void UpdateData(ICharacterData character)
    {
        this.character = character;
        var selectedIdx = SelectionManager.SelectedUI != null?SelectionManager.IndexOf(SelectionManager.SelectedUI) : -1;

        SelectionManager.DeselectSelectedUI();
        SelectionManager.Clear();

        if (character == null)
        {
            CacheList.HideAll();
            return;
        }

        var nonEquipItems = character.NonEquipItems;

        CacheList.Generate(nonEquipItems, (index, characterItem, ui) =>
        {
            var uiCharacterItem = ui.GetComponent <UICharacterItem>();
            uiCharacterItem.Setup(new CharacterItemLevelTuple(characterItem, characterItem.level), this.character, index, string.Empty);
            uiCharacterItem.Show();
            SelectionManager.Add(uiCharacterItem);
            if (selectedIdx == index)
            {
                uiCharacterItem.OnClickSelect();
            }
        });
    }
Пример #4
0
    private void LoadCharacters()
    {
        SelectionManager.Clear();
        // Unenabled buttons
        buttonStart.gameObject.SetActive(false);
        buttonDelete.gameObject.SetActive(false);
        // Remove all models
        characterModelContainer.RemoveChildren();
        CharacterModels.Clear();
        // Show list of created characters
        var selectableCharacters = PlayerCharacterDataExtension.LoadAllPersistentCharacterData();

        selectableCharacters.Sort(new PlayerCharacterDataLastUpdateComparer().Desc());
        CacheList.Generate(selectableCharacters, (index, character, ui) =>
        {
            var uiCharacter  = ui.GetComponent <UICharacter>();
            uiCharacter.Data = character;
            // Select trigger when add first entry so deactivate all models is okay beacause first model will active
            var characterModel            = character.InstantiateModel(characterModelContainer);
            CharacterModels[character.Id] = characterModel;
            characterModel.gameObject.SetActive(false);
            characterModel.SetEquipWeapons(character.EquipWeapons);
            characterModel.SetEquipItems(character.EquipItems);
            SelectionManager.Add(uiCharacter);
        });
    }
Пример #5
0
        private void OnLoadCharacters(AckResponseCode responseCode, BaseAckMessage message)
        {
            var castedMessage = (ResponseCharactersMessage)message;

            SelectionManager.Clear();
            // Unenabled buttons
            buttonStart.gameObject.SetActive(false);
            buttonDelete.gameObject.SetActive(false);
            // Remove all models
            characterModelContainer.RemoveChildren();
            CharacterModels.Clear();

            var selectableCharacters = new List <PlayerCharacterData>();

            switch (responseCode)
            {
            case AckResponseCode.Error:
                var errorMessage = string.Empty;
                switch (castedMessage.error)
                {
                case ResponseCharactersMessage.Error.NotLoggedin:
                    errorMessage = "User not logged in";
                    break;
                }
                UISceneGlobal.Singleton.ShowMessageDialog("Cannot Load Characters", errorMessage);
                break;

            case AckResponseCode.Timeout:
                UISceneGlobal.Singleton.ShowMessageDialog("Cannot Load Characters", "Connection timeout");
                break;

            default:
                selectableCharacters = castedMessage.characters;
                break;
            }

            // Show list of created characters
            for (var i = selectableCharacters.Count - 1; i >= 0; --i)
            {
                var selectableCharacter = selectableCharacters[i];
                if (selectableCharacter == null || !GameInstance.PlayerCharacters.ContainsKey(selectableCharacter.DataId))
                {
                    selectableCharacters.RemoveAt(i);
                }
            }
            selectableCharacters.Sort(new PlayerCharacterDataLastUpdateComparer().Desc());
            CacheList.Generate(selectableCharacters, (index, character, ui) =>
            {
                var uiCharacter  = ui.GetComponent <UICharacter>();
                uiCharacter.Data = character;
                // Select trigger when add first entry so deactivate all models is okay beacause first model will active
                var characterModel            = character.InstantiateModel(characterModelContainer);
                CharacterModels[character.Id] = characterModel;
                characterModel.gameObject.SetActive(false);
                characterModel.SetEquipWeapons(character.EquipWeapons);
                characterModel.SetEquipItems(character.EquipItems);
                SelectionManager.Add(uiCharacter);
            });
        }
Пример #6
0
    public void UpdateData(ICharacterData character)
    {
        this.character = character;
        var selectedSkillId = SelectionManager.SelectedUI != null ? SelectionManager.SelectedUI.Data.characterSkill.dataId : 0;

        SelectionManager.DeselectSelectedUI();
        SelectionManager.Clear();

        if (character == null)
        {
            CacheList.HideAll();
            return;
        }

        var characterSkills = character.Skills;

        switch (listingMode)
        {
        case ListingMode.DefiningByCharacter:
            CacheList.Generate(characterSkills, (index, characterSkill, ui) =>
            {
                var uiCharacterSkill = ui.GetComponent <UICharacterSkill>();
                uiCharacterSkill.Setup(new CharacterSkillLevelTuple(characterSkill, characterSkill.level), character, index);
                uiCharacterSkill.Show();
                SelectionManager.Add(uiCharacterSkill);
                if (selectedSkillId.Equals(characterSkill.dataId))
                {
                    uiCharacterSkill.OnClickSelect();
                }
            });
            break;

        case ListingMode.Predefined:
            CacheList.HideAll();
            for (var i = 0; i < characterSkills.Count; ++i)
            {
                var characterSkill = characterSkills[i];
                var level          = characterSkill.level;
                var skill          = characterSkill.GetSkill();
                UICharacterSkill cacheUICharacterSkill;
                if (CacheUICharacterSkills.TryGetValue(skill, out cacheUICharacterSkill))
                {
                    cacheUICharacterSkill.Setup(new CharacterSkillLevelTuple(characterSkill, level), character, i);
                    cacheUICharacterSkill.Show();
                    if (selectedSkillId.Equals(characterSkill.dataId))
                    {
                        cacheUICharacterSkill.OnClickSelect();
                    }
                }
                else
                {
                    cacheUICharacterSkill.Hide();
                }
            }
            break;
        }
    }
Пример #7
0
        private void ResponseCashShopInfo(AckResponseCode responseCode, BaseAckMessage message)
        {
            var castedMessage = (ResponseCashShopInfoMessage)message;

            switch (responseCode)
            {
            case AckResponseCode.Error:
                UISceneGlobal.Singleton.ShowMessageDialog("Error", "Cannot retrieve cash shop info");
                break;

            case AckResponseCode.Timeout:
                UISceneGlobal.Singleton.ShowMessageDialog("Error", "Connection timeout");
                break;

            default:
                if (uiTextCash != null)
                {
                    uiTextCash.text = string.Format(cashFormat, castedMessage.cash.ToString("N0"));
                }
                var cashShopItems = new List <CashShopItem>();
                foreach (var cashShopItemId in castedMessage.cashShopItemIds)
                {
                    CashShopItem cashShopItem;
                    if (GameInstance.CashShopItems.TryGetValue(cashShopItemId, out cashShopItem))
                    {
                        cashShopItems.Add(cashShopItem);
                    }
                }

                var selectedIdx = SelectionManager.SelectedUI != null?SelectionManager.IndexOf(SelectionManager.SelectedUI) : -1;

                SelectionManager.DeselectSelectedUI();
                SelectionManager.Clear();

                CacheList.Generate(cashShopItems, (index, cashShopItem, ui) =>
                {
                    var uiCashShopItem        = ui.GetComponent <UICashShopItem>();
                    uiCashShopItem.uiCashShop = this;
                    uiCashShopItem.Data       = cashShopItem;
                    uiCashShopItem.Show();
                    SelectionManager.Add(uiCashShopItem);
                    if (selectedIdx == index)
                    {
                        uiCashShopItem.OnClickSelect();
                    }
                });
                break;
            }
        }
Пример #8
0
        public void UpdateData(ICharacterData character)
        {
            this.character = character;

            var selectedSummonObjectId = SelectionManager.SelectedUI != null ? SelectionManager.SelectedUI.CharacterSummon.objectId : 0;

            SelectionManager.DeselectSelectedUI();
            SelectionManager.Clear();

            if (character == null)
            {
                CacheList.HideAll();
                return;
            }

            var stackingSkillSummons = new Dictionary <int, UICharacterSummon>();
            var summons = character.Summons;

            CacheList.Generate(summons, (index, characterSummon, ui) =>
            {
                if (characterSummon.type == SummonType.Skill && stackingSkillSummons.ContainsKey(characterSummon.dataId))
                {
                    stackingSkillSummons[characterSummon.dataId].AddStackingEntry(characterSummon);
                    ui.gameObject.SetActive(false);
                }
                else
                {
                    var uiCharacterSummon = ui.GetComponent <UICharacterSummon>();
                    uiCharacterSummon.Setup(characterSummon, character, index);
                    uiCharacterSummon.Show();
                    switch (characterSummon.type)
                    {
                    case SummonType.Skill:
                        stackingSkillSummons.Add(characterSummon.dataId, uiCharacterSummon);
                        break;

                    case SummonType.Pet:
                        ui.transform.SetAsFirstSibling();
                        break;
                    }
                    SelectionManager.Add(uiCharacterSummon);
                    if (selectedSummonObjectId == characterSummon.objectId)
                    {
                        uiCharacterSummon.OnClickSelect();
                    }
                }
            });
        }
Пример #9
0
 private void OnReceiveChat(ChatMessage chatMessage)
 {
     chatMessages.Add(chatMessage);
     if (chatMessages.Count > chatEntrySize)
     {
         chatMessages.RemoveAt(0);
     }
     CacheList.Generate(chatMessages, (index, message, ui) =>
     {
         var uiChatMessage           = ui.GetComponent <UIChatMessage>();
         uiChatMessage.uiChatHandler = this;
         uiChatMessage.Data          = message;
         uiChatMessage.Show();
     });
     StartCoroutine(VerticalScroll(0f));
 }
Пример #10
0
        protected virtual void OnEnable()
        {
            SelectionManager.DeselectSelectedUI();
            SelectionManager.Clear();

            MmoNetworkSetting[] networkSettings = MMOClientInstance.Singleton.NetworkSettings;
            CacheList.Generate(networkSettings, (index, networkSetting, ui) =>
            {
                UIMmoServerEntry uiServerEntry = ui.GetComponent <UIMmoServerEntry>();
                uiServerEntry.Data             = networkSetting;
                uiServerEntry.Show();
                SelectionManager.Add(uiServerEntry);
                if (index == 0)
                {
                    uiServerEntry.OnClickSelect();
                }
            });
        }
        public override void Show()
        {
            base.Show();
            SelectionManager.DeselectSelectedUI();
            SelectionManager.Clear();

            var networkSettings = MMOClientInstance.Singleton.networkSettings;

            CacheList.Generate(networkSettings, (index, networkSetting, ui) =>
            {
                var uiServerEntry  = ui.GetComponent <UIMmoServerEntry>();
                uiServerEntry.Data = networkSetting;
                uiServerEntry.Show();
                SelectionManager.Add(uiServerEntry);
                if (index == 0)
                {
                    uiServerEntry.OnClickSelect();
                }
            });
        }
Пример #12
0
    private void LoadCharacters()
    {
        SelectionManager.Clear();
        // Show list of characters that can be create
        var selectableCharacters = GameInstance.PlayerCharacters.Values.ToList();

        CacheList.Generate(selectableCharacters, (index, character, ui) =>
        {
            var dataId           = character.HashId;
            var characterData    = new PlayerCharacterData();
            characterData.DataId = dataId;
            characterData.SetNewCharacterData(character.title, character.HashId);
            var uiCharacter = ui.GetComponent <UICharacter>();
            uiCharacter.Setup(characterData, dataId);
            // Select trigger when add first entry so deactivate all models is okay beacause first model will active
            var characterModel = characterData.InstantiateModel(characterModelContainer);
            CharacterModels[characterData.dataId] = characterModel;
            characterModel.gameObject.SetActive(false);
            SelectionManager.Add(uiCharacter);
        });
    }
Пример #13
0
        public void UpdateData(ICharacterData character)
        {
            this.character = character;

            var selectedSkillId = SelectionManager.SelectedUI != null ? SelectionManager.SelectedUI.Skill.DataId : 0;

            SelectionManager.DeselectSelectedUI();
            SelectionManager.Clear();

            if (character == null)
            {
                CacheList.HideAll();
                return;
            }

            displayingSkills = character.GetSkills();

            Skill tempSkill;
            short tempLevel;
            var   skillLevels = character.GetDatabase().CacheSkillLevels;

            CacheList.Generate(skillLevels, (index, skillLevel, ui) =>
            {
                var uiCharacterSkill = ui.GetComponent <UICharacterSkill>();
                tempSkill            = skillLevel.Key;
                tempLevel            = 0;
                if (displayingSkills.ContainsKey(tempSkill))
                {
                    tempLevel = displayingSkills[tempSkill];
                }
                uiCharacterSkill.Setup(new SkillTuple(tempSkill, tempLevel), character, character.IndexOfSkill(tempSkill.DataId));
                uiCharacterSkill.Show();
                SelectionManager.Add(uiCharacterSkill);
                if (selectedSkillId.Equals(skillLevel.Key))
                {
                    uiCharacterSkill.OnClickSelect();
                }
            });
        }
Пример #14
0
        protected virtual void LoadCharacters()
        {
            SelectionManager.Clear();
            // Show list of characters that can be create
            var selectableCharacters = GetCreatableCharacters();

            CacheList.Generate(selectableCharacters, (index, characterEntity, ui) =>
            {
                var character          = characterEntity.database;
                var characterData      = new PlayerCharacterData();
                characterData.DataId   = characterEntity.DataId;
                characterData.EntityId = characterEntity.EntityId;
                characterData.SetNewPlayerCharacterData(character.title, characterEntity.DataId, characterEntity.EntityId);
                var uiCharacter  = ui.GetComponent <UICharacter>();
                uiCharacter.Data = characterData;
                // Select trigger when add first entry so deactivate all models is okay beacause first model will active
                var characterModel = characterData.InstantiateModel(characterModelContainer);
                CharacterModels[characterData.EntityId] = characterModel;
                characterModel.gameObject.SetActive(false);
                SelectionManager.Add(uiCharacter);
            });
        }