Beispiel #1
0
        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.");
                }
            }
        }
Beispiel #2
0
 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);
     }
 }