/// <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 override string God() { int factionId = 0; // Get the temple faction ID if player is inside a temple if (GameManager.Instance.IsPlayerInsideBuilding && GameManager.Instance.PlayerEnterExit.BuildingType == DFLocation.BuildingTypes.Temple) { factionId = (int)GameManager.Instance.PlayerEnterExit.FactionID; } else { factionId = GameManager.Instance.PlayerGPS.GetTempleOfCurrentRegion(); } if (factionId == 0) { // Classic returns "BLANK" if no temple is found, here we return a random deity name const int minGodID = 21; const int maxGodID = 35; FactionFile.FactionIDs god = (FactionFile.FactionIDs)UnityEngine.Random.Range(minGodID, maxGodID + 1); return(god.ToString()); } Temple.Divines divine = Temple.GetDivine(factionId); return(TextManager.Instance.GetLocalizedText(divine.ToString())); }