public override IEnumerator Execute(ScriptableActionPlayer player)
    {
        if (!isWaiting)
        {
            setup(player);
            isBaseValidationDone = false;
        }
        if (string.IsNullOrEmpty(inputString))
        {
            HasError = false;
            yield break;
        }
        ILocalUser localUser = Service.Get <SessionManager>().LocalUser;

        localUser.FindUser(inputString, onValidationComplete);
        isWaiting = true;
        sw        = new Stopwatch();
        sw.Start();
        maxTime = 30000;
        while (!isBaseValidationDone && sw.ElapsedMilliseconds < maxTime)
        {
            yield return(null);
        }
        if (!isBaseValidationDone)
        {
            HasError = false;
        }
        isWaiting = false;
    }
コード例 #2
0
    public override IEnumerator Execute(ScriptableActionPlayer player)
    {
        GameObject popup = UnityEngine.Object.Instantiate(PopupPrefab);

        popup.name = base.name + "Popup";
        for (int i = 0; i < Options.Length; i++)
        {
            setupButton(i, popup, player);
        }
        if (SetupAction != null)
        {
            ScriptableActionPlayer popupPlayer = popup.AddComponent <ScriptableActionPlayer>();
            popupPlayer.Action  = SetupAction;
            popupPlayer.enabled = true;
            while (popupPlayer != null && popupPlayer.enabled)
            {
                yield return(null);
            }
        }
        Service.Get <EventDispatcher>().DispatchEvent(new PopupEvents.ShowPopup(popup));
        while (!player.ActionIsFinished)
        {
            yield return(null);
        }
        UnityEngine.Object.Destroy(popup);
    }
コード例 #3
0
 public override IEnumerator Execute(ScriptableActionPlayer player)
 {
     if (!isWaiting)
     {
         setup(player);
         isBaseValidationDone = false;
     }
     loginService = Service.Get <MixLoginCreateService>();
     while (loginService.ValidationInProgress)
     {
         yield return(null);
     }
     loginService.ValidationInProgress = true;
     loginService.OnValidationSuccess += onValidationSuccess;
     loginService.OnValidationFailed  += onValidationFailed;
     loginService.ValidateUsernamePassword("K4fR0VfK4MToQslVupGkGvAKFqw3HBXOfkpXalYUX1Kv5kbKL08MNxk3W2gfjk0", inputString);
     isWaiting = true;
     sw        = new Stopwatch();
     sw.Start();
     maxTime = 30000;
     while (!isBaseValidationDone && sw.ElapsedMilliseconds < maxTime)
     {
         yield return(null);
     }
     if (!isBaseValidationDone)
     {
         loginService.OnValidationSuccess -= onValidationSuccess;
         loginService.OnValidationFailed  -= onValidationFailed;
         HasError = false;
     }
     isWaiting = false;
     loginService.ValidationInProgress = false;
 }
コード例 #4
0
 public override IEnumerator Execute(ScriptableActionPlayer player)
 {
     player.AddFinalizer(delegate
     {
         Debug.Log("Finalizing action " + base.name + " on player " + player.gameObject);
     });
     for (int i = 0; i < Count; i++)
     {
         yield return(null);
     }
 }
コード例 #5
0
 private void onClick(DPrompt.ButtonFlags pressed, ScriptableActionPlayer player)
 {
     for (int i = 0; i < Options.Length; i++)
     {
         if (pressed == Options[i].Button)
         {
             player.NextAction       = Options[i].NextStep;
             player.ActionIsFinished = true;
             break;
         }
     }
 }
コード例 #6
0
    public override IEnumerator Execute(ScriptableActionPlayer player)
    {
        validator   = (player as InputFieldValidator);
        inputString = validator.TextInput.text;
        SessionManager sessionManager = Service.Get <SessionManager>();

        if (sessionManager.LocalUser.RegistrationProfile.FirstName == null || sessionManager.LocalUser.RegistrationProfile.ParentEmail == null)
        {
            sessionManager.LocalUser.RefreshProfile(onProfileUpdated);
        }
        else
        {
            readyToCheck   = true;
            profileUpdated = true;
        }
        while (!profileUpdated)
        {
            yield return(null);
        }
        if (readyToCheck)
        {
            string text = inputString.ToLower();
            int    num  = -1;
            int    num2 = -1;
            int    num3 = -1;
            int    num4 = -1;
            if (!string.IsNullOrEmpty(sessionManager.LocalUser.RegistrationProfile.FirstName))
            {
                string value = sessionManager.LocalUser.RegistrationProfile.FirstName.ToLower();
                num = inputString.IndexOf(value);
            }
            if (!string.IsNullOrEmpty(sessionManager.LocalUser.RegistrationProfile.ParentEmail))
            {
                string   text2 = sessionManager.LocalUser.RegistrationProfile.ParentEmail.ToLower();
                string[] array = text2.Split('@');
                if (array.Length > 0)
                {
                    num2 = text.IndexOf(array[0]);
                }
                if (array.Length > 1)
                {
                    num3 = text.IndexOf(array[1]);
                }
                num4 = text2.IndexOf(inputString);
            }
            HasError = (num >= 0 || num2 >= 0 || num3 >= 0 || num4 >= 0);
        }
        else
        {
            HasError = false;
            Log.LogError(this, "Unable to validate PII data due to no registrationProfile data being available");
        }
    }
