Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added a quick start menu on launch. #39

Merged
merged 1 commit into from
Feb 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified 1.4/Assemblies/CombatAI.dll
Binary file not shown.
5 changes: 5 additions & 0 deletions 1.4/Languages/English/Keyed/Translations.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,14 @@
<CombatAI>Combat AI 5000</CombatAI>
<CombatAI.Sym.Empty></CombatAI.Sym.Empty>
<CombatAI.Close>Close</CombatAI.Close>
<CombatAI.Apply>Apply</CombatAI.Apply>
<CombatAI.Open>Open</CombatAI.Open>
<CombatAI.Hide>Hide</CombatAI.Hide>
<CombatAI.Expand>Hide</CombatAI.Expand>
<CombatAI.Quick.Welcome>Welcome to CAI-5000</CombatAI.Quick.Welcome>
<CombatAI.Quick.Welcome.Description>This quick start page will help you setup CAI-5000's many different features!</CombatAI.Quick.Welcome.Description>
<CombatAI.Quick.QuickSetup>Quick Setup Options</CombatAI.Quick.QuickSetup>
<CombatAI.Quick.Difficulty>Please select a difficulty level</CombatAI.Quick.Difficulty>
<CombatAI.PlaceWorker.WallMounted>Needs to be mounted to a wall or a solid structure.</CombatAI.PlaceWorker.WallMounted>
<CombatAI.Preparing>Preparing Combat AI</CombatAI.Preparing>
<CombatAI.Animator.Controller>Hold</CombatAI.Animator.Controller>
Expand Down
118 changes: 4 additions & 114 deletions Source/Rule56/CombatAIMod.cs
Original file line number Diff line number Diff line change
Expand Up @@ -88,105 +88,23 @@ private void FillCollapsible_Basic(Listing_Collapsible collapsible)
GUI.color = Color.green;
if (Widgets.ButtonText(rect, Keyed.CombatAI_Settings_Basic_Presets_Easy))
{
Finder.Settings.Pathfinding_DestWeight = 0.9f;
Finder.Settings.Caster_Enabled = false;
Finder.Settings.Targeter_Enabled = false;
Finder.Settings.Pather_Enabled = true;
Finder.Settings.Pather_KillboxKiller = false;
Finder.Settings.PerformanceOpt_Enabled = true;
Finder.Settings.React_Enabled = false;
Finder.Settings.Retreat_Enabled = false;
Finder.Settings.Flank_Enabled = false;

Finder.Settings.Enable_Sprinting = false;
Finder.Settings.Enable_Groups = false;
Finder.Settings.Pathfinding_SappingMul = 1.5f;

Finder.Settings.SightSettings_FriendliesAndRaiders.interval = 3;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_FriendliesAndRaiders.buckets = 10;
}
Finder.Settings.SightSettings_Wildlife.interval = 6;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_Wildlife.buckets = 10;
}
Finder.Settings.SightSettings_MechsAndInsects.interval = 3;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_MechsAndInsects.buckets = 12;
}
DifficultyUtility.SetDifficulty(Difficulty.Easy);
Messages.Message(Keyed.CombatAI_Settings_Basic_Presets_Applied + " " + Keyed.CombatAI_Settings_Basic_Presets_Easy, MessageTypeDefOf.TaskCompletion);
}
},
rect =>
{
if (Widgets.ButtonText(rect, Keyed.CombatAI_Settings_Basic_Presets_Normal))
{
Finder.Settings.Pathfinding_DestWeight = 0.8f;
Finder.Settings.Caster_Enabled = true;
Finder.Settings.Targeter_Enabled = true;
Finder.Settings.Pather_Enabled = true;
Finder.Settings.Pather_KillboxKiller = true;
Finder.Settings.PerformanceOpt_Enabled = true;
Finder.Settings.React_Enabled = true;
Finder.Settings.Retreat_Enabled = false;
Finder.Settings.Flank_Enabled = true;
Finder.Settings.Enable_Sprinting = false;
Finder.Settings.Enable_Groups = true;
Finder.Settings.Pathfinding_SappingMul = 1.3f;
Finder.Settings.SightSettings_FriendliesAndRaiders.interval = 3;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_FriendliesAndRaiders.buckets = 5;
}
Finder.Settings.SightSettings_Wildlife.interval = 3;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_Wildlife.buckets = 10;
}
Finder.Settings.SightSettings_MechsAndInsects.interval = 3;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_MechsAndInsects.buckets = 5;
}
DifficultyUtility.SetDifficulty(Difficulty.Normal);
Messages.Message(Keyed.CombatAI_Settings_Basic_Presets_Applied + " " + Keyed.CombatAI_Settings_Basic_Presets_Normal, MessageTypeDefOf.TaskCompletion);
}
},
rect =>
{
if (Widgets.ButtonText(rect, Keyed.CombatAI_Settings_Basic_Presets_Hard))
{
Finder.Settings.Pathfinding_DestWeight = 0.75f;
Finder.Settings.Caster_Enabled = true;
Finder.Settings.Targeter_Enabled = true;
Finder.Settings.Pather_Enabled = true;
Finder.Settings.Pather_KillboxKiller = true;
Finder.Settings.React_Enabled = true;
Finder.Settings.Retreat_Enabled = true;
Finder.Settings.Flank_Enabled = true;
Finder.Settings.PerformanceOpt_Enabled = true;

Finder.Settings.Enable_Sprinting = false;
Finder.Settings.Enable_Groups = true;
Finder.Settings.Pathfinding_SappingMul = 1.0f;

Finder.Settings.SightSettings_FriendliesAndRaiders.interval = 2;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_FriendliesAndRaiders.buckets = 5;
}
Finder.Settings.SightSettings_Wildlife.interval = 2;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_Wildlife.buckets = 5;
}
Finder.Settings.SightSettings_MechsAndInsects.interval = 2;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_MechsAndInsects.buckets = 5;
}
DifficultyUtility.SetDifficulty(Difficulty.Hard);
Messages.Message(Keyed.CombatAI_Settings_Basic_Presets_Applied + " " + Keyed.CombatAI_Settings_Basic_Presets_Hard, MessageTypeDefOf.TaskCompletion);
}
},
Expand All @@ -195,35 +113,7 @@ private void FillCollapsible_Basic(Listing_Collapsible collapsible)
GUI.color = Color.red;
if (Widgets.ButtonText(rect, Keyed.CombatAI_Settings_Basic_Presets_Deathwish))
{
Finder.Settings.Pathfinding_DestWeight = 0.6f;
Finder.Settings.Caster_Enabled = true;
Finder.Settings.Targeter_Enabled = true;
Finder.Settings.Pather_Enabled = true;
Finder.Settings.Pather_KillboxKiller = true;
Finder.Settings.React_Enabled = true;
Finder.Settings.Retreat_Enabled = true;
Finder.Settings.Flank_Enabled = true;
Finder.Settings.PerformanceOpt_Enabled = false;

Finder.Settings.Enable_Sprinting = true;
Finder.Settings.Enable_Groups = true;
Finder.Settings.Pathfinding_SappingMul = 1.0f;

Finder.Settings.SightSettings_FriendliesAndRaiders.interval = 1;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_FriendliesAndRaiders.buckets = 5;
}
Finder.Settings.SightSettings_Wildlife.interval = 2;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_Wildlife.buckets = 5;
}
Finder.Settings.SightSettings_MechsAndInsects.interval = 2;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_MechsAndInsects.buckets = 5;
}
DifficultyUtility.SetDifficulty(Difficulty.DeathWish);
Messages.Message(Keyed.CombatAI_Settings_Basic_PerformanceOpt_Warning, MessageTypeDefOf.CautionInput);
Messages.Message(Keyed.CombatAI_Settings_Basic_Presets_Applied + " " + Keyed.CombatAI_Settings_Basic_Presets_Deathwish, MessageTypeDefOf.TaskCompletion);
}
Expand Down
1 change: 0 additions & 1 deletion Source/Rule56/Debugging/Window_Exception.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ public Window_Exception(Exception exception, StackTrace trace, string report)
this.exception = exception;
this.trace = trace;
this.report = report.NullOrEmpty() ? exception.Message : report;

}

