コード例 #1
0
    IEnumerator DestWait(Collider2D other)
    {
        Destroy(other.gameObject);
        yield return(null);

        BaseSaver.putBoard(GameUtilities.getBoardState(BaseSaver.getMap(), new PosMeta(transform.position)));
    }
コード例 #2
0
    IEnumerator SaveConversation(GameObject npc)
    {
        AdventureMeta meta = BaseSaver.getAdventure();
        //meta.playerPos = new PosMeta(transform.position);
        NPCMain trainerMain = npc.GetComponent <NPCMain>();

        if (trainerMain.meta.infiniteTrainer)
        {
            meta.trainer = trainerMain.getInfiniteMeta(meta);
        }
        else
        {
            meta.trainer = trainerMain.getRefinedMeta();
        }
        meta.trainer.pos        = new PosMeta(npc.transform.position);
        meta.wild               = null;
        meta.isTrainerEncounter = true;

        Debug.Log(meta.ToString());
        Debug.Log(meta.trainer.ToString());

        BaseSaver.putAdventure(meta);
        BaseSaver.putBoard(GameUtilities.getBoardState(BaseSaver.getMap(), new PosMeta(transform.position)));
        yield return(null);
    }
コード例 #3
0
ファイル: DialogManager.cs プロジェクト: BradZzz/Moheum
    IEnumerator HealSave()
    {
        AdventureMeta meta = GameObject.FindWithTag("Player").GetComponent <PlayerMain>().playerMeta;

        meta.trainer = null;
        //meta.playerPos = new PosMeta(GameObject.Find("PlayerHero").transform.position);
        foreach (PlayerRosterMeta monster in meta.roster)
        {
            monster.curHealth = monster.maxHealth;
        }
        BaseSaver.putAdventure(meta);
        BaseSaver.putBoard(GameUtilities.getBoardState(BaseSaver.getMap(), new PosMeta(GameObject.FindWithTag("Player").transform.position)));
        BaseSaver.saveState();
        yield return(null);
    }
コード例 #4
0
    public IEnumerator WaitTrigger(float wait)
    {
        int roll = Random.Range(0, 10);

        if (roll < 1 && GetComponent <Move>().Moving() && !PauseManager.instance.IsOpen() && !DialogManager.instance.ShopActive() && !DialogManager.instance.DialogActive())
        {
            Debug.Log("Hit");

            //GetComponent<Move>().disableMove();
            AdventureMeta meta      = BaseSaver.getAdventure();
            Glossary      glossy    = GameObject.Find("PauseCanvas").GetComponent <PauseManager>().glossaryObj.GetComponent <Glossary>();
            SceneMeta     thisScene = glossy.GetScene(BaseSaver.getMap()).meta;

            List <PlayerRosterMeta> monsters = new List <PlayerRosterMeta>();
            foreach (string mons in thisScene.monsters)
            {
                if (!mons.Equals(lastMonster))
                {
                    MonsterMeta met = glossy.GetMonsterMain(mons).meta;
                    int         lvl = Random.Range(thisScene.monsterLvls[0], thisScene.monsterLvls[1]);
                    monsters.Add(MonsterMeta.returnMonster(met, lvl, true));
                }
            }

            PlayerRosterMeta[] scrbMons = monsters.ToArray();
            GameUtilities.ShuffleArray(scrbMons);

            meta.trainer            = null;
            meta.wild               = scrbMons[0];
            meta.isTrainerEncounter = false;
            lastMonster             = meta.wild.name;

            BaseSaver.putAdventure(meta);
            BaseSaver.putBoard(GameUtilities.getBoardState(BaseSaver.getMap(), new PosMeta(transform.position)));

            StartCoroutine(DialogManager.FightFlash(false));
            //Initiate.Fade("BejeweledScene", Color.black, 1.0f);
        }
        yield return(new WaitForSeconds(wait));

        waitingForRoll = false;
        yield return(null);
    }
