Skip to content

Commit

Permalink
Release!
Browse files Browse the repository at this point in the history
  • Loading branch information
pardeike committed Mar 4, 2022
1 parent 84d9f35 commit 401ab66
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 16 deletions.
Binary file modified 1.3/Assemblies/ZombieLand.dll
Binary file not shown.
14 changes: 13 additions & 1 deletion Source/Patches.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5020,12 +5020,24 @@ void job()
// draw dangerous area info at top of screen
//
[HarmonyPatch(typeof(Messages), nameof(Messages.MessagesDoGUI))]
static class GlobalControls_GlobalControlsOnGUI_Patch
static class Messages_MessagesDoGUI_Patch
{
static void Prefix()
{
ZombieAreaManager.DangerAlertsOnGUI();
}
}

// move messages down when dangerous area info shows
//
[HarmonyPatch(typeof(Message), nameof(Message.Draw))]
static class Message_Draw_Patch
{
static void Prefix(ref int yOffset)
{
if (ZombieAreaManager.warningShowing)
yOffset += 29;
}
}
}
}
7 changes: 5 additions & 2 deletions Source/ZombieAreaManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ public static class ZombieAreaManager
public static Dictionary<Area, HashSet<IntVec3>> cache = new Dictionary<Area, HashSet<IntVec3>>();
public static List<(Pawn, Area)> pawnsInDanger = new List<(Pawn, Area)>();
public static DateTime nextUpdate = DateTime.Now;
public static bool warningShowing = false;

public static void DangerAlertsOnGUI()
{
Expand All @@ -25,7 +26,7 @@ public static void DangerAlertsOnGUI()
if (now > nextUpdate)
{
nextUpdate = now.AddSeconds(0.5f);
var pawns = map.mapPawns.SpawnedPawnsInFaction(Faction.OfPlayer);
var pawns = map.mapPawns.FreeColonistsSpawned;
pawnsInDanger = ZombieSettings.Values.dangerousAreas
.Where(pair => pair.Key.Map == Find.CurrentMap)
.SelectMany(pair =>
Expand Down Expand Up @@ -77,7 +78,9 @@ public static void DrawDangerous()

headsToDraw.Add((pawn, texture));
}
if (colorTexture != null)

warningShowing = colorTexture != null;
if (warningShowing)
{
var n = headsToDraw.Count;
var width = 5 + n * 2 + (n + 1) * 18 + 5;
Expand Down
32 changes: 19 additions & 13 deletions Source/ZombieSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -173,26 +173,32 @@ public void ExposeData()
if (Scribe.EnterNode(fieldName))
{
foreach (var (area, mode) in dict)
{
var riskArea = new ZombieRiskArea() { area = area.ID, map = area.Map.uniqueID, mode = mode };
Scribe_Deep.Look(ref riskArea, "area", Array.Empty<object>());
}
if (Find.Maps.Select(map => map.uniqueID).Contains(area.Map.uniqueID))
{
var riskArea = new ZombieRiskArea() { area = area.ID, map = area.Map.uniqueID, mode = mode };
Scribe_Deep.Look(ref riskArea, "area", Array.Empty<ZombieRiskArea>());
}
Scribe.ExitNode();
}
}
if (Scribe.mode == LoadSaveMode.LoadingVars)
{
Scribe_Collections.Look(ref ZombieRiskArea.temp, fieldName, LookMode.Deep);
ZombieRiskArea.temp ??= new List<ZombieRiskArea>();
}
if (Scribe.mode == LoadSaveMode.PostLoadInit)
{
foreach (var riskArea in ZombieRiskArea.temp)
{
var realArea = Find.Maps
.Where(map => map.uniqueID == riskArea.map)
.SelectMany(map => map.areaManager.AllAreas)
.FirstOrDefault(area => area.ID == riskArea.area);
if (realArea != null)
dict[realArea] = riskArea.mode;
}
if (Find.Maps != null)
foreach (var riskArea in ZombieRiskArea.temp)
if (riskArea != null)
{
var realArea = Find.Maps
.Where(map => map.uniqueID == riskArea.map)
.SelectMany(map => map.areaManager.AllAreas)
.FirstOrDefault(area => area.ID == riskArea.area);
if (realArea != null)
dict[realArea] = riskArea.mode;
}
settings.dangerousAreas = dict;
}
return true;
Expand Down

0 comments on commit 401ab66

Please sign in to comment.