Beispiel #1
0
 static void Postfix(WeaponCategory category, WeaponSubCategory subCategory, ref bool __result)
 {
     if ((category == WeaponCategory.Dagger || category == WeaponCategory.Starknife) && subCategory == WeaponSubCategory.Ranged)
     {
         __result = true;
     }
 }
Beispiel #2
0
 static void Postfix(WeaponCategory category, ref WeaponSubCategory[] __result)
 {
     if (category == WeaponCategory.Dagger || category == WeaponCategory.Starknife)
     {
         __result = __result.AddToArray(WeaponSubCategory.Ranged);
     }
 }
Beispiel #3
0
        private static WeaponCategory Category(Weapon weapon)
        {
            WeaponCategory result = CustomAmmoCategories.isWeaponUseInMelee(weapon);

            CustomAmmoCategoriesLog.Log.LogWrite("get MeleeWithHighestPriorityEnemyNode_Tick Category " + weapon.Category + "->" + result + "\n");
            return(result);
        }
Beispiel #4
0
        public static string GetWeaponCategoryName(WeaponCategory weaponCategory)
        {
            switch (weaponCategory)
            {
            case WeaponCategory.SimpleMelee:
                return("Simple Melee");

            case WeaponCategory.SimpleRanged:
                return("Simple Ranged");

            case WeaponCategory.MilitaryMelee:
                return("Military Melee");

            case WeaponCategory.MilitaryRanged:
                return("Military Ranged");

            case WeaponCategory.SuperiorMelee:
                return("Superior Melee");

            case WeaponCategory.SuperiorRanged:
                return("Superior Ranged");

            case WeaponCategory.PureImplement:
                return("Implement");

            default:
                return(Enum.Format(typeof(WeaponCategory), weaponCategory, "G"));
            }
        }
Beispiel #5
0
        private static WeaponCategory Category(Weapon weapon)
        {
            WeaponCategory result = CustomAmmoCategories.isWeaponUseInMelee(weapon);

            CustomAmmoCategoriesLog.Log.LogWrite("get SelectionStateMove_ProjectedHeatForState Category " + weapon.Category + "->" + result + "\n");
            return(result);
        }
 private IEnumerable <HardpointDef> CreateEntries(WeaponCategory category, int count)
 {
     for (var i = 0; i < count; i++)
     {
         yield return(new HardpointDef(category, false));
     }
 }
Beispiel #7
0
        private static WeaponCategory Category(Weapon weapon)
        {
            WeaponCategory result = CustomAmmoCategories.isWeaponUseInMelee(weapon);

            CustomAmmoCategoriesLog.Log.LogWrite("get MechRepresentation_PlayImpactAnim Category " + weapon.Category + "->" + result + "\n");
            return(result);
        }
Beispiel #8
0
        private static WeaponCategory Category(Weapon weapon)
        {
            WeaponCategory result = CustomAmmoCategories.isWeaponUseInMelee(weapon);

            CustomAmmoCategoriesLog.Log.LogWrite("get HostileDamageFactor_expectedDamageForMelee Category " + weapon.Category + "->" + result + "\n");
            return(result);
        }
Beispiel #9
0
        private static WeaponCategory Category(Weapon weapon)
        {
            WeaponCategory result = CustomAmmoCategories.isWeaponUseInMelee(weapon);

            CustomAmmoCategoriesLog.Log.LogWrite("get CombatHUDWeaponSlot_SetHitChance Category " + weapon.Category + "->" + result + "\n");
            return(result);
        }
Beispiel #10
0
        private static WeaponCategory Category(Weapon weapon)
        {
            WeaponCategory result = CustomAmmoCategories.isWeaponUseInMelee(weapon);

            CustomAmmoCategoriesLog.Log.LogWrite("get CombatTestFire_MeleeAttackSequence Category " + weapon.Category + "->" + result + "\n");
            return(result);
        }
Beispiel #11
0
        private static WeaponCategory Category(Weapon weapon)
        {
            WeaponCategory result = CustomAmmoCategories.isWeaponUseInMelee(weapon);

            CustomAmmoCategoriesLog.Log.LogWrite("get MoveTowardsHighestPriorityMoveCandidateNode_Tick Category " + weapon.Category + "->" + result + "\n");
            return(result);
        }