コード例 #5
0
    void OnTriggerEnter2D(Collider2D other)
    {
        Debug.Log("Other Checking: " + other.name);
        if (tag.Equals("Player"))
        {
            Debug.Log("Other Checking: " + other.name);
            Debug.Log("Has Dialog: " + DialogManager.instance.hasDialog().ToString());
            Debug.Log("other.name.Contains(NPC_Trainer): " + other.name.Contains("NPC_Trainer").ToString());

            if (!waitingForConversation)
            {
                if (other.tag.Contains("Item") && !DialogManager.instance.hasDialog())
                {
                    DialogMeta[] diag = new DialogMeta[1];
                    diag[0] = new DialogMeta("Received: " + other.name + "\n" + other.GetComponent <TreasureMain>().monTreas.description);
                    DialogManager.instance.SetMsgs(other.gameObject.GetComponent <SpriteRenderer>().sprite, diag);
                    StartCoroutine(SaveItem(other.gameObject));
                    GameObject.FindWithTag("Player").GetComponent <PlayerMain>().playerMeta = BaseSaver.getAdventure();
                    StartCoroutine(DestWait(other));
                }
                if (other.tag.Contains("Signpost") && !DialogManager.instance.hasDialog())
                {
                    DialogManager.instance.SetMsgs(other.gameObject.GetComponent <SpriteRenderer>().sprite, other.gameObject.GetComponent <SignDialog>().dialogs);
                }
                if (other.name.Contains("NPC_WhiteMage") && !DialogManager.instance.hasDialog())
                {
                    //Debug.Log("NPC_WhiteMage");
                    //NPCMeta meta = other.gameObject.GetComponent<NPCMain>().meta;

                    NPCMeta npcmeta = other.gameObject.GetComponent <NPCMain>().meta;
                    npcmeta.talkedTo = true;
                    DialogManager.instance.SetMsgs(other.gameObject.GetComponent <SpriteRenderer>().sprite, other.gameObject.GetComponent <NPCMain>().meta.dialogs);
                }
                if (other.name.Contains("NPC_Trainer") && !DialogManager.instance.hasDialog())
                {
                    Debug.Log("Other Collided: " + other.name);

                    NPCMeta npcmeta = other.gameObject.GetComponent <NPCMain>().meta;

                    if (npcmeta.dialogs.Length > 0)
                    {
                        Debug.Log("Dialogs good");
                        npcmeta.talkedTo = true;
                        if (npcmeta.lookDistance > 0 && !npcmeta.defeated)
                        {
                            other.gameObject.GetComponent <NPCMain>().moveToPos(transform.position);
                        }
                        else if (npcmeta.trainer && !npcmeta.defeated)
                        {
                            other.gameObject.GetComponent <NPCMain>().startleNPC();
                        }

                        StartCoroutine(SaveConversation(other.gameObject));

                        //AdventureMeta meta = BaseSaver.getAdventure();
                        ////meta.playerPos = new PosMeta(transform.position);
                        //NPCMain trainerMain = other.gameObject.GetComponent<NPCMain>();
                        //if (trainerMain.meta.infiniteTrainer) {
                        //  meta.trainer = trainerMain.getInfiniteMeta(meta);
                        //} else {
                        //  meta.trainer = trainerMain.getRefinedMeta();
                        //}
                        //meta.trainer.pos = new PosMeta(other.gameObject.transform.position);
                        //meta.wild = null;
                        //meta.isTrainerEncounter = true;

                        //Debug.Log(meta.ToString());
                        //Debug.Log(meta.trainer.ToString());

                        //BaseSaver.putAdventure(meta);
                        //BaseSaver.putBoard(GameUtilities.getBoardState(BaseSaver.getMap(), new PosMeta(transform.position)));
                        //BaseSaver.saveState();

                        if (npcmeta.canFight)
                        {
                            Debug.Log("Can Fight");

                            DialogManager.instance.SetMsgs(other.gameObject.GetComponent <SpriteRenderer>().sprite,
                                                           other.gameObject.GetComponent <NPCMain>().meta.defeated ?
                                                           other.gameObject.GetComponent <NPCMain>().meta.defeatedDialogs :
                                                           other.gameObject.GetComponent <NPCMain>().meta.dialogs
                                                           );
                        }
                        else
                        {
                            DialogMeta d1 = new DialogMeta("The stars have not yet aligned for us to battle.");
                            DialogMeta d2 = new DialogMeta("Perhaps we will meet each other again...");

                            DialogMeta[] comeAgainDialog = { d1, d2 };
                            DialogManager.instance.SetMsgs(other.gameObject.GetComponent <SpriteRenderer>().sprite, comeAgainDialog);
                        }
                    }
                }
                if (other.name.Contains("ExitTileGrass"))
                {
                    GameManager.instance.FadeOutNoScene();
                    waitingForRoll = true;
                    StartCoroutine(WaitForAction(roll_wait));
                    StartCoroutine(WaitForConversation(convo_wait));
                    BaseSaver.putBoard(GameUtilities.getBoardState(BaseSaver.getMap(), new PosMeta(transform.position)));
                    other.gameObject.GetComponent <ExitTile>().loadSteppedScene();
                }
            }
            else
            {
                Debug.Log("Waiting for roll");
            }
        }
    }
