Esempio n. 1
0
    /// <summary>
    /// Creates the cutscene.
    /// </summary>
    /// <returns>
    /// The cutscene.
    /// </returns>
    /// <param name='_cutsceneName'>
    /// _cutscene name.
    /// </param>
    /// <param name='_playDoneDele'>
    /// _play done dele.
    /// </param>
    /// <exception cref='System.Exception'>
    /// Is thrown when the resouce load is failed.
    /// </exception>
    private Cutscenes  CreateCutscene(string _cutsceneName, Cutscenes.PlayDoneDelegate _playDoneDele)
    {
        if (m_formerEnterCameraTrackName != _cutsceneName)
        {
            GameObject t_loadRes = null;
            Globals.Instance.MResourceManager.Load(_cutsceneName, delegate(Object obj, string error) {
                if (obj == null)
                {
                    Debug.LogError("obj == null InitCutscenesCameraTrack : " + error);
                    return;
                }

                t_loadRes = (GameObject)obj;
            });

            if (t_loadRes == null)
            {
                throw new System.Exception("t_loadRes == null in InitCutscenesCameraTrack");
            }

            m_enterCameraTrackTemplate   = t_loadRes;
            m_formerEnterCameraTrackName = _cutsceneName;
        }

        GameObject t_cutsceneObj = (GameObject)GameObject.Instantiate(m_enterCameraTrackTemplate);
        Cutscenes  t_cutscenes   = t_cutsceneObj.GetComponent <Cutscenes>();

        t_cutscenes.SetPlayOverDelegate(delegate(Cutscenes cut){
            _playDoneDele(cut);
        });

        return(t_cutscenes);
    }
Esempio n. 2
0
    public void ChangeCutscene(Cutscenes cutscene)
    {
        ResetCutscenes();
        currentCutscene = cutscene;
        _cutsceneCanvas.SetActive(true);

        switch (currentCutscene)
        {
        case Cutscenes.INTRO:
            cutsceneActive = true;
            _player.GetComponent <Cinematic>().cinematic = "Abe Rises";
            _player.GetComponent <Cinematic>().enabled   = true;
            _player.GetComponent <PlayerHealth>().RefillForCutscene();
            _ui.GetComponent <UIManager>().hudCanvas.SetActive(false);
            _letterbox.TweenTo(0.15f, 1);
            Invoke("ShowIntroPanel", 1);
            break;

        case Cutscenes.BEAR:
            cutsceneActive = true;
            GameObject.Find("Blood Drip").SetActive(false);
            _player.GetComponent <PlayerHealth>().RefillForCutscene();
            _ui.GetComponent <UIManager>().hudCanvas.SetActive(false);
            _ui.GetComponent <UIManager>().bossHealthUI.enabled = false;
            _letterbox.TweenTo(0.15f, 1);
            Invoke("ShowBearPanel", 1);
            break;

        case Cutscenes.MID:
            cutsceneActive = true;
            GameObject.Find("Blood Drip").SetActive(false);
            _player.GetComponent <PlayerHealth>().RefillForCutscene();
            _ui.GetComponent <UIManager>().hudCanvas.SetActive(false);
            _ui.GetComponent <UIManager>().bossHealthUI.enabled = false;
            _letterbox.TweenTo(0.15f, 1);
            Invoke("ShowMidPanel", 1);
            break;

        case Cutscenes.END:
            cutsceneActive = true;
            GameObject.Find("Blood Drip").SetActive(false);
            _player.GetComponent <Player>().PlayEnding();
            _player.GetComponent <PlayerHealth>().RefillForCutscene();
            _ui.GetComponent <UIManager>().hudCanvas.SetActive(false);
            _ui.GetComponent <UIManager>().bossHealthUI.enabled = false;
            _letterbox.TweenTo(0.15f, 1);
            Invoke("ShowEndPanel", 1);
            break;

        case Cutscenes.NULL:
            cutsceneActive = false;
            _cutsceneCanvas.SetActive(false);
            break;
        }
    }
