diff --git a/Aerochat/Aerochat.csproj b/Aerochat/Aerochat.csproj
index ad61720a..757ee2a2 100644
--- a/Aerochat/Aerochat.csproj
+++ b/Aerochat/Aerochat.csproj
@@ -137,6 +137,7 @@
+
@@ -145,11 +146,14 @@
+
+
+
@@ -305,6 +309,7 @@
+
@@ -315,6 +320,8 @@
+
+
diff --git a/Aerochat/Scenes/Caustics.jpg b/Aerochat/Scenes/Caustics.jpg
new file mode 100644
index 00000000..fdff25c1
Binary files /dev/null and b/Aerochat/Scenes/Caustics.jpg differ
diff --git a/Aerochat/Scenes/HappyAccidents.jpeg b/Aerochat/Scenes/HappyAccidents.jpeg
new file mode 100644
index 00000000..61ee511b
Binary files /dev/null and b/Aerochat/Scenes/HappyAccidents.jpeg differ
diff --git a/Aerochat/Scenes/Scenes.xml b/Aerochat/Scenes/Scenes.xml
index 673f8136..3b354341 100644
--- a/Aerochat/Scenes/Scenes.xml
+++ b/Aerochat/Scenes/Scenes.xml
@@ -1,30 +1,33 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Aerochat/Scenes/VolumeBeta.png b/Aerochat/Scenes/VolumeBeta.png
new file mode 100644
index 00000000..03cdcae4
Binary files /dev/null and b/Aerochat/Scenes/VolumeBeta.png differ
diff --git a/Aerochat/Scenes/XboxGrunge.png b/Aerochat/Scenes/XboxGrunge.png
new file mode 100644
index 00000000..4c784c46
Binary files /dev/null and b/Aerochat/Scenes/XboxGrunge.png differ
diff --git a/Aerochat/ViewModels/Scene.cs b/Aerochat/ViewModels/Scene.cs
index f3325ecb..801ae3ee 100644
--- a/Aerochat/ViewModels/Scene.cs
+++ b/Aerochat/ViewModels/Scene.cs
@@ -23,6 +23,7 @@ public class SceneViewModel : ViewModelBase
private string _color;
private string _textColor;
private string _shadowColor;
+ private string _credit;
public int Id
{
@@ -65,6 +66,12 @@ public string ShadowColor
set => SetProperty(ref _shadowColor, value);
}
+ public string Credit
+ {
+ get => _credit;
+ set => SetProperty(ref _credit, value);
+ }
+
public static SceneViewModel FromScene(XElement scene)
{
string colourStr = scene.Attribute("color").Value;
@@ -80,6 +87,7 @@ public static SceneViewModel FromScene(XElement scene)
DisplayName = scene.Attribute("displayname").Value,
Color = colourStr,
Default = bool.Parse(scene.Attribute("default").Value),
+ Credit = scene.Attribute("credit").Value,
TextColor = textBlack ? "#000000" : "#ffffff",
ShadowColor = textBlack ? "#ffffff" : "#000000"
};
diff --git a/Aerochat/Windows/About.xaml b/Aerochat/Windows/About.xaml
new file mode 100644
index 00000000..2b0b152b
--- /dev/null
+++ b/Aerochat/Windows/About.xaml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Aerochat/Windows/About.xaml.cs b/Aerochat/Windows/About.xaml.cs
new file mode 100644
index 00000000..5199bc49
--- /dev/null
+++ b/Aerochat/Windows/About.xaml.cs
@@ -0,0 +1,39 @@
+using Aerochat.Theme;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+namespace Aerochat.Windows
+{
+ public partial class About : Window
+ {
+ public About()
+ {
+ InitializeComponent();
+ // get all scenes
+ var scenes = ThemeService.Instance.Scenes;
+ string credits = "Aerochat is a project by nullptr. Most assets belong to Microsoft, please don't sue!\n\n";
+ foreach (var scene in scenes)
+ {
+ credits += $"\"{scene.DisplayName}\" was made by {scene.Credit}\n";
+ }
+
+ CreditsTextbox.Text = credits;
+ }
+
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+ Close();
+ }
+ }
+}
diff --git a/Aerochat/Windows/ChangeScene.xaml.cs b/Aerochat/Windows/ChangeScene.xaml.cs
index 031b638b..ee233232 100644
--- a/Aerochat/Windows/ChangeScene.xaml.cs
+++ b/Aerochat/Windows/ChangeScene.xaml.cs
@@ -66,7 +66,7 @@ private async void Border_PreviewMouseDown(object sender, MouseButtonEventArgs e
ThemeService.Instance.Scene = item.Scene;
foreach (var wnd in Application.Current.Windows)
{
- if (wnd is Chat chat && !chat.ViewModel.IsDM && chat.ViewModel.Recipient is not null)
+ if (wnd is Chat chat && (!chat.ViewModel.IsDM || chat.ViewModel.IsGroupChat) && chat.ViewModel.Recipient is not null)
{
chat.ViewModel.Recipient.Scene = item.Scene;
}
diff --git a/Aerochat/Windows/Home.xaml b/Aerochat/Windows/Home.xaml
index 8ba400c1..9bb9d1d6 100644
--- a/Aerochat/Windows/Home.xaml
+++ b/Aerochat/Windows/Home.xaml
@@ -282,6 +282,8 @@
+
+
diff --git a/Aerochat/Windows/Home.xaml.cs b/Aerochat/Windows/Home.xaml.cs
index 0d643f7a..e3f34583 100644
--- a/Aerochat/Windows/Home.xaml.cs
+++ b/Aerochat/Windows/Home.xaml.cs
@@ -656,5 +656,10 @@ private void SceneTileImage_PreviewMouseLeftButtonUp(object sender, MouseButtonE
{
new ChangeScene().ShowDialog();
}
+
+ private void CreditsBtn_Click(object sender, RoutedEventArgs e)
+ {
+ new About().ShowDialog();
+ }
}
}