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); }
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); }
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); }
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); }
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); }