public static IDictionary <ProjectileDefinition, (int radius, int damage)> GetExplosivesStats() { var projectiles = new Dictionary <ProjectileDefinition, (int, int)>(); int inactivePos = 0; for (int i = 0; i < Main.projectile.Length; i++) { if (Main.projectile[i] == null || !Main.projectile[i].active) { inactivePos = i; break; } } for (int i = 0; i < Main.projectileTexture.Length; i++) { (int, int)? stats = DestructibleTilesProjectile.CalculateExplosiveStats(inactivePos, i); if (stats.HasValue) { var projDef = new ProjectileDefinition(i); projectiles[projDef] = stats.Value; } } Main.projectile[inactivePos] = new Projectile(); return(projectiles); }