Files

120 lines
3.5 KiB
C#
Raw Permalink Normal View History

2021-04-23 21:08:37 +02:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using EvilSatellites.Menu;
using DavyKager;
namespace EvilSatellites.Screens
{
public class OptionsScreen : MenuScreen
{
public override void Activate()
{
MenuOptions = new MenuContainer("Options", "Set global options for the game.");
MenuOptions.Add(new MenuEntry("Music Volume", "Toggle between music volumes"))
.Add(new MenuEntry("Use screen reader", "Use screen reader speech instead of SAPI"))
2021-04-24 14:34:15 +02:00
.Add(new MenuEntry("Use Force Feedback", "Vibrate on certain game actions such as weapon fire, getting hit, etc."))
2021-04-24 23:31:43 +02:00
.Add(new MenuEntry("AI", "Your AI will sometimes comment on the things you're doing in game"))
2021-04-23 21:08:37 +02:00
.Add(new MenuEntry("Back", "Go Back to previous screen"));
base.Activate();
}
public override void SelectItem()
{
base.SelectItem();
if (CursorPosition == 0)
{
ChangeVolume();
}
if (CursorPosition == 1)
{
ChangeSpeech();
}
if (CursorPosition == 2)
2021-04-24 14:34:15 +02:00
{
ChangeForceFeedback();
}
if (CursorPosition == 3)
2021-04-24 23:31:43 +02:00
{
ChangeAI();
}
if (CursorPosition == 4)
2021-04-23 21:08:37 +02:00
{
2021-04-25 02:07:37 +02:00
GameSettings.SaveSettings();
2021-04-23 21:08:37 +02:00
Manager.RemoveScreen(this);
Manager.AddScreen(new MainMenuScreen());
}
}
public void ChangeSpeech()
{
2021-04-24 23:31:43 +02:00
if (GameSettings.PreferSAPI == true)
2021-04-23 21:08:37 +02:00
{
Tolk.PreferSAPI(false);
Tolk.TrySAPI(false);
Tolk.Output("Prefering screen reader");
2021-04-24 23:31:43 +02:00
GameSettings.PreferSAPI = false;
2021-04-23 21:08:37 +02:00
} else
{
Tolk.PreferSAPI(true);
Tolk.TrySAPI(true);
Tolk.Output("Prefering SAPI");
2021-04-24 23:31:43 +02:00
GameSettings.PreferSAPI = true;
2021-04-23 21:08:37 +02:00
}
}
public void ChangeVolume()
{
Inputs.Update();
if (Manager.Music.Volume > 0.9)
{
Manager.Music.Volume = 0f;
return;
}
if (Manager.Music.Volume < 0)
{
Manager.Music.Volume = 1;
}
if (Inputs.IsPressed(Microsoft.Xna.Framework.Input.Keys.LeftShift))
{
Manager.Music.Volume = Manager.Music.Volume - 0.1f;
} else
{
Manager.Music.Volume = Manager.Music.Volume + 0.1f;
}
}
2021-04-24 14:34:15 +02:00
public void ChangeForceFeedback()
{
if (GameSettings.UseForceFeedback)
{
GameSettings.UseForceFeedback = false;
Tolk.Output("Disabled force feedback");
}
else
{
GameSettings.UseForceFeedback = true;
Tolk.Output("Enabled force feedback");
Manager.Vibrations.AddVibration(1, 1, 500);
}
}
2021-04-24 23:31:43 +02:00
public void ChangeAI()
{
if (GameSettings.EnableAI)
{
GameSettings.EnableAI = false;
Tolk.Output("AI is now muted");
}
else
{
GameSettings.EnableAI = true;
Tolk.Output("AI is now unmuted");
}
}
2021-04-23 21:08:37 +02:00
}
}