Exemplo n.º 1
0
    void EnemySuicideAnimation()
    {
        actualPhase = Phase.SUICIDE;

        if (lastWriter == null)
        {
            enemyDialoguePosition.gameObject.SetActive(true);
            lastWriter = Instantiate(writerPrefab, enemyDialoguePosition.GetChild(1));

            lastWriter.GetComponent <TextMeshProUGUI>().font        = normalFont;
            lastWriter.GetComponent <TextMeshProUGUI>().wordSpacing = 0;
            lastWriter.SetAudio(() => AudioManager.PlaySound("Writting"), () => AudioManager.StopSound("Writting"));
            lastWriter.Play(actualCombat.playerWinResponse, preCombatWriterSpeed, preCombatWriterTrailLength, Skinning.GetSkin(preCombatEnnemyHighlight), Skinning.GetSkin(preCombatEnnemyColor));

            return;
        }

        effectAnimator.Play("Empty");
        enemyAnimator.enabled = false;

        enemyGraph.sprite    = actualCombat.enemySprites[suicideIndex];
        bigEnemyGraph.sprite = enemyGraph.sprite;

        if (suicideIndex != 3)
        {
            Invoke("EnemySuicideAnimation", suicideDelay);
            suicideIndex++;
        }
        else
        {
            AudioManager.PlaySound("Sepukku");
            AudioManager.PlaySound("Grunt");
            PlayBloodShed();
        }
    }
Exemplo n.º 2
0
    void ShowGameOver()
    {
        effectAnimator.Play("Empty");

        playerGraph.sprite = playerSprites[0];

        enemyDialoguePosition.gameObject.SetActive(true);

        lastWriter = Instantiate(writerPrefab, enemyDialoguePosition.GetChild(1));
        lastWriter.GetComponent <TextMeshProUGUI>().font        = normalFont;
        lastWriter.GetComponent <TextMeshProUGUI>().wordSpacing = 0;
        lastWriter.SetAudio(() => AudioManager.PlaySound("Writting"), () => AudioManager.StopSound("Writting"));

        if (actualPhase == Phase.EFFECT_GENERAL)
        {
            lastWriter.Play(actualCombat.playerLoseResponse, preCombatWriterSpeed, preCombatWriterTrailLength, Skinning.GetSkin(preCombatEnnemyHighlight), Skinning.GetSkin(preCombatEnnemyColor));
        }

        if (actualPhase == Phase.EFFECT_FINAL)
        {
            lastWriter.Play(actualCombat.playerFinisherLoseResponse, preCombatWriterSpeed, preCombatWriterTrailLength, Skinning.GetSkin(preCombatEnnemyHighlight), Skinning.GetSkin(preCombatEnnemyColor));
        }

        actualPhase       = Phase.PLAYER_SUICIDE;
        playerTargetIndex = 0;
    }
Exemplo n.º 3
0
    void SpawnAttackReaction(string reaction)
    {
        enemyDialoguePosition.gameObject.SetActive(true);
        lastWriter = Instantiate(writerPrefab, enemyDialoguePosition.GetChild(1));

        lastWriter.GetComponent <TextMeshProUGUI>().font        = normalFont;
        lastWriter.GetComponent <TextMeshProUGUI>().wordSpacing = 0;
        lastWriter.SetAudio(() => AudioManager.PlaySound("Writting"), () => AudioManager.StopSound("Writting"));
        lastWriter.Play(reaction, preCombatWriterSpeed, preCombatWriterTrailLength, Skinning.GetSkin(preCombatEnnemyHighlight), Skinning.GetSkin(preCombatEnnemyColor));
    }
Exemplo n.º 4
0
    public void SpecificInit(bool useCheats, List <Clue> clueList, List <Conclusion> unlockableConclusions, List <ShogunCharacter> characters, string goodFeedback, string badFeedback, Action returnCallback, Action combatCallback, GameData.GameState actualState)
    {
        this.useCheats    = useCheats;
        toCombat          = combatCallback;
        goodDeityFeedbcak = goodFeedback;
        badDeityFeedback  = badFeedback;

        SpawnKnobs(clueList, characters);
        SpawnConclusions(unlockableConclusions, actualState);

        deityWritter.SetAudio(() => AudioManager.PlaySound("Writting"), () => AudioManager.StopSound("Writting"));

        returnButton.onClick.AddListener(() =>
        {
            returnCallback.Invoke();
            SetStateCursor(false);
            AudioManager.PlaySound("Button");
        });

        combatButton.onClick.AddListener(() =>
        {
            bool can = true;

            foreach (Conclusion conclusion in conclusionsToUnlock)
            {
                if (!conclusion.IsUnlocked(true))
                {
                    can = false;
                }
            }

            if (can)
            {
                SetStateCursor(false);

                if (actualState == GameData.GameState.NORMAL)
                {
                    Invoke(lineTries <= goodGameThreshold ? "StartGoodFeedback" : "StartBadFeedback", 2.55f);
                    anim.Play("GoodFeedback");
                    AudioManager.PlaySound("DeityDeduction");
                }
                else
                {
                    toCombat.Invoke();
                    AudioManager.PlaySound("Button");
                }
            }
            else
            {
                AudioManager.PlaySound("ConclusionFail");
            }
        });

        selectionPath  = new List <Path>();
        persistentPath = new List <Path>();
        selectedClues  = new List <Clue>();

        isSettingPath    = false;
        inFeedback       = false;
        clueDisplayTimer = 0;
        lineTries        = 0;

        foreach (TextMeshProUGUI child in transform.GetChildrenOfType <TextMeshProUGUI>())
        {
            if (child != deityWritter.GetComponent <TextMeshProUGUI>())
            {
                child.font        = streetFont;
                child.wordSpacing = 5;
            }
        }

        ResetPopup();
    }
