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);
        }
    }