future 1 ano atrás
pai
commit
523307b60e

+ 2 - 1
assets/data/data.ts

@@ -95,7 +95,8 @@ export class att_drag_data{
 export class other_widget_finish_listen_item{
     public event_id:number = -1;
     public widget_id:number = -1;
-    public is_execute:boolean = false; //是否执行
+    public is_execute_myself:boolean = false; //是否执行自身
+    public grade:number = 0 //等级 未完成:其中有2,只执行2; 没有2,所有1执行; 没有2&&没有1,所有0执行;
 }
 
 export class att_slide_data{

+ 10 - 10
assets/edit_game.scene

@@ -44387,7 +44387,7 @@
     "_lpos": {
       "__type__": "cc.Vec3",
       "x": -136.958,
-      "y": -253.9,
+      "y": -223.90000000000003,
       "z": 0
     },
     "_lrot": {
@@ -44543,7 +44543,7 @@
     "_prefab": null,
     "_lpos": {
       "__type__": "cc.Vec3",
-      "x": 130.13,
+      "x": 150,
       "y": 0,
       "z": 0
     },
@@ -47676,7 +47676,7 @@
     "_lpos": {
       "__type__": "cc.Vec3",
       "x": -136.95800000000008,
-      "y": 1423,
+      "y": -114.10000000000002,
       "z": 0
     },
     "_lrot": {
@@ -48073,7 +48073,7 @@
     "_lpos": {
       "__type__": "cc.Vec3",
       "x": -136.95800000000008,
-      "y": 1393,
+      "y": -184.10000000000002,
       "z": 0
     },
     "_lrot": {
@@ -48217,7 +48217,7 @@
       "__id__": 1280
     },
     "_children": [],
-    "_active": true,
+    "_active": false,
     "_components": [
       {
         "__id__": 1285
@@ -48229,7 +48229,7 @@
     "_prefab": null,
     "_lpos": {
       "__type__": "cc.Vec3",
-      "x": 130.13,
+      "x": 150,
       "y": 0,
       "z": 0
     },
@@ -48729,7 +48729,7 @@
     "_lpos": {
       "__type__": "cc.Vec3",
       "x": 0,
-      "y": -1974.9,
+      "y": -1656.7000000000003,
       "z": 0
     },
     "_lrot": {
@@ -51175,7 +51175,7 @@
     "_lpos": {
       "__type__": "cc.Vec3",
       "x": -136.95800000000008,
-      "y": 3258.4000000000005,
+      "y": -133.9,
       "z": 0
     },
     "_lrot": {
@@ -51572,7 +51572,7 @@
     "_lpos": {
       "__type__": "cc.Vec3",
       "x": -136.95800000000008,
-      "y": 3228.4000000000005,
+      "y": -163.9,
       "z": 0
     },
     "_lrot": {
@@ -51728,7 +51728,7 @@
     "_prefab": null,
     "_lpos": {
       "__type__": "cc.Vec3",
-      "x": 130.13,
+      "x": 150,
       "y": 0,
       "z": 0
     },

Diferenças do arquivo suprimidas por serem muito extensas
+ 746 - 145
assets/resources/prefab/task/other_widget_finish_item.prefab


+ 21 - 7
assets/script/edit/attributes/other_widget_finish_item.ts

@@ -1,4 +1,4 @@
-import { _decorator, Component, Label, Node, Toggle } from 'cc';
+import { _decorator, Component, EditBox, Label, Node, Toggle } from 'cc';
 import { event_item, other_widget_finish_listen_item, widget_item_data } from '../../../data/data';
 import { tools } from '../../tools';
 import { Attributes } from '../Attributes';
@@ -13,7 +13,9 @@ export class other_widget_finish_item extends Component {
     @property(Node) btn_select_widget:Node = null;
     @property(Node) lab_select_widget:Node = null;
     @property(Node) btn_delete:Node = null;
-    @property(Toggle) toggle_is_execute:Toggle = null;
+    @property(Toggle) toggle_is_execute_myself:Toggle = null;
+    @property(EditBox) editBox_grade:EditBox = null;
+
     private m_data:other_widget_finish_listen_item = null;
     private delete_call = null;
     public initView(data:other_widget_finish_listen_item,call){
@@ -48,11 +50,18 @@ export class other_widget_finish_item extends Component {
             })
         })
 
-        this.toggle_is_execute.node.on(Toggle.EventType.CLICK, ()=>{
-            this.m_data.is_execute = this.toggle_is_execute.isChecked
+        this.toggle_is_execute_myself.node.on('toggle', ()=>{
+            this.m_data.is_execute_myself = this.toggle_is_execute_myself.isChecked
             this.update_att(this.m_data)
         })
 
+        this.editBox_grade.node.on(EditBox.EventType.EDITING_DID_ENDED, ()=>{
+            if(this.editBox_grade.string.length<=0) {
+                this.editBox_grade.string = '0'
+            }
+            this.m_data.grade = parseInt(this.editBox_grade.string)
+        })
+
         this.update_att(this.m_data)
     }
 
@@ -72,10 +81,15 @@ export class other_widget_finish_item extends Component {
             }
         }
 
-        if(this.m_data.is_execute==undefined) {
-            this.m_data.is_execute = false
+        if(this.m_data.is_execute_myself==undefined) {
+            this.m_data.is_execute_myself = false
+        }
+        this.toggle_is_execute_myself.isChecked = this.m_data.is_execute_myself
+
+        if(this.m_data.grade==undefined) {
+            this.m_data.grade = 0
         }
-        this.toggle_is_execute.isChecked = this.m_data.is_execute
+        this.editBox_grade.string = this.m_data.grade.toString()
     }
 }
 

+ 1 - 1
assets/script/run/gameManager.ts

@@ -534,7 +534,7 @@ export class gameManager extends Component {
         for (let index = 0; index < list.length; index++) {
             const item = list[index];
             let isFinish = this.mGameRun.isCurScenePageCheckWidgetFinish(item.widget_id)
-            // console.log('isFinish=',isFinish)
+            // console.log('item.widget_id=',item.widget_id, 'isFinish=',isFinish)
             let event_id = item.event_id;
             if(event_id!=-1) {
                 if(is_finish_status && isFinish) {

+ 41 - 3
assets/script/run/widget/widget_click.ts

@@ -127,7 +127,7 @@ export class widget_click extends widget_base {
                 let is_execute_myself = false
                 for (let index = 0; index < finish_list.length; index++) {
                     const element = finish_list[index];
-                    if(element.is_execute) {
+                    if(element.is_execute_myself) {
                         is_execute_myself = true
                         break
                     }
@@ -151,7 +151,7 @@ export class widget_click extends widget_base {
                 let have_count = 0
                 for (let i = 0; i < this.mClickData.other_widget_finish_listen_list.length; i++) {
                     const i_element = this.mClickData.other_widget_finish_listen_list[i]
-                    if(i_element.is_execute) {
+                    if(i_element.is_execute_myself) {
                         execute_count+=1
                         for (let j = 0; j < finish_list.length; j++) {
                             const j_element = finish_list[j];
@@ -193,13 +193,51 @@ export class widget_click extends widget_base {
         }
         let list = gameManager.Singleton.checkWidgetList(this.mClickData.other_widget_finish_listen_list,is_finish_status)
         if(is_finish_status==false&&list.length>0) {
+            // for (let index = 0; index < list.length; index++) {
+            //     const event = list[index];
+            //     gameManager.Singleton.exeEvent(event.event_id)
+            // }
+            // console.log('list=',list)
+            // 未完成:其中有2,只执行2; 没有2,所有1执行; 没有2&&没有1,所有0执行;
+            let hight_list:other_widget_finish_listen_item[] = []
+            let middle_list:other_widget_finish_listen_item[] = []
+            let normal_list:other_widget_finish_listen_item[] = []
             for (let index = 0; index < list.length; index++) {
                 const event = list[index];
-                gameManager.Singleton.exeEvent(event.event_id)
+                if(event.grade>=2) {
+                    hight_list.push(event)
+                    break
+                } else if(event.grade==1) {
+                    middle_list.push(event)
+                } else {
+                    normal_list.push(event)
+                }
             }
+
+            let exeEvent_cb = ((item_list:other_widget_finish_listen_item[])=>{
+                for (let index = 0; index < item_list.length; index++) {
+                    const event = item_list[index];
+                    gameManager.Singleton.exeEvent(event.event_id)
+                }
+            })
+
+            if(hight_list.length>0) {
+                middle_list = []
+                normal_list = []
+                exeEvent_cb(hight_list)
+            } else {
+                if(middle_list.length>0) {
+                    normal_list = []
+                    exeEvent_cb(middle_list)
+                } else {
+                    exeEvent_cb(normal_list)
+                }
+            }
+
         }
         return list;
     }
+    
 }
 
 

+ 41 - 8
assets/script/run/widget/widget_drag.ts

@@ -126,9 +126,7 @@ export class widget_drag extends widget_base {
         if(this.checkMoveToDragRect()){
             this.mIsStartMove = false;
             this.checkAddOtherWidgetFinishListenOperation()
-            
-        }else{
-
+        } else {
             if(this.checkOther()){
                 this.mIsStartMove = false;
             }else{
@@ -136,9 +134,7 @@ export class widget_drag extends widget_base {
                     this.resetOriginPostion()
                 }
             }
- 
         }
-
     }
 
     public getDragRect():Rect{
@@ -211,7 +207,7 @@ export class widget_drag extends widget_base {
                 let is_execute_myself = false
                 for (let index = 0; index < finish_list.length; index++) {
                     const element = finish_list[index];
-                    if(element.is_execute) {
+                    if(element.is_execute_myself) {
                         is_execute_myself = true
                         break
                     }
@@ -240,7 +236,7 @@ export class widget_drag extends widget_base {
                 let have_count = 0
                 for (let i = 0; i < this.mDragData.other_widget_finish_listen_list.length; i++) {
                     const i_element = this.mDragData.other_widget_finish_listen_list[i]
-                    if(i_element.is_execute) {
+                    if(i_element.is_execute_myself) {
                         execute_count+=1
                         for (let j = 0; j < finish_list.length; j++) {
                             const j_element = finish_list[j];
@@ -286,10 +282,47 @@ export class widget_drag extends widget_base {
         }
         let list = gameManager.Singleton.checkWidgetList(this.mDragData.other_widget_finish_listen_list,is_finish_status)
         if(is_finish_status==false&&list.length>0) {
+            // for (let index = 0; index < list.length; index++) {
+            //     const event = list[index];
+            //     gameManager.Singleton.exeEvent(event.event_id)
+            // }
+            // console.log('list=',list)
+            // 未完成:其中有2,只执行2; 没有2,所有1执行; 没有2&&没有1,所有0执行;
+            let hight_list:other_widget_finish_listen_item[] = []
+            let middle_list:other_widget_finish_listen_item[] = []
+            let normal_list:other_widget_finish_listen_item[] = []
             for (let index = 0; index < list.length; index++) {
                 const event = list[index];
-                gameManager.Singleton.exeEvent(event.event_id)
+                if(event.grade>=2) {
+                    hight_list.push(event)
+                    break
+                } else if(event.grade==1) {
+                    middle_list.push(event)
+                } else {
+                    normal_list.push(event)
+                }
+            }
+
+            let exeEvent_cb = ((item_list:other_widget_finish_listen_item[])=>{
+                for (let index = 0; index < item_list.length; index++) {
+                    const event = item_list[index];
+                    gameManager.Singleton.exeEvent(event.event_id)
+                }
+            })
+
+            if(hight_list.length>0) {
+                middle_list = []
+                normal_list = []
+                exeEvent_cb(hight_list)
+            } else {
+                if(middle_list.length>0) {
+                    normal_list = []
+                    exeEvent_cb(middle_list)
+                } else {
+                    exeEvent_cb(normal_list)
+                }
             }
+
         }
         return list;
     }

+ 40 - 3
assets/script/run/widget/widget_slide.ts

@@ -176,7 +176,7 @@ export class widget_slide extends widget_base {
                 let is_execute_myself = false
                 for (let index = 0; index < finish_list.length; index++) {
                     const element = finish_list[index];
-                    if(element.is_execute) {
+                    if(element.is_execute_myself) {
                         is_execute_myself = true
                         break
                     }
@@ -200,7 +200,7 @@ export class widget_slide extends widget_base {
                 let have_count = 0
                 for (let i = 0; i < this.mSlideData.other_widget_finish_listen_list.length; i++) {
                     const i_element = this.mSlideData.other_widget_finish_listen_list[i]
-                    if(i_element.is_execute) {
+                    if(i_element.is_execute_myself) {
                         execute_count+=1
                         for (let j = 0; j < finish_list.length; j++) {
                             const j_element = finish_list[j];
@@ -242,10 +242,47 @@ export class widget_slide extends widget_base {
         }
         let list = gameManager.Singleton.checkWidgetList(this.mSlideData.other_widget_finish_listen_list,is_finish_status)
         if(is_finish_status==false&&list.length>0) {
+            // for (let index = 0; index < list.length; index++) {
+            //     const event = list[index];
+            //     gameManager.Singleton.exeEvent(event.event_id)
+            // }
+            // console.log('list=',list)
+            // 未完成:其中有2,只执行2; 没有2,所有1执行; 没有2&&没有1,所有0执行;
+            let hight_list:other_widget_finish_listen_item[] = []
+            let middle_list:other_widget_finish_listen_item[] = []
+            let normal_list:other_widget_finish_listen_item[] = []
             for (let index = 0; index < list.length; index++) {
                 const event = list[index];
-                gameManager.Singleton.exeEvent(event.event_id)
+                if(event.grade>=2) {
+                    hight_list.push(event)
+                    break
+                } else if(event.grade==1) {
+                    middle_list.push(event)
+                } else {
+                    normal_list.push(event)
+                }
+            }
+
+            let exeEvent_cb = ((item_list:other_widget_finish_listen_item[])=>{
+                for (let index = 0; index < item_list.length; index++) {
+                    const event = item_list[index];
+                    gameManager.Singleton.exeEvent(event.event_id)
+                }
+            })
+
+            if(hight_list.length>0) {
+                middle_list = []
+                normal_list = []
+                exeEvent_cb(hight_list)
+            } else {
+                if(middle_list.length>0) {
+                    normal_list = []
+                    exeEvent_cb(middle_list)
+                } else {
+                    exeEvent_cb(normal_list)
+                }
             }
+
         }
         return list;
     }

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff