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