Exemple #1
0
        public override void Update(FrameTick elapsedTime)
        {
            base.Update(elapsedTime);

            //get the new origin of the hitbox
            long add       = UpdateTick(elapsedTime, Speed);
            int  addedDist = Math.Min((int)add, MaxDistance * GraphicsManager.TileSize - DistanceTraveled);
            Loc  newOrigin = MapLoc + Dir.GetLoc() * (addedDist * reverse);

            //set the new origin
            MapLoc            = newOrigin;
            DistanceTraveled += addedDist;


            //update animation
            Emitter.SetupEmit(User, MapLoc, User.MapLoc, Dir, LocHeight);
            //update emittings (list of particles to emit here; place in main particle processor)
            Emitter.Update(DungeonScene.Instance, elapsedTime);

            //check to see if this hitbox needs to expire
            if (DistanceTraveled >= MaxDistance * GraphicsManager.TileSize)
            {
                if (Boomerang && reverse == 1)
                {
                    reverse          = -1;
                    DistanceTraveled = GraphicsManager.TileSize / 2;
                }
                //else
                //    Finished = true;
            }
        }
Exemple #2
0
        public override void Update(FrameTick elapsedTime)
        {
            base.Update(elapsedTime);
            //get the new origin of the hitbox from the owner
            MapLoc = User.MapLoc;

            if (HitboxDone)
            {
                timeLingered += elapsedTime;
            }

            //update animation
            Emitter.SetupEmit(User, MapLoc, StartPoint * GraphicsManager.TileSize, Dir, LocHeight);
            //update emittings (list of particles to emit here; place in main particle processor)
            Emitter.Update(DungeonScene.Instance, elapsedTime);
        }
Exemple #3
0
        public override void Update(FrameTick elapsedTime)
        {
            base.Update(elapsedTime);
            //update the position of the item in the sky
            long add  = UpdateTick(elapsedTime, Speed);
            Loc  diff = (EndPoint - StartPoint) * GraphicsManager.TileSize;

            DistanceTraveled += Math.Min((int)add, MaxDistance - DistanceTraveled);

            MapLoc    = StartPoint * GraphicsManager.TileSize + diff * DistanceTraveled / MaxDistance;
            LocHeight = AnimMath.GetArc(MaxDistance / 2, MaxDistance, DistanceTraveled);

            //update animation
            Emitter.SetupEmit(User, MapLoc, User.MapLoc, User.CharDir, LocHeight);
            //update emittings (list of particles to emit here; place in main particle processor)
            Emitter.Update(DungeonScene.Instance, elapsedTime);
        }