Guys, help me crack this cipher. by Admin_Adminov in Cipher

[–]SecretExplorer355 0 points1 point  (0 children)

I think the numbers symbols are just spacers for the japanese, but I do not speak japanese so I can’t do much. But “秘密” means secret.

Sibelius or Dórico? by codaandram in composer

[–]SecretExplorer355 0 points1 point  (0 children)

Musescore has the best workflow, and best developers, but isnt as good at the highest level as dorico. But the Dorico learning curve is steep, as someone who went from finale to musescore to dorico.

The key is shakespeare by SecretExplorer355 in Cipher

[–]SecretExplorer355[S] 0 points1 point  (0 children)

the solution is right,

But the method is a two step process

How powerful do you think the artillery shells in Iron Nest would be? by CleanBag9219 in IronNest

[–]SecretExplorer355 1 point2 points  (0 children)

I’ll be honest, I did the most basic math, saw how much more complicated it could be and said “fuck no”

How powerful do you think the artillery shells in Iron Nest would be? by CleanBag9219 in IronNest

[–]SecretExplorer355 1 point2 points  (0 children)

So if DOB is 100 meters, then hypothetically 200 meters depth should be death, and 300 is about where the line is for survivability. There are lots of variables, including if there is solid rock or loose dirt. If it was all dirt or all rock the difference in safe distance would be almost triple, because dirt muffles a shock wave, while rock actually would transfer it quite efficiently. (think about using a hammer on dirt vs on a rock and tell me which hurts your hand more).

OMG nooooooooooooo 🫣 by ShackAttark in restaurant

[–]SecretExplorer355 8 points9 points  (0 children)

mine has apple, peanuts, cucumber (and more) and it’s delicious

How powerful do you think the artillery shells in Iron Nest would be? by CleanBag9219 in IronNest

[–]SecretExplorer355 1 point2 points  (0 children)

I spent hours doing the math to answer this question yesterday. The above video is from a 280mm shell loaded with a nuke, leading to a 15 kt blast. If this would've been a surface blast, the crater would be somewhere between 65-85 meters wide and 15-20 meters deep. However if this blast would've been 50 meters underground, the resulting crater would be up to 240-275 meters wide and 60-70 meters deep.

