{
  onPrepareHit(source, target, move) {
    
    if (move.category === "Status" || move.multihit || move.flags["noparentalbond"] || 
        move.flags["charge"] || move.flags["futuremove"] || move.spreadHit || 
        move.isZ || move.isMax) {
      return;
    }
    
    
    const isSlicingMove = move.flags["slicing"];
    const isPriorityMove = move.priority > 0;
    
    if (isSlicingMove || isPriorityMove) {
      
      const allies = source.side.active.filter(pokemon => pokemon && !pokemon.fainted);
      let hasSameAbilityAlly = false;
      
      for (const ally of allies) {
        if (ally !== source && ally.getAbility().name === "Army Group") {
          hasSameAbilityAlly = true;
          break;
        }
      }
      
      
      if (hasSameAbilityAlly) {
        this.debug("Army Group activates (with ally)");
        move.multihit = 2;
        move.multihitType = "armygroup";
      }
    }
  },
  
  onSourceModifyDamage(damage, source, target, move) {
    
    if (move.multihitType === "armygroup" && move.hit === 2) {
      this.debug("Army Group second hit 75% damage");
      return this.chainModify(0.75);
    }
  },
  
  
  flags: { 
    breakable: 1,           
    notrace: 1,             
    noparentalbond: 1,      
    uncopyable: 1,          
    cantsuppress: 1,        
    noreplace: 1,           
  },
  
  
  onTryAddVolatile(status, target, source, effect) {
    
    if (status.id === 'suppressedability' || status.id === 'gastroacid') {
      if (effect && effect.effectType === 'Ability') {
        const ability = effect.name;
        
        this.add('-activate', target, 'ability: Army Group');
        this.add('-immune', target, '[from] ability: Army Group');
        return null;
      }
    }
  },
  
  
  onAllyTryEatItem(item, pokemon, source) {
    
    return false;
  },
  
  
  onTryCopyPriority(priority, pokemon, target, move) {
    if (move.id === 'roleplay') {
      return false;
    }
  },
  
  name: "Army Group",
  rating: 3.5, 
  num: -356002
}