예제 #1
0
 //Set Hero Featured
 public int SetHeroFeatured(int[] heroId, int playerId = 0, string token = "")
 {
     if (ParseToken(playerId, token))
     {
         HeroParam param = new HeroParam();
         param.player_id = apiPlayerId;
         param.token     = apiToken;
         param.heroes_id = String.Join(",", heroId);
         string paramJson = JsonUtility.ToJson(param);
         API    api       = new API("setherofeatured.php", "RSetHeroFeatured", paramJson, 1);
         param = null; paramJson = "";
         StartCoroutine(Congest.SendPOST(this, api));
         return(api.seed);
     }
     return(0);
 }
예제 #2
0
 //Set Costume
 public int SetCostume(int costumeId = 0, int playerId = 0, string token = "")
 {
     if (ParseToken(playerId, token))
     {
         HeroParam param = new HeroParam();
         param.player_id  = apiPlayerId;
         param.token      = apiToken;
         param.costume_id = costumeId;
         string paramJson = JsonUtility.ToJson(param);
         API    api       = new API("setcostume.php", "RSetCostume", paramJson, 1);
         param = null; paramJson = "";
         StartCoroutine(Congest.SendPOST(this, api));
         return(api.seed);
     }
     return(0);
 }
예제 #3
0
 public int GetHero(int heroGender = 0, int playerId = 0, string token = "")
 {
     if (ParseToken(playerId, token))
     {
         HeroParam param = new HeroParam();
         param.player_id   = apiPlayerId;
         param.token       = apiToken;
         param.hero_gender = heroGender;
         string paramJson = JsonUtility.ToJson(param);
         API    api       = new API("gethero.php", "RGetHero", paramJson, 1);
         param = null; paramJson = "";
         StartCoroutine(Congest.SendPOST(this, api));
         return(api.seed);
     }
     return(0);
 }
예제 #4
0
    private static void ParseSkill(ref HeroParam param, SecurityElement element)
    {
        if (param == null || element == null || element.Tag != "Skill")
        {
            return;
        }

        SkillParam skill = new SkillParam();

        skill.type = element.Attribute("enum").ToEnumEx <SkillEnum>();
        skill.cd   = element.Attribute("cd").ToFloatEx();
        //skill.attack = element.Attribute("attack").ToInt32Ex();
        skill.action     = element.Attribute("action").ToEnumEx <ActionEnum>();
        skill.triggerAt  = element.Attribute("triggerAt").ToFloatEx();
        skill.needTarget = element.Attribute("needTarget").ToBoolEx();
        skill.skillType  = element.Attribute("skillType").ToEnumEx <SkillType>();
        //skill.effects = new List<EffectParam>();
        param.skills.Add(skill);
    }
예제 #5
0
    private void OnInitParam(HeroParam _param)
    {
        param = _param;
        if (string.IsNullOrEmpty(data.name))
        {
            data.name = param.name;
        }
        if (data.height == 0)
        {
            data.height = param.height;
        }


        if (param.components != null)
        {
            for (int i = 0; i < param.components.Count; ++i)
            {
                HeroComponent component = ObjectPool.GetInstance <HeroComponent>(param.components[i].type);
                component.Init(this, param.components[i]);
                components.Add(component);
            }
        }

        //初始化技能
        if (param.skills != null)
        {
            for (int i = 0; i < param.skills.Count; ++i)
            {
                var skill = ObjectPool.GetInstance <HeroSkill>();
                skill.Init(this, param.skills[i]);
                skills.Add(param.skills[i].type, skill);
            }
        }
        //初始化动作状态机
        machine = ObjectPool.GetInstance <HeroActionMachine>();
        machine.Init(this);

        string assetBundleName = string.Format("assets/r/{0}.prefab", param.assetBundleName);
        string assetName       = string.Format("assets/r/{0}.prefab", param.assetName);

        LoadAsset(assetBundleName, assetName);
    }
예제 #6
0
    private static void ParseConfig(ref HeroParam param, SecurityElement element)
    {
        if (param == null || element == null || element.Tag != "Hero")
        {
            return;
        }
        param.name            = element.Attribute("name");
        param.height          = element.Attribute("height").ToFloatEx();
        param.radius          = element.Attribute("radius").ToFloatEx();
        param.assetBundleName = element.Attribute("bundleName");
        param.assetName       = element.Attribute("assetName");
        //param.searchDistance = element.Attribute("searchDistance").ToFloatEx();
        //param.attackDistance = element.Attribute("attackDistance").ToFloatEx();
        param.skills     = new List <SkillParam>();
        param.actions    = new List <ActionParam>();
        param.components = new List <ComponentParam>();
        if (element.Children != null)
        {
            for (int i = 0; i < element.Children.Count; ++i)
            {
                var child = element.Children[i] as SecurityElement;
                if (child.Tag == "Skill")
                {
                    ParseSkill(ref param, child);
                }
                else if (child.Tag == "Action")
                {
                    ParseAction(ref param.actions, child);
                }

                else if (child.Tag == "Component")
                {
                    ParseComponent(ref param, child);
                }
            }
        }
    }
