feat(effects): add Darkness action effect like freeze
Adds a fullscreen darkness vignette on click and a permanent shadow spot with a black radial gradient (40% edge, 100% center). Includes control panel UI, i18n, eraser support, and tests. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -34,6 +34,33 @@ void test('pickEraseTargetId: вода по штриху как туман', ()
|
||||
assert.equal(id, 'w1');
|
||||
});
|
||||
|
||||
void test('pickEraseTargetId: тьма как заморозка — точка удара', () => {
|
||||
const darkness: EffectInstance = {
|
||||
...base,
|
||||
id: 'd1',
|
||||
type: 'darkness',
|
||||
at: { x: 0.4, y: 0.55 },
|
||||
intensity: 1,
|
||||
lifetimeMs: 820,
|
||||
};
|
||||
const id = pickEraseTargetId([darkness], { x: 0.41, y: 0.55 }, 0.05);
|
||||
assert.equal(id, 'd1');
|
||||
});
|
||||
|
||||
void test('pickEraseTargetId: shadow с учётом inst.radiusN', () => {
|
||||
const shadow: EffectInstance = {
|
||||
...base,
|
||||
id: 's1',
|
||||
type: 'shadow',
|
||||
at: { x: 0.5, y: 0.5 },
|
||||
radiusN: 0.08,
|
||||
opacity: 1,
|
||||
lifetimeMs: null,
|
||||
};
|
||||
const id = pickEraseTargetId([shadow], { x: 0.59, y: 0.5 }, 0.02);
|
||||
assert.equal(id, 's1');
|
||||
});
|
||||
|
||||
void test('minDistSqEffectToPoint: молния — расстояние до отрезка', () => {
|
||||
const bolt: EffectInstance = {
|
||||
...base,
|
||||
|
||||
Reference in New Issue
Block a user