Merge branch 'card0515' of git.eoxnet.com:pan/pixelheros into card0515

This commit is contained in:
walkpan
2026-05-25 15:47:35 +08:00
9 changed files with 4888 additions and 8041 deletions

View File

@@ -47,13 +47,10 @@
}, },
{ {
"__id__": 53 "__id__": 53
},
{
"__id__": 55
} }
], ],
"_prefab": { "_prefab": {
"__id__": 57 "__id__": 55
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -898,32 +895,6 @@
"__type__": "cc.CompPrefabInfo", "__type__": "cc.CompPrefabInfo",
"fileId": "23j+p5lLdC+r4iKSVeLNM4" "fileId": "23j+p5lLdC+r4iKSVeLNM4"
}, },
{
"__type__": "cc.Animation",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 56
},
"playOnLoad": false,
"_clips": [
{
"__uuid__": "cd3e0604-8840-4794-8755-f2ed86dbe264",
"__expectedType__": "cc.AnimationClip"
}
],
"_defaultClip": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "49+IQe4gZPPYzJ/FgxeX/O"
},
{ {
"__type__": "cc.PrefabInfo", "__type__": "cc.PrefabInfo",
"root": { "root": {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "bf40528a-fcf8-44da-af2e-d6b113904f35",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "pool_lv"
}
}

View File

@@ -1,3 +1,5 @@
import { Color } from "cc";
/** 碰撞分组 */ /** 碰撞分组 */
export enum BoxSet { export enum BoxSet {
//物理碰撞tag //物理碰撞tag
@@ -121,3 +123,14 @@ export class NumberFormatter {
} }
} }
} }
export function getLvColor(lv: number): Color {
switch (lv) {
case 2: return new Color("#2ECC71");
case 3: return new Color("#3498DB");
case 4: return new Color("#9B59B6");
case 5: return new Color("#F1C40F");
case 6: return new Color("#E74C3C");
default: return Color.WHITE;
}
}

View File

