Example #1
0
    // Update is called once per frame
    public void PopulateSpells()
    {
        Graph spell = ScriptableObject.CreateInstance <Graph>();

        CommandPattern.Command n1 = new CommandPattern.Create("CREATE_ORB", spell);
        CommandPattern.Command n2 = new CommandPattern.Move("MOVE_ORB", spell);
        CommandPattern.Command n3 = new CommandPattern.Command("EXPLODE", spell);
        n1.Connect(n2);
        n2.Connect(n3);
        spell.start.Connect(n1);

        spells.Add("Fireball", spell);
    }
Example #2
0
    void doCast(Graph spell)
    {
        foreach (Node n in spell.Traverse())
        {
            CommandPattern.Command c = (n as CommandPattern.Command);
            if (c != null)
            {
                Dictionary <string, object> args = new Dictionary <string, object>();
                args.Add("primitive", PrimitiveType.Sphere);
                args.Add("position", transform.position);
                args.Add("direction", transform.forward * 2);
                args.Add("object", "orb");


                c.Execute(null, args);
                if (c.nname == "EXPLODE")
                {
                }
            }
        }
    }
Example #3
0
    IEnumerator DoCast(GameObject go, Graph spell)
    {
        foreach (Node n in spell.Traverse())
        {
            CommandPattern.Command c = (n as CommandPattern.Command);
            if (c == null)
            {
                continue;
            }

            Dictionary <string, object> args = new Dictionary <string, object>();
            args.Add("primitive", PrimitiveType.Sphere);
            args.Add("position", transform.position);
            args.Add("direction", transform.forward * 2);
            args.Add("object", "orb");

            //if (c.name == "EXPLODE")
            //{

//            }
            c.Execute(go, args);
            yield return(new WaitForSeconds(.1f));
        }
    }