예제 #1
0
            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);
            }