add shroud, creates shroud and reveals shroud to syncreport
This commit is contained in:
@@ -47,8 +47,7 @@ namespace OpenRA
|
|||||||
|
|
||||||
public Shroud.ActorVisibility Sight;
|
public Shroud.ActorVisibility Sight;
|
||||||
|
|
||||||
[Sync]
|
[Sync] public Player Owner;
|
||||||
public Player Owner;
|
|
||||||
|
|
||||||
Activity currentActivity;
|
Activity currentActivity;
|
||||||
public Group Group;
|
public Group Group;
|
||||||
|
|||||||
@@ -18,10 +18,10 @@ namespace OpenRA.Traits
|
|||||||
public object Create(ActorInitializer init) { return new CreatesShroud(this); }
|
public object Create(ActorInitializer init) { return new CreatesShroud(this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CreatesShroud : ITick
|
public class CreatesShroud : ITick, ISync
|
||||||
{
|
{
|
||||||
CreatesShroudInfo Info;
|
CreatesShroudInfo Info;
|
||||||
CPos previousLocation;
|
[Sync] CPos previousLocation;
|
||||||
Shroud.ActorVisibility v;
|
Shroud.ActorVisibility v;
|
||||||
|
|
||||||
public CreatesShroud(CreatesShroudInfo info)
|
public CreatesShroud(CreatesShroudInfo info)
|
||||||
@@ -37,20 +37,20 @@ namespace OpenRA.Traits
|
|||||||
if (previousLocation != self.Location && v != null) {
|
if (previousLocation != self.Location && v != null) {
|
||||||
previousLocation = self.Location;
|
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) {
|
foreach (var shroud in shrouds) {
|
||||||
shroud.UnhideActor(self, v, Info.Range);
|
shroud.UnhideActor(self, v, Info.Range);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!self.TraitsImplementing<IDisable>().Any(d => d.Disabled)) {
|
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) {
|
foreach (var shroud in shrouds) {
|
||||||
shroud.HideActor(self, Info.Range);
|
shroud.HideActor(self, Info.Range);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
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) {
|
foreach (var shroud in shrouds) {
|
||||||
shroud.UnhideActor(self, v, Info.Range);
|
shroud.UnhideActor(self, v, Info.Range);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,13 +75,10 @@ namespace OpenRA.Traits
|
|||||||
AdviceInterval = info.AdviceInterval;
|
AdviceInterval = info.AdviceInterval;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Sync]
|
[Sync] public int Cash;
|
||||||
public int Cash;
|
|
||||||
|
|
||||||
[Sync]
|
[Sync] public int Ore;
|
||||||
public int Ore;
|
[Sync] public int OreCapacity;
|
||||||
[Sync]
|
|
||||||
public int OreCapacity;
|
|
||||||
|
|
||||||
public int DisplayCash;
|
public int DisplayCash;
|
||||||
public int DisplayOre;
|
public int DisplayOre;
|
||||||
|
|||||||
@@ -16,10 +16,10 @@ namespace OpenRA.Traits
|
|||||||
public object Create(ActorInitializer init) { return new RevealsShroud(this); }
|
public object Create(ActorInitializer init) { return new RevealsShroud(this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RevealsShroud : ITick
|
public class RevealsShroud : ITick, ISync
|
||||||
{
|
{
|
||||||
RevealsShroudInfo Info;
|
RevealsShroudInfo Info;
|
||||||
CPos previousLocation;
|
[Sync] CPos previousLocation;
|
||||||
|
|
||||||
public RevealsShroud(RevealsShroudInfo info)
|
public RevealsShroud(RevealsShroudInfo info)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -20,19 +20,19 @@ namespace OpenRA.Traits
|
|||||||
public object Create(ActorInitializer init) { return new Shroud(init.world); }
|
public object Create(ActorInitializer init) { return new Shroud(init.world); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Shroud
|
public class Shroud : ISync
|
||||||
{
|
{
|
||||||
Map map;
|
Map map;
|
||||||
World world;
|
World world;
|
||||||
|
|
||||||
public Player Owner;
|
[Sync] public Player Owner;
|
||||||
public int[,] visibleCells;
|
public int[,] visibleCells;
|
||||||
public bool[,] exploredCells;
|
public bool[,] exploredCells;
|
||||||
public bool[,] foggedCells;
|
public bool[,] foggedCells;
|
||||||
public Rectangle? exploredBounds;
|
public Rectangle? exploredBounds;
|
||||||
bool disabled = false;
|
bool disabled = false;
|
||||||
public bool dirty = true;
|
public bool dirty = true;
|
||||||
public bool Disabled
|
[Sync] public bool Disabled
|
||||||
{
|
{
|
||||||
get { return disabled; }
|
get { return disabled; }
|
||||||
set { disabled = value; Dirty(); }
|
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
|
// cache of positions that were added, so no matter what crazy trait code does, it
|
||||||
// can't make us invalid.
|
// 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>();
|
public Dictionary<Actor, ActorVisibility> vis = new Dictionary<Actor, ActorVisibility>();
|
||||||
|
|
||||||
static IEnumerable<CPos> FindVisibleTiles(World world, CPos a, int r)
|
static IEnumerable<CPos> FindVisibleTiles(World world, CPos a, int r)
|
||||||
|
|||||||
@@ -102,12 +102,9 @@ namespace OpenRA.Mods.RA.Air
|
|||||||
|
|
||||||
|
|
||||||
protected readonly Actor self;
|
protected readonly Actor self;
|
||||||
[Sync]
|
[Sync] public int Facing { get; set; }
|
||||||
public int Facing { get; set; }
|
[Sync] public int Altitude { get; set; }
|
||||||
[Sync]
|
[Sync] public PSubPos SubPxPosition;
|
||||||
public int Altitude { get; set; }
|
|
||||||
[Sync]
|
|
||||||
public PSubPos SubPxPosition;
|
|
||||||
public PPos PxPosition { get { return SubPxPosition.ToPPos(); } }
|
public PPos PxPosition { get { return SubPxPosition.ToPPos(); } }
|
||||||
public CPos TopLeft { get { return PxPosition.ToCPos(); } }
|
public CPos TopLeft { get { return PxPosition.ToCPos(); } }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user