예제 #1
0
        /// <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);
        }
예제 #2
0
            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()));
            }