Exemplo n.º 1
0
 public ArmorExtraData(Int16 DamageResistance, ArmorFlags Flags, Single DamageThreshold, Byte[] Unknown)
 {
     this.DamageResistance = DamageResistance;
     this.Flags            = Flags;
     this.DamageThreshold  = DamageThreshold;
     this.Unknown          = Unknown;
 }
Exemplo n.º 2
0
 public ArmorExtraData(string Tag = null)
     : base(Tag)
 {
     DamageResistance = new Int16();
     Flags            = new ArmorFlags();
     DamageThreshold  = new Single();
     Unknown          = new byte[4];
 }
Exemplo n.º 3
0
 /// <summary>
 /// Determines if an armor type is forbidden.
 /// </summary>
 /// <param name="flags">ArmorFlags to test.</param>
 /// <returns>True if armor is forbidden.</returns>
 public bool IsArmorForbidden(ArmorFlags flags)
 {
     return(((ForbiddenArmors & flags) == flags) ? true : false);
 }
Exemplo n.º 4
0
        /// <summary>
        /// Reads RawData into structured data.
        /// </summary>
        public void StructureData(CFGData cfg)
        {
            this.Name = cfg.Name;

            this.Strength     = cfg.Attributes[0];
            this.Intelligence = cfg.Attributes[1];
            this.Willpower    = cfg.Attributes[2];
            this.Agility      = cfg.Attributes[3];
            this.Endurance    = cfg.Attributes[4];
            this.Personality  = cfg.Attributes[5];
            this.Speed        = cfg.Attributes[6];
            this.Luck         = cfg.Attributes[7];

            this.PrimarySkill1 = (Skills)cfg.PrimarySkill1;
            this.PrimarySkill2 = (Skills)cfg.PrimarySkill2;
            this.PrimarySkill3 = (Skills)cfg.PrimarySkill3;
            this.MajorSkill1   = (Skills)cfg.MajorSkill1;
            this.MajorSkill2   = (Skills)cfg.MajorSkill2;
            this.MajorSkill3   = (Skills)cfg.MajorSkill3;
            this.MinorSkill1   = (Skills)cfg.MinorSkill1;
            this.MinorSkill2   = (Skills)cfg.MinorSkill2;
            this.MinorSkill3   = (Skills)cfg.MinorSkill3;
            this.MinorSkill4   = (Skills)cfg.MinorSkill4;
            this.MinorSkill5   = (Skills)cfg.MinorSkill5;
            this.MinorSkill6   = (Skills)cfg.MinorSkill6;

            this.HitPointsPerLevel = cfg.HitPointsPerLevel;

            float value = (cfg.AdvancementMultiplier >> 16) + ((cfg.AdvancementMultiplier & 0xffff)) / 65536f;

            try
            {
                this.AdvancementMultiplier = float.Parse(string.Format("{0:0.00}", value), NumberStyles.Float, CultureInfo.InvariantCulture);
            }
            catch
            {
                this.AdvancementMultiplier = value;
            }

            this.Paralysis = GetTolerance(cfg, EffectFlags.Paralysis);
            this.Magic     = GetTolerance(cfg, EffectFlags.Magic);
            this.Poison    = GetTolerance(cfg, EffectFlags.Poison);
            this.Fire      = GetTolerance(cfg, EffectFlags.Fire);
            this.Frost     = GetTolerance(cfg, EffectFlags.Frost);
            this.Shock     = GetTolerance(cfg, EffectFlags.Shock);
            this.Disease   = GetTolerance(cfg, EffectFlags.Disease);

            this.ForbiddenMaterials     = (MaterialFlags)cfg.ForbiddenMaterialsFlags;
            this.ForbiddenShields       = (ShieldFlags)((cfg.WeaponArmorShieldsBitfield >> 9) & 0x0f);
            this.ForbiddenArmors        = (ArmorFlags)((cfg.WeaponArmorShieldsBitfield >> 6) & 0x07);
            this.ForbiddenProficiencies = (ProficiencyFlags)(cfg.WeaponArmorShieldsBitfield & 0x3f);
            this.ExpertProficiencies    = (ProficiencyFlags)((cfg.WeaponArmorShieldsBitfield >> 16) & 0x3f);

            this.ShortBlades    = GetProficiency(ProficiencyFlags.ShortBlades);
            this.LongBlades     = GetProficiency(ProficiencyFlags.LongBlades);
            this.HandToHand     = GetProficiency(ProficiencyFlags.HandToHand);
            this.Axes           = GetProficiency(ProficiencyFlags.Axes);
            this.BluntWeapons   = GetProficiency(ProficiencyFlags.BluntWeapons);
            this.MissileWeapons = GetProficiency(ProficiencyFlags.MissileWeapons);

            this.SpellPointMultiplier      = GetSpellPointMultiplier(cfg);
            this.SpellPointMultiplierValue = GetSpellPointMultiplierValue(this.SpellPointMultiplier);

            this.DarknessPoweredMagery = (DarknessMageryFlags)((cfg.AbilityFlagsAndSpellPointsBitfield & 0x300) >> 8);
            this.LightPoweredMagery    = (LightMageryFlags)((cfg.AbilityFlagsAndSpellPointsBitfield & 0x00C0) >> 6);

            this.SpellAbsorption = (SpellAbsorptionFlags)cfg.SpellAbsorptionFlags;

            this.NoRegenSpellPoints = HasSpecialAbility(cfg, SpecialAbilityFlags.NoRegenSpellPoints);

            this.AcuteHearing   = HasSpecialAbility(cfg, SpecialAbilityFlags.AcuteHearing);
            this.Athleticism    = HasSpecialAbility(cfg, SpecialAbilityFlags.Athleticism);
            this.AdrenalineRush = HasSpecialAbility(cfg, SpecialAbilityFlags.AdrenalineRush);

            this.Regeneration = (RegenerationFlags)cfg.Regeneration;
            this.RapidHealing = (RapidHealingFlags)cfg.RapidHealing;

            this.DamageFromSunlight   = HasSpecialAbility(cfg, SpecialAbilityFlags.SunDamage);
            this.DamageFromHolyPlaces = HasSpecialAbility(cfg, SpecialAbilityFlags.HolyDamage);

            this.UndeadAttackModifier   = GetAttackModifier(cfg, EnemyGroups.Undead);
            this.DaedraAttackModifier   = GetAttackModifier(cfg, EnemyGroups.Daedra);
            this.HumanoidAttackModifier = GetAttackModifier(cfg, EnemyGroups.Humanoid);
            this.AnimalsAttackModifier  = GetAttackModifier(cfg, EnemyGroups.Animals);
        }
