Example #1
0
        /// <summary>
        /// 덱 편성 화면. 공인계산기 포함
        /// </summary>
        /// <param name="oS"></param>
        private void DeckDetail(Session oS)
        {
            this.ListIsEnd = false;
            this.DeckIsEnd = false;

            this.WeaponListLoad();
            int MasterAttribute = 0;

            this.SkillCounter = new Skills();
            this.ConBahaList  = new List <decimal>();
            this.VisBahaList  = new List <decimal>();

            if (this.WeaponLists == null)
            {
                this.WeaponLists = new List <WeaponInfo>();
            }
            else
            {
                this.WeaponLists.Clear();
                this.WeaponLists.TrimExcess();
            }

            if (this.NPCList == null)
            {
                this.NPCList = new List <NpcInfo>();
            }
            else
            {
                this.NPCList.Clear();
                this.NPCList.TrimExcess();
            }

            JObject jsonFull = JObject.Parse(oS.GetResponseBodyAsString()) as JObject;
            dynamic test     = jsonFull;
            dynamic list     = test.deck.pc.weapons;
            dynamic npcList  = test.deck.npc;

            if (test.deck.pc.skill.count > 0)
            {
                this.SkillList = new List <string>();
                dynamic skilllist = test.deck.pc.skill.description;
                foreach (var item in skilllist)
                {
                    JProperty SkillProperty = item;
                    var       Firsts        = SkillProperty.First;
                    string    SkillComment  = (string)Firsts["comment"];
                    int       over          = (int)Firsts["over"];

                    if (over > 1)
                    {
                        SkillList.Add("◎ " + GrandcypherClient.Current.ScenarioHooker.Translator(SkillComment, GrandcypherClient.Current.ScenarioHooker.TranslateSite) + " + " + over.ToString());
                    }
                    else
                    {
                        SkillList.Add("◎ " + GrandcypherClient.Current.ScenarioHooker.Translator(SkillComment, GrandcypherClient.Current.ScenarioHooker.TranslateSite));
                    }
                }
            }
            if (test.deck.pc.param.attribute != null)
            {
                MasterAttribute = Convert.ToInt32(test.deck.pc.param.attribute);
            }
            this.ProgressStatus         = new LimitedValue();
            this.ProgressStatus.Max     = 15;
            this.ProgressStatus.Min     = 0;
            this.ProgressStatus.Current = 0;

            //캐릭터의 속성을 구별할 방법이 외부 DB를 추가로 만드는 방법밖에 없기때문에 일단 모두 같은 속성으로 간주.
            //즉 디 오더 그랑데나 속성 불일치 종족파티를 쓰는 유저는 이 계산기를 사용할수없음
            for (int i = 1; i < 6; i++)
            {
                NpcInfo npc     = new NpcInfo();
                string  temp    = i.ToString();
                JObject jobject = (JObject)npcList[temp];
                JObject param;
                JObject master;
                try
                {
                    param  = (JObject)jobject["param"];
                    master = (JObject)jobject["master"];
                }
                catch
                {
                    this.NPCList.Add(npc);
                    continue;
                }
                npc.name   = (string)master["name"];
                npc.attack = (int)param["attack"];
                this.NPCList.Add(npc);
                this.ProgressStatus.Current++;
                this.ProgressBar();
            }

            for (int i = 1; i < 11; i++)
            {
                WeaponInfo deck    = new WeaponInfo();
                string     temp    = i.ToString();
                JObject    jobject = (JObject)list[temp];
                JObject    master;
                JObject    param;
                try
                {
                    master = (JObject)jobject["master"];
                    param  = (JObject)jobject["param"];
                }
                catch
                {
                    deck.vSkillLv1 = Visibility.Collapsed;
                    deck.vSkillLv2 = Visibility.Collapsed;
                    WeaponLists.Add(deck);
                    continue;
                }
                deck.MasterId = (int)master["id"];
                deck.ParamId  = (int)param["id"];               //무기 스킬레벨등을 저장하고 구별하기 위한 부분
                deck.ItemName = GrandcypherClient.Current.Translations.GetTranslation(Translations.TranslationType.WeaponList, "", TranslateKind.Google, deck.MasterId);
                if (deck.ItemName == string.Empty)
                {
                    int msid = deck.MasterId;
                    deck = MasterInfoLoad(deck.MasterId, (int)param["id"]);
                    if (deck.SkillName1 != string.Empty)
                    {
                        deck.SkillDetail1 = GrandcypherClient.Current.Translations.GetSkillInfo(deck.SkillName1, true);
                    }
                    else
                    {
                        deck.SkillDetail1 = string.Empty;
                    }
                    if (deck.SkillName2 != string.Empty)
                    {
                        deck.SkillDetail2 = GrandcypherClient.Current.Translations.GetSkillInfo(deck.SkillName2, true);
                    }
                    else
                    {
                        deck.SkillDetail2 = string.Empty;
                    }
                }
                deck.vSkillLv1 = Visibility.Collapsed;
                deck.vSkillLv2 = Visibility.Collapsed;

                deck           = this.InputSkillInfo(deck);
                deck.attribute = (int)master["attribute"];
                if (!deck.IsManual)
                {
                    deck.Kind = GrandcypherClient.Current.Translations.GetTranslation(Translations.TranslationType.WeaponType, "", TranslateKind.Google, deck.MasterId);
                }

                if (i == 1)
                {
                    MainWeapon = deck;
                }
                else
                {
                    WeaponLists.Add(deck);
                }

                this.ProgressStatus.Current++;
                this.ProgressBar();
            }


            for (int i = 0; i < WeaponLists.Count; i++)
            {
                if (WeaponLists[i].SkillAttribute1 == MasterAttribute ||
                    WeaponLists[i].SkillAttribute1 >= 7)
                {
                    this.SumAtt(WeaponLists[i].GeneralType1, WeaponLists[i]);
                }
                if (WeaponLists[i].SkillAttribute2 == MasterAttribute ||
                    WeaponLists[i].SkillAttribute2 >= 7)
                {
                    this.SumAtt(WeaponLists[i].GeneralType2, WeaponLists[i], true);
                }
            }
            if (MainWeapon.SkillAttribute1 == MasterAttribute ||
                MainWeapon.SkillAttribute1 >= 7)
            {
                this.SumAtt(MainWeapon.GeneralType1, MainWeapon);
            }
            if (MainWeapon.SkillAttribute2 == MasterAttribute ||
                MainWeapon.SkillAttribute2 >= 7)
            {
                this.SumAtt(MainWeapon.GeneralType2, MainWeapon, true);
            }

            this.SkillCounter.Baha += this.TotalBaha(this.ConBahaList);
            this.SkillCounter.Baha += this.TotalBaha(this.VisBahaList);

            this.DeckIsEnd = true;
            if (test.deck.pc.param != null)
            {
                SkillCounter.BasicAttack = test.deck.pc.param.attack;
            }
            this.DeckLoadingEnd();
        }
