From 0e6d97436f58866063736781061c22b1cc4f5e6e Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 18 十月 2024 17:11:05 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/tool.js     |   11 +++++++++++
 zy-acs-flow/src/map/player.js   |    2 +-
 zy-acs-flow/src/map/MapPage.jsx |    4 ++--
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/zy-acs-flow/src/map/MapPage.jsx b/zy-acs-flow/src/map/MapPage.jsx
index c25a681..b2a887a 100644
--- a/zy-acs-flow/src/map/MapPage.jsx
+++ b/zy-acs-flow/src/map/MapPage.jsx
@@ -140,7 +140,7 @@
                 player.hideStarryBackground();
 
                 player.activateMapMultiSelect((selectedSprites, restartFn) => {
-                    setBatchSprites(selectedSprites);
+                    Tool.multipleSelectEnhancer(selectedSprites, setCurSprite, setBatchSprites);
                 });
 
                 mapContainer.children.forEach(child => {
@@ -166,7 +166,7 @@
                 // player.showStarryBackground(); // 0x2f68ac
 
                 player.activateMapMultiSelect((selectedSprites, restartFn) => {
-                    setBatchSprites(selectedSprites);
+                    Tool.multipleSelectEnhancer(selectedSprites, setCurSprite, setBatchSprites);
                 });
 
                 mapContainer.children.forEach(child => {
diff --git a/zy-acs-flow/src/map/player.js b/zy-acs-flow/src/map/player.js
index b5b60f9..72dd37a 100644
--- a/zy-acs-flow/src/map/player.js
+++ b/zy-acs-flow/src/map/player.js
@@ -406,7 +406,7 @@
     })
     app.stage.eventMode = 'static';
     app.stage.hitArea = app.screen;
-    
+
     app.view.addEventListener('contextmenu', (event) => {
         event.preventDefault();
     });
diff --git a/zy-acs-flow/src/map/tool.js b/zy-acs-flow/src/map/tool.js
index 8ef7d0b..9bb38d2 100644
--- a/zy-acs-flow/src/map/tool.js
+++ b/zy-acs-flow/src/map/tool.js
@@ -408,6 +408,17 @@
     effectHalfCircle.position.set(sprite.x, sprite.y);
 }
 
+export const multipleSelectEnhancer = (selectedSprites, setCurSprite, setBatchSprites) => {
+    selectedSprites = selectedSprites.filter(sprite => sprite.data?.type);
+
+    if (selectedSprites.length === 1) {
+        unMarkSprite(selectedSprites[0]);
+        setCurSprite(selectedSprites[0]);
+    } else {
+        setBatchSprites(selectedSprites);
+    }
+}
+
 export const rotationToNum = (rotation) => {
     let res = rotation * 180 / Math.PI;
     if (res < 0) {

--
Gitblit v1.9.1