public static Offset <MPAttackData> Serialize(FlatBufferBuilder builder, AttackData obj) { Offset <MPHitCollision> hitCollisionOffset = new Offset <MPHitCollision>(); if (obj.hitCollision != null) { hitCollisionOffset = Serialize(builder, obj.hitCollision); } MPAttackData.StartMPAttackData(builder); MPAttackData.AddAttackerAniDamageRatio(builder, obj.attackerAniDamageRatio); MPAttackData.AddAttackerClass(builder, (byte)obj.attackerClass); MPAttackData.AddAttackerNature(builder, (byte)obj.attackerNature); MPAttackData.AddAttackerCategory(builder, obj.attackerCategory); MPAttackData.AddAttackerCritChance(builder, obj.attackerCritChance); MPAttackData.AddAttackerCritDamageRatio(builder, obj.attackerCritDamageRatio); MPAttackData.AddAttackerLevel(builder, obj.attackerLevel); MPAttackData.AddAttackerShieldDamageRatio(builder, obj.attackerShieldDamageRatio); MPAttackData.AddAttackerShieldDamageDelta(builder, obj.attackerShieldDamageDelta); MPAttackData.AddAttackerAttackPercentage(builder, obj.attackerAttackPercentage); MPAttackData.AddAttackerAttackValue(builder, obj.attackerAttackValue); MPAttackData.AddAddedAttackRatio(builder, obj.addedAttackRatio); MPAttackData.AddAddedDamageRatio(builder, obj.addedDamageRatio); MPAttackData.AddAttackerAddedAttackValue(builder, obj.attackerAddedAttackValue); MPAttackData.AddAttackerNormalDamage(builder, obj.attackerNormalDamage); MPAttackData.AddAttackerNormalDamagePercentage(builder, obj.attackerNormalDamagePercentage); MPAttackData.AddAddedAttackerNormalDamageRatio(builder, obj.addedAttackerNormalDamageRatio); MPAttackData.AddAttackerFireDamage(builder, obj.attackerFireDamage); MPAttackData.AddAttackerFireDamagePercentage(builder, obj.attackerFireDamagePercentage); MPAttackData.AddAddedAttackerFireDamageRatio(builder, obj.addedAttackerFireDamageRatio); MPAttackData.AddAttackerThunderDamage(builder, obj.attackerThunderDamage); MPAttackData.AddAttackerThunderDamagePercentage(builder, obj.attackerThunderDamagePercentage); MPAttackData.AddAddedAttackerThunderDamageRatio(builder, obj.addedAttackerThunderDamageRatio); MPAttackData.AddAttackerIceDamage(builder, obj.attackerIceDamage); MPAttackData.AddAttackerIceDamagePercentage(builder, obj.attackerIceDamagePercentage); MPAttackData.AddAddedAttackerIceDamageRatio(builder, obj.addedAttackerIceDamageRatio); MPAttackData.AddAttackerAlienDamage(builder, obj.attackerAlienDamage); MPAttackData.AddAttackerAlienDamagePercentage(builder, obj.attackerAlienDamagePercentage); MPAttackData.AddAddedAttackerAlienDamageRatio(builder, obj.addedAttackerAlienDamageRatio); MPAttackData.AddAttackeeAniDefenceRatio(builder, obj.attackeeAniDefenceRatio); MPAttackData.AddAttackeeNature(builder, (byte)obj.attackeeNature); MPAttackData.AddAttackeeClass(builder, (byte)obj.attackeeClass); MPAttackData.AddNatureDamageRatio(builder, obj.natureDamageRatio); MPAttackData.AddDamage(builder, obj.damage); MPAttackData.AddPlainDamage(builder, obj.plainDamage); MPAttackData.AddThunderDamage(builder, obj.thunderDamage); MPAttackData.AddIceDamage(builder, obj.iceDamage); MPAttackData.AddAlienDamage(builder, obj.alienDamage); MPAttackData.AddAniDamageRatio(builder, obj.aniDamageRatio); MPAttackData.AddRetreatVelocity(builder, obj.retreatVelocity); MPAttackData.AddFrameHalt(builder, obj.frameHalt); MPAttackData.AddIsAnimEventAttack(builder, obj.isAnimEventAttack); MPAttackData.AddIsInComboCount(builder, obj.isInComboCount); MPAttackData.AddAttackCategoryTag(builder, (int)obj.attackCategoryTag); MPAttackData.AddHitType(builder, (byte)obj.hitType); MPAttackData.AddHitFlag(builder, (int)obj.hitFlag); MPAttackData.AddHitLevel(builder, (byte)obj.hitLevel); MPAttackData.AddHitEffect(builder, (byte)obj.hitEffect); MPAttackData.AddHitEffectAux(builder, (byte)obj.hitEffectAux); MPAttackData.AddHitEffectPattern(builder, (byte)obj.hitEffectPattern); MPAttackData.AddKillEffect(builder, (byte)obj.killEffect); MPAttackData.AddRejectState(builder, (byte)obj.rejectState); MPAttackData.AddIsFromBullet(builder, obj.isFromBullet); MPAttackData.AddNoTriggerEvadeAndDefend(builder, obj.noTriggerEvadeAndDefend); MPAttackData.AddHitCollision(builder, hitCollisionOffset); MPAttackData.AddAttackEffectPattern(builder, (ushort)IndexedConfig <ConfigEntityAttackEffect> .Mapping.TryGet(obj.attackEffectPattern)); MPAttackData.AddBeHitEffectPattern(builder, (ushort)IndexedConfig <ConfigEntityAttackEffect> .Mapping.TryGet(obj.beHitEffectPattern)); MPAttackData.AddAttackCameraShake(builder, (ushort)IndexedConfig <ConfigEntityCameraShake> .Mapping.TryGet(obj.attackCameraShake)); return(MPAttackData.EndMPAttackData(builder)); }
public static AttackData Deserialize(MPAttackData table, AttackData obj) { if (obj == null) { obj = new AttackData(); } obj.attackerAniDamageRatio = table.AttackerAniDamageRatio; obj.attackerClass = (EntityClass)table.AttackerClass; obj.attackerNature = (EntityNature)table.AttackerNature; obj.attackerCategory = table.AttackerCategory; obj.attackerCritChance = table.AttackerCritChance; obj.attackerCritDamageRatio = table.AttackerCritDamageRatio; obj.attackerLevel = table.AttackerLevel; obj.attackerShieldDamageRatio = table.AttackerShieldDamageRatio; obj.attackerShieldDamageDelta = table.AttackerShieldDamageDelta; obj.attackerAttackPercentage = table.AttackerAttackPercentage; obj.attackerAttackValue = table.AttackerAttackValue; obj.addedAttackRatio = table.AddedAttackRatio; obj.addedDamageRatio = table.AddedDamageRatio; obj.attackerAddedAttackValue = table.AttackerAddedAttackValue; obj.attackerNormalDamage = table.AttackerNormalDamage; obj.attackerNormalDamagePercentage = table.AttackerNormalDamagePercentage; obj.addedAttackerNormalDamageRatio = table.AddedAttackerNormalDamageRatio; obj.attackerFireDamage = table.AttackerFireDamage; obj.attackerFireDamagePercentage = table.AttackerFireDamagePercentage; obj.addedAttackerFireDamageRatio = table.AddedAttackerFireDamageRatio; obj.attackerThunderDamage = table.AttackerThunderDamage; obj.attackerThunderDamagePercentage = table.AttackerThunderDamagePercentage; obj.addedAttackerThunderDamageRatio = table.AddedAttackerThunderDamageRatio; obj.attackerIceDamage = table.AttackerIceDamage; obj.attackerIceDamagePercentage = table.AttackerIceDamagePercentage; obj.addedAttackerIceDamageRatio = table.AddedAttackerIceDamageRatio; obj.attackerAlienDamage = table.AttackerAlienDamage; obj.attackerAlienDamagePercentage = table.AttackerAlienDamagePercentage; obj.addedAttackerAlienDamageRatio = table.AddedAttackerAlienDamageRatio; obj.attackeeAniDefenceRatio = table.AttackeeAniDefenceRatio; obj.attackeeNature = (EntityNature)table.AttackeeNature; obj.attackeeClass = (EntityClass)table.AttackeeClass; obj.natureDamageRatio = table.NatureDamageRatio; obj.damage = table.Damage; obj.plainDamage = table.PlainDamage; obj.thunderDamage = table.ThunderDamage; obj.iceDamage = table.IceDamage; obj.alienDamage = table.AlienDamage; obj.aniDamageRatio = table.AniDamageRatio; obj.retreatVelocity = table.RetreatVelocity; obj.frameHalt = table.FrameHalt; obj.isAnimEventAttack = table.IsAnimEventAttack; obj.isInComboCount = table.IsInComboCount; obj.attackCategoryTag = (AttackResult.AttackCategoryTag)table.AttackCategoryTag; obj.hitType = (AttackResult.ActorHitType)table.HitType; obj.hitFlag = (AttackResult.ActorHitFlag)table.HitFlag; obj.hitLevel = (AttackResult.ActorHitLevel)table.HitLevel; obj.hitEffect = (AttackResult.AnimatorHitEffect)table.HitEffect; obj.hitEffectAux = (AttackResult.AnimatorHitEffectAux)table.HitEffectAux; obj.hitEffectPattern = (AttackResult.HitEffectPattern)table.HitEffectPattern; obj.killEffect = (KillEffect)table.KillEffect; obj.rejectState = (AttackResult.RejectType)table.RejectState; obj.isFromBullet = table.IsFromBullet; obj.noTriggerEvadeAndDefend = table.NoTriggerEvadeAndDefend; if (table.GetHitCollision(GetCachedTable <MPHitCollision>()) != null) { obj.hitCollision = Deserialize(GetCachedTable <MPHitCollision>(), new AttackResult.HitCollsion()); } obj.attackEffectPattern = IndexedConfig <ConfigEntityAttackEffect> .Mapping.TryGet(table.AttackEffectPattern); obj.beHitEffectPattern = IndexedConfig <ConfigEntityAttackEffect> .Mapping.TryGet(table.BeHitEffectPattern); obj.attackCameraShake = IndexedConfig <ConfigEntityCameraShake> .Mapping.TryGet(table.AttackCameraShake); return(obj); }