public String blur(String path, int radius, double power) { String directory = Path.Combine(effect.MapsetPath, Path.GetDirectoryName(path), "blur"); String filename = Path.Combine(directory, Path.GetFileName(path)); if (System.IO.File.Exists(filename)) { return(filename); } if (!System.IO.Directory.Exists(directory)) { System.IO.Directory.CreateDirectory(directory); } var original = effect.GetMapsetBitmap(path); var originalBounds = BitmapHelper.FindTransparencyBounds(original); int padding = 20; var bitmap = new Bitmap(original.Width + padding * 2, original.Height + padding * 2, PixelFormat.Format32bppArgb); var blurredBitmap = new Bitmap(original.Width + padding * 2, original.Height + padding * 2, PixelFormat.Format32bppArgb); using (var graphics = Graphics.FromImage(bitmap)) graphics.DrawImage(original, padding, padding, originalBounds.Value, GraphicsUnit.Pixel); blurredBitmap = BitmapHelper.Blur(bitmap, radius, power).Bitmap; var bounds = BitmapHelper.FindTransparencyBounds(bitmap); var trimBounds = bounds.Value; var trimmedBitmap = new Bitmap(trimBounds.Width, trimBounds.Height); using (var trimGraphics = Graphics.FromImage(trimmedBitmap)) trimGraphics.DrawImage(blurredBitmap, 0, 0, trimBounds, GraphicsUnit.Pixel); trimmedBitmap.Save(filename, ImageFormat.Png); trimmedBitmap.Dispose(); blurredBitmap.Dispose(); bitmap.Dispose(); return(filename); }
public OsbSprite GenerateBoxes(StoryboardObjectGenerator generator, string layerName, int soundDelay, string soundEffect, Color4 Color, DialogTiming timing, float pointerScale, float Fade, Position position, Pointer pointer, Push push, bool centre, float lineWidth, float lineHeight, OsbSprite spriteBox, bool startTriggerGroup = false, string triggerType = "", int startTrigger = 0, int endTrigger = 0, int triggerGroup = 0) { var d = 300; var fadeTime = 500; var PushValue = 30; var biggerBox = 10; var boxPos = centre ? new Vector2(position.position.X - lineWidth * 0.5f - (biggerBox / 2) - 3, position.position.Y - (biggerBox / 2) - 4) : new Vector2(position.position.X - (biggerBox / 2) - 3, position.position.Y - (biggerBox / 2) - 4); var layer = generator.GetLayer(layerName); // var inputBox = layer.CreateSprite("sb/dialog/box/b.png", OsbOrigin.TopLeft, boxPos); var inputBox = layer.CreateAnimation("sb/dialog/box/b.png", 30, 60, OsbLoopType.LoopForever, OsbOrigin.TopLeft, boxPos); var bitmapInputBox = generator.GetMapsetBitmap("sb/pixel.png"); var bitmapInputBox2 = generator.GetMapsetBitmap("sb/pixel.png"); var bitmapInputBoxWidth = ((lineWidth / bitmapInputBox.Width) + biggerBox); var bitmapInputBoxHeight = (lineHeight / bitmapInputBox.Height) + biggerBox; var widthInputBox = bitmapInputBoxWidth / 900; var heightInputBox = bitmapInputBoxHeight / 400; var bWidth = widthInputBox * 900; var bHeight = heightInputBox * 900; // var bitmapPointer = generator.GetMapsetBitmap("sb/dialog/pointers/pointer.png"); // var bitmapPointerCorner = generator.GetMapsetBitmap("sb/dialog/pointers/pointerCorner.png"); // generator.Log($"width: {widthInputBox} heigt: {heightInputBox}"); if (startTriggerGroup) { inputBox.StartTriggerGroup(triggerType, startTrigger, endTrigger, triggerGroup); } // sfx - message-1 var message1 = layer.CreateSample(soundEffect, timing.startTime - d + soundDelay, 40); // // start style if (pointer == Pointer.None) { inputBox.Color(timing.startTime - d, Color); inputBox.ScaleVec(timing.startTime - d, widthInputBox, heightInputBox); inputBox.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); inputBox.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); if (push == Push.None) { if (push == Push.Up) { inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y + PushValue, boxPos.Y); inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y - PushValue); } } if (push == Push.Down) { inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y - PushValue, boxPos.Y); inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y + PushValue); } if (push == Push.Left) { inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X + PushValue, boxPos.X); inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X - PushValue); } if (push == Push.Right) { inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X - PushValue, boxPos.X); inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X + PushValue); } } // end style else { inputBox.Color(timing.startTime - d, Color); inputBox.ScaleVec(timing.startTime - d, widthInputBox, heightInputBox); inputBox.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); inputBox.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); if (push == Push.None) { if (push == Push.Up) { inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y + PushValue, boxPos.Y); inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y - PushValue); } } if (push == Push.Down) { inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y - PushValue, boxPos.Y); inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y + PushValue); } if (push == Push.Left) { inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X + PushValue, boxPos.X); inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X - PushValue); } if (push == Push.Right) { inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X - PushValue, boxPos.X); inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X + PushValue); } } // // start style // if (pointer == Pointer.Up) // { // inputBox.Color(timing.startTime - d, Color); // inputBox.ScaleVec(timing.startTime - d, widthInputBox, heightInputBox); // inputBox.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); // inputBox.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); // var pointerPos = new Vector2(boxPos.X + (lineWidth / 2), boxPos.Y); // var point = layer.CreateSprite("sb/dialog/pointers/pointer.png", OsbOrigin.BottomCentre, pointerPos); // if (startTriggerGroup) // { // point.StartTriggerGroup(triggerType, startTrigger, endTrigger, triggerGroup); // } // point.Color(timing.startTime - d, Color); // point.Scale(timing.startTime, pointerScale); // point.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); // point.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); // if (push == Push.None) // { // point.MoveX(timing.startTime - d, pointerPos.X); // point.MoveY(timing.endTime + d, pointerPos.Y); // } // if (push == Push.Up) // { // inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y + PushValue, boxPos.Y); // inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y - PushValue); // point.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.Y + PushValue, pointerPos.Y); // point.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.Y, pointerPos.Y - PushValue); // } // if (push == Push.Down) // { // inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y - PushValue, boxPos.Y); // inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y + PushValue); // point.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.Y - PushValue, pointerPos.Y); // point.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.Y, pointerPos.Y + PushValue); // } // if (push == Push.Left) // { // inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X + PushValue, boxPos.X); // inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X - PushValue); // point.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.X + PushValue, pointerPos.X); // point.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.X, pointerPos.X - PushValue); // } // if (push == Push.Right) // { // inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X - PushValue, boxPos.X); // inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X + PushValue); // point.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.X - PushValue, pointerPos.X); // point.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.X, pointerPos.X + PushValue); // } // if (startTriggerGroup) // { // point.EndGroup(); // } // spriteBox = point; // } // // end style // // start style // if (pointer == Pointer.Down) // { // inputBox.Color(timing.startTime - d, Color); // inputBox.ScaleVec(timing.startTime - d, widthInputBox, heightInputBox); // inputBox.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); // inputBox.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); // var pointerPos = new Vector2(boxPos.X + (lineWidth / 2), boxPos.Y + heightInputBox); // var point = layer.CreateSprite("sb/dialog/pointers/pointer.png", OsbOrigin.BottomCentre, pointerPos); // if (startTriggerGroup) // { // point.StartTriggerGroup(triggerType, startTrigger, endTrigger, triggerGroup); // } // point.Rotate(timing.startTime, MathHelper.DegreesToRadians(180)); // point.Scale(timing.startTime, pointerScale); // point.Color(timing.startTime - d, Color); // point.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); // point.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); // if (push == Push.None) // { // point.MoveX(timing.startTime - d, pointerPos.X); // point.MoveY(timing.endTime + d, pointerPos.Y); // } // if (push == Push.Up) // { // inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y + PushValue, boxPos.Y); // inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y - PushValue); // point.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.Y + PushValue, pointerPos.Y); // point.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.Y, pointerPos.Y - PushValue); // } // if (push == Push.Down) // { // inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y - PushValue, boxPos.Y); // inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y + PushValue); // point.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.Y - PushValue, pointerPos.Y); // point.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.Y, pointerPos.Y + PushValue); // } // if (push == Push.Left) // { // inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X + PushValue, boxPos.X); // inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X - PushValue); // point.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.X + PushValue, pointerPos.X); // point.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.X, pointerPos.X - PushValue); // } // if (push == Push.Right) // { // inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X - PushValue, boxPos.X); // inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X + PushValue); // point.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.X - PushValue, pointerPos.X); // point.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.X, pointerPos.X + PushValue); // } // if (startTriggerGroup) // { // point.EndGroup(); // } // spriteBox = point; // } // // end style // // start style // if (pointer == Pointer.CentreLeft) // { // inputBox.Color(timing.startTime - d, Color); // inputBox.ScaleVec(timing.startTime - d, widthInputBox, heightInputBox); // inputBox.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); // inputBox.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); // var pointerPos = new Vector2(boxPos.X, boxPos.Y + (heightInputBox / 2)); // var point = layer.CreateSprite("sb/dialog/pointers/pointer.png", OsbOrigin.BottomCentre, pointerPos); // if (startTriggerGroup) // { // point.StartTriggerGroup(triggerType, startTrigger, endTrigger, triggerGroup); // } // point.Rotate(timing.startTime, MathHelper.DegreesToRadians(-90)); // point.Scale(timing.startTime, pointerScale); // point.Color(timing.startTime - d, Color); // point.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); // point.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); // if (push == Push.None) // { // point.MoveX(timing.startTime - d, pointerPos.X); // point.MoveY(timing.endTime + d, pointerPos.Y); // } // if (push == Push.Up) // { // inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y + PushValue, boxPos.Y); // inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y - PushValue); // point.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.Y + PushValue, pointerPos.Y); // point.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.Y, pointerPos.Y - PushValue); // } // if (push == Push.Down) // { // inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y - PushValue, boxPos.Y); // inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y + PushValue); // point.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.Y - PushValue, pointerPos.Y); // point.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.Y, pointerPos.Y + PushValue); // } // if (push == Push.Left) // { // inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X + PushValue, boxPos.X); // inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X - PushValue); // point.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.X + PushValue, pointerPos.X); // point.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.X, pointerPos.X - PushValue); // } // if (push == Push.Right) // { // inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X - PushValue, boxPos.X); // inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X + PushValue); // point.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.X - PushValue, pointerPos.X); // point.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.X, pointerPos.X + PushValue); // } // if (startTriggerGroup) // { // point.EndGroup(); // } // spriteBox = point; // } // // end style // // start style // if (pointer == Pointer.CentreRight) // { // inputBox.Color(timing.startTime - d, Color); // inputBox.ScaleVec(timing.startTime - d, widthInputBox, heightInputBox); // inputBox.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); // inputBox.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); // var pointerPos = new Vector2(boxPos.X + widthInputBox, boxPos.Y + (heightInputBox / 2)); // var point = layer.CreateSprite("sb/dialog/pointers/pointer.png", OsbOrigin.BottomCentre, pointerPos); // if (startTriggerGroup) // { // point.StartTriggerGroup(triggerType, startTrigger, endTrigger, triggerGroup); // } // point.Rotate(timing.startTime, MathHelper.DegreesToRadians(90)); // point.Scale(timing.startTime, pointerScale); // point.Color(timing.startTime - d, Color); // point.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); // point.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); // if (push == Push.None) // { // point.MoveX(timing.startTime - d, pointerPos.X); // point.MoveY(timing.endTime + d, pointerPos.Y); // } // if (push == Push.Up) // { // inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y + PushValue, boxPos.Y); // inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y - PushValue); // point.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.Y + PushValue, pointerPos.Y); // point.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.Y, pointerPos.Y - PushValue); // } // if (push == Push.Down) // { // inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y - PushValue, boxPos.Y); // inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y + PushValue); // point.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.Y - PushValue, pointerPos.Y); // point.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.Y, pointerPos.Y + PushValue); // } // if (push == Push.Left) // { // inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X + PushValue, boxPos.X); // inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X - PushValue); // point.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.X + PushValue, pointerPos.X); // point.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.X, pointerPos.X - PushValue); // } // if (push == Push.Right) // { // inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X - PushValue, boxPos.X); // inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X + PushValue); // point.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.X - PushValue, pointerPos.X); // point.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.X, pointerPos.X + PushValue); // } // if (startTriggerGroup) // { // point.EndGroup(); // } // spriteBox = point; // } // // end style // // start style // if (pointer == Pointer.TopLeft) // { // inputBox.Color(timing.startTime - d, Color); // inputBox.ScaleVec(timing.startTime - d, widthInputBox, heightInputBox); // inputBox.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); // inputBox.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); // var pointerPos = new Vector2(boxPos.X + (bitmapPointerCorner.Height / 4) + 0.5f, boxPos.Y + (bitmapPointerCorner.Height / 4) + 0.5f); // var point = layer.CreateSprite("sb/dialog/pointers/pointerCorner.png", OsbOrigin.BottomCentre, pointerPos); // if (startTriggerGroup) // { // point.StartTriggerGroup(triggerType, startTrigger, endTrigger, triggerGroup); // } // point.Rotate(timing.startTime, MathHelper.DegreesToRadians(-45)); // point.Scale(timing.startTime, pointerScale); // point.Color(timing.startTime - d, Color); // point.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); // point.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); // if (push == Push.None) // { // point.MoveX(timing.startTime - d, pointerPos.X); // point.MoveY(timing.endTime + d, pointerPos.Y); // } // if (push == Push.Up) // { // inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y + PushValue, boxPos.Y); // inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y - PushValue); // point.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.Y + PushValue, pointerPos.Y); // point.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.Y, pointerPos.Y - PushValue); // } // if (push == Push.Down) // { // inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y - PushValue, boxPos.Y); // inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y + PushValue); // point.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.Y - PushValue, pointerPos.Y); // point.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.Y, pointerPos.Y + PushValue); // } // if (push == Push.Left) // { // inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X + PushValue, boxPos.X); // inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X - PushValue); // point.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.X + PushValue, pointerPos.X); // point.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.X, pointerPos.X - PushValue); // } // if (push == Push.Right) // { // inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X - PushValue, boxPos.X); // inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X + PushValue); // point.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.X - PushValue, pointerPos.X); // point.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.X, pointerPos.X + PushValue); // } // if (startTriggerGroup) // { // point.EndGroup(); // } // spriteBox = point; // } // // end style // // start style // if (pointer == Pointer.TopRight) // { // inputBox.Color(timing.startTime - d, Color); // inputBox.ScaleVec(timing.startTime - d, widthInputBox, heightInputBox); // inputBox.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); // inputBox.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); // var pointerPos = new Vector2(boxPos.X + widthInputBox - (bitmapPointerCorner.Height / 4) - 0.5f, boxPos.Y + (bitmapPointerCorner.Height / 4) + 0.5f); // var point = layer.CreateSprite("sb/dialog/pointers/pointerCorner.png", OsbOrigin.BottomCentre, pointerPos); // if (startTriggerGroup) // { // point.StartTriggerGroup(triggerType, startTrigger, endTrigger, triggerGroup); // } // point.Rotate(timing.startTime, MathHelper.DegreesToRadians(45)); // point.Scale(timing.startTime, pointerScale); // point.Color(timing.startTime - d, Color); // point.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); // point.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); // if (push == Push.None) // { // point.MoveX(timing.startTime - d, pointerPos.X); // point.MoveY(timing.endTime + d, pointerPos.Y); // } // if (push == Push.Up) // { // inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y + PushValue, boxPos.Y); // inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y - PushValue); // point.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.Y + PushValue, pointerPos.Y); // point.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.Y, pointerPos.Y - PushValue); // } // if (push == Push.Down) // { // inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y - PushValue, boxPos.Y); // inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y + PushValue); // point.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.Y - PushValue, pointerPos.Y); // point.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.Y, pointerPos.Y + PushValue); // } // if (push == Push.Left) // { // inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X + PushValue, boxPos.X); // inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X - PushValue); // point.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.X + PushValue, pointerPos.X); // point.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.X, pointerPos.X - PushValue); // } // if (push == Push.Right) // { // inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X - PushValue, boxPos.X); // inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X + PushValue); // point.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.X - PushValue, pointerPos.X); // point.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.X, pointerPos.X + PushValue); // } // if (startTriggerGroup) // { // point.EndGroup(); // } // spriteBox = point; // } // // end style // // start style // if (pointer == Pointer.BottomLeft) // { // inputBox.Color(timing.startTime - d, Color); // inputBox.ScaleVec(timing.startTime - d, widthInputBox, heightInputBox); // inputBox.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); // inputBox.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); // var pointerPos = new Vector2(boxPos.X + (bitmapPointerCorner.Height / 4) + 0.5f, boxPos.Y + heightInputBox - (bitmapPointerCorner.Height / 4) - 0.5f); // var point = layer.CreateSprite("sb/dialog/pointers/pointerCorner.png", OsbOrigin.BottomCentre, pointerPos); // if (startTriggerGroup) // { // point.StartTriggerGroup(triggerType, startTrigger, endTrigger, triggerGroup); // } // point.Rotate(timing.startTime, MathHelper.DegreesToRadians(-135)); // point.Scale(timing.startTime, pointerScale); // point.Color(timing.startTime - d, Color); // point.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); // point.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); // if (push == Push.None) // { // point.MoveX(timing.startTime - d, pointerPos.X); // point.MoveY(timing.endTime + d, pointerPos.Y); // } // if (push == Push.Up) // { // inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y + PushValue, boxPos.Y); // inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y - PushValue); // point.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.Y + PushValue, pointerPos.Y); // point.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.Y, pointerPos.Y - PushValue); // } // if (push == Push.Down) // { // inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y - PushValue, boxPos.Y); // inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y + PushValue); // point.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.Y - PushValue, pointerPos.Y); // point.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.Y, pointerPos.Y + PushValue); // } // if (push == Push.Left) // { // inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X + PushValue, boxPos.X); // inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X - PushValue); // point.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.X + PushValue, pointerPos.X); // point.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.X, pointerPos.X - PushValue); // } // if (push == Push.Right) // { // inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X - PushValue, boxPos.X); // inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X + PushValue); // point.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.X - PushValue, pointerPos.X); // point.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.X, pointerPos.X + PushValue); // } // if (startTriggerGroup) // { // point.EndGroup(); // } // spriteBox = point; // } // // end style // // start style // if (pointer == Pointer.BottomRight) // { // inputBox.Color(timing.startTime - d, Color); // inputBox.ScaleVec(timing.startTime - d, widthInputBox, heightInputBox); // inputBox.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); // inputBox.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); // var pointerPos = new Vector2(boxPos.X + widthInputBox - (bitmapPointerCorner.Height / 4) - 0.5f, boxPos.Y + heightInputBox - (bitmapPointerCorner.Height / 4) - 0.5f); // var point = layer.CreateSprite("sb/dialog/pointers/pointerCorner.png", OsbOrigin.BottomCentre, pointerPos); // if (startTriggerGroup) // { // point.StartTriggerGroup(triggerType, startTrigger, endTrigger, triggerGroup); // } // point.Rotate(timing.startTime, MathHelper.DegreesToRadians(135)); // point.Scale(timing.startTime, pointerScale); // point.Color(timing.startTime - d, Color); // point.Fade(timing.startTime - d, timing.startTime - d + 200, 0, Fade); // point.Fade(timing.endTime + d - fadeTime, timing.endTime + d, Fade, 0); // if (push == Push.None) // { // point.MoveX(timing.startTime - d, pointerPos.X); // point.MoveY(timing.endTime + d, pointerPos.Y); // } // if (push == Push.Up) // { // inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y + PushValue, boxPos.Y); // inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y - PushValue); // point.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.Y + PushValue, pointerPos.Y); // point.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.Y, pointerPos.Y - PushValue); // } // if (push == Push.Down) // { // inputBox.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.Y - PushValue, boxPos.Y); // inputBox.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.Y, boxPos.Y + PushValue); // point.MoveY(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.Y - PushValue, pointerPos.Y); // point.MoveY(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.Y, pointerPos.Y + PushValue); // } // if (push == Push.Left) // { // inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X + PushValue, boxPos.X); // inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X - PushValue); // point.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.X + PushValue, pointerPos.X); // point.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.X, pointerPos.X - PushValue); // } // if (push == Push.Right) // { // inputBox.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, boxPos.X - PushValue, boxPos.X); // inputBox.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), boxPos.X, boxPos.X + PushValue); // point.MoveX(OsbEasing.OutBack, timing.startTime - d, timing.startTime - d + 400, pointerPos.X - PushValue, pointerPos.X); // point.MoveX(OsbEasing.OutSine, timing.endTime + (d * 2) - 400, timing.endTime + (d * 2), pointerPos.X, pointerPos.X + PushValue); // } // if (startTriggerGroup) // { // point.EndGroup(); // } // spriteBox = point; // } // // end style if (startTriggerGroup) { inputBox.EndGroup(); } spriteBox = inputBox; return(spriteBox); }
public void Overlay() { var bitmap = generator.GetMapsetBitmap("sb/HUD/overlay.png"); var sprite = generator.GetLayer("HUD").CreateSprite("sb/HUD/overlay.png", OsbOrigin.Centre); sprite.Scale(OsbEasing.OutSine, startTime - FadeTime, startTime, 520.0f / bitmap.Height, 480.0f / bitmap.Height); sprite.Fade(startTime - FadeTime, startTime, 0, 0.2f); sprite.Fade(endTime, endTime + FadeTime, 0.2f, 0); sprite.Additive(startTime, endTime); var duration = 15000; var loopCount = (endTime - startTime) / duration; for (var i = startTime; i < startTime + duration; i += 500) { var particleLeft = generator.GetLayer("HUD").CreateSprite("sb/pixel.png", OsbOrigin.Centre); var particleRight = generator.GetLayer("HUD").CreateSprite("sb/pixel.png", OsbOrigin.Centre); var pad = 10; var startX = new Vector2(-98, 12); var startY = new Vector2(0, 240); var endX = new Vector2(-98, 26); var endY = new Vector2(240, 436); var rotation = MathHelper.DegreesToRadians(90); particleLeft.StartLoopGroup(i, loopCount); particleLeft.ScaleVec(OsbEasing.Out, 0, duration / 2, 1, 0, 1, 7); particleLeft.ScaleVec(OsbEasing.In, duration / 2, duration, 1, 7, 1, 0); // first half particleLeft.MoveX(OsbEasing.Out, 0, duration / 2, startX.Y + pad, startX.X + pad); particleLeft.MoveY(0, duration / 2, startY.X, startY.Y); // second half particleLeft.MoveX(OsbEasing.InQuad, duration / 2, duration, endX.X + pad, endX.Y + pad); particleLeft.MoveY(duration / 2, duration, endY.X, endY.Y); particleLeft.EndGroup(); particleLeft.Fade(i, 0.2f); particleLeft.Rotate(i, rotation); particleLeft.Additive(i, i + duration); var startX2 = new Vector2(738, 628); var startY2 = new Vector2(0, 240); var endX2 = new Vector2(738, 614); var endY2 = new Vector2(240, 436); particleRight.StartLoopGroup(i, loopCount); particleRight.ScaleVec(OsbEasing.Out, 0, duration / 2, 1, 0, 1, 7); particleRight.ScaleVec(OsbEasing.In, duration / 2, duration, 1, 7, 1, 0); // first half particleRight.MoveX(OsbEasing.Out, 0, duration / 2, startX2.Y - pad, startX2.X - pad); particleRight.MoveY(0, duration / 2, startY2.X, startY2.Y); // second half particleRight.MoveX(OsbEasing.InQuad, duration / 2, duration, endX2.X - pad, endX2.Y - pad); particleRight.MoveY(duration / 2, duration, endY2.X, endY2.Y); particleRight.EndGroup(); particleRight.Fade(i, 0.2f); particleRight.Rotate(i, rotation); particleRight.Additive(i, i + duration); } var duration2 = 6500; var loopCount2 = (endTime - startTime) / duration2; for (var i = startTime; i < startTime + duration2; i += 1000) { var moveBy = 61; var posLeft = new Vector2(-25, 240); var posRight = new Vector2(665, 240); var bitmapLines = generator.GetMapsetBitmap("sb/HUD/line.png"); var sideLinesLeft = generator.GetLayer("HUD").CreateSprite("sb/HUD/line.png", OsbOrigin.CentreLeft); var sideLinesRight = generator.GetLayer("HUD").CreateSprite("sb/HUD/line.png", OsbOrigin.CentreRight); sideLinesLeft.StartLoopGroup(i, loopCount2); sideLinesLeft.MoveY(0, duration2, posLeft.Y, posLeft.Y); sideLinesLeft.MoveX(OsbEasing.OutCirc, 0, duration2, posLeft.X, posLeft.X - moveBy); sideLinesLeft.Scale(OsbEasing.OutCirc, 0, duration2, 370.0f / bitmapLines.Height, 458.0f / bitmapLines.Height); sideLinesLeft.Fade(0, duration2 / 4, 0, 0.15f); sideLinesLeft.Fade(duration2 - duration2 / 2, duration2, 0.15f, 0); sideLinesLeft.Additive(0, duration2); sideLinesLeft.EndGroup(); sideLinesRight.StartLoopGroup(i, loopCount2); sideLinesRight.FlipH(0, duration2); sideLinesRight.MoveY(0, duration2, posRight.Y, posRight.Y); sideLinesRight.MoveX(OsbEasing.OutCirc, 0, duration2, posRight.X, posRight.X + moveBy); sideLinesRight.Scale(OsbEasing.OutCirc, 0, duration2, 370.0f / bitmapLines.Height, 458.0f / bitmapLines.Height); sideLinesRight.Fade(0, duration2 / 4, 0, 0.15f); sideLinesRight.Fade(duration2 - duration2 / 2, duration2, 0.15f, 0); sideLinesRight.Additive(0, duration2); sideLinesRight.EndGroup(); } }