refactor: 移除未使用的代码并优化卡牌获取逻辑

- 删除 MissionCardComp 中未使用的接口定义和注释代码
- 移除 MissionComp 中未实现的英雄死亡、升级和复活相关事件处理
- 重构 CardSet 中的 getCardPoolByLv 和 getCardsByLv 方法,增加类型过滤和等级模式参数
- 清理 MissionComp 中的冗余代码和注释,简化局内数据初始化逻辑
This commit is contained in:
walkpan
2026-03-14 09:09:47 +08:00
parent c8c3dde2e4
commit dbe376033d
5 changed files with 827 additions and 1055 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -146,15 +146,36 @@ const pickCards = (cards: CardConfig[], count: number): CardConfig[] => {
return selected
}
/** 获取指定等级可出现的基础卡池(英雄+技能) */
export const getCardPoolByLv = (lv: number): CardConfig[] => {
/** 获取指定等级可出现的基础卡池 */
export const getCardPoolByLv = (lv: number, onlyCurrentLv: boolean = false): CardConfig[] => {
const cardLv = clampCardLv(lv)
if (onlyCurrentLv) {
return CardPoolList.filter(card => card.lv === cardLv)
}
return CardPoolList.filter(card => card.lv <= cardLv)
}
/** 常规发牌:前 2 英雄 + 后 2 其他 */
export const getCardsByLv = (lv: number): CardConfig[] => {
const pool = getCardPoolByLv(lv)
const normalizeTypeFilter = (type: CardType | CardType[]): Set<CardType> => {
const list = Array.isArray(type) ? type : [type]
const hasBuffLike = list.includes(CardType.Buff) || list.includes(CardType.Debuff)
if (hasBuffLike) {
return new Set<CardType>([...list, CardType.Buff, CardType.Debuff])
}
return new Set<CardType>(list)
}
/** 常规发牌:前 2 英雄 + 后 2 其他;支持按类型和等级模式过滤 */
export const getCardsByLv = (
lv: number,
type?: CardType | CardType[],
onlyCurrentLv: boolean = false
): CardConfig[] => {
const pool = getCardPoolByLv(lv, onlyCurrentLv)
if (type !== undefined) {
const typeSet = normalizeTypeFilter(type)
const filteredPool = pool.filter(card => typeSet.has(card.type))
return pickCards(filteredPool, 4)
}
const heroPool = pool.filter(card => card.type === CardType.Hero)
const otherPool = pool.filter(card => card.type !== CardType.Hero)
const heroes = pickCards(heroPool, 2)

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "9bb78f05-447e-4b26-b2ec-4ac1341d390b",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@@ -12,10 +12,6 @@ import { CardType } from "../common/config/CardSet";
const { ccclass, property } = _decorator;
interface ICardEvent {
type?: CardType;
level?: number;
}
/** 视图层对象 */
@ccclass('MissionCardComp')
@@ -31,12 +27,10 @@ export class MissionCardComp extends CCComp {
card3:Node = null!
@property(Node)
card4:Node = null!
// card1_data: ICardInfo = null!
// card2_data: ICardInfo = null!
// card3_data: ICardInfo = null!
// card4_data: ICardInfo = null!
@property(Node)
cards_chou:Node = null!
@property(Node)
cards_up:Node = null!
private uiconsAtlas: SpriteAtlas | null = null;
@@ -64,9 +58,7 @@ export class MissionCardComp extends CCComp {
}
private resetCardStates() {
}
/**

View File

@@ -57,12 +57,10 @@ export class MissionComp extends CCComp {
onLoad(){
this.on(GameEvent.MissionStart,this.mission_start,this)
this.on(GameEvent.MonDead,this.do_mon_dead,this)
this.on(GameEvent.HeroDead,this.do_hero_dead,this)
// this.on(GameEvent.HeroDead,this.do_hero_dead,this)
// this.on(GameEvent.FightEnd,this.fight_end,this)
this.on(GameEvent.MissionEnd,this.mission_end,this)
this.on(GameEvent.DO_AD_BACK,this.do_ad,this)
this.on(GameEvent.CanUpdateLv,this.onLevelUp,this)
this.on(GameEvent.ReviveSuccess, this.onReviveSuccess, this)
}
protected update(dt: number): void {
@@ -102,20 +100,6 @@ export class MissionComp extends CCComp {
});
}
// 升级奖励触发
onLevelUp(event: string, args: any) {
mLogger.log(this.debugMode, 'MissionComp', ` 英雄升级到 ${args.lv} 级!`);
// 默认每级都触发属性选择
// oops.message.dispatchEvent(GameEvent.AttrSelect);
this.call_cards(args.lv)
}
call_cards(lv:number){
}
showLevelUpReward() {
// TODO: 显示三选一技能/属性奖励界面
mLogger.log(this.debugMode, 'MissionComp', " 显示升级奖励界面 (TODO)");
}
//奖励发放
do_reward(){
@@ -156,9 +140,7 @@ export class MissionComp extends CCComp {
}
do_hero_dead(event:any,data:any){
// 收到 HeroDead 说明已经没有复活次数了,打开失败界面,等待玩家选择(复活或结束)
// oops.message.dispatchEvent(GameEvent.FightEnd,{victory:false}) // 暂时不分发结束事件
this.open_Victory(null,true)
}
do_ad(){
if(this.ad_back()){
@@ -216,13 +198,6 @@ do_ad(){
})
}
/** 复活成功回调,扣除次数 */
onReviveSuccess() {
if (this.revive_times > 0) {
this.revive_times--;
mLogger.log(this.debugMode, 'MissionComp', ` 玩家复活,剩余次数: ${this.revive_times}`);
}
}
fight_end(){
@@ -239,7 +214,6 @@ do_ad(){
// 合并 FightEnd 逻辑:清理组件、停止游戏循环
smc.mission.play=false
this.cleanComponents()
this.node.active=false
}
@@ -262,30 +236,6 @@ do_ad(){
// smc.role = null;
// 重置英雄数据,确保新一局是初始状态
smc.vmdata.hero = {
name:'',
path:'',
as:0,
type:0,
lv:1,
exp:0,
exp_max: getLevelExp(1),
exp_pre:0,
hp:50,
hp_max:100,
mp:50,
mp_max:100,
def:0,
ap:0,
dis:0,
crt:0,
speed:0,
skills:[],
buff:[],
tal:[],
info:'',
};
// mLogger.log(this.debugMode, 'MissionComp', "局内数据初始化",smc.vmdata.mission_data)
}