修复bug和ui调整,下一步,达到特定等级才激活技能

This commit is contained in:
panw
2025-07-23 10:41:09 +08:00
parent 1611b5d3b5
commit f805bbcd4a
138 changed files with 12897 additions and 56084 deletions

View File

@@ -34,7 +34,6 @@ export class BuffComp extends Component {
HeroView:HeroViewComp=null!
hp_bar:any=null
protected onLoad(): void {
oops.message.on(GameEvent.UpdateVMData,this.to_update_vmdata,this)
}
start() {
this.info_init()
@@ -50,8 +49,8 @@ export class BuffComp extends Component {
this.vmdata_update()
}
to_update_vmdata(){
this.vmdata_update(false)
}
update(deltaTime: number) {

View File

@@ -7,7 +7,6 @@ import { HeroViewComp } from "./HeroViewComp";
import { BoxSet, FacSet } from "../common/config/BoxSet";
import { HeroInfo, HeroPos } from "../common/config/heroSet";
import { BattleMoveComp } from "../common/ecs/position/BattleMoveComp";
import { SkillConComp } from "./SkillConComp";
import { FriendModelComp } from "./FriendModel";
import { MasterModelComp } from "./MasterModel";
import { GameEvent } from "../common/config/GameEvent";

View File

@@ -6,32 +6,36 @@ import { GameEvent } from "../common/config/GameEvent";
import { EquipAttrTarget, EquipInfo } from "../common/config/Equips";
import { HeroViewComp } from "./HeroViewComp";
import { BuffAttr } from "../common/config/SkillSet";
import { EnhancementType } from "../common/config/LevelUp";
const { ccclass, property } = _decorator;
/** 视图层对象 */
@ccclass('HeroConCompComp')
@ecs.register('HeroConComp', false)
export class HeroConCompComp extends CCComp {
@ccclass('HeroConComp')
@ecs.register('HeroCon')
export class HeroConComp extends CCComp {
/** 视图层逻辑代码分离演示 */
heroView:HeroViewComp=null
protected onLoad(): void {
oops.message.on(GameEvent.EquipAdd,this.equip_add,this)
oops.message.on(GameEvent.EquipChange,this.equip_change,this)
oops.message.on(GameEvent.FightReady,this.fight_ready,this)
oops.message.on(GameEvent.UseSpecialCard,this.use_special_card,this)
this.on(GameEvent.EquipAdd,this.equip_add,this)
this.on(GameEvent.EquipChange,this.equip_change,this)
this.on(GameEvent.FightReady,this.fight_ready,this)
this.on(GameEvent.UseSpecialCard,this.use_special_card,this)
this.on(GameEvent.UseEnhancement,this.use_enhancement,this)
this.heroView=this.node.getComponent(HeroViewComp)
console.log("[HeroConCompComp]:onLoad",this.heroView)
}
start() {
this.heroView=this.node.getComponent(HeroViewComp)
console.log("[HeroConCompComp]:start",this.heroView)
// var entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象
// this.on(ModuleEvent.Cmd, this.onHandler, this);
}
equip_add(e:GameEvent,data:any){
console.log("[HeroConCompComp]:equip_add",data)
console.log("[HeroConCompComp]:equip_add",data,this.heroView)
let equip=EquipInfo[data.uuid]
let buffs=equip.buff
let special_attr=equip.special_attr
console.log("[HeroConCompComp]:equip_add",buffs)
for(let i=0;i<buffs.length;i++){
let buff=buffs[i]
if(buff.target==EquipAttrTarget.HERO){
@@ -40,6 +44,7 @@ export class HeroConCompComp extends CCComp {
this.heroView.add_ap(buff.value,true)
break
case BuffAttr.ATK:
console.log("[HeroConCompComp]:equip_add ,buff.value",buff.value,this.heroView)
this.heroView.add_ap(buff.value,false)
break
case BuffAttr.ATK_CD:
@@ -58,6 +63,7 @@ export class HeroConCompComp extends CCComp {
}
}
}
equip_change(e:GameEvent,data:any){
console.log("[HeroConCompComp]:equip_change",data)
}
@@ -67,7 +73,23 @@ export class HeroConCompComp extends CCComp {
use_special_card(e:GameEvent,data:any){
console.log("[HeroConCompComp]:use_special_card",data)
}
use_enhancement(e:GameEvent,data:any){
// console.log("[HeroViewComp]:use_enhancement",data)
switch(data.type){
case EnhancementType.ATTACK:
this.heroView.add_ap(data.value)
break
case EnhancementType.ATTACK_SPEED:
this.heroView.add_speed(data.value)
break
case EnhancementType.HEALTH:
this.heroView.add_hp_max(data.value,true)
break
case EnhancementType.DEF:
this.heroView.add_def(data.value)
break
}
}
/** 全局消息逻辑处理 */
// private onHandler(event: string, args: any) {
// switch (event) {

View File

@@ -127,7 +127,6 @@ export class HeroViewComp extends CCComp {
//console.log("[HeroViewComp]:hero view comp ",this.FIGHTCON)
this.on(GameEvent.ChangeATK_EQUIP_SPECIAL_ATTR,this.change_atk,this)
this.on(GameEvent.EXPUP,this.exp_up,this)
this.on(GameEvent.UseEnhancement,this.use_enhancement,this)
const collider = this.node.getComponent(BoxCollider2D);
this.scheduleOnce(()=>{
if (collider) collider.enabled = true; // 先禁用
@@ -223,7 +222,7 @@ export class HeroViewComp extends CCComp {
// this.BUFFCOMP.tooltip(TooltipTypes.speedup,speed.toFixed(0));
}
add_ap(ap: number,is_num:boolean=true){
console.log("[HeroViewComp]:add_ap add:",ap,this.ap)
// console.log("[HeroViewComp]:add_ap add:",ap,this.ap)
if(is_num){
this.ap_base += Math.floor(ap);
}else{
@@ -232,7 +231,7 @@ export class HeroViewComp extends CCComp {
let diff=Math.floor(this.ap_base*(100+this.buff_ap)/100)-this.ap
this.ap = Math.floor(this.ap_base*(100+this.buff_ap)/100)
this.BUFFCOMP.tooltip(TooltipTypes.apup,diff.toFixed(0));
// this.BUFFCOMP.tooltip(TooltipTypes.apup,diff.toFixed(0));
if(this.is_master) {
this.BUFFCOMP.vmdata_update();
@@ -250,13 +249,13 @@ export class HeroViewComp extends CCComp {
let diff=Math.floor(this.ap_base*(100+this.buff_ap)/100)-this.ap
this.ap = Math.floor(this.ap_base*(100+this.buff_ap)/100)
this.BUFFCOMP.tooltip(TooltipTypes.apup,diff.toFixed(0));
// this.BUFFCOMP.tooltip(TooltipTypes.apup,diff.toFixed(0));
if(this.is_master) this.BUFFCOMP.vmdata_update()
}
add_hp_max(hp: number=0,is_num:boolean=false){
console.log("[HeroViewComp]:add_hp_max add:",hp,this.hp_max)
// console.log("[HeroViewComp]:add_hp_max add:",hp,this.hp_max)
if(is_num){
this.hp_base += Math.floor(hp) ;
}else{
@@ -266,7 +265,7 @@ export class HeroViewComp extends CCComp {
this.hp_max =Math.floor(this.hp_base*(100+this.buff_hp)/100)
this.hp+=diff
if(this.is_master) this.BUFFCOMP.vmdata_update(true)
this.BUFFCOMP.tooltip(TooltipTypes.hpup,diff.toFixed(0));
// this.BUFFCOMP.tooltip(TooltipTypes.hpup,diff.toFixed(0));
}
de_hp_max(hp: number=0,is_num:boolean=true){ //最大值 只存在数值添加, 比例通过buff_hp处理
@@ -343,7 +342,7 @@ export class HeroViewComp extends CCComp {
//console.log("[HeroViewComp]:角色死亡",this.hero_uuid)
if(this.fac==FacSet.MON){
let exp=getExpDrops(HeroInfo[this.hero_uuid].quality,this.lv)
let exp=getExpDrops(HeroInfo[this.hero_uuid].quality,this.lv)*10
oops.message.dispatchEvent(GameEvent.EXPUP,{exp:exp})
}
@@ -625,44 +624,26 @@ export class HeroViewComp extends CCComp {
exp_up(e:any,data:any){
if(this.fac==FacSet.MON) return
//console.log("[HeroViewComp]:经验提高",data.exp)
// console.log("[HeroViewComp]:经验提高",data.exp)
smc.vmdata.hero.exp+=data.exp
// smc.vmdata.hero.next_exp=getUpExp(this.lv)
if(smc.vmdata.hero.exp >= smc.vmdata.hero.next_exp){
// console.log("[HeroViewComp]:升级")
this.to_update()
oops.message.dispatchEvent(GameEvent.CanUpdateLv)
}
}
use_enhancement(e:GameEvent,data:any){
//console.log("[HeroViewComp]:use_enhancement",data)
if(!this.is_master) return
switch(data.type){
case EnhancementType.ATTACK:
this.add_ap(data.value)
break
case EnhancementType.ATTACK_SPEED:
this.add_speed(data.value)
break
case EnhancementType.HEALTH:
this.add_hp_max(data.value,true)
break
case EnhancementType.DEF:
this.add_def(data.value)
break
}
this.to_update()
}
to_update(){
// console.log("[HeroViewComp]:to_update",this.is_master)
if(!this.is_master) return
smc.vmdata.hero.exp = smc.vmdata.hero.exp-smc.vmdata.hero.next_exp
smc.vmdata.hero.lv = smc.vmdata.hero.lv+1
smc.vmdata.hero.next_exp=getUpExp(smc.vmdata.hero.lv)
oops.message.dispatchEvent(GameEvent.HeroLvUp,{lv:smc.vmdata.hero.lv})
this.BUFFCOMP.lv_up()
this.BUFFCOMP.tooltip(TooltipTypes.lvup)
//@todo 需要添加 升级动画
// this.BUFFCOMP.tooltip(TooltipTypes.lvup)
}
/** 显示伤害数字 */

View File

@@ -30,13 +30,14 @@ export class SkillConComp extends CCComp {
init(): void {
oops.message.on(GameEvent.FightEnd, this.clear_timer, this);
this.on(GameEvent.FightEnd, this.clear_timer, this);
}
onLoad(){
this.HeroView=this.node.getComponent(HeroViewComp)
// //console.log(this.HeroView.uuid+"=>"+this.HeroView.hero_name+"=> SkillConComp onLoad")
// //console.log(this.HeroView.uid+"=>"+this.HeroView.hero_name+"=> SkillConComp onLoad")
this.on(GameEvent.CastHeroSkill,this.cast_master_skill,this)
oops.message.on(GameEvent.MaxSkill,this.use_max_skill,this)
this.on(GameEvent.MaxSkill,this.use_max_skill,this)
}
start() {
@@ -279,7 +280,8 @@ export class SkillConComp extends CCComp {
public clear_timer() {
// //console.log("clear_timer");
// console.log("[SkillConComp]:clear_timer",this.HeroView);
Object.values(this._timers).forEach(clearTimeout);
}
count_cd(cd:number,view:HeroViewComp){