public static PetAttackTarget Instance(float radius, int numshot, int projectileIndex = 0)
 {
     var key = new Tuple<float, int, int>(radius, projectileIndex, numshot);
     PetAttackTarget ret;
     if (!instances.TryGetValue(key, out ret))
         ret = instances[key] = new PetAttackTarget(radius, projectileIndex, numshot);
     return ret;
 }
        public static PetAttackTarget Instance(float radius, int numshot, int projectileIndex = 0)
        {
            var             key = new Tuple <float, int, int>(radius, projectileIndex, numshot);
            PetAttackTarget ret;

            if (!instances.TryGetValue(key, out ret))
            {
                ret = instances[key] = new PetAttackTarget(radius, projectileIndex, numshot);
            }
            return(ret);
        }