Пример #1
0
        public static void BroadcastEmote(this Character character, int emoteIndex)
        {
            if (!Game1.IsMultiplayer)
            {
                return;
            }

            EmoteMessage message = new EmoteMessage {
                EmoteIndex = emoteIndex
            };

            switch (character)
            {
            case Farmer farmer:
                message.EmoteSourceId   = farmer.UniqueMultiplayerID.ToString();
                message.EmoteSourceType = CharacterType.Farmer;
                break;

            case NPC npc:
                message.EmoteSourceId   = npc.Name;
                message.EmoteSourceType = CharacterType.NPC;
                break;

            case FarmAnimal farmAnimal:
                message.EmoteSourceId   = farmAnimal.myID.Value.ToString();
                message.EmoteSourceType = CharacterType.FarmAnimal;
                break;
            }

            ModEntry.MultiplayerMessage.Send(message);
        }
Пример #2
0
 private void OnEmoteMessage(EmoteMessage emoteMessage)
 {
     if (UIManager.Instance)
     {
         UIManager.Instance.OnPlayerEmoted(emoteMessage);
     }
 }
Пример #3
0
    /// <summary>
    /// Called when an emote message was recieved.
    /// </summary>
    /// <param name="emoteMessage">The recieved emote message.</param>
    public void OnPlayerEmoted(EmoteMessage emoteMessage)
    {
        RectTransform       rectTransform  = transform as RectTransform;
        EmoteMessageDisplay messageDisplay = Instantiate(emoteMessagePrefab, transform);

        ((RectTransform)(messageDisplay.transform)).anchoredPosition
            = MathUtil.RandomVector2(-rectTransform.sizeDelta * 0.5f, rectTransform.sizeDelta * 0.5f);
        messageDisplay.Set(emoteMessage, this);
    }
Пример #4
0
    /// <summary>
    /// Inits all values.
    /// </summary>
    /// <param name="emoteMessage">The emote message recieved.</param>
    /// <param name="emoteBoard">A reference to the emote board.</param>
    public void Set(EmoteMessage emoteMessage, EmoteBoard emoteBoard)
    {
        List <Player> players = PlayersDict.Instance.Players;
        Player        player  = players.Find(x => x.playerId == emoteMessage.playerID);

        EmoteDict.Emote?emote = EmoteDict.Instance.GetEmote(emoteMessage.emoteID);

        // Is not valid?
        if (player == null || emote == null || player.playerIndex > 3)
        {
            Destroy(gameObject);
            return;
        }

        Color playerColor      = CharacterDict.Instance.PlayerColors[player.playerIndex];
        Color lightPlayerColor = CharacterDict.Instance.LightPlayerColors[player.playerIndex];

        emoteImage.sprite = emote.Value.sprite;
        emoteImage.color  = lightPlayerColor;
        frameImage.color  = playerColor;

        StartCoroutine(OnShow(emoteBoard.MessageAliveTime, emoteBoard.ScaleCurve));
    }
Пример #5
0
 public void OnPlayerEmoted(EmoteMessage emoteMessage) => inGameManager.OnPlayerEmoted(emoteMessage);
Пример #6
0
 public void OnPlayerEmoted(EmoteMessage emoteMessage) => emoteBoard.OnPlayerEmoted(emoteMessage);