Esempio n. 1
0
    public uConversationNode(ConversationNode proto)
    {
        alternatives = new Dictionary <long, Alternative>();
        blocks       = new List <StatusBlock>();
        uid          = proto.Uid;
        if (proto.Name != "null")
        {
            ID = proto.Name;
        }
        else
        {
            ID = "" + uid;
        }

        if (proto.Text != "null")
        {
            text = proto.Text;
        }
        else
        {
            text = "";
        }

        foreach (Connection c in proto.ConnectionsList)
        {
            List <List <StatusCheckable> > reqs = new List <List <StatusCheckable> >();

            foreach (RequirementSet block in c.RequirementSetsList)
            {
                StatusCheckableFactory factory = new StatusCheckableFactory();
                List <StatusCheckable> checks  = new List <StatusCheckable>();
                foreach (StatusCheckableProtocol p in block.RequirementsList)
                {
                    checks.Add(factory.getStatusCheckableFromProtocol(p));
                }
                reqs.Add(checks);
            }

            Alternative alt = new Alternative(c.NodeId, c.Text, reqs);

            if (c.HasPriority)
            {
                alt.setPriority(c.Priority);
            }
            else
            {
                alt.setPriority(0);
            }
            alternatives.Add(alt.getUID(), alt);
        }

        foreach (StatusBlockProtocol s in proto.BlocksList)
        {
            blocks.Add(new StatusBlock(s));
        }

        cacheIds();
    }
Esempio n. 2
0
    public StatusBlock(StatusBlockProtocol proto)
    {
        init(proto.Name);

        foreach (SpawnCommandProtocol s in proto.CommandsList)
        {
            blockCommands.Add(new SpawnCommand(s));
        }

        StatusCheckableFactory factory = new StatusCheckableFactory();

        foreach (StatusCheckableProtocol s in proto.StatusesList)
        {
            statuses.Add(factory.getStatusCheckableFromProtocol(s));
        }
    }
Esempio n. 3
0
        public Step(StatusStepProtocol proto)
        {
            name        = proto.Name;
            description = proto.Description;

            StatusCheckableFactory          factory         = new StatusCheckableFactory();
            IList <StatusCheckableProtocol> statusProtocols = proto.StatusesInStepList;

            statuses = new Dictionary <StatusCheckable, bool>();
            foreach (StatusCheckableProtocol p in statusProtocols)
            {
                statuses.Add(factory.getStatusCheckableFromProtocol(p), false);
            }

            IList <SpawnCommandProtocol> commandProtocols = proto.CommandsList;

            commands = new List <SpawnCommand>();
            foreach (SpawnCommandProtocol c in commandProtocols)
            {
                commands.Add(new SpawnCommand(c));
            }

            spawnLocations = new List <Point>();
        }
Esempio n. 4
0
    public void initFromProto(ConversationNode proto)
    {
        alternatives = new Dictionary <long, Alternative>();
        blocks       = new List <StatusBlock>();
        if (proto.Name != "null")
        {
            ID = proto.Name;
        }
        else
        {
            ID = "" + uid;
        }

        if (proto.Text != "null")
        {
            text = proto.Text;
        }
        else
        {
            text = "";
        }

        foreach (Connection c in proto.ConnectionsList)
        {
            List <List <StatusCheckable> > reqs = new List <List <StatusCheckable> >();

            foreach (RequirementSet block in c.RequirementSetsList)
            {
                StatusCheckableFactory factory = new StatusCheckableFactory();
                List <StatusCheckable> checks  = new List <StatusCheckable>();
                foreach (StatusCheckableProtocol p in block.RequirementsList)
                {
                    StatusCheckable check = factory.getStatusCheckableFromProtocol(p);
                    check.setActive();
                    checks.Add(check);
                }
                reqs.Add(checks);
            }

            Alternative alt = new Alternative(c.NodeId, c.Text, reqs);

            if (c.HasPriority)
            {
                alt.setPriority(c.Priority);
            }
            else
            {
                alt.setPriority(0);
            }
            alternatives.Add(alt.getUID(), alt);
        }

        foreach (StatusBlockProtocol s in proto.BlocksList)
        {
            Debug.Log("LOADING: " + this.text);
            StatusBlock block = new StatusBlock(s);

            foreach (StatusCheckable check in block.getStatuses())
            {
                check.setActive();
            }

            blocks.Add(block);
        }

        strIdMap.Add(ID, this);
    }