private static float TurretCooldown(StatRequest req, BuildingProperties buildingProps) { if (req.Thing is Building_TurretGun gunTurret) { return(NonPublicMethods.Building_TurretGun_BurstCooldownTime(gunTurret)); } return(buildingProps.turretBurstCooldownTime > 0 ? buildingProps.turretBurstCooldownTime : buildingProps.turretGunDef.GetStatValueAbstract(StatDefOf.RangedWeapon_Cooldown)); }
public static bool Prefix(VerbProperties __instance, Verb ownerVerb, Pawn attacker, ref float __result) { // Vanilla gun turret if (ownerVerb.Caster is Building_TurretGun gunTurret) { __result = TurretExtensionsUtility.AdjustedTurretBurstWarmupTicks(gunTurret.def.building.turretBurstWarmupTime.SecondsToTicks(), gunTurret).TicksToSeconds() + NonPublicMethods.Building_TurretGun_BurstCooldownTime(gunTurret) + ((__instance.burstShotCount - 1) * __instance.ticksBetweenBurstShots).TicksToSeconds(); return(false); } return(true); }