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); } } }
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); }
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); }
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); }
private void Awake() { npcData = MockNPCMeta.items.Find(x => x.Id == Id); Name = npcData.Name; }
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"); } } }