351 lines
10 KiB
C#
351 lines
10 KiB
C#
using System.Collections.Generic;
|
|
using CodeStage.AntiCheat.ObscuredTypes;
|
|
namespace Gameplay.Unit.Data
|
|
{
|
|
public class UnitFightData
|
|
{
|
|
|
|
public GameUnit owner;
|
|
|
|
/// <summary>
|
|
/// 照亮区域
|
|
/// </summary>
|
|
public ObscuredInt lightUpArea = 1;
|
|
|
|
/// <summary>
|
|
/// 特殊普通逻辑id
|
|
/// 为0表示没有特殊逻辑
|
|
/// </summary>
|
|
public ObscuredInt specialAttakcLogicId = 0;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public ObscuredInt extraDamageOnNormalAttack = 0;
|
|
|
|
/// <summary>
|
|
/// 攻击力
|
|
/// </summary>
|
|
public ObscuredInt attack = 0;
|
|
public ObscuredFloat baseAttack = 0;
|
|
/// <summary>
|
|
/// 防御力
|
|
/// </summary>
|
|
public ObscuredInt defense = 0;
|
|
public ObscuredFloat baseDefense = 0;
|
|
/// <summary>
|
|
/// 技能倍率
|
|
/// </summary>
|
|
public ObscuredFloat skillRate = 1;
|
|
/// <summary>
|
|
/// 对人类的伤害倍率
|
|
/// </summary>
|
|
public ObscuredFloat scaleForHuman = 1;
|
|
/// <summary>
|
|
/// 对载具的伤害倍率
|
|
/// </summary>
|
|
public ObscuredFloat scaleForVehicle = 1;
|
|
/// <summary>
|
|
/// 最终伤害提升倍率
|
|
/// </summary>
|
|
public ObscuredFloat finalDamageScale = 1;
|
|
|
|
/// <summary>
|
|
/// 杀伤系数
|
|
/// </summary>
|
|
public ObscuredFloat attackScaleForHp = 1;
|
|
|
|
/// <summary>
|
|
/// 穿甲系数
|
|
/// </summary>
|
|
public ObscuredFloat attackScaleForShiled = 1;
|
|
|
|
/// <summary>
|
|
/// 攻击距离
|
|
/// </summary>
|
|
public int attackDistance
|
|
{
|
|
get
|
|
{
|
|
if (specialAttakcLogicId == 0)
|
|
{
|
|
return normalAttackDistance;
|
|
}
|
|
return specialAttackDistance;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 平A是否无视阻挡
|
|
/// </summary>
|
|
public bool isAttackIgnoreBlock = false;
|
|
|
|
public ObscuredInt normalAttackDistance;
|
|
public ObscuredInt specialAttackDistance;
|
|
/// <summary>
|
|
/// 攻击距离-基础值
|
|
/// </summary>
|
|
public ObscuredInt baseAttackDistance = 0;
|
|
|
|
public ObscuredFloat baseAttackDistanceScale = 1f;
|
|
public ObscuredInt baseAttackDistanceFixed = 0;
|
|
|
|
/// <summary>
|
|
/// 技能释放距离缩放
|
|
/// </summary>
|
|
public ObscuredFloat skillReleaseDistanceScale = 1;
|
|
|
|
/// <summary>
|
|
/// 移动速度
|
|
/// </summary>
|
|
public ObscuredFloat moveSpeed = 0;
|
|
/// <summary>
|
|
/// 移动速度-基础值
|
|
/// </summary>
|
|
public ObscuredFloat baseMoveSpeed = 0;
|
|
|
|
/// <summary>
|
|
/// 逃跑速度
|
|
/// </summary>
|
|
public ObscuredFloat retreatSpeed = 0;
|
|
/// <summary>
|
|
/// 逃跑速度-基础值
|
|
/// </summary>
|
|
public ObscuredFloat baseRetreatSpeed = 0;
|
|
|
|
/// <summary>
|
|
/// 转身速度
|
|
/// </summary>
|
|
public ObscuredFloat turnSpeed = 0;
|
|
|
|
/// <summary>
|
|
/// 索敌范围
|
|
/// </summary>
|
|
public ObscuredFloat findEnemyRange;
|
|
|
|
/// <summary>
|
|
/// 攻击间隔
|
|
/// </summary>
|
|
public ObscuredFloat shootCd;
|
|
|
|
/// <summary>
|
|
/// 攻击间隔加成
|
|
/// </summary>
|
|
public ObscuredFloat p_shootCdScale = 0f;
|
|
|
|
/// <summary>
|
|
/// 基础攻击间隔
|
|
/// </summary>
|
|
public ObscuredFloat baseShootCd = 1f;
|
|
|
|
/// <summary>
|
|
/// 最大弹药量
|
|
/// </summary>
|
|
public ObscuredInt maxBulletCount
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
public ObscuredInt baseMaxBulletCount;
|
|
|
|
public ObscuredFloat criticalRate = 0f;
|
|
public ObscuredFloat criticalScale = 1f;
|
|
|
|
/// <summary>
|
|
/// 士气攻击
|
|
/// </summary>
|
|
public ObscuredInt moraleAttack;
|
|
|
|
/// <summary>
|
|
/// 开枪时间百分比
|
|
/// </summary>
|
|
public ObscuredFloat fireTimeProgress;
|
|
|
|
/// <summary>
|
|
/// 士气恢复缩放
|
|
/// </summary>
|
|
public ObscuredFloat moraleRecoverScale = 1f;
|
|
|
|
/// <summary>
|
|
/// 装弹时间
|
|
/// </summary>
|
|
public ObscuredFloat reloadTime;
|
|
|
|
/// <summary>
|
|
/// 装弹时间-基础值
|
|
/// </summary>
|
|
public ObscuredFloat baseReloadTime;
|
|
|
|
/// <summary>
|
|
/// 自动恢复护盾延迟时间
|
|
/// </summary>
|
|
public ObscuredFloat autoRecoverShiledDealy = 1f;
|
|
/// <summary>
|
|
/// 自动恢复护盾值-固定值
|
|
/// </summary>
|
|
public ObscuredInt autoRecoverShiledValueFixed = 1;
|
|
/// <summary>
|
|
/// 自动恢复护盾值-百分比
|
|
/// </summary>
|
|
public ObscuredFloat autoRecoverShiledValuePercent = 0f;
|
|
|
|
/// <summary>
|
|
/// 最大过量护盾值
|
|
/// </summary>
|
|
public ObscuredInt overflowShiledMaxValue = 0;
|
|
|
|
/// <summary>
|
|
/// 自动恢复HP延迟时间
|
|
/// </summary>
|
|
public ObscuredFloat autoRecoverHPDealy = 1f;
|
|
/// <summary>
|
|
/// 自动恢复HP值-固定值
|
|
/// </summary>
|
|
public ObscuredInt autoRecoverHPValueFixed = 1;
|
|
/// <summary>
|
|
/// 自动恢复HP值-百分比
|
|
/// </summary>
|
|
public ObscuredFloat autoRecoverHPValuePercent = 0f;
|
|
|
|
/// <summary>
|
|
/// 受到伤害的倍率
|
|
/// ps:承伤系数
|
|
/// </summary>
|
|
public ObscuredFloat beDamageScale = 1f;
|
|
|
|
/// <summary>
|
|
/// 士气攻击的倍率
|
|
/// </summary>
|
|
public ObscuredFloat moraleDamageScale = 1f;
|
|
|
|
/// <summary>
|
|
/// 士气受到伤害的倍率
|
|
/// </summary>
|
|
public ObscuredFloat moraleBeDamageScale = 1f;
|
|
|
|
/// <summary>
|
|
/// 最后移动的时间
|
|
/// </summary>
|
|
public ObscuredFloat lastMoveTime = 0f;
|
|
|
|
/// <summary>
|
|
/// 攻击时无视护盾的概率
|
|
/// </summary>
|
|
public ObscuredFloat ignoreShieldRate = 0f;
|
|
|
|
/// <summary>
|
|
/// 抵抗debuff的概率
|
|
/// </summary>
|
|
public ObscuredFloat ignoreDebuffRate = 0f;
|
|
|
|
/// <summary>
|
|
/// 逃跑时间
|
|
/// </summary>
|
|
public ObscuredFloat retreateTime = 10f;
|
|
public ObscuredFloat baseRetreateTime = 10f;
|
|
|
|
/// <summary>
|
|
/// 最后一发子弹的伤害缩放
|
|
/// </summary>
|
|
public ObscuredFloat lastBulletDamageScale = 1f;
|
|
|
|
/// <summary>
|
|
/// 技能cd缩减比例
|
|
/// </summary>
|
|
public ObscuredFloat skillCdReduceScale = 1f;
|
|
|
|
/// <summary>
|
|
/// 受伤累积值
|
|
/// </summary>
|
|
public ObscuredInt hurtAccumulate = 0;
|
|
|
|
/// <summary>
|
|
/// 攻击之后的等待时间
|
|
/// </summary>
|
|
public ObscuredFloat attackEndTime
|
|
{
|
|
get;
|
|
set;
|
|
} = 0;
|
|
|
|
/// <summary>
|
|
/// 攻击循环次数
|
|
/// </summary>
|
|
public ObscuredInt attackLoopCount{
|
|
get;
|
|
set;
|
|
} = 1;
|
|
|
|
public UnitFightData(GameUnit owner)
|
|
{
|
|
this.owner = owner;
|
|
}
|
|
|
|
public ObscuredFloat GetMoveSpeed()
|
|
{
|
|
if (moveSpeed < 0)
|
|
{
|
|
return 0;
|
|
}
|
|
return moveSpeed;
|
|
}
|
|
|
|
public void CopyTo(UnitFightData to)
|
|
{
|
|
to.specialAttakcLogicId = specialAttakcLogicId;
|
|
to.attack = attack;
|
|
to.baseAttack = baseAttack;
|
|
to.defense = defense;
|
|
to.baseDefense = baseDefense;
|
|
to.skillRate = skillRate;
|
|
to.scaleForHuman = scaleForHuman;
|
|
to.scaleForVehicle = scaleForVehicle;
|
|
to.finalDamageScale = finalDamageScale;
|
|
to.attackScaleForHp = attackScaleForHp;
|
|
to.attackScaleForShiled = attackScaleForShiled;
|
|
to.normalAttackDistance = normalAttackDistance;
|
|
to.specialAttackDistance = specialAttackDistance;
|
|
to.baseAttackDistance = baseAttackDistance;
|
|
to.skillReleaseDistanceScale = skillReleaseDistanceScale;
|
|
to.moveSpeed = moveSpeed;
|
|
to.baseMoveSpeed = baseMoveSpeed;
|
|
to.retreatSpeed = retreatSpeed;
|
|
to.baseRetreatSpeed = baseRetreatSpeed;
|
|
to.turnSpeed = turnSpeed;
|
|
to.findEnemyRange = findEnemyRange;
|
|
to.shootCd = shootCd;
|
|
to.p_shootCdScale = p_shootCdScale;
|
|
to.baseShootCd = baseShootCd;
|
|
to.maxBulletCount = maxBulletCount;
|
|
to.baseMaxBulletCount = baseMaxBulletCount;
|
|
to.criticalRate = criticalRate;
|
|
to.criticalScale = criticalScale;
|
|
to.moraleAttack = moraleAttack;
|
|
to.fireTimeProgress = fireTimeProgress;
|
|
to.moraleRecoverScale = moraleRecoverScale;
|
|
to.reloadTime = reloadTime;
|
|
to.baseReloadTime = baseReloadTime;
|
|
to.autoRecoverShiledDealy = autoRecoverShiledDealy;
|
|
to.autoRecoverShiledValueFixed = autoRecoverShiledValueFixed;
|
|
to.autoRecoverShiledValuePercent = autoRecoverShiledValuePercent;
|
|
to.overflowShiledMaxValue = overflowShiledMaxValue;
|
|
to.autoRecoverHPDealy = autoRecoverHPDealy;
|
|
to.autoRecoverHPValueFixed = autoRecoverHPValueFixed;
|
|
to.autoRecoverHPValuePercent = autoRecoverHPValuePercent;
|
|
to.beDamageScale = beDamageScale;
|
|
to.moraleDamageScale = moraleDamageScale;
|
|
to.moraleBeDamageScale = moraleBeDamageScale;
|
|
to.lastMoveTime = lastMoveTime;
|
|
to.ignoreShieldRate = ignoreShieldRate;
|
|
to.ignoreDebuffRate = ignoreDebuffRate;
|
|
to.retreateTime = retreateTime;
|
|
to.baseRetreateTime = baseRetreateTime;
|
|
to.extraDamageOnNormalAttack = extraDamageOnNormalAttack;
|
|
to.lastBulletDamageScale = lastBulletDamageScale;
|
|
to.attackEndTime = attackEndTime;
|
|
to.attackLoopCount = attackLoopCount;
|
|
}
|
|
|
|
}
|
|
}
|