Use INotifyOwnerChanged for updating internal references.

This commit is contained in:
Paul Chote
2014-10-13 19:43:11 +13:00
parent 8508fc5155
commit a08a3a3869
12 changed files with 45 additions and 33 deletions

View File

@@ -88,7 +88,7 @@ namespace OpenRA.Mods.RA
public override object Create(ActorInitializer init) { return new GpsPower(init.self, this); }
}
class GpsPower : SupportPower, INotifyKilled, INotifyStanceChanged, INotifySold, INotifyCapture
class GpsPower : SupportPower, INotifyKilled, INotifyStanceChanged, INotifySold, INotifyOwnerChanged
{
GpsWatcher owner;
@@ -133,10 +133,10 @@ namespace OpenRA.Mods.RA
owner.RefreshGps(self);
}
public void OnCapture(Actor self, Actor captor, Player oldOwner, Player newOwner)
public void OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)
{
RemoveGps(self);
owner = captor.Owner.PlayerActor.Trait<GpsWatcher>();
owner = newOwner.PlayerActor.Trait<GpsWatcher>();
owner.GpsAdd(self);
}
}