コード例 #7
0
 public override IEnumerator Execute(ScriptableActionPlayer player)
 {
     setup(player);
     if (MustMatch)
     {
         HasError = !Regex.IsMatch(inputString, CheckRegex);
     }
     else
     {
         HasError = Regex.IsMatch(inputString, CheckRegex);
     }
     yield break;
 }
コード例 #8
0
        public override IEnumerator Execute(ScriptableActionPlayer player)
        {
            float   elapsed  = 0f;
            Vector3 startPos = player.transform.position;

            for (; elapsed < Duration; elapsed += Time.deltaTime)
            {
                float t = elapsed / Duration;
                player.transform.position = Vector3.Lerp(startPos, Position, t);
                yield return(null);
            }
            player.transform.position = Position;
        }
コード例 #9
0
        public override IEnumerator Execute(ScriptableActionPlayer player)
        {
            Transform transform = player.transform.Find(Name);

            if (transform == null)
            {
                Log.LogErrorFormatted(player, "SetTextAction {0}: Could not find text object {1}", base.name, Name);
            }
            Text component = transform.GetComponent <Text>();

            component.text = Content;
            yield break;
        }
コード例 #10
0
    public override IEnumerator Execute(ScriptableActionPlayer player)
    {
        int      stateHash = Animator.StringToHash(StateName);
        Animator anim      = player.GetComponent <Animator>();

        anim.Play(stateHash, LayerIndex);
        while (anim.GetCurrentAnimatorStateInfo(LayerIndex).shortNameHash != stateHash)
        {
            yield return(null);
        }
        while (anim.GetCurrentAnimatorStateInfo(LayerIndex).shortNameHash == stateHash)
        {
            yield return(null);
        }
    }
コード例 #11
0
    public override IEnumerator Execute(ScriptableActionPlayer player)
    {
        GameObject form = Object.Instantiate(FormPrefab);

        form.name = base.name + "Form";
        FlowFormController controller = form.GetComponent <FlowFormController>();

        Service.Get <EventDispatcher>().DispatchEvent(new PopupEvents.ShowPopup(form));
        while (!controller.IsFinished)
        {
            yield return(null);
        }
        player.NextAction = controller.NextAction;
        Object.Destroy(form);
    }
コード例 #12
0
    private void setupButton(int index, GameObject popup, ScriptableActionPlayer player)
    {
        Option    option    = Options[index];
        Transform transform = popup.transform.Find(option.ButtonName);

        if (transform == null)
        {
            Log.LogErrorFormatted(player, "Flow Step {0}: Could not find button '{1}' in prefab popup '{2}'", base.name, option.ButtonName, PopupPrefab.name);
        }
        Button component = transform.GetComponent <Button>();

        component.onClick.AddListener(delegate
        {
            onClick(player, option.NextStep);
        });
    }
コード例 #13
0
 public override IEnumerator Execute(ScriptableActionPlayer player)
 {
     accountFlowData = Service.Get <MembershipService>().GetAccountFlowData();
     if (!isWaiting)
     {
         setup(player);
         isBaseValidationDone           = false;
         isNameSuggestionValidationDone = false;
         if (accountFlowData.PreValidatedUserNames == null || accountFlowData.PreValidatedUserNames.Count == 0)
         {
             numSuggestionRounds = 0;
         }
     }
     loginService = Service.Get <MixLoginCreateService>();
     while (loginService.ValidationInProgress)
     {
         yield return(null);
     }
     loginService.ValidationInProgress = true;
     loginService.OnValidationSuccess += onValidationSuccess;
     loginService.OnValidationFailed  += onValidationFailed;
     loginService.ValidateUsernamePassword(inputString, "testing123");
     isWaiting = true;
     sw        = new Stopwatch();
     sw.Start();
     maxTime = 30000;
     while ((!isBaseValidationDone || !isNameSuggestionValidationDone) && sw.ElapsedMilliseconds < maxTime)
     {
         yield return(null);
     }
     if (!isBaseValidationDone)
     {
         loginService.OnValidationSuccess -= onValidationSuccess;
         loginService.OnValidationFailed  -= onValidationFailed;
         HasError = false;
     }
     if (!isNameSuggestionValidationDone)
     {
         loginService.OnValidationSuccess -= onSuggestionValidationSuccess;
         loginService.OnValidationFailed  -= onSuggestionValidationFailed;
     }
     isWaiting = false;
     loginService.ValidationInProgress = false;
 }