Beispiel #12
0
        private static WeaponCategory Category(Weapon weapon)
        {
            WeaponCategory result = CustomAmmoCategories.isWeaponUseInMelee(weapon);

            CustomAmmoCategoriesLog.Log.LogWrite("get AIUtil_ExpectedDamageForMeleeAttackUsingUnitsBVs Category " + weapon.Category + "->" + result + "\n");
            return(result);
        }
Beispiel #13
0
        private static WeaponCategory Category(Weapon weapon)
        {
            WeaponCategory result = CustomAmmoCategories.isWeaponUseInMelee(weapon);

            CustomAmmoCategoriesLog.Log.LogWrite("get AttackEvaluator_MakeAttackOrderForTarget_AP Category " + weapon.Category + "->" + result + "\n");
            return(result);
        }
Beispiel #14
0
        public static List <BlueprintItemWeapon> GetFilterWeapons(List <String> allowedEnchantments1,
                                                                  List <string> allowedEnchantments2 = null, List <string> allowedEnchantments3 = null,
                                                                  WeaponCategory category            = WeaponCategory.Touch, bool uniqueByName  = true)
        {
            // Gets all armors and filters them by provided enchantment GUID lists.
            // If more than one GUID list is provided, then the weapons must have an enchantment
            // from all provided lists.

            var weapons = ResourcesLibrary.GetBlueprints <BlueprintItemWeapon>();

            var weaponsGeneric = weapons.Where(weapon =>
                                               (weapon.FlavorText == "" &&
                                                weapon.IsMagic &&
                                                weapon.SellPrice > 25 &&
                                                weapon.DamageType.Physical.Material == 0 &&
                                                weapon.Icon != null &&
                                                weapon.Description == "" &&
                                                weapon.IsNonRemovable == false &&
                                                !WeaponCategoriesDisabled.Contains(weapon.Category) &&
                                                !WeaponGUIDSDisallowed.Contains(weapon.AssetGuid)));

            if (uniqueByName)
            {
                weaponsGeneric = weaponsGeneric
                                 .GroupBy(weapon => weapon.Name)
                                 .Select(group => group.First());
            }

            var weaponsFiltered = weaponsGeneric;

            if (category != WeaponCategory.Touch)
            {
                weaponsFiltered = weaponsFiltered.Where(weapon => weapon.Category == category);
            }

            if (allowedEnchantments2 == null)
            {
                weaponsFiltered = weaponsFiltered.Where(weapon =>
                                                        (weapon.Enchantments.Count == 1 &&
                                                         weapon.Enchantments.Any(enchantment => allowedEnchantments1.Contains(enchantment.AssetGuid))));
            }
            else if (allowedEnchantments3 == null)
            {
                weaponsFiltered = weaponsFiltered.Where(weapon =>
                                                        (weapon.Enchantments.Count == 2 &&
                                                         weapon.Enchantments.Any(enchantment => allowedEnchantments1.Contains(enchantment.AssetGuid)) &&
                                                         weapon.Enchantments.Any(enchantment => allowedEnchantments2.Contains(enchantment.AssetGuid))));
            }
            else
            {
                weaponsFiltered = weaponsFiltered.Where(weapon =>
                                                        (weapon.Enchantments.Count == 3 &&
                                                         weapon.Enchantments.Any(enchantment => allowedEnchantments1.Contains(enchantment.AssetGuid)) &&
                                                         weapon.Enchantments.Any(enchantment => allowedEnchantments2.Contains(enchantment.AssetGuid)) &&
                                                         weapon.Enchantments.Any(enchantment => allowedEnchantments3.Contains(enchantment.AssetGuid))));
            }

            return(weaponsFiltered.ToList());
        }
Beispiel #15
0
 static bool Prefix(ref WeaponCategory weaponCategory, string text)
 {
     if (text == "0/0" || text == "0")
     {
         weaponCategory = WeaponCategory.NotSet;
     }
     return(true);
 }
 public WeaponType(WeaponCategory weaponCategory, string name, Attack attack, HitEffect hitEffect, string[] properties)
 {
     SimpleMeleeWeapon = weaponCategory;
     Name       = name;
     Attack     = attack;
     HitEffect  = hitEffect;
     Properties = properties;
 }
