Files
BH3/Assets/Scripts/Assembly-CSharp/MoleMole/AbilityBanAvatarSkillButtonMixin.cs
2025-08-13 09:26:42 +08:00

44 lines
1.4 KiB
C#

using MoleMole.Config;
namespace MoleMole
{
public class AbilityBanAvatarSkillButtonMixin : BaseAbilityMixin
{
private BanAvatarSkillButtonMixin config;
public AbilityBanAvatarSkillButtonMixin(ActorAbility instancedAbility, ActorModifier instancedModifier, ConfigAbilityMixin config)
: base(instancedAbility, instancedModifier, config)
{
this.config = (BanAvatarSkillButtonMixin)config;
}
public override void OnAdded()
{
AvatarActor avatarActor = actor as AvatarActor;
if (avatarActor.GetSkillInfo(config.SkillID) != null)
{
avatarActor.GetSkillInfo(config.SkillID).muted = true;
avatarActor.GetSkillInfo(config.SkillID).maskIconPath = config.ReplaceButtonIconPath;
if (Singleton<AvatarManager>.Instance.IsLocalAvatar(actor.entity.GetRuntimeID()))
{
Singleton<MainUIManager>.Instance.GetInLevelUICanvas().mainPageContext.GetSkillButtonBySkillID(config.SkillID).RefreshSkillInfo();
}
}
}
public override void OnRemoved()
{
AvatarActor avatarActor = actor as AvatarActor;
if (avatarActor.GetSkillInfo(config.SkillID) != null)
{
avatarActor.GetSkillInfo(config.SkillID).muted = false;
avatarActor.GetSkillInfo(config.SkillID).maskIconPath = null;
if (Singleton<AvatarManager>.Instance.IsLocalAvatar(actor.entity.GetRuntimeID()))
{
Singleton<MainUIManager>.Instance.GetInLevelUICanvas().mainPageContext.GetSkillButtonBySkillID(config.SkillID).RefreshSkillInfo();
}
}
}
}
}