コード例 #14
0
    public override IEnumerator Execute(ScriptableActionPlayer player)
    {
        DPrompt.ButtonFlags buttonFlags = DPrompt.ButtonFlags.None;
        for (int i = 0; i < Options.Length; i++)
        {
            buttonFlags = (DPrompt.ButtonFlags)((int)buttonFlags | (1 << (int)Options[i].Button));
        }
        DPrompt data = new DPrompt(i18nTitleText, i18nBodyText, buttonFlags);
        Action <DPrompt.ButtonFlags> clickHandler = delegate(DPrompt.ButtonFlags pressed)
        {
            onClick(pressed, player);
        };

        Service.Get <PromptManager>().ShowPrompt(data, clickHandler);
        while (!player.ActionIsFinished)
        {
            yield return(null);
        }
    }
コード例 #15
0
    private void onClick(DPrompt.ButtonFlags pressed, ScriptableActionPlayer player)
    {
        int num = 0;

        while (true)
        {
            if (num < Options.Length)
            {
                if (pressed == Options[num].Button)
                {
                    break;
                }
                num++;
                continue;
            }
            return;
        }
        player.NextAction       = Options[num].NextStep;
        player.ActionIsFinished = true;
    }
コード例 #16
0
 public override IEnumerator Execute(ScriptableActionPlayer player)
 {
     setup(player);
     string[] stringsToCompare = StringsToCompare;
     foreach (string value in stringsToCompare)
     {
         if (ExactMatch)
         {
             HasError = (ReverseCompare ? inputString.Equals(value) : (!inputString.Equals(value)));
         }
         else
         {
             HasError = (ReverseCompare ? inputString.Contains(value) : (!inputString.Contains(value)));
         }
         if (HasError)
         {
             break;
         }
     }
     yield break;
 }
コード例 #17
0
 public override IEnumerator Execute(ScriptableActionPlayer player)
 {
     validator      = player as InputFieldValidator;
     inputString    = validator.TextInput.text;
     sessionManager = Service.Get <SessionManager>();
     sw             = new Stopwatch();
     sw.Start();
     maxTime = 30000;
     isBaseValidationDone = false;
     if (inputString == sessionManager.LocalUser.DisplayName.Text)
     {
         HasError = false;
         yield break;
     }
     accountFlowData = Service.Get <MembershipService>().GetAccountFlowData();
     if (!string.IsNullOrEmpty(inputString) && accountFlowData.PreValidatedDisplayNames.Contains(inputString))
     {
         HasError = false;
     }
     if (found != null && found.Contains(inputString))
     {
         HasError = false;
         yield break;
     }
     if (lastInputString != null && inputString == lastInputString)
     {
         HasError = true;
         yield break;
     }
     sessionManager.LocalUser.ValidateDisplayNameV2(inputString, onValidateComplete);
     while (!isBaseValidationDone && sw.ElapsedMilliseconds < maxTime)
     {
         yield return(null);
     }
     if (!isBaseValidationDone)
     {
         HasError = false;
     }
 }
コード例 #18
0
 public override IEnumerator Execute(ScriptableActionPlayer player)
 {
     yield return(new WaitForSeconds(Seconds));
 }
コード例 #19
0
 public override IEnumerator Execute(ScriptableActionPlayer player)
 {
     setup(player);
     HasError = inputString.Length <MinLength || inputString.Length> MaxLength;
     yield break;
 }
コード例 #20
0
 private void onClick(ScriptableActionPlayer player, ScriptableAction nextStep)
 {
     player.NextAction       = nextStep;
     player.ActionIsFinished = true;
 }
コード例 #21
0
 public override IEnumerator Execute(ScriptableActionPlayer player)
 {
     HasError = Service.Get <SessionManager>().LocalUser.RegistrationProfile.DisplayNameProposedStatus == DisplayNameProposedStatus.Rejected && Service.Get <SessionManager>().LocalUser.DisplayName.Text == inputString;
     yield break;
 }
コード例 #22
0
 public override IEnumerator Execute(ScriptableActionPlayer player)
 {
     setup(player);
     HasError = string.IsNullOrEmpty(inputString);
     yield break;
 }
コード例 #23
0
 protected void setup(ScriptableActionPlayer player)
 {
     validator   = (player as InputFieldValidator);
     inputString = validator.TextInput.text;
 }