protected override Job TryGiveJob(Pawn pawn)
        {
            CompReloadable compReloadable = ReloadableUtility.FindSomeReloadableComponent(pawn, allowForcedReload: false);

            if (compReloadable == null)
            {
                return(null);
            }
            List <Thing> list = ReloadableUtility.FindEnoughAmmo(pawn, pawn.Position, compReloadable, forceReload: false);

            if (list == null)
            {
                return(null);
            }
            return(MakeReloadJob(compReloadable, list));
        }
 public override bool ValidateTarget(LocalTargetInfo target)
 {
     if (caster == null)
     {
         return(false);
     }
     if (!CanHitTarget(target) || !ValidJumpTarget(caster.Map, target.Cell))
     {
         return(false);
     }
     if (!ReloadableUtility.CanUseConsideringQueuedJobs(CasterPawn, base.EquipmentSource))
     {
         return(false);
     }
     return(true);
 }