Преглед изворни кода

1.关卡添加积分显示
2.技能判断攻击距离

greg пре 4 година
родитељ
комит
dbe92d24b1

+ 36 - 18
assets/resources/configs/Levels.json

@@ -16,7 +16,8 @@
                 "anger": 10,
                 "createTime": 0,
                 "startPosType": 1,
-                "startPos": 0
+                "startPos": 0,
+                "integral": 1
             },
             {
                 "mId": "M2",
@@ -29,7 +30,8 @@
                 "anger": 10,
                 "createTime": 0,
                 "startPosType": 1,
-                "startPos": 1
+                "startPos": 1,
+                "integral": 1
             },
             {
                 "mId": "M3",
@@ -42,7 +44,8 @@
                 "anger": 10,
                 "createTime": 0,
                 "startPosType": 1,
-                "startPos": 2
+                "startPos": 2,
+                "integral": 1
             },
             {
                 "mId": "M4",
@@ -55,7 +58,8 @@
                 "anger": 10,
                 "createTime": 0,
                 "startPosType": 1,
-                "startPos": 1
+                "startPos": 1,
+                "integral": 1
             },
             {
                 "mId": "M5",
@@ -68,7 +72,8 @@
                 "anger": 10,
                 "createTime": 0,
                 "startPosType": 1,
-                "startPos": 0
+                "startPos": 0,
+                "integral": 1
             },
             {
                 "mId": "M6",
@@ -81,7 +86,8 @@
                 "anger": 10,
                 "createTime": 0,
                 "startPosType": 1,
-                "startPos": 1
+                "startPos": 1,
+                "integral": 1
             },
             {
                 "mId": "M7",
@@ -94,7 +100,8 @@
                 "anger": 10,
                 "createTime": 0,
                 "startPosType": 1,
-                "startPos": 2
+                "startPos": 2,
+                "integral": 1
             },
             {
                 "mId": "M8",
@@ -107,7 +114,8 @@
                 "anger": 10,
                 "createTime": 0,
                 "startPosType": 1,
-                "startPos": 1
+                "startPos": 1,
+                "integral": 1
             },
             {
                 "mId": "M9",
@@ -120,7 +128,8 @@
                 "anger": 10,
                 "createTime": 16500,
                 "startPosType": 1,
-                "startPos": 1
+                "startPos": 1,
+                "integral": 1
             }
         ]
     },
@@ -141,7 +150,8 @@
                 "anger": 10,
                 "createTime": 0,
                 "startPosType": 1,
-                "startPos": 0
+                "startPos": 0,
+                "integral": 1
             },
             {
                 "mId": "M11",
@@ -154,7 +164,8 @@
                 "anger": 10,
                 "createTime": 0,
                 "startPosType": 1,
-                "startPos": 1
+                "startPos": 1,
+                "integral": 1
             },
             {
                 "mId": "M12",
@@ -167,7 +178,8 @@
                 "anger": 10,
                 "createTime": 0,
                 "startPosType": 1,
-                "startPos": 2
+                "startPos": 2,
+                "integral": 1
             },
             {
                 "mId": "M13",
@@ -180,7 +192,8 @@
                 "anger": 10,
                 "createTime": 0,
                 "startPosType": 1,
-                "startPos": 1
+                "startPos": 1,
+                "integral": 1
             },
             {
                 "mId": "M14",
@@ -193,7 +206,8 @@
                 "anger": 10,
                 "createTime": 0,
                 "startPosType": 1,
-                "startPos": 0
+                "startPos": 0,
+                "integral": 1
             },
             {
                 "mId": "M15",
@@ -206,7 +220,8 @@
                 "anger": 10,
                 "createTime": 0,
                 "startPosType": 1,
-                "startPos": 1
+                "startPos": 1,
+                "integral": 1
             },
             {
                 "mId": "M16",
@@ -219,7 +234,8 @@
                 "anger": 10,
                 "createTime": 0,
                 "startPosType": 1,
-                "startPos": 2
+                "startPos": 2,
+                "integral": 1
             },
             {
                 "mId": "M17",
@@ -232,7 +248,8 @@
                 "anger": 10,
                 "createTime": 0,
                 "startPosType": 1,
-                "startPos": 1
+                "startPos": 1,
+                "integral": 1
             },
             {
                 "mId": "M18",
@@ -245,7 +262,8 @@
                 "anger": 10,
                 "createTime": 16500,
                 "startPosType": 1,
-                "startPos": 1
+                "startPos": 1,
+                "integral": 1
             }
         ]
     }

