@@ -45,6 +45,7 @@ const Item = memo(function Item({
45
45
dim,
46
46
fields,
47
47
getLayer,
48
+ opposite,
48
49
position,
49
50
size,
50
51
type,
@@ -53,6 +54,7 @@ const Item = memo(function Item({
53
54
dim ?: boolean | null ;
54
55
fields : ReadonlyMap < Vector , RadiusItem > ;
55
56
getLayer : GetLayerFunction ;
57
+ opposite : boolean | undefined ;
56
58
position : Vector ;
57
59
size : number ;
58
60
type : RadiusType ;
@@ -106,6 +108,7 @@ const Item = memo(function Item({
106
108
} }
107
109
className = { cx (
108
110
itemStyle ,
111
+ opposite && oppositeMaskStyle ,
109
112
...borderStyles ,
110
113
dim && dimStyle ,
111
114
type === RadiusType . Attack &&
@@ -210,6 +213,7 @@ export default memo(function Radius({
210
213
currentViewer,
211
214
getLayer,
212
215
map,
216
+ opposite,
213
217
radius : { dim, fields, path, type } ,
214
218
selectedPosition,
215
219
selectedUnit,
@@ -219,6 +223,7 @@ export default memo(function Radius({
219
223
currentViewer : PlayerID | null ;
220
224
getLayer : GetLayerFunction ;
221
225
map : MapData ;
226
+ opposite ?: boolean ;
222
227
radius : RadiusInfo ;
223
228
selectedPosition ?: Vector | null ;
224
229
selectedUnit ?: Unit | null ;
@@ -274,6 +279,7 @@ export default memo(function Radius({
274
279
)
275
280
}
276
281
key = { 'r' + String ( vector ) }
282
+ opposite = { opposite }
277
283
position = { vector }
278
284
size = { size }
279
285
type = { type }
@@ -359,6 +365,16 @@ const itemStyle = css`
359
365
transform : translate3d(${ vars . apply ( 'x' ) } , ${ vars . apply ( 'y' ) } , 0 );
360
366
` ;
361
367
368
+ const oppositeMaskStyle = css `
369
+ mask : repeating-linear-gradient (
370
+ to top right,
371
+ black,
372
+ black 1px ,
373
+ ${ vars . apply ( 'background-light' ) } 0% ,
374
+ ${ vars . apply ( 'background-light' ) } 2.13px
375
+ );
376
+ ` ;
377
+
362
378
const radialMaskStyle = css `
363
379
mask : repeating-radial-gradient (
364
380
circle at 50% ,
0 commit comments