private FactionFile.GuildGroups GetGuildGroup(int factionId) { PersistentFactionData persistentFactionData = GameManager.Instance.PlayerEntity.FactionData; FactionFile.GuildGroups guildGroup = FactionFile.GuildGroups.None; FactionFile.FactionData factionData; if (persistentFactionData.GetFactionData(factionId, out factionData)) { guildGroup = (FactionFile.GuildGroups)factionData.ggroup; // Handle temples nested under deity if (guildGroup == FactionFile.GuildGroups.None && factionData.children.Count > 0) { FactionFile.FactionData firstChild; if (persistentFactionData.GetFactionData(factionData.children[0], out firstChild)) { guildGroup = (FactionFile.GuildGroups)firstChild.ggroup; } } } // Thieves guild is general populace / underworld if (guildGroup == FactionFile.GuildGroups.GeneralPopulace && (FactionFile.SocialGroups)factionData.sgroup == FactionFile.SocialGroups.Underworld) { Debug.Log("Theves Guild."); } Debug.LogFormat("faction id: {0}, social group: {1}, guild: {2}", factionId, (FactionFile.SocialGroups)factionData.sgroup, guildGroup); return(guildGroup); }
public FactionFile.GuildGroups GetGuildGroup(int factionId) { if (factionId == 510) // Shops are marked as FG in faction data, hardcode to none to prevent them acting as FG guildhalls. { return(FactionFile.GuildGroups.None); } PersistentFactionData persistentFactionData = GameManager.Instance.PlayerEntity.FactionData; FactionFile.GuildGroups guildGroup = FactionFile.GuildGroups.None; FactionFile.FactionData factionData; if (persistentFactionData.GetFactionData(factionId, out factionData)) { guildGroup = (FactionFile.GuildGroups)factionData.ggroup; // Handle temples nested under deity if (factionData.children != null && (guildGroup == FactionFile.GuildGroups.None && factionData.children.Count > 0)) { FactionFile.FactionData firstChild; if (persistentFactionData.GetFactionData(factionData.children[0], out firstChild)) { guildGroup = (FactionFile.GuildGroups)firstChild.ggroup; } } } Debug.LogFormat("Got guild for faction id: {0}, social group: {1}, guild: {2}", factionId, (FactionFile.SocialGroups)factionData.sgroup, guildGroup); return(guildGroup); }
/// <summary> /// Imports guild membership records from classic save data. /// </summary> public void ImportMembershipData(List <SaveTreeBaseRecord> guildMembershipRecords, bool vampire = false) { ClearMembershipData(vampire); foreach (GuildMembershipRecord record in guildMembershipRecords) { FactionFile.GuildGroups guildGroup = GetGuildGroup(record.ParsedData.factionID); IGuild guild = CreateGuildObj(guildGroup, record.ParsedData.factionID); if (vampire) { vampMemberships[guildGroup] = guild; } else { memberships[guildGroup] = guild; } if (vampire == GameManager.Instance.PlayerEffectManager.HasVampirism()) { // Player should only join guilds from either his standard or vampire membership lists, not both guild.Join(); } // Set rank and time from parsed data. guild.Rank = record.ParsedData.rank; guild.ImportLastRankChange(record.ParsedData.timeOfLastRankChange); } }
/// <summary> /// Get a random quest for a guild from appropriate subset. /// </summary> public Quest GetGuildQuest(FactionFile.GuildGroups guildGroup, MembershipStatus status, int factionId, int rep) { #if UNITY_EDITOR // Reload every time when in editor LoadQuestLists(); #endif List <QuestData> guildQuests; if (guilds.TryGetValue(guildGroup, out guildQuests)) { // Modifications for Temple dual membership status MembershipStatus tplMemb = (guildGroup == FactionFile.GuildGroups.HolyOrder && status != MembershipStatus.Nonmember) ? MembershipStatus.Member : status; // Underworld guilds don't expel and continue to offer std quests below zero reputation rep = ((guildGroup == FactionFile.GuildGroups.DarkBrotherHood || guildGroup == FactionFile.GuildGroups.GeneralPopulace) && rep < 0) ? 0 : rep; List <QuestData> pool = new List <QuestData>(); foreach (QuestData quest in guildQuests) { if ((status == (MembershipStatus)quest.membership || tplMemb == (MembershipStatus)quest.membership) && (status == MembershipStatus.Nonmember || (rep >= quest.minRep && (!quest.unitWildC || rep < quest.minRep + 10)))) { pool.Add(quest); } } return(SelectQuest(pool, factionId)); } return(null); }
private IGuild CreateGuildObj(FactionFile.GuildGroups guildGroup, int variant = 0) { Type guildType; if (customGuilds.TryGetValue(guildGroup, out guildType)) { return((IGuild)Activator.CreateInstance(guildType)); } else { switch (guildGroup) { case FactionFile.GuildGroups.FightersGuild: return(new FightersGuild()); case FactionFile.GuildGroups.MagesGuild: return(new MagesGuild()); case FactionFile.GuildGroups.HolyOrder: return(new Temple(Temple.GetDivine(variant))); case FactionFile.GuildGroups.KnightlyOrder: return(new KnightlyOrder(KnightlyOrder.GetOrder(variant))); case FactionFile.GuildGroups.GeneralPopulace: return(new ThievesGuild()); case FactionFile.GuildGroups.DarkBrotherHood: return(new DarkBrotherhood()); default: return(null); } } }
/// <summary> /// Retrieve the guild object for the given guild group. /// </summary> /// <param name="guildGroup"></param> /// <param name="buildingFactionId">Specify this to ensure only the temple of matching Divine is returned</param> /// <returns>IGuild object</returns> public IGuild GetGuild(FactionFile.GuildGroups guildGroup, int buildingFactionId = 0) { IGuild guild; memberships.TryGetValue(guildGroup, out guild); if (guildGroup == FactionFile.GuildGroups.HolyOrder && buildingFactionId > 0) { if (guild != null) { Temple.Divines deity = Temple.GetDivine(buildingFactionId); Temple temple = (Temple)guild; if (temple.Deity == deity) { return(guild); } } return(templeNotMember); } else if (guildGroup == FactionFile.GuildGroups.KnightlyOrder && buildingFactionId > 0) { if (guild != null) { KnightlyOrder.Orders order = KnightlyOrder.GetOrder(buildingFactionId); KnightlyOrder knightlyOrder = (KnightlyOrder)guild; if (knightlyOrder.Order == order) { return(guild); } } return(guildNotMember); } return((guild != null) ? guild : guildNotMember); }
public FactionFile.GuildGroups GetGuildGroup(int factionId) { PersistentFactionData persistentFactionData = GameManager.Instance.PlayerEntity.FactionData; FactionFile.GuildGroups guildGroup = FactionFile.GuildGroups.None; FactionFile.FactionData factionData; if (persistentFactionData.GetFactionData(factionId, out factionData)) { guildGroup = (FactionFile.GuildGroups)factionData.ggroup; // Handle temples nested under deity if (factionData.children != null && (guildGroup == FactionFile.GuildGroups.None && factionData.children.Count > 0)) { FactionFile.FactionData firstChild; if (persistentFactionData.GetFactionData(factionData.children[0], out firstChild)) { guildGroup = (FactionFile.GuildGroups)firstChild.ggroup; } } } Debug.LogFormat("Got guild for faction id: {0}, social group: {1}, guild: {2}", factionId, (FactionFile.SocialGroups)factionData.sgroup, guildGroup); return(guildGroup); }
/// <summary> /// Gets a pool of elligible quests for a guild to offer. /// </summary> public List <QuestData> GetGuildQuestPool(FactionFile.GuildGroups guildGroup, MembershipStatus status, int factionId, int rep, int rank) { #if UNITY_EDITOR // Reload every time when in editor LoadQuestLists(); #endif // Create one-time quest list if not already created if (oneTimeQuestsAccepted == null) { oneTimeQuestsAccepted = new List <string>(); } List <QuestData> guildQuests; if (guilds.TryGetValue(guildGroup, out guildQuests)) { // Modifications for Temple dual membership status MembershipStatus tplMemb = (guildGroup == FactionFile.GuildGroups.HolyOrder && status != MembershipStatus.Nonmember) ? MembershipStatus.Member : status; List <QuestData> pool = new List <QuestData>(); foreach (QuestData quest in guildQuests) { if ((status == (MembershipStatus)quest.membership || tplMemb == (MembershipStatus)quest.membership) && (status == MembershipStatus.Nonmember || (quest.minReq < 10 && quest.minReq <= rank) || (quest.minReq >= 10 && quest.minReq <= rep))) { if ((!quest.adult || DaggerfallUnity.Settings.PlayerNudity) && !(quest.oneTime && oneTimeQuestsAccepted.Contains(quest.name))) { pool.Add(quest); } } } return(pool); } return(null); }
/// <summary> /// Get the faction id for a guild group. (used for non-member quests) /// Returns 0 for HolyOrder and KnightlyOrder since they have variants each with different faction ids. /// </summary> public int GetGuildFactionId(FactionFile.GuildGroups guildGroup) { switch (guildGroup) { case FactionFile.GuildGroups.FightersGuild: return(FightersGuild.FactionId); case FactionFile.GuildGroups.MagesGuild: return(MagesGuild.FactionId); case FactionFile.GuildGroups.HolyOrder: case FactionFile.GuildGroups.KnightlyOrder: return(0); case FactionFile.GuildGroups.GeneralPopulace: return(ThievesGuild.FactionId); case FactionFile.GuildGroups.DarkBrotherHood: return(DarkBrotherhood.FactionId); default: Type guildType; if (customGuilds.TryGetValue(guildGroup, out guildType)) { return((int)guildType.GetProperty("FactionId").GetValue(null, null)); } else { return(0); } } }
public bool GetJoinedGuildOfGuildGroup(FactionFile.GuildGroups guildGroup, out IGuild value) { if (memberships.TryGetValue(guildGroup, out value)) { return(true); } return(false); }
public IGuild JoinGuild(FactionFile.GuildGroups guildGroup, int buildingFactionId = 0) { if (memberships.ContainsKey(guildGroup)) { return(memberships[guildGroup]); } return(CreateGuildObj(guildGroup, buildingFactionId)); }
static ItemCollection merchantItems; // Temporary #endregion #region Constructors public DaggerfallGuildServicePopupWindow(IUserInterfaceManager uiManager, StaticNPC npc, FactionFile.GuildGroups guild, GuildServices service) : base(uiManager) { serviceNPC = npc; this.guild = guild; this.service = service; playerEntity = GameManager.Instance.PlayerEntity; // Clear background ParentPanel.BackgroundColor = Color.clear; }
public static bool RegisterCustomGuild(FactionFile.GuildGroups guildGroup, Type guildType) { DaggerfallUnity.LogMessage("RegisterCustomGuild: " + guildGroup, true); if (!customGuilds.ContainsKey(guildGroup)) { customGuilds.Add(guildGroup, guildType); return(true); } return(false); }
/// <summary> /// Retrieve the guild object for the given faction id. /// </summary> public Guild GetGuild(int factionId) { FactionFile.GuildGroups guildGroup = GetGuildGroup(factionId); if (guildGroup == FactionFile.GuildGroups.None) { throw new Exception("Can't find guild for faction id: " + factionId); } return(GetGuild(guildGroup, factionId)); }
//protected new StaticNPC merchantNPC; //protected new PlayerGPS.DiscoveredBuilding buildingData; //protected new RoomRental_v1 rentedRoom; //protected new int daysToRent = 0; //protected new int tradePrice = 0; //bool isCloseWindowDeferred = false; //bool isTalkWindowDeferred = false; //bool isFoodDeferred = false; //bool isDrinksDeferred = false; #endregion #region Constructors public FenceWindow(IUserInterfaceManager uiManager, StaticNPC npc, FactionFile.GuildGroups guildGroup) : base(uiManager) { ParentPanel.BackgroundColor = Color.clear; guildManager = GameManager.Instance.GuildManager; serviceNPC = npc; npcService = GuildNpcServices.TG_SellMagicItems; this.guildGroup = guildGroup; guild = guildManager.GetGuild(guildGroup, buildingFactionId); Debug.Log("guild = " + guild.ToString()); }
private void ParseQuestList(Table questsTable, string questsPath = "") { for (int i = 0; i < questsTable.RowCount; i++) { QuestData questData = new QuestData(); questData.path = questsPath; string minRep = questsTable.GetValue("minRep", i); if (minRep.EndsWith("X")) { questData.unitWildC = true; minRep = minRep.Replace("X", "0"); } int d = 0; if (int.TryParse(minRep, out d)) { questData.name = questsTable.GetValue("name", i); questData.group = questsTable.GetValue("group", i); questData.membership = questsTable.GetValue("membership", i)[0]; questData.minRep = d; // Is the group a guild group? if (Enum.IsDefined(typeof(FactionFile.GuildGroups), questData.group)) { FactionFile.GuildGroups guildGroup = (FactionFile.GuildGroups)Enum.Parse(typeof(FactionFile.GuildGroups), questData.group); List <QuestData> guildQuests; if (!guilds.TryGetValue(guildGroup, out guildQuests)) { guildQuests = new List <QuestData>(); guilds.Add(guildGroup, guildQuests); } guildQuests.Add(questData); } // Is the group a social group? else if (Enum.IsDefined(typeof(FactionFile.SocialGroups), questData.group)) { FactionFile.SocialGroups socialGroup = (FactionFile.SocialGroups)Enum.Parse(typeof(FactionFile.SocialGroups), questData.group); List <QuestData> socialQuests; if (!social.TryGetValue(socialGroup, out socialQuests)) { socialQuests = new List <QuestData>(); social.Add(socialGroup, socialQuests); } socialQuests.Add(questData); } // Is this a quest initialised when a new game is started? else if (questData.group == InitAtGameStart) { init.Add(questData); } // else TODO other groups } } }
/// <summary> /// Retrieve the guild object for the given faction id. /// </summary> public Guild GetGuild(int factionId) { FactionFile.GuildGroups guildGroup = GetGuildGroup(factionId); if (guildGroup == FactionFile.GuildGroups.None) { return(guildNotMember); } else { return(GetGuild(guildGroup, factionId)); } }
/// <summary> /// Imports guild membership records from classic save data. /// </summary> public void ImportMembershipData(List <SaveTreeBaseRecord> guildMembershipRecords) { ClearMembershipData(); foreach (GuildMembershipRecord record in guildMembershipRecords) { FactionFile.GuildGroups guildGroup = GetGuildGroup(record.ParsedData.factionID); IGuild guild = CreateGuildObj(guildGroup, record.ParsedData.factionID); AddMembership(guildGroup, guild); // Set rank and time from parsed data. guild.Rank = record.ParsedData.rank; guild.ImportLastRankChange(record.ParsedData.timeOfLastRankChange); } }
public FlynsarmyGuildServicePopupWindow(IUserInterfaceManager uiManager, StaticNPC npc, FactionFile.GuildGroups guildGroup, int buildingFactionId) : base(uiManager, npc, guildGroup, buildingFactionId) { playerEntity = GameManager.Instance.PlayerEntity; guildManager = GameManager.Instance.GuildManager; serviceNPC = npc; npcService = (GuildNpcServices)npc.Data.factionID; currentService = Services.GetService(npcService); Debug.Log("NPC offers guild service: " + currentService.ToString()); this.guildGroup = guildGroup; this.buildingFactionId = buildingFactionId; guild = guildManager.GetGuild(guildGroup, buildingFactionId); }
public void RemoveMembership(Guild guild) { FactionFile.GuildGroups guildGroup = FactionFile.GuildGroups.None; foreach (FactionFile.GuildGroups group in memberships.Keys) { if (memberships[group] == guild) { guildGroup = group; break; } } if (guildGroup != FactionFile.GuildGroups.None) { memberships.Remove(guildGroup); } }
public static string Execute(params string[] args) { if (args.Length == 0) { return(HelpCommand.Execute(name)); } else { GuildManager guildManager = GameManager.Instance.GuildManager; // Is the group a guild group? if (Enum.IsDefined(typeof(FactionFile.GuildGroups), args[0])) { FactionFile.GuildGroups guildGroup = (FactionFile.GuildGroups)Enum.Parse(typeof(FactionFile.GuildGroups), args[0]); if (guildManager.HasJoined(guildGroup)) { return("Already a member."); } else if (guildGroup == FactionFile.GuildGroups.HolyOrder || guildGroup == FactionFile.GuildGroups.KnightlyOrder) { if (args.Length > 1) { int factionId = int.Parse(args[1]); IGuild guild = guildManager.JoinGuild(guildGroup, factionId); guildManager.AddMembership(guildGroup, guild); return("Guild joined."); } else { return("Need a faction id for temples & knightly orders."); } } else { IGuild guild = guildManager.JoinGuild(guildGroup); guildManager.AddMembership(guildGroup, guild); return("Guild " + guildGroup.ToString() + " joined."); } } else { return("Not a recognised guild group, see FactionFile.GuildGroups enum."); } } }
/// <summary> /// Retrieve the guild object for the given faction id. /// </summary> public IGuild GetGuild(int factionId) { try { FactionFile.GuildGroups guildGroup = GetGuildGroup(factionId); if (guildGroup == FactionFile.GuildGroups.None) { return(guildNotMember); } else { return(GetGuild(guildGroup, factionId)); } // Catch erroneous faction data entries. (e.g. #91) } catch (ArgumentOutOfRangeException e) { DaggerfallUnity.LogMessage(e.Message, true); return(guildNotMember); } }
public static string Execute(params string[] args) { if (args.Length != 2) { return(HelpCommand.Execute(name)); } else { GuildManager guildManager = GameManager.Instance.GuildManager; PlayerEntity playerEntity = GameManager.Instance.PlayerEntity; // Is the group a guild group? if (Enum.IsDefined(typeof(FactionFile.GuildGroups), args[0])) { FactionFile.GuildGroups guildGroup = (FactionFile.GuildGroups)Enum.Parse(typeof(FactionFile.GuildGroups), args[0]); if (guildManager.HasJoined(guildGroup)) { int newRank = int.Parse(args[1]); if (newRank > 0 && newRank < 10) { IGuild guild = guildManager.GetGuild(guildGroup); int rep = guild.GetReputation(playerEntity); int newRep = Guild.rankReqReputation[newRank]; playerEntity.FactionData.ChangeReputation(guild.GetFactionId(), newRep - rep, true); guild.Rank = newRank; return("Rank & reputation updated."); } else { return("Rank must be between 1 and 9."); } } else { return("Not a member of that guild."); } } else { return("Not a recognised guild group, see FactionFile.GuildGroups enum."); } } }
public DaggerfallGuildServicePopupWindow(IUserInterfaceManager uiManager, StaticNPC npc, FactionFile.GuildGroups guildGroup, int buildingFactionId) : base(uiManager) { playerEntity = GameManager.Instance.PlayerEntity; guildManager = GameManager.Instance.GuildManager; serviceNPC = npc; npcService = (GuildNpcServices)npc.Data.factionID; service = Services.GetService(npcService); Debug.Log("NPC offers guild service: " + service.ToString()); this.guildGroup = guildGroup; this.buildingFactionId = buildingFactionId; guild = guildManager.GetGuild(guildGroup, buildingFactionId); // Clear background ParentPanel.BackgroundColor = Color.clear; }
/// <summary> /// Get a random quest for a guild from appropriate subset. /// </summary> public Quest GetGuildQuest(FactionFile.GuildGroups guildGroup, MembershipStatus status, int factionId, int rep) { #if UNITY_EDITOR // Reload every time when in editor LoadQuestLists(); #endif List <QuestData> guildQuests; if (guilds.TryGetValue(guildGroup, out guildQuests)) { MembershipStatus tplMemb = (guildGroup == FactionFile.GuildGroups.HolyOrder && status != MembershipStatus.Nonmember) ? MembershipStatus.Member : status; List <QuestData> pool = new List <QuestData>(); foreach (QuestData quest in guildQuests) { if ((status == (MembershipStatus)quest.membership || tplMemb == (MembershipStatus)quest.membership) && (rep >= quest.minRep || status == MembershipStatus.Nonmember) && (!quest.unitWildC || rep < quest.minRep + 10)) { pool.Add(quest); } } Debug.Log("Quest pool has " + pool.Count); // Choose random quest from pool and try to parse it if (pool.Count > 0) { QuestData questData = pool[UnityEngine.Random.Range(0, pool.Count)]; try { return(LoadQuest(questData, factionId)); } catch (Exception ex) { // Log exception DaggerfallUnity.LogMessage("Exception during quest compile: " + ex.Message, true); } } } return(null); }
public void AddMembership(FactionFile.GuildGroups guildGroup, IGuild guild) { guild.Join(); memberships[guildGroup] = guild; }
/// <summary> /// Get a random quest for a guild from appropriate subset. /// </summary> public Quest GetGuildQuest(FactionFile.GuildGroups guildGroup, MembershipStatus status, int factionId, int rep, int rank) { List <QuestData> pool = GetGuildQuestPool(guildGroup, status, factionId, rep, rank); return(SelectQuest(pool, factionId)); }
// Player has clicked on a static NPC void StaticNPCClick(StaticNPC npc) { // Do nothing if no NPC passed or fade in progress // Quest machine does not tick while fading (to prevent things happening while screen is black) // But this can result in player clicking a quest NPC before quest state ticks after load and breaking quest if (!npc || DaggerfallUI.Instance.FadeInProgress) { return; } // Store the NPC just clicked in quest engine QuestMachine.Instance.LastNPCClicked = npc; // Check if this NPC is a quest giver and show temp guild quest popup // This will be changed later when temp guild system replaced with real thing if (QuestorCheck(npc)) { return; } // Handle quest NPC click and exit if linked to a Person resource QuestResourceBehaviour questResourceBehaviour = npc.gameObject.GetComponent <QuestResourceBehaviour>(); if (questResourceBehaviour) { if (TriggerQuestResourceBehaviourClick(questResourceBehaviour)) { return; } } // Do nothing further if a quest is actively listening on this individual NPC // This NPC not reserved as a Person resource but has a WhenNpcIsAvailable action listening on it // This effectively shuts down several named NPCs during main quest, but not trivial to otherwise determine appropriate access // TODO: Try to find a good solution for releasing listeners when the owning action is disabled if (QuestMachine.Instance.HasFactionListener(npc.Data.factionID)) { return; } // Get faction data. FactionFile.FactionData factionData; if (playerEnterExit.IsPlayerInsideBuilding && GameManager.Instance.PlayerEntity.FactionData.GetFactionData(npc.Data.factionID, out factionData)) { UserInterfaceManager uiManager = DaggerfallUI.Instance.UserInterfaceManager; Debug.LogFormat("faction id: {0}, social group: {1}, guild: {2}", npc.Data.factionID, (FactionFile.SocialGroups)factionData.sgroup, (FactionFile.GuildGroups)factionData.ggroup); // Check if the NPC offers a guild service. if (Enum.IsDefined(typeof(GuildServices), npc.Data.factionID)) { FactionFile.GuildGroups guild = (FactionFile.GuildGroups)factionData.ggroup; GuildServices service = (GuildServices)npc.Data.factionID; Debug.Log("NPC offers guild service: " + service.ToString()); uiManager.PushWindow(new DaggerfallGuildServicePopupWindow(uiManager, npc, guild, service)); } // Check if this NPC is a merchant. else if ((FactionFile.SocialGroups)factionData.sgroup == FactionFile.SocialGroups.Merchants) { // Shop? if (RMBLayout.IsShop(playerEnterExit.BuildingDiscoveryData.buildingType)) { if (RMBLayout.IsRepairShop(playerEnterExit.BuildingDiscoveryData.buildingType)) { uiManager.PushWindow(new DaggerfallMerchantRepairPopupWindow(uiManager, npc)); } else { uiManager.PushWindow(new DaggerfallMerchantServicePopupWindow(uiManager, npc, DaggerfallMerchantServicePopupWindow.Services.Sell)); } } // Bank? else if (playerEnterExit.BuildingDiscoveryData.buildingType == DFLocation.BuildingTypes.Bank) { uiManager.PushWindow(new DaggerfallMerchantServicePopupWindow(uiManager, npc, DaggerfallMerchantServicePopupWindow.Services.Banking)); } // Tavern? else if (playerEnterExit.BuildingDiscoveryData.buildingType == DFLocation.BuildingTypes.Tavern) { // for now only talk to all npc in taverns - TODO: add tavern option in here GameManager.Instance.TalkManager.TalkToStaticNPC(npc); } } // TODO - more checks for npc social types? else // if no special handling had to be done for npc with social group of type merchant: talk to the static npc { GameManager.Instance.TalkManager.TalkToStaticNPC(npc); } } else // if no special handling had to be done (all remaining npcs of the remaining social groups not handled explicitely above): default is talk to the static npc { // with one exception: guards if (npc.Data.billboardArchiveIndex == 183 && npc.Data.billboardRecordIndex == 3) // detect if clicked guard (comment Nystul: didn't find a better mechanism than billboard texture check) { return; // if guard was clicked don't open talk window } // otherwise open talk window GameManager.Instance.TalkManager.TalkToStaticNPC(npc); } }
public bool HasJoined(FactionFile.GuildGroups guildGroup) { return(memberships.ContainsKey(guildGroup)); }