复活完成

This commit is contained in:
2025-06-17 10:58:13 +08:00
parent 5af0a314a6
commit d02482a591
12 changed files with 205 additions and 114 deletions

View File

@@ -135,34 +135,9 @@ export class EquipsComp extends Component {
console.log("武器减益", weapon_debuffs);
console.log("防具减益", armor_debuffs);
console.log("饰品减益", accessory_debuffs);
//特殊属性附加
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
}
switch(armor_special_attr){
case EquipSpecialAttr.FRIEND_LIVE_CD:
oops.message.dispatchEvent(GameEvent.ChangeATK_FRIEND_LIVE_CD,FightSet.FRIEND_LIVE_CD_LESS)
break
default:
oops.message.dispatchEvent(GameEvent.ChangeATK_FRIEND_LIVE_CD,0)
break
}
switch(accessory_special_attr){
case EquipSpecialAttr.FRIEND_LIVE_CD:
oops.message.dispatchEvent(GameEvent.ChangeATK_FRIEND_LIVE_CD,FightSet.FRIEND_LIVE_CD_LESS)
break
default:
oops.message.dispatchEvent(GameEvent.ChangeATK_FRIEND_LIVE_CD,0)
break
}
let equip_special_attr=this.count_equip_special_attr(weapon_special_attr,armor_special_attr,accessory_special_attr)
oops.message.dispatchEvent(GameEvent.ChangeATK_EQUIP_SPECIAL_ATTR,equip_special_attr)
// 合并所有装备属性
const allBuff = [...weapon_buffs, ...armor_buffs, ...accessory_buffs];
@@ -206,6 +181,69 @@ 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){
//特殊属性附加
let equip_special_attr={
friend_live_cd_less:0,
atk_add_friend_atk:0,
atk_add_friend_hp:0,
atk_add_glod: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
}
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
}
return equip_special_attr
}
add_attr(targetKey:string,attr:any){
if(targetKey){
this.attrs[targetKey][BuffAttr[attr.type]] += attr.value;

View File

@@ -10,7 +10,6 @@ import { HeroViewComp } from "../hero/HeroViewComp";
import { oops } from "db://oops-framework/core/Oops";
import { HeroPos } from "../common/config/heroSet";
import { FightSet } from "../common/config/Mission";
import { FriendModelComp } from "../hero/FriendModel";
const { ccclass, property } = _decorator;
/** 视图层对象 */
@@ -23,7 +22,7 @@ export class MissionHeroCompComp extends CCComp {
current_hero_uuid:number=0
onLoad(){
this.on(GameEvent.UseHeroCard,this.call_friend,this)
this.on(GameEvent.ChangeATK_FRIEND_LIVE_CD,this.change_friend_alive_cd,this)
this.on(GameEvent.ChangeATK_EQUIP_SPECIAL_ATTR,this.change_equip_qpecial_attr,this)
this.on(GameEvent.FightReady,this.fight_ready,this)
}
@@ -44,31 +43,34 @@ export class MissionHeroCompComp extends CCComp {
}
change_friend_alive_cd(e:GameEvent,data:any){
console.log("change_friend_alive_cd",data)
this.Friend_alive_cd=new Timer(FightSet.FRIEND_LIVE_CD-data)
change_equip_qpecial_attr(e:GameEvent,data:any){
}
private call_friend(event: string, args: any,freind_pos:number=0){
console.log("call_hero addHero",args.uuid)
up_friend_alive_cd(less:number){
}
private call_friend(event: string, args: any,freind_pos:number=1){
console.log("[MissionHeroComp]:call_hero addHero",args.uuid)
let info:any={ap:0,hp:0,lv:0}
let hero = ecs.getEntity<Hero>(Hero);
let scale = 1
let pos:Vec3 = HeroPos[freind_pos].pos;
hero.load(pos,scale,args.uuid,info,freind_pos);
console.log("call_friend",hero)
}
alive_friend(){
this.Friend_is_dead=false
let heros = ecs.query(ecs.allOf(FriendModelComp))
let heros=ecs.query(ecs.allOf(HeroViewComp))
for(let hero of heros){
let hv = hero.get(HeroViewComp)
if(hv.is_dead){
hv.to_alive()
if(hv.fight_pos==freind_pos){
freind_pos=2
break
}
}
console.log("[MissionHeroComp]:call_friend",heros)
let pos:Vec3 = HeroPos[freind_pos].pos;
hero.load(pos,scale,args.uuid,info,freind_pos);
}
// show_heros_pos(event: string, args: any){
// console.log("show_heros_pos",args)