mirror of
https://github.com/tym1116/BH3.git
synced 2025-12-17 00:44:49 +01:00
99 lines
3.4 KiB
C#
99 lines
3.4 KiB
C#
namespace MoleMole.Config
|
|
{
|
|
[GeneratePartialHash(CombineGeneratedFile = true)]
|
|
public class DefendChargeMixin : ConfigAbilityMixin, IHashable
|
|
{
|
|
public string DefendBSSkillID;
|
|
|
|
public string DefendLoopSkillID;
|
|
|
|
public string DefnedASSkillID;
|
|
|
|
public float DefendBSNormalizedStartTime;
|
|
|
|
public float DefendASNormalizedEndTime;
|
|
|
|
public DynamicFloat DefendPerfectStartTime = DynamicFloat.ZERO;
|
|
|
|
public DynamicFloat DefendPerfectEndTime = DynamicFloat.ZERO;
|
|
|
|
public string DefendDurationModifierName;
|
|
|
|
public string DefendPerfectDurationModifierName;
|
|
|
|
public ConfigEntityAttackEffect DefendReplaceAttackEffect;
|
|
|
|
public ConfigAbilityAction[] DefendSuccessActions = ConfigAbilityAction.EMPTY;
|
|
|
|
public ConfigAbilityAction[] DefendSuccessPerfectActions = ConfigAbilityAction.EMPTY;
|
|
|
|
public DefendChargeMixin()
|
|
{
|
|
isUnique = true;
|
|
}
|
|
|
|
public void ObjectContentHashOnto(ref int lastHash)
|
|
{
|
|
HashUtils.ContentHashOnto(DefendBSSkillID, ref lastHash);
|
|
HashUtils.ContentHashOnto(DefendLoopSkillID, ref lastHash);
|
|
HashUtils.ContentHashOnto(DefnedASSkillID, ref lastHash);
|
|
HashUtils.ContentHashOnto(DefendBSNormalizedStartTime, ref lastHash);
|
|
HashUtils.ContentHashOnto(DefendASNormalizedEndTime, ref lastHash);
|
|
if (DefendPerfectStartTime != null)
|
|
{
|
|
HashUtils.ContentHashOnto(DefendPerfectStartTime.isDynamic, ref lastHash);
|
|
HashUtils.ContentHashOnto(DefendPerfectStartTime.fixedValue, ref lastHash);
|
|
HashUtils.ContentHashOnto(DefendPerfectStartTime.dynamicKey, ref lastHash);
|
|
}
|
|
if (DefendPerfectEndTime != null)
|
|
{
|
|
HashUtils.ContentHashOnto(DefendPerfectEndTime.isDynamic, ref lastHash);
|
|
HashUtils.ContentHashOnto(DefendPerfectEndTime.fixedValue, ref lastHash);
|
|
HashUtils.ContentHashOnto(DefendPerfectEndTime.dynamicKey, ref lastHash);
|
|
}
|
|
HashUtils.ContentHashOnto(DefendDurationModifierName, ref lastHash);
|
|
HashUtils.ContentHashOnto(DefendPerfectDurationModifierName, ref lastHash);
|
|
if (DefendReplaceAttackEffect != null)
|
|
{
|
|
HashUtils.ContentHashOnto(DefendReplaceAttackEffect.EffectPattern, ref lastHash);
|
|
HashUtils.ContentHashOnto(DefendReplaceAttackEffect.SwitchName, ref lastHash);
|
|
HashUtils.ContentHashOnto(DefendReplaceAttackEffect.MuteAttackEffect, ref lastHash);
|
|
HashUtils.ContentHashOnto((int)DefendReplaceAttackEffect.AttackEffectTriggerPos, ref lastHash);
|
|
}
|
|
if (DefendSuccessActions != null)
|
|
{
|
|
ConfigAbilityAction[] defendSuccessActions = DefendSuccessActions;
|
|
foreach (ConfigAbilityAction configAbilityAction in defendSuccessActions)
|
|
{
|
|
if (configAbilityAction is IHashable)
|
|
{
|
|
HashUtils.ContentHashOnto((IHashable)configAbilityAction, ref lastHash);
|
|
}
|
|
}
|
|
}
|
|
if (DefendSuccessPerfectActions == null)
|
|
{
|
|
return;
|
|
}
|
|
ConfigAbilityAction[] defendSuccessPerfectActions = DefendSuccessPerfectActions;
|
|
foreach (ConfigAbilityAction configAbilityAction2 in defendSuccessPerfectActions)
|
|
{
|
|
if (configAbilityAction2 is IHashable)
|
|
{
|
|
HashUtils.ContentHashOnto((IHashable)configAbilityAction2, ref lastHash);
|
|
}
|
|
}
|
|
}
|
|
|
|
public override ConfigAbilityAction[][] GetAllSubActions()
|
|
{
|
|
return new ConfigAbilityAction[2][] { DefendSuccessActions, DefendSuccessPerfectActions };
|
|
}
|
|
|
|
public override BaseAbilityMixin CreateInstancedMixin(ActorAbility instancedAbility, ActorModifier instancedModifier)
|
|
{
|
|
return new AbilityDefendChargeMixin(instancedAbility, instancedModifier, this);
|
|
}
|
|
}
|
|
}
|