Beispiel #17
0
 public bool hasProficiency(WeaponCategory required_category)
 {
     if (race == null || this.Owner.Progression.Race == race)
     {
         return(category == required_category);
     }
     return(false);
 }
Beispiel #18
0
    public static void RerollWeapon()
    {
        var values = Enum.GetValues(typeof(WeaponCategory));
        var random = new Random();
        var randomWeaponCategory = (WeaponCategory)values.GetValue(random.Next(values.Length));

        weaponCategory  = randomWeaponCategory;
        numberOfBullets = GetAmountOfBullets(weaponCategory);
    }
Beispiel #19
0
        public Boolean HasCategory(WeaponCategory category)
        {
            if (Data.weapon == null)
            {
                return(false);
            }

            return(((WeaponCategory)Data.weapon.category & category) != 0);
        }
Beispiel #20
0
        public HardPointSetStored(HardPointSet hardPointSet)
        {
            Category   = hardPointSet.Category;
            HardPoints = new Vector3[hardPointSet.HardPoints.Count];

            for (int i = 0; i < HardPoints.Length; i++)
            {
                HardPoints[i] = hardPointSet.HardPoints[i].transform.localPosition;
            }
        }
        public void OnEventAboutToTrigger(RuleCalculateWeaponStats evt)
        {
            WeaponCategory category = evt.Weapon.Blueprint.Type.Category;

            if (category != WeaponCategory.Dagger)
            {
                return;
            }
            evt.AddBonusDamage(1);
        }
        public static void GiveFeat(UnitDescriptor unit, string Guid, WeaponCategory category)
        {
            BlueprintFeature feature = Kingmaker.Cheats.Utilities.GetBlueprintByGuid <BlueprintFeature>(Guid);
            FeatureParam     param   = new FeatureParam(new WeaponCategory?(category));

            if (unit.GetFeature(feature, param) == null)
            {
                unit.AddFact(Kingmaker.Cheats.Utilities.GetBlueprintByGuid <BlueprintFeature>(Guid), null, param);
            }
        }
Beispiel #23
0
	public Weapon(string pmName, WeaponType pmType, WeaponCategory pmCategory, int pmDieceType, int pmDieceNumber, List<EquipementTypes> pmTypes, int pmRangeNormal, int pmRangeLong)
	{
		mName = pmName;
		mType = pmType;
		mDieceType = pmDieceType;
		mDieceNumber = pmDieceNumber;
		mCategory = pmCategory;
		mEquipementTypes = pmTypes;
		rangeNormal = pmRangeNormal;
		rangeLong = pmRangeLong;
	}
 public static WeaponCategory[] GetGroup(WeaponCategory category)
 {
     foreach (WeaponCategory[] group in groups)
     {
         if (group.Contains(category))
         {
             return(group);
         }
     }
     return(Array.Empty <WeaponCategory>());
 }
        static void Process(UnitDescriptor unit, string guid, WeaponCategory category)
        {
            Main.DebugLog("Category: " + category.ToString());

            var group = GetGroup(category);

            foreach (var sub in group)
            {
                Main.DebugLog("Try give Feat: " + sub.ToString());
                GiveFeat(unit, guid, sub);
            }
        }
