Пример #1
0
 /// <summary>
 /// Reset and populate the pop-up for a new event
 /// </summary>
 public void ResetDisplay(PostRaceEventState current)
 {
     if (current.Dialogue != null)
     {
         LastState = current.Dialogue.NextState;
         if (current.Dialogue.NextState == "-")
         {
             LastState = current.Dialogue.CurrentState;
         }
         var subjects = current.Subjects.Select(s => Localization.HasKey(s) ? Localization.Get(s) : Regex.Replace(s, @"((?<=\p{Ll})\p{Lu})|((?!\A)\p{Lu}(?>\p{Ll}))", " $0")).ToArray();
         _dialogueText.text = Localization.GetAndFormat(current.Dialogue.Utterance, false, subjects);
     }
     _avatarDisplay.SetAvatar(current.CrewMember.Avatar, current.CrewMember.GetMood());
     _avatarDisplay.Parent().GetComponent <Image>().color = AvatarDisplay.MoodColor(current.CrewMember.GetMood());
     CurrentCrewMember = current.CrewMember;
     _nameText.text    = current.CrewMember.Name;
 }
    /// <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();
    }