#pragma once #include "DefaultDispenseItemBehavior.h" class Projectile; class Position; class AbstractProjectileDispenseBehavior : public DefaultDispenseItemBehavior { public: virtual shared_ptr execute(BlockSource *source, shared_ptr dispensed, eOUTCOME &outcome); protected: virtual void playSound(BlockSource *source, eOUTCOME outcome); virtual float getUncertainty(); virtual float getPower(); virtual shared_ptr getProjectile(Level *world, Position *position) = 0; };