+ 2 - 1
assets/scripts/games/models/GameConfigManager.ts

@@ -308,11 +308,12 @@ export default class GameConfigManager
                     monsterConfig.hp=element.hp;
                     monsterConfig.damage=element.damage;
                     monsterConfig.anger=element.anger;
+                    monsterConfig.integral=element.integral;
                     if(element.startPosType==1){
                         let r:number=Math.random()*9;
                         if(r<3){
                             monsterConfig.startPos=0;
-                        }if(r<6){
+                        }else if(r<6){
                             monsterConfig.startPos=1;
                         }else{
                             monsterConfig.startPos=2;

+ 5 - 3
assets/scripts/games/models/GameModel.ts

@@ -450,15 +450,17 @@ export class GameModel extends DataModel{
         this.SetProperty(GamePropertys.gold,value);
     }
 
+
      /**
      * 积分
      */
     get integral():number{
-        return this.GetProperty(GamePropertys.integral);
+        return this._interal
     }
-
+    private _interal:number;
     set integral(value:number){
-        this.SetProperty(GamePropertys.integral,value);
+        this._interal=value;
+        this.DispatchEvent(DataModelEventType.PROPERTY_CHANGED,GamePropertys.integral);
     }
 
     /**

+ 31 - 0
assets/scripts/games/ui/fightings/GameController.ts

@@ -285,6 +285,33 @@ export class GameController extends EventDispatcher{
         }
     }
 
+    /**
+     * 是否有怪物可攻击
+     */
+    public get CanAttackMonster():boolean{
+        let monsterList:MonsterBase[];
+        let monsterLists:Array<Array<MonsterBase>>=[this.leftMonsterList,this.middleMonsterList,this.rightMonsterList];
+        let endNode:Node;
+        let monster:MonsterBase;
+        for (let index = 0; index < monsterLists.length; index++) {
+            monsterList = monsterLists[index];
+            for (let index = 0; index < monsterList.length; index++) {
+                monster = monsterList[index];
+                if(monster.config.startPos==0){
+                    endNode=this.leftEndNode;
+                }else if(monster.config.startPos==1){
+                    endNode=this.middleEndNode;
+                }else{
+                    endNode=this.rightEndNode;
+                }
+                if(Vec3.distance(monster.node.worldPosition,endNode.worldPosition)<=this.weapon.weaponConfig.attackDistance){
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
     /**
      * 武器攻击
      */
@@ -402,6 +429,10 @@ export class GameController extends EventDispatcher{
                     GameModel.single.angerCount+=monster.config.anger;
                     //增加击杀量
                     GameModel.single.killCount++;
+                    //增加积分
+                    if(monster.config.integral>0){
+                        GameModel.single.integral+=monster.config.integral;
+                    }
                     //从列表中删除
                     monsterList.splice(index,1);
                     index--;

+ 3 - 0
assets/scripts/games/ui/fightings/skills/KillAllMonsterSkill.ts

@@ -35,6 +35,9 @@ export class KillAllMonsterSkill extends SkillBase {
             this.DispatchEvent(SkillBase.SKILL_COMPLETE);
             return;
         }
+        if(GameController.single.CanAttackMonster==false){
+            return;
+        }
         if(current-this.lastTime>this.fireInterval){
             if(GameController.single.leftMonsterList.length){
                 this.weapon.fireKey=1;