Пример #1
0
 public void SetEmote(EmoteDefinition emoteDefinition)
 {
     if (emoteDefinition != null)
     {
         if (emoteDefinition.Id == "RecentEmoteKey")
         {
             EmoteIconText.text = null;
             GetComponent <Button>().interactable = false;
             RecentEmoteImage.enabled             = true;
             return;
         }
         this.emoteDefinition = emoteDefinition;
         if (!string.IsNullOrEmpty(emoteDefinition.Sound))
         {
             disableClickSound();
         }
         emoteString        = EmoteManager.GetEmoteString(emoteDefinition);
         EmoteIconText.text = emoteString;
         AccessibilitySettings component = GetComponent <AccessibilitySettings>();
         component.CustomToken = emoteDefinition.Token;
         TutorialBreadcrumb.SetBreadcrumbId($"Emote_{emoteDefinition.name}");
         GetComponent <Button>().interactable = true;
         RecentEmoteImage.enabled             = false;
     }
     else
     {
         EmoteIconText.text = null;
         GetComponent <Button>().interactable = false;
         RecentEmoteImage.enabled             = false;
     }
 }
Пример #2
0
        private IEnumerator renderEmote(EmoteDefinition emoteDefinition)
        {
            AssetRequest <Sprite> request = Content.LoadAsync(emoteContentKey, emoteDefinition.Id);

            yield return(request);

            callback(request.Asset, null);
        }
Пример #3
0
 internal static EmoteDefinition GetEmoteFromCharacter(char characterCode)
 {
     if (characterCodesToDefinitions.ContainsKey(characterCode))
     {
         EmoteDefinition emoteDefinition = characterCodesToDefinitions[characterCode];
     }
     return(characterCodesToDefinitions[characterCode]);
 }
Пример #4
0
    public static string GetToken(char emoteChar)
    {
        EmoteDefinition emoteDefinition = GetEmoteDefinition(emoteChar);

        if (emoteDefinition != null)
        {
            return(emoteDefinition.Token);
        }
        return(null);
    }
Пример #5
0
 private void playSoundForEmote(EmoteDefinition definition)
 {
     if (!string.IsNullOrEmpty(definition.Sound))
     {
         DataEntityHandle handle = Service.Get <CPDataEntityCollection>().FindEntity <SessionIdData, long>(sessionId);
         if (Service.Get <CPDataEntityCollection>().TryGetComponent <GameObjectReferenceData>(handle, out var component))
         {
             SoundUtils.PlayAudioEvent(definition.Sound, component.GameObject);
         }
     }
 }
Пример #6
0
        public void RenderReward(DReward reward, RewardIconRenderComplete callback)
        {
            this.callback = callback;
            EmoteDefinition emoteByName = getEmoteByName((string)reward.UnlockID);

            if (emoteByName != null)
            {
                CoroutineRunner.Start(renderEmote(emoteByName), this, "");
                return;
            }
            Log.LogError(this, "Unable to find emote definition of name: " + reward.UnlockID);
            CoroutineRunner.Start(loadDefaultIcon(), this, "");
        }
Пример #7
0
        private bool OnChatEmoteMessage(ChatEvents.ChatEmoteMessageShown evt)
        {
            if (!IsIncludingRemotePlayers && !isSessionIdLocalPlayer(evt.SessionId))
            {
                return(false);
            }
            Dictionary <string, EmoteDefinition> dictionary = Service.Get <GameData>().Get <Dictionary <string, EmoteDefinition> >();
            EmoteDefinition value = null;
            int             num   = 0;

            for (int i = 0; i < evt.Message.Length; i++)
            {
                if (EmoteManager.IsEmoteCharacter(evt.Message[i]))
                {
                    dictionary.TryGetValue(EmoteNames[num], out value);
                    if (!(value != null))
                    {
                        continue;
                    }
                    if (evt.Message[i] == EmoteManager.GetEmoteChar(value))
                    {
                        num++;
                        if (num >= EmoteNames.Length)
                        {
                            base.Fsm.Event(MatchEvent);
                            break;
                        }
                        continue;
                    }
                    if (EmoteNames.Length == 1 && i == evt.Message.Length - 1)
                    {
                        base.Fsm.Event(FailedEvent);
                        break;
                    }
                    if (num != 0)
                    {
                        num = 0;
                        i--;
                    }
                }
                else if (num != 0)
                {
                    break;
                }
            }
            return(false);
        }
Пример #8
0
    public static EmoteDefinition[] GetEmoteDefinitionsFromMessage(string message)
    {
        List <EmoteDefinition> list = new List <EmoteDefinition>();

        foreach (char c in message)
        {
            if (IsEmoteCharacter(c))
            {
                EmoteDefinition emoteDefinition = GetEmoteDefinition(c);
                if (emoteDefinition != null)
                {
                    list.Add(emoteDefinition);
                }
            }
        }
        return(list.ToArray());
    }
Пример #9
0
        public override void OnEnter()
        {
            dispatcher = Service.Get <EventDispatcher>();
            Dictionary <string, EmoteDefinition> dictionary = Service.Get <GameData>().Get <Dictionary <string, EmoteDefinition> >();
            EmoteDefinition value         = null;
            StringBuilder   stringBuilder = new StringBuilder();

            for (int i = 0; i < Emotes.Length; i++)
            {
                dictionary.TryGetValue(Emotes[i], out value);
                if (value != null)
                {
                    stringBuilder.Append(EmoteManager.GetEmoteString(value));
                }
            }
            DCinematicSpeech dCinematicSpeech = new DCinematicSpeech();

            dCinematicSpeech.Text         = stringBuilder.ToString();
            dCinematicSpeech.Buttons      = null;
            dCinematicSpeech.MascotName   = MascotName;
            dCinematicSpeech.DismissTime  = ((AutoCloseTime > 0f) ? AutoCloseTime : ((float)DismissTime));
            dCinematicSpeech.CenterX      = CenterX;
            dCinematicSpeech.CenterY      = CenterY;
            dCinematicSpeech.OffsetY      = OffsetY;
            dCinematicSpeech.HideTail     = HideTail;
            dCinematicSpeech.ClickToClose = ClickToClose;
            dCinematicSpeech.ShowContinueImageImmediately = ClickToClose;
            dCinematicSpeech.KeepTextStyle    = true;
            dCinematicSpeech.BubbleContentKey = "Prefabs/Quest/CinematicSpeechBubbles/CinematicSpeechBubbleEmote";
            dispatcher.DispatchEvent(new CinematicSpeechEvents.ShowSpeechEvent(dCinematicSpeech));
            dispatcher.AddListener <CinematicSpeechEvents.SpeechCompleteEvent>(OnSpeechComplete);
            if (!WaitForFinish)
            {
                Finish();
            }
        }
Пример #10
0
 public static char GetEmoteChar(EmoteDefinition emoteDefinition)
 {
     return(Convert.ToChar(emoteDefinition.CharacterCode));
 }
Пример #11
0
 public static string GetEmoteString(EmoteDefinition emoteDefinition)
 {
     return(GetEmoteChar(emoteDefinition).ToString());
 }