Beispiel #1
0
 public void OnEnable()
 {
     skillAsset = (SkillAsset)target;
     skillAsset.ListSkillGroup.Sort((x, y) => { return(x.FrameTime < y.FrameTime ?-1:1); });
     addTagFrame = 0;
     Init();
 }
Beispiel #2
0
    private void LoadAssetHandler(Object target, string path)
    {
        SkillAsset gameObject = target as SkillAsset;

        if (null == gameObject)
        {
            return;
        }
        SkillAsset skillAsset = GameObject.Instantiate(gameObject);

        if (null != skillAsset)
        {
            for (int i = 0; i < skillAsset.ListSkillGroup.Count; i++)
            {
                for (int k = 0; k < skillAsset.ListSkillGroup[i].ListSkillInfo.Count; k++)
                {
                    uint frame = Command.StartFrame + skillAsset.ListSkillGroup[i].FrameTime;
                    if (skillAsset.ListSkillGroup[i].FrameTime < 0)
                    {
                        frame = skillAsset.ListSkillGroup[i].FrameTime;
                    }
                    if (!_skillActionDic.ContainsKey(frame))
                    {
                        _skillActionDic.Add(frame, new List <SkillActionBase>());
                    }
                    _skillActionDic[frame].Add(GetSkillActionBase(frame, skillAsset.ListSkillGroup[i].ListSkillInfo[k]));
                }
            }
        }
    }
Beispiel #3
0
    public void ShowDetail(string skillId)
    {
        SkillAsset sa = pSkillMgr.GetSkillAsset(skillId);

        if (sa == null)
        {
            view.DetailMask.gameObject.SetActive(true);
            return;
        }

        view.DetailName.text = sa.SkillName;
        view.DetailDesp.text = sa.SkingDesp;
        SkillInfo info = pSkillMgr.GetOwnedSkill(skillId);

        if (info == null)
        {
            //未学习技能
            view.AfterStudyPanel.gameObject.SetActive(false);
            view.BeforeStudyPanel.gameObject.SetActive(true);
            view.MoneyCost.text = "1000";
            string s = "";
            for (int i = 0; i < sa.PrerequistSkills.Count; i++)
            {
                s += sa.PrerequistSkills[i].skillId;
                s += sa.PrerequistSkills[i].level;
                s += "\n";
            }

            view.Prerequist.text = s;

            string   cards      = sa.AttachCards[0];
            string[] cardsArray = cards.Split(',');
            view.CurLevelCards.text = "";
            for (int i = 0; i < cardsArray.Length; i++)
            {
                view.NextLevelCards.text += cardsArray[i] + "\n";
            }
        }
        else
        {
            view.AfterStudyPanel.gameObject.SetActive(true);
            view.BeforeStudyPanel.gameObject.SetActive(false);
            view.Difficulty.text = "300";


            UpdateExp(info);


            string   cards      = sa.AttachCards[info.SkillLvl - 1];
            string[] cardsArray = cards.Split(',');
            view.CurLevelCards.text = "";
            for (int i = 0; i < cardsArray.Length; i++)
            {
                view.CurLevelCards.text += cardsArray[i] + "\n";
            }
        }

        view.DetailMask.gameObject.SetActive(false);
    }
Beispiel #4
0
    public SkillAsset GetSkillAsset(string skillId)
    {
        SkillAsset asset = null;

        if (!SkillAssetDict.TryGetValue(skillId, out asset))
        {
            asset = LoadSkillAsset(skillId);
        }
        return(asset);
    }
Beispiel #5
0
    public SkillAsset LoadSkillAsset(string SkillId)
    {
        SkillAsset asset = mResLoader.LoadResource <SkillAsset>("Skills/SkillId");

        if (asset != null)
        {
            SkillAssetDict.Add(SkillId, asset);
        }
        return(asset);
    }
Beispiel #6
0
    public int Func(string rootSkill, int depth)
    {
        SkillAsset sa         = GetSkillAsset(rootSkill);
        int        totalWidth = 0;

        foreach (SkillPrerequist pre in sa.PrerequistSkills)
        {
            string nextId = pre.skillId;
            int    width  = Func(nextId, depth + 1);
            totalWidth += width;
        }
        return(totalWidth);
    }
Beispiel #7
0
    private int CalculateExp(SkillInfo skillInfo)
    {
        SkillAsset sa = GetSkillAsset(skillInfo.SkillId);

        if (sa == null)
        {
            return(0);
        }
        //难度 属性值 track经验值 计算出来 有min 和 max
        //int difficult=sa.Difficulties[0];
        //mRoleMdl.AddExpBonux
        return(30);
    }
