Mass Perception Check - crnormand/gurps GitHub Wiki

Type: Script

Contributor: Buzzard

Description: Rolls a Blind Perception Check for one or more selected tokens. Modifiers in the Modifier Bucket apply. (Derived from the Mass Fright Check macro.)

// Select One or More Tokens

ChatMessage.create({content: "<b>* Group Perception Roll:</b>", blind: 1});

async function check() {

  // Save Modifiers
  let modifiers = GURPS.ModifierBucket.modifierStack.modifierList;

  // Get List of Selected Tokens
  let selected = canvas.tokens.controlled;

  // Save Original Actor
  const originalActor = GURPS.LastActor;

  // Step Through Tokens
  for (let token of selected) {
    // Select Token
    GURPS.SetLastActor(token.actor);

    // Perception Check
    await GURPS.executeOTF(`[!PER]`);

    // Reset Modifiers
    for (let mod of modifiers) {
      GURPS.ModifierBucket.addModifier(mod.modint, mod.desc);
    }
  }

  // Clear Modifier Bucket
  GURPS.ModifierBucket.clear();

  //Restore Last Actor
  GURPS.SetLastActor(originalActor);
}

check();