aoe技能继续添加

This commit is contained in:
2025-06-20 16:29:11 +08:00
parent 211dd26ca3
commit 6ce9fc4c48
14 changed files with 178 additions and 226 deletions

View File

@@ -177,8 +177,8 @@
"defaultAnimation": "show", "defaultAnimation": "show",
"_premultipliedAlpha": true, "_premultipliedAlpha": true,
"_timeScale": 1, "_timeScale": 1,
"_preCacheMode": 1, "_preCacheMode": 0,
"_cacheMode": 1, "_cacheMode": 0,
"_sockets": [], "_sockets": [],
"_useTint": false, "_useTint": false,
"_debugMesh": false, "_debugMesh": false,

View File

@@ -99,8 +99,8 @@
}, },
"_lscale": { "_lscale": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": 0.5, "x": 0.7,
"y": 0.4, "y": 0.6,
"z": 1 "z": 1
}, },
"_mobility": 0, "_mobility": 0,

View File

@@ -32,13 +32,10 @@
}, },
{ {
"__id__": 12 "__id__": 12
},
{
"__id__": 14
} }
], ],
"_prefab": { "_prefab": {
"__id__": 16 "__id__": 14
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@@ -252,7 +249,7 @@
"fileId": "8ahZv91itPcYJm8S0veHYl" "fileId": "8ahZv91itPcYJm8S0veHYl"
}, },
{ {
"__type__": "2e239CwoM1FmoR8QJ5eOtPz", "__type__": "f680dkagx9PmbfqtF463/Ua",
"_name": "", "_name": "",
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
@@ -263,29 +260,27 @@
"__prefab": { "__prefab": {
"__id__": 13 "__id__": 13
}, },
"speed": 600,
"controlPointSide": 1,
"controlPointOffset": 0.5,
"controlPointRandomness": 0.3,
"autoRotate": true,
"showTrajectory": true,
"trajectoryColor": {
"__type__": "cc.Color",
"r": 0,
"g": 255,
"b": 0,
"a": 255
},
"trajectoryWidth": 3,
"easing": "linear",
"rotationSmoothness": 0.6,
"_id": "" "_id": ""
}, },
{ {
"__type__": "cc.CompPrefabInfo", "__type__": "cc.CompPrefabInfo",
"fileId": "30IyV8mGNDe4xgtVIZXhYJ" "fileId": "0eGZJOMq1B25fH8iTHOSvf"
},
{
"__type__": "6a7fejJxHlM5r/TS8IFF1Kq",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 15
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "c3g/ZwWHVLApO4IpMsx82J"
}, },
{ {
"__type__": "cc.PrefabInfo", "__type__": "cc.PrefabInfo",

View File

@@ -2,7 +2,7 @@ import { VM } from "../../../../extensions/oops-plugin-framework/assets/libs/mod
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
import { Initialize } from "../initialize/Initialize"; import { Initialize } from "../initialize/Initialize";
import { GameMap } from "../map/GameMap"; import { GameMap } from "../map/GameMap";
import { MissionData, MissionMons, Missions } from "./config/Mission"; import { MissionData } from "./config/Mission";
// import { Role } from "../role/Role"; // import { Role } from "../role/Role";

View File

@@ -137,13 +137,17 @@ export const SuperCardsType={
BUFF:3, //buff技能 范围buff BUFF:3, //buff技能 范围buff
DEBUFF:4, //debuff技能 范围debuff DEBUFF:4, //debuff技能 范围debuff
} }
export const SuperCardsList=[3001,3002,3101,3201,3301]; export const SuperCardsList=[3001,3002,3101,3102,3103,3201,3301];
export const SuperCards={ export const SuperCards={
3001:{uuid:3001,name:"附魔宝典",path:"3001",type:SuperCardsType.SPECIAL,value1:1,value2:0,value3:0, 3001:{uuid:3001,name:"附魔宝典",path:"3001",type:SuperCardsType.SPECIAL,value1:1,value2:0,value3:0,
info:"攻击触发提高英雄/伙伴属性的效果,额外添加+1攻击力"}, info:"攻击触发提高英雄/伙伴属性的效果,额外添加+1攻击力"},
3002:{uuid:3002,name:"附魔宝典",path:"3002",type:SuperCardsType.SPECIAL,value1:1,value2:0,value3:0, 3002:{uuid:3002,name:"附魔宝典",path:"3002",type:SuperCardsType.SPECIAL,value1:1,value2:0,value3:0,
info:"攻击触发高英雄/伙伴属性的效果,额外添加+1生命值"}, info:"攻击触发高英雄/伙伴属性的效果,额外添加+1生命值"},
3101:{uuid:3101,name:"火球风暴",path:"3101",type:SuperCardsType.AOE,value1:SkillSet[6029].uuid,value2:3,value3:0, 3101:{uuid:3101,name:"陨石术",path:"3101",type:SuperCardsType.AOE,value1:SkillSet[6019].uuid,value2:3,value3:0,
info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"},
3102:{uuid:3102,name:"冰刺",path:"3102",type:SuperCardsType.AOE,value1:SkillSet[6017].uuid,value2:3,value3:0,
info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"},
3103:{uuid:3103,name:"潮汐",path:"3103",type:SuperCardsType.AOE,value1:SkillSet[6018].uuid,value2:3,value3:0,
info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"}, info:"召唤大量火球攻击敌人,每个火球对敌人造成英雄攻击力的300%伤害"},
3201:{uuid:3201,name:"极速充能",path:"3201",type:SuperCardsType.BUFF,value1:10,value2:100,value3:0, 3201:{uuid:3201,name:"极速充能",path:"3201",type:SuperCardsType.BUFF,value1:10,value2:100,value3:0,
info:"你的英雄/伙伴接下来的10次普通攻击速度提升100%"}, info:"你的英雄/伙伴接下来的10次普通攻击速度提升100%"},

View File

@@ -12,15 +12,15 @@ export const BossList = {
} }
} }
export const MissionNum = 3 //对应关卡数MissionMons 的索引 export const MonNum = [3,4,5]//对应关卡数MissionMons 的索引
export const MissionMons = [ export const MissionMons = [
[5201,5202,5203,5204,5205,5206,5210,5211,5212], [5201,5202,5203,5204,5205,5206],
[5213,5214,5215], [5201],
[5201], [5201],
] ]
export const Missions = [ export const Missions = [
[5201,5202,5203,5204,5205,5206,5210,5211,5212,5219,5220,5221], [5201,5202,5203,5204,5205,5206,5219,5220,5221],
[5213,5214,5215,5216,5217,5218], [5216,5217,5218],
[5225,5226,5227], [5225,5226,5227],
] ]
export const MissionReward = { export const MissionReward = {
@@ -53,7 +53,7 @@ export const MissionStatus = {
} }
export enum FightSet { export enum FightSet {
FRIEND_WAVE_UP=2, //伙伴登场波次 FRIEND_WAVE_UP=2, //伙伴登场波次
MON_WAVE_TIME=10,//怪物波次时间 MON_WAVE_TIME=30,//怪物波次时间
FRIEND_LIVE_CD=10,//伙伴复活时间 FRIEND_LIVE_CD=10,//伙伴复活时间
ATK_ADD_FRIEND_COUNT=4,//伙伴攻击力增加 ATK_ADD_FRIEND_COUNT=4,//伙伴攻击力增加
ATK_ADD_GLOD=1,//金币增加 ATK_ADD_GLOD=1,//金币增加
@@ -71,7 +71,7 @@ export enum FightSet {
// AP_CHANGE_RATE=0, // AP_CHANGE_RATE=0,
} }
export const MissionData = { export const MissionData = {
gold:10,//金币 gold:1000,//金币
score:0,//分数 score:0,//分数
refrsh_time:5, //刷新时间 refrsh_time:5, //刷新时间
refresh_gold:3,//刷新金币 refresh_gold:3,//刷新金币

View File

@@ -1,11 +1,11 @@
export enum TargetGroup { export enum TGroup {
Self = 0, // 自身 Self = 0, // 自身
Ally = 1, // 所有敌人 Ally = 1, // 所有敌人
Team = 2, // 所有友方 Team = 2, // 所有友方
Enemy = 3, // 敌方单位 Enemy = 3, // 敌方单位
All = 4 // 所有单位 All = 4 // 所有单位
} }
export enum TargetType { export enum TType {
/** 前排目标(最靠近敌方阵营的单位) */ /** 前排目标(最靠近敌方阵营的单位) */
Frontline = 1, // 最前排单位 Frontline = 1, // 最前排单位
/** 后排目标(离敌方阵营最远的单位) */ /** 后排目标(离敌方阵营最远的单位) */
@@ -39,20 +39,20 @@ export enum CdType {
//技能释放cd: 0:技能配置的cd,1:HeroViewComp.cd 值,2:HeroViewComp.pw:0值,当HeroViewComppw==HeroViewComp.pwm值是 释放 //技能释放cd: 0:技能配置的cd,1:HeroViewComp.cd 值,2:HeroViewComp.pw:0值,当HeroViewComppw==HeroViewComp.pwm值是 释放
export enum AnimType { export enum AType {
linear = 0, // 直线 linear = 0, // 直线
parabolic = 1, // 抛射物 parabolic = 1, // 抛射物
fixedStart = 2, // 固定在出发点 fixedStart = 2, // 固定在出发点
fixedEnd = 3, // 固定在终点 fixedEnd = 3, // 固定在终点
} }
export enum RunType { export enum RType {
linear = 0, //直线 linear = 0, //直线
bezier = 1, //贝塞尔 bezier = 1, //贝塞尔
fixed = 2, //固定 fixed = 2, //固定
} }
export enum endType { export enum EType {
animationEnd = 0, animationEnd = 0,
timeEnd = 1, timeEnd = 1,
distanceEnd = 2, distanceEnd = 2,
@@ -126,9 +126,7 @@ ap:施法者攻击
mhp:增加最大生命比例 mhp:增加最大生命比例
hp:增加当前生命比例 hp:增加当前生命比例
cd:buff/debuff持续时间 cd:buff/debuff持续时间
/debuff触发时间 /debhited:伤害时间
hited:伤害时间
shield:增加护盾占最大生命比例 shield:增加护盾占最大生命比例
speed:移动速度 speed:移动速度
sonsk:子技能id sonsk:子技能id
@@ -138,136 +136,91 @@ info:技能描述
*/ */
export const HeroSkillList = [6001,6001,6001,6001,6001,6001] export const HeroSkillList = [6001,6001,6001,6001,6001,6001]
export const SkillSet = { export const SkillSet = {
6001:{uuid:6001,name:"凛冬之触",sp_name:"greenball",path:"6001",TargetType:TargetType.Frontline, 6001:{uuid:6001,name:"凛冬之触",sp_name:"greenball",path:"6001",TType:TType.Frontline,
TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:3,fname:"max",flash:false,with:50, TGroup:3,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:3,fname:"max",flash:false,with:90,
debuff:0,in:0.8,ap:100,cd:5, debuff:0,in:0.8,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害"},
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放寒冰弹,造成100%攻击的伤害"},
6002:{uuid:6002,name:"烈焰之怒",sp_name:"greenball",path:"6002",TargetType:TargetType.Frontline, 6002:{uuid:6002,name:"穿心箭矢",sp_name:"arrow",path:"6006",TType:TType.Frontline,
TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:3,fname:"max",flash:false,with:50, TGroup:3,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:3,fname:"max",flash:false,with:90,
debuff:0,in:0.8,ap:100,cd:5, debuff:0,in:0.8,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放箭矢,造成100%攻击的伤害"},
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放火焰弹,造成100%攻击的伤害"},
6003:{uuid:6003,name:"奥术冲击",sp_name:"greenball",path:"6003",TargetType:TargetType.Frontline, 6003:{uuid:6003,name:"神圣护盾",sp_name:"shield",path:"6018",TType:TType.Frontline,
TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:3,fname:"max",flash:false,with:50, TGroup:0,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
debuff:0,in:0.8,ap:100,cd:5, debuff:0,in:0.8,ap:100,cd:5,hited:0.3,shield:30,speed:720,sonsk:0,hero:0,info:"召唤圣盾保护自己,可以抵御3次攻击"},
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放魔法弹,造成100%攻击的伤害"},
6004:{uuid:6004,name:"神圣裁决",sp_name:"greenball",path:"6004",TargetType:TargetType.Frontline, 6004:{uuid:6004,name:"自愈", sp_name:"heath_small",path:"6032",TType:TType.Frontline,
TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:3,fname:"max",flash:false,with:50, TGroup:0,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
debuff:0,in:0.8,ap:100,cd:5, debuff:0,in:2,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"主动:自己回复自身5%最大生命值的生命"},
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放圣光弹,造成100%攻击的伤害"},
6005:{uuid:6005,name:"破空斩击",sp_name:"patk",path:"6005",TargetType:TargetType.Frontline, 6007:{uuid:6007,name:"铁斧打击",sp_name:"mon_ft",path:"6007",TType:TType.Frontline,
TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:3,fname:"max",flash:false,with:50, TGroup:3,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:3,fname:"max",flash:false,with:90,
debuff:0,in:0.8,ap:50,cd:5, debuff:0,in:0.8,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出铁斧,造成100%攻击的伤害"},
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"攻击前方直线100码内的敌人造成50%伤害"}, 6008:{uuid:6008,name:"木棍打击",sp_name:"mon_ly",path:"6008",TType:TType.Frontline,
6006:{uuid:6006,name:"穿心箭矢",sp_name:"arrow",path:"6006",TargetType:TargetType.Frontline, TGroup:3,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:3,fname:"max",flash:false,with:90,
TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,RunType:RunType.linear,endType:3,fname:"max",flash:false,with:50, debuff:0,in:0.8,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出木棍,造成100%攻击的伤害"},
debuff:0,in:0.8,ap:100,cd:5, 6009:{uuid:6009,name:"飞刀打击",sp_name:"mon_xd",path:"6009",TType:TType.Frontline,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人释放箭矢,造成100%攻击的伤害"}, TGroup:3,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:3,fname:"max",flash:false,with:90,
6007:{uuid:6007,name:"铁斧打击",sp_name:"mon_ft",path:"6007",TargetType:TargetType.Frontline, debuff:0,in:0.8,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出飞刀,造成100%攻击的伤害"},
TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:3,fname:"max",flash:false,with:50, 6010:{uuid:6010,name:"石斧打击",sp_name:"mon_sf",path:"6010",TType:TType.Frontline,
debuff:0,in:0.8,ap:100,cd:5, TGroup:3,act:"atk",CdType:1,AType:AType.parabolic,RType:RType.bezier,EType:3,fname:"max",flash:false,with:90,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出斧,造成100%攻击的伤害"}, debuff:0,in:0.8,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出斧,造成100%攻击的伤害"},
6008:{uuid:6008,name:"木棍打击",sp_name:"mon_ly",path:"6008",TargetType:TargetType.Frontline,
TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:3,fname:"max",flash:false,with:50,
debuff:0,in:0.8,ap:100,cd:5, 6011:{uuid:6011,name:"烈火呼吸",sp_name:"firequan",path:"6011",TType:TType.Frontline,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出木棍,造成100%攻击的伤害"}, TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
6009:{uuid:6009,name:"飞刀打击",sp_name:"mon_xd",path:"6009",TargetType:TargetType.Frontline, debuff:0,in:3,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤烈焰攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"},
TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:3,fname:"max",flash:false,with:50,
debuff:0,in:0.8,ap:100,cd:5, 6012:{uuid:6012,name:"大火球" ,sp_name:"fire",path:"6012",TType:TType.Frontline,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出飞刀,造成100%攻击的伤害"}, TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.linear,EType:1,fname:"max",flash:false,with:90,
6010:{uuid:6010,name:"石斧打击",sp_name:"mon_sf",path:"6010",TargetType:TargetType.Frontline, debuff:2,in:1,ap:300,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"},
TargetGroup:3,act:"atk",CdType:1,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:3,fname:"max",flash:false,with:50,
debuff:0,in:0.8,ap:100,cd:5, 6013:{uuid:6013,name:"火墙", sp_name:"firewall",path:"6013",TType:TType.Frontline,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"向最前方敌人扔出石斧,造成100%攻击的伤害"}, TGroup:3,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
6011:{uuid:6011,name:"烈火呼吸",sp_name:"firequan",path:"6011",TargetType:TargetType.Frontline, debuff:0,in:10,ap:50,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤一堵火墙,持续10秒,每秒造成50%攻击伤害"},
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max",flash:false,with:50,
debuff:0,in:3,ap:100,cd:5, 6014:{uuid:6014,name:"寒冰箭", sp_name:"arrow_blue",path:"6014",TType:TType.Frontline,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤烈焰攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"}, TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
6012:{uuid:6012,name:"大火球" ,sp_name:"fire",path:"6012",TargetType:TargetType.Frontline, debuff:1,in:1,ap:200,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人"},
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.linear,endType:1,fname:"max",flash:false,with:50,
debuff:2,in:1,ap:300,cd:5, 6015:{uuid:6015,name:"烈焰射击",sp_name:"arrow_yellow",path:"6015",TType:TType.Frontline,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"}, TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
6013:{uuid:6013,name:"火墙", sp_name:"firewall",path:"6013",TargetType:TargetType.Frontline, debuff:3,in:1,ap:200,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人"},
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.fixedEnd,RunType:RunType.bezier,endType:1,fname:"max",flash:false,with:50,
debuff:0,in:10,ap:50,cd:5,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤一堵火墙,持续10秒,每秒造成50%攻击伤害"}, 6016:{uuid:6016,name:"龙卷风", sp_name:"bwind",path:"6016",TType:TType.Frontline,
6014:{uuid:6014,name:"寒冰箭", sp_name:"arrow_blue",path:"6014",TargetType:TargetType.Frontline, TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max",flash:false,with:50, debuff:8,in:1,ap:200,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"},
debuff:1,in:1,ap:200,cd:5, 6017:{uuid:6017,name:"冰刺",sp_name:"icez",path:"6022",TType:TType.Frontline,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人"}, TGroup:3,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.linear,EType:1,fname:"max",flash:false,with:90,
6015:{uuid:6015,name:"烈焰射击",sp_name:"arrow_yellow",path:"6015",TargetType:TargetType.Frontline, debuff:1,in:1,ap:300,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人"},
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max",flash:false,with:50, 6018:{uuid:6018,name:"潮汐", sp_name:"watert",path:"6026",TType:TType.Frontline,
debuff:3,in:1,ap:200,cd:5, TGroup:3,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.linear,EType:1,fname:"max",flash:false,with:90,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人"}, debuff:8,in:3,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"},
6016:{uuid:6016,name:"龙卷风", sp_name:"bwind",path:"6016",TargetType:TargetType.Frontline, 6019:{uuid:6019,name:"陨石术", sp_name:"fireys",path:"6029",TType:TType.Frontline,
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max",flash:false,with:50, TGroup:3,act:"max",CdType:2,AType:AType.fixedEnd,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
debuff:8,in:1,ap:200,cd:5, debuff:8,in:3,ap:500,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"},
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"},
6017:{uuid:6017,name:"生命之泉",sp_name:"heath",path:"6017",TargetType:TargetType.Frontline,
TargetGroup:2,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max_blue",flash:true,with:50,
debuff:0,in:5,ap:100,hp:3,cd:5, 6023:{uuid:6023,name:"冰墙", sp_name:"icet",path:"6023",TType:TType.Frontline,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"5秒持续为全体友方恢复施法者最大生命值15%的生命"}, TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
6018:{uuid:6018,name:"神圣护盾",sp_name:"shield",path:"6018",TargetType:TargetType.Frontline, debuff:8,in:1,ap:400,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人"},
TargetGroup:0,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max",flash:false,with:50,
debuff:0,in:0.8,ap:100,cd:5, 6025:{uuid:6025,name:"火焰漩涡",sp_name:"fireball",path:"6025",TType:TType.Frontline,
hited:0.3,shield:30,speed:720,sonsk:0,hero:0,info:"召唤圣盾保护自己,可以抵御3次攻击"}, TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
6019:{uuid:6019,name:"战争咆哮",sp_name:"apup",path:"6019",TargetType:TargetType.Frontline, debuff:8,in:3,ap:500,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤一个能量球射向前方敌人,对遇到的第一个敌人造成500%攻击的伤害,并击退"},
TargetGroup:2,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max_red",flash:true,with:50,
debuff:0,in:1,def:0,apup:20,ap:100,cd:5,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"为全体友方增加施法者攻击力20%的攻击"}, 6030:{uuid:6030,name:"闪电呼吸",sp_name:"dianquan",path:"6030",TType:TType.Frontline,
6021:{uuid:6021,name:"死亡射击",sp_name:"shoot2",path:"6021",TargetType:2, TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.fixedEnd,RunType:RunType.bezier,endType:0,fname:"max_blue",flash:true,with:50, debuff:0,in:3,ap:100,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤闪电攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"},
debuff:0,in:1,ap:600,cd:5,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"攻击最后方的敌人,造成600%攻击的伤害"}, 6031:{uuid:6031,name:"召唤仆从",sp_name:"zhaohuan",path:"6031",TType:TType.Frontline,
6022:{uuid:6022,name:"寒霜之矛",sp_name:"icez",path:"6022",TargetType:TargetType.Frontline, TGroup:0,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max_blue",flash:true,with:90,
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max",flash:false,with:50, debuff:0,in:2,ap:70,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:5211,info:"召唤一个与施法者等级相同的骷髅战士为我方而战"},
debuff:1,in:1,ap:300,cd:5,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人"},
6023:{uuid:6023,name:"冰墙", sp_name:"icet",path:"6023",TargetType:TargetType.Frontline, 6034:{uuid:6034,name:"风暴之矢",sp_name:"bingyu",path:"6034",TType:TType.Frontline,
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max",flash:false,with:50, TGroup:3,act:"max",CdType:2,AType:AType.parabolic,RType:RType.bezier,EType:1,fname:"max",flash:false,with:90,
debuff:8,in:1,ap:400,cd:5, debuff:4,in:1,ap:80,cd:5,hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"射出能量暴风箭攻击最前方范围敌人,每波造成80%攻击的伤害"}
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人"},
6024:{uuid:6024,name:"旋风斩", sp_name:"fwind",path:"6024",TargetType:TargetType.Frontline,
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.fixedStart,RunType:RunType.bezier,endType:1,fname:"max_red",flash:false,with:50,
debuff:8,in:2,ap:80,cd:5,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"旋转武器对周围的敌人造成80%攻击,2秒内旋转4次"},
6025:{uuid:6025,name:"火焰漩涡",sp_name:"fireball",path:"6025",TargetType:TargetType.Frontline,
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max",flash:false,with:50,
debuff:8,in:3,ap:500,cd:5,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤一个能量球射向前方敌人,对遇到的第一个敌人造成500%攻击的伤害,并击退"},
6026:{uuid:6026,name:"潮汐", sp_name:"watert",path:"6026",TargetType:TargetType.Frontline,
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max",flash:false,with:50,
debuff:8,in:3,ap:100,cd:5,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"},
6027:{uuid:6027,name:"国王霸气",sp_name:"kingba",path:"6027",TargetType:TargetType.Frontline,
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.fixedStart,RunType:RunType.bezier,endType:1,fname:"max",flash:false,with:50,
debuff:8,in:3,ap:400,cd:5,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"释放霸气攻击周围敌人,造成400%伤害,并100%几率击退敌人"},
6028:{uuid:6028,name:"自然庇佑",sp_name:"heath2",path:"6028",TargetType:TargetType.Frontline,
TargetGroup:2,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max_blue",flash:true,with:50,
debuff:0,in:2,ap:100,cd:5,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"为全体友方恢复施法者最大生命值10%的生命,和抵御1次攻击的护盾"},
6029:{uuid:6029,name:"陨石术", sp_name:"fireys",path:"6029",TargetType:TargetType.Frontline,
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.fixedEnd,RunType:RunType.bezier,endType:1,fname:"max",flash:false,with:50,
debuff:8,in:3,ap:500,cd:5,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"在最前方敌人位置,召唤陨石攻击敌人,造成500%攻击的伤害"},
6030:{uuid:6030,name:"闪电呼吸",sp_name:"dianquan",path:"6030",TargetType:TargetType.Frontline,
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max",flash:false,with:50,
debuff:0,in:3,ap:100,cd:5,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"召唤闪电攻击前方敌人,造成200%攻击的伤害,烈焰维持3秒"},
6031:{uuid:6031,name:"召唤仆从",sp_name:"zhaohuan",path:"6031",TargetType:TargetType.Frontline,
TargetGroup:0,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max_blue",flash:true,with:50,
debuff:0,in:2,ap:70,cd:5,
hited:0.3,shield:0,speed:720,sonsk:0,hero:5211,info:"召唤一个与施法者等级相同的骷髅战士为我方而战"},
6032:{uuid:6032,name:"自愈", sp_name:"heath_small",path:"6032",TargetType:TargetType.Frontline,
TargetGroup:0,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max",flash:false,with:50,
debuff:0,in:2,ap:100,cd:5,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"主动:自己回复自身5%最大生命值的生命"},
6033:{uuid:6033,name:"震地裂击",sp_name:"cuida",path:"6033",TargetType:TargetType.Frontline,
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max",flash:false,with:50,
debuff:4,in:1,ap:500,cd:5,
hited:0.3,shield:0,speed:720,sonsk:6035,hero:0,info:"捶爆前方目标造成300%攻击的伤害震慑敌人本局内全部敌方降低对方10%攻击力"},
6034:{uuid:6034,name:"风暴之矢",sp_name:"bingyu",path:"6034",TargetType:TargetType.Frontline,
TargetGroup:3,act:"max",CdType:2,AnimType:AnimType.parabolic,RunType:RunType.bezier,endType:1,fname:"max",flash:false,with:50,
debuff:4,in:1,ap:80,cd:5,
hited:0.3,shield:0,speed:720,sonsk:0,hero:0,info:"射出能量暴风箭攻击最前方范围敌人,每波造成80%攻击的伤害"}
}; };

View File

@@ -32,7 +32,7 @@ export enum HeroFac {
enemy = 1, enemy = 1,
} }
export const HeroList = [5001,5002,5003,5004,5005,5006,5007,5008,5009,5010,5011] export const HeroList = [5001,5002,5003,5004,5005,5006,5007,5008,5009,5010,5011]
export const MonList = [5201,5202,5203,5204,5205,5206,5210,5211,5212,5213,5214,5215,5216,5217,5218,5219,5220,5221,5222,5223,5224,5225,5226,5227] export const MonList = [5201,5202,5203,5204,5205,5206,5216,5217,5218,5219,5220,5221,5222,5223,5224,5225,5226,5227]
export const HeroSet = { export const HeroSet = {
Start_x:[-200,-260,-320], Start_x:[-200,-260,-320],
Start_y:[70,0,-70] Start_y:[70,0,-70]
@@ -56,21 +56,17 @@ export const HeroInfo = {
5006:{uuid:5006,name:"风暴精灵",path:"m4", lv:3,kind:2,type:2,hp:50,ap:15,dis:700,a_cd:1.5,speed:30,skills:[6001],info:"说明"}, 5006:{uuid:5006,name:"风暴精灵",path:"m4", lv:3,kind:2,type:2,hp:50,ap:15,dis:700,a_cd:1.5,speed:30,skills:[6001],info:"说明"},
5007:{uuid:5007,name:"生命圣者",path:"d1", lv:3,kind:2,type:2,hp:50,ap:10,dis:700,a_cd:1.5,speed:30,skills:[6001],info:"说明"}, 5007:{uuid:5007,name:"生命圣者",path:"d1", lv:3,kind:2,type:2,hp:50,ap:10,dis:700,a_cd:1.5,speed:30,skills:[6001],info:"说明"},
5008:{uuid:5008,name:"战争祭祀",path:"d2", lv:3,kind:2,type:2,hp:50,ap:10,dis:700,a_cd:1.5,speed:30,skills:[6001],info:"说明"}, 5008:{uuid:5008,name:"战争祭祀",path:"d2", lv:3,kind:2,type:2,hp:50,ap:10,dis:700,a_cd:1.5,speed:30,skills:[6001],info:"说明"},
5009:{uuid:5009,name:"暴风射手",path:"a5", lv:3,kind:2,type:1,hp:50,ap:15,dis:700,a_cd:1.2,speed:30,skills:[6006],info:"说明"}, 5009:{uuid:5009,name:"暴风射手",path:"a5", lv:3,kind:2,type:1,hp:50,ap:15,dis:700,a_cd:1.2,speed:30,skills:[6002],info:"说明"},
5010:{uuid:5010,name:"苍穹射手",path:"a3", lv:3,kind:1,type:1,hp:50,ap:15,dis:700,a_cd:1.2,speed:30,skills:[6006],info:"说明"}, 5010:{uuid:5010,name:"苍穹射手",path:"a3", lv:3,kind:1,type:1,hp:50,ap:15,dis:700,a_cd:1.2,speed:30,skills:[6002],info:"说明"},
5011:{uuid:5011,name:"幽灵射手",path:"a4", lv:3,kind:2,type:1,hp:50,ap:15,dis:700,a_cd:1.2,speed:30,skills:[6006],info:"说明"}, 5011:{uuid:5011,name:"幽灵射手",path:"a4", lv:3,kind:2,type:1,hp:50,ap:15,dis:700,a_cd:1.2,speed:30,skills:[6002],info:"说明"},
5201:{uuid:5201,name:"兽人战士",path:"mor1", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"}, 5201:{uuid:5201,name:"兽人战士",path:"mor1", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
5202:{uuid:5202,name:"兽人刺客",path:"mor2", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"}, 5202:{uuid:5202,name:"兽人刺客",path:"mor2", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
5203:{uuid:5203,name:"兽人护卫",path:"mor3", lv:1,kind:1,type:1,hp:200,ap:5,dis:400,a_cd:1.2,speed:30,skills:[6001],info:"说明"}, 5203:{uuid:5203,name:"兽人护卫",path:"mor3", lv:1,kind:1,type:1,hp:200,ap:5,dis:400,a_cd:1.2,speed:30,skills:[6001],info:"说明"},
5204:{uuid:5204,name:"石卫", path:"mgem1",lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"}, 5204:{uuid:5204,name:"石卫", path:"mgem1",lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
5205:{uuid:5205,name:"土卫", path:"mgem2",lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"}, 5205:{uuid:5205,name:"土卫", path:"mgem2",lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
5206:{uuid:5206,name:"树人", path:"mgem3",lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"}, 5206:{uuid:5206,name:"树人", path:"mgem3",lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
5210:{uuid:5210,name:"骷髅战士",path:"mkl4", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
5211:{uuid:5211,name:"骷髅战士",path:"mkl5", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
5212:{uuid:5212,name:"骷髅战士",path:"mkl6", lv:1,kind:1,type:0,hp:200,ap:5,dis:400,a_cd:1,speed:30,skills:[6001],info:"说明"},
5213:{uuid:5213,name:"骷髅射手",path:"mkla1",lv:1,kind:1,type:1,hp:200,ap:5,dis:400,a_cd:1.2,speed:30,skills:[6001],info:"说明"},
5214:{uuid:5214,name:"骷髅射手",path:"mkla2",lv:1,kind:1,type:1,hp:200,ap:5,dis:400,a_cd:1.2,speed:30,skills:[6001],info:"说明"},
5215:{uuid:5215,name:"骷髅射手",path:"mkla3",lv:1,kind:1,type:1,hp:200,ap:5,dis:400,a_cd:1.2,speed:30,skills:[6001],info:"说明"},
5216:{uuid:5216,name:"元素1", path:"my1", lv:2,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1.5,speed:30,skills:[6001],info:"说明"}, 5216:{uuid:5216,name:"元素1", path:"my1", lv:2,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1.5,speed:30,skills:[6001],info:"说明"},
5217:{uuid:5217,name:"元素2", path:"my2", lv:2,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1.5,speed:30,skills:[6001],info:"说明"}, 5217:{uuid:5217,name:"元素2", path:"my2", lv:2,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1.5,speed:30,skills:[6001],info:"说明"},
5218:{uuid:5218,name:"元素3", path:"my3", lv:2,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1.5,speed:30,skills:[6001],info:"说明"}, 5218:{uuid:5218,name:"元素3", path:"my3", lv:2,kind:1,type:2,hp:200,ap:5,dis:400,a_cd:1.5,speed:30,skills:[6001],info:"说明"},

View File

@@ -5,7 +5,7 @@ import { HeroSpine } from "./HeroSpine";
import { BoxSet, FacSet } from "../common/config/BoxSet"; import { BoxSet, FacSet } from "../common/config/BoxSet";
import { smc } from "../common/SingletonModuleComp"; import { smc } from "../common/SingletonModuleComp";
import { Timer } from "../../../../extensions/oops-plugin-framework/assets/core/common/timer/Timer"; import { Timer } from "../../../../extensions/oops-plugin-framework/assets/core/common/timer/Timer";
import { SkillSet, TargetGroup, TargetType } from "../common/config/SkillSet"; import { SkillSet, TGroup, TType } from "../common/config/SkillSet";
import { BuffComp } from "./BuffComp"; import { BuffComp } from "./BuffComp";
import { oops } from "db://oops-framework/core/Oops"; import { oops } from "db://oops-framework/core/Oops";
import { GameEvent } from "../common/config/GameEvent"; import { GameEvent } from "../common/config/GameEvent";

View File

@@ -1,6 +1,6 @@
import { _decorator, Component, Node, Vec3 } from 'cc'; import { _decorator, Component, Node, Vec3 } from 'cc';
import { HeroViewComp } from './HeroViewComp'; import { HeroViewComp } from './HeroViewComp';
import { SkillSet, TargetGroup, TargetType } from '../common/config/SkillSet'; import { SkillSet, TGroup, TType } from '../common/config/SkillSet';
import { Skill } from '../skills/Skill'; import { Skill } from '../skills/Skill';
import { ecs } from 'db://oops-framework/libs/ecs/ECS'; import { ecs } from 'db://oops-framework/libs/ecs/ECS';
import { oops } from 'db://oops-framework/core/Oops'; import { oops } from 'db://oops-framework/core/Oops';
@@ -100,25 +100,25 @@ export class SkillConComp extends CCComp {
return; return;
} }
let targets:any=null let targets:any=null
switch(config.TargetGroup){ switch(config.TGroup){
case TargetGroup.Enemy: //单个敌人 case TGroup.Enemy: //单个敌人
targets = this.filterFrontRow(); targets = this.filterFrontRow();
break break
case TargetGroup.Ally: //所有敌人 case TGroup.Ally: //所有敌人
targets = this.selectAllyTargets(); targets = this.selectAllyTargets();
break break
case TargetGroup.Self: //自身 case TGroup.Self: //自身
targets = this.HeroView.ent targets = this.HeroView.ent
break break
case TargetGroup.Team: //所有友方 case TGroup.Team: //所有友方
break break
case TargetGroup.All: //所有单位 case TGroup.All: //所有单位
break break
} }
this.HeroView.playSkillEffect(config.uuid)
const skillEntity = ecs.getEntity<Skill>(Skill); const skillEntity = ecs.getEntity<Skill>(Skill);
if (targets.length === 0) return; if (targets.length === 0) return;

View File

@@ -4,7 +4,7 @@ import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/modu
import { Monster } from "../hero/Mon"; import { Monster } from "../hero/Mon";
import { BoxSet } from "../common/config/BoxSet"; import { BoxSet } from "../common/config/BoxSet";
import { HeroSet, MonSet } from "../common/config/heroSet"; import { HeroSet, MonSet } from "../common/config/heroSet";
import { FightSet, Missions } from "../common/config/Mission"; import { FightSet, Missions, MonNum } from "../common/config/Mission";
import { RandomManager } from "db://oops-framework/core/common/random/RandomManager"; import { RandomManager } from "db://oops-framework/core/common/random/RandomManager";
import { Timer } from "db://oops-framework/core/common/timer/Timer"; import { Timer } from "db://oops-framework/core/common/timer/Timer";
import { smc } from "../common/SingletonModuleComp"; import { smc } from "../common/SingletonModuleComp";
@@ -17,11 +17,11 @@ const { ccclass, property } = _decorator;
@ccclass('MissionMonCompComp') @ccclass('MissionMonCompComp')
@ecs.register('MissionMonComp', false) @ecs.register('MissionMonComp', false)
export class MissionMonCompComp extends CCComp { export class MissionMonCompComp extends CCComp {
timer:Timer=new Timer(10) timer:Timer=new Timer(1)
// 添加刷怪队列 // 添加刷怪队列
private monsterQueue: Array<{uuid: number, position: number, isBoss: boolean}> = []; private monsterQueue: Array<{uuid: number, position: number, isBoss: boolean}> = [];
private isSpawning: boolean = false;// 是否正在生成怪物 private isSpawning: boolean = false;// 是否正在生成怪物
private spawnInterval: number = 1; // 每个怪物生成间隔时间 private spawnInterval: number = 5; // 每个怪物生成间隔时间
private spawnTimer: number = 0; // 生成计时器 private spawnTimer: number = 0; // 生成计时器
private is_fight:boolean = false; private is_fight:boolean = false;
onLoad(){ onLoad(){
@@ -64,11 +64,12 @@ export class MissionMonCompComp extends CCComp {
do_mon_wave(){ do_mon_wave(){
oops.message.dispatchEvent(GameEvent.WaveUpdate) oops.message.dispatchEvent(GameEvent.WaveUpdate)
console.log("[MissionMonComp]:怪物登场,当前波次 :",smc.vmdata.mission_data.current_wave) console.log("[MissionMonComp]:怪物登场,当前波次 :",smc.vmdata.mission_data.current_wave)
let positions = [0, 1, 2]; let mon_num = RandomManager.instance.getRandomInt(0, MonNum.length, 1);
positions.forEach(pos => { for(let i=0;i<2;i++){
let x = RandomManager.instance.getRandomInt(0, Missions[0].length, 1); let x = RandomManager.instance.getRandomInt(0, Missions[0].length, 1);
this.addToSpawnQueue(Missions[0][x], pos, false); this.addToSpawnQueue(Missions[0][x], 0, false);
}); }
} }

View File

@@ -1,13 +1,13 @@
// import { Node, UI, UITransform, Vec3 } from "cc"; // import { Node, UI, UITransform, Vec3 } from "cc";
// import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; // import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
// import { HeroViewComp } from "../hero/HeroViewComp"; // import { HeroViewComp } from "../hero/HeroViewComp";
// import { SkillSet, TargetGroup, TargetType } from "../common/config/SkillSet"; // import { SkillSet, TGroup, TType } from "../common/config/SkillSet";
// import { CdType } from "../common/config/SkillSet"; // import { CdType } from "../common/config/SkillSet";
// import { oops } from "db://oops-framework/core/Oops"; // import { oops } from "db://oops-framework/core/Oops";
// import { GameEvent } from "../common/config/GameEvent"; // import { GameEvent } from "../common/config/GameEvent";
// import { Skill } from "../skills/Skill"; // import { Skill } from "../skills/Skill";
// import { SkillCom } from "../skills/SkillCom"; // import { SkillCom } from "../skills/SkillCom";
// import { AnimType } from "../common/config/SkillSet"; // import { AType } from "../common/config/SkillSet";
// import { BoxSet } from "../common/config/BoxSet"; // import { BoxSet } from "../common/config/BoxSet";
@@ -43,17 +43,17 @@
// private castSkill(caster: ecs.Entity, skillId: number, config: typeof SkillSet[keyof typeof SkillSet]) { // private castSkill(caster: ecs.Entity, skillId: number, config: typeof SkillSet[keyof typeof SkillSet]) {
// const view = caster.get(HeroViewComp); // const view = caster.get(HeroViewComp);
// console.log(view.uuid+"=>"+view.hero_name+"施放技能:"+config.uuid); // console.log(view.uuid+"=>"+view.hero_name+"施放技能:"+config.uuid);
// if (config.TargetGroup === TargetGroup.Enemy) { // if (config.TGroup === TGroup.Enemy) {
// caster.get(HeroViewComp).playSkillEffect(config.uuid); // caster.get(HeroViewComp).playSkillEffect(config.uuid);
// this.doSkill(caster,config); // this.doSkill(caster,config);
// } // }
// if (config.TargetGroup === TargetGroup.Ally) { // if (config.TGroup === TGroup.Ally) {
// const targets = this.selectAllyTargets(caster, config); // const targets = this.selectAllyTargets(caster, config);
// if (targets.length === 0) return; // if (targets.length === 0) return;
// } // }
// if (config.TargetGroup === TargetGroup.Self) { // if (config.TGroup === TGroup.Self) {
// } // }
@@ -86,14 +86,14 @@
// const team = casterView.fac; // const team = casterView.fac;
// const candidates= ecs.query(ecs.allOf(HeroViewComp)).filter(e => e.get(HeroViewComp).fac === team); // const candidates= ecs.query(ecs.allOf(HeroViewComp)).filter(e => e.get(HeroViewComp).fac === team);
// // 第二阶段:位置/血量等精细筛选 // // 第二阶段:位置/血量等精细筛选
// switch(config.TargetType) { // switch(config.TType) {
// case TargetType.Melee: // case TType.Melee:
// return candidates.filter(e => e.get(HeroViewComp).type === 0); // return candidates.filter(e => e.get(HeroViewComp).type === 0);
// case TargetType.Ranged: // case TType.Ranged:
// return candidates.filter(e => e.get(HeroViewComp).type === 1); // return candidates.filter(e => e.get(HeroViewComp).type === 1);
// case TargetType.SupportClass: // case TType.SupportClass:
// return candidates.filter(e => e.get(HeroViewComp).type === 2); // return candidates.filter(e => e.get(HeroViewComp).type === 2);
// case TargetType.Random: // case TType.Random:
// return this.pickRandomTarget(candidates, config.count || 1); // return this.pickRandomTarget(candidates, config.count || 1);
// default: // default:
// return candidates; // return candidates;

View File

@@ -94,7 +94,7 @@ export class Skill extends ecs.Entity {
// 设置技能组件属性 // 设置技能组件属性
Object.assign(SComp, { Object.assign(SComp, {
s_uuid: uuid, s_uuid: uuid,
animType: config.AnimType, AType: config.AType,
speed: config.speed, speed: config.speed,
atk_count: 0, atk_count: 0,
startPos: startPos, startPos: startPos,

View File

@@ -4,7 +4,7 @@ import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/modu
import { smc } from "../common/SingletonModuleComp"; import { smc } from "../common/SingletonModuleComp";
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops"; import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
import { GameEvent } from "../common/config/GameEvent"; import { GameEvent } from "../common/config/GameEvent";
import { AnimType, endType, RunType, SkillSet } from "../common/config/SkillSet"; import { AType, EType, RType, SkillSet } from "../common/config/SkillSet";
import { BoxSet } from "../common/config/BoxSet"; import { BoxSet } from "../common/config/BoxSet";
import { HeroFac, HeroSet } from "../common/config/heroSet"; import { HeroFac, HeroSet } from "../common/config/heroSet";
import { HeroViewComp } from "../hero/HeroViewComp"; import { HeroViewComp } from "../hero/HeroViewComp";
@@ -28,7 +28,7 @@ export class SkillCom extends CCComp {
atk_count:number = 0; atk_count:number = 0;
is_destroy:boolean = false; is_destroy:boolean = false;
enemys:any = []; enemys:any = [];
animType: number = 0; // 运动类型 AType: number = 0; // 运动类型
startPos: Vec3 = v3(); // 起始位置 startPos: Vec3 = v3(); // 起始位置
targetPos: Vec3 = v3(); // 目标位置 targetPos: Vec3 = v3(); // 目标位置
duration: number = 0; // 技能持续时间 duration: number = 0; // 技能持续时间
@@ -60,17 +60,17 @@ export class SkillCom extends CCComp {
collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this); collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this);
} }
// console.log(this.group +"技能 collider ",collider); // console.log(this.group +"技能 collider ",collider);
switch(SkillSet[this.s_uuid].AnimType){ switch(SkillSet[this.s_uuid].AType){
case AnimType.parabolic: case AType.parabolic:
this.node.angle +=10 this.node.angle +=10
let bm=this.node.getComponent(BezierMove) let bm=this.node.getComponent(BezierMove)
// bm.speed=700 // bm.speed=700
if(this.group==BoxSet.MONSTER) bm.controlPointSide=-1 if(this.group==BoxSet.MONSTER) bm.controlPointSide=-1
if(SkillSet[this.s_uuid].RunType==RunType.linear) bm.controlPointOffset=0 if(SkillSet[this.s_uuid].RType==RType.linear) bm.controlPointOffset=0
bm.moveTo(this.targetPos) bm.moveTo(this.targetPos)
break; break;
case AnimType.linear: case AType.linear:
let tx =400 let tx =400
if(this.group==BoxSet.MONSTER){ if(this.group==BoxSet.MONSTER){
tx=-400 tx=-400
@@ -82,10 +82,10 @@ export class SkillCom extends CCComp {
} }
}).start() }).start()
break; break;
case AnimType.fixedStart: case AType.fixedStart:
break; break;
case AnimType.fixedEnd: case AType.fixedEnd:
this.node.setPosition(this.targetPos.x,this.targetPos.y,0) this.node.setPosition(this.targetPos.x,this.targetPos.y,0)
if(this.node.getComponent(Animation)){ if(this.node.getComponent(Animation)){
let anim = this.node.getComponent(Animation); let anim = this.node.getComponent(Animation);
@@ -120,6 +120,8 @@ export class SkillCom extends CCComp {
enemys.forEach(entity => { enemys.forEach(entity => {
let view=entity.get(HeroViewComp) let view=entity.get(HeroViewComp)
if(view){ if(view){
let dis =Math.abs(this.node.position.x-view.node.position.x)
if(dis > SkillSet[this.s_uuid].with) return
view.do_atked(remainingDamage) view.do_atked(remainingDamage)
} }
}); });
@@ -167,14 +169,15 @@ export class SkillCom extends CCComp {
} }
update(deltaTime: number) { update(deltaTime: number) {
let config=SkillSet[this.s_uuid]
if(smc.mission.pause) return; if(smc.mission.pause) return;
if (!this.node || !this.node.isValid) return; if (!this.node || !this.node.isValid) return;
this.hited_time+=deltaTime this.hited_time+=deltaTime
if(this.hited_time>SkillSet[this.s_uuid].hited&&this.animType==AnimType.fixedEnd&&this.hit_count==0){ if(this.hited_time>config.hited&&this.AType==AType.fixedEnd&&this.hit_count == 0){
this.hited_time=0 this.hited_time=0
this.onAnimationFinished() this.onAnimationFinished()
} }
// if(this.animType == AnimType.linear) this.startLinearMove(deltaTime); // if(this.AType == AType.linear) this.startLinearMove(deltaTime);
this.toDestroy(); this.toDestroy();
} }
toDestroy() { toDestroy() {
@@ -196,7 +199,7 @@ export class SkillCom extends CCComp {
/** 视图对象通过 ecs.Entity.remove(ModuleViewComp) 删除组件是触发组件处理自定义释放逻辑 */ /** 视图对象通过 ecs.Entity.remove(ModuleViewComp) 删除组件是触发组件处理自定义释放逻辑 */
reset() { reset() {
this.is_destroy = false; this.is_destroy = false;
this.animType = 0; this.AType = 0;
this.speed = 0; this.speed = 0;
this.startPos.set(); this.startPos.set();
this.targetPos.set(); this.targetPos.set();