Beispiel #8
0
    public static void main()
    {
        string     path       = GetSelectedPathOrFallback();
        SkillAsset skillAsset = AssetDatabase.LoadAssetAtPath(path + "/skillTemp.asset", typeof(SkillAsset)) as SkillAsset;
        bool       isNewAsset = skillAsset == null ? true : false;

        if (isNewAsset)
        {
            skillAsset = ScriptableObject.CreateInstance <SkillAsset>();
            skillAsset.ListSkillGroup = new List <SkillAssetInforGroup>();
            AssetDatabase.CreateAsset(skillAsset, path + "/skillTemp.asset");
        }
    }
Beispiel #9
0
    public void LearnCurSkill()
    {
        //if(selectedSkill == -1 || selectedSkill >= model.NowSkills.Count)
        //{
        //    return;
        //}

        if (selectedSkillId == "")
        {
            return;
        }
        //string skillId = model.NowSkills[selectedSkill];
        string    skillId = selectedSkillId;
        SkillInfo skill   = pSkillMgr.GetOwnedSkill(skillId);

        //满级则返回
        if (skill != null && skill.SkillLvl == pSkillMgr.GetSkillAsset(skillId).MaxLevel)
        {
            return;
        }
        int targetLevel = 1;

        if (skill != null)
        {
            targetLevel = skill.SkillLvl + 1;
        }
        SkillAsset sa = pSkillMgr.GetSkillAsset(selectedSkillId);

        if (rmgr.Money < sa.Prices[targetLevel - 1])
        {
            mUIMgr.ShowHint("没钱");
            return;
        }
        rmgr.GainMoney(sa.Prices[targetLevel - 1]);

        pSkillMgr.GainSkills(skillId);
        ShowDetail(skillId);
    }
