public static InfiniteSpiralAttack Instance(int cooldown, int arms, float offsetIncrement = 1, int projectileIndex = 0)
 {
     var key = new Tuple<int, int, float, int>(cooldown, arms, offsetIncrement, projectileIndex);
     InfiniteSpiralAttack ret;
     if (!instances.TryGetValue(key, out ret))
         ret = instances[key] = new InfiniteSpiralAttack(cooldown, arms, offsetIncrement, projectileIndex);
     return ret;
 }
        public static InfiniteSpiralAttack Instance(int cooldown, int arms, float offsetIncrement = 1, int projectileIndex = 0)
        {
            var key = new Tuple <int, int, float, int>(cooldown, arms, offsetIncrement, projectileIndex);
            InfiniteSpiralAttack ret;

            if (!instances.TryGetValue(key, out ret))
            {
                ret = instances[key] = new InfiniteSpiralAttack(cooldown, arms, offsetIncrement, projectileIndex);
            }
            return(ret);
        }