Esempio n. 1
0
    public override void OnStateEnter(State previousState)
    {
        base.OnStateEnter(previousState);



        currentStatus = Status.Waiting;


        Vector2 v = rb2d.velocity;

        v.x           = 0;
        v.y           = Mathf.Min(0, v.y);
        rb2d.velocity = v;

        var mouse = GameObject.FindObjectOfType <MouseIndicator>();

        mouse.Lock();

        switch (GetGroundType())
        {
        case 0:
            rb2d.gravityScale = playerCharacter.DefaultGravity;
            anim.Play("MainCharacter_Airborne", -1, 0f);
            break;


        case 1:
            playerCharacter.AddNormalEnergy(1);
            if (PlayerCharacter.Singleton.InFever)
            {
                PlayerCharacter.Singleton.AddOverLoadEnergy(1);
            }

            rb2d.velocity     = Vector2.zero;
            rb2d.gravityScale = 0;

            anim.Play("MainCharacter_Idle", -1, 0f);

            GUIHUD hud = GUIManager.Singleton.GetGUIWindow <GUIHUD>("HUD");
            if (hud)
            {
                Action[] newCallbacks = new Action[playerCharacter.currentDialogueCallbacks.Length + 1];
                playerCharacter.currentDialogueCallbacks.CopyTo(newCallbacks, 0);
                newCallbacks[playerCharacter.currentDialogueCallbacks.Length] = EndDialogue;

                hud.ShowDialogue(DataTableManager.singleton.GetDialogueData(playerCharacter.currentDialogueID), newCallbacks);

                currentStatus = Status.InDialogue;
            }
            else
            {
                currentStatus = Status.Done;
            }

            break;
        }
    }
Esempio n. 2
0
    public override string Update()
    {
        if (currentStatus == Status.Waiting)
        {
            switch (GetGroundType())
            {
            case 1:
                playerCharacter.AddNormalEnergy(1);
                if (PlayerCharacter.Singleton.InFever)
                {
                    PlayerCharacter.Singleton.AddOverLoadEnergy(1);
                }

                rb2d.velocity     = Vector2.zero;
                rb2d.gravityScale = 0;

                anim.Play("MainCharacter_Idle", -1, 0f);

                GUIHUD hud = GUIManager.Singleton.GetGUIWindow <GUIHUD>("HUD");
                if (!hud)
                {
                    return("Idle");
                }

                Action[] newCallbacks = new Action[playerCharacter.currentDialogueCallbacks.Length + 1];
                playerCharacter.currentDialogueCallbacks.CopyTo(newCallbacks, 0);
                newCallbacks[playerCharacter.currentDialogueCallbacks.Length] = EndDialogue;

                hud.ShowDialogue(DataTableManager.singleton.GetDialogueData(playerCharacter.currentDialogueID), newCallbacks);

                currentStatus = Status.InDialogue;

                break;
            }
        }


        if (currentStatus == Status.Done)
        {
            return("Idle");
        }


        return(Name);
    }