public override Vector2 InitialSize
Expand Down
11 changes: 11 additions & 0 deletions Source/Rule56/Difficulty.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
namespace CombatAI
{
public enum Difficulty : int
{
UnDefined = 0,
Easy = 1,
Normal = 2,
Hard = 3,
DeathWish = 4,
}
}
135 changes: 135 additions & 0 deletions Source/Rule56/DifficultyUtility.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
using Verse;
namespace CombatAI
{
public static class DifficultyUtility
{
public static void SetDifficulty(Difficulty difficulty)
{
switch (difficulty)
{
case Difficulty.Easy:
Finder.Settings.Pathfinding_DestWeight = 0.9f;
Finder.Settings.Caster_Enabled = false;
Finder.Settings.Targeter_Enabled = false;
Finder.Settings.Pather_Enabled = true;
Finder.Settings.Pather_KillboxKiller = false;
Finder.Settings.PerformanceOpt_Enabled = true;
Finder.Settings.React_Enabled = false;
Finder.Settings.Retreat_Enabled = false;
Finder.Settings.Flank_Enabled = false;

Finder.Settings.Enable_Sprinting = false;
Finder.Settings.Enable_Groups = false;
Finder.Settings.Pathfinding_SappingMul = 1.5f;

Finder.Settings.SightSettings_FriendliesAndRaiders.interval = 3;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_FriendliesAndRaiders.buckets = 10;
}
Finder.Settings.SightSettings_Wildlife.interval = 6;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_Wildlife.buckets = 10;
}
Finder.Settings.SightSettings_MechsAndInsects.interval = 3;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_MechsAndInsects.buckets = 12;
}
break;
case Difficulty.Normal:
Finder.Settings.Pathfinding_DestWeight = 0.8f;
Finder.Settings.Caster_Enabled = true;
Finder.Settings.Targeter_Enabled = true;
Finder.Settings.Pather_Enabled = true;
Finder.Settings.Pather_KillboxKiller = true;
Finder.Settings.PerformanceOpt_Enabled = true;
Finder.Settings.React_Enabled = true;
Finder.Settings.Retreat_Enabled = false;
Finder.Settings.Flank_Enabled = true;
Finder.Settings.Enable_Sprinting = false;
Finder.Settings.Enable_Groups = true;
Finder.Settings.Pathfinding_SappingMul = 1.3f;
Finder.Settings.SightSettings_FriendliesAndRaiders.interval = 3;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_FriendliesAndRaiders.buckets = 5;
}
Finder.Settings.SightSettings_Wildlife.interval = 3;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_Wildlife.buckets = 10;
}
Finder.Settings.SightSettings_MechsAndInsects.interval = 3;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_MechsAndInsects.buckets = 5;
}
break;
case Difficulty.Hard:
Finder.Settings.Pathfinding_DestWeight = 0.75f;
Finder.Settings.Caster_Enabled = true;
Finder.Settings.Targeter_Enabled = true;
Finder.Settings.Pather_Enabled = true;
Finder.Settings.Pather_KillboxKiller = true;
Finder.Settings.React_Enabled = true;
Finder.Settings.Retreat_Enabled = true;
Finder.Settings.Flank_Enabled = true;
Finder.Settings.PerformanceOpt_Enabled = true;

