public void world_createNPC(NPCCreateData npc) { BaseNPC_Client newNPC = GameObject.Instantiate(NPCPrefabs.NPC[npc.type], npc.position.V3, Quaternion.Euler(npc.rotation.V3)).GetComponent <BaseNPC_Client>(); newNPC.createFromState(npc); e.getUI().ui_world_CreateNPCNameplate(newNPC); if (newNPC.QuestsGiven.Count > 0 || newNPC.QuestsTaken.Count > 0) { world_updateNPCQuestMarker(newNPC); newNPC.onMouseRightClick.AddListener(delegate { e.getUI().ui_ingame_onNPCQuestDisplay(newNPC); }); } newNPC.onMouseLeftClick.AddListener(delegate { e.getCombat().combat_setTarget(newNPC); }); /*newNPC.onMouseOver.AddListener(delegate * { * e.getUI().ui_ingame_onNPCHoverStart(newNPC); * }); * * newNPC.onMouseExit.AddListener(delegate * { * e.getUI().ui_ingame_onNPCHoverEnd(); * });*/ NPCList.Add(npc.uniqueID, newNPC); }
public void combat_clearTarget() { if (CombatTarget != null) { CombatTarget.UI_Nameplate.setTargetted(false); CombatTarget = null; } }
public void Open(BaseNPC_Client n) { if (NPCRef != n) { NPCRef = n; } RebuildListWindow(); ShowListWindow(); }
public void ui_ingame_onNPCQuestDisplay(BaseNPC_Client n) { float Distance = Vector3.Distance(e.getWorld().Player_Self.transform.position, n.gameObject.transform.position); if (Distance < 5f) { QuestPopup.Open(n); } }
public void combat_setTarget(BaseNPC_Client n) { if (CombatTarget != null) { CombatTarget.UI_Nameplate.setTargetted(false); } CombatTarget = n; CombatTarget.UI_Nameplate.setTargetted(true); }
public void Create(Client_Engine eng, BaseNPC_Client n) { e = eng; gameObject.name = n.uniqueID + "_Nameplate"; Vector3 viewPos = Camera.main.WorldToViewportPoint(n.gameObject.transform.position); transform.position = new Vector3((viewPos.x - 0.5f) * Camera.main.pixelWidth, (viewPos.y - 0.5f) * Camera.main.pixelHeight, 0f); playerTarget = n.gameObject; setNameplateName(n.Name); setNameplateColor((int)n.Faction); setNameplateHealthValues(n.currentHealth, n.maxHealth); //parent.Nameplate.GetComponent<Nameplate>().setNameplateEnergyValues(state.curEnergy, state.maxEnergy); ID = n.uniqueID; }
public void world_updateNPCQuestMarker(BaseNPC_Client n) { // Available & acceptable quest > unfinished quest turnin // unfinished quest turnin > unavailable quest // finished quest turnin > Available & acceptable quest // unavailable quest > no turn ins if (n.QuestsGiven.Count > 0 || n.QuestsTaken.Count > 0) { bool hasFinished = false; bool isFinalStage = false; bool hasQuestAvailable = false; if (Player_Self.ActiveQuests.Count > 0) { foreach (string s in n.QuestsTaken) { foreach (QuestData q in Player_Self.ActiveQuests) { if (q.ID == s) { if (Quests.QList[q.ID].isQuestFinished(q)) { Debug.Log("Taken quests, Has active, is finished"); hasFinished = true; break; } else if (Quests.QList[q.ID].isQuestFinalStage(q)) { Debug.Log("Taken quests, Has active, is final stage"); isFinalStage = true; } } } } } foreach (string s in n.QuestsGiven) { if (Player_Self.FinishedQuests.Count > 0) { if (!Player_Self.FinishedQuests.Contains(s)) { if (Quests.QList[s].isQuestAvailable(Player_Self)) { Debug.Log("Given quests, Has finished quests, has not done quest"); hasQuestAvailable = true; } } } if (Player_Self.ActiveQuests.Count > 0) { if (!Player_Self.ActiveQuests.Any(x => x.ID == s)) { if (Quests.QList[s].isQuestAvailable(Player_Self)) { Debug.Log("Given quests, has active quests, does not already have quest"); hasQuestAvailable = true; } } } else if (Quests.QList[s].isQuestAvailable(Player_Self)) { Debug.Log("Given quests, no active quests, does not already have quest"); hasQuestAvailable = true; } } Debug.Log(hasFinished + " " + hasQuestAvailable + " " + isFinalStage); if (hasFinished) { n.toggleQuestMarkers(false, true, true); } else if (hasQuestAvailable) { n.toggleQuestMarkers(true, false, true); } else if (isFinalStage) { n.toggleQuestMarkers(false, true, false); } else { n.toggleQuestMarkers(false, false, false); } } else { n.toggleQuestMarkers(false, false, false); } }
public void ui_ingame_onNPCHoverStart(BaseNPC_Client n) { //if (ActionbarButtons[i].GetSkill() != null) // ui_ingame_showTooltip(0, ActionbarButtons[i].GetSkill().skillName, ActionbarButtons[i].GetSkill().getDescription()); ui_ingame_showTooltip(0, n.Name, "Level " + n.Level); }
public void ui_world_CreateNPCNameplate(BaseNPC_Client parent) { parent.UI_Nameplate = GameObject.Instantiate(nameplateNPC_Prefab, nameplate_Parent.transform).GetComponent <Nameplate>(); parent.UI_Nameplate.Create(e, parent); }