Beispiel #26
0
 public Firearm(
     string name,
     WeaponCategory weaponCategory,
     WeaponClass weaponClass,
     InventorySlot inventorySlot,
     int unlockCost,
     int roundsPerMagazine,
     decimal roundsPerSecond,
     int damagePerBullet,
     int armorPiercingLevel,
     decimal muzzleDropDistanceMeters,
     int moveSpeedLocalModifierPercent,
     int turnSpeedLocalModifierPercent,
     int numPellets,
     decimal spreadAt10Meters,
     bool silenced,
     decimal shotSoundMeters,
     bool closedBolt,
     bool cyclicReload,
     int reloadTime,
     int reloadEmptyTime,
     int changeInTime,
     int changeOutTime,
     int readyTime,
     int guardTime
     )
 {
     Name                          = name;
     WeaponCategory                = weaponCategory;
     WeaponClass                   = weaponClass;
     InventorySlot                 = inventorySlot;
     UnlockCost                    = unlockCost;
     RoundsPerMagazine             = roundsPerMagazine;
     RoundsPerSecond               = roundsPerSecond;
     DamagePerBullet               = damagePerBullet;
     ArmorPiercingLevel            = armorPiercingLevel;
     MuzzleDropDistanceMeters      = muzzleDropDistanceMeters;
     MoveSpeedLocalModifierPercent = moveSpeedLocalModifierPercent;
     TurnSpeedLocalModifierPercent = turnSpeedLocalModifierPercent;
     NumPellets                    = numPellets;
     SpreadAt10Meters              = spreadAt10Meters;
     Silenced                      = silenced;
     ShotSoundMeters               = shotSoundMeters;
     ClosedBolt                    = closedBolt;
     CyclicReload                  = cyclicReload;
     ReloadTime                    = reloadTime;
     ReloadEmptyTime               = reloadEmptyTime;
     ChangeInTime                  = changeInTime;
     ChangeOutTime                 = changeOutTime;
     ReadyTime                     = readyTime;
     GuardTime                     = guardTime;
 }
    void OnWeaponTypeClick(Weapontype weapontype)
    {
        playerprefz.SetCurrentWeaponCategory((int)weapontype);
        CurrentWeapon = WeaponSpecs[(int)weapontype];
        currentitem   = playerprefz.getCurrentGun();
        for (int i = 0; i < WeaponSpecs.Length; i++)
        {
            WeaponSpecs[i].BTN_TypeSelect.GetComponent <Image>().color = Color.white;
        }
        CurrentWeapon.BTN_TypeSelect.GetComponent <Image>().color = CurrentWeapon.ClickedColor;

        WeaponItemsUpdate();
    }
Beispiel #28
0
    private static int GetAmountOfBullets(WeaponCategory weaponCategory)
    {
        switch (weaponCategory)
        {
        case WeaponCategory.Pistol: return(8);

        case WeaponCategory.Shotgun: return(4);

        case WeaponCategory.Rifle: return(20);

        default: return(8);
        }
    }
Beispiel #29
0
 public Weapon(string name, int proficiencyBonus, Dice damage, string range, WeaponGroup group, WeaponProperties properties, int basePrice, WeaponCategory category, bool isTwoHanded, int enhancementBonus)
 {
     this.name             = name;
     this.proficiencyBonus = proficiencyBonus;
     this.damage           = damage;
     this.range            = range;
     this.group            = group;
     this.properties       = properties;
     this.enhancementBonus = enhancementBonus;
     this.basePrice        = basePrice;
     this.category         = category;
     this.isTwoHanded      = isTwoHanded;
 }
Beispiel #30
0
            public bool hasFullProficiency(WeaponCategory category)
            {
                bool is_ok = false;

                foreach (var b in buffs)
                {
                    b.CallComponents <FullProficiency>(c => is_ok = c.hasProficiency(category));
                    if (is_ok)
                    {
                        return(true);
                    }
                }
                return(false);
            }
Beispiel #31
0
        private string getDirectoryName(WeaponCategory weaponCategory)
        {
            switch (weaponCategory)
            {
            case WeaponCategory.OneHanded:
                return("One Handed");

            case WeaponCategory.TwoHanded:
                return("Two Handed");

            default:
                return("" + weaponCategory);
            }
        }
Beispiel #32
0
 public Weapon(WeaponCategory category, int skillLevel)
 {
     this.skillLevel = skillLevel;
      this.category = category;
 }
Beispiel #33
0
	public int GetWeaponProficiency(WeaponCategory pmTestedCategory)
	{
		if (mProficiencyBonus == 0)
			return 0;
		
		if (mWeaponCategoryProficiency.Contains (pmTestedCategory))
			return mProficiencyBonus;
		else
			return 0;
	}
Beispiel #34
0
	public void AddWeaponProficiency(WeaponCategory pmCategory)
	{
		if (!mWeaponCategoryProficiency.Contains (pmCategory))
			mWeaponCategoryProficiency.Add (pmCategory);
	}