Parcourir la source

修改boss血条

lanyunfei il y a 1 jour
Parent
commit
29d3f1e579

+ 3 - 3
assets/game/animation/guihun.anim

@@ -257,15 +257,15 @@
       "opacity": [
         {
           "frame": 0,
-          "value": 125
+          "value": 180
         },
         {
           "frame": 1,
-          "value": 50
+          "value": 150
         },
         {
           "frame": 2.066666666666667,
-          "value": 125
+          "value": 180
         }
       ]
     }

Fichier diff supprimé car celui-ci est trop grand
+ 1806 - 935
assets/prefab/GameUI.prefab


+ 6 - 2
assets/script/ECS/core/RoleEventProcess.ts

@@ -14,7 +14,7 @@ import {ccUtils} from '../../utils/ccUtils'
 import FrameAnimation from '../../uiutils/FrameAnimation'
 import {Data} from '../../GameControl'
 import {IRoleConfig} from '../../config/RoleConfig'
-import {GAME_ROLE_TIP, ROLE_TYPE} from '../../enums/Enum'
+import {GAME_ROLE_TIP, MONSTER_TYPE, ROLE_TYPE} from '../../enums/Enum'
 import {EventProcess} from './EventProcess'
 import {IBuff} from './GameInterface'
 import {FlashColor} from './FlashColor'
