public void Tick(SceneGame scene)
        {
            var tile = Curio.GetMainTile();

            if (MoveFrame.Done)
            {
                MoveFrame = new Slider(MoveFrame.Time - MoveFrame.EndTime, MoveFrame.EndTime);
                var camera = Curio.GetCamera();

                var offset   = Direction.ToTileOffset();
                var neighbor = tile.GetNeighborOrNull(offset.X, offset.Y);
                if (neighbor == null)
                {
                    //Out of bounds
                    Curio.Destroy();
                }
                else
                {
                    Curio.MoveTo(neighbor, MoveLerp, MoveFrame);
                    camera?.MoveTo(neighbor, LerpHelper.Linear, MoveFrame);
                }
            }

            if (LifeTime.Done)
            {
                //Fizzle
                Curio.Destroy();
            }

            LifeTime  += scene.TimeModCurrent;
            MoveFrame += scene.TimeModCurrent;
        }
        public void Tick(SceneGame scene)
        {
            var tile = Curio.GetMainTile();

            if (tile != null)
            {
                foreach (var target in tile.Contents.Where(x => x != Shooter && x.IsAlive()))
                {
                    if (!AlreadyHit.IsInvincible(target, 1))
                    {
                        var actions = new List <ActionWrapper>();
                        actions.Add(new ActionEnergyKnifeHit(Curio, target).InSlot(ActionSlot.Active));
                        actions.Apply(target);
                        AlreadyHit.Add(target);
                    }
                }
            }

            AlreadyHit.Tick(scene.TimeModCurrent);

            if (Lifetime.Done)
            {
                Curio.Destroy();
            }
            Lifetime += scene.TimeModCurrent;
        }
        public void Tick(SceneGame scene)
        {
            var tile = Curio.GetMainTile();

            if (tile != null)
            {
                if (tile.IsSolid())
                {
                    Curio.Destroy();
                }
            }
        }
        public void Tick(SceneGame scene)
        {
            var tile = Curio.GetMainTile();

            if (tile != null)
            {
                if (tile.IsSolid())
                {
                    Curio.Destroy();
                }

                var targets = tile.Contents.Where(x => x.IsAlive() && x != Projectile.Shooter);
                if (targets.Any())
                {
                    var target  = targets.First();
                    var actions = new List <ActionWrapper>();
                    actions.Add(new ActionEnergyKnifeHit(Curio, target).InSlot(ActionSlot.Active));
                    actions.Apply(target);
                    Curio.Destroy();
                }
            }
        }
Example #5
0
 public void Tick(SceneGame scene)
 {
     Curio.Destroy();
 }