Beispiel #10
0
    public void GainSkills(string skillId)
    {
        if (GetSkillAsset(skillId) == null)
        {
            return;
        }

        SkillAsset sa = GetSkillAsset(skillId);

        foreach (SkillPrerequist s in sa.PrerequistSkills)
        {
            SkillInfo preSkill = GetOwnedSkill(s.skillId);
            if (preSkill == null || preSkill.SkillLvl < s.level)
            {
                return;
            }
        }

        SkillInfo skillInfo = GetOwnedSkill(skillId);

        if (skillInfo == null)
        {
            skillInfo = new SkillInfo(skillId);
            OwnedSkills.Add(skillInfo);
            skillInfo.SkillLvl = 1;
        }
        else
        {
            skillInfo.SkillLvl += 1;
            mCardMgr.RemoveSkillCards(skillId);
        }
        if (skillInfo.SkillLvl - 1 < sa.AttachCards.Count)
        {
            string[] cards = sa.AttachCards[skillInfo.SkillLvl - 1].Split(',');
            mCardMgr.AddSkillCards(skillId, new List <string>(cards));
        }
    }
        private void DisplaySelectedSkillContent(SkillAsset skill)
        {
            GUILayout.BeginVertical();
            GUILayout.BeginVertical(EditorStyles.helpBox);
            GUILayout.Label("Parameters", EditorStyles.boldLabel);

            GUILayout.BeginHorizontal();
            GUILayout.Label("Skill Name", GUILayout.Width(100));
            skill.Name = EditorGUILayout.TextField(skill.Name);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Cooldown", GUILayout.Width(100));
            skill.Cooldown = EditorGUILayout.FloatField(skill.Cooldown);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Cast Time", GUILayout.Width(100));
            skill.CastTime = EditorGUILayout.FloatField(skill.CastTime);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Range", GUILayout.Width(100));
            skill.Range = EditorGUILayout.FloatField(skill.Range);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Duration", GUILayout.Width(100));
            skill.Delay = EditorGUILayout.FloatField(skill.Delay);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Interruptable", GUILayout.Width(100));
            skill.Interruptable = EditorGUILayout.Toggle(skill.Interruptable);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Unlocked Level", GUILayout.Width(100));
            skill.RequiredLevel = EditorGUILayout.IntField(skill.RequiredLevel);
            GUILayout.EndHorizontal();

            foreach (var extension in SkillEditorUtility.GetExtensions())
            {
                if (extension.CanHandleType(skill.GetType()))
                {
                    extension.OnGUI(skill);
                }
            }
            GUILayout.EndVertical();

            GUILayout.BeginVertical(EditorStyles.helpBox, GUILayout.Height(200));
            GUILayout.Label("Prerequisites", EditorStyles.boldLabel);

            skillPrerequisiteScroll = GUILayout.BeginScrollView(skillPrerequisiteScroll, false, true);

            for (int i = 0; i < skill.Prerequisites.Count; i++)
            {
                SkillPrerequisiteAsset prerequisite = skill.Prerequisites [i];
                GUILayout.BeginHorizontal(EditorStyles.toolbar);
                if (GUILayout.Button("-", EditorStyles.toolbarButton, GUILayout.Width(30)) &&
                    EditorUtility.DisplayDialog("Remove prerequisite", "Are you sure you want to delete the prerequisite?", "Delete", "Cancel"))
                {
                    skill.Prerequisites.RemoveAt(i);
                }
                GUILayout.Label("StatType", GUILayout.Width(100));
                //prerequisite.StatName = EditorGUILayout.TextField (prerequisite.StatName);

                var targetStatType = RPGStatTypeDatabase.Instance.Get(prerequisite.StatName, true);
                if (GUILayout.Button(targetStatType == null ? "Assign Type" : targetStatType.Name, EditorStyles.toolbarButton, GUILayout.Width(100)))
                {
                    XmlDatabaseEditorUtility.ShowContext(RPGStatTypeDatabase.Instance, (statTypeAsset) => {
                        prerequisite.StatName = statTypeAsset.Id;
                    }, typeof(RPGStatTypeWindow));
                }

                GUILayout.Label("StatValue", GUILayout.Width(100));
                prerequisite.StatValue = EditorGUILayout.IntField(prerequisite.StatValue);
                GUILayout.EndHorizontal();
            }

            GUILayout.FlexibleSpace();
            GUILayout.EndScrollView();

            if (GUILayout.Button("Add Prerequisite", EditorStyles.toolbarButton))
            {
                var newPrerequisite = new SkillPrerequisiteAsset();
                skill.Prerequisites.Add(newPrerequisite);
            }

            GUILayout.EndVertical();

            GUILayout.BeginVertical(EditorStyles.helpBox);
            GUILayout.Label("Effects", EditorStyles.boldLabel);
            skillEffectScroll = GUILayout.BeginScrollView(skillEffectScroll, false, true);

            GUILayout.BeginHorizontal();
            GUILayout.Label("", EditorStyles.boldLabel, GUILayout.Width(30));
            GUILayout.Label("Type", EditorStyles.boldLabel, GUILayout.Width(150));
            GUILayout.Label("Delay", EditorStyles.boldLabel, GUILayout.Width(50));
            GUILayout.EndHorizontal();

            for (int i = 0; i < skill.Effects.Count; i++)
            {
                //foreach(var effect in skill.Effects){
                EffectAsset effect = skill.Effects[i];
                GUILayout.BeginHorizontal(EditorStyles.toolbar);

                if (GUILayout.Button("-", EditorStyles.toolbarButton, GUILayout.Width(30)) &&
                    EditorUtility.DisplayDialog("Remove effect", "Are you sure you want to delete the effect?", "Delete", "Cancel"))
                {
                    skill.Effects.RemoveAt(i);
                }

                bool clicked = GUILayout.Toggle(i == SelectedEffectIndex, effect.GetType().Name, ToggleButtonStyle, GUILayout.Width(150));
                if (clicked != (i == SelectedEffectIndex))
                {
                    if (clicked)
                    {
                        SelectedEffectIndex = i;
                        GUI.FocusControl(null);
                    }
                    else
                    {
                        SelectedEffectIndex = -1;
                    }
                }

                effect.Delay = EditorGUILayout.FloatField(effect.Delay, GUILayout.Width(50));
                GUILayout.EndHorizontal();


                if (SelectedEffectIndex == i)
                {
                    GUILayout.BeginVertical(EditorStyles.helpBox);
                    foreach (var extension in EffectEditorUtility.GetExtensions())
                    {
                        if (extension.CanHandleType(effect.GetType()))
                        {
                            extension.OnGUI(effect);
                        }
                    }
                    GUILayout.EndVertical();
                }
            }

            //Object source = null;
            //source = EditorGUILayout.ObjectField(source, typeof(Object), true);
            //AssetDatabase.GetAssetPath (source);


            GUILayout.FlexibleSpace();
            GUILayout.EndScrollView();

            if (GUILayout.Button("Add Effect", EditorStyles.toolbarButton))
            {
                if (typeof(PositionSkillAsset).IsAssignableFrom(skill.GetType()))
                {
                    XmlDatabaseEditorUtility.GetGenericMenu(EffectEditorUtility.GetPositionEffectNames(), (index) => {
                        var skillEffectAsset = EffectEditorUtility.CreatePositionEffectAsset(index);
                        skill.Effects.Add(skillEffectAsset);
                        EditorWindow.FocusWindowIfItsOpen <SkillCollectionWindow> ();
                    }).ShowAsContext();
                }
                else if (typeof(TargetSkillAsset).IsAssignableFrom(skill.GetType()))
                {
                    XmlDatabaseEditorUtility.GetGenericMenu(EffectEditorUtility.GetTargetEffectNames(), (index) => {
                        var skillEffectAsset = EffectEditorUtility.CreateTargetEffectAsset(index);
                        skill.Effects.Add(skillEffectAsset);
                        EditorWindow.FocusWindowIfItsOpen <SkillCollectionWindow> ();
                    }).ShowAsContext();
                }
                else
                {
                    XmlDatabaseEditorUtility.GetGenericMenu(EffectEditorUtility.GetNames(), (index) => {
                        var skillEffectAsset = EffectEditorUtility.CreateAsset(index);
                        skill.Effects.Add(skillEffectAsset);
                        EditorWindow.FocusWindowIfItsOpen <SkillCollectionWindow> ();
                    }).ShowAsContext();
                }
            }

            GUILayout.EndVertical();
            GUILayout.EndVertical();
        }
