Example #1
0
    public NPCMeta(NPCMeta meta)
    {
        string  json = JsonUtility.ToJson(meta);
        NPCMeta copy = JsonUtility.FromJson <NPCMeta>(json);

        name         = copy.name;
        pos          = copy.pos;
        wander       = copy.wander;
        trainer      = copy.trainer;
        defeated     = copy.defeated;
        talkedTo     = copy.talkedTo;
        curious      = copy.curious;
        lookDistance = copy.lookDistance;

        visible  = copy.visible;
        canFight = copy.canFight;

        questsToAppear    = copy.questsToAppear;
        questsToDisappear = copy.questsToDisappear;
        questsToFight     = copy.questsToFight;

        dialogs         = copy.dialogs;
        defeatedDialogs = copy.defeatedDialogs;

        infiniteTrainer     = copy.infiniteTrainer;
        infiniteTrainerDiff = copy.infiniteTrainerDiff;

        roster = copy.roster;
    }
    //private void Start()
    //{
    //  for (int i = 0; i < monsterUI.Length; i++)
    //  {
    //    monsterUI[i].SetActive(false);
    //  }
    //}

    public void updateMonsterUI(NPCMeta meta, Glossary glossy, int yenGained)
    {
        header.text  = "" + meta.name;
        rewards.text = "Looted for: ¥" + yenGained.ToString();
        for (int i = 0; i < 6; i++)
        {
            if (i < meta.roster.Length)
            {
                monsterUI[i].SetActive(true);
                monsterUI[i].transform.GetChild(0).gameObject.GetComponent <Image>().sprite = glossy.GetMonsterImage(meta.roster[i].name);

                Color deadC = monsterUI[i].transform.GetChild(1).gameObject.GetComponent <Image>().color;
                if (meta.roster[i].curHealth > 0)
                {
                    deadC.a = 0;
                }
                else
                {
                    deadC.a = 1;
                }
                monsterUI[i].transform.GetChild(1).gameObject.GetComponent <Image>().color = deadC;
            }
            else
            {
                monsterUI[i].SetActive(false);
            }
        }
    }
Example #3
0
    public static BoardMeta getBoardState(string mapName, PosMeta playerPos)
    {
        //Debug.Log("getBoardState: " + mapName);
        List <NPCMeta> npcs = new List <NPCMeta>();

        foreach (GameObject npc in GameObject.FindGameObjectsWithTag("NPC"))
        {
            NPCMeta thisMeta = npc.GetComponent <NPCMain>().meta;

            NPCMeta meta = new NPCMeta(thisMeta);
            meta.pos = new PosMeta(npc.transform.position);

            npcs.Add(meta);
        }
        List <MonTreasMeta> items = new List <MonTreasMeta>();

        foreach (GameObject item in GameObject.FindGameObjectsWithTag("Item"))
        {
            //Debug.Log("Found Item: " + item.name);
            //Debug.Log("Active: " + item.activeInHierarchy.ToString());
            if (item.activeInHierarchy)
            {
                MonTreasMeta thisMeta = item.GetComponent <TreasureMain>().monTreas;
                MonTreasMeta meta     = new MonTreasMeta(thisMeta, new PosMeta(item.transform.position));
                items.Add(meta);
            }
        }
        BoardMeta board = new BoardMeta();

        board.NPCs      = npcs.ToArray();
        board.mapName   = mapName;
        board.playerPos = playerPos;
        board.Items     = items.ToArray();
        return(board);
    }
Example #4
0
    public NPCMeta getRefinedMeta()
    {
        List <PlayerRosterMeta> newRoster = new List <PlayerRosterMeta>();

        foreach (PlayerRosterMeta mohe in meta.roster)
        {
            newRoster.Add(MonsterMeta.returnMonster(glossy.GetMonsterMain(mohe.name).meta, mohe.lvl, false));
        }
        NPCMeta returnMeta = new NPCMeta(meta);

        returnMeta.roster = newRoster.ToArray();
        return(returnMeta);
    }
Example #5
0
    public NPCMeta getInfiniteMeta(AdventureMeta advMeta)
    {
        float averageLevel = 0;

        foreach (PlayerRosterMeta mohe in advMeta.roster)
        {
            averageLevel += mohe.lvl;
        }
        averageLevel = (float)Math.Ceiling((averageLevel / advMeta.roster.Length)) + meta.infiniteTrainerDiff;

        List <PlayerRosterMeta> newRoster = new List <PlayerRosterMeta>();

        for (int i = 0; i < advMeta.roster.Length; i++)
        {
            String monsterName = glossy.monsters[UnityEngine.Random.Range(0, glossy.monsters.Length - 1)].name;
            newRoster.Add(MonsterMeta.returnMonster(glossy.GetMonsterMain(monsterName).meta, (int)averageLevel, false));
        }
        NPCMeta returnMeta = new NPCMeta(meta);

        returnMeta.roster = newRoster.ToArray();
        return(returnMeta);
    }
Example #6
0
 private void Awake()
 {
     npcData = MockNPCMeta.items.Find(x => x.Id == Id);
     Name    = npcData.Name;
 }
Example #7
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");
            }
        }
    }