add shroud, creates shroud and reveals shroud to syncreport

This commit is contained in:
Matthias Mailänder
2013-03-06 16:05:31 +01:00
parent 3f56e00173
commit 72841a51e6
6 changed files with 18 additions and 25 deletions

View File

@@ -47,8 +47,7 @@ namespace OpenRA
public Shroud.ActorVisibility Sight;
[Sync]
public Player Owner;
[Sync] public Player Owner;
Activity currentActivity;
public Group Group;

View File

@@ -18,10 +18,10 @@ namespace OpenRA.Traits
public object Create(ActorInitializer init) { return new CreatesShroud(this); }
}
public class CreatesShroud : ITick
public class CreatesShroud : ITick, ISync
{
CreatesShroudInfo Info;
CPos previousLocation;
[Sync] CPos previousLocation;
Shroud.ActorVisibility v;
public CreatesShroud(CreatesShroudInfo info)
@@ -37,20 +37,20 @@ namespace OpenRA.Traits
if (previousLocation != self.Location && v != null) {
previousLocation = self.Location;
var shrouds = self.World.ActorsWithTrait<Traits.Shroud>().Select(s => s.Actor.Owner.Shroud);
var shrouds = self.World.ActorsWithTrait<Shroud>().Select(s => s.Actor.Owner.Shroud);
foreach (var shroud in shrouds) {
shroud.UnhideActor(self, v, Info.Range);
}
}
if (!self.TraitsImplementing<IDisable>().Any(d => d.Disabled)) {
var shrouds = self.World.ActorsWithTrait<Traits.Shroud>().Select(s => s.Actor.Owner.Shroud);
var shrouds = self.World.ActorsWithTrait<Shroud>().Select(s => s.Actor.Owner.Shroud);
foreach (var shroud in shrouds) {
shroud.HideActor(self, Info.Range);
}
}
else {
var shrouds = self.World.ActorsWithTrait<Traits.Shroud>().Select(s => s.Actor.Owner.Shroud);
var shrouds = self.World.ActorsWithTrait<Shroud>().Select(s => s.Actor.Owner.Shroud);
foreach (var shroud in shrouds) {
shroud.UnhideActor(self, v, Info.Range);
}

View File

@@ -75,13 +75,10 @@ namespace OpenRA.Traits
AdviceInterval = info.AdviceInterval;
}
[Sync]
public int Cash;
[Sync] public int Cash;
[Sync]
public int Ore;
[Sync]
public int OreCapacity;
[Sync] public int Ore;
[Sync] public int OreCapacity;
public int DisplayCash;
public int DisplayOre;

View File

@@ -16,10 +16,10 @@ namespace OpenRA.Traits
public object Create(ActorInitializer init) { return new RevealsShroud(this); }
}
public class RevealsShroud : ITick
public class RevealsShroud : ITick, ISync
{
RevealsShroudInfo Info;
CPos previousLocation;
[Sync] CPos previousLocation;
public RevealsShroud(RevealsShroudInfo info)
{

View File

@@ -20,19 +20,19 @@ namespace OpenRA.Traits
public object Create(ActorInitializer init) { return new Shroud(init.world); }
}
public class Shroud
public class Shroud : ISync
{
Map map;
World world;
public Player Owner;
[Sync] public Player Owner;
public int[,] visibleCells;
public bool[,] exploredCells;
public bool[,] foggedCells;
public Rectangle? exploredBounds;
bool disabled = false;
public bool dirty = true;
public bool Disabled
[Sync] public bool Disabled
{
get { return disabled; }
set { disabled = value; Dirty(); }
@@ -70,7 +70,7 @@ namespace OpenRA.Traits
// cache of positions that were added, so no matter what crazy trait code does, it
// can't make us invalid.
public class ActorVisibility { public int range; public CPos[] vis; }
public class ActorVisibility { [Sync] public int range; [Sync] public CPos[] vis; }
public Dictionary<Actor, ActorVisibility> vis = new Dictionary<Actor, ActorVisibility>();
static IEnumerable<CPos> FindVisibleTiles(World world, CPos a, int r)

View File

@@ -102,12 +102,9 @@ namespace OpenRA.Mods.RA.Air
protected readonly Actor self;
[Sync]
public int Facing { get; set; }
[Sync]
public int Altitude { get; set; }
[Sync]
public PSubPos SubPxPosition;
[Sync] public int Facing { get; set; }
[Sync] public int Altitude { get; set; }
[Sync] public PSubPos SubPxPosition;
public PPos PxPosition { get { return SubPxPosition.ToPPos(); } }
public CPos TopLeft { get { return PxPosition.ToCPos(); } }