Exemplo n.º 5
0
 public ItemInstance(String instanceName, String name, int[] protection, int[] damages, int value, MainFlags mainFlags, Flags flags, ArmorFlags armorFlags, DamageTypes dmgType, int totalDamage, int range, String visual, String visual_Change)
     : this(instanceName, name, null, protection, damages, value, mainFlags, flags, armorFlags, dmgType, totalDamage, range, visual, visual_Change, null, 0)
 {
 }
Exemplo n.º 6
0
        public ItemInstance(String instanceName, String name, String scemeName, int[] protection, int[] damages, int value, MainFlags mainFlags, Flags flags, ArmorFlags armorFlags, DamageTypes dmgType, int totalDamage, int range, String visual, String visual_Change, String effect, int visualSkin, MaterialType types, ItemInstance munition, bool keyInstance, bool torch, bool torchBurning, bool torchBurned, bool gold)
            : this(instanceName)
        {
            itemInstances.Name          = name;
            itemInstances.Protection    = protection;
            itemInstances.Damages       = damages;
            itemInstances.Value         = value;
            itemInstances.MainFlags     = mainFlags;
            itemInstances.Flags         = flags;
            itemInstances.Wear          = armorFlags;
            itemInstances.Visual        = visual;
            itemInstances.Visual_Change = visual_Change;
            itemInstances.Visual_skin   = visualSkin;
            itemInstances.ScemeName     = scemeName;
            itemInstances.Effect        = effect;
            if (munition != null)
            {
                itemInstances.Munition = munition.itemInstances;
            }

            itemInstances.DamageType    = dmgType;
            itemInstances.Range         = range;
            itemInstances.TotalDamage   = totalDamage;
            itemInstances.isKeyInstance = keyInstance;
            IsTorch        = torch;
            IsTorchBurned  = torchBurned;
            IsTorchBurning = torchBurning;
            IsGold         = gold;

            CreateItemInstance();
        }