Beispiel #12
0
    public void GainSkills(string skillId)
    {
        if (GetSkillAsset(skillId) == null)
        {
            return;
        }

        SkillAsset sa = GetSkillAsset(skillId);

        foreach (SkillPrerequist s in sa.PrerequistSkills)
        {
            SkillInfo preSkill = GetOwnedSkill(s.skillId);
            if (preSkill == null || preSkill.SkillLvl < s.level)
            {
                return;
            }
        }

        SkillInfo skillInfo = GetOwnedSkill(skillId);

        if (skillInfo == null)
        {
            skillInfo = new SkillInfo(skillId, sa);
            OwnedSkills.Add(skillInfo);
            skillInfo.SkillLvl = 1;

            BaseSkillAsset bsa = sa as BaseSkillAsset;
            if (bsa != null)
            {
                mCardMgr.AddSkillCards(skillId, new List <string>(bsa.BaseCardList));
            }
        }
        else
        {
            skillInfo.SkillLvl += 1;
        }


        mRoleMdl.AddAllStatus(sa.LevelStatusAdd[skillInfo.SkillLvl - 1]);
        Debug.Log("加了" + sa.LevelStatusAdd[skillInfo.SkillLvl - 1]);

        ExtentSkillAsset esa = sa as ExtentSkillAsset;

        if (esa == null)
        {
            return;
        }

        if (skillInfo.SkillLvl > 1)
        {
            AttachCardsInfo attachInfo = esa.AttachCardInfos[skillInfo.SkillLvl - 2];
            for (int i = 0; i < attachInfo.operators.Count; i++)
            {
                mCardMgr.ChangeSkillCard(esa.BaseSkillId, attachInfo.operators[i].to, attachInfo.operators[i].from);
            }
        }
        {
            AttachCardsInfo attachInfo = esa.AttachCardInfos[skillInfo.SkillLvl - 1];

            for (int i = 0; i < attachInfo.operators.Count; i++)
            {
                mCardMgr.ChangeSkillCard(esa.BaseSkillId, attachInfo.operators[i].from, attachInfo.operators[i].to);
            }
        }
    }
Beispiel #13
0
 public SkillInfo(string skillId, SkillAsset sa)
 {
     this.SkillId = skillId;
     this.sa      = sa;
 }
Beispiel #14
0
    public void SwitchChoose(int newTab)
    {
        if (newTab == -1 || model.nowTab == newTab)
        {
            return;
        }


        model.nowTab = newTab;


        for (int i = 0; i < view.TypeTabGroup.tabs.Count; i++)
        {
            CardsTabView childView = view.TypeTabGroup.tabs[i] as CardsTabView;
            childView.BG.color = Color.white;
        }
        {
            CardsTabView childView = view.TypeTabGroup.tabs[newTab] as CardsTabView;
            childView.BG.color = Color.red;
        }

        List <string> skills = new List <string>();

        if (newTab == 0)
        {
            skills = pSkillMgr.GetSkillByType("common");
        }
        else if (newTab == 1)
        {
            skills = pSkillMgr.GetSkillByType("quality");
        }
        else if (newTab == 2)
        {
            skills = pSkillMgr.GetSkillByType("caiyi");
        }
        else if (newTab == 3)
        {
            skills = pSkillMgr.GetSkillByType("game");
        }
        model.NowSkills = skills;
        foreach (SkillItemView vv in view.SkillViewList)
        {
            resLoader.ReleaseGO("UI/Schedule/ScheduleItem", vv.root.gameObject);
        }
        view.SkillViewList.Clear();


        foreach (string sid in skills)
        {
            SkillAsset sa = pSkillMgr.GetSkillAsset(sid);

            GameObject    go = resLoader.Instantiate("UI/Schedule/ScheduleItem", view.ChoicesContainer);
            SkillItemView vv = new SkillItemView();
            vv.BindView(go.transform);
            vv.Title.text = sa.SkillName;
            view.SkillViewList.Add(vv);
            vv.Unselect();

            ClickEventListerner listener = vv.Icon.gameObject.GetComponent <ClickEventListerner>();
            if (listener == null)
            {
                listener = vv.Icon.gameObject.AddComponent <ClickEventListerner>();
            }
            listener.ClearClickEvent();
            listener.OnClickEvent += delegate {
                SelectSkill(vv);
            };
        }

        HideDetail();
    }
