技能继续重构

This commit is contained in:
2025-10-19 23:46:18 +08:00
parent 2ff7aab7c2
commit 8d9c7bbe0d
34 changed files with 441 additions and 660 deletions

View File

@@ -320,22 +320,22 @@ export const SkillSet: Record<number, SkillConfig> = {
buffs:[],debuffs:[],info:"向最前方敌人释放箭矢,造成100%攻击的伤害"
},
6004: {
uuid:6004,name:"冰球",sp_name:"am_ice",AtkedType:AtkedType.ice,path:"3034",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
uuid:6004,name:"冰球",sp_name:"am_ice",AtkedType:AtkedType.atked,path:"3034",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:3,speed:720,cost:10,with:0,
buffs:[],debuffs:[],info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害"
},
6005: {
uuid:6005,name:"火球术",sp_name:"atk_fires",AtkedType:AtkedType.fire,path:"3039",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
uuid:6005,name:"火球术",sp_name:"atk_fires",AtkedType:AtkedType.atked,path:"3039",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:2,hitcd:0.3,speed:720,cost:20,with:90,
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"
},
6006: {
uuid:6006,name:"能量波",sp_name:"am_blue",AtkedType:AtkedType.ice,path:"3034",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
uuid:6006,name:"能量波",sp_name:"am_blue",AtkedType:AtkedType.atked,path:"3034",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:3,speed:720,cost:10,with:0,
buffs:[],debuffs:[],info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害"
},
6007: {
uuid:6007,name:"圣光波",sp_name:"am_yellow",AtkedType:AtkedType.fire,path:"3039",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
uuid:6007,name:"圣光波",sp_name:"am_yellow",AtkedType:AtkedType.atked,path:"3039",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:2,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"
},
@@ -346,7 +346,7 @@ export const SkillSet: Record<number, SkillConfig> = {
buffs:[],debuffs:[],info:"为最前排队友召唤一个可以抵御2次攻击的圣盾(最高叠加到6次)"
},
6102: {
uuid:6102,name:"寒冰箭",sp_name:"arrow_blue",AtkedType:AtkedType.ice,path:"3060",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
uuid:6102,name:"寒冰箭",sp_name:"arrow_blue",AtkedType:AtkedType.atked,path:"3060",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:1,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人"
},
@@ -357,7 +357,7 @@ export const SkillSet: Record<number, SkillConfig> = {
},
6104: {
uuid:6104,name:"烈焰斩击",sp_name:"max_fireatk",AtkedType:AtkedType.fire,path:"3036",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
uuid:6104,name:"烈焰斩击",sp_name:"max_fireatk",AtkedType:AtkedType.atked,path:"3036",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:0.2,speed:720,cost:10,with:0,
buffs:[],debuffs:[],info:"向最前方敌人扔出石斧,造成100%攻击的伤害"
},
@@ -369,7 +369,7 @@ export const SkillSet: Record<number, SkillConfig> = {
},
6106: {
uuid:6106,name:"龙卷风",sp_name:"bwind",AtkedType:AtkedType.wind,path:"3065",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
uuid:6106,name:"龙卷风",sp_name:"bwind",AtkedType:AtkedType.atked,path:"3065",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:1,speed:360,cost:10,with:90,
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"
},
@@ -377,7 +377,7 @@ export const SkillSet: Record<number, SkillConfig> = {
6107: {
uuid:6107,name:"烈焰射击",sp_name:"arrow_yellow",AtkedType:AtkedType.fire,path:"3014",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
uuid:6107,name:"烈焰射击",sp_name:"arrow_yellow",AtkedType:AtkedType.atked,path:"3014",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
ap:100,cd:5,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人"
},
@@ -401,7 +401,7 @@ export const SkillSet: Record<number, SkillConfig> = {
},
6111: {
uuid:6111,name:"陨石术",sp_name:"max_yunshi",AtkedType:AtkedType.fire,path:"3123",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,
uuid:6111,name:"陨石术",sp_name:"max_yunshi",AtkedType:AtkedType.atked,path:"3123",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,
ap:500,cd:5,t_num:1,hit_num:0,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"
},
@@ -412,7 +412,7 @@ export const SkillSet: Record<number, SkillConfig> = {
buffs:[],debuffs:[],info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人"
},
6113: {
uuid:6113,name:"剑雨",sp_name:"max_jianyu",AtkedType:AtkedType.fire,path:"3123",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,
uuid:6113,name:"剑雨",sp_name:"max_jianyu",AtkedType:AtkedType.atked,path:"3123",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,
ap:500,cd:5,t_num:1,hit_num:0,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
buffs:[],debuffs:[],info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"
},

View File

@@ -45,19 +45,19 @@ export const getMonList = ()=>{
}
export const HeroPos={
0:{pos:v3(0,0,0)},
1:{pos:v3(0,0,0)},
2:{pos:v3(0,0,0)},
0:{pos:v3(0,100,0)},
1:{pos:v3(0,100,0)},
2:{pos:v3(0,100,0)},
}
export const MonSet = {
0:{pos:v3(240,0,0)},
1:{pos:v3(320,0,0)},
2:{pos:v3(360,0,0)},
3:{pos:v3(400,0,0)},
4:{pos:v3(440,0,0)},
5:{pos:v3(480,0,0)},
6:{pos:v3(520,0,0)},
7:{pos:v3(560,0,0)},
0:{pos:v3(240,100,0)},
1:{pos:v3(320,100,0)},
2:{pos:v3(360,100,0)},
3:{pos:v3(400,100,0)},
4:{pos:v3(440,100,0)},
5:{pos:v3(480,100,0)},
6:{pos:v3(520,100,0)},
7:{pos:v3(560,100,0)},
}

View File

@@ -153,7 +153,7 @@ export class BuffComp extends Component {
node.setPosition(pos);
}
in_atked(anm:string="atked",scale:number=1) {
var path = "game/skills/"+anm;
var path = "game/skill/boom/"+anm;
var prefab: Prefab = oops.res.get(path, Prefab)!;
var node = instantiate(prefab);
node.setScale(node.scale.x*scale,node.scale.y)

View File

@@ -84,7 +84,6 @@ export class HeroViewComp extends CCComp {
atk_count: number = 0;
atked_count: number = 0;
speek_time:number = 0;

View File

@@ -36,7 +36,6 @@ export class Monster extends ecs.Entity {
// console.log("mon load",uuid)
// this.addComponents<ecs.Comp>( MonModelComp, BattleMoveComp);
var scene = smc.map.MapView.scene;
this.brith_light(pos,scene)
var path = "game/heros/"+HeroInfo[uuid].path;
var prefab: Prefab = oops.res.get(path, Prefab)!;
var node = instantiate(prefab);
@@ -55,13 +54,7 @@ export class Monster extends ecs.Entity {
smc.vmdata.mission_data.mon_num++
// console.log("[Mon] mission_data.mon_num:",smc.vmdata.mission_data.mon_num)
}
brith_light(pos:Vec3,scene:any){
var path = "game/skills/map_birth";
var prefab: Prefab = oops.res.get(path, Prefab)!;
var node = instantiate(prefab);
node.parent = scene.entityLayer!.node!
node.setPosition(pos)
}
hero_init(uuid:number=1001,node:Node,scale:number=1,box_group=BoxSet.HERO,is_boss:boolean=false,is_call:boolean=false, strengthMultiplier: number = 1.0) {
var hv = node.getComponent(HeroViewComp)!;

View File

@@ -23,10 +23,8 @@ export class SkillConComp extends CCComp {
}
onLoad(){
this.HeroView=this.node.getComponent(HeroViewComp)
// //console.log(this.HeroView.uid+"=>"+this.HeroView.hero_name+"=> SkillConComp onLoad")
}
start() {
// //console.log(this.HeroView.uuid+"=>"+this.HeroView.hero_name+"=> SkillConComp start")
this.HeroEntity=this.HeroView.ent
}
@@ -34,10 +32,8 @@ export class SkillConComp extends CCComp {
if(!smc.mission.play||smc.mission.pause) return
if(!this.HeroView.isStun() && !this.HeroView.isFrost()) {
let skills=this.HeroView.skills
console.log(this.HeroView.uuid+"=>"+this.HeroView.hero_name+"技能列表:",skills)
for(let i=0;i<skills.length;i++){
skills[i].cd += dt;
console.log(this.HeroView.uuid+"=>"+skills[i].cost,this.HeroView.mp)
if(skills[i].cd > skills[i].cd_max&&this.HeroView.mp >= skills[i].cost){
if(SkillSet[skills[i].uuid].SType==SType.damage&&this.HeroView.is_atking){
@@ -55,7 +51,6 @@ export class SkillConComp extends CCComp {
/** 施放技能 */
castSkill(config: typeof SkillSet[keyof typeof SkillSet]) {
// //console.log(view.uuid+"=>"+view.hero_name+"施放技能:"+config.uuid);
let wfuny=this.check_wfuny()
let dmg=0
this.doSkill(config,wfuny,dmg);

View File

@@ -5,7 +5,6 @@ import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/O
import { smc } from "../common/SingletonModuleComp";
import { GameEvent } from "../common/config/GameEvent";
import { Timer } from "db://oops-framework/core/common/timer/Timer";
import { randomSpeek, Speeks } from "../common/config/Tasks";
const { ccclass, property } = _decorator;
@@ -13,8 +12,6 @@ const { ccclass, property } = _decorator;
@ccclass('MissionHomeComp')
@ecs.register('MissionHome', false)
export class MissionHomeComp extends CCComp {
speek_time:number=0
speek_cd:Timer=new Timer(10)
protected onLoad(): void {
this.on(GameEvent.MissionEnd,this.mission_end,this)
}
@@ -25,12 +22,7 @@ export class MissionHomeComp extends CCComp {
onEnable(){
}
update(dt:number){
if(this.speek_cd.update(dt)){
let speek=randomSpeek()
let slot=Math.floor(Math.random()*2)
oops.message.dispatchEvent(GameEvent.HeroSpeek,{words:speek[0],slot:slot})
console.log("[MissionHomeComp]:speek",speek,slot)
}
}

View File

@@ -9,26 +9,18 @@ const { ccclass, property } = _decorator;
export class topComp extends Component {
protected onLoad(): void {
oops.message.on(GameEvent.GOLD_UPDATE,this.onGoldUpdate,this);
this.update_all()
}
start() {
}
onGoldUpdate(event:string,data:any){
this.update_gold(smc.data.gold)
tween(this.node.getChildByName("bar").getChildByName("gold").getChildByName("num").getComponent(Label).node)
.to(0.1,{scale:v3(1.2,1.2,1)})
.to(0.1,{scale:v3(1,1,1)})
.start()
}
update_gold(gold:number){
this.node.getChildByName("bar").getChildByName("gold").getChildByName("num").getComponent(Label).string=NumberFormatter.formatNumber(gold);
}
update_all(){
this.update_gold(smc.vmdata.gold)
}
update(deltaTime: number) {
}

View File

@@ -98,11 +98,11 @@ export class AtkConCom extends CCComp {
bm.moveTo(this.targetPos);
}
do_fixedEnd(){
this.node.setPosition(this.targetPos.x > 360?300:this.targetPos.x,0,0)
this.node.setPosition(this.targetPos.x > 360?300:this.targetPos.x,this.node.position.y,0)
this.do_anim()
}
do_fixedStart(){
this.node.setPosition(this.startPos.x > 360?300:this.startPos.x,0,0)
this.node.setPosition(this.startPos.x > 360?300:this.startPos.x,this.node.position.y,0)
this.do_anim()
}

View File

@@ -55,7 +55,6 @@ export class SkillViewCom extends CCComp {
start() {
// var entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象
this.node.getChildByName("ready").active = this.hasReady
console.log("[skillView] start ",this.hasReady)
}
protected update(dt: number): void {
this.doTimer(dt)
@@ -72,14 +71,11 @@ export class SkillViewCom extends CCComp {
}
doTimer(dt: number){
console.log('[skillview]:doTimer',this.ReadyTime,this.readyFinish)
if(this.ReadyTime > 0) this.ReadyTime -= dt
if(this.ReadyTime <=0) this.readyFinish=true
}
doAtk(dt:number): void {
console.log(`${this.cName}_[SkillViewCom] doAtkC`,this.s_cd,this.s_count)
if(this.s_cd <= 0&&this.s_count > 0) {
console.log(`${this.cName}_[SkillViewCom] doAtk 2`)
this.doSkill()
this.s_count--
this.s_cd = this.s_interval
@@ -89,15 +85,13 @@ export class SkillViewCom extends CCComp {
if(this.s_cd > 0) this.s_cd -= dt
}
doSkill(){
console.log(`${this.cName}_[SkillViewCom] atkPrefab`,this.atkPrefab)
if(this.atkPrefab!=null){
let atkNode:Node = instantiate(this.atkPrefab)
atkNode.parent = this.node.parent
atkNode.setPosition(v3(this.node.position.x + this.atk_x*atkNode.scale.x, this.node.position.y + this.atk_y))
if(this.node.scale.x < 0){
atkNode.setScale(v3(atkNode.scale.x*-1,atkNode.scale.y,atkNode.scale.z))
}
atkNode.setPosition(v3(this.node.position.x + this.atk_x*atkNode.scale.x, this.node.position.y + this.atk_y))
console.log(`${this.cName}_[SkillViewCom] doSkill atkNode`,this.node.position,atkNode.position)
let atkCom=atkNode.getComponent(AtkConCom)
// 计算延长后的目标点坐标
const originalStart = v3(this.node.position.x + this.atk_x, this.node.position.y + this.atk_y);
@@ -137,20 +131,15 @@ export class SkillViewCom extends CCComp {
}
}
do_linear(atkNode:any): void {
console.log(`${this.cName}_[SkillViewCom] skille run type: linear`,this.node.position,atkNode.position)
atkNode.getComponent(AtkConCom).do_line()
}
do_bezier(atkNode:any): void {
console.log(`${this.cName}_[SkillViewCom] skille run type: bezier`)
atkNode.getComponent(AtkConCom).do_parabolic()
}
do_fixed(atkNode:any): void {
console.log(`${this.cName}_[SkillViewCom] skille run type: fixed`)
atkNode.getComponent(AtkConCom).do_fixedStart()
}
do_fixedEnd(atkNode:any): void {
console.log(`${this.cName}_[SkillViewCom] skille run type: fixedEnd`)
atkNode.getComponent(AtkConCom).do_fixedEnd()
}
move(dt: number): void {