{
    onStart(pokemon) {
        for (const target of pokemon.adjacentFoes()) {
            if (!target.volatiles['illuminate']) {
                target.addVolatile('illuminate', pokemon);
            }
        }
    },
    onUpdate(pokemon) {
        const affectedFoes = new Set(pokemon.adjacentFoes());
        for (const foe of pokemon.side.foe.active) {
            if (affectedFoes.has(foe)) {
                if (!foe.volatiles['illuminate']) {
                    foe.addVolatile('illuminate', pokemon);
                }
            } else if (foe.volatiles['illuminate']) {
                foe.removeVolatile('illuminate');
            }
        }
    },
    onEnd(pokemon) {
        for (const foe of pokemon.side.foe.active) {
            if (foe.volatiles['illuminate']) {
                foe.removeVolatile('illuminate');
            }
        }
    },
    condition: {
        onStart(target, source) {
            this.add('-start', target, 'Illuminate', '[from] ability: Illuminate', '[of] ' + source);
        },
        onModifyEvasion(evasion) {
            return this.chainModify(0.75);
        },
        onEnd(target) {
            this.add('-end', target, 'Illuminate');
        },
    },
    flags: {breakable: 1},
    name: "Illuminate",
    rating: 0.5,
    num: 35,
}
