Files
Cielonos/Assets/Scripts/MainGame/Items/PassiveEquipments/ReflectionPrism.cs
SoulliesOfficial 39b43680a9 爆更
2026-07-18 03:16:20 -04:00

39 lines
1.2 KiB
C#

using System;
using System.Collections.Generic;
using Cielonos.MainGame.Characters;
using SLSUtilities.General;
using UnityEngine;
namespace Cielonos.MainGame.Inventory.Collections
{
/// <summary>
/// 反射棱镜 / Reflection Prism
/// 格挡敌人的投射物后会将其反弹回去。
/// </summary>
public partial class ReflectionPrism : PassiveEquipmentBase
{
public override void OnObtained()
{
base.OnObtained();
Action<AttackAreaBase, BlockSource> onBlockSuccess = OnBlockSuccess;
player.eventSm.onBlockSuccess.Add("ReflectionPrism", onBlockSuccess.ToPrioritized(-100));
}
public override void OnDiscarded()
{
player.eventSm.onBlockSuccess.Remove("ReflectionPrism");
base.OnDiscarded();
}
}
public partial class ReflectionPrism
{
private void OnBlockSuccess(AttackAreaBase attackArea, BlockSource blockSource)
{
player.reactionSc.reflectionSm.ApplyReflection(player, this, "ReflectionPrism_Reflection", 0, 0.01f,
area => area is Projectile,
area => (area as Projectile)!.Reflect(player));
}
}
}