You are trying to associate 'every X seconds' with an object, but it is a global event, so it will only run once per X seconds, no matter how many times you call it. You want to use the Timer behaviour, which is per object. Just change the timer period per gun value.