コード例 #1
0
        public static SkillData ParseSkillData(IDictionary info, SkillData fill)
        {
            if (fill == null)
            {
                fill = new SkillData();
            }

            fill.CoolDown     = int.Parse(info["cooldown"].ToString());
            fill.DeathStatus  = info.Contains("deathStatus") && bool.Parse(info["deathStatus"].ToString());
            fill.EffectStatus = info.Contains("effectStatus") && bool.Parse(info["effectStatus"].ToString());
            fill.SkillId      = int.Parse(info["id"].ToString());
            fill.Index        = CombatantIndex.Parse(info["index"] as IDictionary);
            fill.Level        = int.Parse(info["level"].ToString());

            ArrayList required = info.Contains("required") ? info["required"] as ArrayList : null;

            if (required != null)
            {
                var enumerator = required.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    var idx = enumerator.Current;
                    fill.Required.Add(int.Parse(idx.ToString()));
                }
            }

            return(fill);
        }
コード例 #2
0
        public static CombatantData ParseCombatantData(IDictionary info, CombatantData fill)
        {
            if (fill == null)
            {
                fill = new CombatantData();
            }

            fill.IsPlayer       = info.Contains("isUser") && info["isUser"] != null && bool.Parse(info["isUser"].ToString());
            fill.IsPlayerMirror = info.Contains("isUserMirror") && info["isUserMirror"] != null && bool.Parse(info["isUserMirror"].ToString());
            fill.PlayerId       = info.Contains("uid") && info["uid"] != null?long.Parse(info["uid"].ToString()) : 0;

            fill.IsEnemy = info.Contains("isEnemy") && info["isEnemy"] != null && bool.Parse(info["isEnemy"].ToString());
            fill.EnemyId = info.Contains("enemyId") && info["enemyId"] != null?int.Parse(info["enemyId"].ToString()) : 0;

            fill.IsPlayerTroop       = info.Contains("isPlayerTroop") && info["isPlayerTroop"] != null && bool.Parse(info["isPlayerTroop"].ToString());
            fill.IsPlayerTroopMirror = info.Contains("isPlayerTroopMirror") && info["isPlayerTroopMirror"] != null && bool.Parse(info["isPlayerTroopMirror"].ToString());
            fill.IsEnemyTroop        = info.Contains("isEnemyTroop") && info["isEnemyTroop"] != null && bool.Parse(info["isEnemyTroop"].ToString());
            fill.TroopId             = info.Contains("troopId") && info["troopId"] != null?int.Parse(info["troopId"].ToString()) : 0;

            fill.Threaten = info.Contains("threaten") && bool.Parse(info["threaten"].ToString());
            fill.Level    = info.Contains("level") && info["level"] != null?int.Parse(info["level"].ToString()) : 0;

            fill.Name        = info.Contains("name") ? info["name"].ToString() : string.Empty;
            fill.Model       = info["model"].ToString();
            fill.Portrait    = info["portrait"].ToString();
            fill.Position    = info["pos"].ToString();
            fill.TplId       = int.Parse(info["tplId"].ToString());
            fill.CharacterId = int.Parse(info["characterId"].ToString());
            fill.Index       = CombatantIndex.Parse(info["index"] as IDictionary);

            ArrayList equipments = info.Contains("equipments") ? info["equipments"] as ArrayList : null;

            if (equipments != null)
            {
                fill.Equipments.Clear();

                var enumerator = equipments.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    IDictionary equip     = enumerator.Current as IDictionary;
                    string      name      = equip["name"].ToString();
                    string      assetName = equip["assetName"].ToString();
                    fill.Equipments[name] = assetName;
                }
            }

            if (string.IsNullOrEmpty(fill.Name))
            {
                fill.Name = (string)GlobalUtils.CallStaticHotfixEx("Hotfix_LT.Data.CharacterTemplateManager", "Instance", "GetHeroName", fill.CharacterId);
            }

            return(fill);
        }
コード例 #3
0
        public static ImpactData ParseImpactData(IDictionary info, ImpactData fill)
        {
            if (fill == null)
            {
                fill = new ImpactData();
            }

            fill.Fadeout     = bool.Parse(info["fadeout"].ToString());
            fill.ImpactId    = int.Parse(info["id"].ToString());
            fill.ImpactIndex = int.Parse(info["impact_index"].ToString());
            fill.Sender      = CombatantIndex.Parse(info["sender"] as IDictionary);
            fill.SkillId     = int.Parse(info["skill_id"].ToString());
            fill.TurnLeft    = int.Parse(info["turn_left"].ToString());

            return(fill);
        }
コード例 #4
0
        public override bool Parse(Hashtable info)
        {
            if (!base.Parse(info))
            {
                return(false);
            }

            RemoveIndex = CombatantIndex.Parse(info["removeIndex"] as Hashtable);
            if (RemoveIndex == null)
            {
                EB.Debug.LogWarning("RemoveCombatantEffectEvent.Parse: removeIndex is empty {0}", EB.JSON.Stringify(info));
                return(false);
            }

            return(true);
        }
コード例 #5
0
        public override bool Parse(Hashtable info)
        {
            m_owner = CombatantIndex.Parse(info["sender"] as Hashtable);
            if (m_owner == null)
            {
                EB.Debug.LogWarning("CombatImpactEvent.Parse: owner is empty {0}", EB.JSON.Stringify(info));
                return(false);
            }

            ImpactData = CombatUtil.ParseImpactData(info["impact_data"] as Hashtable, null);

            List <CombatEvent> children = CombatUtil.ParseEffects(info);

            if (children != null)
            {
                m_children = children;
            }

            int len = m_children.Count;

            for (int i = 0; i < len; i++)
            {
                CombatEffectEvent effect = m_children[i] as CombatEffectEvent;
                if (effect.Timing == eCombatEventTiming.AUTO)
                {
                    effect.Timing = eCombatEventTiming.ON_START;
                }

                if (effect.Sender == null)
                {
                    effect.Sender = new CombatantIndex(m_owner.TeamIndex, m_owner.IndexOnTeam);
                }
            }

            return(true);
        }