/// <summary>
 /// Sets the values to display
 /// </summary>
 /// <param name="pl">The player info to display</param>
 internal void Initialise(FollowBackInputHandler pl)
 {
     TxtNumFollowers.text     = pl.GetFollowerCount().ToString();
     TxtPlayerName.text       = "@" + pl.GetPlayerName();
     PlayerSprite.sprite      = FollowBackController.Instance.CharacterSprites[pl.GetCharacterIndex()];
     PlayerSpriteBg.color     = ColourFetcher.GetColour(pl.GetPlayerIndex());
     PlayerSpriteBgRing.color = ColourFetcher.GetColour(pl.GetPlayerIndex());
 }
    /// <summary>
    /// Randomly selects an influencer from list of players who are yet to have all their turns
    /// </summary>
    private IEnumerator SelectInfluencer_()
    {
        // briefly wait
        yield return(new WaitForSeconds(3));

        // clear round counts
        foreach (var pl in _players)
        {
            pl.NewRound();
        }

        ResetSpriteImage_();

        // show trending panel
        TrendingPanel.SetActive(true);

        // flick through each player
        for (int i = 0; i < 50; i++)
        {
            TxtTrendingMessage.text = "@" + _players[i % _players.Count].GetPlayerName();
            ImgInfluencer.sprite    = CharacterSprites[_players[i % _players.Count].GetCharacterIndex()];
            ImgInfluencerBG.color   = ColourFetcher.GetColour(i % _players.Count);
            yield return(new WaitForSeconds(0.1f));
        }

        // ensure the list is empty
        _playersInZone.Clear();

        // pick a random player
        var r = UnityEngine.Random.Range(0, _remainingTurns.Count);

        _currentInfluencer = _players[_remainingTurns[r]];
        _remainingTurns.RemoveAt(r);

        // display selection
        TxtTrendingMessage.text = "@" + _currentInfluencer.GetPlayerName();
        ImgInfluencer.sprite    = CharacterSprites[_currentInfluencer.GetCharacterIndex()];
        ImgInfluencerBG.color   = ColourFetcher.GetColour(_currentInfluencer.GetPlayerIndex());

        // show zone
        InfluencerZone.gameObject.SetActive(true);
        InfluencerZone.SetParent(_currentInfluencer.MovementObject());
        InfluencerZone.localPosition = new Vector3(0, 0, 2f);

        // increase size
        StartCoroutine(GrowZone_());

        // start timer
        _turnLimit.StartTimer();

        _turnRunning = true;

        StartCoroutine(CheckZone_());
    }
Пример #3
0
    /// <summary>
    /// Sets the content of the selfie
    /// </summary>
    /// <param id="players">The players in the selfie</param>
    public void Setup(Tuple <FollowBackInputHandler, FollowBackInputHandler> players)
    {
        _owner = players.Item1;

        // set background image
        var randomBackground = UnityEngine.Random.Range(0, BackgroundSprites.Length);

        ImgBackground.sprite = BackgroundSprites[randomBackground];

        // set player images
        ImgTaker.sprite   = TakerSprites[_owner.GetCharacterIndex()];
        ImgSubject.sprite = SubjectSprites[players.Item2.GetCharacterIndex()];

        // set text diplays
        TxtUsername.text = "@" + _owner.GetPlayerName();
        TxtCaption.text  = GetCaption_() + " <i>@" + players.Item2.GetPlayerName() + " </i><color=#4062B7>" + GetHashtags_() + "</color>";

        gameObject.SetActive(true);
    }