Exemplo n.º 1
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.F))
        {
            GameObject.FindObjectOfType <RelationshipCounselor>().getCurrentDateFromScheduledDateList().experienceAchieved = true;
            myVictoryCoach.achieveNextExperience(true);
        }
        else if (Input.GetKeyDown(KeyCode.D))
        {
            DateableCharacter randomDateableChar = myDialogueManager.allDateableCharacters[rn.Next(myDialogueManager.allDateableCharacters.Count)];

            myDialogueManager.charactersPresent.Insert(0, randomDateableChar);
            myDialogueManager.selectedPartner = 0;
            myConversationTracker.beginConversation(randomDateableChar);
            List <Location> dateScenes         = mySceneCatalogue.getDateScenes();
            Location        randomDateLocation = dateScenes[rn.Next(dateScenes.Count)];
            myConversationTracker.scheduleDate(randomDateLocation);

            myDialogueManager.selectedPartner = -1;
        }
        else if (Input.GetKeyDown(KeyCode.G))
        {
            GameObject.FindObjectOfType <UIManager>().gameOver();
        }
    }
Exemplo n.º 2
0
 public DialoguePiece(string content, DateableCharacter character)
 {
     this.dialogueContent = content;
     this.speaker         = character;
     this.tags            = new List <string>();
     this.responses       = new List <DialoguePiece>();
 }
    internal void createDate(Location dateLocation, int dateTime, DateableCharacter speaker)
    {
        GameObject dateObject = new GameObject();
        Date       date       = dateObject.AddComponent <Date>();

        date.dateScene = dateLocation;
        date.dateTime  = dateTime;
        date.character = speaker;
        date.isOver    = false;
        this.scheduledDates.Add(date);
    }
Exemplo n.º 4
0
    private void BTN_runConversationTest()
    {
        DateableCharacter randomDateableChar = myDialogueManager.allDateableCharacters[rn.Next(myDialogueManager.allDateableCharacters.Count)];

        myDialogueManager.charactersPresent.Add(randomDateableChar);
        myDialogueManager.selectedPartner = 0;

        testResultsText.text  = "";
        testResultsText.text += "Random Character: " + randomDateableChar.givenName + "\n";
        myConversationTracker.beginConversation(randomDateableChar);
        testResultsText.text += "Current Reputation in this Conversation : " + myConversationTracker.currentConversation.speaker.acceptanceLevel + "\n";
        myDialogueManager.selectedPartner = -1;
    }
    public DateableCharacter getDatePartner(Location dateLocation, int dateTime)
    {
        DateableCharacter toReturn = null;

        foreach (Date date in this.scheduledDates)
        {
            if (date.dateTime == dateTime && date.dateScene == dateLocation)
            {
                toReturn = date.character;
            }
        }
        return(toReturn);
    }
Exemplo n.º 6
0
    public void beginConversation(DateableCharacter speaker)
    {
        myUIManager.activateDialogueOptionsUI();
        List <string> greetingTags = new List <string>();

        greetingTags.Add("greeting");
        if (speaker.acceptanceLevel < 0)
        {
            greetingTags.Add("annoyed");
        }
        dialogueTextScroller.SetText(myDialogueManager.getDialogueForTags(greetingTags).dialogueContent);
        this.currentConversation         = this.gameObject.AddComponent <Conversation>();
        this.currentConversation.speaker = speaker;
    }
 private void checkStartDate()
 {
     if (myGameState.currentGameState == GameState.gameStates.PROWL)
     {
         if (mySceneCatalogue.getIsInInteriorScene())
         {
             if (hasDateAtPresentTimeInPresentLocationAndDateNotOver())
             {
                 isAtDate = true;
                 myAudioConductor.startMusic(mySceneCatalogue.getCurrentSceneName(), myTimelord.getCurrentModulusTimestep());
                 myGameState.currentGameState = GameState.gameStates.DATEINTRO;
                 myEventQueue.queueEvent(new EventDateStart());
                 DateableCharacter datePartner = this.getDatePartner(mySceneCatalogue.getCurrentLocation(), myTimelord.getCurrentTimestep());
                 datePartner.dateCount++;
             }
         }
     }
 }
    public void act()
    {
        if (myGameState.currentGameState == GameState.gameStates.DATEINTRO)
        {
            myGameState.currentGameState = GameState.gameStates.DATE;
        }

        var roller = new System.Random();
        var roll   = roller.Next(0, 100);

        DateableCharacter she = getDatePartner(mySceneCatalogue.getCurrentLocation(), myTimelord.getCurrentTimestep());

        Debug.Log("Roll: " + roll + " In love amount: " + she.inLoveAmount * this.loveChanceIncrement);

        if (roll < she.inLoveAmount * this.loveChanceIncrement)
        {
            myUIManager.gameOver();
        }

        she.inLoveAmount++;

        int leavePercentageForLocation = actionLikelihoodMatrix["leave"][she.locationPreferences[mySceneCatalogue.getCurrentSceneNumber()]];

        //int leavePercentageForLocation = 0; //FOR DEBUGGING

        if (roll <= leavePercentageForLocation)
        {
            getCurrentDateFromScheduledDateList().isAbandoned = true;
            myAnimationMaestro.abandonDateDescription();
            myEventQueue.queueEvent(new EventDateAction());
        }
        else if (roll <= leavePercentageForLocation + actionLikelihoodMatrix["neutral"][she.locationPreferences[mySceneCatalogue.getCurrentSceneNumber()]])
        {
            myAnimationMaestro.showNeutralDescriptionText();
            Debug.Log("Contextual pre-programmed neutral location description (which we will eventually do).");
            myEventQueue.queueEvent(new EventDateAction());
        }
        else
        {
            she.experienceCount++;
            getCurrentDateFromScheduledDateList().experienceAchieved = true;
            myVictoryCoach.achieveNextExperience(true);
        }
    }