/// <summary> /// Set-up the pop-up for displaying the given CrewMember /// </summary> public void SetUpDisplay(CrewMember crewMember, string source) { //do not display if the season has finished if (!GameManagement.SeasonOngoing) { return; } //Change the opinion icon dictionary from the available array if not already done if (_opinionIconDict == null) { _opinionIconDict = _opinionIcons.ToDictionary(o => o.name.Replace("Icon_Box_", string.Empty), o => o); } _currentMember = crewMember; //ensure that the crew member is visible on the crew container at the bottom UIManagement.TeamSelection.EnsureVisible(_currentMember); //make pop-up visible and firing warning not visible gameObject.Active(true); _fireWarningPopUp.Active(false); //disable opinion images on CrewMember UI objects ResetOpinionIcons(); TrackerEventSender.SendEvent(new TraceEvent("CrewMemberPopUpOpened", TrackerAsset.Verb.Accessed, new Dictionary <TrackerContextKey, object> { { TrackerContextKey.CrewMemberName, crewMember.Name }, { TrackerContextKey.CurrentTalkTime, GameManagement.ActionAllowance }, { TrackerContextKey.CurrentSession, GameManagement.CurrentSessionString }, { TrackerContextKey.CrewMemberPosition, crewMember.BoatPosition() }, { TrackerContextKey.SizeOfTeam, GameManagement.CrewCount }, { TrackerContextKey.TriggerUI, source }, { TrackerContextKey.CrewMemberSessionsInTeam, crewMember.SessionsIncluded() } }, AccessibleTracker.Accessible.Screen)); SUGARManager.GameData.Send("View Crew Member Screen", crewMember.Name); Display(); //set the order of the pop-ups and pop-up blockers and set-up the click event for the blocker transform.EnableSmallBlocker(() => CloseCrewMemberPopUp(TrackerTriggerSource.PopUpBlocker.ToString())); }
/// <summary> /// Populate the information required in the pop-up /// </summary> public void Display() { if (!gameObject.activeInHierarchy) { return; } //ActionAllowance display _allowanceBar.fillAmount = GameManagement.ActionAllowancePercentage; _allowanceText.text = GameManagement.ActionAllowance.ToString(); //CrewMember avatar var mood = _currentMember.GetMood(); _avatarDisplay.SetAvatar(_currentMember.Avatar, mood); _avatarDisplay.GetComponent <Image>().color = new UnityEngine.Color(0, 1, 1); _avatarDisplay.Parent().GetComponent <Image>().color = AvatarDisplay.MoodColor(mood); //CrewMember information var currentRole = _currentMember.BoatPosition(); _nameText.text = _currentMember.Name; _ageText.text = _currentMember.Age.ToString(); //set up button if CrewMember is positioned, hide if not _roleButton.gameObject.Active(currentRole != Position.Null); if (currentRole != Position.Null) { _roleButton.onClick.RemoveAllListeners(); _roleButton.onClick.AddListener(() => UIManagement.PositionDisplay.SetUpDisplay(currentRole, TrackerTriggerSource.TeamManagementScreen.ToString())); _roleButton.transform.FindImage("Image").sprite = UIManagement.TeamSelection.RoleLogos[currentRole.ToString()]; } //set stat bar fill amount (foreground) and sprite (background) foreach (var skill in _skills) { var skillvalue = _currentMember.RevealedSkills[(Skill)Enum.Parse(typeof(Skill), skill.name)]; skill.FindImage("Foreground Bar").fillAmount = skillvalue * 0.1f; skill.FindImage("Hidden Image").enabled = skillvalue == 0; skill.FindImage("Skill Image").enabled = skillvalue != 0; } foreach (var question in _questions) { var configKey = (ConfigKey)Enum.Parse(typeof(ConfigKey), $"{question.name}Cost"); question.FindText("Cost/Amount").text = configKey.ValueString(true, _currentMember); question.GetComponent <Button>().interactable = configKey.Affordable(_currentMember); } _fireButton.transform.FindText("Cost/Amount").text = ConfigKey.FiringCost.ValueString(); _fireButton.interactable = GameManagement.CanRemoveFromCrew; if (!_fireButton.interactable) { if (!ConfigKey.FiringCost.Affordable()) { FeedbackHoverOver("FIRE_BUTTON_HOVER_ALLOWANCE"); } else if (!GameManagement.CrewEditAllowed) { FeedbackHoverOver(Localization.GetAndFormat("FIRE_BUTTON_HOVER_LIMIT", false, GameManagement.StartingCrewEditAllowance)); } else if (!GameManagement.Team.CanRemoveFromCrew()) { FeedbackHoverOver("FIRE_BUTTON_HOVER_CREW_LIMIT"); } else if (GameManagement.ShowTutorial) { FeedbackHoverOver("FIRE_BUTTON_HOVER_TUTORIAL"); } } else { FeedbackHoverOver(); } //display revealed opinions for each other active CrewMember DisplayOpinions(); var managerOpinionImage = transform.FindComponentInChildren <Image>("Manager Opinion"); var managerOpinion = _currentMember.RevealedCrewOpinions[GameManagement.ManagerName]; managerOpinionImage.sprite = GetOpinionIcon(managerOpinion); OnLanguageChange(); }