예제 #1
0
        public virtual int GetBuildTime(ActorInfo unit, BuildableInfo bi = null)
        {
            if (developerMode.FastBuild)
            {
                return(0);
            }

            var time = unit.GetBuildTime() * Info.BuildSpeed / 100;

            return(time);
        }
예제 #2
0
        public virtual int GetBuildTime(ActorInfo unit, BuildableInfo bi = null)
        {
            if (self.World.AllowDevCommands && self.Owner.PlayerActor.Trait <DeveloperMode>().FastBuild)
            {
                return(0);
            }

            var time = unit.GetBuildTime() * Info.BuildSpeed / 100;

            return(time);
        }
예제 #3
0
        public override int GetBuildTime(ActorInfo unit, BuildableInfo bi = null)
        {
            if (developerMode.FastBuild)
            {
                return(0);
            }

            var time = unit.GetBuildTime() * Info.BuildSpeed / 100;

            if (info.SpeedUp)
            {
                var type = (bi ?? unit.TraitInfo <BuildableInfo>()).BuildAtProductionType ?? info.Type;

                var selfsameProductionsCount = self.World.ActorsWithTrait <Production>()
                                               .Count(p => p.Actor.Owner == self.Owner && p.Trait.Info.Produces.Contains(type));

                var speedModifier = selfsameProductionsCount.Clamp(1, info.BuildTimeSpeedReduction.Length) - 1;
                time = (time * info.BuildTimeSpeedReduction[speedModifier]) / 100;
            }

            return(time);
        }
예제 #4
0
        public virtual int GetBuildTime(ActorInfo unit, BuildableInfo bi = null)
        {
            if (self.World.AllowDevCommands && self.Owner.PlayerActor.Trait<DeveloperMode>().FastBuild)
                return 0;

            var time = unit.GetBuildTime() * Info.BuildSpeed / 100;
            return time;
        }