namespace Wizard; public abstract class AIVirtualActionInfo : AISituationInfo { public bool IsAlreadyUsed { get; set; } public AIVirtualActionInfo PremiseAction { get; private set; } public PlaySimulationType ReservedPlayType { get; set; } public AIVirtualActionInfo(AIVirtualCard sourceCard, AIOperationType type, AISelectedTargetInfoSet targetSet, AIVirtualActionInfo premise = null) : base(sourceCard, type, targetSet) { IsAlreadyUsed = false; PremiseAction = ((premise == null) ? this : premise); ReservedPlayType = PlaySimulationType.Undefined; } public virtual ulong GetHash() { if (IsAlreadyUsed) { return 0uL; } ulong num = 0uL; num += base.Actor.GetHash() * 6343; if (base.ActionTarget != null) { num += base.ActionTarget.GetHash() * 211; } if (PremiseAction != this) { num += PremiseAction.GetHash() * 735173; } return num; } }