Example #2
0
        /// <summary>
        /// 기본 무기 리스트. 강화/리스트/창고가 포함됨
        /// </summary>
        /// <param name="oS"></param>

        private void ListDetail(Session oS)
        {
            this.WeaponListLoad();
            this.ListIsEnd = false;
            this.DeckIsEnd = false;
            if (this.WeaponLists == null)
            {
                this.WeaponLists = new List <WeaponInfo>();
            }
            else
            {
                this.WeaponLists.Clear();
                this.WeaponLists.TrimExcess();
            }
            JObject jsonFull = JObject.Parse(oS.GetResponseBodyAsString()) as JObject;
            dynamic test     = jsonFull;
            dynamic list     = test.list;


            List <dynamic> weaponList = new List <dynamic>();

            for (int i = 0; i < list.Count; i++)
            {
                weaponList.Add(list[i]);
            }

            this.ProgressStatus         = new LimitedValue();
            this.ProgressStatus.Max     = weaponList.Count;
            this.ProgressStatus.Min     = 0;
            this.ProgressStatus.Current = 0;

            this.ProgressBar();

            for (int i = 0; i < weaponList.Count; i++)
            {
                dynamic    tempIndex = weaponList[i].master;
                dynamic    tempparam = weaponList[i].param;
                WeaponInfo temp      = new WeaponInfo();

                temp.MasterId = tempIndex.id;
                temp.ParamId  = tempparam.id;               //무기 스킬레벨등을 저장하고 구별하기 위한 부분

                temp.ItemName = GrandcypherClient.Current.Translations.GetTranslation(Translations.TranslationType.WeaponList, "", TranslateKind.Google, temp.MasterId);
                if (temp.ItemName != string.Empty)
                {
                    temp.Element = GrandcypherClient.Current.Translations.GetTranslation(Translations.TranslationType.Element, "", TranslateKind.Google, temp.MasterId);
                    temp.Kind    = GrandcypherClient.Current.Translations.GetTranslation(Translations.TranslationType.WeaponType, "", TranslateKind.Google, temp.MasterId);
                }
                else
                {
                    int msid = temp.MasterId;
                    temp = MasterInfoLoad(temp.MasterId, Convert.ToInt32(tempparam.id));

                    if (temp.SkillName1 != string.Empty)
                    {
                        temp.SkillDetail1 = GrandcypherClient.Current.Translations.GetSkillInfo(temp.SkillName1, true);
                    }
                    else
                    {
                        temp.SkillDetail1 = string.Empty;
                    }
                    if (temp.SkillName2 != string.Empty)
                    {
                        temp.SkillDetail2 = GrandcypherClient.Current.Translations.GetSkillInfo(temp.SkillName2, true);
                    }
                    else
                    {
                        temp.SkillDetail2 = string.Empty;
                    }
                }
                temp.is_used = weaponList[i].is_used;

                temp = this.InputSkillInfo(temp);

                temp.SkillLv1 = WeaponLvLoad(temp.ParamId, 1);
                temp.SkillLv2 = WeaponLvLoad(temp.ParamId, 2);

                if (temp.SkillName1 == string.Empty || temp.SkillName1 == null)
                {
                    temp.vSkillLv1 = Visibility.Collapsed;
                }
                else
                {
                    temp.vSkillLv1 = Visibility.Visible;
                }
                if (temp.SkillName2 == string.Empty || temp.SkillName2 == null)
                {
                    temp.vSkillLv2 = Visibility.Collapsed;
                }
                else
                {
                    temp.vSkillLv2 = Visibility.Visible;
                }

                WeaponLists.Add(temp);
                this.ProgressStatus.Current++;
                this.ProgressBar();
            }
            this.ListIsEnd = true;
            this.LoadingEnd();
        }