装备特殊加成 继续完善

This commit is contained in:
panw
2025-06-17 16:19:02 +08:00
parent 0a1e2b7813
commit d7b6dd375a
11 changed files with 171 additions and 113 deletions

View File

@@ -122,9 +122,9 @@ export class EquipsComp extends Component {
let weapon_debuffs = this.weapon.uuid ? EquipInfo[this.weapon.uuid]?.debuff || [] : [];
let armor_debuffs = this.armor.uuid ? EquipInfo[this.armor.uuid]?.debuff || [] : [];
let accessory_debuffs = this.accessory.uuid ? EquipInfo[this.accessory.uuid]?.debuff || [] : [];
let weapon_special_attr = this.weapon.uuid ? EquipInfo[this.weapon.uuid]?.special_attr : 0;
let armor_special_attr = this.armor.uuid ? EquipInfo[this.armor.uuid]?.special_attr : 0;
let accessory_special_attr = this.accessory.uuid ? EquipInfo[this.accessory.uuid]?.special_attr : 0;
let weapon_special_attr = this.weapon.uuid ? EquipInfo[this.weapon.uuid]?.special_attr : null;
let armor_special_attr = this.armor.uuid ? EquipInfo[this.armor.uuid]?.special_attr : null;
let accessory_special_attr = this.accessory.uuid ? EquipInfo[this.accessory.uuid]?.special_attr : null;
console.log("武器特殊属性", weapon_special_attr);
console.log("防具特殊属性", armor_special_attr);
@@ -135,8 +135,9 @@ export class EquipsComp extends Component {
console.log("武器减益", weapon_debuffs);
console.log("防具减益", armor_debuffs);
console.log("饰品减益", accessory_debuffs);
const all_special_attr=[weapon_special_attr,armor_special_attr,accessory_special_attr]
let equip_special_attr=this.count_equip_special_attr(weapon_special_attr,armor_special_attr,accessory_special_attr)
let equip_special_attr=this.count_equip_special_attr(all_special_attr)
oops.message.dispatchEvent(GameEvent.ChangeATK_EQUIP_SPECIAL_ATTR,equip_special_attr)
// 合并所有装备属性
@@ -181,65 +182,54 @@ export class EquipsComp extends Component {
oops.message.dispatchEvent(GameEvent.EquipChange, this.attrs);
}
count_equip_special_attr(weapon_special_attr:any,armor_special_attr:any,accessory_special_attr:any){
count_equip_special_attr(all_special_attr:any[]){
//特殊属性附加
let equip_special_attr={
ice:false,
fire:false,
wind:false,
friend_live_cd_less:0,
atk_add_friend_atk:0,
atk_add_friend_hp:0,
atk_add_glod:0,
atk_add_master_atk:0,
atk_add_master_hp:0,
}
switch(weapon_special_attr){
case EquipSpecialAttr.ICE:
oops.message.dispatchEvent(GameEvent.ChangeATK,EquipSpecialAttr.ICE)
break
case EquipSpecialAttr.FIRE:
oops.message.dispatchEvent(GameEvent.ChangeATK,EquipSpecialAttr.FIRE)
break
case EquipSpecialAttr.WIND:
oops.message.dispatchEvent(GameEvent.ChangeATK,EquipSpecialAttr.WIND)
break
case EquipSpecialAttr.FRIEND_LIVE_CD:
equip_special_attr.friend_live_cd_less+=FightSet.FRIEND_LIVE_CD_LESS
break
case EquipSpecialAttr.ATK_ADD_FRIEND_ATK:
equip_special_attr.atk_add_friend_atk+=FightSet.ATK_ADD_FRIEND_ATK
break
case EquipSpecialAttr.ATK_ADD_FRIEND_HP:
equip_special_attr.atk_add_friend_hp+=FightSet.ATK_ADD_FRIEND_HP
break
case EquipSpecialAttr.ATK_ADD_GLOD:
equip_special_attr.atk_add_glod+=FightSet.ATK_ADD_GLOD
}
all_special_attr.forEach(special_attr=>{
if(special_attr){
switch(special_attr.special_attr){
case EquipSpecialAttr.ICE:
equip_special_attr.ice=true
break
case EquipSpecialAttr.FIRE:
equip_special_attr.fire=true
break
case EquipSpecialAttr.WIND:
equip_special_attr.wind=true
break
case EquipSpecialAttr.FRIEND_LIVE_CD:
equip_special_attr.friend_live_cd_less+=special_attr.special_attr_value
break
case EquipSpecialAttr.ATK_ADD_FRIEND_ATK:
equip_special_attr.atk_add_friend_atk+=special_attr.special_attr_value
break
case EquipSpecialAttr.ATK_ADD_FRIEND_HP:
equip_special_attr.atk_add_friend_hp+=special_attr.special_attr_value
break
case EquipSpecialAttr.ATK_ADD_GLOD:
equip_special_attr.atk_add_glod+=special_attr.special_attr_value
break
case EquipSpecialAttr.ATK_ADD_MASTER_ATK:
equip_special_attr.atk_add_master_atk+=special_attr.special_attr_value
break
case EquipSpecialAttr.ATK_ADD_MASTER_HP:
equip_special_attr.atk_add_master_hp+=special_attr.special_attr_value
break
}
}
})
switch(armor_special_attr){
case EquipSpecialAttr.FRIEND_LIVE_CD:
equip_special_attr.friend_live_cd_less+=FightSet.FRIEND_LIVE_CD_LESS
break
case EquipSpecialAttr.ATK_ADD_FRIEND_ATK:
equip_special_attr.atk_add_friend_atk+=FightSet.ATK_ADD_FRIEND_ATK
break
case EquipSpecialAttr.ATK_ADD_FRIEND_HP:
equip_special_attr.atk_add_friend_hp+=FightSet.ATK_ADD_FRIEND_HP
break
case EquipSpecialAttr.ATK_ADD_GLOD:
equip_special_attr.atk_add_glod+=FightSet.ATK_ADD_GLOD
}
switch(accessory_special_attr){
case EquipSpecialAttr.FRIEND_LIVE_CD:
equip_special_attr.friend_live_cd_less+=FightSet.FRIEND_LIVE_CD_LESS
break
case EquipSpecialAttr.ATK_ADD_FRIEND_ATK:
equip_special_attr.atk_add_friend_atk+=FightSet.ATK_ADD_FRIEND_ATK
break
case EquipSpecialAttr.ATK_ADD_FRIEND_HP:
equip_special_attr.atk_add_friend_hp+=FightSet.ATK_ADD_FRIEND_HP
break
case EquipSpecialAttr.ATK_ADD_GLOD:
equip_special_attr.atk_add_glod+=FightSet.ATK_ADD_GLOD
}
console.log("[EquipsComp]:equip_special_attr",equip_special_attr)
return equip_special_attr
}

View File

@@ -25,7 +25,13 @@ export class FightConComp extends Component {
temp_friend_debuff = this.getInitTempDebuff();
temp_enemy_debuff = this.getInitTempDebuff();
atk_type:number=0;
Friend_alive_cd:number=FightSet.FRIEND_LIVE_CD
friend_alive_cd:number=FightSet.FRIEND_LIVE_CD
atk_add_friend_atk:number=0
atk_add_friend_hp:number=0
atk_add_glod:number=0
atk_add_master_atk:number=0
atk_add_master_hp:number=0
onLoad(){
// console.log("fight con start")
@@ -35,17 +41,20 @@ export class FightConComp extends Component {
}
protected start(): void {
this.Friend_alive_cd=FightSet.FRIEND_LIVE_CD
this.friend_alive_cd=FightSet.FRIEND_LIVE_CD
}
change_equip_special_attr(e:GameEvent,data:any){
console.log("[FightConComp]:change_equip_special_attr",data)
this.up_friend_alive_cd(data.friend_live_cd_less)
this.atk_add_friend_atk=data.atk_add_friend_atk
this.atk_add_friend_hp=data.atk_add_friend_hp
this.atk_add_glod=data.atk_add_glod
this.atk_add_master_atk=data.atk_add_master_atk
this.atk_add_master_hp=data.atk_add_master_hp
this.friend_alive_cd=FightSet.FRIEND_LIVE_CD-data.friend_live_cd_less
}
up_friend_alive_cd(less:number){
this.Friend_alive_cd=FightSet.FRIEND_LIVE_CD-less
}
private equip_change(e:GameEvent,equip:any){
this.hero_buff=equip.hero_buff