|  |  | 
 |  |  |     mapContainer = param; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | export function getMapContainer() { | 
 |  |  |     return mapContainer; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | export const MapEvent = Object.freeze({ | 
 |  |  |     SELECTION_BOX: Symbol.for(0), | 
 |  |  | }) | 
 |  |  | 
 |  |  |  | 
 |  |  | export const showSelectedEffect = (sprite) => { | 
 |  |  |     const { width, height } = sprite; | 
 |  |  |     const scale = mapContainer.scale.x; | 
 |  |  |     const scale = sprite.scale.x; | 
 |  |  |     const sideLen = (Math.max(width, height) + 10) * scale; | 
 |  |  |     const color = 0x273c75; | 
 |  |  |  | 
 |  |  |     effectHalfCircle = new PIXI.Graphics(); | 
 |  |  |     effectHalfCircle.beginFill(color); | 
 |  |  |     effectHalfCircle.lineStyle(2, color); | 
 |  |  |     effectHalfCircle.lineStyle(2 * scale, color); | 
 |  |  |     effectHalfCircle.arc(0, 0, sideLen, 0, Math.PI); | 
 |  |  |     effectHalfCircle.endFill(); | 
 |  |  |     effectHalfCircle.position.set(sprite.x, sprite.y); | 
 |  |  |     effectHalfCircle.scale.set(1 / scale); | 
 |  |  |  | 
 |  |  |     effectRectangle = new PIXI.Graphics(); | 
 |  |  |     effectRectangle.lineStyle(2, color, 1); | 
 |  |  |     effectRectangle.drawRoundedRect(0, 0, sideLen, sideLen, 16); | 
 |  |  |     effectRectangle.lineStyle(2 * scale, color, 1); | 
 |  |  |     effectRectangle.drawRoundedRect(0, 0, sideLen, sideLen, 16 * scale); | 
 |  |  |     effectRectangle.endFill(); | 
 |  |  |     effectRectangle.mask = effectHalfCircle; | 
 |  |  |  | 
 |  |  | 
 |  |  |     effectTick = (delta) => { | 
 |  |  |         phase += delta / 10; | 
 |  |  |         phase %= (Math.PI * 2); | 
 |  |  |         effectHalfCircle.rotation = phase; | 
 |  |  |         if (effectHalfCircle) { | 
 |  |  |             effectHalfCircle.rotation = phase; | 
 |  |  |         } | 
 |  |  |     }; | 
 |  |  |  | 
 |  |  |     app.ticker.add(effectTick); | 
 |  |  | 
 |  |  |     } | 
 |  |  | } | 
 |  |  |  | 
 |  |  | export const copySprite = (sprite) => { | 
 |  |  |     const copiedSprite = new PIXI.Sprite(sprite.texture); | 
 |  |  |     initSprite(copiedSprite); | 
 |  |  |     copiedSprite.position.set(sprite.position.x, sprite.position.y); | 
 |  |  |     copiedSprite.scale.set(sprite.scale.x, sprite.scale.y); | 
 |  |  |     copiedSprite.rotation = sprite.rotation; | 
 |  |  |     return copiedSprite; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | export const markSprite = (sprite) => { | 
 |  |  |     sprite.alpha = 0.5; | 
 |  |  | } |