Пример #1
0
        private static void ImprovedBows_ResearchComplete(object sender, ResearchCompleteEventArgs e)
        {
            if (!_baseSpeed.ContainsKey(nameof(GuardBowJobDay)))
            {
                _baseSpeed.Add(nameof(GuardBowJobDay), GuardBowJobDay.GetGuardSettings().cooldownShot);
            }

            if (!_baseSpeed.ContainsKey(nameof(GuardBowJobNight)))
            {
                _baseSpeed.Add(nameof(GuardBowJobNight), GuardBowJobNight.GetGuardSettings().cooldownShot);
            }

            GuardBowJobDay.CachedSettings.cooldownShot   = _baseSpeed[nameof(GuardBowJobDay)] - (_baseSpeed[nameof(GuardBowJobDay)] * e.Research.Value);
            GuardBowJobNight.CachedSettings.cooldownShot = _baseSpeed[nameof(GuardBowJobNight)] - (_baseSpeed[nameof(GuardBowJobNight)] * e.Research.Value);
        }
Пример #2
0
        public static void RefreshGuardSettings()
        {
            if (!WeaponGuardSettings.Contains(GuardBowJobDay.GetGuardSettings()))
            {
                WeaponGuardSettings.Add(GuardBowJobDay.GetGuardSettings());
            }

            if (!WeaponGuardSettings.Contains(GuardCrossbowJobDay.GetGuardSettings()))
            {
                WeaponGuardSettings.Add(GuardCrossbowJobDay.GetGuardSettings());
            }

            if (!WeaponGuardSettings.Contains(GuardMatchlockJobDay.GetGuardSettings()))
            {
                WeaponGuardSettings.Add(GuardMatchlockJobDay.GetGuardSettings());
            }

            if (!WeaponGuardSettings.Contains(GuardSlingerJobDay.GetGuardSettings()))
            {
                WeaponGuardSettings.Add(GuardSlingerJobDay.GetGuardSettings());
            }

            foreach (var weap in WeaponLookup)
            {
                WeaponGuardSettings.Add(new GuardBaseJob.GuardSettings
                {
                    cooldownMissingItem     = 1.5f,
                    cooldownSearchingTarget = 0.5f,
                    cooldownShot            = 3f,
                    range           = 1,
                    recruitmentItem = new InventoryItem(weap.Key, 1),
                    shootItem       = new List <InventoryItem>(),
                    shootDamage     = weap.Value.Damage,
                    OnShootAudio    = "sling",
                    OnHitAudio      = "fleshHit"
                });
            }

            WeaponGuardSettings = WeaponGuardSettings.OrderBy(w => w.shootDamage).Reverse().ToList();
        }