Beispiel #15
0
    public void ShowDetail(string skillId)
    {
        SkillAsset sa = pSkillMgr.GetSkillAsset(skillId);

        if (sa == null)
        {
            HideDetail();
            return;
        }

        view.DetailName.text = sa.SkillName;
        view.DetailDesp.text = sa.SkingDesp;
        SkillInfo info = pSkillMgr.GetOwnedSkill(skillId);

        if (info == null)
        {
            //未学习技能
            view.PracticeePanel.gameObject.SetActive(false);
            view.LearnPanel.gameObject.SetActive(true);

            view.LearnBtn.gameObject.SetActive(true);
            {
                view.MoneyCost.gameObject.SetActive(true);
                view.MoneyCost.text         = sa.Prices[0] + "";
                view.LearningNextLevel.text = "(0->1)";
            }
            view.PracticeBtn.gameObject.SetActive(false);

            view.CurLevelComp.gameObject.SetActive(false);
            view.NextLevelComp.gameObject.SetActive(true);


            string s = "";
            for (int i = 0; i < sa.PrerequistSkills.Count; i++)
            {
                s += sa.PrerequistSkills[i].skillId;
                s += sa.PrerequistSkills[i].level;
                s += "\n";
            }

            view.NextLevelCards.text = sa.LevelDesp[0];
            view.NextLevelAward.text = "属性+" + sa.LevelStatusAdd[0];

            view.Prerequist.text = s;

            //ExtentSkillAsset esa = sa as ExtentSkillAsset;
            //if(esa != null && esa.AttachCardInfos.Count!=0)
            //{
            //    AttachCardsInfo attach = esa.AttachCardInfos[0];
            //    view.CurLevelCards.text = "";
            //    for (int i = 0; i < attach.operators.Count; i++)
            //    {

            //    }
            //}
        }
        else
        {
            BaseSkillAsset bsa = info.sa as BaseSkillAsset;
            if (bsa == null)
            {
                //普通技能
                view.PracticeePanel.gameObject.SetActive(true);
                view.LearnPanel.gameObject.SetActive(false);
                view.Difficulty.text = "300";

                if (info.SkillLvl == info.sa.MaxLevel)
                {
                    view.PracticeBtn.gameObject.SetActive(false);
                }
                else
                {
                    view.PracticeBtn.gameObject.SetActive(true);
                }


                view.LearnBtn.gameObject.SetActive(false);
            }
            else
            {
                //base技能
                view.PracticeePanel.gameObject.SetActive(false);
                view.LearnPanel.gameObject.SetActive(true);

                if (info.SkillLvl == info.sa.MaxLevel)
                {
                    view.LearnBtn.gameObject.SetActive(false);
                    view.MoneyCost.gameObject.SetActive(false);
                    view.LearningNextLevel.text = "(已满级)";
                }
                else
                {
                    view.LearnBtn.gameObject.SetActive(true);
                    view.MoneyCost.text = sa.Prices[info.SkillLvl] + "";
                    view.MoneyCost.gameObject.SetActive(true);
                    view.LearningNextLevel.text = "(" + (info.SkillLvl) + "->" + (info.SkillLvl + 1) + ")";
                }

                view.PracticeBtn.gameObject.SetActive(false);
            }



            view.CurLevelComp.gameObject.SetActive(true);

            UpdateExp(info);



            view.CurLevelCards.text = sa.LevelDesp[info.SkillLvl - 1];
            view.CurLevelAward.text = "属性+" + sa.LevelStatusAdd[info.SkillLvl - 1];

            if (info.SkillLvl == sa.MaxLevel)
            {
                view.NextLevelComp.gameObject.SetActive(false);
            }
            else
            {
                view.NextLevelComp.gameObject.SetActive(true);
                view.NextLevelCards.text = sa.LevelDesp[info.SkillLvl];
                view.NextLevelAward.text = "属性+" + sa.LevelStatusAdd[info.SkillLvl];
            }

            //ExtentSkillAsset esa = sa as ExtentSkillAsset;
            //if (esa != null && esa.AttachCardInfos.Count != 0)
            //{
            //    AttachCardsInfo attach = esa.AttachCardInfos[0];
            //    view.CurLevelCards.text = "";
            //    for (int i = 0; i < attach.operators.Count; i++)
            //    {

            //    }
            //}
        }

        //view.DetailMask.gameObject.SetActive(false);
        view.Detail.gameObject.SetActive(true);
    }
