ACR_Items.Pricing.GetIsAmmunition C# (CSharp) Метод

GetIsAmmunition() публичный статический Метод

public static GetIsAmmunition ( int itemType ) : bool
itemType int
Результат bool
        public static bool GetIsAmmunition(int itemType)
        {
            if (Ammunition.Contains(itemType))
            {
                return true;
            }
            return false;
        }

Usage Example

        public static int NewWeapon(CLRScriptBase script, int maxValue)
        {
            int itemType    = SelectWeaponType(ref maxValue);
            int weaponValue = Pricing.BaseItemValues[itemType];

            maxValue -= weaponValue;
            generateId++;
            uint weapon = script.CreateItemOnObject(WeaponResrefs[itemType], script.OBJECT_SELF, 1, WeaponResrefs[itemType] + generateId.ToString(), FALSE);

            #region About +1.4 weapons
            if (maxValue > 4220)
            {
                if (Generation.rand.Next(10) > 0)
                {
                    if (Pricing.GetIsAmmunition(itemType))
                    {
                        if (itemType == BASE_ITEM_BULLET)
                        {
                            script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_BLUDGEONING, 1), weapon, 0.0f);
                        }
                        else
                        {
                            script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_PIERCING, 1), weapon, 0.0f);
                        }
                    }
                    else
                    {
                        script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyEnhancementBonus(1), weapon, 0.0f);
                    }
                    switch (Generation.rand.Next(7))
                    {
                    case 0:
                        script.SetFirstName(weapon, "Flametouched " + script.GetName(weapon) + " +1");
                        script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_FIRE, 1), weapon, 0.0f);
                        if (Pricing.GetIsAmmunition(itemType))
                        {
                            weaponValue += 1600;
                        }
                        else
                        {
                            weaponValue += 4220;
                        }
                        break;

                    case 1:
                        script.SetFirstName(weapon, "Frosttouched " + script.GetName(weapon) + " +1");
                        script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_COLD, 1), weapon, 0.0f);
                        if (Pricing.GetIsAmmunition(itemType))
                        {
                            weaponValue += 1600;
                        }
                        else
                        {
                            weaponValue += 4220;
                        }
                        break;

                    case 3:
                        script.SetFirstName(weapon, "Acidtouched " + script.GetName(weapon) + " +1");
                        script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_ACID, 1), weapon, 0.0f);
                        if (Pricing.GetIsAmmunition(itemType))
                        {
                            weaponValue += 1600;
                        }
                        else
                        {
                            weaponValue += 4220;
                        }
                        break;

                    case 4:
                        script.SetFirstName(weapon, "Sparktouched " + script.GetName(weapon) + " +1");
                        script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_ELECTRICAL, 1), weapon, 0.0f);
                        if (Pricing.GetIsAmmunition(itemType))
                        {
                            weaponValue += 1600;
                        }
                        else
                        {
                            weaponValue += 4220;
                        }
                        break;

                    case 5:
                        script.SetFirstName(weapon, "Humming " + script.GetName(weapon) + " +1");
                        script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_SONIC, 1), weapon, 0.0f);
                        if (Pricing.GetIsAmmunition(itemType))
                        {
                            weaponValue += 1600;
                        }
                        else
                        {
                            weaponValue += 4220;
                        }
                        break;

                    case 6:
                        script.SetFirstName(weapon, "Blessed " + script.GetName(weapon) + " +1");
                        script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyDamageBonusVsAlign(IP_CONST_ALIGNMENTGROUP_EVIL, IP_CONST_DAMAGETYPE_MAGICAL, 1), weapon, 0.0f);
                        if (Pricing.GetIsAmmunition(itemType))
                        {
                            weaponValue += 1500;
                        }
                        else
                        {
                            weaponValue += 3945;
                        }
                        break;
                    }
                }
                else
                {
                    script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyEnhancementBonus(1), weapon, 0.0f);
                    script.SetFirstName(weapon, script.GetName(weapon) + " +1");
                    weaponValue += 2300;
                }
            }
            #endregion

            #region Simple Enchantment, +1
            else if (maxValue > 2300)
            {
                if (Generation.rand.Next(10) > 0)
                {
                    script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyEnhancementBonus(1), weapon, 0.0f);
                    script.SetFirstName(weapon, script.GetName(weapon) + " +1");
                    weaponValue += 2300;
                }
                else
                {
                    script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyAttackBonus(1), weapon, 0.0f);
                    script.SetFirstName(weapon, "Masterwork " + script.GetName(weapon));
                    weaponValue += 300;
                }
            }
            #endregion

            #region Simple Bonus Damage, < +1 equiv
            else if (maxValue > 1100)
            {
                if (Generation.rand.Next(10) > 0)
                {
                    script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyAttackBonus(1), weapon, 0.0f);
                    switch (Generation.rand.Next(7))
                    {
                    case 0:
                        script.SetFirstName(weapon, "Flametouched " + script.GetName(weapon));
                        script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_FIRE, 1), weapon, 0.0f);
                        weaponValue += 1100;
                        break;

                    case 1:
                        script.SetFirstName(weapon, "Frosttouched " + script.GetName(weapon));
                        script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_COLD, 1), weapon, 0.0f);
                        weaponValue += 1100;
                        break;

                    case 3:
                        script.SetFirstName(weapon, "Acidtouched " + script.GetName(weapon));
                        script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_ACID, 1), weapon, 0.0f);
                        weaponValue += 1100;
                        break;

                    case 4:
                        script.SetFirstName(weapon, "Sparktouched " + script.GetName(weapon));
                        script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_ELECTRICAL, 1), weapon, 0.0f);
                        weaponValue += 1100;
                        break;

                    case 5:
                        script.SetFirstName(weapon, "Humming " + script.GetName(weapon));
                        script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_SONIC, 1), weapon, 0.0f);
                        weaponValue += 1100;
                        break;

                    case 6:
                        script.SetFirstName(weapon, "Blessed " + script.GetName(weapon));
                        script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyDamageBonusVsAlign(IP_CONST_ALIGNMENTGROUP_EVIL, IP_CONST_DAMAGETYPE_MAGICAL, 1), weapon, 0.0f);
                        weaponValue += 1000;
                        break;
                    }
                }
                else
                {
                    script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyAttackBonus(1), weapon, 0.0f);
                    script.SetFirstName(weapon, "Masterwork " + script.GetName(weapon));
                    weaponValue += 300;
                }
            }
            #endregion

            #region Masterwork Only
            else if (maxValue > 300)
            {
                if (Generation.rand.Next(10) > 0)
                {
                    script.AddItemProperty(DURATION_TYPE_PERMANENT, script.ItemPropertyAttackBonus(1), weapon, 0.0f);
                    script.SetFirstName(weapon, "Masterwork " + script.GetName(weapon));
                    weaponValue += 300;
                }
            }
            #endregion

            if (Pricing.GetIsAmmunition(itemType))
            {
                script.SetItemStackSize(weapon, 50, FALSE);
                weaponValue /= 2;
            }
            Pricing.CalculatePrice(script, weapon);

            return(weaponValue);
        }