geometry-tower-defense/Assets/GameMain/Scripts/CustomComponent/CombatNode/CombatScheduler/CombatSettlementContext.cs

45 lines
1.3 KiB
C#

using GeometryTD.Definition;
namespace GeometryTD.CustomComponent
{
internal sealed class CombatSettlementContext
{
public CombatSettlementFlowState Flow { get; } = new();
public CombatSettlementResult Result { get; } = new();
public CombatSettlementSummary Summary { get; } = new();
}
internal sealed class CombatSettlementFlowState
{
public bool ShouldOpenRewardSelection;
public bool DidEnterRewardSelection;
public bool IsCommitted;
}
internal sealed class CombatSettlementResult
{
public bool IsVictory;
public int FinalCoin;
public int FinalBaseHp;
public int MaxBaseHp;
public int DefeatedEnemyCount;
public int GainedGold;
public BackpackInventoryData RewardInventory;
public CombatSettlementPenaltyResult Penalty { get; } = new();
}
internal sealed class CombatSettlementPenaltyResult
{
public bool ShouldApplyLowBaseHpPenalty;
public float LowBaseHpEndurancePenaltyValue;
public int AffectedTowerCount;
}
internal sealed class CombatSettlementSummary
{
public int DefeatedEnemyCount;
public int GainedGold;
public BackpackInventoryData RewardInventory;
}
}