This commit is contained in:
2025-05-28 16:59:59 +08:00
parent ba05b59f4d
commit 6a185a2361
12 changed files with 1824 additions and 9 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "0828a791-6a59-42fe-8703-bcf1b96d8980",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "hart"
}
}

View File

@@ -21,5 +21,7 @@ export enum GameEvent {
UseSkillCard = "UseSkillCard",
CallHero = "CallHero",
MissionSkill = "MissionSkill",
MissionLoss = "MissionLoss",
MissionWin = "MissionWin",
}

View File

@@ -0,0 +1,12 @@
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
/**
* 角色属性数据
*/
@ecs.register('BossModel')
export class BossModelComp extends ecs.Comp {
reset() {
}
}

View File

@@ -0,0 +1 @@
{"ver":"4.0.23","importer":"typescript","imported":true,"uuid":"fa6157bf-a254-44af-a0c0-5d16f12cd761","files":[],"subMetas":{},"userData":{}}

View File

@@ -42,6 +42,9 @@ export class BuffComp extends Component {
this.top_node.getChildByName("lv").active=(this.node.getComponent(HeroViewComp).fac == 0 ? true : false)
// this.top_node.getChildByName("hp").active=(this.node.getComponent(HeroViewComp).fac == 1 ? true : false)
this.top_node.getChildByName("sboss").active=this.node.getComponent(HeroViewComp).is_boss
if(this.node.getComponent(HeroViewComp).hero_uuid == 9999){
this.top_node.getChildByName("lv").active=false
}
this.top_node.getChildByName("lv").getChildByName("lv").getComponent(Label)!.string = this.node.getComponent(HeroViewComp).lv.toFixed(0)
this.top_node.getChildByName("ihp").getChildByName("num").getComponent(Label)!.string = this.node.getComponent(HeroViewComp).hp.toFixed(0)
this.top_node.getChildByName("iap").getChildByName("num").getComponent(Label)!.string = this.node.getComponent(HeroViewComp).ap.toFixed(0)

View File

@@ -0,0 +1,15 @@
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { HeroViewComp } from "./HeroViewComp";
/**
* 角色属性数据
*/
@ecs.register('HartModel')
export class HartModelComp extends ecs.Comp {
onLoad(){
console.log("HartModel加载",this)
}
reset() {
}
}

View File

@@ -0,0 +1 @@
{"ver":"4.0.23","importer":"typescript","imported":true,"uuid":"a32cd4cd-7797-4ef0-bf2d-bd3168fbd0cc","files":[],"subMetas":{},"userData":{}}

View File

@@ -8,6 +8,7 @@ import { BoxSet } from "../common/config/BoxSet";
import { HeroInfo } from "../common/config/heroSet";
import { BattleMoveComp } from "../common/ecs/position/BattleMoveComp";
import { HeroSkillsComp } from "../skill/heroSkillsComp";
import { HartModelComp } from "./HartModelComp";
/** 角色实体 */
@ecs.register(`Hero`)
@@ -27,7 +28,36 @@ export class Hero extends ecs.Entity {
this.remove(HeroViewComp);
super.destroy();
}
hart_load() {
console.log("主体加载")
let box_group=BoxSet.HERO
var path = "game/heros/hart";
var prefab: Prefab = oops.res.get(path, Prefab)!;
var node = instantiate(prefab);
var scene = smc.map.MapView.scene;
node.parent = scene.entityLayer!.node!
let pos=v3(-277,150,0)
node.setPosition(pos)
var hv = node.getComponent(HeroViewComp)!;
hv.scale = 1;
hv.fac = 0;
hv.type = 0;
hv.box_group = box_group;
hv.hero_uuid= 9999;
hv.hero_name= "主体";
hv.speed =hv.ospeed = 0;
hv.dis = 0;
hv.hp= hv.hp_max =5;
hv.ap = 0;
hv.lv=0
hv.cd = 9999
hv.ap_u=0
hv.ap_ur=0
hv.hp_up=0
hv.atk_skill=0
this.add(hv);
this.add(HartModelComp)
}
/** 加载角色 */
load(pos: Vec3 = Vec3.ZERO,scale:number = 1,uuid:number=1001,info:any={ap:0,hp:0},fight_pos:number=0) {
console.log("英雄加载:",uuid,pos,scale,info)
@@ -63,8 +93,6 @@ export class Hero extends ecs.Entity {
const move = this.get(BattleMoveComp);
move.direction = 1; // 向右移动
move.targetX = 800; // 右边界'
oops.message.dispatchEvent("hero_load",this)
}

View File

@@ -12,6 +12,8 @@ import { HeroSet } from "../common/config/heroSet";
import { BuffComp } from "./BuffComp";
import { getMonsterDrops, MonsterType } from "../common/config/RewardSet";
import { HeroSkillsComp } from "../skill/heroSkillsComp";
import { oops } from "db://oops-framework/core/Oops";
import { GameEvent } from "../common/config/GameEvent";
const { ccclass, property } = _decorator;
@@ -287,6 +289,9 @@ export class HeroViewComp extends CCComp {
dead(){
this.BUFFCOMP.dead()
this.to_drop()
if(this.hero_uuid == 9999){
oops.message.dispatchEvent(GameEvent.MissionLoss,this)
}
}
//掉落物品

View File

@@ -10,6 +10,8 @@ import { CardControllerComp } from "./CardController";
import { GameEvent } from "../common/config/GameEvent";
import { HeroSkillsComp } from "../skill/heroSkillsComp";
import { HeroViewComp } from "../hero/HeroViewComp";
import { Hero } from "../hero/Hero";
import { HartModelComp } from "../hero/HartModelComp";
const { ccclass, property } = _decorator;
/** 视图层对象 */
@@ -111,6 +113,8 @@ export class MissionComp extends CCComp {
hp:0,//血量
ap:0,//攻击
}
let hero = ecs.getEntity<Hero>(Hero);
hero.hart_load()
}

View File

@@ -12,6 +12,7 @@ import { HeroModelComp } from "../hero/HeroModelComp";
import { HeroViewComp } from "../hero/HeroViewComp";
import { oops } from "db://oops-framework/core/Oops";
import { FightSet } from "../common/config/Mission";
import { HartModelComp } from "../hero/HartModelComp";
const { ccclass, property } = _decorator;
@@ -21,9 +22,9 @@ const { ccclass, property } = _decorator;
export class MissionHeroCompComp extends CCComp {
timer:Timer=new Timer(2)
start_pos:any={
0:{pos:v3(-150,135,0),has:false},
1:{pos:v3(-270,205,0),has:false},
2:{pos:v3(-270,65,0),has:false},
0:{pos:v3(-50,135,0),has:false},
1:{pos:v3(-170,205,0),has:false},
2:{pos:v3(-170,65,0),has:false},
}
current_hero_uuid:number=0
onLoad(){
@@ -57,7 +58,7 @@ export class MissionHeroCompComp extends CCComp {
this.node.getChildByName("location").getChildByName("herospos").getChildByName("heropos2").getChildByName("hero").active=false
this.node.getChildByName("location").getChildByName("herospos").getChildByName("heropos3").getChildByName("hero").active=false
let heros=ecs.query(ecs.allOf(HeroModelComp))
let heros=ecs.query(ecs.allOf(HeroModelComp).excludeOf(HartModelComp))
for(let hero of heros){
let hv = hero.get(HeroViewComp)
if(hv.fight_pos==0){
@@ -110,7 +111,7 @@ export class MissionHeroCompComp extends CCComp {
get_info_and_remove(fight_pos:number,uuid:number){
let info:any={ap:0,hp:0,lv:0}
let heros=ecs.query(ecs.allOf(HeroModelComp))
let heros=ecs.query(ecs.allOf(HeroModelComp).excludeOf(HartModelComp))
for(let hero of heros){
if(hero.get(HeroViewComp).fight_pos==fight_pos){
let hv = hero.get(HeroViewComp)