public static BaseNode NodeCreator(NodeType type, IFile file) { BaseNode node = null; switch (type) { case NodeType.Action: node = new ActionNode(file); break; case NodeType.Buff: node = new BuffNode(file); break; case NodeType.Caster: node = new CasterNode(file); break; case NodeType.Chain: node = new ChainNode(file); break; case NodeType.Move: node = new MoveNode(file); break; case NodeType.Damage: node = new DamageNode(file); break; case NodeType.Property: node = new PropertyNode(file); break; case NodeType.Shield: node = new ShieldNode(file); break; //misc Node case NodeType.Ap: node = new MiscNode(file, MiscType.Ap); break; case NodeType.Audio: node = new MiscNode(file, MiscType.Audio); break; case NodeType.Camera: node = new MiscNode(file, MiscType.Camera); break; case NodeType.CommonBuff: node = new MiscNode(file, MiscType.CommonBuff); break; case NodeType.Death: node = new MiscNode(file, MiscType.Death); break; case NodeType.Delay: node = new MiscNode(file, MiscType.Delay); break; case NodeType.Hide: node = new MiscNode(file, MiscType.Hide); break; case NodeType.Interrupt: node = new MiscNode(file, MiscType.Interrupt); break; case NodeType.KeepAlive: node = new MiscNode(file, MiscType.KeepAlive); break; case NodeType.MirageDie: node = new MiscNode(file, MiscType.MirageDie); break; case NodeType.Phase: node = new MiscNode(file, MiscType.Phase); break; case NodeType.ReAct: node = new MiscNode(file, MiscType.ReAct); break; case NodeType.Relief: node = new MiscNode(file, MiscType.Relief); break; case NodeType.RetargetAll: node = new MiscNode(file, MiscType.RetargetAll); break; case NodeType.RetargetMain: node = new MiscNode(file, MiscType.RetargetMain); break; case NodeType.SceneReset: node = new MiscNode(file, MiscType.SceneReset); break; case NodeType.State: node = new MiscNode(file, MiscType.State); break; case NodeType.Steady: node = new MiscNode(file, MiscType.Steady); break; case NodeType.Undying: node = new MiscNode(file, MiscType.Undying); break; case NodeType.Wait: node = new MiscNode(file, MiscType.Wait); break; case NodeType.Yield: node = new MiscNode(file, MiscType.Yield); break; case NodeType.Queue: node = new MiscNode(file, MiscType.Queue); break; case NodeType.Terminal: node = new MiscNode(file, MiscType.Terminal); break; case NodeType.Skill: node = new SkillNode(file); break; } return(node); }