@@ -33,6 +33,7 @@ import { smc } from "../common/SingletonModuleComp";
import { UIID } from "../common/config/GameUIConfig"; import { UIID } from "../common/config/GameUIConfig";
import { HeroAttrsComp } from "../hero/HeroAttrsComp"; import { HeroAttrsComp } from "../hero/HeroAttrsComp";
import { TalentType } from "../common/config/TalentSet"; import { TalentType } from "../common/config/TalentSet";
import { getLvColor } from "../common/config/GameSet";
import { MissionEconomy } from "./MissionEconomy"; import { MissionEconomy } from "./MissionEconomy";
@@ -88,7 +89,11 @@ export class CardComp extends CCComp {
HF_node=null! HF_node=null!
@property(Node) @property(Node)
lv_node=null! pool_lv_node=null! //英雄对应的卡池等级
@property(Label)
lvl_node: Label = null! //英雄本身的等级
@property(Node) @property(Node)
ap_node=null! ap_node=null!
@property(Node) @property(Node)
@@ -705,15 +710,15 @@ export class CardComp extends CCComp {
// ---- 卡牌等级标识 ---- // ---- 卡牌等级标识 ----
const cardLvStr = `lv${this.cardData.pool_lv}`; const cardLvStr = `lv${this.cardData.pool_lv}`;
if (this.lv_node) { if (this.pool_lv_node) {
this.lv_node.children.forEach(child => { this.pool_lv_node.children.forEach(child => {
if (child.name === "light") { // if (child.name === "light") {
child.active = false; // child.active = false;
} else if (child.name === "bg") { // } else if (child.name === "bg") {
child.active = true; // child.active = true;
} else { // } else {
child.active = (child.name === cardLvStr); child.active = (child.name === cardLvStr);
} // }
}); });
} }
@@ -743,11 +748,11 @@ export class CardComp extends CCComp {
}); });
} }
if (this.lv_node) { if (this.pool_lv_node) {
const widget = this.lv_node.getComponent(Widget); const widget = this.pool_lv_node.getComponent(Widget);
if (widget) widget.updateAlignment(); if (widget) widget.updateAlignment();
this.lv_node.children.forEach(child => { this.pool_lv_node.children.forEach(child => {
const childWidget = child.getComponent(Widget); const childWidget = child.getComponent(Widget);
if (childWidget) childWidget.updateAlignment(); if (childWidget) childWidget.updateAlignment();
}); });
@@ -817,11 +822,15 @@ export class CardComp extends CCComp {
} }
if(this.card_type===CardType.Hero){ if(this.card_type===CardType.Hero){
// 英雄卡:显示英雄名 + 星级 + AP/HP // 英雄卡:显示英雄名 + AP/HP
const hero = HeroInfo[this.card_uuid]; const hero = HeroInfo[this.card_uuid];
const heroLv = Math.max(1, Math.floor(this.cardData.hero_lv ?? hero?.lv ?? 1)); const heroLv = Math.max(1, hero?.lv);
const suffix = heroLv >= 2 ? "★".repeat(heroLv - 1) : ""; this.setLabel(this.name_node, `${hero?.name || ""}`);
this.setLabel(this.name_node, `${suffix}${hero?.name || ""}${suffix}`); if (this.lvl_node) {
this.lvl_node.string = `Lv.${heroLv}`;
this.lvl_node.color = getLvColor(heroLv);
this.lvl_node.node.active = true;
}
this.ap_node.getChildByName("val").getComponent(Label).string = `${(hero?.ap ?? 0) * heroLv}`; this.ap_node.getChildByName("val").getComponent(Label).string = `${(hero?.ap ?? 0) * heroLv}`;
this.hp_node.getChildByName("val").getComponent(Label).string = `${(hero?.hp ?? 0) * heroLv}`; this.hp_node.getChildByName("val").getComponent(Label).string = `${(hero?.hp ?? 0) * heroLv}`;
if (this.oinfo_node) { if (this.oinfo_node) {
@@ -838,6 +847,7 @@ export class CardComp extends CCComp {
this.oinfo_node.active = false; this.oinfo_node.active = false;
} }
}else if(this.card_type===CardType.Skill){ }else if(this.card_type===CardType.Skill){
if (this.lvl_node) this.lvl_node.node.active = false;
// 技能卡:显示技能名 + 品质后缀 + 描述 // 技能卡:显示技能名 + 品质后缀 + 描述
const skill = SkillSet[this.card_uuid]; const skill = SkillSet[this.card_uuid];
const skillCard = CardPoolList.find(c => c.uuid === this.card_uuid); const skillCard = CardPoolList.find(c => c.uuid === this.card_uuid);
@@ -855,6 +865,7 @@ export class CardComp extends CCComp {
this.oinfo_node.active = false; this.oinfo_node.active = false;
} }
}else{ }else{
if (this.lvl_node) this.lvl_node.node.active = false;
// 特殊卡(升级 / 刷新):显示卡名 + 品质后缀 + 描述 // 特殊卡(升级 / 刷新):显示卡名 + 品质后缀 + 描述
const specialCard = this.card_type === CardType.SpecialUpgrade const specialCard = this.card_type === CardType.SpecialUpgrade
? SpecialUpgradeCardList[this.card_uuid] ? SpecialUpgradeCardList[this.card_uuid]
@@ -998,11 +1009,11 @@ export class CardComp extends CCComp {
} }
}); });
} }
if (this.lv_node) { if (this.pool_lv_node) {
const widget = this.lv_node.getComponent(Widget); const widget = this.pool_lv_node.getComponent(Widget);
if (widget) widget.updateAlignment(); if (widget) widget.updateAlignment();
this.lv_node.children.forEach(child => { this.pool_lv_node.children.forEach(child => {
const childWidget = child.getComponent(Widget); const childWidget = child.getComponent(Widget);
if (childWidget) childWidget.updateAlignment(); if (childWidget) childWidget.updateAlignment();
}); });
@@ -1073,6 +1084,7 @@ export class CardComp extends CCComp {
if (this.ap_node) this.ap_node.active = false; if (this.ap_node) this.ap_node.active = false;
if (this.hp_node) this.hp_node.active = false; if (this.hp_node) this.hp_node.active = false;
if (this.oinfo_node) this.oinfo_node.active = false; if (this.oinfo_node) this.oinfo_node.active = false;
if (this.lvl_node) this.lvl_node.node.active = false;
// if (this.Ckind_node) { // if (this.Ckind_node) {
// this.Ckind_node.children.forEach(child => { // this.Ckind_node.children.forEach(child => {
// child.active = false; // child.active = false;
@@ -1086,8 +1098,8 @@ export class CardComp extends CCComp {
// this.HF_node.children.forEach(child => child.active = false); // this.HF_node.children.forEach(child => child.active = false);
// } // }
// if (this.NF_node) this.NF_node.active = false; // if (this.NF_node) this.NF_node.active = false;
// if (this.lv_node) { // if (this.pool_lv_node) {
// this.lv_node.children.forEach(child => child.active = false); // this.pool_lv_node.children.forEach(child => child.active = false);
// } // }
if (this.cost_node) this.cost_node.active = false; if (this.cost_node) this.cost_node.active = false;
if (this.icon_node) (this.icon_node as Node).setScale(new Vec3(1, 1, 1)); if (this.icon_node) (this.icon_node as Node).setScale(new Vec3(1, 1, 1));

View File

@@ -34,7 +34,7 @@ import { UIID } from "../common/config/GameUIConfig";
import { mLogger } from "../common/Logger"; import { mLogger } from "../common/Logger";
import { MissionHeroComp } from "./MissionHeroComp"; import { MissionHeroComp } from "./MissionHeroComp";
import { MoveComp } from "../hero/MoveComp"; import { MoveComp } from "../hero/MoveComp";
import { FacSet } from "../common/config/GameSet"; import { FacSet, getLvColor } from "../common/config/GameSet";
import { MissionEconomy } from "./MissionEconomy"; import { MissionEconomy } from "./MissionEconomy";
const {property, ccclass } = _decorator; const {property, ccclass } = _decorator;
@@ -67,9 +67,11 @@ export class HInfoComp extends CCComp {
@property(Node) @property(Node)
info_node=null! info_node=null!
@property(Node) @property(Label)
lv_node=null! lv_node: Label = null!
@property(Node)
pool_lvnode: Node = null!
@property(Node) @property(Node)
ap_node=null! ap_node=null!
@@ -165,11 +167,21 @@ export class HInfoComp extends CCComp {
// ---- 卡牌等级显示 ---- // ---- 卡牌等级显示 ----
if (this.lv_node) { if (this.lv_node) {
const currentLv = this.model.lv ?? 1; const currentLv = this.model.lv ?? 1;
this.lv_node.children.forEach(child => { this.lv_node.string = `Lv.${currentLv}`;
if (child.name.startsWith('lv')) { this.lv_node.color = getLvColor(currentLv);
const nodeLv = parseInt(child.name.substring(2)); }
child.active = !isNaN(nodeLv) && nodeLv <= currentLv;
} // ---- 卡池等级标识 ----
if (this.pool_lvnode) {
const poolLvStr = `lv${this.model.pool_lv ?? 1}`;
this.pool_lvnode.children.forEach(child => {
// if (child.name === "light") {
// child.active = false;
// } else if (child.name === "bg") {
// child.active = true;
// } else {
child.active = (child.name === poolLvStr);
// }
}); });
} }

View File

@@ -55,12 +55,12 @@ export class MissionHeroComp extends CCComp {
/** 硬编码的6个英雄占位点 */ /** 硬编码的6个英雄占位点 */
public static readonly HERO_POSITIONS: Vec3[] = [ public static readonly HERO_POSITIONS: Vec3[] = [
v3(-200, BoxSet.GAME_LINE + 100, 0), // index 0 (node_index 1): Top Front v3(-185, BoxSet.GAME_LINE + 90, 0), // index 0 (node_index 1): Top Front
v3(-200, BoxSet.GAME_LINE, 0), // index 1 (node_index 2): Mid Front v3(-170, BoxSet.GAME_LINE, 0), // index 1 (node_index 2): Mid Front
v3(-200, BoxSet.GAME_LINE - 100, 0), // index 2 (node_index 3): Bot Front v3(-200, BoxSet.GAME_LINE - 90, 0), // index 2 (node_index 3): Bot Front
v3(-300, BoxSet.GAME_LINE + 100, 0), // index 3 (node_index 4): Top Back v3(-285, BoxSet.GAME_LINE + 90, 0), // index 3 (node_index 4): Top Back
v3(-300, BoxSet.GAME_LINE, 0), // index 4 (node_index 5): Mid Back v3(-270, BoxSet.GAME_LINE, 0), // index 4 (node_index 5): Mid Back
v3(-300, BoxSet.GAME_LINE - 100, 0), // index 5 (node_index 6): Bot Back v3(-300, BoxSet.GAME_LINE - 90, 0), // index 5 (node_index 6): Bot Back
]; ];
/** 英雄出生时的掉落高度(从空中落到地面的像素差) */ /** 英雄出生时的掉落高度(从空中落到地面的像素差) */