多轮审查和修复
This commit is contained in:
29
Assets/Scripts/Equipment/Effects/WeaponOverrideEffect.cs
Normal file
29
Assets/Scripts/Equipment/Effects/WeaponOverrideEffect.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using BaseGames.Player;
|
||||
|
||||
namespace BaseGames.Equipment
|
||||
{
|
||||
/// <summary>
|
||||
/// 武器替换护符效果(架构 09_ProgressionModule §5)。
|
||||
/// 通过 WeaponManager 将指定形态的武器替换为另一武器。
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class WeaponOverrideEffect : ICharmEffect
|
||||
{
|
||||
public string targetFormId; // 目标形态 ID(留空 = 所有形态)
|
||||
public WeaponSO replacementWeapon; // 替换武器 SO
|
||||
|
||||
public void OnEquip(EquipmentContext ctx)
|
||||
=> ctx.WeaponMgr?.SetOverride(targetFormId, replacementWeapon);
|
||||
|
||||
public void OnUnequip(EquipmentContext ctx)
|
||||
=> ctx.WeaponMgr?.ClearOverride(targetFormId);
|
||||
|
||||
public string GetEffectDescription()
|
||||
{
|
||||
string formStr = string.IsNullOrEmpty(targetFormId) ? "所有形态" : targetFormId;
|
||||
string wName = replacementWeapon != null ? replacementWeapon.displayName : "null";
|
||||
return $"{formStr}的武器替换为 [{wName}]";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user