예제 #1
0
 /// <summary>
 /// 设置激活的种类
 /// </summary>
 /// <param name="ie"></param>
 private void SetActivateType(IEventParam ie)
 {
     if (ie is ActivateTypeParam)
     {
         type = (ie as ActivateTypeParam).value;
     }
 }
예제 #2
0
    private void Start()
    {
        npcActivateType = "npc" + charID + "ActivateType";
        activateType    = (ActivateType)ReadWriteSaveManager.Instance.GetData(npcActivateType, (int)activateType);

        ReadWriteSaveManager.Instance.Write();

        levelControl   = LevelController.levelController;
        player         = levelControl.GetPlayerController();
        dialogueUI     = UIController.UIControl.GetDialogueUI();
        dialogueTri    = UIController.UIControl.GetDialogueTri();
        dialogueParent = dialogueTri.transform.parent.gameObject;
        activationUI   = UIController.UIControl.GetActivationUI();
        activationAnim = activationUI.GetComponent <Animation>();
        dialogueAnim   = dialogueParent.GetComponent <Animation>();

        dialogueBox = dialogueUI.transform.parent.gameObject;
        dialogueBox.SetActive(false);
        dialogueTri.SetActive(false);
        initEyeSizeY = eyes.localScale.y;
        StartCoroutine(EyeBlink());

        activationUI.transform.position = new Vector2(transform.position.x, transform.position.y + 2f);

        posL = distanceCheckL.position.x;
        posR = distanceCheckR.position.x;
        posU = distanceCheckU.position.y;
        posD = distanceCheckD.position.y;
    }
예제 #3
0
    // Token: 0x060004CA RID: 1226 RVA: 0x0001BA44 File Offset: 0x00019C44
    public int _wmYfEcnzJZHUMf6TmaRnx4oPoiG(int objectId)
    {
        AutoNexus._NgEaTpjfBI3veqdBfggv7SjSaRU ngEaTpjfBI3veqdBfggv7SjSaRU;
        ngEaTpjfBI3veqdBfggv7SjSaRU._EfubdzaIe4z6qxSHa3TuY5MkdaZ = this;
        bool flag = objectId == this._W6Ov6AArxzTTDnCyBtZPqkqNaKf._7w6u8taiwfZruB2OdFEa2AmzJaA;
        int  num;

        _66CXgP76qcRM5NMLzlNSbhfhXbG 66CXgP76qcRM5NMLzlNSbhfhXbG;
        if (flag)
        {
            ngEaTpjfBI3veqdBfggv7SjSaRU._OWPal6UeunpGQX6SceuuADJxQ4k = this._W6Ov6AArxzTTDnCyBtZPqkqNaKf._50Ms1zsqax9Ua48PaWMPQfIENYb;
            num = ngEaTpjfBI3veqdBfggv7SjSaRU._OWPal6UeunpGQX6SceuuADJxQ4k._myJxXFJcH1zIBkZMmXfDOvAh0vcA[1];
            66CXgP76qcRM5NMLzlNSbhfhXbG = this._KgvAv7C8BPHRhNGaBUY9WAoRFFU;
        }
        else
        {
            ngEaTpjfBI3veqdBfggv7SjSaRU._OWPal6UeunpGQX6SceuuADJxQ4k = this._W6Ov6AArxzTTDnCyBtZPqkqNaKf._aJjNVtwA8oe4lWrzJfpazHqj9A2[objectId];
            num = ngEaTpjfBI3veqdBfggv7SjSaRU._OWPal6UeunpGQX6SceuuADJxQ4k._myJxXFJcH1zIBkZMmXfDOvAh0vcA[1];
            if (num == -1)
            {
                return(0);
            }
            66CXgP76qcRM5NMLzlNSbhfhXbG = _JzyrOApzC09RC3fmb10FDURmyCl.Items.ByID((ushort)num);
        }
        if (66CXgP76qcRM5NMLzlNSbhfhXbG == null)
        {
            string     format = "Warning, player {0}'s seal is null! itemType is {1}";
            GameObject owpal6UeunpGQX6SceuuADJxQ4k = ngEaTpjfBI3veqdBfggv7SjSaRU._OWPal6UeunpGQX6SceuuADJxQ4k;
            Console.WriteLine(string.Format(format, (owpal6UeunpGQX6SceuuADJxQ4k != null) ? owpal6UeunpGQX6SceuuADJxQ4k.Name : null, num));
            return(0);
        }
        ngEaTpjfBI3veqdBfggv7SjSaRU._a8AkCF855MfIlZCpL3R4tVhzRug = ((ngEaTpjfBI3veqdBfggv7SjSaRU._OWPal6UeunpGQX6SceuuADJxQ4k._WHCAkdeYqXMbNsGZ6LrBhVGy9y4 < 30) ? 4.5 : (0.135 * (double)ngEaTpjfBI3veqdBfggv7SjSaRU._OWPal6UeunpGQX6SceuuADJxQ4k._WHCAkdeYqXMbNsGZ6LrBhVGy9y4));
        if (66CXgP76qcRM5NMLzlNSbhfhXbG._dHPNoGlmrfb0cl4aaEGpRxXcgRw.Count == 0)
        {
            return(0);
        }
        foreach (Activate kEekgEziy3MAWF43C6Y4bLsMB7E in 66CXgP76qcRM5NMLzlNSbhfhXbG._dHPNoGlmrfb0cl4aaEGpRxXcgRw)
        {
            if (kEekgEziy3MAWF43C6Y4bLsMB7E._tgk0PcUCADsdky6nxKvRJqbCugJA == StatsTypeEnum.MaximumHP)
            {
                ActivateType jp3DtIV4aAYZY26sVsXpPQjBRGO = kEekgEziy3MAWF43C6Y4bLsMB7E._Jp3DtIV4aAYZY26sVsXpPQjBRGO;
                if (jp3DtIV4aAYZY26sVsXpPQjBRGO == ActivateType.StatBoostAura)
                {
                    return(this._Uds8LACABRKlO8SErTdqBEBcjyA(kEekgEziy3MAWF43C6Y4bLsMB7E, ref ngEaTpjfBI3veqdBfggv7SjSaRU));
                }
                if (jp3DtIV4aAYZY26sVsXpPQjBRGO == ActivateType.StatBoostSelf && flag)
                {
                    return(this._Uds8LACABRKlO8SErTdqBEBcjyA(kEekgEziy3MAWF43C6Y4bLsMB7E, ref ngEaTpjfBI3veqdBfggv7SjSaRU));
                }
            }
        }
        return(0);
    }