Finder.Settings.Enable_Sprinting = false;
Finder.Settings.Enable_Groups = true;
Finder.Settings.Pathfinding_SappingMul = 1.0f;

Finder.Settings.SightSettings_FriendliesAndRaiders.interval = 2;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_FriendliesAndRaiders.buckets = 5;
}
Finder.Settings.SightSettings_Wildlife.interval = 2;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_Wildlife.buckets = 5;
}
Finder.Settings.SightSettings_MechsAndInsects.interval = 2;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_MechsAndInsects.buckets = 5;
}
break;
case Difficulty.DeathWish:
Finder.Settings.Pathfinding_DestWeight = 0.6f;
Finder.Settings.Caster_Enabled = true;
Finder.Settings.Targeter_Enabled = true;
Finder.Settings.Pather_Enabled = true;
Finder.Settings.Pather_KillboxKiller = true;
Finder.Settings.React_Enabled = true;
Finder.Settings.Retreat_Enabled = true;
Finder.Settings.Flank_Enabled = true;
Finder.Settings.PerformanceOpt_Enabled = false;

Finder.Settings.Enable_Sprinting = true;
Finder.Settings.Enable_Groups = true;
Finder.Settings.Pathfinding_SappingMul = 1.0f;

Finder.Settings.SightSettings_FriendliesAndRaiders.interval = 1;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_FriendliesAndRaiders.buckets = 5;
}
Finder.Settings.SightSettings_Wildlife.interval = 2;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_Wildlife.buckets = 5;
}
Finder.Settings.SightSettings_MechsAndInsects.interval = 2;
if (Current.ProgramState != ProgramState.Playing)
{
Finder.Settings.SightSettings_MechsAndInsects.buckets = 5;
}
break;
}
}
}
}
36 changes: 36 additions & 0 deletions Source/Rule56/Patches/MainMenuDrawer_Patch.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
using HarmonyLib;
using RimWorld;
using Verse;
namespace CombatAI.Patches
{
public static class MainMenuDrawer_Patch
{
private static bool quickSetupInited = false;

[HarmonyPatch(typeof(MainMenuDrawer), nameof(MainMenuDrawer.Init))]
private static class MainMenuDrawer_Init_Patch
{
public static void Postfix()
{
if (!quickSetupInited && !Finder.Settings.FinishedQuickSetup && !Find.WindowStack.IsOpen<Window_QuickSetup>())
{
quickSetupInited = true;
Find.WindowStack.Add(new Window_QuickSetup());
}
}
}

[HarmonyPatch(typeof(MainMenuDrawer), nameof(MainMenuDrawer.DoMainMenuControls))]
private static class MainMenuDrawer_DoMainMenuControls_Patch
{
public static bool Prefix()
{
if (quickSetupInited && Find.WindowStack.IsOpen<Window_QuickSetup>())
{
return false;
}
return true;
}
}
}
}
2 changes: 2 additions & 0 deletions Source/Rule56/Settings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ public class Settings : ModSettings
public bool PerformanceOpt_Enabled = true;
public bool React_Enabled = true;
public bool Retreat_Enabled = true;
public bool FinishedQuickSetup = false;


public SightPerformanceSettings SightSettings_FriendliesAndRaiders = new SightPerformanceSettings(3, 5, 16);
Expand Down Expand Up @@ -108,6 +109,7 @@ public override void ExposeData()
//{
// LeanCE_Enabled = false;
//}
Scribe_Values.Look(ref FinishedQuickSetup, $"FinishedQuickSetup2.{version}", false);
Scribe_Values.Look(ref Pather_Enabled, $"Pather_Enabled.{version}", true);
Scribe_Values.Look(ref Caster_Enabled, $"Caster_Enabled.{version}", true);
Scribe_Values.Look(ref Targeter_Enabled, $"Targeter_Enabled.{version}", true);
Expand Down
Loading