public bool Deserialize(JSON_CondEffectParam json) { if (json == null) { return(false); } this.iname = json.iname; this.job = json.job; this.buki = json.buki; this.birth = json.birth; this.sex = (ESex)json.sex; this.elem = (EElement)json.elem; this.cond = (ESkillCondition)json.cond; this.type = (ConditionEffectTypes)json.type; this.chk_target = (EffectCheckTargets)json.chktgt; this.chk_timing = (EffectCheckTimings)json.timing; this.value_ini = (OInt)json.vini; this.value_max = (OInt)json.vmax; this.rate_ini = (OInt)json.rini; this.rate_max = (OInt)json.rmax; this.turn_ini = (OInt)json.tini; this.turn_max = (OInt)json.tmax; this.curse = (OInt)json.curse; this.conditions = (EUnitCondition[])null; if (json.conds != null) { this.conditions = new EUnitCondition[json.conds.Length]; for (int index = 0; index < json.conds.Length; ++index) { if (json.conds[index] >= 0) { this.conditions[index] = (EUnitCondition)(1 << json.conds[index]); } } } this.v_poison_rate = (OInt)json.v_poi; this.v_poison_fix = (OInt)json.v_poifix; this.v_paralyse_rate = (OInt)json.v_par; this.v_blink_hit = (OInt)json.v_blihit; this.v_blink_avo = (OInt)json.v_bliavo; this.v_death_count = (OInt)json.v_dea; this.v_berserk_atk = (OInt)json.v_beratk; this.v_berserk_def = (OInt)json.v_berdef; this.v_fast = (OInt)json.v_fast; this.v_slow = (OInt)json.v_slow; this.v_donmov = (OInt)json.v_don; this.v_auto_hp_heal = (OInt)json.v_ahp; this.v_auto_mp_heal = (OInt)json.v_amp; this.v_auto_hp_heal_fix = (OInt)json.v_ahpfix; this.v_auto_mp_heal_fix = (OInt)json.v_ampfix; return(true); }
public bool Deserialize(JSON_SkillParam json) { if (json == null) { return(false); } this.iname = json.iname; this.name = json.name; this.expr = json.expr; this.motion = json.motnm; this.effect = json.effnm; this.defend_effect = json.effdef; this.weapon = json.weapon; this.tokkou = json.tktag; this.tk_rate = json.tkrate; this.type = (ESkillType)json.type; this.timing = (ESkillTiming)json.timing; this.condition = (ESkillCondition)json.cond; this.target = (ESkillTarget)json.target; this.line_type = (ELineType)json.line; this.lvcap = (OInt)json.cap; this.cost = (OInt)json.cost; this.count = (OInt)json.count; this.rate = (OInt)json.rate; this.select_range = (ESelectType)json.sran; this.range_min = (OInt)json.rangemin; this.range_max = (OInt)json.range; this.select_scope = (ESelectType)json.ssco; this.scope = (OInt)json.scope; this.effect_height = (OInt)json.eff_h; this.back_defrate = (OInt)json.bdb; this.side_defrate = (OInt)json.sdb; this.ignore_defense_rate = (OInt)json.idr; this.job = json.job; this.SceneName = json.scn; this.ComboNum = (OInt)json.combo_num; this.ComboDamageRate = (OInt)(100 - Math.Abs(json.combo_rate)); this.IsCritical = (OBool)(json.is_cri != 0); this.JewelDamageType = (JewelDamageTypes)json.jdtype; this.JewelDamageValue = (OInt)json.jdv; this.IsJewelAbsorb = (OBool)(json.jdabs != 0); this.DuplicateCount = (OInt)json.dupli; this.CollaboMainId = json.cs_main_id; this.CollaboHeight = (OInt)json.cs_height; this.KnockBackRate = (OInt)json.kb_rate; this.KnockBackVal = (OInt)json.kb_val; this.KnockBackDir = (eKnockBackDir)json.kb_dir; this.KnockBackDs = (eKnockBackDs)json.kb_ds; this.DamageDispType = (eDamageDispType)json.dmg_dt; this.ReplaceTargetIdLists = (List <string>)null; if (json.rp_tgt_ids != null) { this.ReplaceTargetIdLists = new List <string>(); foreach (string rpTgtId in json.rp_tgt_ids) { this.ReplaceTargetIdLists.Add(rpTgtId); } } this.ReplaceChangeIdLists = (List <string>)null; if (json.rp_chg_ids != null && this.ReplaceTargetIdLists != null) { this.ReplaceChangeIdLists = new List <string>(); foreach (string rpChgId in json.rp_chg_ids) { this.ReplaceChangeIdLists.Add(rpChgId); } } if (this.ReplaceTargetIdLists != null && this.ReplaceChangeIdLists != null && this.ReplaceTargetIdLists.Count != this.ReplaceChangeIdLists.Count) { this.ReplaceTargetIdLists.Clear(); this.ReplaceChangeIdLists.Clear(); } this.AbilityReplaceTargetIdLists = (List <string>)null; if (json.ab_rp_tgt_ids != null) { this.AbilityReplaceTargetIdLists = new List <string>(); foreach (string abRpTgtId in json.ab_rp_tgt_ids) { this.AbilityReplaceTargetIdLists.Add(abRpTgtId); } } this.AbilityReplaceChangeIdLists = (List <string>)null; if (json.ab_rp_chg_ids != null && this.AbilityReplaceTargetIdLists != null) { this.AbilityReplaceChangeIdLists = new List <string>(); foreach (string abRpChgId in json.ab_rp_chg_ids) { this.AbilityReplaceChangeIdLists.Add(abRpChgId); } } if (this.AbilityReplaceTargetIdLists != null && this.AbilityReplaceChangeIdLists != null && this.AbilityReplaceTargetIdLists.Count != this.AbilityReplaceChangeIdLists.Count) { this.AbilityReplaceTargetIdLists.Clear(); this.AbilityReplaceChangeIdLists.Clear(); } this.CollaboVoiceId = json.cs_voice; this.CollaboVoicePlayDelayFrame = json.cs_vp_df; this.TeleportType = (eTeleportType)json.tl_type; this.TeleportTarget = (ESkillTarget)json.tl_target; this.TeleportHeight = json.tl_height; this.TeleportIsMove = json.tl_is_mov != 0; this.TrickId = json.tr_id; this.TrickSetType = (eTrickSetType)json.tr_set; this.BreakObjId = json.bo_id; this.MapEffectDesc = json.me_desc; this.WeatherRate = json.wth_rate; this.WeatherId = json.wth_id; this.ElementSpcAtkRate = json.elem_tk; this.MaxDamageValue = json.max_dmg; this.CutInConceptCardId = json.ci_cc_id; this.JudgeHpVal = json.jhp_val; this.JudgeHpCalc = (SkillParamCalcTypes)json.jhp_calc; this.AcFromAbilId = json.ac_fr_ab_id; this.AcToAbilId = json.ac_to_ab_id; this.AcTurn = json.ac_turn; this.EffectHitTargetNumRate = (OInt)json.eff_htnrate; this.AbsorbAndGive = (eAbsorbAndGive)json.aag; this.TargetEx = (eSkillTargetEx)json.target_ex; this.JumpSpcAtkRate = json.jmp_tk; this.flags = (SkillFlags)0; if (json.cutin != 0) { this.flags |= SkillFlags.ExecuteCutin; } if (json.isbtl != 0) { this.flags |= SkillFlags.ExecuteInBattle; } if (json.chran != 0) { this.flags |= SkillFlags.EnableChangeRange; } if (json.sonoba != 0) { this.flags |= SkillFlags.SelfTargetSelect; } if (json.pierce != 0) { this.flags |= SkillFlags.PierceAttack; } if (json.hbonus != 0) { this.flags |= SkillFlags.EnableHeightRangeBonus; } if (json.ehpa != 0) { this.flags |= SkillFlags.EnableHeightParamAdjust; } if (json.utgt != 0) { this.flags |= SkillFlags.EnableUnitLockTarget; } if (json.ctbreak != 0) { this.flags |= SkillFlags.CastBreak; } if (json.mpatk != 0) { this.flags |= SkillFlags.JewelAttack; } if (json.fhit != 0) { this.flags |= SkillFlags.ForceHit; } if (json.suicide != 0) { this.flags |= SkillFlags.Suicide; } if (json.sub_actuate != 0) { this.flags |= SkillFlags.SubActuate; } if (json.is_fixed != 0) { this.flags |= SkillFlags.FixedDamage; } if (json.f_ulock != 0) { this.flags |= SkillFlags.ForceUnitLock; } if (json.ad_react != 0) { this.flags |= SkillFlags.AllDamageReaction; } if (json.ig_elem != 0) { this.flags |= SkillFlags.IgnoreElement; } if (json.is_pre_apply != 0) { this.flags |= SkillFlags.PrevApply; } if (json.jhp_over != 0) { this.flags |= SkillFlags.JudgeHpOver; } if (json.is_mhm_dmg != 0) { this.flags |= SkillFlags.MhmDamage; } if (json.ac_is_self != 0) { this.flags |= SkillFlags.AcSelf; } if (json.ac_is_reset != 0) { this.flags |= SkillFlags.AcReset; } if (json.is_htndiv != 0) { this.flags |= SkillFlags.HitTargetNumDiv; } if (json.is_no_ccc != 0) { this.flags |= SkillFlags.NoChargeCalcCT; } if (json.jmpbreak != 0) { this.flags |= SkillFlags.JumpBreak; } this.hp_cost = (OInt)json.hp_cost; this.hp_cost_rate = (OInt)Math.Min(Math.Max(json.hp_cost_rate, 0), 100); this.random_hit_rate = (OInt)json.rhit; this.effect_type = (SkillEffectTypes)json.eff_type; this.effect_calc = (SkillParamCalcTypes)json.eff_calc; this.effect_rate = new SkillRankUpValue(); this.effect_rate.ini = (OInt)json.eff_rate_ini; this.effect_rate.max = (OInt)json.eff_rate_max; this.effect_value = new SkillRankUpValue(); this.effect_value.ini = (OInt)json.eff_val_ini; this.effect_value.max = (OInt)json.eff_val_max; this.effect_range = new SkillRankUpValue(); this.effect_range.ini = (OInt)json.eff_range_ini; this.effect_range.max = (OInt)json.eff_range_max; this.effect_hprate = (OInt)json.eff_hprate; this.effect_mprate = (OInt)json.eff_mprate; this.effect_dead_rate = (OInt)json.eff_durate; this.effect_lvrate = (OInt)json.eff_lvrate; this.attack_type = (AttackTypes)json.atk_type; this.attack_detail = (AttackDetailTypes)json.atk_det; this.element_type = (EElement)json.elem; this.element_value = (SkillRankUpValue)null; if (this.element_type != EElement.None) { this.element_value = new SkillRankUpValue(); this.element_value.ini = (OInt)json.elem_ini; this.element_value.max = (OInt)json.elem_max; } this.cast_type = (ECastTypes)json.ct_type; this.cast_speed = (SkillRankUpValue)null; if (this.type == ESkillType.Skill && (json.ct_spd_ini != 0 || json.ct_spd_max != 0)) { this.cast_speed = new SkillRankUpValue(); this.cast_speed.ini = (OInt)json.ct_spd_ini; this.cast_speed.max = (OInt)json.ct_spd_max; } this.absorb_damage_rate = (OInt)json.abs_d_rate; this.reaction_damage_type = (DamageTypes)json.react_d_type; this.reaction_det_lists = (List <AttackDetailTypes>)null; if (json.react_dets != null) { this.reaction_det_lists = new List <AttackDetailTypes>(); foreach (AttackDetailTypes reactDet in json.react_dets) { this.reaction_det_lists.Add(reactDet); } } this.control_ct_rate = (SkillRankUpValue)null; this.control_ct_value = (SkillRankUpValue)null; if (this.control_ct_calc == SkillParamCalcTypes.Fixed || json.ct_val_ini != 0 || json.ct_val_max != 0) { this.control_ct_rate = new SkillRankUpValue(); this.control_ct_rate.ini = (OInt)json.ct_rate_ini; this.control_ct_rate.max = (OInt)json.ct_rate_max; this.control_ct_value = new SkillRankUpValue(); this.control_ct_value.ini = (OInt)json.ct_val_ini; this.control_ct_value.max = (OInt)json.ct_val_max; this.control_ct_calc = (SkillParamCalcTypes)json.ct_calc; } this.target_buff_iname = json.t_buff; this.target_cond_iname = json.t_cond; this.self_buff_iname = json.s_buff; this.self_cond_iname = json.s_cond; this.shield_type = (ShieldTypes)json.shield_type; this.shield_damage_type = (DamageTypes)json.shield_d_type; this.shield_turn = (SkillRankUpValue)null; this.shield_value = (SkillRankUpValue)null; if (this.shield_type != ShieldTypes.None && this.shield_damage_type != DamageTypes.None) { this.shield_turn = new SkillRankUpValue(); this.shield_turn.ini = (OInt)json.shield_turn_ini; this.shield_turn.max = (OInt)json.shield_turn_max; this.shield_value = new SkillRankUpValue(); this.shield_value.ini = (OInt)json.shield_ini; this.shield_value.max = (OInt)json.shield_max; if (json.shield_reset != 0) { this.flags |= SkillFlags.ShieldReset; } } if (this.reaction_damage_type != DamageTypes.None || this.shield_damage_type != DamageTypes.None) { this.control_damage_rate = new SkillRankUpValue(); this.control_damage_rate.ini = (OInt)json.ctrl_d_rate_ini; this.control_damage_rate.max = (OInt)json.ctrl_d_rate_max; this.control_damage_value = new SkillRankUpValue(); this.control_damage_value.ini = (OInt)json.ctrl_d_ini; this.control_damage_value.max = (OInt)json.ctrl_d_max; this.control_damage_calc = (SkillParamCalcTypes)json.ctrl_d_calc; } SkillEffectTypes effectType = this.effect_type; switch (effectType) { case SkillEffectTypes.Teleport: case SkillEffectTypes.Changing: case SkillEffectTypes.Throw: this.scope = (OInt)0; this.select_scope = ESelectType.Cross; break; case SkillEffectTypes.RateDamage: if (this.attack_type == AttackTypes.None) { this.attack_type = AttackTypes.PhyAttack; break; } break; default: if (effectType == SkillEffectTypes.Attack || effectType == SkillEffectTypes.ReflectDamage || effectType == SkillEffectTypes.RateDamageCurrent) { goto case SkillEffectTypes.RateDamage; } else { break; } } if (this.select_range == ESelectType.Laser) { this.select_scope = ESelectType.Laser; this.scope = (OInt)Math.Max((int)this.scope, 1); } else { switch (this.select_range) { case ESelectType.LaserSpread: this.select_scope = ESelectType.LaserSpread; break; case ESelectType.LaserWide: this.select_scope = ESelectType.LaserWide; break; case ESelectType.LaserTwin: this.select_scope = ESelectType.LaserTwin; break; case ESelectType.LaserTriple: this.select_scope = ESelectType.LaserTriple; break; } switch (this.select_scope) { case ESelectType.LaserSpread: case ESelectType.LaserWide: case ESelectType.LaserTwin: case ESelectType.LaserTriple: this.scope = (OInt)1; break; } } if (this.TeleportType != eTeleportType.None) { if (!this.IsTargetGridNoUnit && this.TeleportType != eTeleportType.BeforeSkill) { this.target = ESkillTarget.GridNoUnit; } if (this.IsTargetTeleport) { if (this.IsCastSkill()) { this.cast_speed = (SkillRankUpValue)null; } if ((int)this.scope != 0) { this.scope = (OInt)0; } } } if (this.IsTargetValidGrid && !this.IsTrickSkill()) { this.target = ESkillTarget.GridNoUnit; } if (this.timing == ESkillTiming.Auto && this.effect_type == SkillEffectTypes.Attack) { this.effect_type = SkillEffectTypes.Buff; } return(true); }
public bool Deserialize(JSON_SkillParam json) { if (json == null) { return(false); } this.iname = json.iname; this.name = json.name; this.expr = json.expr; this.motion = json.motnm; this.effect = json.effnm; this.defend_effect = json.effdef; this.weapon = json.weapon; this.tokkou = json.tktag; this.tk_rate = json.tkrate; this.type = (ESkillType)json.type; this.timing = (ESkillTiming)json.timing; this.condition = (ESkillCondition)json.cond; this.target = (ESkillTarget)json.target; this.line_type = (ELineType)json.line; this.lvcap = (OInt)json.cap; this.cost = (OInt)json.cost; this.count = (OInt)json.count; this.rate = (OInt)json.rate; this.select_range = (ESelectType)json.sran; this.range_min = (OInt)json.rangemin; this.range_max = (OInt)json.range; this.select_scope = (ESelectType)json.ssco; this.scope = (OInt)json.scope; this.effect_height = (OInt)json.eff_h; this.back_defrate = (OInt)json.bdb; this.side_defrate = (OInt)json.sdb; this.ignore_defense_rate = (OInt)json.idr; this.job = json.job; this.SceneName = json.scn; this.ComboNum = (OInt)json.combo_num; this.ComboDamageRate = (OInt)(100 - Math.Abs(json.combo_rate)); this.IsCritical = (OBool)(json.is_cri != 0); this.JewelDamageType = (JewelDamageTypes)json.jdtype; this.JewelDamageValue = (OInt)json.jdv; this.IsJewelAbsorb = (OBool)(json.jdabs != 0); this.DuplicateCount = (OInt)json.dupli; this.CollaboMainId = json.cs_main_id; this.CollaboHeight = (OInt)json.cs_height; this.KnockBackRate = (OInt)json.kb_rate; this.KnockBackVal = (OInt)json.kb_val; this.DamageDispType = (eDamageDispType)json.dmg_dt; this.ReplaceTargetIdLists.Clear(); if (json.rp_tgt_ids != null) { foreach (string rpTgtId in json.rp_tgt_ids) { this.ReplaceTargetIdLists.Add(rpTgtId); } } this.ReplaceChangeIdLists.Clear(); if (json.rp_chg_ids != null) { foreach (string rpChgId in json.rp_chg_ids) { this.ReplaceChangeIdLists.Add(rpChgId); } } if (this.ReplaceTargetIdLists.Count != this.ReplaceChangeIdLists.Count) { this.ReplaceTargetIdLists.Clear(); this.ReplaceChangeIdLists.Clear(); } this.AbilityReplaceTargetIdLists.Clear(); if (json.ab_rp_tgt_ids != null) { foreach (string abRpTgtId in json.ab_rp_tgt_ids) { this.AbilityReplaceTargetIdLists.Add(abRpTgtId); } } this.AbilityReplaceChangeIdLists.Clear(); if (json.ab_rp_chg_ids != null) { foreach (string abRpChgId in json.ab_rp_chg_ids) { this.AbilityReplaceChangeIdLists.Add(abRpChgId); } } if (this.AbilityReplaceTargetIdLists.Count != this.AbilityReplaceChangeIdLists.Count) { this.AbilityReplaceTargetIdLists.Clear(); this.AbilityReplaceChangeIdLists.Clear(); } this.CollaboVoiceId = json.cs_voice; this.CollaboVoicePlayDelayFrame = json.cs_vp_df; this.flags = (SkillFlags)0; if (json.cutin != 0) { this.flags |= SkillFlags.ExecuteCutin; } if (json.isbtl != 0) { this.flags |= SkillFlags.ExecuteInBattle; } if (json.chran != 0) { this.flags |= SkillFlags.EnableChangeRange; } if (json.sonoba != 0) { this.flags |= SkillFlags.SelfTargetSelect; } if (json.pierce != 0) { this.flags |= SkillFlags.PierceAttack; } if (json.hbonus != 0) { this.flags |= SkillFlags.EnableHeightRangeBonus; } if (json.ehpa != 0) { this.flags |= SkillFlags.EnableHeightParamAdjust; } if (json.utgt != 0) { this.flags |= SkillFlags.EnableUnitLockTarget; } if (json.ctbreak != 0) { this.flags |= SkillFlags.CastBreak; } if (json.mpatk != 0) { this.flags |= SkillFlags.JewelAttack; } if (json.fhit != 0) { this.flags |= SkillFlags.ForceHit; } if (json.suicide != 0) { this.flags |= SkillFlags.Suicide; } this.hp_cost = (OInt)json.hp_cost; this.hp_cost_rate = (OInt)Math.Min(Math.Max(json.hp_cost_rate, 0), 100); this.random_hit_rate = (OInt)json.rhit; this.effect_type = (SkillEffectTypes)json.eff_type; this.effect_calc = (SkillParamCalcTypes)json.eff_calc; this.effect_rate = new SkillRankUpValue(); this.effect_rate.ini = (OInt)json.eff_rate_ini; this.effect_rate.max = (OInt)json.eff_rate_max; this.effect_value = new SkillRankUpValue(); this.effect_value.ini = (OInt)json.eff_val_ini; this.effect_value.max = (OInt)json.eff_val_max; this.effect_range = new SkillRankUpValue(); this.effect_range.ini = (OInt)json.eff_range_ini; this.effect_range.max = (OInt)json.eff_range_max; this.effect_hprate = (OInt)json.eff_hprate; this.effect_mprate = (OInt)json.eff_mprate; this.effect_dead_rate = (OInt)json.eff_durate; this.effect_lvrate = (OInt)json.eff_lvrate; this.attack_type = (AttackTypes)json.atk_type; this.attack_detail = (AttackDetailTypes)json.atk_det; this.element_type = (EElement)json.elem; this.element_value = (SkillRankUpValue)null; if (this.element_type != EElement.None) { this.element_value = new SkillRankUpValue(); this.element_value.ini = (OInt)json.elem_ini; this.element_value.max = (OInt)json.elem_max; } this.cast_type = (ECastTypes)json.ct_type; this.cast_speed = (SkillRankUpValue)null; if (this.type == ESkillType.Skill && (json.ct_spd_ini != 0 || json.ct_spd_max != 0)) { this.cast_speed = new SkillRankUpValue(); this.cast_speed.ini = (OInt)json.ct_spd_ini; this.cast_speed.max = (OInt)json.ct_spd_max; } this.absorb_damage_rate = (OInt)json.abs_d_rate; this.reaction_damage_type = (DamageTypes)json.react_d_type; this.reaction_det_lists.Clear(); if (json.react_dets != null) { foreach (AttackDetailTypes reactDet in json.react_dets) { this.reaction_det_lists.Add(reactDet); } } if (this.reaction_damage_type != DamageTypes.None) { this.control_damage_value = new SkillRankUpValue(); this.control_damage_value.ini = (OInt)json.ctrl_d_ini; this.control_damage_value.max = (OInt)json.ctrl_d_max; this.control_damage_calc = (SkillParamCalcTypes)json.ctrl_d_calc; } this.control_ct_rate = (SkillRankUpValue)null; this.control_ct_value = (SkillRankUpValue)null; if (this.control_ct_calc == SkillParamCalcTypes.Fixed || json.ct_val_ini != 0 || json.ct_val_max != 0) { this.control_ct_rate = new SkillRankUpValue(); this.control_ct_rate.ini = (OInt)json.ct_rate_ini; this.control_ct_rate.max = (OInt)json.ct_rate_max; this.control_ct_value = new SkillRankUpValue(); this.control_ct_value.ini = (OInt)json.ct_val_ini; this.control_ct_value.max = (OInt)json.ct_val_max; this.control_ct_calc = (SkillParamCalcTypes)json.ct_calc; } this.target_buff_iname = json.t_buff; this.target_cond_iname = json.t_cond; this.self_buff_iname = json.s_buff; this.self_cond_iname = json.s_cond; this.shield_type = (ShieldTypes)json.shield_type; this.shield_damage_type = (DamageTypes)json.shield_d_type; this.shield_turn = (SkillRankUpValue)null; this.shield_value = (SkillRankUpValue)null; if (this.shield_type != ShieldTypes.None && this.shield_damage_type != DamageTypes.None) { this.shield_turn = new SkillRankUpValue(); this.shield_turn.ini = (OInt)json.shield_turn_ini; this.shield_turn.max = (OInt)json.shield_turn_max; this.shield_value = new SkillRankUpValue(); this.shield_value.ini = (OInt)json.shield_ini; this.shield_value.max = (OInt)json.shield_max; } SkillEffectTypes effectType = this.effect_type; switch (effectType) { case SkillEffectTypes.Teleport: case SkillEffectTypes.Changing: case SkillEffectTypes.Throw: this.scope = (OInt)0; this.select_scope = ESelectType.Cross; break; case SkillEffectTypes.RateDamage: if (this.attack_type == AttackTypes.None) { this.attack_type = AttackTypes.PhyAttack; break; } break; default: if (effectType == SkillEffectTypes.Attack || effectType == SkillEffectTypes.ReflectDamage) { goto case SkillEffectTypes.RateDamage; } else { break; } } if (this.select_range == ESelectType.Laser) { this.select_scope = ESelectType.Laser; this.scope = (OInt)Math.Max((int)this.scope, 1); } else { switch (this.select_range) { case ESelectType.LaserSpread: this.select_scope = ESelectType.LaserSpread; break; case ESelectType.LaserWide: this.select_scope = ESelectType.LaserWide; break; case ESelectType.LaserTwin: this.select_scope = ESelectType.LaserTwin; break; case ESelectType.LaserTriple: this.select_scope = ESelectType.LaserTriple; break; } switch (this.select_scope) { case ESelectType.LaserSpread: case ESelectType.LaserWide: case ESelectType.LaserTwin: case ESelectType.LaserTriple: this.scope = (OInt)1; break; } } return(true); }
public bool Deserialize(JSON_BuffEffectParam json) { if (json == null) { return(false); } this.iname = json.iname; this.job = json.job; this.buki = json.buki; this.birth = json.birth; this.sex = (ESex)json.sex; this.un_group = json.un_group; this.elem = Convert.ToInt32(json.elem.ToString("d7"), 2); this.rate = (OInt)json.rate; this.turn = (OInt)json.turn; this.chk_target = (EffectCheckTargets)json.chktgt; this.chk_timing = (EffectCheckTimings)json.timing; this.cond = (ESkillCondition)json.cond; this.mIsUpBuff = (OBool)false; this.mUpTiming = (EffectCheckTimings)json.up_timing; this.mAppType = (EAppType)json.app_type; this.mAppMct = json.app_mct; this.mEffRange = (EEffRange)json.eff_range; this.mFlags = (BuffFlags)0; if (json.is_up_rep != 0) { this.mFlags |= BuffFlags.UpReplenish; } if (json.is_no_dis != 0) { this.mFlags |= BuffFlags.NoDisabled; } if (json.is_no_bt != 0) { this.mFlags |= BuffFlags.NoBuffTurn; } ParamTypes type1 = (ParamTypes)json.type1; ParamTypes type2 = (ParamTypes)json.type2; ParamTypes type3 = (ParamTypes)json.type3; ParamTypes type4 = (ParamTypes)json.type4; ParamTypes type5 = (ParamTypes)json.type5; ParamTypes type6 = (ParamTypes)json.type6; ParamTypes type7 = (ParamTypes)json.type7; ParamTypes type8 = (ParamTypes)json.type8; ParamTypes type9 = (ParamTypes)json.type9; ParamTypes type10 = (ParamTypes)json.type10; ParamTypes type11 = (ParamTypes)json.type11; int length = 0; if (type1 != ParamTypes.None) { ++length; } if (type2 != ParamTypes.None) { ++length; } if (type3 != ParamTypes.None) { ++length; } if (type4 != ParamTypes.None) { ++length; } if (type5 != ParamTypes.None) { ++length; } if (type6 != ParamTypes.None) { ++length; } if (type7 != ParamTypes.None) { ++length; } if (type8 != ParamTypes.None) { ++length; } if (type9 != ParamTypes.None) { ++length; } if (type10 != ParamTypes.None) { ++length; } if (type11 != ParamTypes.None) { ++length; } if (length > 0) { this.buffs = new BuffEffectParam.Buff[length]; int index = 0; if (type1 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type1; this.buffs[index].value_ini = (OInt)json.vini1; this.buffs[index].value_max = (OInt)json.vmax1; this.buffs[index].value_one = (OInt)json.vone1; this.buffs[index].calc = (SkillParamCalcTypes)json.calc1; ++index; } if (type2 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type2; this.buffs[index].value_ini = (OInt)json.vini2; this.buffs[index].value_max = (OInt)json.vmax2; this.buffs[index].value_one = (OInt)json.vone2; this.buffs[index].calc = (SkillParamCalcTypes)json.calc2; ++index; } if (type3 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type3; this.buffs[index].value_ini = (OInt)json.vini3; this.buffs[index].value_max = (OInt)json.vmax3; this.buffs[index].value_one = (OInt)json.vone3; this.buffs[index].calc = (SkillParamCalcTypes)json.calc3; ++index; } if (type4 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type4; this.buffs[index].value_ini = (OInt)json.vini4; this.buffs[index].value_max = (OInt)json.vmax4; this.buffs[index].value_one = (OInt)json.vone4; this.buffs[index].calc = (SkillParamCalcTypes)json.calc4; ++index; } if (type5 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type5; this.buffs[index].value_ini = (OInt)json.vini5; this.buffs[index].value_max = (OInt)json.vmax5; this.buffs[index].value_one = (OInt)json.vone5; this.buffs[index].calc = (SkillParamCalcTypes)json.calc5; ++index; } if (type6 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type6; this.buffs[index].value_ini = (OInt)json.vini6; this.buffs[index].value_max = (OInt)json.vmax6; this.buffs[index].value_one = (OInt)json.vone6; this.buffs[index].calc = (SkillParamCalcTypes)json.calc6; ++index; } if (type7 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type7; this.buffs[index].value_ini = (OInt)json.vini7; this.buffs[index].value_max = (OInt)json.vmax7; this.buffs[index].value_one = (OInt)json.vone7; this.buffs[index].calc = (SkillParamCalcTypes)json.calc7; ++index; } if (type8 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type8; this.buffs[index].value_ini = (OInt)json.vini8; this.buffs[index].value_max = (OInt)json.vmax8; this.buffs[index].value_one = (OInt)json.vone8; this.buffs[index].calc = (SkillParamCalcTypes)json.calc8; ++index; } if (type9 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type9; this.buffs[index].value_ini = (OInt)json.vini9; this.buffs[index].value_max = (OInt)json.vmax9; this.buffs[index].value_one = (OInt)json.vone9; this.buffs[index].calc = (SkillParamCalcTypes)json.calc9; ++index; } if (type10 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type10; this.buffs[index].value_ini = (OInt)json.vini10; this.buffs[index].value_max = (OInt)json.vmax10; this.buffs[index].value_one = (OInt)json.vone10; this.buffs[index].calc = (SkillParamCalcTypes)json.calc10; ++index; } if (type11 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type11; this.buffs[index].value_ini = (OInt)json.vini11; this.buffs[index].value_max = (OInt)json.vmax11; this.buffs[index].value_one = (OInt)json.vone11; this.buffs[index].calc = (SkillParamCalcTypes)json.calc11; int num = index + 1; } foreach (BuffEffectParam.Buff buff in this.buffs) { if ((int)buff.value_one != 0) { this.mIsUpBuff = (OBool)true; break; } } } if (json.custom_targets != null) { this.custom_targets = new string[json.custom_targets.Length]; for (int index = 0; index < json.custom_targets.Length; ++index) { this.custom_targets[index] = json.custom_targets[index]; } } return(true); }
public bool Deserialize(JSON_BuffEffectParam json) { if (json == null) { return(false); } this.iname = json.iname; this.job = json.job; this.buki = json.buki; this.birth = json.birth; this.sex = (ESex)json.sex; this.elem = Convert.ToInt32(json.elem.ToString("d7"), 2); this.rate = (OInt)json.rate; this.turn = (OInt)json.turn; this.chk_target = (EffectCheckTargets)json.chktgt; this.chk_timing = (EffectCheckTimings)json.timing; this.cond = (ESkillCondition)json.cond; this.mAppType = (EAppType)json.app_type; this.mAppMct = json.app_mct; this.mEffRange = (EEffRange)json.eff_range; ParamTypes type1 = (ParamTypes)json.type1; ParamTypes type2 = (ParamTypes)json.type2; ParamTypes type3 = (ParamTypes)json.type3; ParamTypes type4 = (ParamTypes)json.type4; ParamTypes type5 = (ParamTypes)json.type5; ParamTypes type6 = (ParamTypes)json.type6; ParamTypes type7 = (ParamTypes)json.type7; ParamTypes type8 = (ParamTypes)json.type8; ParamTypes type9 = (ParamTypes)json.type9; ParamTypes type10 = (ParamTypes)json.type10; int length = 0; if (type1 != ParamTypes.None) { ++length; } if (type2 != ParamTypes.None) { ++length; } if (type3 != ParamTypes.None) { ++length; } if (type4 != ParamTypes.None) { ++length; } if (type5 != ParamTypes.None) { ++length; } if (type6 != ParamTypes.None) { ++length; } if (type7 != ParamTypes.None) { ++length; } if (type8 != ParamTypes.None) { ++length; } if (type9 != ParamTypes.None) { ++length; } if (type10 != ParamTypes.None) { ++length; } if (length > 0) { this.buffs = new BuffEffectParam.Buff[length]; int index = 0; if (type1 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type1; this.buffs[index].value_ini = (OInt)json.vini1; this.buffs[index].value_max = (OInt)json.vmax1; this.buffs[index].calc = (SkillParamCalcTypes)json.calc1; ++index; } if (type2 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type2; this.buffs[index].value_ini = (OInt)json.vini2; this.buffs[index].value_max = (OInt)json.vmax2; this.buffs[index].calc = (SkillParamCalcTypes)json.calc2; ++index; } if (type3 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type3; this.buffs[index].value_ini = (OInt)json.vini3; this.buffs[index].value_max = (OInt)json.vmax3; this.buffs[index].calc = (SkillParamCalcTypes)json.calc3; ++index; } if (type4 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type4; this.buffs[index].value_ini = (OInt)json.vini4; this.buffs[index].value_max = (OInt)json.vmax4; this.buffs[index].calc = (SkillParamCalcTypes)json.calc4; ++index; } if (type5 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type5; this.buffs[index].value_ini = (OInt)json.vini5; this.buffs[index].value_max = (OInt)json.vmax5; this.buffs[index].calc = (SkillParamCalcTypes)json.calc5; ++index; } if (type6 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type6; this.buffs[index].value_ini = (OInt)json.vini6; this.buffs[index].value_max = (OInt)json.vmax6; this.buffs[index].calc = (SkillParamCalcTypes)json.calc6; ++index; } if (type7 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type7; this.buffs[index].value_ini = (OInt)json.vini7; this.buffs[index].value_max = (OInt)json.vmax7; this.buffs[index].calc = (SkillParamCalcTypes)json.calc7; ++index; } if (type8 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type8; this.buffs[index].value_ini = (OInt)json.vini8; this.buffs[index].value_max = (OInt)json.vmax8; this.buffs[index].calc = (SkillParamCalcTypes)json.calc8; ++index; } if (type9 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type9; this.buffs[index].value_ini = (OInt)json.vini9; this.buffs[index].value_max = (OInt)json.vmax9; this.buffs[index].calc = (SkillParamCalcTypes)json.calc9; ++index; } if (type10 != ParamTypes.None) { this.buffs[index] = new BuffEffectParam.Buff(); this.buffs[index].type = type10; this.buffs[index].value_ini = (OInt)json.vini10; this.buffs[index].value_max = (OInt)json.vmax10; this.buffs[index].calc = (SkillParamCalcTypes)json.calc10; int num = index + 1; } } return(true); }