feat: 为奖励卡片添加类型标识显示功能

- 在 MissionGetsComp 中添加根据 CardKind 显示不同类型标识的逻辑
- 修改 get.prefab 预制体,增加 Atk、Atked、Buff 等类型标识节点
- 默认隐藏 card.prefab 中的两个子节点以优化初始显示状态
This commit is contained in:
panw
2026-01-27 16:55:00 +08:00
parent fbbc04b4c4
commit b43a30a192
3 changed files with 1008 additions and 59 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -464,7 +464,7 @@
"__id__": 1
},
"_children": [],
"_active": true,
"_active": false,
"_components": [
{
"__id__": 19
@@ -639,7 +639,7 @@
"__id__": 1
},
"_children": [],
"_active": true,
"_active": false,
"_components": [
{
"__id__": 27

View File

@@ -4,6 +4,7 @@ import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/modu
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
import { GameEvent } from "../common/config/GameEvent";
import { smc } from "../common/SingletonModuleComp";
import { CardKind } from "../common/config/GameSet";
const { ccclass, property } = _decorator;
@@ -72,6 +73,49 @@ export class MissionGetsCompComp extends CCComp {
this.get_nodes.push(node);
node.getChildByName("num").getComponent(Label).string = "1";
// 先隐藏所有类型标识
const typeNodes = ["Atk", "Atked", "Buff", "Attr", "Skill", "Hp", "Dead", "Partner"];
// 1. 处理 bg 节点
typeNodes.forEach(nodeName => {
const node_bg = node.getChildByName(nodeName);
if (node_bg) node_bg.active = false;
});
// 根据 kind 激活bg
let activeNodeName = "";
switch (type) {
case CardKind.Atk:
activeNodeName = "Atk";
break;
case CardKind.Atted:
activeNodeName = "Atked";
break;
case CardKind.Buff:
activeNodeName = "Buff";
break;
case CardKind.Attr:
activeNodeName = "Attr";
break;
case CardKind.Skill:
activeNodeName = "Skill";
break;
case CardKind.Hp:
activeNodeName = "Hp";
break;
case CardKind.Dead:
activeNodeName = "Dead";
break;
case CardKind.Partner:
activeNodeName = "Partner";
break;
}
if (activeNodeName) {
// 激活bg
const activeNode = node.getChildByName(activeNodeName);
if (activeNode) activeNode.active = true;
}
const sprite = node.getChildByName("icon").getComponent(Sprite);
if (!sprite) return;