コード例 #6
0
ファイル: PauseManager.cs プロジェクト: BradZzz/Moheum
    private void Awake()
    {
        instance  = GetComponent <PauseManager>();
        panelOpen = false;
        glossy    = glossaryObj.GetComponent <Glossary>();
        SceneMain scene = glossy.GetScene(BaseSaver.getMap());

        GameObject.Find("MenuTitle").SetActive(true);
        GameObject.Find("MenuTitle").GetComponent <Text>().text = scene.meta.name;
        StartCoroutine(WaitForAction(3f));

        GameObject map = Instantiate(scene.map, new Vector3(0, 0, 0), Quaternion.identity);

        map.SetActive(true);
        swapping = false;
        deleting = false;

        Debug.Log("PauseManager Awake");

        AdventureMeta meta  = BaseSaver.getAdventure();
        BoardMeta     board = BaseSaver.getBoard(BaseSaver.getMap());

        GameObject hero = GameObject.FindWithTag("Player");

        if (BaseSaver.getMap().Equals("ShallowGrove") && BaseSaver.getMapPrev() != "")
        {
            hero.SetActive(false);
            hero = null;
            Destroy(GameObject.FindWithTag("Player"));
        }

        if (hero == null)
        {
            // Pull the hero out of the glossary and instantiate it in the right exit/entrance tile
            GameObject nHero = null;
            string     dest  = BaseSaver.getMapConnection();
            string     prev  = BaseSaver.getMapPrev();
            Debug.Log("Prev: " + prev);
            Debug.Log("Dest: " + dest);
            foreach (GameObject exit in GameObject.FindGameObjectsWithTag("Exit"))
            {
                ExitTile tile = exit.GetComponent <ExitTile>();
                if (tile.toScene.Equals(prev + '.' + dest))
                {
                    nHero = Instantiate(glossy.hero, exit.transform.position, exit.transform.rotation, GameObject.Find("Units").transform);
                    BaseSaver.setMapConnection("");
                    BaseSaver.setMapPrevName("");
                    break;
                }
            }
            if (nHero != null)
            {
                nHero.GetComponent <PlayerMain>().playerMeta = meta;
            }
            else
            {
                Debug.Log("Hero is null!");
                nHero = Instantiate(glossy.hero, board.playerPos.ToVector3(), Quaternion.identity, GameObject.Find("Units").transform);
                nHero.GetComponent <PlayerMain>().playerMeta = meta;
            }
        }
        else
        {
            Debug.Log("Hero is not null!");
            //GameObject.FindWithTag("Player").transform.position = new Vector3(board.playerPos.x, board.playerPos.y, board.playerPos.z);
            GameObject.FindWithTag("Player").GetComponent <PlayerMain>().playerMeta = meta;
        }

        //GameObject.FindWithTag("Player").GetComponent<PlayerMain>().playerMeta = meta;
        //BoardMeta board = BaseSaver.getBoard(BaseSaver.getMap());

        //Debug.Log("Player Pos: " + GameObject.Find("PlayerHero").transform.position.ToString());

        if (board != null)
        {
            Debug.Log("Board not null");

            GameObject[] npcs  = GameObject.FindGameObjectsWithTag("NPC");
            GameObject[] items = GameObject.FindGameObjectsWithTag("Item");

            Debug.Log("board: " + board.mapName);
            Debug.Log("player pos: " + board.playerPos);

            foreach (GameObject npc in npcs)
            {
                Debug.Log("board npc: " + (new PosMeta(npc.transform.position)).ToString());
                Debug.Log("equals battle: " + meta.trainer.pos.Equals(new PosMeta(npc.transform.position)).ToString());
                foreach (NPCMeta NPCMeta in board.NPCs)
                {
                    if (NPCMeta.name.Equals(npc.GetComponent <NPCMain>().meta.name))
                    {
                        npc.GetComponent <NPCMain>().meta = new NPCMeta(NPCMeta);
                    }
                }
                if (meta.trainer != null && meta.trainer.name.Equals(npc.GetComponent <NPCMain>().meta.name))
                {
                    Debug.Log("Found: " + npc.GetComponent <NPCMain>().meta.ToString());
                    npc.GetComponent <NPCMain>().meta = new NPCMeta(meta.trainer);
                    Debug.Log("changed: " + npc.GetComponent <NPCMain>().meta.ToString());
                }
            }
            foreach (GameObject item in items)
            {
                item.GetComponent <TreasureMain>().UpdateInteractable();
            }
            //GameObject.FindWithTag("Player").transform.position = new Vector3(board.playerPos.x, board.playerPos.y, board.playerPos.z);
            BaseSaver.putBoard(GameUtilities.getBoardState(BaseSaver.getMap(), new PosMeta(GameObject.FindWithTag("Player").transform.position)));
        }
        else
        {
            Debug.Log("Board is null");
        }
    }