This commit is contained in:
walkpan
2024-09-29 08:06:30 +08:00
parent 2a88532ef4
commit 331b22da07
31 changed files with 5067 additions and 7357 deletions

View File

@@ -16,6 +16,7 @@ import { RoleSpine } from "./RoleSpine";
import { RoleViewComp } from "./RoleViewComp";
import { BoxSet } from "../common/config/BoxSet";
import { HeroModelComp } from "../hero/HeroModelComp";
import { Talents } from "../common/config/TalentSet";
/** 角色实体 */
@ecs.register(`Role`)
export class Role extends ecs.Entity {
@@ -51,28 +52,30 @@ export class Role extends ecs.Entity {
hero_init(uuid:number=1001,node:Node,pos:Vec3=v3(0,0,0)){
var rv = node.getComponent(RoleViewComp)!;
let role=smc.vm_data.role;
let role_talent= smc.vm_data.talent
let talents=Talents;
rv.hero_uuid=uuid;
rv.speed =rv.ospeed = role.speed;
rv.atk_dis = role.atk_dis;
rv.hero_name= "role";
rv.hp= rv.hp_max = role.hp*(1+smc.vm_data.talent[1].bonus*smc.vm_data.talent[1].lv);
rv.level = role.lv;
rv.atk = role.atk*(1+smc.vm_data.talent[2].bonus*smc.vm_data.talent[2].lv);
rv.atk_cd = role.atk_cd*(1-smc.vm_data.talent[3].bonus*smc.vm_data.talent[3].lv);
rv.st_boncus=1+smc.vm_data.talent[15].bonus*smc.vm_data.talent[15].lv;
rv.s_boncus=1+smc.vm_data.talent[16].bonus*smc.vm_data.talent[16].lv;
rv.power = role.power;
rv.skill1 = role.skill1;
rv.skill1.cd=rv.skill1.cd_max=rv.skill1.cd_max*(1-smc.vm_data.talent[4].bonus*smc.vm_data.talent[4].lv)
rv.skill2 = role.skill2;
rv.skill2.cd=rv.skill2.cd_max=rv.skill1.cd_max*(1-smc.vm_data.talent[4].bonus*smc.vm_data.talent[4].lv)
rv.skill3 = role.skill3;
rv.skill3.cd=rv.skill3.cd_max=rv.skill1.cd_max*(1-smc.vm_data.talent[4].bonus*smc.vm_data.talent[4].lv)
rv.skill4 = role.skill4;
rv.skill4.cd=rv.skill4.cd_max=rv.skill1.cd_max*(1-smc.vm_data.talent[4].bonus*smc.vm_data.talent[4].lv)
rv.skill3 = role.skill3;
rv.skill4 = role.skill4;
rv.skill5 = role.skill5;
rv.skill5.cd=rv.skill5.cd_max=rv.skill1.cd_max*(1-smc.vm_data.talent[4].bonus*smc.vm_data.talent[4].lv)
rv.skill = role.skill;
rv.skill1.cd=rv.skill1.cd_max=rv.skill1.cd_max*(1-talents[1004].bonus*role_talent[1004].lv)
rv.skill2.cd=rv.skill2.cd_max=rv.skill1.cd_max*(1-talents[1004].bonus*role_talent[1004].lv)
rv.skill3.cd=rv.skill3.cd_max=rv.skill1.cd_max*(1-talents[1004].bonus*role_talent[1004].lv)
rv.skill4.cd=rv.skill4.cd_max=rv.skill1.cd_max*(1-talents[1004].bonus*role_talent[1004].lv)
rv.skill5.cd=rv.skill5.cd_max=rv.skill1.cd_max*(1-talents[1004].bonus*role_talent[1004].lv)
rv.hp= rv.hp_max = role.hp*(1+talents[1001].bonus*role_talent[1001].lv);
rv.atk = role.atk*(1+talents[1002].bonus*role_talent[1002].lv);
rv.atk_cd = role.atk_cd*(1-talents[1003].bonus*role_talent[1003].lv);
rv.st_boncus=1+talents[1005].bonus*role_talent[1005].lv;
rv.s_boncus=1+talents[1006].bonus*role_talent[1006].lv;
rv.box_group = BoxSet.HERO;
this.add(rv);
}

View File

@@ -10,7 +10,9 @@ export class Talent extends ecs.Entity {
/** ---------- 数据层 ---------- */
TalentView!: TalentComp
protected init() {
}
destroy(): void {
this.remove(TalentComp);
super.destroy();
@@ -19,11 +21,14 @@ export class Talent extends ecs.Entity {
/** 加载角色 */
load(pos: Vec3 = Vec3.ZERO,uuid:number=101,parent:Node) {
// var path = "game/monster/"+prefab_path;
var path = "game/heros/role";
var path = "game/talent";
var prefab: Prefab = oops.res.get(path, Prefab)!;
var node = instantiate(prefab);
node.parent = parent;
node.setScale(node.scale.x, node.scale.y, node.scale.z);
node.setPosition(pos)
console.log("load_talent",node)
let tv = node.getComponent(TalentComp)!;
tv.t_uuid = uuid;
this.add(tv);
}
}

View File

@@ -1,6 +1,8 @@
import { _decorator } from "cc";
import { _decorator, Label } from "cc";
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
import { Talents } from "../common/config/TalentSet";
import { smc } from "../common/SingletonModuleComp";
const { ccclass, property } = _decorator;
@@ -8,12 +10,35 @@ const { ccclass, property } = _decorator;
@ccclass('TalentComp')
@ecs.register('TalentView', false)
export class TalentComp extends CCComp {
t_uuid:number = 0;
/** 视图层逻辑代码分离演示 */
start() {
// var entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象
// this.on(ModuleEvent.Cmd, this.onHandler, this);
let name =this.node.getChildByName("name")
let info =this.node.getChildByName("info")
let icon =this.node.getChildByName("icon")
let cost =this.node.getChildByName("cost")
let lv =this.node.getChildByName("lv")
let talent= Talents[this.t_uuid]
let role_talents = smc.vm_data.talent[talent.uuid]
cost.getComponent(Label).string = (talent.cost*(1+role_talents.lv)).toString()
name.getComponent(Label).string = talent.name
info.getComponent(Label).string = talent.info
lv.getComponent(Label).string = role_talents.lv.toString()
if (talent.type == 1){
this.node.getChildByName("role").active=true
}
if (talent.type == 2){
this.node.getChildByName("hero").active=true
}
if (talent.type == 3){
this.node.getChildByName("mission").active=true
}
}
to_update_t(){
console.log("to_update_t",this.t_uuid)
}
/** 全局消息逻辑处理 */
// private onHandler(event: string, args: any) {
// switch (event) {