装备 需要完善

This commit is contained in:
2025-07-02 17:45:00 +08:00
parent ebeb5ea04b
commit 11e6ecdf48
9 changed files with 1492 additions and 1332 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@
import { HeroList } from "./heroSet" import { HeroList } from "./heroSet"
import { HeroSkillList, SkillSet } from "./SkillSet" import { HeroSkillList, SkillSet } from "./SkillSet"
import { equip_list } from "./Equips" import { accessorys, armors, equip_list, EquipType, weapons } from "./Equips"
//1:伙伴 2:技能 3:装备的出现概率配置 //1:伙伴 2:技能 3:装备的出现概率配置
export const CardProbability={ export const CardProbability={
@@ -99,7 +99,8 @@ export function getRandomCardUUIDByType(type: number): number {
// 获取多个不重复的指定类型卡牌 // 获取多个不重复的指定类型卡牌
export function getRandomCardsByType( export function getRandomCardsByType(
type: number, type: number,
count: number count: number,
equipSubType?: number // 新增参数
): { type: number; uuid: number }[] { ): { type: number; uuid: number }[] {
let cardList: number[] = []; let cardList: number[] = [];
switch (type) { switch (type) {
@@ -110,7 +111,17 @@ export function getRandomCardsByType(
cardList = HeroSkillList; // 直接使用HeroSkillList数组 cardList = HeroSkillList; // 直接使用HeroSkillList数组
break; break;
case cardType.EQUIP: case cardType.EQUIP:
cardList = equip_list; switch(equipSubType){
case EquipType.WEAPON:
cardList = weapons ;
break;
case EquipType.ARMOR:
cardList = armors;
break;
case EquipType.ACCESSORY:
cardList = accessorys;
break;
}
break; break;
case cardType.SPECIAL: case cardType.SPECIAL:
cardList = SuperCardsList; cardList = SuperCardsList;

View File

@@ -46,9 +46,9 @@ export enum Quality {
ORANGE = 5, ORANGE = 5,
RED = 6, RED = 6,
} }
export const weapon_id=[2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025] export const weapons=[2001,2002,2003]
export const armor_id=[2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122] export const armors=[2001,2002,2003]
export const accessory_id=[2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2229,2230] export const accessorys=[2001,2002,2003]
export const equip_list=[2001,2002,2003,] export const equip_list=[2001,2002,2003,]
// 装备属性加成接口 // 装备属性加成接口
export interface EquipAttribute { export interface EquipAttribute {

View File

@@ -24,6 +24,7 @@ export class CardComp extends CCComp {
is_used:boolean=false; is_used:boolean=false;
cost_gold:number=0; cost_gold:number=0;
skill_slot:string="skill1" skill_slot:string="skill1"
equip_slot:string="weapon"
onLoad(){ onLoad(){
// this.on(GameEvent.HeroSelect,this.hero_select,this) // this.on(GameEvent.HeroSelect,this.hero_select,this)
} }
@@ -60,9 +61,10 @@ export class CardComp extends CCComp {
this.node.getChildByName("Button").active=true this.node.getChildByName("Button").active=true
}, 0.1); }, 0.1);
} }
equip_select(args: any){ equip_select(args: any,slot:string="weapon"){
this.c_type=cardType.EQUIP this.c_type=cardType.EQUIP
this.c_uuid=args.uuid this.c_uuid=args.uuid
this.equip_slot=slot
this.node.getChildByName("show").active=false this.node.getChildByName("show").active=false
this.node.getChildByName("anim").getChildByName("up").getComponent(Animation).play('carsup') this.node.getChildByName("anim").getChildByName("up").getComponent(Animation).play('carsup')
this.show_equip(this.c_uuid) this.show_equip(this.c_uuid)
@@ -249,7 +251,7 @@ export class CardComp extends CCComp {
case cardType.EQUIP: case cardType.EQUIP:
console.log("[cardcomp]:use_card 装备卡") console.log("[cardcomp]:use_card 装备卡")
if(!this.cost_gold_check()) return if(!this.cost_gold_check()) return
oops.message.dispatchEvent(GameEvent.EquipAdd,{uuid:this.c_uuid,type:EquipInfo[this.c_uuid].type}) oops.message.dispatchEvent(GameEvent.EquipAdd,{uuid:this.c_uuid,type:EquipInfo[this.c_uuid].type,slot:this.equip_slot})
oops.message.dispatchEvent(GameEvent.CardsClose) oops.message.dispatchEvent(GameEvent.CardsClose)
break break
case cardType.SPECIAL: case cardType.SPECIAL:

View File

@@ -71,15 +71,26 @@ export class CardsCompComp extends CCComp {
this.card3c.hero_skill_select(list[2],data) this.card3c.hero_skill_select(list[2],data)
// this.card4c.hero_skill_select(list[3]) // this.card4c.hero_skill_select(list[3])
} }
equip_select(){ equip_select(data:any){
let list=getRandomCardsByType(cardType.EQUIP,3) let list=[]
switch(data.slot){
case "weapon":
list=getRandomCardsByType(cardType.EQUIP,3)
break
case "armor":
list=getRandomCardsByType(cardType.EQUIP,3)
break
case "accessory":
list=getRandomCardsByType(cardType.EQUIP,3)
break
}
console.log("[CardsComp]:装备选择卡牌列表",list) console.log("[CardsComp]:装备选择卡牌列表",list)
this.card1c.equip_select(list[0]) this.card1c.equip_select(list[0],data)
this.card2c.equip_select(list[1]) this.card2c.equip_select(list[1],data)
this.card3c.equip_select(list[2]) this.card3c.equip_select(list[2],data)
// this.card4c.equip_select(list[3]) // this.card4c.equip_select(list[3])
} }
func_select(){ func_select(){
let list=getRandomCardsByType(cardType.SPECIAL,3) let list=getRandomCardsByType(cardType.SPECIAL,3)
console.log("[CardsComp]:功能选择卡牌列表",list) console.log("[CardsComp]:功能选择卡牌列表",list)
this.card1c.func_select(list[0]) this.card1c.func_select(list[0])
@@ -132,7 +143,7 @@ export class CardsCompComp extends CCComp {
case GameEvent.EquipSelect: case GameEvent.EquipSelect:
console.log("[CardsComp]:显示装备选择卡牌") console.log("[CardsComp]:显示装备选择卡牌")
this.node.getChildByName("btns").getChildByName("cancel").active=true this.node.getChildByName("btns").getChildByName("cancel").active=true
this.equip_select() this.equip_select(data)
break break
} }

View File

@@ -189,6 +189,18 @@ export class EquipSkillComp extends CCComp {
break break
} }
} }
call_skill_card(e:any,data:any){
let mission_data=smc.vmdata.mission_data
if(mission_data.skill_stone < mission_data.skill_stone_max){
oops.gui.toast("技能石不足", false);
return
}
oops.message.dispatchEvent(GameEvent.HeroSkillSelect,{slot:data})
mission_data.skill_stone-=mission_data.skill_stone_max
mission_data.skill_stone_max=mission_data.skill_stone_max*2
}
private show_skill_get(e:string){ private show_skill_get(e:string){
if(this.skill1.uuid==0){ if(this.skill1.uuid==0){
@@ -197,15 +209,13 @@ export class EquipSkillComp extends CCComp {
this.boxs.getChildByName("skill1").getChildByName("tip").active =true this.boxs.getChildByName("skill1").getChildByName("tip").active =true
this.boxs.getChildByName("skill1").getChildByName("tip").getComponent(Label).string="可购买" this.boxs.getChildByName("skill1").getChildByName("tip").getComponent(Label).string="可购买"
} }
if(this.skill2.uuid==0){ if(this.skill2.uuid==0&&this.skill1.uuid!=0){
this.boxs.getChildByName("skill2").getChildByName("get").active =true this.boxs.getChildByName("skill2").getChildByName("get").active =true
this.boxs.getChildByName("skill2").getChildByName("light").active=true this.boxs.getChildByName("skill2").getChildByName("light").active=true
this.boxs.getChildByName("skill2").getChildByName("tip").active =true this.boxs.getChildByName("skill2").getChildByName("tip").active =true
this.boxs.getChildByName("skill2").getChildByName("tip").getComponent(Label).string="可购买" this.boxs.getChildByName("skill2").getChildByName("tip").getComponent(Label).string="可购买"
} }
if(this.skill3.uuid==0){ if(this.skill3.uuid==0&&this.skill1.uuid!=0&&this.skill2.uuid!=0){
this.boxs.getChildByName("skill3").getChildByName("get").active =true this.boxs.getChildByName("skill3").getChildByName("get").active =true
this.boxs.getChildByName("skill3").getChildByName("light").active=true this.boxs.getChildByName("skill3").getChildByName("light").active=true
this.boxs.getChildByName("skill3").getChildByName("tip").active =true this.boxs.getChildByName("skill3").getChildByName("tip").active =true

View File

@@ -36,6 +36,19 @@ export class EquipsComp extends Component {
this.show_equip_get("accessory") this.show_equip_get("accessory")
} }
} }
call_equip_card(e:any,data:any){
let mission_data=smc.vmdata.mission_data
if(mission_data.equip_stone < mission_data.equip_stone_max){
oops.gui.toast("装备石不足", false);
return
}
oops.message.dispatchEvent(GameEvent.EquipSelect,{slot:data})
mission_data.equip_stone-=mission_data.equip_stone_max
mission_data.equip_stone_max=mission_data.equip_stone_max*2
}
start(){ start(){
this.fight_ready() this.fight_ready()
} }

View File

@@ -148,29 +148,9 @@ export class MissionComp extends CCComp {
oops.message.dispatchEvent(GameEvent.HeroSelect) oops.message.dispatchEvent(GameEvent.HeroSelect)
} }
call_equip_card(e:any,data:any){
let mission_data=smc.vmdata.mission_data
if(mission_data.equip_stone < mission_data.equip_stone_max){
oops.gui.toast("装备石不足", false);
return
}
oops.message.dispatchEvent(GameEvent.EquipSelect,{slot:data})
mission_data.equip_stone-=mission_data.equip_stone_max
mission_data.equip_stone_max=mission_data.equip_stone_max*2
}
call_skill_card(e:any,data:any){
let mission_data=smc.vmdata.mission_data
if(mission_data.skill_stone < mission_data.skill_stone_max){
oops.gui.toast("技能石不足", false);
return
}
oops.message.dispatchEvent(GameEvent.HeroSkillSelect,{slot:data})
mission_data.skill_stone-=mission_data.skill_stone_max
mission_data.skill_stone_max=mission_data.skill_stone_max*2
}
call_func_card(){ call_func_card(){
let mission_data=smc.vmdata.mission_data let mission_data=smc.vmdata.mission_data
if(mission_data.gold < (mission_data.refresh_gold+mission_data.buff_refresh_gold)){ if(mission_data.gold < (mission_data.refresh_gold+mission_data.buff_refresh_gold)){

View File

@@ -37,6 +37,7 @@
- [x] 卡牌技能 触发会中断问题 - [x] 卡牌技能 触发会中断问题
- [x] buff和debuff 增益功能 添加 - [x] buff和debuff 增益功能 添加
- [x] 升级 和+ap +hp 动画 - [x] 升级 和+ap +hp 动画
- [ ] 装备升级规则 和 技能替换规则 及ui 表现 技能随等级 不懂slot的 技能强度不一样, 装备可以有不同先发选择, 武器,盾牌,饰品 都可以先发获取 或 升级
- [ ] boss信息面板 - [ ] boss信息面板
- [ ] 金币掉落 动画 从头顶掉到底部bar - [ ] 金币掉落 动画 从头顶掉到底部bar
- [ ] 副将和技能,特殊情况下 触发更换和获取 - [ ] 副将和技能,特殊情况下 触发更换和获取