public static Dictionary <string, ConditionCollection> nodeC()
    {
        GameObject  nodeCgo = nodes.GetNode("C");
        SceneSounds ss      = FindObjectOfType <SceneSounds> ();

        AudioReaction whoosh_sound = new AudioReaction();

        whoosh_sound.audioSource = nodeCgo.GetComponent <AudioSource>() as AudioSource;
        whoosh_sound.audioClip   = ss.getSceneSoundByName("movewhoosh").clip;
        whoosh_sound.delay       = 0.0f;

        //float left
        ConditionCollection ccfloatleft = new ConditionCollection();
        ReactionCollection  floatleft_react_collection = new ReactionCollection();
        MoveReaction        floatleft_react            = new MoveReaction();

        floatleft_react.destination          = "B";
        floatleft_react_collection.reactions = new Reaction[] {
            floatleft_react,
            whoosh_sound
        };
        ccfloatleft.reactionCollection = floatleft_react_collection;
        Condition always_true_cond = new Condition();

        always_true_cond.toEval = () => {
            return(true);
        };
        ccfloatleft.requiredConditions = new Condition[] {
            always_true_cond
        };

        //float right
        ConditionCollection ccfloatright = new ConditionCollection();
        ReactionCollection  floatright_react_collection = new ReactionCollection();
        PlayerTextReaction  floatright_react            = new PlayerTextReaction();

        floatright_react.message = "There is nothing to the right.";
        //		floatright_react.textColor = Color.white;
        floatright_react.delay = 0.01f;
        AudioReaction floatright_react_sound = new AudioReaction();

        floatright_react_sound.audioSource    = nodeCgo.GetComponent <AudioSource>() as AudioSource;
        floatright_react_sound.audioClip      = ss.getSceneSoundByName("meow1").clip;
        floatright_react_sound.delay          = 0.0f;
        floatright_react_collection.reactions = new Reaction[] {
            floatright_react,
            floatright_react_sound
        };
        Condition always_true_init_cond = new Condition();

        always_true_init_cond.toEval = () => {
            ccfloatright.reactionCollection.DoInit();
            return(true);
        };
        ccfloatright.reactionCollection = floatright_react_collection;
        ccfloatright.requiredConditions = new Condition[] {
            always_true_init_cond
        };

        //grab
        ConditionCollection  ccgrab = new ConditionCollection();
        ReactionCollection   grab_react_collection = new ReactionCollection();
        PickedUpItemReaction grab_react            = new PickedUpItemReaction();
        SceneItems           si = FindObjectOfType <SceneItems> ();

        grab_react.item = si.getSceneItemByName("pills");

        GameObjectReaction grab_pills_react = new GameObjectReaction();

        GameObject[] gos = FindObjectsOfType <GameObject> ();
        foreach (var g in gos)
        {
            if (g.name == "pills")
            {
                grab_pills_react.gameObject = g;
                break;
            }
        }
        grab_pills_react.activeState = false;

        AudioReaction grab_pills_react_sound = new AudioReaction();

        grab_pills_react_sound.audioSource = nodeCgo.GetComponent <AudioSource>() as AudioSource;
        grab_pills_react_sound.audioClip   = ss.getSceneSoundByName("pills").clip;
        grab_pills_react_sound.delay       = 0.0f;

        grab_react_collection.reactions = new Reaction[] {
            grab_react,
            grab_pills_react,
            grab_pills_react_sound
        };

        Condition pills_not_yet_acquired = new Condition();

        pills_not_yet_acquired.toEval = () => {
            return(!inv.Contains("pills"));
        };

        ccgrab.reactionCollection = grab_react_collection;
        ccgrab.requiredConditions = new Condition[] {
            pills_not_yet_acquired
        };
        ccgrab.reactionCollection.DoInit();

        //look
        ConditionCollection cclook = new ConditionCollection();
        ReactionCollection  look_react_collection = new ReactionCollection();
        PlayerTextReaction  look_react            = new PlayerTextReaction();

        look_react.message = "My human’s happy pills, fun to bat under the couch.";
        //		floatright_react.textColor = Color.white;
        look_react.delay = 0.01f;

        look_react_collection.reactions = new Reaction[] {
            look_react
        };

        cclook.reactionCollection = look_react_collection;
        cclook.requiredConditions = new Condition[] {
            pills_not_yet_acquired
        };
        cclook.reactionCollection.DoInit();

        //interact
        ConditionCollection ccinteract = new ConditionCollection();
        ReactionCollection  interact_react_collection = new ReactionCollection();

        PlayerTextReaction interact_ptext_react = new PlayerTextReaction();

        interact_ptext_react.message = "meow...pills are for humans, not magic cats!";
        interact_ptext_react.delay   = 0f;

        interact_react_collection.reactions = new Reaction[] {
            interact_ptext_react
        };
        Condition cannot_exit_cond = new Condition();

        cannot_exit_cond.toEval = () => {
            return(!(bool)GameData.GlobalBools["can_exit_tent"]);
        };
        ccinteract.reactionCollection = interact_react_collection;
        cclook.requiredConditions     = new Condition[] {
            pills_not_yet_acquired,
            cannot_exit_cond
        };
        ccinteract.reactionCollection.DoInit();

        Dictionary <string, ConditionCollection> htm = new Dictionary <string, ConditionCollection>();

        htm.Add("float left", ccfloatleft);
        htm.Add("float right", ccfloatright);
        htm.Add("grab", ccgrab);
        htm.Add("look", cclook);
        htm.Add("interact", ccinteract);

        return(htm);
    }
    public static Dictionary <string, ConditionCollection> nodeB()
    {
        GameObject  nodeBgo = nodes.GetNode("B");
        SceneSounds ss      = FindObjectOfType <SceneSounds> ();

        AudioReaction whoosh_sound = new AudioReaction();

        whoosh_sound.audioSource = nodeBgo.GetComponent <AudioSource>() as AudioSource;
        whoosh_sound.audioClip   = ss.getSceneSoundByName("movewhoosh").clip;
        whoosh_sound.delay       = 0.0f;

        //float left
        ConditionCollection ccfloatleft = new ConditionCollection();
        ReactionCollection  floatleft_react_collection = new ReactionCollection();
        MoveReaction        floatleft_react            = new MoveReaction();

        floatleft_react.destination          = "A";
        floatleft_react_collection.reactions = new Reaction[] {
            floatleft_react,
            whoosh_sound
        };
        ccfloatleft.reactionCollection = floatleft_react_collection;
        Condition always_true_cond = new Condition();

        always_true_cond.toEval = () => {
            return(true);
        };
        ccfloatleft.requiredConditions = new Condition[] {
            always_true_cond
        };
        //float right
        ConditionCollection ccfloatright = new ConditionCollection();
        ReactionCollection  floatright_react_collection = new ReactionCollection();

        MoveReaction floatright_react = new MoveReaction();

        floatright_react.destination          = "C";
        floatright_react_collection.reactions = new Reaction[] {
            floatright_react,
            whoosh_sound
        };

        ccfloatright.reactionCollection = floatright_react_collection;
        ccfloatright.requiredConditions = new Condition[] {
            always_true_cond
        };

        //kombucha conditions
        Condition kombucha_not_appeared = new Condition();

        kombucha_not_appeared.toEval = () => {
            return(!((bool)GameData.GlobalBools["kombucha_appeared"]));
        };

        Condition kombucha_appeared = new Condition();

        kombucha_appeared.toEval = () => {
            return((bool)GameData.GlobalBools["kombucha_appeared"]);
        };

        //grab
        ConditionCollection ccgrab = new ConditionCollection();
        ReactionCollection  grab_react_collection = new ReactionCollection();

        InstantiateReaction grab_react = new InstantiateReaction();

        grab_react.prefab = Resources.Load <GameObject> ("Prefabs/Kombucha");
        grab_react.pos    = new Vector3(5200, 350, 0);

        GlobalBoolReaction kombucha_appeared_reaction = new GlobalBoolReaction();

        kombucha_appeared_reaction.toSet = "kombucha_appeared";
        kombucha_appeared_reaction.setTo = true;


        AudioReaction kombucha_appeared_react_sound = new AudioReaction();

        kombucha_appeared_react_sound.audioSource = nodeBgo.GetComponent <AudioSource>() as AudioSource;
        kombucha_appeared_react_sound.audioClip   = ss.getSceneSoundByName("oww").clip;
        kombucha_appeared_react_sound.delay       = 0.0f;

        grab_react_collection.reactions = new Reaction[] {
            grab_react,
            kombucha_appeared_reaction,
            kombucha_appeared_react_sound
        };

        ccgrab.reactionCollection = grab_react_collection;
        ccgrab.requiredConditions = new Condition[] {
            kombucha_not_appeared
        };

        ccgrab.reactionCollection.DoInit();

        //look kombucha
        ConditionCollection cclookk = new ConditionCollection();
        ReactionCollection  lookk_react_collection = new ReactionCollection();
        PlayerTextReaction  lookk_react            = new PlayerTextReaction();

        lookk_react.message = "My human drinks a lot of kombucha.";
        lookk_react.delay   = 0f;

        lookk_react_collection.reactions = new Reaction[] {
            lookk_react
        };

        cclookk.reactionCollection = lookk_react_collection;
        cclookk.requiredConditions = new Condition[] {
            kombucha_appeared
        };
        cclookk.reactionCollection.DoInit();

        //look
        ConditionCollection cclook = new ConditionCollection();
        ReactionCollection  look_react_collection     = new ReactionCollection();
        ReactionCollection  look_neg_react_collection = new ReactionCollection();

        PlayerTextReaction look_react = new PlayerTextReaction();

        look_react.message = "kombucha, gross.";
        look_react.delay   = 0f;

        PlayerTextReaction look_neg_react = new PlayerTextReaction();

        look_neg_react.message = "meeeow...if only there was a way to distract her!";
        look_neg_react.delay   = 0f;

        look_react_collection.reactions = new Reaction[] {
            look_react
        };
        look_neg_react_collection.reactions = new Reaction[] {
            look_neg_react
        };

        cclook.reactionCollection    = look_react_collection;
        cclook.negReactionCollection = look_neg_react_collection;
        cclook.requiredConditions    = new Condition[] {
            kombucha_appeared             //TODO: bey is gone?
        };
        cclook.reactionCollection.DoInit();
        cclook.negReactionCollection.DoInit();

        //interact kombucha
        ConditionCollection ccinteractk = new ConditionCollection();
        ReactionCollection  interactk_react_collection = new ReactionCollection();
        GameObjectReaction  interactk_go_reaction      = new GameObjectReaction();

        GameObject[] gos = FindObjectsOfType <GameObject> ();
        foreach (var g in gos)
        {
            if (g.name == "Bey")
            {
                interactk_go_reaction.gameObject = g;
                break;
            }
        }
        interactk_go_reaction.activeState = false;

        GlobalBoolReaction can_exit_tent_reaction = new GlobalBoolReaction();

        can_exit_tent_reaction.toSet = "can_exit_tent";
        can_exit_tent_reaction.setTo = true;

        UninstantiateReaction uninstantiate_kombucha_reaction = new UninstantiateReaction();

        uninstantiate_kombucha_reaction.objectName = "kombucha";

        AudioReaction kombucha_drugged_react_sound = new AudioReaction();

        kombucha_drugged_react_sound.audioSource = nodeBgo.GetComponent <AudioSource>() as AudioSource;
        kombucha_drugged_react_sound.audioClip   = ss.getSceneSoundByName("drugged_the_human").clip;
        kombucha_drugged_react_sound.delay       = 0.0f;

        Condition pills_acquired = new Condition();

        pills_acquired.toEval = () => {
            return(inv.Contains("pills"));
        };

        LostItemReaction pill_loss_react = new LostItemReaction();
        SceneItems       si = FindObjectOfType <SceneItems> ();

        pill_loss_react.item = si.getSceneItemByName("pills");

        interactk_react_collection.reactions = new Reaction[] {
            interactk_go_reaction,
            pill_loss_react,
            can_exit_tent_reaction,
            uninstantiate_kombucha_reaction,
            kombucha_drugged_react_sound
        };

        ccinteractk.reactionCollection = interactk_react_collection;
        ccinteractk.requiredConditions = new Condition[] {
            pills_acquired,
            kombucha_appeared
        };

        ccinteractk.reactionCollection.DoInit();


        Dictionary <string, ConditionCollection> htm = new Dictionary <string, ConditionCollection>();

        htm.Add("float left", ccfloatleft);
        htm.Add("float right", ccfloatright);
        htm.Add("grab", ccgrab);
        htm.Add("look kombucha", cclookk);
        htm.Add("look", cclook);
        htm.Add("interact kombucha", ccinteractk);
        return(htm);
    }