public BetterSlingshot(IReflectionHelper reflection, BetterSlingshotsConfig config, SObject currentProjectile, bool isActionButtonDown, int which) : base(which)
 {
     this.attachments[0]     = currentProjectile;
     this.reflection         = reflection;
     this.config             = config;
     this.isActionButtonDown = isActionButtonDown;
     this.autoFireRate       = this.GetFireRate();
     this.baseCanPlaySound   = reflection.GetField <bool>(this, "canPlaySound");
     this.isAutomatic        = config.AutomaticSlingshots.IndexOf(Enum.GetName(typeof(SlingshotType), SlingshotManager.GetTypeFromIndex(this.initialParentTileIndex)), StringComparison.InvariantCultureIgnoreCase) != -1;
 }
 public SlingshotManager(BetterSlingshotsConfig config, IReflectionHelper reflection)
 {
     this.reflection = reflection;
     this.config     = config;
 }