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; }