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); }
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(); }