69 lines
2.0 KiB
C#
69 lines
2.0 KiB
C#
using GameFramework;
|
|
using GameFramework.Event;
|
|
using GeometryTD.Procedure;
|
|
|
|
namespace GeometryTD.CustomEvent
|
|
{
|
|
public class NodeCompleteEventArgs : GameEventArgs
|
|
{
|
|
public static int EventId = typeof(NodeCompleteEventArgs).GetHashCode();
|
|
|
|
public override int Id => EventId;
|
|
|
|
public string RunId { get; private set; }
|
|
|
|
public int NodeId { get; private set; }
|
|
|
|
public RunNodeType NodeType { get; private set; }
|
|
|
|
public int SequenceIndex { get; private set; }
|
|
|
|
public RunNodeCompletionStatus CompletionStatus { get; private set; }
|
|
|
|
public bool CombatWon { get; private set; }
|
|
|
|
public RunNodeCompletionSnapshot CompletionSnapshot { get; private set; }
|
|
|
|
public NodeCompleteEventArgs()
|
|
{
|
|
}
|
|
|
|
public static NodeCompleteEventArgs Create()
|
|
{
|
|
return Create(null, 0, RunNodeType.None, -1, RunNodeCompletionStatus.Completed, true, null);
|
|
}
|
|
|
|
public static NodeCompleteEventArgs Create(
|
|
string runId,
|
|
int nodeId,
|
|
RunNodeType nodeType,
|
|
int sequenceIndex,
|
|
RunNodeCompletionStatus completionStatus,
|
|
bool combatWon,
|
|
RunNodeCompletionSnapshot completionSnapshot)
|
|
{
|
|
var args = ReferencePool.Acquire<NodeCompleteEventArgs>();
|
|
args.RunId = runId;
|
|
args.NodeId = nodeId;
|
|
args.NodeType = nodeType;
|
|
args.SequenceIndex = sequenceIndex;
|
|
args.CompletionStatus = completionStatus;
|
|
args.CombatWon = combatWon;
|
|
args.CompletionSnapshot = completionSnapshot != null ? completionSnapshot.Clone() : null;
|
|
|
|
return args;
|
|
}
|
|
|
|
public override void Clear()
|
|
{
|
|
RunId = null;
|
|
NodeId = 0;
|
|
NodeType = RunNodeType.None;
|
|
SequenceIndex = -1;
|
|
CompletionStatus = RunNodeCompletionStatus.None;
|
|
CombatWon = false;
|
|
CompletionSnapshot = null;
|
|
}
|
|
}
|
|
}
|