diff --git a/OpenRa.Game/Traits/Activities/DeliverOre.cs b/OpenRa.Game/Traits/Activities/DeliverOre.cs index 4d9d26a659..4b7f197e01 100644 --- a/OpenRa.Game/Traits/Activities/DeliverOre.cs +++ b/OpenRa.Game/Traits/Activities/DeliverOre.cs @@ -25,7 +25,7 @@ namespace OpenRa.Game.Traits.Activities { if( isDone ) { - self.traits.Get().Deliver( self ); + self.traits.Get().Deliver( self, refinery ); return NextActivity ?? new Harvest(); } else if( NextActivity != null ) @@ -42,7 +42,8 @@ namespace OpenRa.Game.Traits.Activities umt = mobile.GetMovementType(), checkForBlocked = false, }; - var refineries = Game.world.Actors.Where( x => x.unitInfo != null && x.unitInfo.Name == "proc" ).ToList(); + var refineries = Game.world.Actors.Where( x => x.unitInfo != null + && x.unitInfo.Name == "proc" && x.Owner == self.Owner ).ToList(); if( refinery != null ) search.AddInitialCell( refinery.Location + refineryDeliverOffset ); else diff --git a/OpenRa.Game/Traits/Harvester.cs b/OpenRa.Game/Traits/Harvester.cs index d29b0e50c3..925685f717 100644 --- a/OpenRa.Game/Traits/Harvester.cs +++ b/OpenRa.Game/Traits/Harvester.cs @@ -19,10 +19,10 @@ namespace OpenRa.Game.Traits else oreCarried++; } - public void Deliver(Actor self) + public void Deliver(Actor self, Actor proc) { - self.Owner.GiveCash(oreCarried * Rules.General.GoldValue); - self.Owner.GiveCash(gemsCarried * Rules.General.GemValue); + proc.Owner.GiveCash(oreCarried * Rules.General.GoldValue); + proc.Owner.GiveCash(gemsCarried * Rules.General.GemValue); oreCarried = 0; gemsCarried = 0; }