public override void Play(GameView view, Action <object[]> onComplete, params object[] args) { var longestDuration = TimeSpan.Zero; var columns = args[0] as List <List <Animal> >; if (columns == null) { return; } foreach (var column in columns) { for (var index = 0; index < column.Count; index++) { var animal = column[index]; var duration = TimeSpan.FromSeconds(((new Vector2(animal.X * view.TileSize.Y + (view.TileSize.Y / 2.0F), animal.Y * view.TileSize.Y + (view.TileSize.Y / 2.0F)).Y - animal.Sprite.LocalPosition.Y) / view.TileSize.Y) * 0.1F); if (duration + TimeSpan.FromSeconds(0.05F + (0.15F * index)) > longestDuration) { longestDuration = duration + TimeSpan.FromSeconds(0.05F + (0.15F * index)); } animal.Sprite.AddActivity(new ActivitySequence(new Activity[] { new WaitActivity(TimeSpan.FromSeconds(0.05F + (0.15F * index))), new MoveActivity(new Vector2(animal.X * view.TileSize.Y + (view.TileSize.Y / 2.0F), animal.Y * view.TileSize.Y + (view.TileSize.Y / 2.0F)), duration, EaseMode.Out) })); } } view.AddActivity(new WaitActivity(longestDuration, onComplete)); }
public override void Play(GameView view, Action<object[]> onComplete, params object[] args) { var longestDuration = TimeSpan.Zero; var columns = args[0] as List<List<Animal>>; if (columns == null) return; foreach (var column in columns) { for (var index = 0; index < column.Count; index++) { var animal = column[index]; var duration = TimeSpan.FromSeconds(((new Vector2(animal.X * view.TileSize.Y + (view.TileSize.Y / 2.0F), animal.Y * view.TileSize.Y + (view.TileSize.Y / 2.0F)).Y - animal.Sprite.LocalPosition.Y) / view.TileSize.Y) * 0.1F); if (duration + TimeSpan.FromSeconds(0.05F + (0.15F * index)) > longestDuration) longestDuration = duration + TimeSpan.FromSeconds(0.05F + (0.15F * index)); animal.Sprite.AddActivity(new ActivitySequence(new Activity[] { new WaitActivity(TimeSpan.FromSeconds(0.05F + (0.15F * index))), new MoveActivity(new Vector2(animal.X * view.TileSize.Y + (view.TileSize.Y / 2.0F), animal.Y * view.TileSize.Y + (view.TileSize.Y / 2.0F)), duration, EaseMode.Out) })); } } view.AddActivity(new WaitActivity(longestDuration, onComplete)); }
public override void Play(GameView view, Action<object[]> onComplete, params object[] args) { var columns = args[0] as List<List<Animal>>; if (columns == null) return; var longestDuration = TimeSpan.Zero; foreach (var column in columns) { for (var index = 0; index < column.Count; index++) { var animal = column[index]; view.DropAnimal(animal, column[0].Y - 1); var duration = TimeSpan.FromSeconds((animal.Y - (column[0].Y - 1)) * 0.1F); if (duration + TimeSpan.FromSeconds(0.1F + (0.2F * (column.Count - index - 1))) > longestDuration) longestDuration = duration + TimeSpan.FromSeconds(0.1F + (0.2F * (column.Count - index - 1))); animal.Sprite.AddActivity(new ActivitySequence(new Activity[] { new WaitActivity(TimeSpan.FromSeconds(0.1F + (0.2F * (column.Count - index - 1)))), new ActivityGroup(new Activity[] { new FadeActivity(FadeActivity.Fade.In, TimeSpan.FromSeconds(0.05F), EaseMode.InOut), new MoveActivity(new Vector2((animal.X * view.TileSize.X) + (view.TileSize.X / 2), (animal.Y * view.TileSize.Y) + (view.TileSize.Y / 2)), duration, EaseMode.Out) }) })); } } view.AddActivity(new WaitActivity(longestDuration, onComplete)); }
public override void Play(GameView view, Action<object[]> onComplete, params object[] args) { var chains = args[0] as List<Chain>; if (chains == null) return; foreach (var animal in chains.SelectMany(chain => chain.Animals)) { animal.Sprite?.AddActivity(new ScaleActivity(animal.Sprite.Scale, 0.01F, TimeSpan.FromSeconds(0.33F), EaseMode.Out, e => { animal.Sprite?.Detach(); animal.SetSprite(null); })); } view.AddActivity(new WaitActivity(TimeSpan.FromSeconds(0.33F), onComplete)); }
public override void Play(GameView view, Action <object[]> onComplete, params object[] args) { var chains = args[0] as List <Chain>; if (chains == null) { return; } foreach (var animal in chains.SelectMany(chain => chain.Animals)) { animal.Sprite?.AddActivity(new ScaleActivity(animal.Sprite.Scale, 0.01F, TimeSpan.FromSeconds(0.33F), EaseMode.Out, e => { animal.Sprite?.Detach(); animal.SetSprite(null); })); } view.AddActivity(new WaitActivity(TimeSpan.FromSeconds(0.33F), onComplete)); }
public override void Play(GameView view, Action <object[]> onComplete, params object[] args) { var columns = args[0] as List <List <Animal> >; if (columns == null) { return; } var longestDuration = TimeSpan.Zero; foreach (var column in columns) { for (var index = 0; index < column.Count; index++) { var animal = column[index]; view.DropAnimal(animal, column[0].Y - 1); var duration = TimeSpan.FromSeconds((animal.Y - (column[0].Y - 1)) * 0.1F); if (duration + TimeSpan.FromSeconds(0.1F + (0.2F * (column.Count - index - 1))) > longestDuration) { longestDuration = duration + TimeSpan.FromSeconds(0.1F + (0.2F * (column.Count - index - 1))); } animal.Sprite.AddActivity(new ActivitySequence(new Activity[] { new WaitActivity(TimeSpan.FromSeconds(0.1F + (0.2F * (column.Count - index - 1)))), new ActivityGroup(new Activity[] { new FadeActivity(FadeActivity.Fade.In, TimeSpan.FromSeconds(0.05F), EaseMode.InOut), new MoveActivity(new Vector2((animal.X * view.TileSize.X) + (view.TileSize.X / 2), (animal.Y * view.TileSize.Y) + (view.TileSize.Y / 2)), duration, EaseMode.Out) }) })); } } view.AddActivity(new WaitActivity(longestDuration, onComplete)); }