public void UpdateGazeDisplay() { if (lookedObject != null) { if (lookedObject.stallObject == null) { lookedObject = null; } else { gazeDirection = rectTransform.position + Vector3.up * gazeHeadOffset - gazeDisplay.position; gazeDirection.Normalize(); gazeAngle = Vector2.SignedAngle(Vector2.up, gazeDirection); gazeDisplay.rotation = Quaternion.Euler(0, 0, gazeAngle); gazeDisplay.position = Vector2.Lerp(gazeDisplay.position, lookedObject.stallObject.rectTransform.position, gazeLerpRatio * Time.deltaTime); if (!gazeDisplay.gameObject.activeSelf) { RefreshGazeOrigin(); } gazeDisplay.gameObject.SetActive(true); } } else { gazeDisplay.gameObject.SetActive(false); } }
public bool DoesObjectHaveHigherInterestLevel(PotentialObject objectToCheck) { float averageInterestLevel = 0; for (int i = 0; i < potentialObjects.Count; i++) { averageInterestLevel += potentialObjects[i].interestLevel; } averageInterestLevel /= potentialObjects.Count; return(objectToCheck.interestLevel > averageInterestLevel); }
public PotentialObject GetPotentialFromStallObject(StallObject searchedStallObject) { PotentialObject potentialObjectSearched = null; foreach (PotentialObject potentialObject in potentialObjects) { if (potentialObject.stallObject == searchedStallObject) { potentialObjectSearched = potentialObject; } } return(potentialObjectSearched); }
public void Think(float timeToThink, PotentialObject potentialObjectToThink) { isThinking = true; currentThinkTimeRmn = timeToThink; if (potentialObjectToThink != null) { thinkingObjectImage.color = Color.white; thinkingObjectImage.sprite = potentialObjectToThink.stallObject.linkedObject.illustration; } else { thinkingObjectImage.color = Color.clear; } StartCoroutine(thinkingBoxAnim.anim.PlayBackward(thinkingBoxAnim, true)); }
public PotentialObject GetMaxCuriosityObjectOnVitrine(List <PotentialObject> potentialObjectsToCheck) { maxCuriosityLevel = 0; PotentialObject maxCuriosityObject = null; foreach (PotentialObject potentialObject in potentialObjectsToCheck) { if (potentialObject.curiosityLevel > maxCuriosityLevel && potentialObject.stallObject.stallSpace.isVitrine) { maxCuriosityObject = potentialObject; maxCuriosityLevel = potentialObject.curiosityLevel; } } return(maxCuriosityObject); }
public void UpdateSpeakingAndThinking() { if (!isLeaving) { if (currentThinkTimeRmn > 0) { currentThinkTimeRmn -= Time.deltaTime; } else { isThinking = false; } if (presentedObjectToThink != null) { if (currentThinkTimeRmn <= 0) { ReactToPresent(presentedObjectToThink); presentedObjectToThink = null; StartCoroutine(thinkingBoxAnim.anim.Play(thinkingBoxAnim)); } } if (argumentedObjectToThink != null) { if (currentThinkTimeRmn <= 0) { ReactToArgumentFeature(argumentedFeatureToThink, argumentedObjectToThink.stallObject); argumentedObjectToThink = null; StartCoroutine(thinkingBoxAnim.anim.Play(thinkingBoxAnim)); } } } if (isSpeaking) { speakingText.text = currentSpeech.GetCurrentSpeechProgression(Time.deltaTime); if (currentSpeech.isFinished) { StartCoroutine(speakingBoxAnim.anim.Play(speakingBoxAnim)); isSpeaking = false; } } }
public void ReactToPresent(PotentialObject presentedObject) { if (DoesObjectHasCommonCategory(presentedObject.stallObject.linkedObject, character.initialInterests)) { currentEnthousiasm += enthousiasmIncreaseWithCorrectPresent; Instantiate(happyFxPrefab, rectTransform.position + new Vector3(0, gazeHeadOffset, 0), happyFxPrefab.transform.rotation, characterCanvasRectTransform); } else { currentEnthousiasm -= enthousiasmDecreaseWithIncorrectPresent; Instantiate(annoyedFxPrefab, rectTransform.position + new Vector3(0, gazeHeadOffset, 0), annoyedFxPrefab.transform.rotation, characterCanvasRectTransform); } presentedObject.RefreshInterestLevel(); if (NegoceManager.I.selectedCharacter == this) { presentedObject.stallObject.SetInterestLevelDisplay(presentedObject.interestLevel / maxPersonnalValue, identificationColor, false); } currentEnthousiasm = Mathf.Clamp(currentEnthousiasm, 0f, 1f); }
public void StartNonGazing(float nonGazingTime) { nonGazingTimeRMN = nonGazingTime; lookedObject = null; }
public void LookObject(PotentialObject objectToLook, float timeToLook) { objectToLook.curiosityLevel = 0; gazeTimeRmn = timeToLook; lookedObject = objectToLook; }
public void ArgumentFeature(Object.Feature featureArgumented, StallObject argumentedObject) { argumentedObjectToThink = GetPotentialFromStallObject(argumentedObject); argumentedFeatureToThink = featureArgumented; Think(reactTimeArgument, argumentedObjectToThink); }
public void ReactToArgumentFeature(Object.Feature featureArgumented, StallObject argumentedObject) { PotentialObject argumentedPotentialObject = GetPotentialFromStallObject(argumentedObject); PotentialObject.KnownFeature knownFeatureArgumented = argumentedPotentialObject.GetKnownFeatureFromFeature(featureArgumented); if (featureArgumented.isCategoryFeature) { bool categoryIsInitialInterest = false; for (int i = 0; i < character.initialInterests.Count; i++) { if (character.initialInterests[i] == featureArgumented.categoryProperties.category) { categoryIsInitialInterest = true; } } if (categoryIsInitialInterest) { knownFeatureArgumented.LearnFeature(featureArgumented.rememberTime, interestLevelMultiplierWithCorrectCategoryArgument * featureArgumented.categoryProperties.argumentInterestLevelIncrease); Instantiate(happyFxPrefab, rectTransform.position + new Vector3(0, gazeHeadOffset, 0), happyFxPrefab.transform.rotation, characterCanvasRectTransform); Speak(featureArgumented.categoryProperties.argumentSpeechGoodReaction, 5); } else { currentEnthousiasm -= enthousiasmDecreaseWithIncorrectArgument; Instantiate(annoyedFxPrefab, rectTransform.position + new Vector3(0, gazeHeadOffset, 0), annoyedFxPrefab.transform.rotation, characterCanvasRectTransform); Speak(featureArgumented.categoryProperties.argumentSpeechBadReaction, 5); ForgetAllKnownFeatures(); } } else { Character.Need correspondingNeed = null; for (int i = 0; i < character.needs.Count; i++) { for (int y = 0; y < featureArgumented.traits.Count; y++) { if (character.needs[i].trait == featureArgumented.traits[y]) { correspondingNeed = character.needs[i]; } } } if (correspondingNeed != null) { knownFeatureArgumented.LearnFeature(featureArgumented.rememberTime, interestLevelMultiplierWithCorrectFeatureArgument * featureArgumented.interestLevelIncrease); Instantiate(happyFxPrefab, rectTransform.position + new Vector3(0, gazeHeadOffset, 0), happyFxPrefab.transform.rotation, characterCanvasRectTransform); Speak(correspondingNeed.reactionSpokenWhenArgumented); } else { Instantiate(annoyedFxPrefab, rectTransform.position + new Vector3(0, gazeHeadOffset, 0), happyFxPrefab.transform.rotation, characterCanvasRectTransform); currentEnthousiasm -= enthousiasmDecreaseWithIncorrectArgument; Speak(character.defaultSpeachWhenWrongArgument); ForgetAllKnownFeatures(); } } currentEnthousiasm = Mathf.Clamp(currentEnthousiasm, 0f, 1f); }
public void PresentObject(StallObject presentedObject) { presentedObjectToThink = GetPotentialFromStallObject(presentedObject); LookObject(presentedObjectToThink, reactTimePresent); Think(reactTimePresent, presentedObjectToThink); }