Fix chronoshift duration being visible to enemy players

This commit is contained in:
Oliver Brakmann
2015-07-27 13:07:16 +02:00
parent 618ba6342c
commit a2a0059f7f

View File

@@ -26,6 +26,7 @@ namespace OpenRA.Mods.RA.Traits
public class Chronoshiftable : ITick, ISync, ISelectionBar public class Chronoshiftable : ITick, ISync, ISelectionBar
{ {
readonly ChronoshiftableInfo info; readonly ChronoshiftableInfo info;
readonly Actor self;
Actor chronosphere; Actor chronosphere;
bool killCargo; bool killCargo;
int duration; int duration;
@@ -37,6 +38,7 @@ namespace OpenRA.Mods.RA.Traits
public Chronoshiftable(ActorInitializer init, ChronoshiftableInfo info) public Chronoshiftable(ActorInitializer init, ChronoshiftableInfo info)
{ {
this.info = info; this.info = info;
self = init.Self;
if (init.Contains<ChronoshiftReturnInit>()) if (init.Contains<ChronoshiftReturnInit>())
ReturnTicks = init.Get<ChronoshiftReturnInit, int>(); ReturnTicks = init.Get<ChronoshiftReturnInit, int>();
@@ -96,7 +98,8 @@ namespace OpenRA.Mods.RA.Traits
// Show the remaining time as a bar // Show the remaining time as a bar
public float GetValue() public float GetValue()
{ {
if (ReturnTicks == 0) // otherwise an empty bar is rendered all the time // otherwise an empty bar is rendered all the time
if (ReturnTicks == 0 || !self.Owner.IsAlliedWith(self.World.RenderPlayer))
return 0f; return 0f;
return (float)ReturnTicks / duration; return (float)ReturnTicks / duration;