private Color4 colourForRepresentation(FruitVisualRepresentation representation) { switch (representation) { default: case FruitVisualRepresentation.Pear: return(new Color4(17, 136, 170, 255)); case FruitVisualRepresentation.Grape: return(new Color4(204, 102, 0, 255)); case FruitVisualRepresentation.Raspberry: return(new Color4(121, 9, 13, 255)); case FruitVisualRepresentation.Pineapple: return(new Color4(102, 136, 0, 255)); case FruitVisualRepresentation.Banana: switch (RNG.Next(0, 3)) { default: return(new Color4(255, 240, 0, 255)); case 1: return(new Color4(255, 192, 0, 255)); case 2: return(new Color4(214, 221, 28, 255)); } } }
private Framework.Graphics.Drawable createPulp(FruitVisualRepresentation representation) { const float large_pulp_3 = 8f * radius_adjust; const float distance_from_centre_3 = 0.15f; const float large_pulp_4 = large_pulp_3 * 0.925f; const float distance_from_centre_4 = distance_from_centre_3 / 0.925f; const float small_pulp = large_pulp_3 / 2;
private Drawable createDrawable(FruitVisualRepresentation rep) { Fruit fruit = new TestCatchFruit(rep) { Scale = 1.5f }; return(new DrawableFruit(fruit) { Anchor = Anchor.Centre, RelativePositionAxes = Axes.None, Position = Vector2.Zero, Alpha = 1, LifetimeStart = double.NegativeInfinity, LifetimeEnd = double.PositiveInfinity, }); }
private Drawable createDrawable(FruitVisualRepresentation rep, bool hyperdash = false) { Fruit fruit = new TestCatchFruit(rep) { Scale = 1.5f, HyperDashTarget = hyperdash ? new Banana() : null }; return(new DrawableFruit(fruit) { Anchor = Anchor.Centre, RelativePositionAxes = Axes.None, Position = Vector2.Zero, Alpha = 1, LifetimeStart = double.NegativeInfinity, LifetimeEnd = double.PositiveInfinity, }); }
private void setTexture(FruitVisualRepresentation visualRepresentation) { switch (visualRepresentation) { case FruitVisualRepresentation.Pear: SetTexture(Skin.GetTexture("fruit-pear"), Skin.GetTexture("fruit-pear-overlay")); break; case FruitVisualRepresentation.Grape: SetTexture(Skin.GetTexture("fruit-grapes"), Skin.GetTexture("fruit-grapes-overlay")); break; case FruitVisualRepresentation.Pineapple: SetTexture(Skin.GetTexture("fruit-apple"), Skin.GetTexture("fruit-apple-overlay")); break; case FruitVisualRepresentation.Raspberry: SetTexture(Skin.GetTexture("fruit-orange"), Skin.GetTexture("fruit-orange-overlay")); break; } }
private Drawable getFruitFor(FruitVisualRepresentation representation) { switch (representation) { case FruitVisualRepresentation.Pear: return(new PearPiece()); case FruitVisualRepresentation.Grape: return(new GrapePiece()); case FruitVisualRepresentation.Pineapple: return(new PineapplePiece()); case FruitVisualRepresentation.Banana: return(new BananaPiece()); case FruitVisualRepresentation.Raspberry: return(new RaspberryPiece()); } return(Empty()); }
private CatchSkinComponents getComponent(FruitVisualRepresentation hitObjectVisualRepresentation) { switch (hitObjectVisualRepresentation) { case FruitVisualRepresentation.Pear: return(CatchSkinComponents.FruitPear); case FruitVisualRepresentation.Grape: return(CatchSkinComponents.FruitGrapes); case FruitVisualRepresentation.Pineapple: return(CatchSkinComponents.FruitApple); case FruitVisualRepresentation.Raspberry: return(CatchSkinComponents.FruitOrange); case FruitVisualRepresentation.Banana: return(CatchSkinComponents.FruitBananas); default: throw new ArgumentOutOfRangeException(nameof(hitObjectVisualRepresentation), hitObjectVisualRepresentation, null); } }
private Framework.Graphics.Drawable createPulp(FruitVisualRepresentation representation) { const float large_pulp_3 = 8f * radius_adjust; const float distance_from_centre_3 = 0.15f; const float large_pulp_4 = large_pulp_3 * 0.925f; const float distance_from_centre_4 = distance_from_centre_3 / 0.925f; const float small_pulp = large_pulp_3 / 2; Vector2 positionAt(float angle, float distance) => new Vector2( distance * MathF.Sin(angle * MathF.PI / 180), distance * MathF.Cos(angle * MathF.PI / 180)); switch (representation) { default: return(new Container()); case FruitVisualRepresentation.Raspberry: return(new Container { RelativeSizeAxes = Axes.Both, Children = new Framework.Graphics.Drawable[] { new Pulp { AccentColour = AccentColour.Value, Size = new Vector2(small_pulp), Y = -0.34f, }, new Pulp { AccentColour = AccentColour.Value, Size = new Vector2(large_pulp_4), Position = positionAt(0, distance_from_centre_4), }, new Pulp { AccentColour = AccentColour.Value, Size = new Vector2(large_pulp_4), Position = positionAt(90, distance_from_centre_4), }, new Pulp { AccentColour = AccentColour.Value, Size = new Vector2(large_pulp_4), Position = positionAt(180, distance_from_centre_4), }, new Pulp { Size = new Vector2(large_pulp_4), AccentColour = AccentColour.Value, Position = positionAt(270, distance_from_centre_4), }, } }); case FruitVisualRepresentation.Pineapple: return(new Container { RelativeSizeAxes = Axes.Both, Children = new Framework.Graphics.Drawable[] { new Pulp { AccentColour = AccentColour.Value, Size = new Vector2(small_pulp), Y = -0.3f, }, new Pulp { AccentColour = AccentColour.Value, Size = new Vector2(large_pulp_4), Position = positionAt(45, distance_from_centre_4), }, new Pulp { AccentColour = AccentColour.Value, Size = new Vector2(large_pulp_4), Position = positionAt(135, distance_from_centre_4), }, new Pulp { AccentColour = AccentColour.Value, Size = new Vector2(large_pulp_4), Position = positionAt(225, distance_from_centre_4), }, new Pulp { Size = new Vector2(large_pulp_4), AccentColour = AccentColour.Value, Position = positionAt(315, distance_from_centre_4), }, } }); case FruitVisualRepresentation.Pear: return(new Container { RelativeSizeAxes = Axes.Both, Children = new Framework.Graphics.Drawable[] { new Pulp { AccentColour = AccentColour.Value, Size = new Vector2(small_pulp), Y = -0.33f, }, new Pulp { AccentColour = AccentColour.Value, Size = new Vector2(large_pulp_3), Position = positionAt(60, distance_from_centre_3), }, new Pulp { AccentColour = AccentColour.Value, Size = new Vector2(large_pulp_3), Position = positionAt(180, distance_from_centre_3), }, new Pulp { Size = new Vector2(large_pulp_3), AccentColour = AccentColour.Value, Position = positionAt(300, distance_from_centre_3), }, } }); case FruitVisualRepresentation.Grape: return(new Container { RelativeSizeAxes = Axes.Both, Children = new Framework.Graphics.Drawable[] { new Pulp { AccentColour = AccentColour.Value, Size = new Vector2(small_pulp), Y = -0.25f, }, new Pulp { AccentColour = AccentColour.Value, Size = new Vector2(large_pulp_3), Position = positionAt(0, distance_from_centre_3), }, new Pulp { AccentColour = AccentColour.Value, Size = new Vector2(large_pulp_3), Position = positionAt(120, distance_from_centre_3), }, new Pulp { Size = new Vector2(large_pulp_3), AccentColour = AccentColour.Value, Position = positionAt(240, distance_from_centre_3), }, } }); case FruitVisualRepresentation.Banana: return(new Container { RelativeSizeAxes = Axes.Both, Children = new Framework.Graphics.Drawable[] { new Pulp { AccentColour = AccentColour.Value, Size = new Vector2(small_pulp), Y = -0.3f }, new Pulp { AccentColour = AccentColour.Value, Size = new Vector2(large_pulp_4 * 0.8f, large_pulp_4 * 2.5f), Y = 0.05f, }, } }); } }
private Framework.Graphics.Drawable createPulp(FruitVisualRepresentation representation) { const float large_pulp_3 = 13f; const float distance_from_centre_3 = 0.23f; const float large_pulp_4 = large_pulp_3 * 0.925f; const float distance_from_centre_4 = distance_from_centre_3 / 0.925f; const float small_pulp = large_pulp_3 / 2; Vector2 positionAt(float angle, float distance) => new Vector2( distance * (float)Math.Sin(angle * Math.PI / 180), distance * (float)Math.Cos(angle * Math.PI / 180)); switch (representation) { default: return(new Container()); case FruitVisualRepresentation.Raspberry: return(new Container { RelativeSizeAxes = Axes.Both, Children = new Framework.Graphics.Drawable[] { new Pulp { Anchor = Anchor.TopCentre, Origin = Anchor.BottomCentre, AccentColour = AccentColour, Size = new Vector2(small_pulp), Y = 0.05f, }, new Pulp { AccentColour = AccentColour, Size = new Vector2(large_pulp_4), Position = positionAt(0, distance_from_centre_4), }, new Pulp { AccentColour = AccentColour, Size = new Vector2(large_pulp_4), Position = positionAt(90, distance_from_centre_4), }, new Pulp { AccentColour = AccentColour, Size = new Vector2(large_pulp_4), Position = positionAt(180, distance_from_centre_4), }, new Pulp { Size = new Vector2(large_pulp_4), AccentColour = AccentColour, Position = positionAt(270, distance_from_centre_4), }, } }); case FruitVisualRepresentation.Pineapple: return(new Container { RelativeSizeAxes = Axes.Both, Children = new Framework.Graphics.Drawable[] { new Pulp { Anchor = Anchor.TopCentre, Origin = Anchor.BottomCentre, AccentColour = AccentColour, Size = new Vector2(small_pulp), Y = 0.1f, }, new Pulp { AccentColour = AccentColour, Size = new Vector2(large_pulp_4), Position = positionAt(45, distance_from_centre_4), }, new Pulp { AccentColour = AccentColour, Size = new Vector2(large_pulp_4), Position = positionAt(135, distance_from_centre_4), }, new Pulp { AccentColour = AccentColour, Size = new Vector2(large_pulp_4), Position = positionAt(225, distance_from_centre_4), }, new Pulp { Size = new Vector2(large_pulp_4), AccentColour = AccentColour, Position = positionAt(315, distance_from_centre_4), }, } }); case FruitVisualRepresentation.Pear: return(new Container { RelativeSizeAxes = Axes.Both, Children = new Framework.Graphics.Drawable[] { new Pulp { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, AccentColour = AccentColour, Size = new Vector2(small_pulp), Y = -0.1f, }, new Pulp { AccentColour = AccentColour, Size = new Vector2(large_pulp_3), Position = positionAt(60, distance_from_centre_3), }, new Pulp { AccentColour = AccentColour, Size = new Vector2(large_pulp_3), Position = positionAt(180, distance_from_centre_3), }, new Pulp { Size = new Vector2(large_pulp_3), AccentColour = AccentColour, Position = positionAt(300, distance_from_centre_3), }, } }); case FruitVisualRepresentation.Grape: return(new Container { RelativeSizeAxes = Axes.Both, Children = new Framework.Graphics.Drawable[] { new Pulp { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, AccentColour = AccentColour, Size = new Vector2(small_pulp), }, new Pulp { AccentColour = AccentColour, Size = new Vector2(large_pulp_3), Position = positionAt(0, distance_from_centre_3), }, new Pulp { AccentColour = AccentColour, Size = new Vector2(large_pulp_3), Position = positionAt(120, distance_from_centre_3), }, new Pulp { Size = new Vector2(large_pulp_3), AccentColour = AccentColour, Position = positionAt(240, distance_from_centre_3), }, } }); case FruitVisualRepresentation.Banana: return(new Container { RelativeSizeAxes = Axes.Both, Children = new Framework.Graphics.Drawable[] { new Pulp { Anchor = Anchor.TopCentre, Origin = Anchor.TopCentre, AccentColour = AccentColour, Size = new Vector2(small_pulp), Y = -0.15f }, new Pulp { AccentColour = AccentColour, Size = new Vector2(large_pulp_4 * 1.2f, large_pulp_4 * 3), }, } }); } }
public TestCatchFruit(FruitVisualRepresentation rep) { VisualRepresentation = rep; StartTime = 1000000000000; }
public TestCatchFruit(FruitVisualRepresentation rep) { VisualRepresentation = rep; }
private Drawable createDrawableFruit(FruitVisualRepresentation rep, bool hyperdash = false) => setProperties(new DrawableFruit(new TestCatchFruit(rep)), hyperdash);