11unit GameViewCredits;
22
3+ { $mode delphi}
4+
35interface
46
57uses
@@ -11,15 +13,21 @@ interface
1113type
1214 TViewCredits = class (TCastleView)
1315 published
14- ButtonMenu, ButtonCastle, ButtonAuthor: TCastleButton;
16+ ButtonMenu, ButtonCredits, ButtonRules, ButtonKeys, ButtonWeapon,
17+ ButtonCastle, ButtonAuthor, ButtonItch, ButtonDiscord, ButtonWeb: TCastleButton;
18+ GroupCredits, GroupRules, GroupKeys, GroupWeapon: TCastleUserInterface;
1519 public
1620 constructor Create(AOwner: TComponent); override;
1721 procedure Start ; override;
1822 function Press (const Event: TInputPressRelease): Boolean; override;
1923 private
2024 procedure ButtonMenuClick (Sender: TObject);
25+ procedure ButtonPanelClick (Sender: TObject);
2126 procedure ButtonCastleClick (Sender: TObject);
2227 procedure ButtonAuthorClick (Sender: TObject);
28+ procedure ButtonItchClick (Sender: TObject);
29+ procedure ButtonDiscordClick (Sender: TObject);
30+ procedure ButtonWebClick (Sender: TObject);
2331 end ;
2432
2533var
@@ -31,7 +39,7 @@ implementation
3139// System
3240 SysUtils,
3341// Castle
34- castlewindow, CastleOpenDocument,
42+ castlewindow, CastleOpenDocument, CastleApplicationProperties,
3543// Own
3644 gameviewmain;
3745
@@ -44,9 +52,18 @@ constructor TViewCredits.Create(AOwner: TComponent);
4452procedure TViewCredits.Start ;
4553begin
4654 inherited ;
47- ButtonMenu.OnClick := @ButtonMenuClick;
48- ButtonCastle.OnClick := @ButtonCastleClick;
49- ButtonAuthor.OnClick := @ButtonAuthorClick;
55+ ButtonMenu.OnClick := ButtonMenuClick;
56+ ButtonCredits.OnClick := ButtonPanelClick;
57+ ButtonRules.OnClick := ButtonPanelClick;
58+ ButtonKeys.OnClick := ButtonPanelClick;
59+ ButtonWeapon.OnClick := ButtonPanelClick;
60+ ButtonCastle.OnClick := ButtonCastleClick;
61+ ButtonAuthor.OnClick := ButtonAuthorClick;
62+ ButtonItch.OnClick := ButtonItchClick;
63+ ButtonDiscord.OnClick := ButtonDiscordClick;
64+ ButtonWeb.OnClick := ButtonWebClick;
65+
66+ ButtonKeys.Exists := ApplicationProperties.ShowUserInterfaceToQuit { $IFDEF WASI} or True { $ENDIF} ;
5067end ;
5168
5269function TViewCredits.Press (const Event: TInputPressRelease): Boolean;
@@ -74,6 +91,33 @@ procedure TViewCredits.ButtonCastleClick(Sender: TObject);
7491procedure TViewCredits.ButtonAuthorClick (Sender: TObject);
7592begin
7693 OpenURL(' https://github.com/phomm/Towerfight' );
77- end ;
94+ end ;
95+
96+ procedure TViewCredits.ButtonItchClick (Sender: TObject);
97+ begin
98+ OpenURL(' https://phomm.itch.io/tower-fight' );
99+ end ;
100+
101+ procedure TViewCredits.ButtonDiscordClick (Sender: TObject);
102+ begin
103+ OpenURL(' https://discord.gg/fz7bbM3dr3' );
104+ end ;
105+
106+ procedure TViewCredits.ButtonWebClick (Sender: TObject);
107+ begin
108+ OpenURL(' https://ephyre.ru' );
109+ end ;
110+
111+ procedure TViewCredits.ButtonPanelClick (Sender: TObject);
112+ begin
113+ GroupCredits.Exists := Sender = ButtonCredits;
114+ GroupRules.Exists := Sender = ButtonRules;
115+ GroupKeys.Exists := Sender = ButtonKeys;
116+ GroupWeapon.Exists := Sender = ButtonWeapon;
117+ ButtonCredits.Pressed := Sender = ButtonCredits;
118+ ButtonRules.Pressed := Sender = ButtonRules;
119+ ButtonKeys.Pressed := Sender = ButtonKeys;
120+ ButtonWeapon.Pressed := Sender = ButtonWeapon;
121+ end ;
78122
79123end .
0 commit comments