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