Esempio n. 3
0
    private void HandleInteractionWithPlayer()
    {
        switch (character.type)
        {
        default:
            // Battle!
            BattleHandler.LoadEnemyEncounter(character, character.enemyEncounter);
            break;

        case Character.Type.Enemy_MinionOrange: {
            if (character.subType == Character.SubType.Enemy_HurtMeDaddy)
            {
                // Special enemy
                Cutscenes.Play_HurtMeDaddy(character);
            }
            else
            {
                // Normal battle
                BattleHandler.LoadEnemyEncounter(character, character.enemyEncounter);
            }
            break;
        }

        case Character.Type.Enemy_MinionRed: {
            if (character.subType == Character.SubType.Enemy_HurtMeDaddy_2)
            {
                // Special enemy
                Cutscenes.Play_HurtMeDaddy_2(character);
            }
            else
            {
                // Normal battle
                BattleHandler.LoadEnemyEncounter(character, character.enemyEncounter);
            }
            break;
        }

        case Character.Type.EvilMonster: {
            Cutscenes.Play_EvilMonster_1(character);
            break;
        }

        case Character.Type.EvilMonster_2: {
            Cutscenes.Play_EvilMonster_2(character);
            break;
        }

        case Character.Type.EvilMonster_3: {
            Cutscenes.Play_EvilMonster_3(character);
            break;
        }
        }
    }
    void Start()
    {
        Action.sc            = this;
        Cutscenes.actors     = actors;
        Response.ui_name     = ui_name;
        Response.ui_portrait = ui_portrait;
        ads = GetComponent <AudioSource>();

        cutscene = Cutscenes.getScene(nextSceneID);

        cutscene[0].Act();
    }
    public void SetVideoClip(Cutscenes cutscenes, string sourceName = "Global")
    {
        StopAllCoroutines();

        m_SkipObjectsFadeTimer = 0;
        if (Constants.Constants.TurnCutscenesOff == false)
        {
            m_CutsceneHasFinished = false;
            audioMixer.SetFloat("MusicVolume", -100);
            GameManager.Instance.m_CutsceneISRunning = true;
            m_rawImage.gameObject.SetActive(true);
            m_CutsceneVideoPlayer.clip = m_Videoclips[(int)cutscenes];
            m_rawImage.texture         = m_CutsceneVideoPlayer.texture;
            StartCoroutine(PlayVideo());
        }
        else if (Constants.Constants.TurnCutscenesOff == true)
        {
            m_CutsceneHasFinished = true;
            m_CutsceneisDone      = true;
            m_rawImage.gameObject.SetActive(false);
            m_CutsceneVideoPlayer.Stop();
        }
    }
Esempio n. 6
0
    /// <summary>
    /// Inits the cutscenes camera track.
    /// </summary>
    private bool InitCutscenesCameraTrack()
    {
        if (GameDefines.Setting_SkipCopyCameraTrack)
        {
            return(false);
        }

        string t_enterCameraTrack = Globals.Instance.MGameDataManager.MCurrentCopyData.MCopyBasicData.CopyEnterCameraTrack;

        if (t_enterCameraTrack.Length > 0)
        {
            Cutscenes t_cut = CreateCutscene(t_enterCameraTrack, delegate(Cutscenes _cut){
                if (!_cut.m_initActorMonster)
                {
                    // intialize the copyStatus
                    Initialize_impl();
                }
            });

            return(!t_cut.m_initActorMonster);
        }

        return(false);
    }