예제 #7
0
    private static void ParseComponent(ref HeroParam param, SecurityElement element)
    {
        if (element == null || element.Tag != "Component")
        {
            return;
        }
        ComponentParam component = (ComponentParam)Activator.CreateInstance(Type.GetType(element.Attribute("param")));

        component.type = Type.GetType(element.Attribute("type"));

        param.components.Add(component);

        if (element.Children != null)
        {
            for (int i = 0; i < element.Children.Count; ++i)
            {
                var child = element.Children[i] as SecurityElement;
                if (child.Tag == "Param")
                {
                    ParseComponentParam(ref component, child);
                }
            }
        }
    }
예제 #8
0
    private void OnGUI()
    {
        _styleHeader.fontStyle = FontStyle.Bold;


        _styleSubHeader.fontStyle = FontStyle.Bold;


        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Профайлер с настройками героя", _styleHeader, GUILayout.Width(400));
        _playerParam = EditorGUILayout.ObjectField(_playerParam, typeof(HeroParam), true, GUILayout.Width(400)) as HeroParam;
        EditorGUILayout.EndHorizontal();

        if (_playerParam != null)
        {
            #region Основные способности героя Rage, Curse, Star
            EditorGUILayout.Separator();

            //EditorGUILayout.BeginHorizontal();
            //EditorGUILayout.LabelField("Показать основные способности героя", GUILayout.Width(300));
            //_showMainSkill = EditorGUILayout.Toggle( _showMainSkill);
            //EditorGUILayout.EndHorizontal();

            // if (_showMainSkill)
            {
                EditorGUILayout.LabelField("Активные способности героя", _styleHeader);
                EditorGUILayout.Separator();

                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("Время отката - Бешенство", GUILayout.Width(300));
                _playerParam.skillTwoCooldownTimerValue = EditorGUILayout.DelayedFloatField(_playerParam.skillTwoCooldownTimerValue, GUILayout.Width(400));
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("Время отката - Проклятая земля", GUILayout.Width(300));
                _playerParam.skillThreeCooldownTimerValue = EditorGUILayout.DelayedFloatField(_playerParam.skillThreeCooldownTimerValue, GUILayout.Width(400));
                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("Время отката - Взрыв", GUILayout.Width(300));
                _playerParam.skillFourCooldownTimerValue = EditorGUILayout.DelayedFloatField(_playerParam.skillFourCooldownTimerValue, GUILayout.Width(400));
                EditorGUILayout.EndHorizontal();
            }

            #endregion


            //EditorGUILayout.BeginHorizontal();
            //EditorGUILayout.LabelField("Показать остальные способности героя", GUILayout.Width(300));
            //_showOtherSkill = EditorGUILayout.Toggle(_showOtherSkill);
            //EditorGUILayout.EndHorizontal();

            // if (_showOtherSkill)
            {
                #region TriggerSkill
                EditorGUILayout.Separator();
                EditorGUILayout.Separator();
                EditorGUILayout.Separator();
                EditorGUILayout.LabelField("Триггерные навыки героя", _styleHeader);
                EditorGUILayout.LabelField("Шрапнель", _styleSubHeader);
                _playerParam.cooldownTimerValueFlak = EditorGUILayout.DelayedFloatField("Время отката ", _playerParam.cooldownTimerValueFlak);
                _playerParam.probabilityFlak        = EditorGUILayout.DelayedFloatField("Probability ", _playerParam.probabilityFlak);

                // EditorGUILayout.Separator();
                EditorGUILayout.LabelField("Огненная волна", _styleSubHeader);
                _playerParam.cooldownTimerValueFlame = EditorGUILayout.DelayedFloatField("Время отката ", _playerParam.cooldownTimerValueFlame);
                _playerParam.probabilityFlame        = EditorGUILayout.DelayedFloatField("Probability ", _playerParam.probabilityFlame);

                //  EditorGUILayout.Separator();
                EditorGUILayout.LabelField("Иглы", _styleSubHeader);
                _playerParam.cooldownTimerValueNails = EditorGUILayout.DelayedFloatField("Время отката ", _playerParam.cooldownTimerValueNails);
                _playerParam.probabilityNails        = EditorGUILayout.DelayedFloatField("Probability ", _playerParam.probabilityNails);
                #endregion

                #region KillSkill
                EditorGUILayout.Separator();
                EditorGUILayout.Separator();
                EditorGUILayout.Separator();
                EditorGUILayout.LabelField("Навыки убийства героя", _styleHeader);
                EditorGUILayout.LabelField("Мина", _styleHeader);
                _playerParam.killCountValueMine = EditorGUILayout.DelayedFloatField("Kill count ", _playerParam.killCountValueMine);
                EditorGUILayout.LabelField("Гейзер", _styleHeader);
                _playerParam.killCountValueGazer = EditorGUILayout.DelayedFloatField("Kill count ", _playerParam.killCountValueGazer);
                EditorGUILayout.LabelField("Кража энергии", _styleHeader);
                _playerParam.killCountValueRefresh = EditorGUILayout.DelayedFloatField("Kill count ", _playerParam.killCountValueRefresh);
                #endregion
            }
        }


        if (GUI.changed)
        {
            EditorUtility.SetDirty(_playerParam);
        }
    }