Exemplo n.º 1
0
        private static void ImprovedCrossbows_ResearchComplete(object sender, ResearchCompleteEventArgs e)
        {
            if (!_baseSpeed.ContainsKey(nameof(GuardCrossbowJobDay)))
            {
                _baseSpeed.Add(nameof(GuardCrossbowJobDay), GuardCrossbowJobDay.GetGuardSettings().cooldownShot);
            }

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

            GuardCrossbowJobDay.CachedSettings.cooldownShot   = _baseSpeed[nameof(GuardCrossbowJobDay)] - (_baseSpeed[nameof(GuardCrossbowJobDay)] * e.Research.Value);
            GuardCrossbowJobNight.CachedSettings.cooldownShot = _baseSpeed[nameof(GuardCrossbowJobNight)] - (_baseSpeed[nameof(GuardCrossbowJobNight)] * e.Research.Value);
        }
Exemplo n.º 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();
        }