예제 #4
0
        private string AsynchronousMethod(ActivateType source)
        {
            string result = String.Empty;

            switch (source)
            {
            case ActivateType.Callback:
                result = "Callback";
                break;

            case ActivateType.End:
                result = "End";
                break;

            case ActivateType.IsComplete:
                result = "Is Complete";
                break;
            }
            return(result);
        }
예제 #5
0
 public ActivateTypeParam(ActivateType value)
 {
     this.value = value;
 }
예제 #6
0
    // Start is called before the first frame update
    public IEnumerator WriteText()
    {
        DialogueSet[] dialogueSets;

        if (isCutscene && !hasDoneCutscene)
        {
            dialogueSets = dialogueSetsCutscene;
        }
        else
        {
            if (levelControl.GetIsColorized())
            {
                dialogueSets = dialogueSetsColor;
            }
            else
            {
                dialogueSets = dialogueSetsNoColor;
            }
        }

        // Place text over player or NPC
        if (dialogueSets[setCount].isPlayer)
        {
            dialogueParent.transform.position = new Vector2(player.transform.position.x, player.transform.position.y + 3f);
        }
        else
        {
            dialogueParent.transform.position = new Vector2(transform.position.x, transform.position.y + 3f);
        }

        m_textMeshPro = dialogueUI.GetComponent <TextMeshProUGUI>();
        m_textMeshPro.ForceMeshUpdate();

        forcedEyeDirection = dialogueSets[setCount].eyePosX;

        // Dialogue
        if (dialogueSets[setCount].setType == (DialogueSet.SetType) 0)
        {
            dialogueBox.SetActive(true);
            dialogueTri.SetActive(true);
            dialogueUI.SetActive(true);

            if (dialogueSets[setCount].delayTypeTime != 0)
            {
                dialogueBox.SetActive(false);
                dialogueTri.SetActive(false);
                dialogueUI.SetActive(false);
                yield return(new WaitForSeconds(dialogueSets[setCount].delayTypeTime));

                dialogueBox.SetActive(true);
                dialogueTri.SetActive(true);
                dialogueUI.SetActive(true);
            }

            dialogueUI.GetComponent <TextMeshProUGUI>().text = "";

            dialogueAnim.Play("DialogueEnter");
            yield return(new WaitForSeconds(1 / 5f));

            dialogueAnim.Stop("DialogueEnter");

            dialogueUI.GetComponent <TextMeshProUGUI>().text = dialogueSets[setCount].text;

            isTyping = true;
            StartCoroutine(TypeAudio(dialogueSets, textSpeed, setCount));

            int totalVisibleCharacters = dialogueSets[setCount].text.Length; // Get number of visible characters in the text object
            int counter = 0;

            while (true)
            {
                int visibleCount = counter % (totalVisibleCharacters + 1);

                m_textMeshPro.maxVisibleCharacters = visibleCount; // How many characters should be displayed right now?

                // When last character is revealed, wait for an input and then start next dialogue set or exit dialogue
                if (visibleCount >= totalVisibleCharacters)
                {
                    isTyping = false;

                    yield return(new WaitUntil(() => Input.GetButtonDown("Interact") || Input.GetButtonDown("Jump")));

                    // If not end of dialogue sets
                    if (setCount < (dialogueSets.Length - 1))
                    {
                        // Move on to next dialogue set and write text again
                        setCount++;
                        //vertAnim.Stop();
                        dialogueUI.GetComponent <TextMeshProUGUI>().text = "";

                        dialogueAnim.Play("DialogueExit");
                        yield return(new WaitForSeconds(1 / 6f));

                        dialogueAnim.Stop("DialogueExit");

                        dialogueBox.SetActive(false);
                        dialogueTri.SetActive(false);
                        StartCoroutine(WriteText());
                        yield break;
                    }
                    else
                    {
                        // End the dialogue
                        dialogueAnim.Play("DialogueExit");
                        yield return(new WaitForSeconds(1 / 6f));

                        dialogueAnim.Stop("DialogueExit");
                        forcedEyeDirection = 0f;

                        if (isCutscene && !hasDoneCutscene)
                        {
                            hasDoneCutscene = true;
                            activateType    = 0;
                        }

                        StartCoroutine(EndDialogue());
                        yield break;
                    }
                }

                counter += 1;

                if (Input.GetButton("Interact") || Input.GetButton("Jump"))
                {
                    yield return(new WaitForSeconds(textSpeed / 4));
                }
                else
                {
                    yield return(new WaitForSeconds(textSpeed));
                }
            }
        }
        // Move
        else if (dialogueSets[setCount].setType == (DialogueSet.SetType) 1)
        {
            moveDir      = dialogueSets[setCount].moveDir;
            initPosX     = transform.position.x;
            targetPosX   = moveDir + initPosX;
            isMovingChar = true;

            yield return(new WaitUntil(() => !isMovingChar));

            // Continue to next dialogue set
            if (setCount < (dialogueSets.Length - 1))
            {
                setCount++;
                StartCoroutine(WriteText());
            }
            // End dialogue
            else
            {
                forcedEyeDirection = 0f;
                if (isCutscene && !hasDoneCutscene)
                {
                    hasDoneCutscene = true;
                    activateType    = 0;
                    ReadWriteSaveManager.Instance.SetData(npcActivateType, (int)activateType);
                    ReadWriteSaveManager.Instance.Write();
                }
                StartCoroutine(EndDialogue());
            }
        }
    }
예제 #7
0
 /// <summary>
 /// 选择激活的类型
 /// </summary>
 private void SelectActivateType(ActivateType m_type)
 {
     type = m_type;
     EventManager.Instance.DispatchEvent(EventEnum.ClickWhatWhenInActivateChoosePanel, new ActivateTypeParam(m_type));
 }