@@ -166,7 +166,11 @@ export class RoleEventProcess extends EventProcess {
     private _changeHP(event: EventHPChange) {
         //let lastAllHp = event.HP
         let isBase = this.roleConfig.type == ROLE_TYPE.base
-        if (!this.HPNode.active && !isBase && (event.HP != event.nowHP || event.shieldHP > 0)) this.HPNode.active = true
+        let isBoss = this.roleConfig.type == MONSTER_TYPE.boss
+        if (!this.HPNode.active && !isBoss && !isBase && (event.HP != event.nowHP || event.shieldHP > 0))
+            this.HPNode.active = true
+
+        if (!this.HPNode.active) return
         let allHp = event.HP
         //if (event.lastHP + event.lastShieldHP > lastAllHp) lastAllHp = event.lastHP + event.lastShieldHP
         if (event.nowHP + event.shieldHP > allHp) allHp = event.nowHP + event.shieldHP

+ 2 - 2
assets/script/ECS/systems/SysBuff.ts

@@ -16,7 +16,7 @@ import {
     BUFF_EFFECT_TYPE,
     BUFF_TYPE,
     GAME_ROLE_TIP,
-    MASTER_TYPE,
+    MONSTER_TYPE,
     ROLE_TYPE,
     SKILL_EFFECT_TYPE,
 } from '../../enums/Enum'
@@ -122,7 +122,7 @@ export class SysBuff extends ECSSystem {
                         //boss数值衰减
                         for (let i = 0; i < buff.buffCfg.effectType.length; i++) {
                             let type = buff.buffCfg.effectType[i]
-                            if (type == BUFF_EFFECT_TYPE.boss && comRole.roleCfg.type == MASTER_TYPE.boss) {
+                            if (type == BUFF_EFFECT_TYPE.boss && comRole.roleCfg.type == MONSTER_TYPE.boss) {
                                 changeNum *= 1 - buff.buffCfg.effectParm[i][0] / Data.game.rateNum
                             }
                         }

+ 10 - 7
assets/script/ECS/systems/SysRoleState.ts

@@ -22,7 +22,7 @@ import {ComLifeTime} from '../components/ComLifeTime'
 import {ComFriend} from '../components/ComFriend'
 import {ComEnemy} from '../components/ComEnemy'
 import {ComDizzy} from '../components/ComDizzy'
-import {ATTR_NAME, ENTRY, MASTER_TYPE, ROLE_TYPE, SKILL_TYPE} from '../../enums/Enum'
+import {ATTR_NAME, ENTRY, MONSTER_TYPE, ROLE_TYPE, SKILL_TYPE} from '../../enums/Enum'
 import {ComRoleSpine} from '../components/ComRoleSpine'
 import {EntryObj} from '../core/GameInterface'
 import {ComFrameAni} from '../components/ComFrameAni'
@@ -74,6 +74,8 @@ export class SysRoleState extends ECSSystem {
                     } else {
                         world.gameUI.friendBaseNowHP = comRole.nowHP
                     }
+                } else if (world.isBoss(comRole)) {
+                    world.gameUI.showBossHP(comRole)
                 }
                 let keys = Object.keys(ATTR_NAME)
                 let attrAddByHpChangeCb = (entryObj: EntryObj, isMore: boolean) => {
@@ -112,15 +114,16 @@ export class SysRoleState extends ECSSystem {
                         world.gameUI.endGame(isWin)
                         return
                     } else if (
-                        comRole.roleCfg.type == MASTER_TYPE.boss ||
-                        comRole.roleCfg.type == MASTER_TYPE.elite ||
-                        comRole.roleCfg.type == MASTER_TYPE.normal
+                        comRole.roleCfg.type == MONSTER_TYPE.boss ||
+                        comRole.roleCfg.type == MONSTER_TYPE.elite ||
+                        comRole.roleCfg.type == MONSTER_TYPE.normal
                     ) {
-                        if (comRole.roleCfg.type == MASTER_TYPE.elite) {
+                        if (comRole.roleCfg.type == MONSTER_TYPE.elite) {
                             world.gameUI.eliteNum += 1
-                        } else if (comRole.roleCfg.type == MASTER_TYPE.boss) {
+                        } else if (comRole.roleCfg.type == MONSTER_TYPE.boss) {
                             world.gameUI.bossNum += 1
-                        } else if (comRole.roleCfg.type == MASTER_TYPE.normal) {
+                            world.gameUI.hideBossHP()
+                        } else if (comRole.roleCfg.type == MONSTER_TYPE.normal) {
                             world.gameUI.monsterNum += 1
                         }
                         let comTrans = world.getComponent(entity, ComTransform)

+ 25 - 13
assets/script/ECS/worlds/WorldCocosView.ts

@@ -45,7 +45,7 @@ import {
     GAME_TYPE,
     GAME_WIN_TYPE,
     LANGUAGE_TYPE,
-    MASTER_TYPE,
+    MONSTER_TYPE,
     NEGATIVE_TYPE,
     ROLE_TYPE,
     SKILL_DIR_TYPE,
@@ -305,6 +305,14 @@ export class WorldCocosView extends ECSWorld {
                 console.error('没有这个技能配置----------->', roleCfg.skills[index])
             }
         })
+
+        //血量等词条装备处理完后处理
+        comRole.nowHP = comRole.HP
+        comRole.lastHP = comRole.HP
+        comRole.shieldHP = 0
+        comRole.lastShieldHP = 0
+
+        //处理gameUI显示
         if (this.gameUI) {
             let entities = this.gameUI.roleEntityMap.get(roleCfg.ID)
             if (!entities) {
@@ -312,17 +320,13 @@ export class WorldCocosView extends ECSWorld {
                 this.gameUI.roleEntityMap.set(roleCfg.ID, entities)
             }
             entities.push(entity)
-            if (this.gameUI.stageInfo.type == GAME_WIN_TYPE.boss) {
-                if (roleCfg.type == MASTER_TYPE.boss) {
+            if (roleCfg.type == MONSTER_TYPE.boss) {
+                if (this.gameUI.stageInfo.type == GAME_WIN_TYPE.boss) {
                     this.changeInvincible(this.gameUI.enemyBaseEntity, false)
                 }
+                this.gameUI.showBossHP(comRole)
             }
         }
-        //血量等词条装备处理完后处理
-        comRole.nowHP = comRole.HP
-        comRole.lastHP = comRole.HP
-        comRole.shieldHP = 0
-        comRole.lastShieldHP = 0
         return entity
     }
 
@@ -483,14 +487,22 @@ export class WorldCocosView extends ECSWorld {
     }
 
     isBase(idOrCom: EntityIndex | ComRole) {
+        return this.isRoleType(idOrCom, ROLE_TYPE.base)
+    }
+
+    isBoss(idOrCom: EntityIndex | ComRole) {
+        return this.isRoleType(idOrCom, MONSTER_TYPE.boss)
+    }
+
+    isRoleType(idOrCom: EntityIndex | ComRole, type: ROLE_TYPE | MONSTER_TYPE) {
         let comRole: ComRole
         if (typeof idOrCom == 'number') {
-            if (!idOrCom) return true
+            if (!idOrCom) return false
             comRole = this.getComponent(idOrCom, ComRole)
         } else {
             comRole = idOrCom
         }
-        return !comRole || comRole.roleCfg.type === ROLE_TYPE.base
+        return !comRole || comRole.roleCfg.type === type
     }
 
     //-------------------------战斗扣血加血-----------------------------------------------
@@ -576,7 +588,7 @@ export class WorldCocosView extends ECSWorld {
         })
 
         //普攻对boss加伤
-        if (attackObj.entryMap.get(ENTRY.boosHurt)?.num && changeHPRole.roleCfg.type == MASTER_TYPE.boss) {
+        if (attackObj.entryMap.get(ENTRY.boosHurt)?.num && changeHPRole.roleCfg.type == MONSTER_TYPE.boss) {
             hurtAddRate += attackObj.entryMap.get(ENTRY.boosHurt).num
         }
         changeHPRole.buffs.forEach(buff => {
@@ -648,7 +660,7 @@ export class WorldCocosView extends ECSWorld {
                 hurtAddRate += fightData.entryMap.get(ENTRY.skillHurtRate).num
             }
             //技能对boss加伤
-            if (fightData.entryMap.get(ENTRY.boosHurt)?.num && changeHPRole.roleCfg.type == MASTER_TYPE.boss) {
+            if (fightData.entryMap.get(ENTRY.boosHurt)?.num && changeHPRole.roleCfg.type == MONSTER_TYPE.boss) {
                 hurtAddRate += fightData.entryMap.get(ENTRY.boosHurt).num
             }
             if (attack || spellAttack || realAttack) {
@@ -1469,7 +1481,7 @@ export class WorldCocosView extends ECSWorld {
                     comDizzy.countDown = buff.buffCfg.attrNum[0]
                     for (let i = 0; i < buff.buffCfg.effectType.length; i++) {
                         let type = buff.buffCfg.effectType[i]
-                        if (type == BUFF_EFFECT_TYPE.boss && comRoleSkill.roleCfg.type == MASTER_TYPE.boss) {
+                        if (type == BUFF_EFFECT_TYPE.boss && comRoleSkill.roleCfg.type == MONSTER_TYPE.boss) {
                             comDizzy.countDown *= 1 - buff.buffCfg.effectParm[i][0] / Data.game.rateNum
                         }
                     }

+ 1 - 1
assets/script/enums/Enum.ts

@@ -173,7 +173,7 @@ export enum ROLE_TYPE {
     base, //基地
 }
 
-export enum MASTER_TYPE {
+export enum MONSTER_TYPE {
     normal = 21, //普通怪物
     elite, //精英
     boss, //boss

+ 2 - 2
assets/script/mgrs/UIManager.ts

@@ -433,7 +433,6 @@ export class UIManager {
         }
         let close = () => {
             this.isClosing = false
-            baseUI.onHide()
             // 显示之前的界面
             if (preUIInfo && preUIInfo.baseUI && preUIInfo.baseUI.node.activeInHierarchy) {
                 // 回调onTop onTop只是当前层级生效
@@ -443,6 +442,7 @@ export class UIManager {
                 this.uiCloseDelegate(uiID)
             }
             this.releaseUI(uiInfo)
+            baseUI.onHide()
             this.autoExecNextUI()
             if (this.groupUIs.length > 0) {
                 this.curGroupUI = this.groupUIs.splice(0, 1)[0]
@@ -489,9 +489,9 @@ export class UIManager {
                 uiInfo.preventNode = null
             }
             if (uiInfo.baseUI) {
-                uiInfo.baseUI.onHide()
                 //uiInfo.baseUI.decAllRef()
                 this.releaseUI(uiInfo)
+                uiInfo.baseUI.onHide()
             }
         }
         this.UIOpenQueue = []

+ 78 - 38
assets/script/ui/GameUI.ts

@@ -25,7 +25,7 @@ import {
     GAME_TYPE,
     GAME_WIN_TYPE,
     LANGUAGE_TYPE,
-    MASTER_TYPE,
+    MONSTER_TYPE,
     RELIC_EVENT_NTY,
     ROLE_TYPE,
     SKILL_DIR_TYPE,
@@ -185,6 +185,8 @@ export default class GameUI extends BaseUI {
     private rechargePb: cc.Node
     @node('recharge/rechargeNumPb')
     private rechargeNumPb: cc.Node
+    @node('bossHP')
+    private bossHPNode: cc.Node
     public roleTipPool: Map<string, cc.NodePool>
     public dropPool: Map<number, cc.NodePool> = new Map()
     public getDrop: Map<number, number> = new Map()
@@ -280,6 +282,7 @@ export default class GameUI extends BaseUI {
         this.initSkillCards()
         this.friendBase.active = true
         this.enemyBase.active = true
+        this.bossHPNode.active = false
         this.bossNum = 0
         this.eliteNum = 0
         this.monsterNum = 0
@@ -911,7 +914,7 @@ export default class GameUI extends BaseUI {
             if (drops.length > 0) {
                 //过滤掉boss,去头尾
                 for (let i = 1; i < allRoles.length - 1; i++) {
-                    if (this.getRoleCfgByCfgID(allRoles[i]).type != MASTER_TYPE.boss) dropRolesPos.push(i)
+                    if (this.getRoleCfgByCfgID(allRoles[i]).type != MONSTER_TYPE.boss) dropRolesPos.push(i)
                 }
                 //N组随机
                 let count = Math.ceil(dropRolesPos.length / drops.length)
@@ -1514,6 +1517,79 @@ export default class GameUI extends BaseUI {
         })
     }
 
+    flyCostNode(addNum, startPos: cc.Vec3) {
+        let costPool = this.dropPool.get(GOODS.cost)
+        if (!costPool) {
+            costPool = new cc.NodePool()
+            this.dropPool.set(GOODS.cost, costPool)
+        }
+        let nodes = []
+        let costNode = cc.find('cost', this.node)
+        for (let i = 0; i < addNum; i++) {
+            let node = costPool.get()
+            if (!node) node = cc.instantiate(cc.find('icon', costNode))
+            node.scale = 1
+            nodes.push(node)
+        }
+        ccUtils.circleFlyNodes(
+            nodes,
+            this.node,
+            startPos,
+            costNode.position,
+            node => {
+                costPool.put(node)
+            },
+            () => {
+                this.cost += addNum
+            },
+        )
+    }
+
+    showRechargeChange(rechargeTime: number, curLeftNum: number) {
+        let baseBulletCfg = CastleSkillConfig[Data.user.useCastleSkillID]
+        this.rechargePb.active = rechargeTime > 0
+        if (rechargeTime > 0) ccUtils.setProgress(1 - rechargeTime / baseBulletCfg.rechargeCD, this.rechargePb)
+        this.rechargeNumPb.active = curLeftNum > 0
+        if (curLeftNum > 0) ccUtils.setProgress(curLeftNum / baseBulletCfg.rechargeNum, this.rechargeNumPb)
+    }
+
+    showBossHP(comRole: ComRole) {
+        this.bossHPNode.active = true
+        let maxBars = 6
+        let healthPerBar = Math.floor(comRole.HP / maxBars) // 每管血量
+        let currentBars =
+            comRole.nowHP > healthPerBar * (maxBars - 1) ? maxBars : Math.ceil(comRole.nowHP / healthPerBar)
+        let lastBars =
+            comRole.lastHP > healthPerBar * (maxBars - 1) ? maxBars : Math.ceil(comRole.lastHP / healthPerBar)
+        // 更新标签
+        ccUtils.setLabel(`x${currentBars}`, this.bossHPNode, 'label')
+        let getImageNum = index => {
+            if (index > 0) {
+                return index % 5 ? index % 5 : 5
+            }
+            return 0
+        }
+        if (currentBars != lastBars || comRole.nowHP == comRole.HP) {
+            if (currentBars > 1) {
+                this.loadTexImg(`GameUI/boss_blood_${getImageNum(currentBars - 1)}`, this.bossHPNode, 'bg')
+            } else {
+                ccUtils.setSpriteFrame(null, this.bossHPNode, 'bg')
+            }
+            this.loadTexImg(`GameUI/boss_blood_${getImageNum(currentBars)}`, this.bossHPNode, 'pb/bar')
+        }
+        ccUtils.setProgress(
+            currentBars == maxBars
+                ? (comRole.nowHP - healthPerBar * (maxBars - 1)) / (healthPerBar + (comRole.HP % healthPerBar))
+                : (comRole.nowHP % healthPerBar) / healthPerBar,
+            this.bossHPNode,
+            'pb',
+        )
+    }
+
+    hideBossHP() {
+        this.bossHPNode.active = false
+    }
+
     onClickAdAddCost() {
         Mgr.platform.playVideoAD(AD_ID.energy, () => {
             this.adCost.active = false
@@ -1551,42 +1627,6 @@ export default class GameUI extends BaseUI {
         }
     }
 
-    flyCostNode(addNum, startPos: cc.Vec3) {
-        let costPool = this.dropPool.get(GOODS.cost)
-        if (!costPool) {
-            costPool = new cc.NodePool()
-            this.dropPool.set(GOODS.cost, costPool)
-        }
-        let nodes = []
-        let costNode = cc.find('cost', this.node)
-        for (let i = 0; i < addNum; i++) {
-            let node = costPool.get()
-            if (!node) node = cc.instantiate(cc.find('icon', costNode))
-            node.scale = 1
-            nodes.push(node)
-        }
-        ccUtils.circleFlyNodes(
-            nodes,
-            this.node,
-            startPos,
-            costNode.position,
-            node => {
-                costPool.put(node)
-            },
-            () => {
-                this.cost += addNum
-            },
-        )
-    }
-
-    showRechargeChange(rechargeTime: number, curLeftNum: number) {
-        let baseBulletCfg = CastleSkillConfig[Data.user.useCastleSkillID]
-        this.rechargePb.active = rechargeTime > 0
-        if (rechargeTime > 0) ccUtils.setProgress(1 - rechargeTime / baseBulletCfg.rechargeCD, this.rechargePb)
-        this.rechargeNumPb.active = curLeftNum > 0
-        if (curLeftNum > 0) ccUtils.setProgress(curLeftNum / baseBulletCfg.rechargeNum, this.rechargeNumPb)
-    }
-
     //触发事件=======================================
     @render
     showSpeed() {

+ 19 - 1
assets/script/utils/ccUtils.ts

@@ -113,7 +113,7 @@ class CCUtils {
     }
 
     /**
-     * 设置spriteFrame和大小
+     * 按照spriteFrame设置大小
      */
     public setSFAndScale(spriteFrame: cc.SpriteFrame, scale: number = 1, node: cc.Node, childUrl?: string) {
         if (!cc.isValid(node)) {
@@ -132,6 +132,24 @@ class CCUtils {
     }
 
     /**
+     * 设置spriteFrame
+     */
+    public setSpriteFrame(spriteFrame: cc.SpriteFrame, node: cc.Node, childUrl?: string) {
+        if (!cc.isValid(node)) {
+            return
+        }
+        if (childUrl) {
+            node = cc.find(childUrl, node)
+        }
+        let sprite = node.getComponent(cc.Sprite)
+        if (!sprite) {
+            cc.warn('setSFAndScale err no sprite')
+            return
+        }
+        sprite.spriteFrame = spriteFrame
+    }
+
+    /**
      *
      * @param isInteract
      * @param node

BIN
assets/texture/GameUI/boss_blood_1.png


+ 38 - 0
assets/texture/GameUI/boss_blood_1.png.meta

@@ -0,0 +1,38 @@
+{
+  "ver": "2.3.7",
+  "uuid": "1550006b-1d2a-4769-a0d7-3eb9bbca3a63",
+  "importer": "texture",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "genMipmaps": false,
+  "packable": true,
+  "width": 53,
+  "height": 26,
+  "platformSettings": {},
+  "subMetas": {
+    "boss_blood_1": {
+      "ver": "1.0.6",
+      "uuid": "8feeeab0-138d-446a-8211-c6e190d62cf8",
+      "importer": "sprite-frame",
+      "rawTextureUuid": "1550006b-1d2a-4769-a0d7-3eb9bbca3a63",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 53,
+      "height": 26,
+      "rawWidth": 53,
+      "rawHeight": 26,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 23,
+      "borderRight": 23,
+      "subMetas": {}
+    }
+  }
+}

BIN
assets/texture/GameUI/boss_blood_2.png


+ 38 - 0
assets/texture/GameUI/boss_blood_2.png.meta

@@ -0,0 +1,38 @@
+{
+  "ver": "2.3.7",
+  "uuid": "979e538a-6a0a-4066-b230-d21badb24aca",
+  "importer": "texture",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "genMipmaps": false,
+  "packable": true,
+  "width": 53,
+  "height": 26,
+  "platformSettings": {},
+  "subMetas": {
+    "boss_blood_2": {
+      "ver": "1.0.6",
+      "uuid": "c62d6d92-f4cf-4afe-874b-a1b783f627c7",
+      "importer": "sprite-frame",
+      "rawTextureUuid": "979e538a-6a0a-4066-b230-d21badb24aca",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 53,
+      "height": 26,
+      "rawWidth": 53,
+      "rawHeight": 26,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 23,
+      "borderRight": 23,
+      "subMetas": {}
+    }
+  }
+}

BIN
assets/texture/GameUI/boss_blood_3.png


+ 38 - 0
assets/texture/GameUI/boss_blood_3.png.meta

@@ -0,0 +1,38 @@
+{
+  "ver": "2.3.7",
+  "uuid": "e5f861bb-413d-476f-bcc2-6d843b872d05",
+  "importer": "texture",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "genMipmaps": false,
+  "packable": true,
+  "width": 53,
+  "height": 26,
+  "platformSettings": {},
+  "subMetas": {
+    "boss_blood_3": {
+      "ver": "1.0.6",
+      "uuid": "08518d61-5d78-4ea1-95dc-56230cbefe7d",
+      "importer": "sprite-frame",
+      "rawTextureUuid": "e5f861bb-413d-476f-bcc2-6d843b872d05",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 53,
+      "height": 26,
+      "rawWidth": 53,
+      "rawHeight": 26,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 23,
+      "borderRight": 24,
+      "subMetas": {}
+    }
+  }
+}

BIN
assets/texture/GameUI/boss_blood_4.png


+ 38 - 0
assets/texture/GameUI/boss_blood_4.png.meta

@@ -0,0 +1,38 @@
+{
+  "ver": "2.3.7",
+  "uuid": "13e65385-7266-4fc5-b85b-56349f0c023c",
+  "importer": "texture",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "genMipmaps": false,
+  "packable": true,
+  "width": 53,
+  "height": 26,
+  "platformSettings": {},
+  "subMetas": {
+    "boss_blood_4": {
+      "ver": "1.0.6",
+      "uuid": "5ba5afa1-0d30-44f5-b575-56021d680be1",
+      "importer": "sprite-frame",
+      "rawTextureUuid": "13e65385-7266-4fc5-b85b-56349f0c023c",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 53,
+      "height": 26,
+      "rawWidth": 53,
+      "rawHeight": 26,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 23,
+      "borderRight": 23,
+      "subMetas": {}
+    }
+  }
+}

BIN
assets/texture/GameUI/boss_blood_5.png


+ 38 - 0
assets/texture/GameUI/boss_blood_5.png.meta

@@ -0,0 +1,38 @@
+{
+  "ver": "2.3.7",
+  "uuid": "c960b952-f749-4c08-a706-629dacb29afd",
+  "importer": "texture",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "genMipmaps": false,
+  "packable": true,
+  "width": 53,
+  "height": 26,
+  "platformSettings": {},
+  "subMetas": {
+    "boss_blood_5": {
+      "ver": "1.0.6",
+      "uuid": "af1bd9e9-0f68-4680-bb79-9aca2a80e84a",
+      "importer": "sprite-frame",
+      "rawTextureUuid": "c960b952-f749-4c08-a706-629dacb29afd",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 53,
+      "height": 26,
+      "rawWidth": 53,
+      "rawHeight": 26,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 24,
+      "borderRight": 24,
+      "subMetas": {}
+    }
+  }
+}

BIN
assets/texture/GameUI/boss_blood_bottom.png


+ 38 - 0
assets/texture/GameUI/boss_blood_bottom.png.meta

@@ -0,0 +1,38 @@
+{
+  "ver": "2.3.7",
+  "uuid": "16095a71-0cb2-43f7-8612-3aac6a170bb9",
+  "importer": "texture",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "genMipmaps": false,
+  "packable": true,
+  "width": 142,
+  "height": 60,
+  "platformSettings": {},
+  "subMetas": {
+    "boss_blood_bottom": {
+      "ver": "1.0.6",
+      "uuid": "5ce3f5eb-270f-466a-825e-57191e0dd806",
+      "importer": "sprite-frame",
+      "rawTextureUuid": "16095a71-0cb2-43f7-8612-3aac6a170bb9",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 142,
+      "height": 60,
+      "rawWidth": 142,
+      "rawHeight": 60,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 67,
+      "borderRight": 71,
+      "subMetas": {}
+    }
+  }
+}

BIN
assets/texture/GameUI/boss_head_bottom.png


+ 38 - 0
assets/texture/GameUI/boss_head_bottom.png.meta

@@ -0,0 +1,38 @@
+{
+  "ver": "2.3.7",
+  "uuid": "c585d07b-8ef0-4d00-9d7d-12544048fe1a",
+  "importer": "texture",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "genMipmaps": false,
+  "packable": true,
+  "width": 76,
+  "height": 76,
+  "platformSettings": {},
+  "subMetas": {
+    "boss_head_bottom": {
+      "ver": "1.0.6",
+      "uuid": "6a8d2e1f-9320-4b78-9eb8-c7b6c967847b",
+      "importer": "sprite-frame",
+      "rawTextureUuid": "c585d07b-8ef0-4d00-9d7d-12544048fe1a",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 76,
+      "height": 76,
+      "rawWidth": 76,
+      "rawHeight": 76,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}

BIN
assets/texture/GameUI/boss_icon.png


+ 38 - 0
assets/texture/GameUI/boss_icon.png.meta

@@ -0,0 +1,38 @@
+{
+  "ver": "2.3.7",
+  "uuid": "c32636b1-f2ca-493d-8a09-0da12770ffb3",
+  "importer": "texture",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "genMipmaps": false,
+  "packable": true,
+  "width": 75,
+  "height": 61,
+  "platformSettings": {},
+  "subMetas": {
+    "boss_icon": {
+      "ver": "1.0.6",
+      "uuid": "376f767b-693d-457a-9a35-dd3ae23db07f",
+      "importer": "sprite-frame",
+      "rawTextureUuid": "c32636b1-f2ca-493d-8a09-0da12770ffb3",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 75,
+      "height": 61,
+      "rawWidth": 75,
+      "rawHeight": 61,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}