Beispiel #16
0
        public IEnumerator Init(MVersion versions)
        {
            CScene             scene = SceneManager.CurrentScene;
            SUser              sUser = Global.SUser;
            List <IEnumerator> list  = new List <IEnumerator>();

            list.Add(sUser.Download(PromptMessageAsset.Url, versions.prompt_message, (AssetBundle assetbundle) => {
                Debug.Log("CLogo assetbundle=" + assetbundle);
                PromptMessageAsset.assetbundle = assetbundle;
            }));
            list.Add(sUser.Download(LanguageAsset.WORD_URL, versions.word, (AssetBundle assetbundle) => {
                LanguageAsset.assetbundle = assetbundle;
                Language.Reset(LanguageAsset.Data.words);
                LanguageAsset.Clear();
            }));
            list.Add(sUser.Download(ImageAssetBundleManager.horseUrl, versions.horse_img, (AssetBundle assetbundle) => {
                AvatarSpriteAsset.assetbundle = assetbundle;
                ImageAssetBundleManager.horse = AvatarSpriteAsset.Data.meshs;
            }));
            list.Add(sUser.Download(ImageAssetBundleManager.headUrl, versions.head_img, (AssetBundle assetbundle) => {
                AvatarSpriteAsset.assetbundle = assetbundle;
                ImageAssetBundleManager.head  = AvatarSpriteAsset.Data.meshs;
            }));
            list.Add(sUser.Download(ImageAssetBundleManager.clothesUrl, versions.clothes_img, (AssetBundle assetbundle) => {
                AvatarSpriteAsset.assetbundle   = assetbundle;
                ImageAssetBundleManager.clothes = AvatarSpriteAsset.Data.meshs;
            }));
            list.Add(sUser.Download(ImageAssetBundleManager.weaponUrl, versions.weapon_img, (AssetBundle assetbundle) => {
                AvatarSpriteAsset.assetbundle  = assetbundle;
                ImageAssetBundleManager.weapon = AvatarSpriteAsset.Data.meshs;
            }));
            list.Add(sUser.Download(WorldAsset.Url, versions.world, (AssetBundle assetbundle) => {
                WorldAsset.assetbundle = assetbundle;
                Global.worlds          = WorldAsset.Data.worlds;
            }));
            list.Add(sUser.Download(ConstantAsset.Url, versions.constant, (AssetBundle assetbundle) => {
                ConstantAsset.assetbundle = assetbundle;
                Global.Constant           = ConstantAsset.Data.constant;
            }));
            list.Add(sUser.Download(NpcAsset.Url, versions.npc, (AssetBundle assetbundle) => {
                NpcAsset.assetbundle = assetbundle;
                NpcCacher.Instance.Reset(NpcAsset.Data.npcs);
                NpcAsset.Clear();
            }));
            list.Add(sUser.Download(NpcEquipmentAsset.Url, versions.npc_equipment, (AssetBundle assetbundle) => {
                NpcEquipmentAsset.assetbundle = assetbundle;
                NpcEquipmentCacher.Instance.Reset(NpcEquipmentAsset.Data.npc_equipments);
                NpcEquipmentAsset.Clear();
            }));
            list.Add(sUser.Download(CharacterStarAsset.Url, versions.characterstar, (AssetBundle assetbundle) => {
                CharacterStarAsset.assetbundle = assetbundle;
                CharacterStarCacher.Instance.Reset(CharacterStarAsset.Data.characterStars);
                CharacterStarAsset.Clear();
            }));

            /*list.Add(sUser.Download(AreaAsset.Url, versions.area, (AssetBundle assetbundle)=>{
             *  AreaAsset.assetbundle = assetbundle;
             *  AreaCacher.Instance.Reset(AreaAsset.Data.areas);
             *  AreaAsset.Clear();
             * }));*/
            list.Add(sUser.Download(ItemAsset.Url, versions.item, (AssetBundle assetbundle) => {
                ItemAsset.assetbundle = assetbundle;
                ItemCacher.Instance.Reset(ItemAsset.Data.items);
                ItemAsset.Clear();
            }));

            /*list.Add(sUser.Download(MissionAsset.Url, versions.mission, (AssetBundle assetbundle)=>{
             *  MissionAsset.assetbundle = assetbundle;
             *  MissionCacher.Instance.Reset(MissionAsset.Data.missions);
             *  MissionAsset.Clear();
             * }));*/
            list.Add(sUser.Download(SkillAsset.Url, versions.skill, (AssetBundle assetbundle) => {
                SkillAsset.assetbundle = assetbundle;
                SkillCacher.Instance.Reset(SkillAsset.Data.skills);
                SkillAsset.Clear();
            }));
            list.Add(sUser.Download(StrategyAsset.Url, versions.strategy, (AssetBundle assetbundle) => {
                StrategyAsset.assetbundle = assetbundle;
                StrategyCacher.Instance.Reset(StrategyAsset.Data.strategys);
                StrategyAsset.Clear();
            }));
            list.Add(sUser.Download(ExpAsset.Url, versions.exp, (AssetBundle assetbundle) => {
                ExpAsset.assetbundle = assetbundle;
                ExpCacher.Instance.Reset(ExpAsset.Data.exps);
                ExpAsset.Clear();
            }));
            list.Add(sUser.Download(BattlefieldAsset.Url, versions.battlefield, (AssetBundle assetbundle) => {
                BattlefieldAsset.assetbundle = assetbundle;
                BattlefieldCacher.Instance.Reset(BattlefieldAsset.Data.battlefields);
                BattlefieldAsset.Clear();
            }));
            list.Add(sUser.Download(BuildingAsset.Url, versions.building, (AssetBundle assetbundle) => {
                BuildingAsset.assetbundle = assetbundle;
                BuildingCacher.Instance.Reset(BuildingAsset.Data.buildings);
                BuildingAsset.Clear();
            }));
            list.Add(sUser.Download(BaseMapAsset.Url, versions.top_map, (AssetBundle assetbundle) => {
                BaseMapAsset.assetbundle = assetbundle;
                BaseMapCacher.Instance.Reset(BaseMapAsset.Data.baseMaps);
                BaseMapAsset.Clear();
            }));
            list.Add(sUser.Download(CharacterAsset.Url, versions.character, (AssetBundle assetbundle) => {
                CharacterAsset.assetbundle = assetbundle;
                CharacterCacher.Instance.Reset(CharacterAsset.Data.characters);
                CharacterAsset.Clear();
            }));
            list.Add(sUser.Download(TileAsset.Url, versions.tile, (AssetBundle assetbundle) => {
                TileAsset.assetbundle = assetbundle;
                TileCacher.Instance.Reset(TileAsset.Data.tiles);
                TileAsset.Clear();
            }));
            list.Add(sUser.Download(LoginBonusAsset.Url, versions.loginbonus, (AssetBundle assetbundle) => {
                LoginBonusAsset.assetbundle = assetbundle;
                LoginBonusCacher.Instance.Reset(LoginBonusAsset.Data.loginbonuses);
                LoginBonusAsset.Clear();
            }));
            list.Add(sUser.Download(ImageAssetBundleManager.mapUrl, versions.map, (AssetBundle assetbundle) => {
                ImageAssetBundleManager.map = assetbundle;
            }, false));
            list.Add(sUser.Download(ImageAssetBundleManager.equipmentIconUrl, versions.equipmenticon_icon, (AssetBundle assetbundle) => {
                ImageAssetBundleManager.equipmentIcon = assetbundle;
            }, false));
            list.Add(sUser.Download(ImageAssetBundleManager.itemIconUrl, versions.item_icon, (AssetBundle assetbundle) => {
                ImageAssetBundleManager.itemIcon = assetbundle;
            }, false));
            list.Add(sUser.Download(ImageAssetBundleManager.skillIconUrl, versions.skill_icon, (AssetBundle assetbundle) => {
                ImageAssetBundleManager.skillIcon = assetbundle;
            }, false));
            list.Add(sUser.Download(HorseAsset.Url, versions.horse, (AssetBundle assetbundle) => {
                HorseAsset.assetbundle = assetbundle;
                EquipmentCacher.Instance.ResetHorse(HorseAsset.Data.equipments);
                HorseAsset.Clear();
            }));
            list.Add(sUser.Download(WeaponAsset.Url, versions.weapon, (AssetBundle assetbundle) => {
                WeaponAsset.assetbundle = assetbundle;
                EquipmentCacher.Instance.ResetWeapon(WeaponAsset.Data.equipments);
                WeaponAsset.Clear();
            }));
            list.Add(sUser.Download(ClothesAsset.Url, versions.clothes, (AssetBundle assetbundle) => {
                ClothesAsset.assetbundle = assetbundle;
                EquipmentCacher.Instance.ResetClothes(ClothesAsset.Data.equipments);
                ClothesAsset.Clear();
            }));
            list.Add(sUser.Download(StoryProgressAsset.Url, versions.character, (AssetBundle assetbundle) => {
                StoryProgressAsset.assetbundle = assetbundle;
                foreach (string key in StoryProgressAsset.Data.keys)
                {
                    App.Util.LSharp.LSharpVarlable.SetVarlable(key, "0");
                }
                StoryProgressAsset.Clear();
            }));
            if (App.Util.Global.SUser.self != null)
            {
                list.Add(sUser.RequestGet());
            }
            float step = 100f / list.Count;

            for (int i = 0; i < list.Count; i++)
            {
                CLoadingDialog.SetNextProgress((i + 1) * step);
                yield return(scene.StartCoroutine(list[i]));
            }
            yield return(0);
        }
