using System.Collections.Generic; using System; using OpenRa.Game.GameRules; namespace OpenRa.Game.Traits { class StoresOreInfo : StatelessTraitInfo { public readonly int Pips = 0; public readonly int Capacity = 0; } class StoresOre : IPips, IAcceptThief { public void OnSteal(Actor self, Actor thief) { // Steal half the ore the building holds var toSteal = (self.LegacyInfo as LegacyBuildingInfo).Storage/2; self.Owner.TakeCash(toSteal); thief.Owner.GiveCash(toSteal); if (Game.LocalPlayer == thief.Owner) Sound.Play("credit1.aud"); // the thief is sacrificed. thief.Health = 0; Game.world.AddFrameEndTask(w => w.Remove(thief)); } public IEnumerable GetPips(Actor self) { for (int i = 0; i < self.LegacyInfo.OrePips; i++) { if (Game.LocalPlayer.GetSiloFullness() > i * 1.0f / self.LegacyInfo.OrePips) { yield return PipType.Yellow; continue; } yield return PipType.Transparent; } } } }