示例#1
0
        public static void AdjustFavor(this CharacterInstance ch, DeityFieldTypes field, int mod)
        {
            if (ch.IsNpc() || ch.PlayerData.CurrentDeity == null)
            {
                return;
            }

            int       oldfavor = ch.PlayerData.Favor;
            DeityData deity    = ch.PlayerData.CurrentDeity;

            if (((ch.CurrentAlignment - deity.Alignment) > 650) ||
                ((ch.CurrentAlignment - deity.Alignment) < -650) &&
                (deity.Alignment != 0))
            {
                ch.PlayerData.Favor -= 2;
                ch.PlayerData.Favor  = ch.PlayerData.Favor.GetNumberThatIsBetween(-2500, 2500);

                deity.UpdateCharacterBits(ch);
                ch.CheckForExtremeFavor(oldfavor);
            }
            else
            {
                ch.PlayerData.Favor += deity.FuzzifyFavor(field, mod < 1 ? 1 : mod);
                ch.PlayerData.Favor  = ch.PlayerData.Favor.GetNumberThatIsBetween(-2500, 2500);
            }
        }
示例#2
0
        private static ApplyTypes GetApplyTypeForDeity(DeityData deityData)
        {
            switch (deityData.ObjStat)
            {
            case 0:
                return(ApplyTypes.Strength);

            case 1:
                return(ApplyTypes.Intelligence);

            case 2:
                return(ApplyTypes.Wisdom);

            case 3:
                return(ApplyTypes.Constitution);

            case 4:
                return(ApplyTypes.Dexterity);

            case 5:
                return(ApplyTypes.Charisma);

            case 6:
                return(ApplyTypes.Luck);
            }
            return(ApplyTypes.None);
        }
示例#3
0
        public static void CheckForExtremeFavor(this CharacterInstance ch, int oldfavor)
        {
            DeityData deity = ch.PlayerData.CurrentDeity;

            if ((oldfavor > deity.AffectedNum && ch.PlayerData.Favor <= deity.AffectedNum) ||
                (oldfavor > deity.ElementNum && ch.PlayerData.Favor <= deity.Element) ||
                (oldfavor < deity.SusceptNum && ch.PlayerData.Favor >= deity.SusceptNum))
            {
                ch.update_aris();
            }
        }
示例#4
0
        public static DeityData LuaCreateDeity(string name)
        {
            var newDeity = new DeityData(_dbManager.GenerateNewId <DeityData>(), name);

            _luaManager.Proxy.CreateTable("deity");
            AddLastObject(newDeity);
            _dbManager.AddToRepository(newDeity);

            _logManager.Boot("Deity '{0}' created", name);
            return(newDeity);
        }
示例#5
0
 private static bool WillDeityDenyPlayerGender(CharacterInstance ch, DeityData deity)
 {
     return(deity.Gender != -1 && (Common.EnumerationExtensions.GetEnum <GenderTypes>(deity.Gender) != ch.Gender));
 }
示例#6
0
 private static bool WillDeityDenyPlayerRace(CharacterInstance ch, DeityData deity)
 {
     return(deity.Race != -1 && deity.Race2 != -1 &&
            (Common.EnumerationExtensions.GetEnum <RaceTypes>(deity.Race) != ch.CurrentRace) &&
            (Common.EnumerationExtensions.GetEnum <RaceTypes>(deity.Race2) != ch.CurrentRace));
 }
示例#7
0
 private static bool WillDeityDenyPlayerClass(CharacterInstance ch, DeityData deity)
 {
     return(deity.Class != -1 && (Common.EnumerationExtensions.GetEnum <ClassTypes>(deity.Class) != ch.CurrentClass));
 }