mission_end

This commit is contained in:
2024-11-21 18:16:44 +08:00
parent 2ff8e9c911
commit 763d327625
5 changed files with 399 additions and 1011 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -207,7 +207,7 @@ export class HeroViewComp extends CCComp {
onPostSolve (selfCollider: Collider2D, otherCollider: Collider2D) { onPostSolve (selfCollider: Collider2D, otherCollider: Collider2D) {
} }
update(dt: number){ update(dt: number){
if(!smc.vm_data.mission.play||smc.vm_data.pause||smc.vm_data.mission.is_victory||smc.vm_data.mission.is_defeat) return if(!smc.vm_data.mission.play||smc.vm_data.pause) return
if(this.is_dead) { if(this.is_dead) {
if(!this.in_grave()) this.to_grave() if(!this.in_grave()) this.to_grave()
return return
@@ -281,7 +281,7 @@ export class HeroViewComp extends CCComp {
} }
} }
move(dt: number){ move(dt: number){
if(this.stop_cd > 0){ if(this.stop_cd > 0||smc.vm_data.mission.is_victory||smc.vm_data.mission.is_defeat){
this.status_change("idle") this.status_change("idle")
return return
} }

View File

@@ -26,13 +26,15 @@ import { HCard } from "./HCard";
import { HCardComp } from "./HCardComp"; import { HCardComp } from "./HCardComp";
import { MSkill } from "../skills/MSkill"; import { MSkill } from "../skills/MSkill";
import { MSkillComp } from "../skills/MSkillComp"; import { MSkillComp } from "../skills/MSkillComp";
import { VictoryComp } from "./VictoryComp";
const { ccclass, property } = _decorator; const { ccclass, property } = _decorator;
/** 视图层对象 */ /** 视图层对象 */
@ccclass('MissionComp') @ccclass('MissionComp')
@ecs.register('Mission', false) @ecs.register('Mission', false)
export class MissionComp extends CCComp { export class MissionComp extends CCComp {
VictoryNode: any = null;
VictoryComp:any = null;
mon_list:any = [] mon_list:any = []
call_hero_timer: Timer = new Timer(0.3); call_hero_timer: Timer = new Timer(0.3);
target_timer: Timer = new Timer(0.1); target_timer: Timer = new Timer(0.1);
@@ -56,7 +58,9 @@ export class MissionComp extends CCComp {
} }
start() { start() {
this.VictoryNode=this.node.getChildByName("victory")
this.VictoryNode.active=false
this.VictoryComp=this.VictoryNode.getComponent(VictoryComp)
} }
protected update(dt: number): void { protected update(dt: number): void {
@@ -66,7 +70,6 @@ export class MissionComp extends CCComp {
if(this.fight_start){ if(this.fight_start){
this.check_mon_num() this.check_mon_num()
} }
this.do_reward()
this.count_hero_pos() this.count_hero_pos()
this.count_mon_pos() this.count_mon_pos()
this.check_exp() this.check_exp()
@@ -255,7 +258,7 @@ export class MissionComp extends CCComp {
} }
do_reward(){ do_reward(){
console.log("do_reward") console.log("do_reward")
oops.message.dispatchEvent("do_reward");
} }
check_mon_num(){ check_mon_num(){
let mons:any = this.get_mons() let mons:any = this.get_mons()
@@ -274,7 +277,15 @@ export class MissionComp extends CCComp {
} }
if (!m_alive) smc.vm_data.mission.is_victory = true if (!m_alive) smc.vm_data.mission.is_victory = true
if (!h_alive) smc.vm_data.mission.is_defeat = true if (!h_alive) smc.vm_data.mission.is_defeat = true
console.log("check_end m_alive: "+m_alive+" h_alive:"+h_alive+" victory:"+smc.vm_data.mission.is_victory+" defeat:"+smc.vm_data.mission.is_defeat) this.to_end_mission()
}
to_end_mission(){
if (smc.vm_data.mission.is_victory){
this.VictoryNode.active=true
}
if (smc.vm_data.mission.is_defeat){
this.VictoryNode.active=true
}
} }
get_mons(){ get_mons(){
return ecs.query(ecs.allOf(MonModelComp)); return ecs.query(ecs.allOf(MonModelComp));

View File

@@ -25,6 +25,7 @@ export class VictoryComp extends CCComp {
// console.log("VictoryComp start") // console.log("VictoryComp start")
oops.message.on("minssion_victory", this.do_victiry, this); oops.message.on("minssion_victory", this.do_victiry, this);
oops.message.on("minssion_defeat", this.do_defeat, this); oops.message.on("minssion_defeat", this.do_defeat, this);
console.log("VictoryComp start")
} }
private do_victiry() { private do_victiry() {
smc.vm_data.mission.play=false smc.vm_data.mission.play=false
@@ -53,36 +54,9 @@ export class VictoryComp extends CCComp {
} }
end_mission(){ end_mission(){
this.node.getChildByName("Node").active=false this.node.getChildByName("Node").active=false
smc.vm_data.role.gold += smc.vm_data.mission.reward_gold
smc.vm_data.role.exp += smc.vm_data.mission.reward_exp
console.log("end_mission",this.rerawd_item,smc.vm_data.role.exp)
// smc.vm_data.role.items[this.rerawd_item.uuid].num += this.reward_num
smc.vm_data.mission.reward_gold=0
smc.vm_data.mission.reward_exp=0
this.empty_mission()
oops.message.dispatchEvent("to_mission")
console.log("end_mission",smc.vm_data.role.items)
}
empty_mission(){
let monsters:any= ecs.query(ecs.allOf(MonViewComp));
let heros:any= ecs.query(ecs.allOf(HeroViewComp));
let roles:any= ecs.query(ecs.allOf(RoleViewComp));
let boss:any= ecs.query(ecs.allOf(BossViewComp));
for(let i=0;i<monsters.length;i++){
monsters[i].MonView.ent.destroy()
}
for(let i=0;i<heros.length;i++){
heros[i].HeroView.ent.destroy()
}
for(let i=0;i<roles.length;i++){
roles[i].RoleView.ent.destroy()
}
for(let i=0;i<boss.length;i++){
boss[i].BossView.ent.destroy()
}
} }
/** 视图对象通过 ecs.Entity.remove(ModuleViewComp) 删除组件是触发组件处理自定义释放逻辑 */ /** 视图对象通过 ecs.Entity.remove(ModuleViewComp) 删除组件是触发组件处理自定义释放逻辑 */
reset() { reset() {
this.node.destroy(); this.node.destroy();

View File

@@ -25,7 +25,6 @@ export class MSkillComp extends CCComp {
this.skill=MSkills[this.msk_uuid] this.skill=MSkills[this.msk_uuid]
this.ap=this.skill.ap this.ap=this.skill.ap
this.cd=this.cdt=this.skill.cd this.cd=this.cdt=this.skill.cd
console.log("MSkillComp start");
} }
protected update(dt: number): void { protected update(dt: number): void {
if(!smc.vm_data.mission.play||smc.vm_data.pause||smc.vm_data.mission.is_victory||smc.vm_data.mission.is_defeat){ if(!smc.vm_data.mission.play||smc.vm_data.pause||smc.vm_data.mission.is_victory||smc.vm_data.mission.is_defeat){