diff --git a/assets/script/game/hero/Mon.ts b/assets/script/game/hero/Mon.ts new file mode 100644 index 00000000..fc315019 --- /dev/null +++ b/assets/script/game/hero/Mon.ts @@ -0,0 +1,133 @@ + +/* + * @Author: dgflash + * @Date: 2021-11-18 17:47:56 + * @LastEditors: dgflash + * @LastEditTime: 2022-08-04 15:43:04 + */ +import { instantiate, Node, Prefab, Vec3 ,v3,resources,SpriteFrame,Sprite,SpriteAtlas} from "cc"; +import { UICallbacks } from "../../../../extensions/oops-plugin-framework/assets/core/gui/layer/Defines"; +import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops"; +import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; +import { UIID } from "../common/config/GameUIConfig"; +import { smc } from "../common/SingletonModuleComp"; +import { HeroModelComp } from "./HeroModelComp"; +import { HeroSpine } from "./HeroSpine"; +import { HeroViewComp } from "./HeroViewComp"; +import { BoxSet } from "../common/config/BoxSet"; +import { RandomManager } from "../../../../extensions/oops-plugin-framework/assets/core/common/random/RandomManager"; +import { HeroInfo,MonSet } from "../common/config/heroSet"; +import { MoveToComp } from "../common/ecs/position/MoveTo"; +import { Talents } from "../common/config/TalentSet"; +import { MonModelComp } from "./MonModelComp"; +/** 角色实体 */ +@ecs.register(`Monster`) +export class Monster extends ecs.Entity { + // 数据层 + MonModelComp!: MonModelComp; + // 视图层 + HeroView!: HeroViewComp; + + + protected init() { + + + } + + destroy(): void { + this.remove(HeroViewComp); + this.remove(MoveToComp); + super.destroy(); + } + + /** 加载角色 */ + load(pos: Vec3 = Vec3.ZERO,scale:number = 1,uuid:number=1001,is_hero:boolean=true) { + + scale=-1 + let box_group=BoxSet.MONSTER + this.addComponents( MonModelComp); + var path = "game/heros/"+HeroInfo[uuid].path; + var prefab: Prefab = oops.res.get(path, Prefab)!; + var node = instantiate(prefab); + + var scene = smc.map.MapView.scene; + node.parent = scene.entityLayer!.node! + + node.setPosition(pos) + this.hero_init(uuid,node,scale,box_group) + oops.message.dispatchEvent("monster_load",this) + } + + hero_init(uuid:number=1001,node:Node,scale:number=1,box_group=BoxSet.HERO){ + var hv = node.getComponent(HeroViewComp)!; + // console.log("hero_init",buff) + let hero= HeroInfo[uuid] // 共用英雄数据 + let talent= smc.vmdata.talent //角色英雄数据 + let talents=Talents; + hv.scale = scale; + hv.box_group = box_group; + hv.hero_uuid= uuid; + hv.hero_name= hero.name; + hv.hero_type= hero.type; + hv.speed =hv.ospeed = hero.speed; + hv.dis = hero.dis; + hv.pw = hero.pw; + hv.pwm= hero.pwm; + hv.pws= hero.pws + hv.apw=hero.apw; + hv.uapw=hero.uapw; + hv.cpw=hero.cpw; + hv.dpw=hero.dpw; + hv.dopw=hero.dopw; + hv.lv = 1; + hv.slv = 0; + + hv.type = hero.type; + hv.sk1 = hero.sk1[hv.slv]; + hv.sk2 = hero.sk2[hv.slv]; + hv.sk3 = hero.sk3[hv.slv]; + hv.akc = hero.akc[hv.slv]; + hv.uac = hero.uac[hv.slv]; + hv.crc = hero.crc[hv.slv]; + hv.dgc = hero.dgc[hv.slv]; + hv.akr = hero.akr[hv.slv]; + hv.uar = hero.uar[hv.slv]; + hv.crr = hero.crr[hv.slv]; + hv.dgr = hero.dgr[hv.slv]; + hv.type = hero.type; + hv.hp= hv.hp_max =hero.hp+hero.hp_up*hv.lv ; + hv.ap = hero.ap+hero.ap_up*hv.lv ; + hv.def= hero.def+hero.def_up*hv.lv; + hv.cd = hero.a_cd + hv.crit = hero.crit; //暴击率 + hv.crit_add = hero.crit_add;//暴击伤害加成 + hv.dodge = hero.dodge; //闪避率 + hv.aexp=hero.aexp; + hv.uaexp=hero.uaexp; + hv.cexp=hero.cexp + hv.doexp=hero.doexp + hv.dexp=hero.dexp; + + this.add(hv); + } + set_ratio(uuid:number){ + let ratio=1; + switch (HeroInfo[uuid].level) { + case 2: + ratio=1.05 + break; + case 3: + ratio=1.1 + break; + case 4: + ratio=1.15 + break; + case 5: + ratio=1.2 + break; + default: + ratio=1 + } + return ratio; + } +} \ No newline at end of file diff --git a/assets/script/game/hero/Mon.ts.meta b/assets/script/game/hero/Mon.ts.meta new file mode 100644 index 00000000..5b29d269 --- /dev/null +++ b/assets/script/game/hero/Mon.ts.meta @@ -0,0 +1 @@ +{"ver":"4.0.23","importer":"typescript","imported":true,"uuid":"c1d7128f-5af5-4f7c-b4a1-6bb6fd4f12e0","files":[],"subMetas":{},"userData":{}} diff --git a/assets/script/game/map/MIssionController.ts b/assets/script/game/map/MIssionController.ts index 87ee066a..be99eac5 100644 --- a/assets/script/game/map/MIssionController.ts +++ b/assets/script/game/map/MIssionController.ts @@ -25,6 +25,7 @@ import { HCardComp } from "./HCardComp"; import { VictoryComp } from "./VictoryComp"; import { ItemComp } from "./ItemComp"; import { MSkillComp } from "./MSkillComp"; +import { Monster } from "../hero/Mon"; const { ccclass, property } = _decorator; /** 视图层对象 */ @@ -232,11 +233,11 @@ export class MissionComp extends CCComp { hero.load(pos,scale,uuid); } private addMonster(uuid:number=1001,i:number=0) { - let monster = ecs.getEntity(Hero); + let mon = ecs.getEntity(Monster); let scale = -1 let pos:Vec3 = v3(-1*HeroSet.StartPos[HeroInfo[uuid].type]+i*15,BoxSet.GAME_LINE); console.log("addMonster:",pos) - monster.load(pos,scale,uuid,false); + mon.load(pos,scale,uuid,false); }