mirror of
https://github.com/tym1116/BH3.git
synced 2025-12-17 00:44:49 +01:00
66 lines
1.8 KiB
C#
66 lines
1.8 KiB
C#
namespace MoleMole.Config
|
|
{
|
|
[GeneratePartialHash(CombineGeneratedFile = true)]
|
|
public class MonsterFlashBombMixin : ConfigAbilityMixin, IHashable
|
|
{
|
|
public float Angle = 120f;
|
|
|
|
public float DelayTime;
|
|
|
|
public MixinEffect TriggerEffect;
|
|
|
|
public string[] ModifierNames;
|
|
|
|
public ConfigAbilityAction[] SuccessActions = ConfigAbilityAction.EMPTY;
|
|
|
|
public ConfigAbilityAction[] FailActions = ConfigAbilityAction.EMPTY;
|
|
|
|
public void ObjectContentHashOnto(ref int lastHash)
|
|
{
|
|
HashUtils.ContentHashOnto(Angle, ref lastHash);
|
|
HashUtils.ContentHashOnto(DelayTime, ref lastHash);
|
|
if (TriggerEffect != null)
|
|
{
|
|
HashUtils.ContentHashOnto(TriggerEffect.EffectPattern, ref lastHash);
|
|
HashUtils.ContentHashOnto(TriggerEffect.AudioPattern, ref lastHash);
|
|
}
|
|
if (ModifierNames != null)
|
|
{
|
|
string[] modifierNames = ModifierNames;
|
|
foreach (string value in modifierNames)
|
|
{
|
|
HashUtils.ContentHashOnto(value, ref lastHash);
|
|
}
|
|
}
|
|
if (SuccessActions != null)
|
|
{
|
|
ConfigAbilityAction[] successActions = SuccessActions;
|
|
foreach (ConfigAbilityAction configAbilityAction in successActions)
|
|
{
|
|
if (configAbilityAction is IHashable)
|
|
{
|
|
HashUtils.ContentHashOnto((IHashable)configAbilityAction, ref lastHash);
|
|
}
|
|
}
|
|
}
|
|
if (FailActions == null)
|
|
{
|
|
return;
|
|
}
|
|
ConfigAbilityAction[] failActions = FailActions;
|
|
foreach (ConfigAbilityAction configAbilityAction2 in failActions)
|
|
{
|
|
if (configAbilityAction2 is IHashable)
|
|
{
|
|
HashUtils.ContentHashOnto((IHashable)configAbilityAction2, ref lastHash);
|
|
}
|
|
}
|
|
}
|
|
|
|
public override BaseAbilityMixin CreateInstancedMixin(ActorAbility instancedAbility, ActorModifier instancedModifier)
|
|
{
|
|
return new AbilityMonsterFlashBombMixin(instancedAbility, instancedModifier, this);
|
|
}
|
|
}
|
|
}
|