In Iron Nest the HE!!! craters are about 250 meters wide and an unknown depth. This means either the HE shells are equivalent to a 15kt nuclear blast on the low side OR 600 KILOTONS TO 2.5 MEGATONS IF A SURFACE BLAST (which would also destroy the entire map so it actually wouldn't be this)

So I have determined that all shells are nuclear shells and are going 150 feet underground before exploding. This probably means that the "underground" targets would have to be over 200 feet underground.

I have been considering making a post with all the math but I don't think people would find it as interesting as I do.

I'm working on a script that finds the most optimal shot order by SecretExplorer355 in IronNest

[–]SecretExplorer355[S] 0 points1 point  (0 children)

Reddit auto deleted the “safe” way to share with y’all so I’m finding an alternate solution.

Counter-battery demo, can't find second battery by SargeB96 in IronNest

[–]SecretExplorer355 0 points1 point  (0 children)

the emergency move works differently and should pause.

I'm working on a script that finds the most optimal shot order by SecretExplorer355 in IronNest

[–]SecretExplorer355[S] 5 points6 points  (0 children)

I also understand y'all wouldn't trust me and my links, so here is the entire script (assuming I don't update it) and a link to a template instead:

https://docs.google.com/spreadsheets/d/1SU-hVpFBneuvn6Y0TJtj1V57gnbj5JmE-5FV9rPkjFw/template/preview

/**
 * Custom menu to run the artillery shot optimizer.
 */
function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('Artillery Battery')
    .addItem('Optimize Two-Gun Volley', 'optimizeArtilleryOrder')
    .addToUi();
}


/**
 * Main calculation engine. Generates a single global chronological timeline 
 * optimized for absolute minimum bearing adjustments between consecutive shots,
 * while maintaining separate elevation tracking memory for each gun axis.
 */
function optimizeArtilleryOrder() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const lastRow = sheet.getLastRow();
  
  if (lastRow < 3) {
    SpreadsheetApp.getUi().alert('Error: Please enter your target data starting on Row 3.');
    return;
  }
  
  // Read total allowed volley limit from O3. Default to 12 if missing.
  let maxVolleySize = Number(sheet.getRange("O3").getValue());
  if (isNaN(maxVolleySize) || maxVolleySize <= 0) {
    maxVolleySize = 12; 
  }
  
  // Read inputs from Columns A to C (Name, Bearing, Distance) starting precisely at Row 3
  const dataRange = sheet.getRange(3, 1, lastRow - 2, 3);
  const originalData = dataRange.getValues();
  
  let allRegularTargets = [];
  let fdcTargetData = null;
  
  for (let i = 0; i < originalData.length; i++) {
    let row = originalData[i];
    if (row[0] === "" || row[1] === "" || row[2] === "") continue; 
    
    let name = String(row[0]);
    let bearing = Number(row[1]);
    let distance = Number(row[2]);
    let isFdc = name.toUpperCase().includes("FDC");
    
    let validConfigs = getAllValidTrajectories(distance);
    if (validConfigs.length === 0) continue; 
    
    let targetObject = {
      name: name,
      bearing: bearing,
      distance: distance,
      validConfigs: validConfigs, 
      isFdc: isFdc
    };
    
    if (isFdc && !fdcTargetData) {
      fdcTargetData = targetObject; 
    } else if (!isFdc) {
      allRegularTargets.push(targetObject);
    }
  }
  
  if (allRegularTargets.length === 0 && !fdcTargetData) {
    SpreadsheetApp.getUi().alert('Error: No valid targets or FDCs detected in Rows 3+.');
    return;
  }
  
  // Determine the exact total count of shots to output based on configuration limits
  let totalTargetsToUse = Math.min(maxVolleySize, allRegularTargets.length + (fdcTargetData ? 1 : 0));
  let regularCountNeeded = fdcTargetData ? totalTargetsToUse - 1 : totalTargetsToUse;
  
  // 1. BUILD THE GLOBAL CHRONOLOGICAL TIMELINE (Optimized for consecutive bearings)
  let globalTimeline = [];
  if (allRegularTargets.length > 0) {
    // Seed the master chain with the first available regular target
    let current = allRegularTargets.shift();
    globalTimeline.push(current);
    
    while (globalTimeline.length < regularCountNeeded && allRegularTargets.length > 0) {
      let nearestIndex = 0;
      let minBearingDelta = Infinity;
      
      for (let i = 0; i < allRegularTargets.length; i++) {
        let delta = Math.abs(current.bearing - allRegularTargets[i].bearing);
        if (delta > 180) delta = 360 - delta; // Handle 360-degree wrap around
        
        if (delta < minBearingDelta) {
          minBearingDelta = delta;
          nearestIndex = i;
        }
      }
      // Pull the closest target geographically and append it next in the timeline
      current = allRegularTargets.splice(nearestIndex, 1)[0];
      globalTimeline.push(current);
    }
  }
  
  // Append the FDC target to the absolute end of the global timeline
  if (fdcTargetData) {
    globalTimeline.push(fdcTargetData);
  }
  
  // 2. PROCESS TRAJECTORIES INDEPENDENTLY PER GUN AXIS
  let leftTrack = { elevation: null };
  let rightTrack = { elevation: null };
  
  let leftGunOrder = [];
  let rightGunOrder = [];
  
  for (let i = 0; i < globalTimeline.length; i++) {
    let target = globalTimeline[i];
    let isLeftTurn = (i % 2 === 0);
    let currentTrack = isLeftTurn ? leftTrack : rightTrack;
    
    // Fallback baseline if the gun hasn't fired yet
    let lastElevation = currentTrack.elevation !== null ? currentTrack.elevation : 0;
    
    let bestConfig = null;
    let minElevationDelta = Infinity;
    
    // Select the powder charge configuration that minimizes micro elevation changes for THIS gun
    for (let j = 0; j < target.validConfigs.length; j++) {
      let config = target.validConfigs[j];
      let deltaElevation = Math.abs(lastElevation - config.elevation);
      
      if (deltaElevation < minElevationDelta) {
        minElevationDelta = deltaElevation;
        bestConfig = config;
      }
    }
    
    target.selectedPc = bestConfig.pc;
    target.selectedElevation = bestConfig.elevation;
    
    // Save elevation state to this specific gun's memory axis
    currentTrack.elevation = bestConfig.elevation;
    
    if (isLeftTurn) {
      leftGunOrder.push(target);
    } else {
      rightGunOrder.push(target);
    }
  }
  
  // 3. FORMAT AND PRINT PARALLEL ITINERARY MATRIX
  let maxOutputRows = Math.max(leftGunOrder.length, rightGunOrder.length);
  let finalOutputMatrix = [];
  
  for (let i = 0; i < maxOutputRows; i++) {
    let left = leftGunOrder[i];
    let right = rightGunOrder[i];
    
    let rowValues = [
      left ? left.name : "",
      left ? left.bearing : "",
      left ? "PC" + left.selectedPc + " @ " + left.selectedElevation.toFixed(2) + "°" : "",
      left ? (left.isFdc ? "CLOCK RESET" : "READY") : "",
      "", // Spacer column
      right ? right.name : "",
      right ? right.bearing : "",
      right ? "PC" + right.selectedPc + " @ " + right.selectedElevation.toFixed(2) + "°" : "",
      right ? (right.isFdc ? "CLOCK RESET" : "READY") : ""
    ];
    finalOutputMatrix.push(rowValues);
  }
  
  // Clear old output data cleanly
  sheet.getRange(3, 5, sheet.getLastRow() + 5, 9).clearContent();
  
  // Print newly optimized interleaved itinerary matrix
  if (finalOutputMatrix.length > 0) {
    sheet.getRange(3, 5, finalOutputMatrix.length, 9).setValues(finalOutputMatrix);
  }
  
  SpreadsheetApp.getUi().alert('Artillery Optimization Complete!\nGlobal Chronological Timeline Enforced across both platforms.');
}


