private void InitializeCannons() { if (Cannons.Count <= 0 && Props.cannons.AnyNullified()) { foreach (CannonHandler cannon in Props.cannons) { var cannonPermanent = new CannonHandler(this.Pawn, cannon); cannonPermanent.SetTarget(LocalTargetInfo.Invalid); cannonPermanent.ResetCannonAngle(); Cannons.Add(cannonPermanent); } if (Cannons.Select(x => x.key).GroupBy(y => y).AnyNullified(key => key.Count() > 1)) { Log.Warning("Duplicate CannonHandler key has been found. These are intended to be unique."); } } }
public void AddCannons(List <CannonHandler> cannonList) { if (cannonList is null) { return; } foreach (CannonHandler cannon in cannonList) { var cannonPermanent = new CannonHandler(this.Pawn, cannon); cannonPermanent.SetTarget(LocalTargetInfo.Invalid); cannonPermanent.ResetCannonAngle(); if (Cannons.AnyNullified(x => x.baseCannonRenderLocation == cannonPermanent.baseCannonRenderLocation)) { Cannons.FindAll(x => x.baseCannonRenderLocation == cannonPermanent.baseCannonRenderLocation).ForEach(y => y.TryRemoveShell()); Cannons.RemoveAll(x => x.baseCannonRenderLocation == cannonPermanent.baseCannonRenderLocation); } Cannons.Add(cannonPermanent); } }