除了充盈都做完了

This commit is contained in:
SoulliesOfficial
2025-10-31 10:02:30 -04:00
parent 5d09ef7b53
commit ee1d3d9c0a
179 changed files with 3239 additions and 200 deletions

View File

@@ -117,44 +117,44 @@ namespace Continentis.MainGame
public class EventSubmodule : BuffSubmodule
{
public OrderedDictionary<string, EventUnit> onCombatStart; //战斗开始时
public OrderedDictionary<string, EventUnit> onCombatEnd; //战斗结束时
public OrderedDictionary<string, PrioritizedAction> onCombatStart; //战斗开始时
public OrderedDictionary<string, PrioritizedAction> onCombatEnd; //战斗结束时
public OrderedDictionary<string, EventUnit> onRoundStart; //每回合开始时
public OrderedDictionary<string, EventUnit> onRoundEnd; //每回合结束时
public OrderedDictionary<string, PrioritizedAction> onRoundStart; //每回合开始时
public OrderedDictionary<string, PrioritizedAction> onRoundEnd; //每回合结束时
public OrderedDictionary<string, EventUnit> onActionStart; //每次行动开始时
public OrderedDictionary<string, EventUnit> onActionEnd; //每次行动结束时
public OrderedDictionary<string, PrioritizedAction> onActionStart; //每次行动开始时
public OrderedDictionary<string, PrioritizedAction> onActionEnd; //每次行动结束时
public OrderedDictionary<string, EventUnit<CharacterBase, IntendedCard, CharacterBase>> onOpponentDecideAction; //对手AI决定行动时参数为对手和原定的目标角色
public OrderedDictionary<string, PrioritizedAction<CharacterBase, IntendedCard, CharacterBase>> onOpponentDecideAction; //对手AI决定行动时参数为对手和原定的目标角色
public OrderedDictionary<string, EventUnit<AttackResult>> onGetAttacked; //被攻击后,参数为伤害结果
public OrderedDictionary<string, PrioritizedAction<AttackResult>> onGetAttacked; //被攻击后,参数为伤害结果
public OrderedDictionary<string, EventUnit<CardInstance>> onDrawCard; //抽到卡牌时
public OrderedDictionary<string, EventUnit<CardInstance, List<CharacterBase>>> onBeforePlayCard; //使用卡牌前,参数为目标列表
public OrderedDictionary<string, EventUnit<CardInstance, List<CharacterBase>>> onAfterPlayCard; //使用卡牌后,参数为目标列表
public OrderedDictionary<string, EventUnit<CardInstance>> onDiscardCard; //卡牌被弃牌时
public OrderedDictionary<string, EventUnit<CardInstance>> onExhaustCard; //卡牌被消耗时
public OrderedDictionary<string, PrioritizedAction<CardInstance>> onDrawCard; //抽到卡牌时
public OrderedDictionary<string, PrioritizedAction<CardInstance, List<CharacterBase>>> onBeforePlayCard; //使用卡牌前,参数为目标列表
public OrderedDictionary<string, PrioritizedAction<CardInstance, List<CharacterBase>>> onAfterPlayCard; //使用卡牌后,参数为目标列表
public OrderedDictionary<string, PrioritizedAction<CardInstance>> onDiscardCard; //卡牌被弃牌时
public OrderedDictionary<string, PrioritizedAction<CardInstance>> onExhaustCard; //卡牌被消耗时
public EventSubmodule(BuffBase<T> buff) : base(buff)
{
onCombatStart = new OrderedDictionary<string, EventUnit>();
onCombatEnd = new OrderedDictionary<string, EventUnit>();
onCombatStart = new OrderedDictionary<string, PrioritizedAction>();
onCombatEnd = new OrderedDictionary<string, PrioritizedAction>();
onRoundStart = new OrderedDictionary<string, EventUnit>();
onRoundEnd = new OrderedDictionary<string, EventUnit>();
onRoundStart = new OrderedDictionary<string, PrioritizedAction>();
onRoundEnd = new OrderedDictionary<string, PrioritizedAction>();
onActionStart = new OrderedDictionary<string, EventUnit>();
onActionEnd = new OrderedDictionary<string, EventUnit>();
onActionStart = new OrderedDictionary<string, PrioritizedAction>();
onActionEnd = new OrderedDictionary<string, PrioritizedAction>();
onGetAttacked = new OrderedDictionary<string, EventUnit<AttackResult>>();
onOpponentDecideAction = new OrderedDictionary<string, EventUnit<CharacterBase, IntendedCard, CharacterBase>>();
onGetAttacked = new OrderedDictionary<string, PrioritizedAction<AttackResult>>();
onOpponentDecideAction = new OrderedDictionary<string, PrioritizedAction<CharacterBase, IntendedCard, CharacterBase>>();
onDrawCard = new OrderedDictionary<string, EventUnit<CardInstance>>();
onBeforePlayCard = new OrderedDictionary<string, EventUnit<CardInstance, List<CharacterBase>>>();
onAfterPlayCard = new OrderedDictionary<string, EventUnit<CardInstance, List<CharacterBase>>>();
onDiscardCard = new OrderedDictionary<string, EventUnit<CardInstance>>();
onExhaustCard = new OrderedDictionary<string, EventUnit<CardInstance>>();
onDrawCard = new OrderedDictionary<string, PrioritizedAction<CardInstance>>();
onBeforePlayCard = new OrderedDictionary<string, PrioritizedAction<CardInstance, List<CharacterBase>>>();
onAfterPlayCard = new OrderedDictionary<string, PrioritizedAction<CardInstance, List<CharacterBase>>>();
onDiscardCard = new OrderedDictionary<string, PrioritizedAction<CardInstance>>();
onExhaustCard = new OrderedDictionary<string, PrioritizedAction<CardInstance>>();
}
}
@@ -252,6 +252,19 @@ namespace Continentis.MainGame
remainingCount = Mathf.Min(remainingCount, maximumCount);
onCountChanged?.Invoke(remainingCount);
}
/// <summary>
/// 选择更高的持续时间和剩余时间。
/// </summary>
public void PickHigherCount(CountSubmodule other)
{
if (isInfinite)
{
return;
}
maximumCount = Mathf.Max(maximumCount, other.maximumCount);
remainingCount = Mathf.Max(remainingCount, other.remainingCount);
}
}
@@ -289,9 +302,9 @@ namespace Continentis.MainGame
stackUpperLimit = keepMaximal ? Mathf.Max(stackUpperLimit, upperLimit) : upperLimit;
}
public void PickHigherStack(int newAmount)
public void PickHigherStack(UnitedStackSubmodule other)
{
stackAmount = Mathf.Max(stackAmount, newAmount);
stackAmount = Mathf.Max(stackAmount, other.stackAmount);
if (stackUpperLimit > 0)
{
stackAmount = Mathf.Min(stackAmount, stackUpperLimit);
@@ -339,6 +352,11 @@ namespace Continentis.MainGame
IntegerRange.OnBecomeZero();
}
}
if(buff is CharacterBuffBase characterBuff)
{
characterBuff.iconSubmodule?.Update();
}
}
public void ClearAllStacks()