removing some noise from SVC
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
|
||||||
@@ -33,7 +34,7 @@ namespace OpenRA.Mods.RA
|
|||||||
Actor self;
|
Actor self;
|
||||||
StrategicVictoryConditionsInfo info;
|
StrategicVictoryConditionsInfo info;
|
||||||
|
|
||||||
[Sync] public bool SplitHolds;
|
[Sync] bool SplitHolds;
|
||||||
[Sync] public int TicksLeft = 0;
|
[Sync] public int TicksLeft = 0;
|
||||||
[Sync] public int CriticalTicksLeft = 0;
|
[Sync] public int CriticalTicksLeft = 0;
|
||||||
|
|
||||||
@@ -49,7 +50,7 @@ namespace OpenRA.Mods.RA
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public int Owned
|
public int Owned
|
||||||
{
|
{
|
||||||
get { return (SplitHolds) ? CountOwnedPoints(false) : CountOwnedPoints(false) + OwnedCritical; }
|
get { return CountOwnedPoints(false) + (SplitHolds ? 0 : OwnedCritical); }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -60,11 +61,18 @@ namespace OpenRA.Mods.RA
|
|||||||
get { return CountOwnedPoints(true); }
|
get { return CountOwnedPoints(true); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IEnumerable<TraitPair<StrategicPoint>> AllPoints
|
||||||
|
{
|
||||||
|
get { return self.World.ActorsWithTrait<StrategicPoint>(); }
|
||||||
|
}
|
||||||
|
|
||||||
public int Total
|
public int Total
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return (SplitHolds) ? self.World.Actors.Where(a => !a.Destroyed && a.HasTrait<StrategicPoint>() && a.TraitOrDefault<StrategicPoint>().Critical == false).Count() : self.World.Actors.Where(a => a.HasTrait<StrategicPoint>()).Count();
|
return SplitHolds
|
||||||
|
? AllPoints.Count( a => a.Trait.Critical )
|
||||||
|
: AllPoints.Count();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,24 +80,14 @@ namespace OpenRA.Mods.RA
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return self.World.Actors.Where(a => !a.Destroyed && a.HasTrait<StrategicPoint>() && a.TraitOrDefault<StrategicPoint>().Critical).Count();
|
return AllPoints.Count( a => a.Trait.Critical );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int CountOwnedPoints(bool critical)
|
public int CountOwnedPoints(bool critical)
|
||||||
{
|
{
|
||||||
int total = 0;
|
return AllPoints.Count( a => a.Trait.Critical == critical &&
|
||||||
|
WorldUtils.AreMutualAllies( self.Owner, a.Actor.Owner ));
|
||||||
foreach (var p in self.World.Players)
|
|
||||||
{
|
|
||||||
if (p == self.Owner || (p.Stances[self.Owner] == Stance.Ally && self.Owner.Stances[p] == Stance.Ally))
|
|
||||||
{
|
|
||||||
total += self.World.ActorsWithTrait<StrategicPoint>()
|
|
||||||
.Where(a => a.Actor.Owner == p)
|
|
||||||
.Count(a => a.Trait.Critical == critical);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return total;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool HoldingCritical
|
public bool HoldingCritical
|
||||||
@@ -187,13 +185,9 @@ namespace OpenRA.Mods.RA
|
|||||||
var cvc = p.PlayerActor.Trait<ConquestVictoryConditions>();
|
var cvc = p.PlayerActor.Trait<ConquestVictoryConditions>();
|
||||||
|
|
||||||
if (p.WinState == WinState.Undefined && WorldUtils.AreMutualAllies(self.Owner, p))
|
if (p.WinState == WinState.Undefined && WorldUtils.AreMutualAllies(self.Owner, p))
|
||||||
{
|
|
||||||
cvc.Win(p.PlayerActor);
|
cvc.Win(p.PlayerActor);
|
||||||
}
|
|
||||||
else if (p.WinState == WinState.Undefined)
|
else if (p.WinState == WinState.Undefined)
|
||||||
{
|
|
||||||
cvc.Lose(p.PlayerActor);
|
cvc.Lose(p.PlayerActor);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user