Esempio n. 7
0
    public void Start(Transform transform)
    {
        overmapFtnDewHandler = new OvermapFtnDewHandler();
        UIBlack.Show();
        StopOvermapRunning();
        Window_PickName.Show_Static();
        Window_PickName.AddOption_Static("Custom Name (Length 4)", () => { });
        foreach (string badName in GameData.badNamesArray)
        {
            Window_PickName.AddOption_Static(badName, () => { Debug.Log(badName); });
        }
        Window_PickName.Hide_Static();
        StartOvermapRunning();
        UIBlack.Hide();


        foreach (Character character in GameData.characterList)
        {
            if (character.isDead)
            {
                continue;
            }
            if (character.IsEnemy())
            {
                SpawnEnemy(character);
                continue;
            }

            switch (character.type)
            {
            case Character.Type.Player:
                playerOvermap.Setup(character);
                break;

            case Character.Type.Tank:
                if (character.subType == Character.SubType.Tank_BeforeJoin)
                {
                    // Before Tank joined, make him an NPC
                    SpawnNPC(character);
                }
                else
                {
                    // After Tank joined, make him a Follower
                    SpawnFollower(character, new Vector3(10, 0));
                }
                break;

            case Character.Type.Sleezer:
                if (character.subType == Character.SubType.Sleezer_Friendly)
                {
                    // After Tank joined, make him a Follower
                    SpawnFollower(character, new Vector3(10, -5));
                }
                break;

            case Character.Type.Healer:
                if (character.subType == Character.SubType.Healer_BeforeJoin)
                {
                    // Before Healer joined, make him an NPC
                    SpawnNPC(character);
                }
                else
                {
                    // After Healer joined, make him a Follower
                    SpawnFollower(character, new Vector3(10, 0));
                }
                break;

            case Character.Type.PlayerDoppelganger:
            case Character.Type.Shop:
            case Character.Type.Randy:
            case Character.Type.TavernAmbush:
            case Character.Type.TavernAmbush_2:
            case Character.Type.TavernAmbush_3:
                SpawnNPC(character);
                break;

            case Character.Type.Villager_1:
            case Character.Type.Villager_2:
            case Character.Type.Villager_3:
            case Character.Type.Villager_4:
            case Character.Type.Villager_5:
                NPCOvermap npcOvermap = SpawnNPC(character);
                foreach (Transform child in transform.Find("Map"))
                {
                    if (Vector3.Distance(npcOvermap.GetPosition(), child.position) < 1f)
                    {
                        CharacterSetLastMoveDirData characterSetLastMoveDirData = child.GetComponent <CharacterSetLastMoveDirData>();
                        npcOvermap.SetLastMoveDir(characterSetLastMoveDirData.lastMoveDir);
                    }
                }
                break;
            }
        }


        foreach (Item item in GameData.itemList)
        {
            if (item.IsDestroyed())
            {
                continue;
            }
            SpawnItem(item);
        }

        //OvermapHandler.SpawnNPC(new Vector3(0, 70));

        // Starting state
        switch (GameData.state)
        {
        case GameData.State.Start:
            Cutscenes.Play_Start();
            break;

        case GameData.State.DefeatedHurtMeDaddy:
        case GameData.State.DefeatedHurtMeDaddy_2:
            Window_QuestPointer.Create(GetNPC(GameData.GetCharacter(Character.Type.Tank)).GetPosition() + new Vector3(0, 10), Color.yellow, Color.yellow, crossSprite: GameAssets.i.s_ExclamationPoint);
            break;

        case GameData.State.DefeatedTank:
            Cutscenes.Play_Tank_AfterJoin();
            break;

        case GameData.State.SurvivedTavernAmbush:
            Cutscenes.Play_SurvivedTavernAmbush();
            break;

        case GameData.State.HealerJoined:
            Window_QuestPointer.Create(GameAssets.i.Map.Find("shop").position, Color.white, Color.white);
            break;

        case GameData.State.LostToEvilMonster_1:
            playerOvermap.SetPosition(GameAssets.i.Map.Find("dungeonPlayer").position);
            GetFollower(GameData.GetCharacter(Character.Type.Tank)).SetPosition(GameAssets.i.Map.Find("dungeonTank").position);
            GetFollower(GameData.GetCharacter(Character.Type.Sleezer)).SetPosition(GameAssets.i.Map.Find("dungeonSleezer").position);
            GetFollower(GameData.GetCharacter(Character.Type.Healer)).SetPosition(GameAssets.i.Map.Find("dungeonHealer").position);

            Cutscenes.Play_LostToEvilMonster_1();
            break;

        case GameData.State.MovingToEvilMonster_2:
            Window_QuestPointer.Create(GameAssets.i.Map.Find("evilMonster_2").position, Color.white, Color.white);
            break;

        case GameData.State.LostToEvilMonster_2:
            playerOvermap.SetPosition(GameAssets.i.Map.Find("dungeonPlayer").position);
            GetFollower(GameData.GetCharacter(Character.Type.Tank)).SetPosition(GameAssets.i.Map.Find("dungeonTank").position);
            GetFollower(GameData.GetCharacter(Character.Type.Sleezer)).SetPosition(GameAssets.i.Map.Find("dungeonSleezer").position);
            GetFollower(GameData.GetCharacter(Character.Type.Healer)).SetPosition(GameAssets.i.Map.Find("dungeonHealer").position);

            Cutscenes.Play_LostToEvilMonster_2();
            break;

        case GameData.State.MovingToEvilMonster_3:
            Window_QuestPointer.Create(GameAssets.i.Map.Find("evilMonster_3").position, Color.white, Color.white);
            break;

        case GameData.State.DefeatedEvilMonster:
            Cutscenes.Play_DefeatedEvilMonster();
            break;
        }

        transform.Find("Map").Find("Hitboxes").Find("TavernEntryHitbox").gameObject.SetActive(((int)GameData.state) < ((int)GameData.State.DefeatedTank));
        transform.Find("Map").Find("Hitboxes").Find("HurtMeDaddyHitbox").gameObject.SetActive(((int)GameData.state) < ((int)GameData.State.DefeatedHurtMeDaddy));
        transform.Find("Map").Find("Hitboxes").Find("HurtMeDaddy2Hitbox").gameObject.SetActive(((int)GameData.state) < ((int)GameData.State.DefeatedHurtMeDaddy_2));
        transform.Find("Map").Find("Hitboxes").Find("CastleBlockageHitbox").gameObject.SetActive(((int)GameData.state) < ((int)GameData.State.LostToEvilMonster_2));

        transform.Find("Map").Find("VillagerBlocker").gameObject.SetActive(((int)GameData.state) < ((int)GameData.State.DefeatedTank));

        transform.Find("Map").Find("Blockage").gameObject.SetActive(((int)GameData.state) < ((int)GameData.State.LostToEvilMonster_2));

        //transform.Find("Map").Find("Hitboxes").Find("HurtMeDaddyHitbox").GetComponent<SpriteRenderer>().color = new Color(0, 0, 0, 0);
        //transform.Find("Map").Find("Hitboxes").Find("HurtMeDaddy2Hitbox").GetComponent<SpriteRenderer>().color = new Color(0, 0, 0, 0);

        foreach (Transform hitboxTransform in transform.Find("Map").Find("Hitboxes"))
        {
            hitboxTransform.GetComponent <SpriteRenderer>().color = new Color(0, 0, 0, 0);
        }

        //transform.Find("Map").Find("Hitboxes").Find("CastleBlockageHitbox").GetComponent<SpriteRenderer>().color = new Color(0, 0, 0, .5f);

        //Window_QuestPointer.Create(new Vector3(150, 0), Color.white, Color.white);
        //ChatBubble.Create(playerOvermap.transform, new Vector3(3.5f, 5), "Oh Sleezer! You're so silly!");
        //ChatBubble.Create(playerOvermap.transform, new Vector3(3.5f, 5), "Hihihi");
    }
