private void menuitemAddFilledRectangleTrack_Click(object sender, RoutedEventArgs e) { AnimationTrack newFilledRectangleTrack = new AnimationTrack(GetAvailableTrackName("Filled Rectangle Track"), 0.0f); newFilledRectangleTrack.SetFrame(0.0f, new AnimationFilledRectangle()); ContextMix = ContextMix.AddTrack(newFilledRectangleTrack); }
private void menuitemAddManualColorTrack_Click(object sender, RoutedEventArgs e) { AnimationTrack newManualColorTrack = new AnimationTrack(GetAvailableTrackName("Manual Color Track"), 0.0f); newManualColorTrack.SetFrame(0.0f, new AnimationManualColorFrame()); ContextMix = ContextMix.AddTrack(newManualColorTrack); }
private void RegenerateHyperspaceExitAnimation(StarClass starClass = StarClass.K) { if (starClass == hyperspace_exit_star) { return; } hypespace_exit_mix = new AnimationMix(); float startingX = Effects.canvas_width_center - 10; Color hyperspaceExitColor = starColors.ContainsKey(starClass) ? starColors[starClass] : starColors[StarClass.K]; AnimationTrack star_entry = new AnimationTrack("Hyperspace exit", 2.0f); star_entry.SetFrame(0.0f, new AnimationFilledCircle(startingX, Effects.canvas_height_center, 0, hyperspaceExitColor, 1) ); star_entry.SetFrame(1.0f, new AnimationFilledCircle(startingX, Effects.canvas_height_center, Effects.canvas_biggest, hyperspaceExitColor, 1) ); star_entry.SetFrame(1.2f, new AnimationFilledCircle(startingX, Effects.canvas_height_center, Effects.canvas_biggest, hyperspaceExitColor, 1) ); star_entry.SetFrame(2f, new AnimationFilledCircle(startingX, Effects.canvas_height_center, Effects.canvas_biggest, Color.Empty, 1) ); AnimationTrack star_entry_bg = new AnimationTrack("Hyperspace exit bg", 2f); star_entry_bg.SetFrame(0.0f, new AnimationFill(Color.Black) ); star_entry_bg.SetFrame(1.2f, new AnimationFill(Color.Black) ); hypespace_exit_mix.AddTrack(star_entry_bg); hypespace_exit_mix.AddTrack(star_entry); }
private AnimationTrack GenerateHyperspaceStreak(float xOffset, float timeShift, int index = 0) { Color streakEndColor = Color.FromArgb(178, 217, 255); Color streakStartColor = Color.FromArgb(0, 64, 135); float animationDuration = 0.8f; int streakSize = 7; int streakWidth = 3; int startPosition = -40; int endPosition = Effects.canvas_height + streakSize * 2; AnimationTrack streak = new AnimationTrack("Hyperspace streak " + index, animationDuration, timeShift); streak.SetFrame(0.0f, new AnimationLine(new PointF(xOffset, startPosition), new PointF(xOffset, startPosition + streakSize), streakStartColor, streakEndColor, streakWidth) ); streak.SetFrame(animationDuration, new AnimationLine(new PointF(xOffset, endPosition), new PointF(xOffset, endPosition + streakSize), streakStartColor, streakEndColor, streakWidth) ); return(streak); }
private AnimationTrack GenerateFsdPulse(int index = 0) { Color pulseStartColor = Color.FromArgb(0, 126, 255); Color pulseEndColor = Color.FromArgb(200, 0, 126, 255); float startingX = Effects.canvas_width_center - 10; int pulseStartWidth = 10; int pulseEndWidth = 2; float pulseFrameDuration = 1; float pulseDuration = 0.7f; AnimationTrack countdown_pulse = new AnimationTrack("Fsd countdown pulse " + index, pulseFrameDuration, index); countdown_pulse.SetFrame(0.0f, new AnimationCircle(startingX, Effects.canvas_height_center, 0, pulseStartColor, pulseStartWidth) ); countdown_pulse.SetFrame(pulseDuration, new AnimationCircle(startingX, Effects.canvas_height_center, Effects.canvas_biggest, pulseEndColor, pulseEndWidth) ); return(countdown_pulse); }
private input_item CreateInputItem(Devices.DeviceKeys key, EffectPoint origin) { Color primary_c = (Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_primary_color; Color secondary_c = (Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_secondary_color; if ((Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effects_random_primary_color) { primary_c = Utils.ColorUtils.GenerateRandomColor(primary_c); } if ((Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effects_random_secondary_color) { secondary_c = Utils.ColorUtils.GenerateRandomColor(secondary_c); } AnimationMix anim_mix = new AnimationMix(); if ((Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_type == InteractiveEffects.Wave) { AnimationTrack wave = new AnimationTrack("Wave effect", 1.0f); wave.SetFrame(0.0f, new AnimationCircle(origin.ToPointF(), 0, primary_c, (Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_width) ); wave.SetFrame(0.80f, new AnimationCircle(origin.ToPointF(), Effects.canvas_width * 0.80f, secondary_c, (Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_width) ); wave.SetFrame(1.00f, new AnimationCircle(origin.ToPointF(), Effects.canvas_width, Color.FromArgb(0, secondary_c), (Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_width) ); anim_mix.AddTrack(wave); } else if ((Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_type == InteractiveEffects.Wave_Filled) { AnimationTrack wave = new AnimationTrack("Filled Wave effect", 1.0f); wave.SetFrame(0.0f, new AnimationFilledCircle(origin.ToPointF(), 0, primary_c, (Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_width) ); wave.SetFrame(0.80f, new AnimationFilledCircle(origin.ToPointF(), Effects.canvas_width * 0.80f, secondary_c, (Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_width) ); wave.SetFrame(1.00f, new AnimationFilledCircle(origin.ToPointF(), Effects.canvas_width, Color.FromArgb(0, secondary_c), (Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_width) ); anim_mix.AddTrack(wave); } else if ((Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_type == InteractiveEffects.KeyPress) { ColorSpectrum spec = new ColorSpectrum(primary_c, secondary_c); if ((Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_type == InteractiveEffects.KeyPress) { spec = new ColorSpectrum(primary_c, Color.FromArgb(0, secondary_c)); spec.SetColorAt(0.80f, secondary_c); } return(new input_item(key, 0.0f, spec)); } else if ((Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_type == InteractiveEffects.ArrowFlow) { PointF starting_pt = origin.ToPointF(); AnimationTrack arrow = new AnimationTrack("Arrow Flow effect", 1.0f); arrow.SetFrame(0.0f, new AnimationLines( new AnimationLine[] { new AnimationLine(starting_pt, starting_pt, primary_c, (Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_width), new AnimationLine(starting_pt, starting_pt, primary_c, (Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_width) } ) ); arrow.SetFrame(0.33f, new AnimationLines( new AnimationLine[] { new AnimationLine(starting_pt, new PointF(starting_pt.X + Effects.canvas_width * 0.33f, starting_pt.Y), Utils.ColorUtils.BlendColors(primary_c, secondary_c, 0.33D), (Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_width), new AnimationLine(starting_pt, new PointF(starting_pt.X - Effects.canvas_width * 0.33f, starting_pt.Y), Utils.ColorUtils.BlendColors(primary_c, secondary_c, 0.33D), (Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_width) } ) ); arrow.SetFrame(0.66f, new AnimationLines( new AnimationLine[] { new AnimationLine(new PointF(starting_pt.X + Effects.canvas_width * 0.33f, starting_pt.Y), new PointF(starting_pt.X + Effects.canvas_width * 0.66f, starting_pt.Y), secondary_c, (Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_width), new AnimationLine(new PointF(starting_pt.X - Effects.canvas_width * 0.33f, starting_pt.Y), new PointF(starting_pt.X - Effects.canvas_width * 0.66f, starting_pt.Y), secondary_c, (Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_width) } ) ); arrow.SetFrame(1.0f, new AnimationLines( new AnimationLine[] { new AnimationLine(new PointF(starting_pt.X + Effects.canvas_width * 0.66f, starting_pt.Y), new PointF(starting_pt.X + Effects.canvas_width, starting_pt.Y), Color.FromArgb(0, secondary_c), (Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_width), new AnimationLine(new PointF(starting_pt.X - Effects.canvas_width * 0.66f, starting_pt.Y), new PointF(starting_pt.X - Effects.canvas_width, starting_pt.Y), Color.FromArgb(0, secondary_c), (Global.Configuration.desktop_profile.Settings as DesktopSettings).interactive_effect_width) } ) ); anim_mix.AddTrack(arrow); } return(new input_item(key, 0.0f, anim_mix)); }
private input_item CreateInputItem(Devices.DeviceKeys key, PointF origin) { Color primary_c = Properties.RandomPrimaryColor ? Utils.ColorUtils.GenerateRandomColor() : Properties.PrimaryColor; Color secondary_c = Properties.RandomSecondaryColor ? Utils.ColorUtils.GenerateRandomColor() : Properties.SecondaryColor; AnimationMix anim_mix = new AnimationMix(); if (Properties.InteractiveEffect == InteractiveEffects.Wave) { AnimationTrack wave = new AnimationTrack("Wave effect", 1.0f); wave.SetFrame(0.0f, new AnimationCircle(origin, 0, primary_c, Properties.EffectWidth) ); wave.SetFrame(0.80f, new AnimationCircle(origin, Effects.canvas_width * 0.80f, secondary_c, Properties.EffectWidth) ); wave.SetFrame(1.00f, new AnimationCircle(origin, Effects.canvas_width + (Properties.EffectWidth / 2), Color.FromArgb(0, secondary_c), Properties.EffectWidth) ); anim_mix.AddTrack(wave); } else if (Properties.InteractiveEffect == InteractiveEffects.Wave_Rainbow) { AnimationTrack rainbowWave = new AnimationTrack("Rainbow Wave", 1.0f); rainbowWave.SetFrame(0.0f, new AnimationGradientCircle(origin, 0, new EffectBrush(new ColorSpectrum(ColorSpectrum.Rainbow).Flip()).SetBrushType(EffectBrush.BrushType.Radial), Properties.EffectWidth)); rainbowWave.SetFrame(1.0f, new AnimationGradientCircle(origin, Effects.canvas_width + (Properties.EffectWidth / 2), new EffectBrush(new ColorSpectrum(ColorSpectrum.Rainbow).Flip()).SetBrushType(EffectBrush.BrushType.Radial), Properties.EffectWidth)); anim_mix.AddTrack(rainbowWave); } else if (Properties.InteractiveEffect == InteractiveEffects.Wave_Filled) { AnimationTrack wave = new AnimationTrack("Filled Wave effect", 1.0f); wave.SetFrame(0.0f, new AnimationFilledCircle(origin, 0, primary_c, Properties.EffectWidth) ); wave.SetFrame(0.80f, new AnimationFilledCircle(origin, Effects.canvas_width * 0.80f, secondary_c, Properties.EffectWidth) ); wave.SetFrame(1.00f, new AnimationFilledCircle(origin, Effects.canvas_width + (Properties.EffectWidth / 2), Color.FromArgb(0, secondary_c), Properties.EffectWidth) ); anim_mix.AddTrack(wave); } else if (Properties.InteractiveEffect == InteractiveEffects.KeyPress) { ColorSpectrum spec = new ColorSpectrum(primary_c, secondary_c); spec = new ColorSpectrum(primary_c, Color.FromArgb(0, secondary_c)); spec.SetColorAt(0.80f, secondary_c); return(new input_item(key, 0.0f, Properties.WaitOnKeyUp, spec)); } else if (Properties.InteractiveEffect == InteractiveEffects.ArrowFlow) { AnimationTrack arrow = new AnimationTrack("Arrow Flow effect", 1.0f); arrow.SetFrame(0.0f, new AnimationLines( new AnimationLine[] { new AnimationLine(origin, origin, primary_c, Properties.EffectWidth), new AnimationLine(origin, origin, primary_c, Properties.EffectWidth) } ) ); arrow.SetFrame(0.33f, new AnimationLines( new AnimationLine[] { new AnimationLine(origin, new PointF(origin.X + Effects.canvas_width * 0.33f, origin.Y), Utils.ColorUtils.BlendColors(primary_c, secondary_c, 0.33D), Properties.EffectWidth), new AnimationLine(origin, new PointF(origin.X - Effects.canvas_width * 0.33f, origin.Y), Utils.ColorUtils.BlendColors(primary_c, secondary_c, 0.33D), Properties.EffectWidth) } ) ); arrow.SetFrame(0.66f, new AnimationLines( new AnimationLine[] { new AnimationLine(new PointF(origin.X + Effects.canvas_width * 0.33f, origin.Y), new PointF(origin.X + Effects.canvas_width * 0.66f, origin.Y), secondary_c, Properties.EffectWidth), new AnimationLine(new PointF(origin.X - Effects.canvas_width * 0.33f, origin.Y), new PointF(origin.X - Effects.canvas_width * 0.66f, origin.Y), secondary_c, Properties.EffectWidth) } ) ); arrow.SetFrame(1.0f, new AnimationLines( new AnimationLine[] { new AnimationLine(new PointF(origin.X + Effects.canvas_width * 0.66f, origin.Y), new PointF(origin.X + Effects.canvas_width, origin.Y), Color.FromArgb(0, secondary_c), Properties.EffectWidth), new AnimationLine(new PointF(origin.X - Effects.canvas_width * 0.66f, origin.Y), new PointF(origin.X - Effects.canvas_width, origin.Y), Color.FromArgb(0, secondary_c), Properties.EffectWidth) } ) ); anim_mix.AddTrack(arrow); } return(new input_item(key, 0.0f, Properties.WaitOnKeyUp, anim_mix)); }
private input_item CreateInputItem(Devices.DeviceKeys key, PointF origin) { Color primary_c = Properties.RandomPrimaryColor ? Utils.ColorUtils.GenerateRandomColor() : Properties.PrimaryColor; Color secondary_c = Properties.RandomSecondaryColor ? Utils.ColorUtils.GenerateRandomColor() : Properties.SecondaryColor; AnimationMix anim_mix = new AnimationMix(); if (Properties.InteractiveEffect == InteractiveEffects.Wave) { AnimationTrack wave = new AnimationTrack("Wave effect", 1.0f); wave.SetFrame(0.0f, new AnimationCircle(origin, 0, primary_c, Properties.EffectWidth) ); wave.SetFrame(0.80f, new AnimationCircle(origin, Effects.canvas_width * 0.80f, secondary_c, Properties.EffectWidth) ); wave.SetFrame(1.00f, new AnimationCircle(origin, Effects.canvas_width, Color.FromArgb(0, secondary_c), Properties.EffectWidth) ); anim_mix.AddTrack(wave); } else if (Properties.InteractiveEffect == InteractiveEffects.Wave_Rainbow) { float dT = (float)(Math.Sqrt((double)Properties.EffectWidth - 0.7) * Math.Sqrt(12.0)) * 0.0065f; AnimationTrack wave_red = new AnimationTrack("Wave effect (red)", 1.00f - dT * 6); AnimationTrack wave_orange = new AnimationTrack("Wave effect (orange)", 1.00f - dT * 5); AnimationTrack wave_yellow = new AnimationTrack("Wave effect (yellow)", 1.00f - dT * 4); AnimationTrack wave_green = new AnimationTrack("Wave effect (green)", 1.00f - dT * 3); AnimationTrack wave_lightblue = new AnimationTrack("Wave effect (light blue)", 1.00f - dT * 2); AnimationTrack wave_blue = new AnimationTrack("Wave effect (blue)", 1.00f - dT * 1); AnimationTrack wave_purple = new AnimationTrack("Wave effect (purple)", 1.00f); wave_red.SetFrame(0.0f, new AnimationCircle(origin, 0, Color.Red, Properties.EffectWidth) ); wave_red.SetFrame(1.00f - dT * 6, new AnimationCircle(origin, Effects.canvas_width, Color.Red, Properties.EffectWidth) ); wave_orange.SetFrame(0.0f, new AnimationCircle(origin, 0, Color.Orange, Properties.EffectWidth) ); wave_orange.SetFrame(0.0f + dT, new AnimationCircle(origin, 0, Color.Orange, Properties.EffectWidth) ); wave_orange.SetFrame(1.00f - dT * 5, new AnimationCircle(origin, Effects.canvas_width, Color.Orange, Properties.EffectWidth) ); wave_yellow.SetFrame(0.0f, new AnimationCircle(origin, 0, Color.Yellow, Properties.EffectWidth) ); wave_yellow.SetFrame(0.0f + dT * 2, new AnimationCircle(origin, 0, Color.Yellow, Properties.EffectWidth) ); wave_yellow.SetFrame(1.00f - dT * 4, new AnimationCircle(origin, Effects.canvas_width, Color.Yellow, Properties.EffectWidth) ); wave_green.SetFrame(0.0f, new AnimationCircle(origin, 0, Color.Green, Properties.EffectWidth) ); wave_green.SetFrame(0.0f + dT * 3, new AnimationCircle(origin, 0, Color.Green, Properties.EffectWidth) ); wave_green.SetFrame(1.00f - dT * 3, new AnimationCircle(origin, Effects.canvas_width, Color.Green, Properties.EffectWidth) ); wave_lightblue.SetFrame(0.0f, new AnimationCircle(origin, 0, Color.Blue, Properties.EffectWidth) ); wave_lightblue.SetFrame(0.0f + dT * 4, new AnimationCircle(origin, 0, Color.Blue, Properties.EffectWidth) ); wave_lightblue.SetFrame(1.00f - dT * 2, new AnimationCircle(origin, Effects.canvas_width, Color.Blue, Properties.EffectWidth) ); wave_blue.SetFrame(0.0f, new AnimationCircle(origin, 0, Color.DarkBlue, Properties.EffectWidth) ); wave_blue.SetFrame(0.0f + dT * 5, new AnimationCircle(origin, 0, Color.DarkBlue, Properties.EffectWidth) ); wave_blue.SetFrame(1.00f - dT, new AnimationCircle(origin, Effects.canvas_width, Color.DarkBlue, Properties.EffectWidth) ); wave_purple.SetFrame(0.0f, new AnimationCircle(origin, 0, Color.Purple, Properties.EffectWidth) ); wave_purple.SetFrame(0.0f + dT * 6, new AnimationCircle(origin, 0, Color.Purple, Properties.EffectWidth) ); wave_purple.SetFrame(1.00f, new AnimationCircle(origin, Effects.canvas_width, Color.Purple, Properties.EffectWidth) ); anim_mix.AddTrack(wave_red); anim_mix.AddTrack(wave_orange); anim_mix.AddTrack(wave_yellow); anim_mix.AddTrack(wave_green); anim_mix.AddTrack(wave_lightblue); anim_mix.AddTrack(wave_blue); anim_mix.AddTrack(wave_purple); } else if (Properties.InteractiveEffect == InteractiveEffects.Wave_Filled) { AnimationTrack wave = new AnimationTrack("Filled Wave effect", 1.0f); wave.SetFrame(0.0f, new AnimationFilledCircle(origin, 0, primary_c, Properties.EffectWidth) ); wave.SetFrame(0.80f, new AnimationFilledCircle(origin, Effects.canvas_width * 0.80f, secondary_c, Properties.EffectWidth) ); wave.SetFrame(1.00f, new AnimationFilledCircle(origin, Effects.canvas_width, Color.FromArgb(0, secondary_c), Properties.EffectWidth) ); anim_mix.AddTrack(wave); } else if (Properties.InteractiveEffect == InteractiveEffects.KeyPress) { ColorSpectrum spec = new ColorSpectrum(primary_c, secondary_c); spec = new ColorSpectrum(primary_c, Color.FromArgb(0, secondary_c)); spec.SetColorAt(0.80f, secondary_c); return(new input_item(key, 0.0f, spec)); } else if (Properties.InteractiveEffect == InteractiveEffects.ArrowFlow) { AnimationTrack arrow = new AnimationTrack("Arrow Flow effect", 1.0f); arrow.SetFrame(0.0f, new AnimationLines( new AnimationLine[] { new AnimationLine(origin, origin, primary_c, Properties.EffectWidth), new AnimationLine(origin, origin, primary_c, Properties.EffectWidth) } ) ); arrow.SetFrame(0.33f, new AnimationLines( new AnimationLine[] { new AnimationLine(origin, new PointF(origin.X + Effects.canvas_width * 0.33f, origin.Y), Utils.ColorUtils.BlendColors(primary_c, secondary_c, 0.33D), Properties.EffectWidth), new AnimationLine(origin, new PointF(origin.X - Effects.canvas_width * 0.33f, origin.Y), Utils.ColorUtils.BlendColors(primary_c, secondary_c, 0.33D), Properties.EffectWidth) } ) ); arrow.SetFrame(0.66f, new AnimationLines( new AnimationLine[] { new AnimationLine(new PointF(origin.X + Effects.canvas_width * 0.33f, origin.Y), new PointF(origin.X + Effects.canvas_width * 0.66f, origin.Y), secondary_c, Properties.EffectWidth), new AnimationLine(new PointF(origin.X - Effects.canvas_width * 0.33f, origin.Y), new PointF(origin.X - Effects.canvas_width * 0.66f, origin.Y), secondary_c, Properties.EffectWidth) } ) ); arrow.SetFrame(1.0f, new AnimationLines( new AnimationLine[] { new AnimationLine(new PointF(origin.X + Effects.canvas_width * 0.66f, origin.Y), new PointF(origin.X + Effects.canvas_width, origin.Y), Color.FromArgb(0, secondary_c), Properties.EffectWidth), new AnimationLine(new PointF(origin.X - Effects.canvas_width * 0.66f, origin.Y), new PointF(origin.X - Effects.canvas_width, origin.Y), Color.FromArgb(0, secondary_c), Properties.EffectWidth) } ) ); anim_mix.AddTrack(arrow); } return(new input_item(key, 0.0f, anim_mix)); }
public override EffectLayer Render(IGameState state) { previoustime = currenttime; currenttime = Utils.Time.GetMillisecondsSinceEpoch(); EffectLayer bg_layer = new EffectLayer("Rocket League - Background"); AnimationMix goal_explosion_mix = new AnimationMix(); Color playerColor = new Color(); Color enemyColor = new Color(); if (state is GameState_RocketLeague) { GameState_RocketLeague rlstate = state as GameState_RocketLeague; switch (rlstate.Player.Team) { case PlayerTeam.Blue: bg_layer.Fill(Properties.BlueColor); playerColor = Properties.BlueColor; enemyColor = Properties.OrangeColor; break; case PlayerTeam.Orange: bg_layer.Fill(Properties.OrangeColor); playerColor = Properties.OrangeColor; enemyColor = Properties.BlueColor; break; default: bg_layer.Fill(Properties.DefaultColor); playerColor = Properties.DefaultColor; enemyColor = Properties.DefaultColor; break; } if (Properties.ShowTeamScoreSplit) { if (rlstate.Match.BlueTeam_Score != 0 || rlstate.Match.OrangeTeam_Score != 0) { int total_score = rlstate.Match.BlueTeam_Score + rlstate.Match.OrangeTeam_Score; LinearGradientBrush the__split_brush = new LinearGradientBrush( new Point(0, 0), new Point(Effects.canvas_biggest, 0), Color.Red, Color.Red); Color[] colors = new Color[] { Properties.OrangeColor, //Orange //Team 1 Properties.OrangeColor, //Orange "Line" Properties.BlueColor, //Blue "Line" //Team 2 Properties.BlueColor //Blue }; int num_colors = colors.Length; float[] blend_positions = new float[num_colors]; if (rlstate.Match.OrangeTeam_Score > rlstate.Match.BlueTeam_Score) { blend_positions[0] = 0.0f; blend_positions[1] = ((float)rlstate.Match.OrangeTeam_Score / (float)total_score) - 0.01f; blend_positions[2] = ((float)rlstate.Match.OrangeTeam_Score / (float)total_score) + 0.01f; blend_positions[3] = 1.0f; } else if (rlstate.Match.OrangeTeam_Score < rlstate.Match.BlueTeam_Score) { blend_positions[0] = 0.0f; blend_positions[1] = (1.0f - ((float)rlstate.Match.BlueTeam_Score / (float)total_score)) - 0.01f; blend_positions[2] = (1.0f - ((float)rlstate.Match.BlueTeam_Score / (float)total_score)) + 0.01f; blend_positions[3] = 1.0f; } else { blend_positions[0] = 0.0f; blend_positions[1] = 0.49f; blend_positions[2] = 0.51f; blend_positions[3] = 1.0f; } ColorBlend color_blend = new ColorBlend(); color_blend.Colors = colors; color_blend.Positions = blend_positions; the__split_brush.InterpolationColors = color_blend; bg_layer.Fill(the__split_brush); } } if (Properties.ShowGoalExplosion) { if (rlstate.Match.YourTeam_LastScore < (rlstate.Player.Team == PlayerTeam.Blue ? rlstate.Match.BlueTeam_Score : rlstate.Match.OrangeTeam_Score)) { goal_explosion_track.SetFrame(0.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, 0, playerColor, 4) ); goal_explosion_track.SetFrame(1.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, playerColor, 4) ); goal_explosion_track_1.SetFrame(0.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, 0, playerColor, 4) ); goal_explosion_track_1.SetFrame(1.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, playerColor, 4) ); goal_explosion_track_2.SetFrame(0.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, 0, playerColor, 4) ); goal_explosion_track_2.SetFrame(1.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, playerColor, 4) ); goal_explosion_track_3.SetFrame(0.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, 0, playerColor, 4) ); goal_explosion_track_3.SetFrame(1.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, playerColor, 4) ); goal_explosion_track_4.SetFrame(0.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, 0, playerColor, 4) ); goal_explosion_track_4.SetFrame(1.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, playerColor, 4) ); goal_explosion_mix.Clear(); showAnimation_Explosion = true; } } if (Properties.ShowEnemyExplosion) { if (rlstate.Match.EnemyTeam_LastScore < (rlstate.Player.Team == PlayerTeam.Orange ? rlstate.Match.BlueTeam_Score : rlstate.Match.OrangeTeam_Score)) { goal_explosion_track.SetFrame(0.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, 0, enemyColor, 4) ); goal_explosion_track.SetFrame(1.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, enemyColor, 4) ); goal_explosion_track_1.SetFrame(0.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, 0, enemyColor, 4) ); goal_explosion_track_1.SetFrame(1.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, enemyColor, 4) ); goal_explosion_track_2.SetFrame(0.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, 0, enemyColor, 4) ); goal_explosion_track_2.SetFrame(1.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, enemyColor, 4) ); goal_explosion_track_3.SetFrame(0.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, 0, enemyColor, 4) ); goal_explosion_track_3.SetFrame(1.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, enemyColor, 4) ); goal_explosion_track_4.SetFrame(0.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, 0, enemyColor, 4) ); goal_explosion_track_4.SetFrame(1.0f, new AnimationCircle((int)(Effects.canvas_width_center * 0.9), Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, enemyColor, 4) ); goal_explosion_mix.Clear(); showAnimation_Explosion = true; } } if (showAnimation_Explosion) { bg_layer.Fill(Color.FromArgb(0, 0, 0)); goal_explosion_mix.AddTrack(goal_explosion_track); goal_explosion_mix.AddTrack(goal_explosion_track_1); goal_explosion_mix.AddTrack(goal_explosion_track_2); goal_explosion_mix.AddTrack(goal_explosion_track_3); goal_explosion_mix.AddTrack(goal_explosion_track_4); goal_explosion_mix.Draw(bg_layer.GetGraphics(), goalEffect_keyframe); goalEffect_keyframe += (currenttime - previoustime) / 1000.0f; if (goalEffect_keyframe >= goalEffect_animationTime) { showAnimation_Explosion = false; goalEffect_keyframe = 0; } } } return(bg_layer); }
private void Button_Click(object sender, RoutedEventArgs e) { AnimationMix sandking_epicenter_mix = new AnimationMix(); AnimationTrack sandking_epicenter_wave0 = new AnimationTrack("Sandsking Epicenter Wave0", 0.5f); sandking_epicenter_wave0.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(115, 255, 0), 4) ); sandking_epicenter_wave0.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(115, 255, 0), 4) ); AnimationTrack sandking_epicenter_wave1 = new AnimationTrack("Sandsking Epicenter Wave1", 0.5f, 2.0f); sandking_epicenter_wave1.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave1.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave2 = new AnimationTrack("Sandsking Epicenter Wave2", 0.5f, 2.16f); sandking_epicenter_wave2.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave2.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave3 = new AnimationTrack("Sandsking Epicenter Wave3", 0.5f, 2.32f); sandking_epicenter_wave3.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave3.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave4 = new AnimationTrack("Sandsking Epicenter Wave4", 0.5f, 2.48f); sandking_epicenter_wave4.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave4.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave5 = new AnimationTrack("Sandsking Epicenter Wave5", 0.5f, 2.64f); sandking_epicenter_wave5.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave5.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave6 = new AnimationTrack("Sandsking Epicenter Wave6", 0.5f, 2.8f); sandking_epicenter_wave6.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave6.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave7 = new AnimationTrack("Sandsking Epicenter Wave7", 0.5f, 2.96f); sandking_epicenter_wave7.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave7.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave8 = new AnimationTrack("Sandsking Epicenter Wave8", 0.5f, 3.12f); sandking_epicenter_wave8.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave8.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave9 = new AnimationTrack("Sandsking Epicenter Wave9", 0.5f, 3.28f); sandking_epicenter_wave9.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave9.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave10 = new AnimationTrack("Sandsking Epicenter Wave10", 0.5f, 3.44f); sandking_epicenter_wave10.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave10.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave11 = new AnimationTrack("Sandsking Epicenter Wave11", 0.5f, 3.6f); sandking_epicenter_wave11.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave11.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave12 = new AnimationTrack("Sandsking Epicenter Wave12", 0.5f, 3.76f); sandking_epicenter_wave12.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave12.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave13 = new AnimationTrack("Sandsking Epicenter Wave13", 0.5f, 3.92f); sandking_epicenter_wave13.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave13.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave14 = new AnimationTrack("Sandsking Epicenter Wave14", 0.5f, 4.08f); sandking_epicenter_wave14.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave14.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave15 = new AnimationTrack("Sandsking Epicenter Wave15", 0.5f, 4.24f); sandking_epicenter_wave15.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave15.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave16 = new AnimationTrack("Sandsking Epicenter Wave16", 0.5f, 4.4f); sandking_epicenter_wave16.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave16.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave17 = new AnimationTrack("Sandsking Epicenter Wave17", 0.5f, 4.56f); sandking_epicenter_wave17.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave17.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave18 = new AnimationTrack("Sandsking Epicenter Wave18", 0.5f, 4.72f); sandking_epicenter_wave18.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave18.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave19 = new AnimationTrack("Sandsking Epicenter Wave19", 0.5f, 4.88f); sandking_epicenter_wave19.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave19.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); AnimationTrack sandking_epicenter_wave20 = new AnimationTrack("Sandsking Epicenter Wave20", 0.5f, 5f); sandking_epicenter_wave20.SetFrame(0.0f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, 0, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_wave20.SetFrame(0.5f, new AnimationCircle(Effects.canvas_width_center, Effects.canvas_height_center, Effects.canvas_biggest / 2.0f, System.Drawing.Color.FromArgb(255, 160, 0), 4) ); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave0); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave1); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave2); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave3); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave4); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave5); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave6); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave7); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave8); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave9); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave10); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave11); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave12); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave13); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave14); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave15); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave16); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave17); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave18); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave19); sandking_epicenter_mix.AddTrack(sandking_epicenter_wave20); Window win = new Window(); win.Content = new Controls.Control_AnimationEditor() { AnimationMix = sandking_epicenter_mix }; win.Background = new SolidColorBrush(Color.FromRgb(0, 0, 0)); win.Show(); }