public static ComposedWeapon composeWeapon(Cooldown cooldown,
		                                           FirePattern firePattern,
		                                           Actuation triggerHandler,
		                                           GameObject shot)
        {
            return new canonInstance(cooldown, firePattern, triggerHandler, shot);
        }
            public canonInstance(Cooldown _cooldown,
			                      FirePattern _firePattern,
			                      Actuation actuator,
			                      GameObject shot)
            {
                triggerHandling = actuator;
                _lastFired = UnityEngine.Time.time;
                cooldown = _cooldown;
                firePattern = _firePattern;
                weaponShot = shot;
            }