Beispiel #1
0
    private void ChooseReplica(SimpleReplica replica)
    {
        foreach (GameObject replicaButtonObject in this.replicaButtons)
        {
            Destroy(replicaButtonObject);
        }
        this.replicaButtons.Clear();

        GameObject replicaObject;

        if (replica.IsPlayerReplica())
        {
            replicaObject = Instantiate(this.playerReplicaPrefab) as GameObject;
        }
        else
        {
            replicaObject = Instantiate(this.npcReplicaPrefab) as GameObject;
        }
        replicaObject.transform.SetParent(this.dialogueContent, false);
        replicaObject.transform.localScale = new Vector3(1, 1, 1);

        replicaObject.GetComponent <Text> ().text = this.translator.Translate(replica.text, DialogueWindow.resource);;

        ITransition transition = replica.GetTransition();

        if (transition != null)
        {
            this.dialog.SetCurrentReplica(transition.GetToReplicaKey());
        }
        this.isBattle      = replica.IsBattle();
        this.finalState    = (replica.IsFinal())? 1 : 0;
        this.waitForPlayer = false;
    }
Beispiel #2
0
    void Update()
    {
        if (this.dialog == null)
        {
            return;
        }
        if (this.finalState == 2)
        {
            return;
        }
        if (this.finalState == 1)
        {
            GameObject replicaButtonObject = Instantiate(this.replicaButtonPrefab) as GameObject;
            replicaButtonObject.transform.SetParent(this.replicasContent, false);
            replicaButtonObject.transform.localScale = new Vector3(1, 1, 1);

            replicaButtonObject.GetComponent <Text> ().text = this.translator.Translate("Dialogue ended. Click to close", DialogueWindow.resource);

            Button button = replicaButtonObject.GetComponent <Button> ();
            button.onClick.AddListener(() => EndDialogue());
            this.finalState = 2;
            return;
        }

        if (this.waitForPlayer)
        {
            return;
        }

        IReplica replica = this.dialog.GetCurrentReplica();

        if (replica is SimpleReplica)
        {
            SimpleReplica simpleReplica = replica as SimpleReplica;
            if (simpleReplica.IsPlayerReplica())
            {
                this.waitForPlayer = true;

                GameObject replicaButtonObject = Instantiate(this.replicaButtonPrefab) as GameObject;
                replicaButtonObject.transform.SetParent(this.replicasContent, false);
                replicaButtonObject.transform.localScale = new Vector3(1, 1, 1);

                replicaButtonObject.GetComponent <Text> ().text = this.translator.Translate(simpleReplica.text, DialogueWindow.resource);

                Button        button     = replicaButtonObject.GetComponent <Button> ();
                SimpleReplica tmpReplica = simpleReplica;
                button.onClick.AddListener(() => ChooseReplica(tmpReplica));

                this.replicaButtons.Add(replicaButtonObject);
            }
            else
            {
                this.ChooseReplica(simpleReplica);
            }
            return;
        }
        CompositeReplica compositeReplica = replica as CompositeReplica;

        this.waitForPlayer = true;
        foreach (string key in compositeReplica.replicas)
        {
            SimpleReplica simpleReplica = this.dialog.GetReplica(key) as SimpleReplica;

            GameObject replicaButtonObject = Instantiate(this.replicaButtonPrefab) as GameObject;
            replicaButtonObject.transform.SetParent(this.replicasContent, false);
            replicaButtonObject.transform.localScale = new Vector3(1, 1, 1);

            replicaButtonObject.GetComponent <Text> ().text = this.translator.Translate(simpleReplica.text, DialogueWindow.resource);

            Button button = replicaButtonObject.GetComponent <Button> ();
            button.onClick.AddListener(() => ChooseReplica(simpleReplica));

            this.replicaButtons.Add(replicaButtonObject);
        }
    }