Passion & UI

This commit is contained in:
SoulliesOfficial
2026-06-12 17:11:39 -04:00
parent 7bc1e1722c
commit 6d7ebc5825
3444 changed files with 865284 additions and 463132 deletions

View File

@@ -62,7 +62,14 @@ namespace Cielonos.MainGame.Inventory
public partial class ItemBase
{
public bool IsUpgradable => upgradeData != null;
/// <summary>
/// 返回描述文本中 {key} 占位符对应的动态值字典。
/// 子类覆写此方法以提供运行时的展示数值(如伤害、消耗、暴击率等)。
/// 由 <see cref="UI.DisplayTextResolver"/> 在渲染描述条目时调用。
/// </summary>
public virtual Dictionary<string, string> GetDescriptionArgs() => null;
public virtual void Initialize()
{
feedbackSc?.Initialize();
@@ -145,7 +152,9 @@ namespace Cielonos.MainGame.Inventory
protected bool PlayTargetedAnimation(string animationName, CharacterBase target = null,
float adsorptionMinDistance = 1f, bool keepAdsorption = false, bool autoRotate = true,
FuncAnimSubmodule funcAnimSm = null, float animationSpeedMultiplier = 1f,
float transitionDuration = 0.1f, bool isNormalizedTransition = false, string comboTreeName = "Main")
float transitionDuration = 0.1f, bool isNormalizedTransition = false,
float normalizedStartTime = -1f,
string comboTreeName = "Main")
{
funcAnimSm ??= fullBodyFuncAnimSm;
@@ -155,7 +164,7 @@ namespace Cielonos.MainGame.Inventory
animationSpeedMultiplier *= player.attributeSm[CharacterAttribute.AttackSpeed];
}
if (funcAnimSm.Play(data, animationSpeedMultiplier, transitionDuration, isNormalizedTransition))
if (funcAnimSm.Play(data, animationSpeedMultiplier, transitionDuration, isNormalizedTransition, normalizedStartTime))
{
float actionCoolDownTime = funcAnimSm.currentData.Interval(IntervalType.ActionDisruption).StartTime /
funcAnimSm.currentPlaySpeedMultiplier;

View File

@@ -58,6 +58,24 @@ namespace Cielonos.MainGame.Inventory
activeAttributeSm?.RefreshAllModifiedAttributes();
DespawnViewObjects();
}
/// <summary>
/// 当该武器作为主武器切入(切换为当前手持)时调用。
/// 用于执行切入瞬间的特有动作(如格挡、出招等)。
/// </summary>
public virtual void OnSwitchIn()
{
}
/// <summary>
/// 当该武器切出(换成其他主武器)时调用。
/// 可用于在此处清理仅在切入时存在的临时状态(如临时格挡源)。
/// </summary>
public virtual void OnSwitchOut()
{
}
}
public partial class MainWeaponBase