public Vector<Report> resolveAction(IGame game){
  Vector<Report> reports=new Vector<Report>();
  Report r;
  if (!isPossible(game)) {
    r=new Report(3445);
    r.subject=getEntityId();
    r.newlines=1;
    reports.addElement(r);
    return reports;
  }
  final Entity attacker=getEntity(game);
  final Coords apos=attacker.getPosition();
  final Targetable target=getTarget(game);
  final Coords tpos=target.getPosition();
  if (attacker.usedSearchlight()) {
    r=new Report(3450);
    r.subject=getEntityId();
    r.add(attacker.getDisplayName());
    r.newlines=1;
    reports.addElement(r);
    return reports;
  }
  attacker.setUsedSearchlight(true);
  ArrayList<Coords> in=Coords.intervening(apos,tpos);
  for (  Coords c : in) {
    for (    Entity en : game.getEntitiesVector(c)) {
      LosEffects los=LosEffects.calculateLos(game,getEntityId(),en);
      if (los.canSee()) {
        en.setIlluminated(true);
        r=new Report(3455);
        r.subject=getEntityId();
        r.newlines=1;
        r.add(en.getDisplayName());
        r.add(attacker.getDisplayName());
        reports.addElement(r);
      }
    }
  }
  return reports;
}

public Vector < Report > resolveAction ( IGame game ) { Vector < Report > reports = new Vector < Report > ( ) ; Report r ; if ( ! isPossible ( game ) ) { r = new Report ( 3445 ) ; r . subject = getEntityId ( ) ; r . newlines = 1 ; reports . addElement ( r ) ; return reports ; } final Entity attacker = getEntity ( game ) ; final Coords apos = attacker . getPosition ( ) ; final Targetable target = getTarget ( game ) ; final Coords tpos = target . getPosition ( ) ; if ( attacker . usedSearchlight ( ) ) { r = new Report ( 3450 ) ; r . subject = getEntityId ( ) ; r . add ( attacker . getDisplayName ( ) ) ; r . newlines = 1 ; reports . addElement ( r ) ; return reports ; } attacker . setUsedSearchlight ( true ) ; ArrayList < Coords > in = Coords . intervening ( apos , tpos ) ; for ( Coords c : in ) { for ( Entity en : game . getEntitiesVector ( c ) ) { LosEffects los = LosEffects . calculateLos ( game , getEntityId ( ) , en ) ; if ( los . canSee ( ) ) { en . setIlluminated ( true ) ; r = new Report ( 3455 ) ; r . subject = getEntityId ( ) ; r . newlines = 1 ; r . add ( en . getDisplayName ( ) ) ; r . add ( attacker . getDisplayName ( ) ) ; reports . addElement ( r ) ; } } } return reports ; }
illuminate an entity and all entities that are between us and the hex
