private static void ImprovedMatchlockguns_ResearchComplete(object sender, ResearchCompleteEventArgs e) { if (!_baseSpeed.ContainsKey(nameof(GuardMatchlockJobDay))) { _baseSpeed.Add(nameof(GuardMatchlockJobDay), GuardMatchlockJobDay.GetGuardSettings().cooldownShot); } if (!_baseSpeed.ContainsKey(nameof(GuardMatchlockJobNight))) { _baseSpeed.Add(nameof(GuardMatchlockJobNight), GuardMatchlockJobNight.GetGuardSettings().cooldownShot); } GuardMatchlockJobDay.CachedSettings.cooldownShot = _baseSpeed[nameof(GuardMatchlockJobDay)] - (_baseSpeed[nameof(GuardMatchlockJobDay)] * e.Research.Value); GuardMatchlockJobNight.CachedSettings.cooldownShot = _baseSpeed[nameof(GuardMatchlockJobNight)] - (_baseSpeed[nameof(GuardMatchlockJobNight)] * e.Research.Value); }
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(); }