public StateNode Clone() { var newState = new StateNode { Player = Player.Clone(), Boss = Boss.Clone(), ActiveEffects = new List <Effect>(), ManaSpent = ManaSpent, Depth = Depth }; newState.ActiveEffects.AddRange(ActiveEffects.Select(e => e.Clone())); return(newState); }