Fix cult win conditions

This commit is contained in:
Aviu00
2024-01-28 09:22:11 +03:00
parent b5c91e2f37
commit 8b7a9acb3d

View File

@@ -130,6 +130,7 @@ public sealed class CultRuleSystem : GameRuleSystem<CultRuleComponent>
while (querry.MoveNext(out _, out var cultRuleComponent, out _))
{
var cultists = 0;
foreach (var cultistComponent in cultRuleComponent.Cultists)
{
var owner = cultistComponent.Owner;
@@ -138,9 +139,14 @@ public sealed class CultRuleSystem : GameRuleSystem<CultRuleComponent>
if (_mobStateSystem.IsAlive(owner, mobState))
{
aliveCultistsCount++;
cultists++;
}
}
if (cultists == 0)
cultRuleComponent.WinCondition = CultWinCondition.CultFailure;
aliveCultistsCount += cultists;
}
if (aliveCultistsCount == 0)
@@ -470,6 +476,13 @@ public sealed class CultRuleSystem : GameRuleSystem<CultRuleComponent>
private void OnNarsieSummon(CultNarsieSummoned ev)
{
foreach (var rule in EntityQuery<CultRuleComponent>())
{
rule.WinCondition = CultWinCondition.CultWin;
}
_roundEndSystem.EndRound();
var query = EntityQuery<MobStateComponent, MindContainerComponent, CultistComponent>().ToList();
foreach (var (mobState, mindContainer, _) in query)
@@ -484,7 +497,5 @@ public sealed class CultRuleSystem : GameRuleSystem<CultRuleComponent>
_bodySystem.GibBody(mobState.Owner);
}
_roundEndSystem.EndRound();
}
}