Beispiel #17
0
        public static IEnumerator LoadAssetbundle(MVersion versions)
        {
            SUser sUser             = Global.SUser;
            List <IEnumerator> list = new List <IEnumerator>();

            list.Add(sUser.Download(ImageAssetBundleManager.horseUrl, versions.horse_img, (AssetBundle assetbundle) => {
                AvatarSpriteAsset.assetbundle = assetbundle;
                ImageAssetBundleManager.horse = AvatarSpriteAsset.Data.meshs;
            }));
            list.Add(sUser.Download(ImageAssetBundleManager.headUrl, versions.head_img, (AssetBundle assetbundle) => {
                AvatarSpriteAsset.assetbundle = assetbundle;
                ImageAssetBundleManager.head  = AvatarSpriteAsset.Data.meshs;
            }));
            list.Add(sUser.Download(ImageAssetBundleManager.clothesUrl, versions.clothes_img, (AssetBundle assetbundle) => {
                AvatarSpriteAsset.assetbundle   = assetbundle;
                ImageAssetBundleManager.clothes = AvatarSpriteAsset.Data.meshs;
            }));
            list.Add(sUser.Download(ImageAssetBundleManager.weaponUrl, versions.weapon_img, (AssetBundle assetbundle) => {
                AvatarSpriteAsset.assetbundle  = assetbundle;
                ImageAssetBundleManager.weapon = AvatarSpriteAsset.Data.meshs;
            }));
            list.Add(sUser.Download(ImageAssetBundleManager.equipmentIconUrl, versions.equipmenticon_icon, (AssetBundle assetbundle) => {
                ImageAssetBundleManager.equipmentIcon = assetbundle;
            }, false));
            list.Add(sUser.Download(CharacterAsset.Url, versions.character, (AssetBundle assetbundle) => {
                CharacterAsset.assetbundle = assetbundle;
                CharacterCacher.Instance.Reset(CharacterAsset.Data.characters);
                CharacterAsset.Clear();
            }));
            list.Add(sUser.Download(BattlefieldAsset.Url, versions.battlefield, (AssetBundle assetbundle) => {
                BattlefieldAsset.assetbundle = assetbundle;
                BattlefieldCacher.Instance.Reset(BattlefieldAsset.Data.battlefields);
                BattlefieldAsset.Clear();
            }));
            list.Add(sUser.Download(SkillAsset.Url, versions.skill, (AssetBundle assetbundle) => {
                SkillAsset.assetbundle = assetbundle;
                SkillCacher.Instance.Reset(SkillAsset.Data.skills);
                SkillAsset.Clear();
            }));
            list.Add(sUser.Download(NpcAsset.Url, versions.npc, (AssetBundle assetbundle) => {
                NpcAsset.assetbundle = assetbundle;
                NpcCacher.Instance.Reset(NpcAsset.Data.npcs);
                NpcAsset.Clear();
            }));
            list.Add(sUser.Download(TileAsset.Url, versions.tile, (AssetBundle assetbundle) => {
                TileAsset.assetbundle = assetbundle;
                TileCacher.Instance.Reset(TileAsset.Data.tiles);
                TileAsset.Clear();
            }));
            list.Add(sUser.Download(HorseAsset.Url, versions.horse, (AssetBundle assetbundle) => {
                HorseAsset.assetbundle = assetbundle;
                EquipmentCacher.Instance.ResetHorse(HorseAsset.Data.equipments);
                HorseAsset.Clear();
            }));
            list.Add(sUser.Download(WeaponAsset.Url, versions.weapon, (AssetBundle assetbundle) => {
                WeaponAsset.assetbundle = assetbundle;
                EquipmentCacher.Instance.ResetWeapon(WeaponAsset.Data.equipments);
                WeaponAsset.Clear();
            }));
            list.Add(sUser.Download(ClothesAsset.Url, versions.clothes, (AssetBundle assetbundle) => {
                ClothesAsset.assetbundle = assetbundle;
                EquipmentCacher.Instance.ResetClothes(ClothesAsset.Data.equipments);
                ClothesAsset.Clear();
            }));
            list.Add(sUser.Download(ConstantAsset.Url, versions.constant, (AssetBundle assetbundle) => {
                ConstantAsset.assetbundle = assetbundle;
                Global.Constant           = ConstantAsset.Data.constant;
            }));
            float step = 100f / list.Count;

            for (int i = 0; i < list.Count; i++)
            {
                //CLoadingDialog.SetNextProgress((i + 1) * step);
                yield return(AppManager.CurrentScene.StartCoroutine(list[i]));
            }
            yield return(0);
        }