public IScriptable Clone()
        {
            IScriptable         NewScript     = (IScriptable)this.MemberwiseClone();
            VO_Script_Condition CurrentObject = NewScript as VO_Script_Condition;

            CurrentObject.IfSubLines = new List <VO_Line>();

            //If Line List
            foreach (VO_Line CurrentIfLine in this.IfSubLines)
            {
                IScriptable CurrentScriptLine = CurrentIfLine as IScriptable;
                VO_Line     NewSubLine        = CurrentScriptLine.Clone() as VO_Line;
                CurrentObject.IfSubLines.Add(NewSubLine);
            }

            //Else Line List
            CurrentObject.ElseSubLines = new List <VO_Line>();

            foreach (VO_Line CurrentElseLine in this.ElseSubLines)
            {
                IScriptable CurrentScriptLine = CurrentElseLine as IScriptable;
                VO_Line     NewSubLine        = CurrentScriptLine.Clone() as VO_Line;
                CurrentObject.ElseSubLines.Add(NewSubLine);
            }

            return(NewScript);
        }
        public VO_Script Clone()
        {
            VO_Script newScript = (VO_Script)this.MemberwiseClone();

            newScript.Id    = Guid.NewGuid();
            newScript.Lines = new List <VO_Line>();
            foreach (VO_Line line in this.Lines)
            {
                IScriptable ScriptLine = line as IScriptable;
                VO_Line     NewLine    = ScriptLine.Clone() as VO_Line;
                newScript.Lines.Add(NewLine);
            }
            return(newScript);
        }
        public IScriptable Clone()
        {
            IScriptable    NewScript     = (IScriptable)this.MemberwiseClone();
            VO_Script_Loop CurrentObject = NewScript as VO_Script_Loop;

            CurrentObject.WhileSubLines = new List <VO_Line>();

            foreach (VO_Line CurrentWhileLine in this.WhileSubLines)
            {
                IScriptable CurrentScriptLine = CurrentWhileLine as IScriptable;
                VO_Line     NewSubLine        = CurrentScriptLine.Clone() as VO_Line;
                CurrentObject.WhileSubLines.Add(NewSubLine);
            }

            return(NewScript);
        }