diff --git a/assets/script/game/map/MissionCardComp.ts b/assets/script/game/map/MissionCardComp.ts index 75f581c4..5c4dfe85 100644 --- a/assets/script/game/map/MissionCardComp.ts +++ b/assets/script/game/map/MissionCardComp.ts @@ -200,56 +200,23 @@ export class MissionCardComp extends CCComp { } } - updateCardData(index:number, data:any){ - switch (index) { - case 1: - this.card1_data = data - this.updateCardInfo(this.card1, data); - break; - case 2: - this.card2_data = data - this.updateCardInfo(this.card2, data); - break; - case 3: - this.card3_data = data - this.updateCardInfo(this.card3, data); - break; - case 4: - this.card4_data = data - this.updateCardInfo(this.card4, data); - break; - } + updateCardData(index: number, data: any) { + // 使用动态属性访问,简化 switch 冗余代码 + (this as any)[`card${index}_data`] = data; + this.updateCardInfo((this as any)[`card${index}`], data); } - selectCard(e:any,index:string){ - console.log("selectCard",index) + selectCard(e: any, index: string) { + console.log("selectCard", index) let _index = parseInt(index); - // 如果已经选择过,则不再处理 - if(this.hasSelected) return; + // 如果已经选择过,则不再处理 + if (this.hasSelected) return; - let selectedData: any = null; - let selectedCardNode: Node | null = null; + // 动态获取数据和节点,简化 switch 逻辑 + let selectedData: any = (this as any)[`card${_index}_data`]; + let selectedCardNode: Node | null = (this as any)[`card${_index}`]; - switch (_index) { - case 1: - selectedData = this.card1_data; - selectedCardNode = this.card1; - break; - case 2: - selectedData = this.card2_data; - selectedCardNode = this.card2; - break; - case 3: - selectedData = this.card3_data; - selectedCardNode = this.card3; - break; - case 4: - selectedData = this.card4_data; - selectedCardNode = this.card4; - break; - } - - if (selectedData && selectedCardNode) { + if (selectedData && selectedCardNode) { // 处理物品购买逻辑 if (this.curCardType === CardType.Potion) { if (this.purchasedSlots[_index]) {