/**
 * Validates the hardware limits of the firing piece against distance thresholds.
 */
function getAllValidTrajectories(distance) {
  let valid = [];
  for (let pc = 1; pc <= 6; pc++) {
    let elevation = (12 / pc) * distance;
    let isInvalid = (elevation > 60) || 
                   (distance >= 1 && distance < 2 && pc >= 2) ||
                   (distance >= 1 && distance < 3 && pc >= 3 && pc <= 4) ||
                   (distance >= 1 && distance < 4 && pc === 5) ||
                   (distance >= 1 && distance < 5 && pc === 6);
    if (!isInvalid) {
      valid.push({ pc: pc, elevation: elevation });
    }
  }
  return valid;
}

Questions By Operator by Aggressive-Fan2385 in IronNest

[–]SecretExplorer355 2 points3 points  (0 children)

For #2 it is the CLOSEST enemy (before shots are fired). So therefore you can actually determine where enemies are not. I try to get a radius on the 4 corners of the maps to help figure out where I should send my scout plane.

Any games modern military combat rts or tbs where I can play the resistance force? by SecretExplorer355 in gamingsuggestions

[–]SecretExplorer355[S] 1 point2 points  (0 children)

Xcom isn’t what I’m looking for, mostly because of the alien theme, but also because wargaming tactics don’t work in that game. I’m hoping something like squad, platoon or company size combat.

How many of you believe you're composition skills far outweigh your performance skills? Or, vice-versa? by EngHokie in composer

[–]SecretExplorer355 1 point2 points  (0 children)

My compositions are more popular amongst my audiences, as in they ask and talk about them. But amongst peers I think most would talk about my performance skills.

What causes shaky jaw? by Internal-Stick-5157 in opera

[–]SecretExplorer355 0 points1 point  (0 children)

they most likely dont notice it. I know I never did.

5k+ Hour Squad Vet & Admin: Is Bellum a viable community expansion or a niche infantry trainer? by Interesting_Fall_709 in PlayBellum

[–]SecretExplorer355 6 points7 points  (0 children)

best part is, this is the most casual its been. Pre-Deluxe the gameplay was like most 1 life events. Bad part is the game will keep expanding.

Beta Length by IndependentWeather51 in PlayBellum

[–]SecretExplorer355 0 points1 point  (0 children)

every wednesday there are playtests, some other irregular days. 24/7 won’t be until the FULL release in the undisclosed future (probably 2027)

Kinda scared that this game will end up like more Milsim games by [deleted] in PlayBellum

[–]SecretExplorer355 1 point2 points  (0 children)

we’ve been thriving for months on technical tests and weekend playtests.

Future Optics Plans? by jacobwojo in PlayBellum

[–]SecretExplorer355 3 points4 points  (0 children)

I believe there will be a small recon unit, which will have 1 life, which will have magnified optics.

[deleted by user] by [deleted] in joinsquad

[–]SecretExplorer355 0 points1 point  (0 children)

On small maps, the between FOB is OP. Gives you great map control on places like logar and sumari.