public State() { details = new StateDetails(); tempEffects = new List <TemporaryEnhancementAbility>(); step = 1; previousState = null; leadingAction = null; }
// Makes a new state which was arrived at by performing an action from a // previous state. public State(State oldState, Ability leadingAction) { this.details = oldState.details; this.previousState = oldState; // do we need to clone here? this.leadingAction = leadingAction; this.step = oldState.step + 1; tempEffects = new List <TemporaryEnhancementAbility>(oldState.tempEffects); }
// Makes an exact copy of the original state public State(State oldState) { Debug.Assert(oldState != null); this.details = oldState.details; this.previousState = oldState.previousState; // do we need to clone here? this.leadingAction = oldState.leadingAction; this.step = oldState.step; tempEffects = new List <TemporaryEnhancementAbility>(oldState.tempEffects); }