Ejemplo n.º 1
0
        public override Activity Tick(Actor self)
        {
            var aircraft = self.Trait <Aircraft>();

            if (aircraft.Altitude <= 0)
            {
                if (info.Explosion != null)
                {
                    Combat.DoExplosion(self, info.Explosion, self.CenterLocation, 0);
                }

                self.Destroy();
                return(null);
            }

            if (info.Spins)
            {
                spin           += acceleration;
                aircraft.Facing = (aircraft.Facing + spin) % 256;
            }

            if (info.Moves)
            {
                FlyUtil.Fly(self, aircraft.Altitude);
            }

            aircraft.Altitude--;

            return(this);
        }
Ejemplo n.º 2
0
        public override Activity Tick(Actor self)
        {
            var cruiseAltitude = self.Info.Traits.Get <PlaneInfo>().CruiseAltitude;

            if (IsCanceled)
            {
                return(NextActivity);
            }

            var aircraft = self.Trait <Aircraft>();

            var desiredFacing = aircraft.Facing + 64;               // we can't possibly turn this fast.

            if (aircraft.Altitude == cruiseAltitude)
            {
                aircraft.Facing = Util.TickFacing(aircraft.Facing, desiredFacing, aircraft.ROT);
            }

            if (aircraft.Altitude < cruiseAltitude)
            {
                ++aircraft.Altitude;
            }

            FlyUtil.Fly(self, cruiseAltitude);
            return(this);
        }
Ejemplo n.º 3
0
Archivo: Fly.cs Proyecto: test71/OpenRA
        public override Activity Tick(Actor self)
        {
            var cruiseAltitude = self.Info.Traits.Get <PlaneInfo>().CruiseAltitude;

            if (IsCanceled)
            {
                return(NextActivity);
            }

            var d = Pos - self.CenterLocation;

            if (d.LengthSquared < 50)                           /* close enough */
            {
                return(NextActivity);
            }

            var aircraft = self.Trait <Aircraft>();

            var desiredFacing = Util.GetFacing(d, aircraft.Facing);

            if (aircraft.Altitude == cruiseAltitude)
            {
                aircraft.Facing = Util.TickFacing(aircraft.Facing, desiredFacing, aircraft.ROT);
            }

            if (aircraft.Altitude < cruiseAltitude)
            {
                ++aircraft.Altitude;
            }

            FlyUtil.Fly(self, cruiseAltitude);
            return(this);
        }
Ejemplo n.º 4
0
        public override Activity Tick(Actor self)
        {
            var targetAltitude = self.Info.Traits.Get <PlaneInfo>().CruiseAltitude;

            if (IsCanceled || !self.World.Map.IsInMap(self.Location))
            {
                return(NextActivity);
            }

            FlyUtil.Fly(self, targetAltitude);
            return(this);
        }
Ejemplo n.º 5
0
        public override Activity Tick(Actor self)
        {
            if (IsCanceled)
            {
                return(NextActivity);
            }
            var targetAltitude = self.Info.Traits.Get <PlaneInfo>().CruiseAltitude;

            if (remainingTicks-- == 0)
            {
                return(NextActivity);
            }
            FlyUtil.Fly(self, targetAltitude);
            return(this);
        }