Exemple #1
0
        private ScenarioCommand ExecuteNext()
        {
            if (mCommandList.Length <= mCursor)
            {
                return(null);
            }
            ScenarioCommand command = mCommandList[mCursor++];

            if (command is ConversationCommand)
            {
                ConversationCommand conv = command as ConversationCommand;
                mName    = conv.Name;
                mContext = conv.Context;
            }
            else if (command is CharacterCommand)
            {
                CharacterCommand crt = command as CharacterCommand;
                SetCharacterId(crt.Position, crt.Id);
            }
            else if (command is BackgroundCommand)
            {
                BackgroundCommand bg = command as BackgroundCommand;
                BG       = bg.Id;
                mBGColor = bg.BackgroundColor;
            }
            return(command);
        }
Exemple #2
0
    public static void executeCommand(ICommand command)
    {
        if (command.GetType().Equals(typeof(SpeakerCommand)))                                       //speaker
        {
            SpeakerCommand speakerCommand = (SpeakerCommand)command;
            currentSpeaker = speakerCommand.speaker;
            GameObject speakerBox   = GameObject.Find("Speaker");
            Text       speakerText  = speakerBox.GetComponentInChildren <Text>();
            Image      speakerImage = speakerBox.GetComponentInChildren <Image>();
            if (speakerCommand.speaker.Equals(""))
            {
                speakerText.color  = Color.clear;
                speakerImage.color = Color.clear;
            }
            else
            {
                speakerText.color  = Color.white;
                speakerImage.color = new Color(1f, 1f, 1f, 0.4f);
                speakerText.text   = speakerCommand.speaker;
            }
            advanceScript();
        }
        else if (command.GetType().Equals(typeof(TextCommand)))                                     //text
        {
            TextCommand textCommand = (TextCommand)command;
            GameObject.Find("Dialogue").GetComponentInChildren <Text>().text = textCommand.text;
        }
        else if (command.GetType().Equals(typeof(PortraitCommand)))                                 //portrait
        {
            PortraitCommand portraitCommand = (PortraitCommand)command;
            Image           portrait        = GameObject.Find(portraitCommand.side == 'L' ? "LeftPortrait" : "RightPortrait").GetComponentInChildren <Image>();
            if (portraitCommand.character.Equals(""))
            {
                portrait.color = Color.clear;
            }
            else
            {
                portrait.color  = Color.white;
                portrait.sprite = Resources.Load <Sprite>("Characters\\" + portraitCommand.character + "Girl");
            }
            advanceScript();
        }
        else if (command.GetType().Equals(typeof(BackgroundCommand)))                               //background
        {
            BackgroundCommand backgroundCommand = (BackgroundCommand)command;
            Image             background        = GameObject.Find("Background").GetComponentInChildren <Image>();
            if (backgroundCommand.name.Equals(""))
            {
                background.color = Color.black;
            }
            else
            {
                background.color  = Color.white;
                background.sprite = Resources.Load <Sprite>("Backgrounds\\" + backgroundCommand.name);
            }
            advanceScript();
        }
        else if (command.GetType().Equals(typeof(LinkCommand)))                                     //link
        {
            LinkCommand linkCommand = (LinkCommand)command;
            readScript(linkCommand.fileName);
            advanceScript();
        }
        else if (command.GetType().Equals(typeof(AddPointsCommand)))                                //addpoints
        {
            AddPointsCommand addPointsCommand = (AddPointsCommand)command;
            switch (addPointsCommand.character)
            {
            case "Java":
                GameControl.control.JavaLovePoints += addPointsCommand.points;
                break;

            case "JSHTML":
                GameControl.control.JSHTMLLovePoints += addPointsCommand.points;
                break;

            case "C++":
                GameControl.control.CPPLovePoints += addPointsCommand.points;
                break;

            case "C#":
                GameControl.control.CSLovePoints += addPointsCommand.points;
                break;

            case "Python":
                GameControl.control.PYLovePoints += addPointsCommand.points;
                break;
            }
            advanceScript();
        }
        else if (command.GetType().Equals(typeof(PromptCommand)))                                   //prompt
        {
            PromptCommand promptCommand = (PromptCommand)command;
            isPrompting = true;
            int i = 0;
            List <GameObject> promptButtons = new List <GameObject>();
            foreach (string choice in promptCommand.getChoices())
            {
                GameObject promptButton = Instantiate(Resources.Load <GameObject>("Prefabs\\PromptButton"),
                                                      new Vector3(0, 0), Quaternion.identity);
                promptButtons.Add(promptButton);
                promptButton.transform.SetParent(GameObject.Find("Background").transform);
                promptButton.transform.position = new Vector3(Screen.width / 2, (Screen.height - 55) - i * 40);
                promptButton.GetComponentInChildren <Text>().text = choice;
                promptButton.GetComponentInChildren <Button>().onClick.AddListener(delegate {
                    isPrompting = false;
                    foreach (GameObject button in promptButtons)
                    {
                        Destroy(button);
                    }
                    currentScript.InsertRange(commandIndex, promptCommand.getConsequences(choice));
                    advanceScript();
                });
                i++;
            }
        }
        else if (command.GetType().Equals(typeof(DateCheckCommand)))                                //datecheck
        {
            DateCheckCommand dateCheckCommand = (DateCheckCommand)command;
            switch (dateCheckCommand.character)
            {
            case "Java":
                if (GameControl.control.JavaLovePoints >= 15)
                {
                    //date start
                }
                break;

            case "JSHTML":
                if (GameControl.control.JSHTMLLovePoints >= 15)
                {
                    //date start
                }
                break;

            case "C++":
                if (GameControl.control.CPPLovePoints >= 15)
                {
                    //date start
                }
                break;

            case "C#":
                if (GameControl.control.CSLovePoints >= 15)
                {
                    //date start
                }
                break;

            case "Python":
                if (GameControl.control.PYLovePoints >= 15)
                {
                    //date start
                }
                break;
            }
        }
        else if (command.GetType().Equals(typeof(FinalCheckCommand)))                               //finalcheck
        {
            FinalCheckCommand finalCheckCommand = (FinalCheckCommand)command;
            PromptCommand     promptCommand     = new PromptCommand();
            if (GameControl.control.JavaLovePoints >= 15)
            {
                List <ICommand> commandList = new List <ICommand>();
                commandList.Add(new LinkCommand("\\Home\\Narrator\\Endings\\Java.txt"));
                promptCommand.addConsequences("Java", commandList);
            }
            if (GameControl.control.JSHTMLLovePoints >= 15)
            {
                List <ICommand> commandList = new List <ICommand>();
                commandList.Add(new LinkCommand("\\Home\\Narrator\\Endings\\HTML&JS.txt"));
                promptCommand.addConsequences("HTML & JS", commandList);
            }
            if (GameControl.control.CPPLovePoints >= 15)
            {
                List <ICommand> commandList = new List <ICommand>();
                commandList.Add(new LinkCommand("\\Home\\Narrator\\Endings\\C++.txt"));
                promptCommand.addConsequences("C++", commandList);
            }
            if (GameControl.control.CSLovePoints >= 15)
            {
                List <ICommand> commandList = new List <ICommand>();
                commandList.Add(new LinkCommand("\\Home\\Narrator\\Endings\\C#.txt"));
                promptCommand.addConsequences("C#", commandList);
            }
            if (GameControl.control.PYLovePoints >= 15)
            {
                List <ICommand> commandList = new List <ICommand>();
                commandList.Add(new LinkCommand("\\Home\\Narrator\\Endings\\Python.txt"));
                promptCommand.addConsequences("Python", commandList);
            }
            List <ICommand> noneCommandList = new List <ICommand>();
            noneCommandList.Add(new LinkCommand("\\Home\\Narrator\\Endings\\None.txt"));
            promptCommand.addConsequences("None", noneCommandList);
            currentScript.Insert(commandIndex, promptCommand);
            advanceScript();
        }
    }