Exemplo n.º 5
0
    void SpawnNextPreDialogue()
    {
        if (isPlayer)
        {
            if (lastWriterPlayer != null)
            {
                playerDialoguePosition.gameObject.SetActive(false);
                Destroy(lastWriterPlayer.gameObject);
            }

            if (actualCombat.actualState == GameData.GameState.GAME_OVER_FINISHER)
            {
                actualPhase = Phase.GONG;

                if (actualCombat.actualState == GameData.GameState.GAME_OVER_FINISHER)
                {
                    actualCombat.actualState = GameData.GameState.RETURN_FINISHER;
                }

                if (lastWriter != null)
                {
                    playerDialoguePosition.gameObject.SetActive(false);
                    enemyDialoguePosition.gameObject.SetActive(false);

                    Destroy(lastWriter.gameObject);
                }
                return;
            }
            else
            {
                if (dialogueIndex > actualCombat.preCombatReplicas.Count - 1 || string.IsNullOrEmpty(actualCombat.preCombatReplicas[dialogueIndex].playerLine))
                {
                    actualPhase = Phase.KATANA;

                    if (actualCombat.actualState == GameData.GameState.GAME_OVER_GENERAL)
                    {
                        actualCombat.actualState = GameData.GameState.RETURN_GENERAL;
                    }

                    playerDialoguePosition.gameObject.SetActive(false);
                    enemyDialoguePosition.gameObject.SetActive(false);

                    Destroy(lastWriter.gameObject);
                    return;
                }

                playerDialoguePosition.gameObject.SetActive(true);
                lastWriter = Instantiate(writerPrefab, playerDialoguePosition.GetChild(1));

                lastWriter.GetComponent <TextMeshProUGUI>().font        = streetFont;
                lastWriter.GetComponent <TextMeshProUGUI>().wordSpacing = 5;

                lastWriter.SetAudio(() => AudioManager.PlaySound("Writting"), () => AudioManager.StopSound("Writting"));
                lastWriter.Play(actualCombat.preCombatReplicas[dialogueIndex].playerLine, preCombatWriterSpeed, preCombatWriterTrailLength, Skinning.GetSkin(preCombatPlayerHighlight), Skinning.GetSkin(preCombatPlayerColor));
            }

            lastWriterPlayer = lastWriter;
        }
        else
        {
            if (lastWriterEnemy != null)
            {
                enemyDialoguePosition.gameObject.SetActive(false);
                Destroy(lastWriterEnemy.gameObject);
            }

            if (actualCombat.actualState == GameData.GameState.GAME_OVER_FINISHER)
            {
                enemyDialoguePosition.gameObject.SetActive(true);
                lastWriter = Instantiate(writerPrefab, enemyDialoguePosition.GetChild(1));

                lastWriter.GetComponent <TextMeshProUGUI>().font        = normalFont;
                lastWriter.GetComponent <TextMeshProUGUI>().wordSpacing = 0;
                lastWriter.SetAudio(() => AudioManager.PlaySound("Writting"), () => AudioManager.StopSound("Writting"));
                lastWriter.Play(actualCombat.preCombatReturnReplica, preCombatWriterSpeed, preCombatWriterTrailLength, Skinning.GetSkin(preCombatEnnemyHighlight), Skinning.GetSkin(preCombatEnnemyColor));
            }
            else
            {
                if (dialogueIndex > actualCombat.preCombatReplicas.Count - 1 || string.IsNullOrEmpty(actualCombat.preCombatReplicas[dialogueIndex].enemyLine))
                {
                    actualPhase = Phase.KATANA;

                    if (actualCombat.actualState == GameData.GameState.GAME_OVER_GENERAL)
                    {
                        actualCombat.actualState = GameData.GameState.RETURN_GENERAL;
                    }

                    enemyDialoguePosition.gameObject.SetActive(false);
                    playerDialoguePosition.gameObject.SetActive(false);

                    Destroy(lastWriter.gameObject);
                    return;
                }

                enemyDialoguePosition.gameObject.SetActive(true);
                lastWriter = Instantiate(writerPrefab, enemyDialoguePosition.GetChild(1));

                lastWriter.GetComponent <TextMeshProUGUI>().font        = normalFont;
                lastWriter.GetComponent <TextMeshProUGUI>().wordSpacing = 0;
                lastWriter.SetAudio(() => AudioManager.PlaySound("Writting"), () => AudioManager.StopSound("Writting"));
                lastWriter.Play(actualCombat.preCombatReplicas[dialogueIndex].enemyLine, preCombatWriterSpeed, preCombatWriterTrailLength, Skinning.GetSkin(preCombatEnnemyHighlight), Skinning.GetSkin(preCombatEnnemyColor));
            }

            dialogueIndex++;

            lastWriterEnemy = lastWriter;
        }

        isPlayer          = !isPlayer;
        writerIsCommanded = false;
    }