1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-27 13:53:10 +08:00
osu-lazer/osu.Game/Overlays/AccountCreation/ScreenWarning.cs

138 lines
5.5 KiB
C#
Raw Normal View History

// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
2022-06-17 15:37:17 +08:00
#nullable disable
using osu.Framework.Allocation;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
2018-12-06 14:49:06 +08:00
using osu.Framework.Graphics.Sprites;
using osu.Framework.Graphics.Textures;
using osu.Framework.Screens;
using osu.Game.Graphics;
using osu.Game.Graphics.Containers;
using osu.Game.Graphics.Sprites;
using osu.Game.Online.API;
using osu.Game.Overlays.Settings;
using osu.Game.Screens.Menu;
using osuTK;
using osuTK.Graphics;
namespace osu.Game.Overlays.AccountCreation
{
public class ScreenWarning : AccountCreationScreen
{
private OsuTextFlowContainer multiAccountExplanationText;
private LinkFlowContainer furtherAssistance;
2020-02-14 21:14:00 +08:00
2021-05-20 12:20:35 +08:00
[Resolved(canBeNull: true)]
2020-02-14 21:14:00 +08:00
private IAPIProvider api { get; set; }
2021-05-19 05:32:56 +08:00
[Resolved(canBeNull: true)]
private OsuGame game { get; set; }
2018-12-06 11:17:08 +08:00
private const string help_centre_url = "/help/wiki/Help_Centre#login";
public override void OnEntering(ScreenTransitionEvent e)
{
2021-05-20 05:06:21 +08:00
if (string.IsNullOrEmpty(api?.ProvidedUsername) || game?.UseDevelopmentServer == true)
{
2019-01-23 19:52:00 +08:00
this.FadeOut();
this.Push(new ScreenEntry());
return;
}
base.OnEntering(e);
}
[BackgroundDependencyLoader(true)]
2021-05-19 05:32:56 +08:00
private void load(OsuColour colours, TextureStore textures)
{
if (string.IsNullOrEmpty(api?.ProvidedUsername))
2018-12-22 16:54:04 +08:00
return;
2019-01-23 19:52:00 +08:00
InternalChildren = new Drawable[]
{
2018-12-06 14:49:06 +08:00
new Sprite
{
2018-12-06 14:49:06 +08:00
Anchor = Anchor.TopCentre,
Origin = Anchor.TopCentre,
Texture = textures.Get(@"Menu/dev-build-footer"),
},
new Sprite
{
Anchor = Anchor.BottomCentre,
Origin = Anchor.BottomCentre,
Texture = textures.Get(@"Menu/dev-build-footer"),
},
new FillFlowContainer
{
RelativeSizeAxes = Axes.Both,
Direction = FillDirection.Vertical,
Anchor = Anchor.TopCentre,
Origin = Anchor.TopCentre,
Padding = new MarginPadding(20),
Spacing = new Vector2(0, 5),
Children = new Drawable[]
{
2018-12-06 14:49:06 +08:00
new Container
2018-12-06 11:53:35 +08:00
{
2018-12-06 14:49:06 +08:00
RelativeSizeAxes = Axes.X,
Height = 150,
Child = new OsuLogo
{
Scale = new Vector2(0.1f),
Anchor = Anchor.Centre,
Triangles = false,
},
2018-12-06 11:53:35 +08:00
},
2018-12-06 14:49:06 +08:00
new OsuSpriteText
{
Anchor = Anchor.TopCentre,
Origin = Anchor.TopCentre,
Colour = Color4.Red,
Font = OsuFont.GetFont(size: 28, weight: FontWeight.Light),
2018-12-06 14:49:06 +08:00
Text = "Warning! 注意!",
},
multiAccountExplanationText = new OsuTextFlowContainer(cp => cp.Font = cp.Font.With(size: 12))
2018-12-06 14:49:06 +08:00
{
RelativeSizeAxes = Axes.X,
AutoSizeAxes = Axes.Y
},
new SettingsButton
{
Text = "Help, I can't access my account!",
Margin = new MarginPadding { Top = 50 },
Action = () => game?.OpenUrlExternally(help_centre_url)
},
new DangerousSettingsButton
{
Text = "I understand. This account isn't for me.",
2019-01-23 19:52:00 +08:00
Action = () => this.Push(new ScreenEntry())
2018-12-06 14:49:06 +08:00
},
furtherAssistance = new LinkFlowContainer(cp => cp.Font = cp.Font.With(size: 12))
2018-12-06 14:49:06 +08:00
{
Margin = new MarginPadding { Top = 20 },
Anchor = Anchor.TopCentre,
Origin = Anchor.TopCentre,
AutoSizeAxes = Axes.Both
},
}
}
};
multiAccountExplanationText.AddText("Are you ");
multiAccountExplanationText.AddText(api.ProvidedUsername, cp => cp.Colour = colours.BlueLight);
multiAccountExplanationText.AddText("? osu! has a policy of ");
multiAccountExplanationText.AddText("one account per person!", cp => cp.Colour = colours.Yellow);
multiAccountExplanationText.AddText(" Please be aware that creating more than one account per person may result in ");
multiAccountExplanationText.AddText("permanent deactivation of accounts", cp => cp.Colour = colours.Yellow);
multiAccountExplanationText.AddText(".");
furtherAssistance.AddText("Need further assistance? Contact us via our ");
furtherAssistance.AddLink("support system", help_centre_url);
furtherAssistance.AddText(".");
}
}
}