Esempio n. 8
0
    public void Update()
    {
        overmapFtnDewHandler.Update();

        switch (GameData.state)
        {
        case GameData.State.GoingToTownCenter:
            //Vector3 townCenterPosition = GameAssets.i.Map.Find("townCenter").position;
            List <Vector3> positionList = new List <Vector3> {
                GameAssets.i.Map.Find("townCenter").position,
                GameAssets.i.Map.Find("townCenter_2").position,
                GameAssets.i.Map.Find("townCenter_3").position,
            };
            bool reachedPosition = false;
            foreach (Vector3 position in positionList)
            {
                if (Vector3.Distance(playerOvermap.GetPosition(), position) < 30f)
                {
                    reachedPosition = true;
                }
            }
            if (reachedPosition)
            {
                GameData.state = GameData.State.ArrivedAtTownCenter;
                Cutscenes.Play_ArrivedAtTownCenter();
            }
            break;

        case GameData.State.GoingToTavern:
            Vector3 tavernPosition = GameAssets.i.Map.Find("tavern").position;
            if (Vector3.Distance(playerOvermap.GetPosition(), tavernPosition) < 20f)
            {
                GameData.state = GameData.State.InTavern;
                Cutscenes.Play_Tavern();
            }
            break;

        case GameData.State.LeavingTown:
            //Vector3 leaveTownPosition = GameAssets.i.Map.Find("letsLeaveTown").position;
            positionList = new List <Vector3> {
                GameAssets.i.Map.Find("letsLeaveTown").position,
                GameAssets.i.Map.Find("letsLeaveTown_2").position,
                GameAssets.i.Map.Find("letsLeaveTown_3").position,
            };
            reachedPosition = false;
            foreach (Vector3 position in positionList)
            {
                if (Vector3.Distance(playerOvermap.GetPosition(), position) < 30f)
                {
                    reachedPosition = true;
                }
            }
            if (reachedPosition)
            {
                GameData.state = GameData.State.GoingToFirstEvilMonsterEncounter;
                Window_QuestPointer.DestroyPointer(GameAssets.i.Map.Find("letsLeaveTown").position);

                Window_QuestPointer.Create(GameAssets.i.Map.Find("evilMonster").position, Color.white, Color.white);
            }
            break;

        case GameData.State.GoingToFirstEvilMonsterEncounter:
            Vector3 evilMonsterPosition = GetEnemy(Character.Type.EvilMonster).GetPosition();
            if (Vector3.Distance(playerOvermap.GetPosition(), evilMonsterPosition) < 90f)
            {
                GameData.state = GameData.State.GoingToFightEvilMonster;
                Window_QuestPointer.DestroyPointer(GameAssets.i.Map.Find("evilMonster").position);

                Cutscenes.Play_SpottedEvilMonster();
            }
            break;

        case GameData.State.MovingToEvilMonster_2:
            evilMonsterPosition = GetEnemy(Character.Type.EvilMonster_2).GetPosition();
            if (Vector3.Distance(playerOvermap.GetPosition(), evilMonsterPosition) < 80f)
            {
                GameData.state = GameData.State.GoingToFightEvilMonster_2;
                Window_QuestPointer.DestroyPointer(GameAssets.i.Map.Find("evilMonster_2").position);
            }
            break;

        case GameData.State.MovingToEvilMonster_3:
            evilMonsterPosition = GetEnemy(Character.Type.EvilMonster_3).GetPosition();
            if (Vector3.Distance(playerOvermap.GetPosition(), evilMonsterPosition) < 80f)
            {
                GameData.state = GameData.State.GoingToFightEvilMonster_3;
                Window_QuestPointer.DestroyPointer(GameAssets.i.Map.Find("evilMonster_3").position);
            }
            break;
        }
    }
    private void HandleInteract()
    {
        if (((int)GameData.state) < ((int)GameData.State.DefeatedTank))
        {
            if (!spawnedTankInteractKey)
            {
                Character tankCharacter = GameData.GetCharacter(Character.Type.Tank);
                if (Vector3.Distance(GetPosition(), tankCharacter.position) < 12f)
                {
                    spawnedTankInteractKey = true;
                    Instantiate(GameAssets.i.pfKey, tankCharacter.position + new Vector3(0, 15), Quaternion.identity);
                }
            }
        }

        if (Input.GetKeyDown(KeyCode.Space))
        {
            NPCOvermap npcOvermap = OvermapHandler.GetInstance().GetClosestNPC(GetPosition(), 12f);
            if (npcOvermap != null)
            {
                switch (npcOvermap.GetCharacter().type)
                {
                case Character.Type.Tank:
                    // Tank is only a NPC before he joins
                    Cutscenes.Play_Tank_BeforeJoin();
                    break;

                case Character.Type.Healer:
                    // Healer is only a NPC before he joins
                    //Cutscenes.Play_Healer_BeforeJoin();
                    break;

                case Character.Type.PlayerDoppelganger:
                    if (GameData.state == GameData.State.GoingToAskDoppelGanger)
                    {
                        Cutscenes.Play_DoppelGanger();
                    }
                    break;

                case Character.Type.Shop:
                    Cutscenes.Play_Shop(npcOvermap.GetCharacter());
                    break;
                }
            }
            else
            {
                // No NPC in range
                // Consume Health Potion
                if (GameData.TrySpendHealthPotion())
                {
                    // Heal all Team members
                    int healAmount = 40;
                    Heal(healAmount);
                    FollowerOvermap tankOvermap = OvermapHandler.GetInstance().GetFollower(GameData.GetCharacter(Character.Type.Tank));
                    if (tankOvermap != null)
                    {
                        tankOvermap.Heal(healAmount);
                    }
                    FollowerOvermap healerOvermap = OvermapHandler.GetInstance().GetFollower(GameData.GetCharacter(Character.Type.Healer));
                    if (healerOvermap != null)
                    {
                        healerOvermap.Heal(healAmount);
                    }
                }
            }

            /*
             * if (OvermapHandler.GetInstance().TryPlayerInteract()) {
             *  Dialogue dialogue = Dialogue.GetInstance();
             *  dialogue.SetDialogueActions(new List<Action>() {
             *      () => {
             *          dialogue.Show();
             *          dialogue.ShowLeftCharacter(GameAssets.i.s_PlayerDialogueSprite);
             *          dialogue.ShowLeftText("Hello there General Kenobi");
             *          dialogue.ShowRightCharacter(GameAssets.i.s_PlayerDialogueSprite);
             *          dialogue.FadeRightCharacter();
             *      },
             *      () => {
             *          dialogue.ShowRightActiveTalkerHideLeft("Yes yes hello there...");
             *      },
             *      () => {
             *          dialogue.ShowRightText("What brings you here?");
             *      },
             *      () => {
             *          dialogue.ShowLeftActiveTalkerHideRight("Oh I don't know");
             *      },
             *      () => {
             *          dialogue.ShowLeftText("Lets battle!");
             *      },
             *      () => {
             *          Loader.Load(Loader.Scene.BattleScene);
             *      },
             *  });
             *  dialogue.PlayNextAction();
             *  ///
             *  dialogue.SetDialogueActions(new List<Action>() {
             *      () => {
             *          dialogue.Show();
             *          dialogue.ShowLeftCharacter(GameAssets.i.s_PlayerDialogueSprite, false);
             *          dialogue.ShowRightCharacter(GameAssets.i.s_PlayerDialogueSprite, true);
             *          dialogue.ShowDialogueOptions(new List<Dialogue.DialogueOption> {
             *              new Dialogue.DialogueOption(Dialogue.DialogueOption.Option._1, "Hello there!", () => {
             *                  dialogue.ClearDialogueOptions();
             *                  dialogue.ShowRightActiveTalkerHideLeft("Yes yes hello there...");
             *              }),
             *              new Dialogue.DialogueOption(Dialogue.DialogueOption.Option._2, "General Kenobi!", () => {
             *                  dialogue.ClearDialogueOptions();
             *                  dialogue.ShowRightActiveTalkerHideLeft("Yes yes hello there...");
             *              }),
             *          });
             *      },
             *  }, true);
             * }
             */
        }
    }
Esempio n. 10
0
 private void Start()
 {
     cutscenes = GameObject.Find("CutsceneManager").GetComponent <Cutscenes>();
     dM        = GameObject.Find("DialogueManager").GetComponent <DialogueManager>();
 }