Exemplo n.º 7
0
 public ItemInstance(String instanceName, String name, String scemeName, int[] protection, int[] damages, int value, MainFlags mainFlags, Flags flags, ArmorFlags armorFlags, DamageTypes dmgType, int totalDamage, int range, String visual, String visual_Change, String effect, int visualSkin, MaterialType types, ItemInstance munition)
     : this(instanceName, name, scemeName, protection, damages, value, mainFlags, flags, armorFlags, dmgType, totalDamage, range, visual, visual_Change, effect, visualSkin, types, munition, false, false, false, false, false)
 {
 }
        /// <summary>
        /// Reads RawData into structured data.
        /// </summary>
        public void StructureData(CFGData cfg)
        {
            this.Name = cfg.Name;

            this.Strength = cfg.Attributes[0];
            this.Intelligence = cfg.Attributes[1];
            this.Willpower = cfg.Attributes[2];
            this.Agility = cfg.Attributes[3];
            this.Endurance = cfg.Attributes[4];
            this.Personality = cfg.Attributes[5];
            this.Speed = cfg.Attributes[6];
            this.Luck = cfg.Attributes[7];

            this.PrimarySkill1 = (Skills)cfg.PrimarySkill1;
            this.PrimarySkill2 = (Skills)cfg.PrimarySkill2;
            this.PrimarySkill3 = (Skills)cfg.PrimarySkill3;
            this.MajorSkill1 = (Skills)cfg.MajorSkill1;
            this.MajorSkill2 = (Skills)cfg.MajorSkill2;
            this.MajorSkill3 = (Skills)cfg.MajorSkill3;
            this.MinorSkill1 = (Skills)cfg.MinorSkill1;
            this.MinorSkill2 = (Skills)cfg.MinorSkill2;
            this.MinorSkill3 = (Skills)cfg.MinorSkill3;
            this.MinorSkill4 = (Skills)cfg.MinorSkill4;
            this.MinorSkill5 = (Skills)cfg.MinorSkill5;
            this.MinorSkill6 = (Skills)cfg.MinorSkill6;

            this.HitPointsPerLevelOrMonsterLevel = cfg.HitPointsPerLevelOrMonsterLevel;

            float value = (cfg.AdvancementMultiplier >> 16) + ((cfg.AdvancementMultiplier & 0xffff)) / 65536f;
            try
            {
                this.AdvancementMultiplier = float.Parse(string.Format("{0:0.00}", value), NumberStyles.Float, CultureInfo.InvariantCulture);
            }
            catch
            {
                this.AdvancementMultiplier = value;
            }

            this.Paralysis = GetTolerance(cfg, EffectFlags.Paralysis);
            this.Magic = GetTolerance(cfg, EffectFlags.Magic);
            this.Poison = GetTolerance(cfg, EffectFlags.Poison);
            this.Fire = GetTolerance(cfg, EffectFlags.Fire);
            this.Frost = GetTolerance(cfg, EffectFlags.Frost);
            this.Shock = GetTolerance(cfg, EffectFlags.Shock);
            this.Disease = GetTolerance(cfg, EffectFlags.Disease);

            this.ForbiddenMaterials = (MaterialFlags)cfg.ForbiddenMaterialsFlags;
            this.ForbiddenShields = (ShieldFlags)((cfg.WeaponArmorShieldsBitfield >> 9) & 0x0f);
            this.ForbiddenArmors = (ArmorFlags)((cfg.WeaponArmorShieldsBitfield >> 6) & 0x07);
            this.ForbiddenProficiencies = (ProficiencyFlags)(cfg.WeaponArmorShieldsBitfield & 0x3f);
            this.ExpertProficiencies = (ProficiencyFlags)((cfg.WeaponArmorShieldsBitfield >> 16) & 0x3f);

            this.ShortBlades = GetProficiency(ProficiencyFlags.ShortBlades);
            this.LongBlades = GetProficiency(ProficiencyFlags.LongBlades);
            this.HandToHand = GetProficiency(ProficiencyFlags.HandToHand);
            this.Axes = GetProficiency(ProficiencyFlags.Axes);
            this.BluntWeapons = GetProficiency(ProficiencyFlags.BluntWeapons);
            this.MissileWeapons = GetProficiency(ProficiencyFlags.MissileWeapons);

            this.SpellPointMultiplier = GetSpellPointMultiplier(cfg);
            this.SpellPointMultiplierValue = GetSpellPointMultiplierValue(this.SpellPointMultiplier);

            this.DarknessPoweredMagery = (DarknessMageryFlags)((cfg.AbilityFlagsAndSpellPointsBitfield & 0x300) >> 8);
            this.LightPoweredMagery = (LightMageryFlags)((cfg.AbilityFlagsAndSpellPointsBitfield & 0x00C0) >> 6);

            this.SpellAbsorption = (SpellAbsorptionFlags)cfg.SpellAbsorptionFlags;

            this.NoRegenSpellPoints = HasSpecialAbility(cfg, SpecialAbilityFlags.NoRegenSpellPoints);

            this.AcuteHearing = HasSpecialAbility(cfg, SpecialAbilityFlags.AcuteHearing);
            this.Athleticism = HasSpecialAbility(cfg, SpecialAbilityFlags.Athleticism);
            this.AdrenalineRush = HasSpecialAbility(cfg, SpecialAbilityFlags.AdrenalineRush);

            this.Regeneration = (RegenerationFlags)cfg.Regeneration;
            this.RapidHealing = (RapidHealingFlags)cfg.RapidHealing;

            this.DamageFromSunlight = HasSpecialAbility(cfg, SpecialAbilityFlags.SunDamage);
            this.DamageFromHolyPlaces = HasSpecialAbility(cfg, SpecialAbilityFlags.HolyDamage);

            this.UndeadAttackModifier = GetAttackModifier(cfg, EnemyGroups.Undead);
            this.DaedraAttackModifier = GetAttackModifier(cfg, EnemyGroups.Daedra);
            this.HumanoidAttackModifier = GetAttackModifier(cfg, EnemyGroups.Humanoid);
            this.AnimalsAttackModifier = GetAttackModifier(cfg, EnemyGroups.Animals);
        }
 /// <summary>
 /// Determines if an armor type is forbidden.
 /// </summary>
 /// <param name="flags">ArmorFlags to test.</param>
 /// <returns>True if armor is forbidden.</returns>
 public bool IsArmorForbidden(ArmorFlags flags)
 {
     return ((ForbiddenArmors & flags) == flags) ? true : false;
 }