public void Load()
    {
        ConsoleReader.Node messages;
        if (!ConsoleReader.LoadFile(
                Mafia.DATAPATH + "messages.txt", out messages
                ))
        {
            Debug.LogError("MafiaRenderer: Invalid message data");
        }

        messageTable = new Dictionary <string, string[]>();

        foreach (var message in messages)
        {
            messageTable[message.data] = message.ChildrenToString();
        }
    }
    public void RenderStart(ICollection <IEntity> entities)
    {
        ConsoleReader.Node root;
        ConsoleReader.LoadFile(Mafia.DATAPATH + "foreword.txt", out root);

        foreach (ConsoleReader.Node line in root)
        {
            if (line.data != "")
            {
                Render.Print(line.data);
            }
        }

        string register = "CREW REGISTER";

        foreach (IEntity entity in entities)
        {
            Crewmember c = entity as Crewmember;
            register += "\n" + c.name + ", " + c.firstName + " ... {" + c.role + "}";
        }

        Render.Print(register);
        Render.Print("[ BEGIN TRANSCRIPT ]");
    }
Exemple #3
0
    // Load observations/analyses files into repository Actions
    bool LoadActions(
        string observationsFilename, string analysesFilename,
        BrainRepository repo
        )
    {
        ConsoleReader.Node actionObservations, actionAnalyses;
        bool valid = true;

        valid &= ConsoleReader.LoadFile(
            DATAPATH + observationsFilename, out actionObservations
            );
        valid &= ConsoleReader.LoadFile(
            DATAPATH + analysesFilename, out actionAnalyses
            );
        valid &= actionObservations.children.Length == actionAnalyses.children.Length;

        if (!valid)
        {
            return(false);
        }

        for (int i = 0; i < actionObservations.children.Length; ++i)
        {
            ConsoleReader.Node observation = actionObservations.children[i];
            ConsoleReader.Node analysis    = actionAnalyses.children[i];

            int observationCount = observation.children.Length;
            int analysisCount    = analysis.children.Length;

            // Actions must have child nodes
            if (observationCount > 0 && analysisCount > 0)
            {
                LogEntry.Phrase[] observations
                    = new LogEntry.Phrase[observationCount];
                LogEntry.Phrase[] analyses
                    = new LogEntry.Phrase[analysisCount];

                for (int j = 0; j < observationCount; ++j)
                {
                    string finisher = observation.children[j].children.Length > 0 ?
                                      observation.children[j].children[0].data : "";

                    observations[j] = new LogEntry.Phrase(
                        observation.children[j].data, finisher
                        );
                }

                for (int k = 0; k < analysisCount; ++k)
                {
                    string finisher = analysis.children[k].children.Length > 0 ?
                                      analysis.children[k].children[0].data : "";

                    analyses[k] = new LogEntry.Phrase(
                        analysis.children[k].data, finisher
                        );
                }

                repo.RegisterAction(
                    new LogEntry(observation.data, observations, analyses)
                    );
            }
        }

        return(true);
    }