dd
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import { log } from "cc"
|
import { log } from "cc"
|
||||||
import { QualitySet } from "./BoxSet"
|
import { QualitySet } from "./BoxSet"
|
||||||
|
import * as exp from "constants"
|
||||||
|
|
||||||
export enum TGroup {
|
export enum TGroup {
|
||||||
Self = 0, // 自身
|
Self = 0, // 自身
|
||||||
@@ -94,118 +95,89 @@ export enum EType {
|
|||||||
countEnd = 4,
|
countEnd = 4,
|
||||||
}
|
}
|
||||||
//debuff类型
|
//debuff类型
|
||||||
export enum DebuffAttr {
|
|
||||||
STUN = 1, //眩晕
|
export enum DBuff {
|
||||||
SLOW = 2, //减速
|
STUN = 1, //眩晕 - 对应Attrs.CON_RES (控制抗性), BType.RATIO
|
||||||
FROST = 3, //冰冻
|
SLOW = 2, //减速 - 对应Attrs.AS (攻击速度), BType.RATIO
|
||||||
BURN = 4, //易伤 默认次数是5 技能配置的devC是额外次数
|
FROST = 3, //冰冻 - 对应Attrs.ICE_RES (冰冻抗性), BType.RATIO
|
||||||
DECD = 5, //减cd
|
BURN = 4, //易伤 - 对应Attrs.DEF/MDEF (防御/魔防), BType.RATIO, 默认次数是5, 技能配置的devC是额外次数
|
||||||
DEHP = 6, //减hp
|
DEAS = 5, //减速 - 对应Attrs.AS (攻击速度), BType.RATIO, 直接+技能cd
|
||||||
DEATK = 7, //减atk
|
DEHP = 6, //减hp - 对应Attrs.HP_MAX (最大生命值), BType.RATIO
|
||||||
DECOUNT = 8, //减攻击次数
|
DEAP = 7, //减atk - 对应Attrs.AP (攻击力), BType.RATIO
|
||||||
BACK = 9, //击退
|
DEMGP = 8, //减魔法伤害 - 对应Attrs.MAP (魔法攻击力), BType.RATIO
|
||||||
CRITICAL = 10, //自身暴击率降低
|
BACK = 9, //击退概率 - 对应Attrs.KNOCKBACK (击退概率), BType.RATIO
|
||||||
DODGE = 11, //闪避
|
CRITICAL = 10, //-暴击率 - 对应Attrs.CRITICAL (暴击率), BType.RATIO
|
||||||
|
CRIT_DAMAGE = 11, //-暴击伤害 - 对应Attrs.CRITICAL_DMG (暴击伤害), BType.RATIO
|
||||||
|
DODGE = 12, //-闪避 - 对应Attrs.DODGE (闪避), BType.RATIO
|
||||||
|
DBUFFUP=13, //edbuff效果提升
|
||||||
|
BUFF_DOWN = 14,// buff效果减弱
|
||||||
}
|
}
|
||||||
|
|
||||||
//buff类型
|
|
||||||
export enum BuffAttr {
|
|
||||||
AP = 0, //攻击力 数值
|
|
||||||
ATK = 1, // 攻击力百分比
|
|
||||||
WFUNY = 2, // 风怒
|
|
||||||
ATK_CD = 3, // 攻击速度
|
|
||||||
HP = 4, // 生命值比例
|
|
||||||
DEF = 5, // 防御
|
|
||||||
SKILL_DMG = 6, // 技能效果
|
|
||||||
SKILL_CD = 7, // 技能冷却缩减
|
|
||||||
CARD_EFFECT = 8, // 卡牌效果
|
|
||||||
CRITICAL = 9, //暴击率
|
|
||||||
CRITICAL_DMG = 10, //暴击伤害
|
|
||||||
CRITICAL_NO = 11, //暴击免疫
|
|
||||||
DODGE = 12, //闪避
|
|
||||||
DODGE_NO = 13, //闪避免疫
|
|
||||||
DEBUFF_COUNT = 14, //debuff持续时间提升
|
|
||||||
DEBUFF_VALUE = 15, //debuff效果
|
|
||||||
DEBUFF_UP = 16, //debuff概率提升
|
|
||||||
DEBUFF_DOWN = 17, //被debuff概率降低
|
|
||||||
PUNCTURE = 18, //穿刺敌人伤害后方敌人
|
|
||||||
PUNCTURE_DMG = 19, //穿刺敌人伤害后方敌人伤害加成
|
|
||||||
FROST_RATIO = 20, //冰冻比率
|
|
||||||
REFLECT = 21, //反伤比率
|
|
||||||
KNOCKBACK = 22, //击退概率
|
|
||||||
BURN_COUNT = 23, //易伤额外次数
|
|
||||||
BURN_VALUE = 24,//易伤效果
|
|
||||||
STUN_TIME = 25, //击晕额外时间
|
|
||||||
STUN_RATIO = 26, //击晕概率
|
|
||||||
FROST_TIME = 27, //冰冻时间
|
|
||||||
HP_MAX = 28, //最大生命值数值
|
|
||||||
POWER_UP = 29, //能量增加
|
|
||||||
LIFESTEAL = 30, //吸血
|
|
||||||
DMG_RED = 31, //免伤
|
|
||||||
INVINCIBLE = 32, //无敌
|
|
||||||
DIS = 33, //距离
|
|
||||||
SPEED = 34, //速度
|
|
||||||
SHIELD = 35, //护盾
|
|
||||||
POWER_MAX = 36, //最大能量
|
|
||||||
MP = 37,
|
|
||||||
}
|
|
||||||
export const getBuffNum=()=>{
|
|
||||||
return {
|
|
||||||
[BuffAttr.AP]:0, //攻击力 数值
|
|
||||||
[BuffAttr.ATK]:0, // 攻击力
|
|
||||||
[BuffAttr.WFUNY]:0, // 风怒概率
|
|
||||||
[BuffAttr.ATK_CD]:0, // 攻击速度
|
|
||||||
[BuffAttr.HP]:0, // 生命值 比例
|
|
||||||
[BuffAttr.DEF]:0, // 免伤
|
|
||||||
[BuffAttr.SKILL_DMG]:0, // 技能效果
|
|
||||||
[BuffAttr.SKILL_CD]:0, // 技能冷却缩减
|
|
||||||
[BuffAttr.CARD_EFFECT]:0, // 卡牌效果
|
|
||||||
[BuffAttr.CRITICAL]:0, //暴击
|
|
||||||
[BuffAttr.CRITICAL_DMG]:0, //暴击伤害
|
|
||||||
[BuffAttr.CRITICAL_NO]:0, //暴击免疫
|
|
||||||
[BuffAttr.DODGE]:0, //闪避
|
|
||||||
[BuffAttr.DODGE_NO]:0, //闪避免疫
|
|
||||||
[BuffAttr.DEBUFF_COUNT]:0, //debuff次数
|
|
||||||
[BuffAttr.DEBUFF_VALUE]:0, //debuff效果
|
|
||||||
[BuffAttr.DEBUFF_UP]:0, //debuff概率提升
|
|
||||||
[BuffAttr.DEBUFF_DOWN]:0, //被debuff概率降低
|
|
||||||
[BuffAttr.PUNCTURE]:0, //穿刺敌人伤害后方敌人
|
|
||||||
[BuffAttr.PUNCTURE_DMG]:0, //穿刺敌人伤害后方敌人伤害加成
|
|
||||||
[BuffAttr.FROST_RATIO]:0, //冰冻比率
|
|
||||||
[BuffAttr.REFLECT]:0, //反伤比率
|
|
||||||
[BuffAttr.KNOCKBACK]:0, //击退概率
|
|
||||||
[BuffAttr.BURN_COUNT]:0, //易伤额外次数
|
|
||||||
[BuffAttr.BURN_VALUE]:0,
|
|
||||||
[BuffAttr.STUN_TIME]:0,
|
|
||||||
[BuffAttr.STUN_RATIO]:0,
|
|
||||||
[BuffAttr.FROST_TIME]:0,
|
|
||||||
[BuffAttr.HP_MAX]:0,//最大生命值数值
|
|
||||||
[BuffAttr.POWER_UP]:0,//能量增加
|
|
||||||
[BuffAttr.LIFESTEAL]:0,//吸血
|
|
||||||
[BuffAttr.DMG_RED]:0,//免伤
|
|
||||||
[BuffAttr.INVINCIBLE]:0,//无敌
|
|
||||||
[BuffAttr.DIS]:0,//距离
|
|
||||||
[BuffAttr.SPEED]:0,//速度
|
|
||||||
[BuffAttr.SHIELD]:0,//护盾
|
|
||||||
[BuffAttr.POWER_MAX]:0,//最大能量
|
|
||||||
[BuffAttr.MP]:0,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
export const geDebuffNum=()=>{
|
export const geDebuffNum=()=>{
|
||||||
return {
|
return {
|
||||||
STUN:0, //眩晕
|
[DBuff.STUN]:0, //眩晕
|
||||||
SLOW:0, //减速
|
[DBuff.SLOW]:0, //减速
|
||||||
FROST:0, //冰冻
|
[DBuff.FROST]:0, //冰冻
|
||||||
BURN:0, //易伤
|
[DBuff.BURN]:0, //易伤
|
||||||
DECD:0, //减cd
|
[DBuff.DEAS]:0, //减cd
|
||||||
DEHP:0, //减hp
|
[DBuff.DEHP]:0, //减生命最大值
|
||||||
DEATK:0, //减atk
|
[DBuff.DEAP]:0, //减攻击力
|
||||||
DECOUNT:0, //减攻击次数
|
[DBuff.DEMGP]:0, //减魔法攻击力
|
||||||
CRITICAL:0, //暴击
|
[DBuff.BACK]:0, //+击退比率
|
||||||
DODGE:0, //闪避
|
[DBuff.CRITICAL]:0,//-技能暴击几率
|
||||||
|
[DBuff.CRIT_DAMAGE]:0,
|
||||||
|
[DBuff.DODGE]:0,
|
||||||
|
[DBuff.DBUFFUP]:0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum Attrs {
|
||||||
|
HP_MAX = 0, //生命值
|
||||||
|
MP_MAX = 1, //魔法值
|
||||||
|
SHIELD_MAX=2, //护盾
|
||||||
|
AP = 3, //攻击力
|
||||||
|
MAP=4, //魔法攻击力
|
||||||
|
DEF = 5, //防御
|
||||||
|
MDEF = 6, //魔法防御
|
||||||
|
CRITICAL =7, //暴击率
|
||||||
|
CRITICAL_DMG = 8, //暴击伤害
|
||||||
|
DODGE = 9, //闪避
|
||||||
|
HIT = 10, //命中
|
||||||
|
WFUNY = 11, // 风怒
|
||||||
|
AS = 12, //攻击速度,直接减技能cd
|
||||||
|
REFLICT = 13, //反伤比率
|
||||||
|
LIFESTEAL = 14, //吸血比率
|
||||||
|
KNOCKBACK = 15, //攻击带击退概率
|
||||||
|
CON_RES = 16, //控制抗性
|
||||||
|
ICE_RES = 17, //冰冻抗性
|
||||||
|
FIRE_RES = 18, //火抗性
|
||||||
|
WIND_RES = 19, //风抗性
|
||||||
|
ICE_POWER = 20, //冰冻伤害效果提升
|
||||||
|
FIRE_POWER = 21,//火伤害效果提升
|
||||||
|
WIND_POWER = 22,//风伤害效果提升
|
||||||
|
SHIELD_UP = 23, //护盾效果提升
|
||||||
|
BUFF_UP = 24, //buff效果提升
|
||||||
|
DBUFF_UP=25, //debuff效果提升
|
||||||
|
DIS=26, //攻击距离
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const getAttrs=()=>{
|
||||||
|
// 遍历枚举的数字值(枚举会生成双向映射)
|
||||||
|
let reAttrs = {};
|
||||||
|
Object.keys(Attrs).forEach(key => {
|
||||||
|
if (!isNaN(Number(key))) {
|
||||||
|
reAttrs[Number(key)] = 0;
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
return reAttrs;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export enum BType {
|
||||||
|
VALUE=0, //数值型
|
||||||
|
RATIO=1 //百分比型
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -247,38 +219,40 @@ export const geDebuffNum=()=>{
|
|||||||
- cost: 消耗值
|
- cost: 消耗值
|
||||||
|
|
||||||
5. 效果配置:
|
5. 效果配置:
|
||||||
- buffs: BuffConfig[] - 增益效果数组
|
- buffs: BuffConf[] - 增益效果数组
|
||||||
- debuffs: DebuffConfig[] - 减益效果数组
|
- debuffs: DbuffConf[] - 减益效果数组
|
||||||
- info: 技能描述
|
- info: 技能描述
|
||||||
- hero?: 召唤物英雄ID (可选)
|
- hero?: 召唤物英雄ID (可选)
|
||||||
|
|
||||||
6. BuffConfig结构:
|
6. BuffConf结构:
|
||||||
- buff: BuffAttr - 增益类型
|
- buff: BuffAttr - 增益类型
|
||||||
- buV: number - 效果值
|
- buV: number - 效果值
|
||||||
- buC: number - 持续次数
|
- buC: number - 持续次数
|
||||||
- buR: number - 触发概率
|
- buR: number - 触发概率
|
||||||
|
|
||||||
7. DebuffConfig结构:
|
7. DbuffConf结构:
|
||||||
- debuff: DebuffAttr - 减益类型
|
- debuff: DebuffAttr - 减益类型
|
||||||
- dev: number - 效果值
|
- dev: number - 效果值
|
||||||
- deC: number - 持续时间
|
- deC: number - 持续时间
|
||||||
- deR: number - 触发概率
|
- deR: number - 触发概率
|
||||||
|
|
||||||
8. 使用示例:
|
8. 使用示例:
|
||||||
buffs: [createBuffConfig(BuffAttr.SHIELD, 2, 0, 100)]
|
buffs: [createBuffConf(BuffAttr.SHIELD, 2, 0, 100)]
|
||||||
debuffs: [createDebuffConfig(DebuffAttr.STUN, 0, 1, 50)]
|
debuffs: [createDbuffConf(DBuff.STUN, 0, 1, 50)]
|
||||||
*/
|
*/
|
||||||
export const HeroSkillList = [6001,6001,6001,6001,6001,6001]
|
export const HeroSkillList = [6001,6001,6001,6001,6001,6001]
|
||||||
|
|
||||||
// Debuff配置接口
|
// Debuff配置接口
|
||||||
export interface DebuffConfig {
|
export interface DbuffConf {
|
||||||
debuff: DebuffAttr; // debuff类型
|
debuff: DBuff; // debuff类型
|
||||||
|
BType:BType //buff是数值型还是百分比型
|
||||||
dev: number; // 效果值 (原deV)
|
dev: number; // 效果值 (原deV)
|
||||||
deC: number; // 持续时间
|
deC: number; // 持续时间
|
||||||
deR: number; // 触发概率 (原deR)
|
deR: number; // 触发概率 (原deR)
|
||||||
}
|
}
|
||||||
export interface BuffConfig {
|
export interface BuffConf {
|
||||||
buff:BuffAttr;
|
buff:Attrs;
|
||||||
|
BType:BType
|
||||||
buV:number;
|
buV:number;
|
||||||
buC:number;
|
buC:number;
|
||||||
buR:number;
|
buR:number;
|
||||||
@@ -287,7 +261,7 @@ export interface BuffConfig {
|
|||||||
export interface SkillConfig {
|
export interface SkillConfig {
|
||||||
uuid:number,name:string,sp_name:string,AtkedType:AtkedType,path:string,TGroup:TGroup,SType:SType,act:string,DTType:DTType,
|
uuid:number,name:string,sp_name:string,AtkedType:AtkedType,path:string,TGroup:TGroup,SType:SType,act:string,DTType:DTType,
|
||||||
ap:number,cd:number,in:number,t_num:number,hit_num:number,hit:number,hitcd:number,speed:number,cost:number,with:number,
|
ap:number,cd:number,in:number,t_num:number,hit_num:number,hit:number,hitcd:number,speed:number,cost:number,with:number,
|
||||||
buffs:BuffConfig[],debuffs:DebuffConfig[],info:string,hero?:number
|
buffs:BuffConf[],debuffs:DbuffConf[],info:string,hero?:number
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -316,7 +290,7 @@ export const SkillSet: Record<number, SkillConfig> = {
|
|||||||
6005: {
|
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.fire,path:"3039",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
|
||||||
ap:100,cd:5,in:1,t_num:1,hit_num:1,hit:2,hitcd:0.3,speed:720,cost:10,with:90,
|
ap:100,cd:5,in:1,t_num:1,hit_num:1,hit:2,hitcd:0.3,speed:720,cost:10,with:90,
|
||||||
buffs:[],debuffs:[{debuff:DebuffAttr.STUN,dev:0,deC:1,deR:50}],info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"
|
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"
|
||||||
},
|
},
|
||||||
6006: {
|
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.ice,path:"3034",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
|
||||||
@@ -326,23 +300,23 @@ export const SkillSet: Record<number, SkillConfig> = {
|
|||||||
6007: {
|
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.fire,path:"3039",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
|
||||||
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:2,hitcd:0.3,speed:720,cost:10,with:90,
|
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:2,hitcd:0.3,speed:720,cost:10,with:90,
|
||||||
buffs:[],debuffs:[{debuff:DebuffAttr.STUN,dev:0,deC:1,deR:50}],info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"
|
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成300%攻击的伤害,有一定几率施加灼烧"
|
||||||
},
|
},
|
||||||
// ========== 大招 ========== 6100-6199
|
// ========== 大招 ========== 6100-6199
|
||||||
6101: {
|
6101: {
|
||||||
uuid:6101,name:"护盾",sp_name:"shield",AtkedType:AtkedType.atked,path:"3045",TGroup:TGroup.Team,SType:SType.shield,act:"max",DTType:DTType.single,
|
uuid:6101,name:"护盾",sp_name:"shield",AtkedType:AtkedType.atked,path:"3045",TGroup:TGroup.Team,SType:SType.shield,act:"max",DTType:DTType.single,
|
||||||
ap:0,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:3,speed:720,cost:10,with:0,
|
ap:0,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:3,speed:720,cost:10,with:0,
|
||||||
buffs:[{buff:BuffAttr.SHIELD,buV:2,buC:0,buR:100}],debuffs:[],info:"为最前排队友召唤一个可以抵御2次攻击的圣盾(最高叠加到6次)"
|
buffs:[],debuffs:[],info:"为最前排队友召唤一个可以抵御2次攻击的圣盾(最高叠加到6次)"
|
||||||
},
|
},
|
||||||
6102: {
|
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.ice,path:"3060",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
|
||||||
ap:100,cd:1,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
ap:100,cd:1,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
||||||
buffs:[],debuffs:[{debuff:DebuffAttr.FROST,dev:1,deC:0,deR:100}],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人"
|
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率冰冻敌人"
|
||||||
},
|
},
|
||||||
6103: {
|
6103: {
|
||||||
uuid:6103,name:"治疗",sp_name:"heath_small",AtkedType:AtkedType.atked,path:"3056",TGroup:TGroup.Team,SType:SType.heal,act:"max",DTType:DTType.single,
|
uuid:6103,name:"治疗",sp_name:"heath_small",AtkedType:AtkedType.atked,path:"3056",TGroup:TGroup.Team,SType:SType.heal,act:"max",DTType:DTType.single,
|
||||||
ap:0,cd:5,in:0,t_num:1,hit_num:1,hit:0,hitcd:0,speed:0,cost:10,with:0,
|
ap:0,cd:5,in:0,t_num:1,hit_num:1,hit:0,hitcd:0,speed:0,cost:10,with:0,
|
||||||
buffs:[{buff:BuffAttr.HP,buV:20,buC:0,buR:100}],debuffs:[],info:"回复最前排队友10%最大生命值的生命"
|
buffs:[],debuffs:[],info:"回复最前排队友10%最大生命值的生命"
|
||||||
},
|
},
|
||||||
|
|
||||||
6104: {
|
6104: {
|
||||||
@@ -360,7 +334,7 @@ export const SkillSet: Record<number, SkillConfig> = {
|
|||||||
6106: {
|
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.wind,path:"3065",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
|
||||||
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:1,speed:360,cost:10,with:90,
|
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:1,speed:360,cost:10,with:90,
|
||||||
buffs:[],debuffs:[{debuff:DebuffAttr.BACK,dev:0,deC:0,deR:100}],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"
|
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
@@ -368,7 +342,7 @@ export const SkillSet: Record<number, SkillConfig> = {
|
|||||||
6107: {
|
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.fire,path:"3014",TGroup:TGroup.Enemy,SType:SType.damage,act:"atk",DTType:DTType.single,
|
||||||
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
||||||
buffs:[],debuffs:[{debuff:DebuffAttr.STUN,dev:0.5,deC:0,deR:50}],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人"
|
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,20%几率眩晕敌人"
|
||||||
},
|
},
|
||||||
|
|
||||||
6108: {
|
6108: {
|
||||||
@@ -380,13 +354,13 @@ export const SkillSet: Record<number, SkillConfig> = {
|
|||||||
6109: {
|
6109: {
|
||||||
uuid:6109,name:"冰刺",sp_name:"icez",AtkedType:AtkedType.atked,path:"3049",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,
|
uuid:6109,name:"冰刺",sp_name:"icez",AtkedType:AtkedType.atked,path:"3049",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,
|
||||||
ap:300,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
ap:300,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
||||||
buffs:[],debuffs:[{debuff:DebuffAttr.FROST,dev:0,deC:0,deR:100}],info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人"
|
buffs:[],debuffs:[],info:"在最前方敌人位置,召唤冰刺攻击敌人,造成200%攻击的伤害,20%几率冰冻敌人"
|
||||||
},
|
},
|
||||||
|
|
||||||
6110: {
|
6110: {
|
||||||
uuid:6110,name:"潮汐",sp_name:"watert",AtkedType:AtkedType.atked,path:"3070",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,
|
uuid:6110,name:"潮汐",sp_name:"watert",AtkedType:AtkedType.atked,path:"3070",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,
|
||||||
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
||||||
buffs:[],debuffs:[{debuff:DebuffAttr.BACK,dev:0,deC:0,deR:100}],info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"
|
buffs:[],debuffs:[],info:"在最前方敌人位置,召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"
|
||||||
},
|
},
|
||||||
|
|
||||||
6111: {
|
6111: {
|
||||||
@@ -398,7 +372,7 @@ export const SkillSet: Record<number, SkillConfig> = {
|
|||||||
6112: {
|
6112: {
|
||||||
uuid:6112,name:"冰墙",sp_name:"icet",AtkedType:AtkedType.atked,path:"3050",TGroup:TGroup.Enemy,SType:SType.damage,act:"max",DTType:DTType.range,
|
uuid:6112,name:"冰墙",sp_name:"icet",AtkedType:AtkedType.atked,path:"3050",TGroup:TGroup.Enemy,SType:SType.damage,act:"max",DTType:DTType.range,
|
||||||
ap:400,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
ap:400,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
||||||
buffs:[],debuffs:[{debuff:DebuffAttr.BACK,dev:0,deC:0,deR:100}],info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人"
|
buffs:[],debuffs:[],info:"在最前方敌人位置,召唤冰墙攻击敌人,造成200%攻击的伤害,50%几率击退敌人"
|
||||||
},
|
},
|
||||||
6113: {
|
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.fire,path:"3123",TGroup:TGroup.Ally,SType:SType.damage,act:"max",DTType:DTType.range,
|
||||||
@@ -420,33 +394,33 @@ export const SkillSet: Record<number, SkillConfig> = {
|
|||||||
6202: {
|
6202: {
|
||||||
uuid:6202,name:"龙卷风爆",sp_name:"bwind",AtkedType:AtkedType.atked,path:"3069",TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,
|
uuid:6202,name:"龙卷风爆",sp_name:"bwind",AtkedType:AtkedType.atked,path:"3069",TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,
|
||||||
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:1,speed:360,cost:10,with:90,
|
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:1,speed:360,cost:10,with:90,
|
||||||
buffs:[],debuffs:[{debuff:DebuffAttr.BACK,dev:0,deC:0,deR:50}],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"
|
buffs:[],debuffs:[],info:"召唤大火球攻击前方所有敌人,造成200%攻击的伤害,50%几率击退敌人"
|
||||||
},
|
},
|
||||||
6203: {
|
6203: {
|
||||||
uuid:6203,name:"大潮汐",sp_name:"watert",AtkedType:AtkedType.atked,path:"3070",TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,
|
uuid:6203,name:"大潮汐",sp_name:"watert",AtkedType:AtkedType.atked,path:"3070",TGroup:TGroup.Ally,SType:SType.damage,act:"atk",DTType:DTType.range,
|
||||||
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
||||||
buffs:[],debuffs:[{debuff:DebuffAttr.BACK,dev:0,deC:0,deR:50}],info:"召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"
|
buffs:[],debuffs:[],info:"召唤水柱攻击敌人,每秒造成100%攻击的伤害,50%几率击退敌人"
|
||||||
},
|
},
|
||||||
// ==========增强型技能,被动技能,========== 6300-6399
|
// ==========增强型技能,被动技能,========== 6300-6399
|
||||||
6301: {
|
6301: {
|
||||||
uuid:6301,name:"攻击生命强化Ⅰ",sp_name:"max_ap",AtkedType:AtkedType.atked,path:"3065",TGroup:TGroup.Ally,SType:SType.buff,act:"atk",DTType:DTType.single,
|
uuid:6301,name:"攻击生命强化Ⅰ",sp_name:"max_ap",AtkedType:AtkedType.atked,path:"3065",TGroup:TGroup.Ally,SType:SType.buff,act:"atk",DTType:DTType.single,
|
||||||
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
||||||
buffs:[{buff:BuffAttr.AP,buV:20,buC:0,buR:100},{buff:BuffAttr.HP,buV:20,buC:0,buR:100}],debuffs:[],info:"增加20%攻击力和生命值"
|
buffs:[],debuffs:[],info:"增加20%攻击力和生命值"
|
||||||
},
|
},
|
||||||
6302: {
|
6302: {
|
||||||
uuid:6302,name:"攻击生命强化Ⅱ",sp_name:"max_ap",AtkedType:AtkedType.atked,path:"3093",TGroup:TGroup.Ally,SType:SType.buff,act:"atk",DTType:DTType.single,
|
uuid:6302,name:"攻击生命强化Ⅱ",sp_name:"max_ap",AtkedType:AtkedType.atked,path:"3093",TGroup:TGroup.Ally,SType:SType.buff,act:"atk",DTType:DTType.single,
|
||||||
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
||||||
buffs:[{buff:BuffAttr.AP,buV:40,buC:0,buR:100},{buff:BuffAttr.HP,buV:40,buC:0,buR:100}],debuffs:[],info:"增加40%攻击力和生命值"
|
buffs:[],debuffs:[],info:"增加40%攻击力和生命值"
|
||||||
},
|
},
|
||||||
6303: {
|
6303: {
|
||||||
uuid:6303,name:"攻击生命强化Ⅲ",sp_name:"max_ap",AtkedType:AtkedType.atked,path:"3065",TGroup:TGroup.Ally,SType:SType.buff,act:"atk",DTType:DTType.single,
|
uuid:6303,name:"攻击生命强化Ⅲ",sp_name:"max_ap",AtkedType:AtkedType.atked,path:"3065",TGroup:TGroup.Ally,SType:SType.buff,act:"atk",DTType:DTType.single,
|
||||||
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
||||||
buffs:[{buff:BuffAttr.AP,buV:60,buC:0,buR:100},{buff:BuffAttr.HP,buV:60,buC:0,buR:100}],debuffs:[],info:"增加60%攻击力和生命值"
|
buffs:[],debuffs:[],info:"增加60%攻击力和生命值"
|
||||||
},
|
},
|
||||||
6304: {
|
6304: {
|
||||||
uuid:6304,name:"攻击生命强化Ⅳ",sp_name:"max_ap",AtkedType:AtkedType.atked,path:"3065",TGroup:TGroup.Ally,SType:SType.buff,act:"atk",DTType:DTType.single,
|
uuid:6304,name:"攻击生命强化Ⅳ",sp_name:"max_ap",AtkedType:AtkedType.atked,path:"3065",TGroup:TGroup.Ally,SType:SType.buff,act:"atk",DTType:DTType.single,
|
||||||
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
ap:100,cd:5,in:0,t_num:1,hit_num:1,hit:1,hitcd:0.3,speed:720,cost:10,with:90,
|
||||||
buffs:[{buff:BuffAttr.AP,buV:80,buC:0,buR:100},{buff:BuffAttr.HP,buV:80,buC:0,buR:100}],debuffs:[],info:"增加80%攻击力和生命值"
|
buffs:[],debuffs:[],info:"增加80%攻击力和生命值"
|
||||||
},
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
import { v3 } from "cc"
|
import { v3 } from "cc"
|
||||||
import { FacSet, QualitySet } from "./BoxSet"
|
import { FacSet, QualitySet } from "./BoxSet"
|
||||||
import { smc } from "../SingletonModuleComp"
|
import { smc } from "../SingletonModuleComp"
|
||||||
|
import { BuffConf, DbuffConf } from "./SkillSet"
|
||||||
|
import { debuff } from "../../skills/debuff"
|
||||||
/**
|
/**
|
||||||
* kind :1:烈焰 2:寒冰 3:自然 4:暗影 5:神圣
|
* kind :1:烈焰 2:寒冰 3:自然 4:暗影 5:神圣
|
||||||
**/
|
**/
|
||||||
@@ -95,108 +97,110 @@ export enum HeroUpSet {
|
|||||||
LVDEF=5,
|
LVDEF=5,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface heroInfo{
|
||||||
|
uuid:number, name:string, path:string,fac:FacSet,kind:QualitySet,type:HType, hp:number,mp:number,map:number, def:number, ap:number,dis:number, cd:number,speed:number,
|
||||||
|
lv:number,skills:number[], buff:BuffConf[], debuff:DbuffConf[], info:string
|
||||||
|
}
|
||||||
|
|
||||||
|
export const HeroInfo: Record<number, heroInfo> = {
|
||||||
|
|
||||||
export const HeroInfo = {
|
|
||||||
//主将
|
//主将
|
||||||
5001:{uuid:5001,name:"火焰骑士",path:"hk1", fac:FacSet.HERO, kind:1,
|
5001:{uuid:5001,name:"火焰骑士",path:"hk1", fac:FacSet.HERO, kind:1,
|
||||||
type:HType.warrior,hp:100,mp:100,def:5,ap:15,dis:100,cd:1,speed:150,skills:[6001,6001],
|
type:HType.warrior,lv:1,hp:100,mp:100,map:0,def:5,ap:15,dis:100,cd:1,speed:150,skills:[6001,6001],
|
||||||
buff:[],info:""},
|
buff:[],debuff:[],info:""},
|
||||||
|
|
||||||
5002:{uuid:5002,name:"刺客",path:"hc1", fac:FacSet.HERO, kind:1,
|
5002:{uuid:5002,name:"刺客",path:"hc1", fac:FacSet.HERO, kind:1,
|
||||||
type:HType.warrior,hp:100,mp:100,def:5,ap:15,dis:100,cd:1,speed:150,skills:[6001,6001],
|
type:HType.warrior,lv:1,hp:100,mp:100,map:0,def:5,ap:15,dis:100,cd:1,speed:150,skills:[6001,6001],
|
||||||
buff:[],info:""},
|
buff:[],debuff:[],info:""},
|
||||||
|
|
||||||
|
|
||||||
5005:{uuid:5005,name:"绿箭",path:"ha1", fac:FacSet.HERO, kind:2,
|
5005:{uuid:5005,name:"绿箭",path:"ha1", fac:FacSet.HERO, kind:2,
|
||||||
type:HType.remote,hp:100,mp:100,def:5,ap:15,dis:400,cd:1,speed:100,skills:[6001,6001],
|
type:HType.remote,lv:1,hp:100,mp:100,map:0,def:5,ap:15,dis:400,cd:1,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:""},
|
buff:[],debuff:[],info:""},
|
||||||
|
|
||||||
|
|
||||||
5007:{uuid:5007,name:"牧师",path:"hmh1", fac:FacSet.HERO, kind:2,
|
5007:{uuid:5007,name:"牧师",path:"hmh1", fac:FacSet.HERO, kind:2,
|
||||||
type:HType.mage,hp:100,mp:100,def:5,ap:15,dis:400,cd:1,speed:100,skills:[6001,6001],
|
type:HType.mage,lv:1,hp:100,mp:100,map:0,def:5,ap:15,dis:400,cd:1,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:""},
|
buff:[],debuff:[],info:""},
|
||||||
|
|
||||||
5008:{uuid:5008,name:"火女",path:"hmf1", fac:FacSet.HERO, kind:2,
|
5008:{uuid:5008,name:"火女",path:"hmf1", fac:FacSet.HERO, kind:2,
|
||||||
type:HType.mage,hp:100,mp:100,def:5,ap:15,dis:400,cd:1.5,speed:100,skills:[6001,6001],
|
type:HType.mage,lv:1,hp:100,mp:100,map:0,def:5,ap:15,dis:400,cd:1.5,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:""},
|
buff:[],debuff:[],info:""},
|
||||||
|
|
||||||
// 5009:{uuid:5009,name:"风暴精灵",path:"hk1", fac:FacSet.HERO, kind:2,
|
// 5009:{uuid:5009,name:"风暴精灵",path:"hk1", fac:FacSet.HERO, kind:2,
|
||||||
// type:HType.mage,hp:100,mp:100,def:5,ap:15,dis:400,cd:1.5,speed:100,skills:[6006,6006,6301,6302,6303],
|
// type:HType.mage,lv:1,hp:100,mp:100,map:0,def:5,ap:15,dis:400,cd:1.5,speed:100,skills:[6006,6006,6301,6302,6303],
|
||||||
// buff:[],info:""},
|
// buff:[],debuff:[],info:""},
|
||||||
|
|
||||||
// 5010:{uuid:5010,name:"战争祭祀",path:"hk1", fac:FacSet.HERO, kind:2,
|
// 5010:{uuid:5010,name:"战争祭祀",path:"hk1", fac:FacSet.HERO, kind:2,
|
||||||
// type:HType.mage,hp:100,mp:100,def:5,ap:15,dis:400,cd:1.5,speed:100,skills:[6007,6007,6301,6302,6303],
|
// type:HType.mage,lv:1,hp:100,mp:100,map:0,def:5,ap:15,dis:400,cd:1.5,speed:100,skills:[6007,6007,6301,6302,6303],
|
||||||
// buff:[],info:""},
|
// buff:[],debuff:[],info:""},
|
||||||
|
|
||||||
// 5011:{uuid:5011,name:"ha2",path:"ha2", fac:FacSet.HERO, kind:2,
|
// 5011:{uuid:5011,name:"ha2",path:"ha2", fac:FacSet.HERO, kind:2,
|
||||||
// type:HType.remote,hp:100,mp:100,def:5,ap:15,dis:400,cd:1,speed:100,skills:[6003,6003,6301,6302,6303],
|
// type:HType.remote,lv:1,hp:100,mp:100,map:0,def:5,ap:15,dis:400,cd:1,speed:100,skills:[6003,6003,6301,6302,6303],
|
||||||
// buff:[],info:""},
|
// buff:[],debuff:[],info:""},
|
||||||
|
|
||||||
|
|
||||||
//怪物
|
//怪物
|
||||||
5201:{uuid:5201,name:"兽人战士",path:"mo1", fac:FacSet.MON, kind:1,
|
5201:{uuid:5201,name:"兽人战士",path:"mo1", fac:FacSet.MON, kind:1,
|
||||||
type:HType.warrior,hp:25,mp:100,def:5,ap:5,dis:90,cd:2,speed:100,skills:[6001,6001],
|
type:HType.warrior,lv:1,hp:25,mp:100,map:0,def:5,ap:5,dis:90,cd:2,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:"普通怪物-战士型"},
|
buff:[],debuff:[],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5202:{uuid:5202,name:"兽人刺客",path:"mo1", fac:FacSet.MON, kind:1,
|
5202:{uuid:5202,name:"兽人刺客",path:"mo1", fac:FacSet.MON, kind:1,
|
||||||
type:HType.remote,hp:20,mp:100,def:5,ap:5,dis:350,cd:1,speed:100,skills:[6001,6001],
|
type:HType.remote,lv:1,hp:20,mp:100,map:0,def:5,ap:5,dis:350,cd:1,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:"普通怪物-战士型"},
|
buff:[],debuff:[],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5203:{uuid:5203,name:"兽人护卫",path:"mo1", fac:FacSet.MON, kind:1,
|
5203:{uuid:5203,name:"兽人护卫",path:"mo1", fac:FacSet.MON, kind:1,
|
||||||
type:HType.warrior,hp:25,mp:100,def:5,ap:5,dis:90,cd:2,speed:100,skills:[6001,6001],
|
type:HType.warrior,lv:1,hp:25,mp:100,map:0,def:5,ap:5,dis:90,cd:2,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:"普通怪物-战士型"},
|
buff:[],debuff:[],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5204:{uuid:5204,name:"石卫", path:"mo1", fac:FacSet.MON, kind:1,
|
5204:{uuid:5204,name:"石卫", path:"mo1", fac:FacSet.MON, kind:1,
|
||||||
type:HType.mage,hp:18,mp:100,def:5,ap:5,dis:90,cd:2.5,speed:100,skills:[6001,6001],
|
type:HType.mage,lv:1,hp:18,mp:100,map:0,def:5,ap:5,dis:90,cd:2.5,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:"法师怪物-高伤害脆弱"},
|
buff:[],debuff:[],info:"法师怪物-高伤害脆弱"},
|
||||||
|
|
||||||
5205:{uuid:5205,name:"土卫", path:"mo1", fac:FacSet.MON, kind:1,
|
5205:{uuid:5205,name:"土卫", path:"mo1", fac:FacSet.MON, kind:1,
|
||||||
type:HType.mage,hp:18,mp:100,def:5,ap:5,dis:90,cd:2.5,speed:100,skills:[6001,6001],
|
type:HType.mage,lv:1,hp:18,mp:100,map:0,def:5,ap:5,dis:90,cd:2.5,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:"法师怪物-高伤害脆弱"},
|
buff:[],debuff:[],info:"法师怪物-高伤害脆弱"},
|
||||||
|
|
||||||
5206:{uuid:5206,name:"树卫", path:"mo1", fac:FacSet.MON, kind:1,
|
5206:{uuid:5206,name:"树卫", path:"mo1", fac:FacSet.MON, kind:1,
|
||||||
type:HType.mage,hp:18,mp:100,def:5,ap:5,dis:90,cd:2.5,speed:100,skills:[6001,6001],
|
type:HType.mage,lv:1,hp:18,mp:100,map:0,def:5,ap:5,dis:90,cd:2.5,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:"法师怪物-高伤害脆弱"},
|
buff:[],debuff:[],info:"法师怪物-高伤害脆弱"},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
5219:{uuid:5219,name:"牛头战士",path:"mo1", fac:FacSet.MON, lv:2,kind:1,
|
5219:{uuid:5219,name:"牛头战士",path:"mo1", fac:FacSet.MON,kind:1,
|
||||||
type:HType.warrior,hp:25,mp:100,def:5,ap:5,dis:90,cd:2,speed:100,skills:[6001,6001],
|
type:HType.warrior,lv:1,hp:25,mp:100,map:0,def:5,ap:5,dis:90,cd:2,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:"普通怪物-战士型"},
|
buff:[],debuff:[],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5220:{uuid:5220,name:"牛头战士",path:"mo1", fac:FacSet.MON, kind:1,
|
5220:{uuid:5220,name:"牛头战士",path:"mo1", fac:FacSet.MON, kind:1,
|
||||||
type:HType.warrior,hp:25,mp:100,def:5,ap:5,dis:90,cd:2,speed:100,skills:[6001,6001],
|
type:HType.warrior,lv:1,hp:25,mp:100,map:0,def:5,ap:5,dis:90,cd:2,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:"普通怪物-战士型"},
|
buff:[],debuff:[],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5221:{uuid:5221,name:"牛头战士",path:"mo1", fac:FacSet.MON, kind:1,
|
5221:{uuid:5221,name:"牛头战士",path:"mo1", fac:FacSet.MON, kind:1,
|
||||||
type:HType.remote,hp:20,mp:100,def:5,ap:5,dis:350,cd:1.5,speed:100,skills:[6001,6001],
|
type:HType.remote,lv:1,hp:20,mp:100,map:0,def:5,ap:5,dis:350,cd:1.5,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:"普通怪物-战士型"},
|
buff:[],debuff:[],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5222:{uuid:5222,name:"独眼巨人",path:"mo1", fac:FacSet.MON, kind:1,
|
5222:{uuid:5222,name:"独眼巨人",path:"mo1", fac:FacSet.MON, kind:1,
|
||||||
type:HType.warrior,hp:25,mp:100,def:5,ap:5,dis:90,cd:2,speed:100,skills:[6001,6001],
|
type:HType.warrior,lv:1,hp:25,mp:100,map:0,def:5,ap:5,dis:90,cd:2,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:"普通怪物-战士型"},
|
buff:[],debuff:[],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5223:{uuid:5223,name:"独眼巨人",path:"mo1", fac:FacSet.MON, kind:1,
|
5223:{uuid:5223,name:"独眼巨人",path:"mo1", fac:FacSet.MON, kind:1,
|
||||||
type:HType.warrior,hp:25,mp:100,def:5,ap:5,dis:90,cd:2,speed:100,skills:[6001,6001],
|
type:HType.warrior,lv:1,hp:25,mp:100,map:0,def:5,ap:5,dis:90,cd:2,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:"普通怪物-战士型"},
|
buff:[],debuff:[],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5224:{uuid:5224,name:"独眼巨人",path:"mo1", fac:FacSet.MON, kind:1,
|
5224:{uuid:5224,name:"独眼巨人",path:"mo1", fac:FacSet.MON, kind:1,
|
||||||
type:HType.remote,hp:20,mp:100,def:5,ap:5,dis:350,cd:1.5,speed:100,skills:[6001,6001],
|
type:HType.remote,lv:1,hp:20,mp:100,map:0,def:5,ap:5,dis:350,cd:1.5,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:"普通怪物-战士型"},
|
buff:[],debuff:[],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5225:{uuid:5225,name:"精英独眼",path:"mo1", fac:FacSet.MON, kind:1,
|
5225:{uuid:5225,name:"精英独眼",path:"mo1", fac:FacSet.MON, kind:1,
|
||||||
type:HType.warrior,hp:45,mp:100,def:5,ap:12,dis:300,cd:2,speed:100,skills:[6001],
|
type:HType.warrior,lv:1,hp:45,mp:100,map:0,def:5,ap:12,dis:300,cd:2,speed:100,skills:[6001],
|
||||||
buff:[],info:"精英怪物-战士型"},
|
buff:[],debuff:[],info:"精英怪物-战士型"},
|
||||||
|
|
||||||
5226:{uuid:5226,name:"精英牛头",path:"mo1", fac:FacSet.MON, kind:1,
|
5226:{uuid:5226,name:"精英牛头",path:"mo1", fac:FacSet.MON, kind:1,
|
||||||
type:HType.warrior,hp:45,mp:100,def:5,ap:12,dis:300,cd:2,speed:100,skills:[6001,6001],
|
type:HType.warrior,lv:1,hp:45,mp:100,map:0,def:5,ap:12,dis:300,cd:2,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:"精英怪物-战士型"},
|
buff:[],debuff:[],info:"精英怪物-战士型"},
|
||||||
|
|
||||||
5227:{uuid:5227,name:"精英兽人",path:"mo1", fac:FacSet.MON, kind:1,
|
5227:{uuid:5227,name:"精英兽人",path:"mo1", fac:FacSet.MON, kind:1,
|
||||||
type:HType.warrior,hp:45,mp:100,def:5,ap:12,dis:300,cd:2,speed:100,skills:[6001,6001],
|
type:HType.warrior,lv:1,hp:45,mp:100,map:0,def:5,ap:12,dis:300,cd:2,speed:100,skills:[6001,6001],
|
||||||
buff:[],info:"精英怪物-战士型"},
|
buff:[],debuff:[],info:"精英怪物-战士型"},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { BoxSet, FacSet } from "../common/config/BoxSet";
|
|||||||
import { HeroInfo, HeroPos, HType } from "../common/config/heroSet";
|
import { HeroInfo, HeroPos, HType } from "../common/config/heroSet";
|
||||||
import { BattleMoveComp } from "../common/ecs/position/BattleMoveComp";
|
import { BattleMoveComp } from "../common/ecs/position/BattleMoveComp";
|
||||||
import { GameEvent } from "../common/config/GameEvent";
|
import { GameEvent } from "../common/config/GameEvent";
|
||||||
import { BuffAttr, getBuffNum, SkillSet, SType } from "../common/config/SkillSet";
|
import { Attrs, getAttrs } from "../common/config/SkillSet";
|
||||||
/** 角色实体 */
|
/** 角色实体 */
|
||||||
@ecs.register(`Hero`)
|
@ecs.register(`Hero`)
|
||||||
|
|
||||||
@@ -65,38 +65,23 @@ export class Hero extends ecs.Entity {
|
|||||||
let hero= HeroInfo[uuid] // 共用英雄数据
|
let hero= HeroInfo[uuid] // 共用英雄数据
|
||||||
hv.scale = 1;
|
hv.scale = 1;
|
||||||
hv.is_master=true;
|
hv.is_master=true;
|
||||||
hv.lv=HeroInfo[uuid].lv?HeroInfo[uuid].lv:1
|
hv.lv=hero.lv?hero.lv:1
|
||||||
hv.fac = FacSet.HERO;
|
hv.fac = FacSet.HERO;
|
||||||
hv.type = hero.type;
|
hv.type = hero.type;
|
||||||
hv.box_group = BoxSet.HERO;
|
hv.box_group = BoxSet.HERO;
|
||||||
hv.hero_uuid= uuid;
|
hv.hero_uuid= uuid;
|
||||||
hv.hero_name= hero.name;
|
hv.hero_name= hero.name;
|
||||||
hv.hp=hv.hp_max=hv.hp_base=HeroInfo[uuid].hp;
|
hv.base_ap=hero.ap
|
||||||
hv.mp=hv.mp_max=hv.mp_base=HeroInfo[uuid].mp;
|
hv.base_map=hero.mp
|
||||||
hv.Attrs=getBuffNum()
|
hv.base_def=hero.def
|
||||||
hv.Attrs[BuffAttr.SPEED]=hv.speed = hero.speed;
|
hv.hp=hv.base_hp=hero.hp
|
||||||
hv.Attrs[BuffAttr.DIS]=hv.dis=hero.dis;
|
hv.mp=hv.base_mp=hero.mp
|
||||||
hv.Attrs[BuffAttr.ATK_CD]=hv.cd=hero.cd
|
hv.Attrs=getAttrs()
|
||||||
hv.Attrs[BuffAttr.AP]=hv.ap=HeroInfo[uuid].ap;
|
hv.Attrs[Attrs.HP_MAX]=hv.base_hp
|
||||||
hv.Attrs[BuffAttr.DEF]=HeroInfo[uuid].def;
|
hv.Attrs[Attrs.MP_MAX]=hv.base_mp
|
||||||
hero.buff.forEach((buff:any)=>{
|
hv.Attrs[Attrs.DEF]=hv.base_def
|
||||||
hv.apply_buff(buff.type,buff.value)
|
hv.Attrs[Attrs.AP]=hv.base_ap
|
||||||
})
|
hv.Attrs[Attrs.MAP]=hv.base_map
|
||||||
for(let i=0;i<hero.skills.length;i++){
|
|
||||||
if(SkillSet[hero.skills[i]].SType==SType.buff){
|
|
||||||
let buffs=SkillSet[hero.skills[i]].buffs
|
|
||||||
buffs.forEach((buff:any)=>{
|
|
||||||
hv.apply_buff(buff.buff, buff.buV)
|
|
||||||
})
|
|
||||||
continue
|
|
||||||
}else{
|
|
||||||
hv.skills.push({
|
|
||||||
cd:0,
|
|
||||||
uuid:hero.skills[i],
|
|
||||||
cd_max:i==0?hero.cd:SkillSet[hero.skills[i]].cd
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return hv
|
return hv
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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 { BuffAttr, DebuffAttr, geDebuffNum, getBuffNum, SkillSet, TGroup, TType } from "../common/config/SkillSet";
|
import { Attrs, DBuff, geDebuffNum, getAttrs, SkillSet, TGroup, TType, BType, BuffConf, DbuffConf } 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";
|
||||||
@@ -41,72 +41,34 @@ export class HeroViewComp extends CCComp {
|
|||||||
is_kalami:boolean =false;
|
is_kalami:boolean =false;
|
||||||
|
|
||||||
speed: number = 100; /** 角色移动速度 */
|
speed: number = 100; /** 角色移动速度 */
|
||||||
speed_base: number = 100; /** 角色初始速度 */
|
mp: number = 100;
|
||||||
power:number=0;
|
|
||||||
power_max:number=100;
|
|
||||||
mp: number = 0;
|
|
||||||
mp_max: number = 100;
|
|
||||||
mp_base: number = 100;
|
|
||||||
hp: number = 100; /** 血量 */
|
hp: number = 100; /** 血量 */
|
||||||
hp_max: number = 100; /** 最大血量 */
|
|
||||||
hp_base:number=100; /** 基础最大血量 */
|
|
||||||
shield:number=0; //当前护甲值
|
shield:number=0; //当前护甲值
|
||||||
shield_max:number=0; //最大护甲值
|
/** 基础属性 有初始值的基础属性,后续Attrs 属性计算时用到*/
|
||||||
ap: number = 10; /**攻击力 */
|
base_ap: number = 0; //基础攻击力
|
||||||
ap_base:number=0;
|
base_map: number = 0;
|
||||||
// atk_speed: number = 1;
|
base_def: number = 5;
|
||||||
cd: number = 1.3; /**攻击速度 攻击间隔 */
|
base_hp: number = 100;
|
||||||
def: number = 0; //防御
|
base_mp: number = 100;
|
||||||
dmg_red:number=0//免伤
|
|
||||||
dis: number = 80;
|
|
||||||
skills:any[]=[]
|
|
||||||
puncture:number=0; //穿刺敌人伤害后方敌人个数
|
|
||||||
puncture_damage:number=0; //后伤害加成
|
|
||||||
burn: number = 0; //易伤 伤害加成
|
|
||||||
stun_time:number=0; //眩晕加成
|
|
||||||
stun_ratio:number=0; //攻击眩晕概率加成
|
|
||||||
stun_no:boolean=false; //眩晕免疫
|
|
||||||
dod: number = 0; //闪避率
|
|
||||||
dod_no:boolean=false;
|
|
||||||
crit:number=0; //暴击率
|
|
||||||
crit_no:boolean=false; //暴击免疫
|
|
||||||
crit_d:number=0; //暴击伤害
|
|
||||||
wfuny:number=0; //风怒概率
|
|
||||||
frost_ratio:number=0; //冰冻概率
|
|
||||||
frost_time:number=0; //冰冻时间
|
|
||||||
frost_no:boolean=false; //冰冻免疫
|
|
||||||
knockback:number=0; //击退概率
|
|
||||||
knockback_no:boolean=false; //击退免疫
|
|
||||||
reflect:number=0; //反射伤害比率
|
|
||||||
lifesteal:number=0; //吸血比率
|
|
||||||
skill_dmg:number=0
|
|
||||||
debuff_down:number=0
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Attrs:any=getBuffNum()
|
|
||||||
debuff_status:any=geDebuffNum()
|
|
||||||
|
|
||||||
|
Attrs:any=[]
|
||||||
|
//数值型debuff
|
||||||
|
V_DBUFF:any[]=[] //持久
|
||||||
|
V_DBUFFS:any[]=[] //临时 带时间
|
||||||
|
//百分比型debuff
|
||||||
|
R_DBUFF:any[]=[] //持久
|
||||||
|
R_DBUFFS:any[]=[] //临时 带时间
|
||||||
|
//数值型buff
|
||||||
|
V_BUFF:any[]=[] //持久
|
||||||
|
V_BUFFS:any[]=[] //临时 带时间
|
||||||
|
//百分比型buff
|
||||||
|
R_BUFF:any[]=[] //持久
|
||||||
|
R_BUFFS:any[]=[] //临时 带时间
|
||||||
|
|
||||||
atk_count: number = 0;
|
atk_count: number = 0;
|
||||||
atked_count: number = 0;
|
atked_count: number = 0;
|
||||||
|
|
||||||
stop_cd: number = 0; /*停止倒计时*/
|
|
||||||
speek_time:number = 0;
|
speek_time:number = 0;
|
||||||
BUFFS:Array<{value: number, duration: number,type:number}> = [] //buff
|
|
||||||
|
|
||||||
DEBUFF_BURNS: Array<{value: number, duration: number}> = [] //易伤
|
|
||||||
DEBUFF_DEATKS: Array<{value: number, duration: number}> = [] //减攻击
|
|
||||||
DEBUFF_DECDS: Array<{value: number, duration: number}> = [] //减攻击速度
|
|
||||||
|
|
||||||
DEBUFF_SLOW: number = 0; //减速
|
|
||||||
DEBUFF_FROST: number = 0; //冰冻
|
|
||||||
DEBUFF_STUN: number = 0; //眩晕
|
|
||||||
|
|
||||||
DEBUFF_VALUE:number=0; //debuff 增益值
|
|
||||||
DEBUFF_COUNT:number=0; //debuff 持续次数
|
|
||||||
DEBUFF_UP:number=0; //debuff 概率提升
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -118,9 +80,6 @@ export class HeroViewComp extends CCComp {
|
|||||||
}> = [];
|
}> = [];
|
||||||
private isProcessingDamage: boolean = false;
|
private isProcessingDamage: boolean = false;
|
||||||
private damageInterval: number = 0.01; // 伤害数字显示间隔
|
private damageInterval: number = 0.01; // 伤害数字显示间隔
|
||||||
|
|
||||||
private timer:Timer=new Timer(1);
|
|
||||||
|
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.as = this.getComponent(HeroSpine);
|
this.as = this.getComponent(HeroSpine);
|
||||||
//console.log("[HeroViewComp]:hero view comp ",this.FIGHTCON)
|
//console.log("[HeroViewComp]:hero view comp ",this.FIGHTCON)
|
||||||
@@ -145,7 +104,7 @@ export class HeroViewComp extends CCComp {
|
|||||||
}
|
}
|
||||||
/* 显示角色血量 */
|
/* 显示角色血量 */
|
||||||
this.node.getChildByName("top").getChildByName("hp").active = true;
|
this.node.getChildByName("top").getChildByName("hp").active = true;
|
||||||
this.BUFFCOMP.show_shield(this.shield,this.shield_max)
|
this.BUFFCOMP.show_shield(this.shield,this.Attrs[Attrs.SHIELD_MAX])
|
||||||
}
|
}
|
||||||
|
|
||||||
update(dt: number){
|
update(dt: number){
|
||||||
@@ -155,14 +114,8 @@ export class HeroViewComp extends CCComp {
|
|||||||
// return
|
// return
|
||||||
// }
|
// }
|
||||||
this.BaseUp(dt)
|
this.BaseUp(dt)
|
||||||
if(this.DEBUFF_FROST > 0){
|
|
||||||
this.DEBUFF_FROST -=dt;
|
|
||||||
}
|
|
||||||
if(this.DEBUFF_STUN > 0){
|
|
||||||
this.DEBUFF_STUN -=dt;
|
|
||||||
}
|
|
||||||
// 更新所有按时间减少的buff和debuff
|
// 更新所有按时间减少的buff和debuff
|
||||||
this.updateBuffsAndDebuffs(dt);
|
|
||||||
this.in_stop(dt);
|
this.in_stop(dt);
|
||||||
// 处理伤害队列
|
// 处理伤害队列
|
||||||
this.processDamageQueue();
|
this.processDamageQueue();
|
||||||
@@ -171,22 +124,15 @@ export class HeroViewComp extends CCComp {
|
|||||||
BaseUp(dt:number){
|
BaseUp(dt:number){
|
||||||
this.mp += HeroUpSet.MP*dt
|
this.mp += HeroUpSet.MP*dt
|
||||||
this.hp += HeroUpSet.HP*dt
|
this.hp += HeroUpSet.HP*dt
|
||||||
if(this.mp > this.mp_max) this.mp = this.mp_max
|
if(this.mp > this.Attrs[Attrs.MP_MAX]) this.mp = this.Attrs[Attrs.MP_MAX]
|
||||||
if(this.hp > this.hp_max) this.hp = this.hp_max
|
if(this.hp > this.Attrs[Attrs.HP_MAX]) this.hp = this.Attrs[Attrs.HP_MAX]
|
||||||
}
|
}
|
||||||
do_fight_end(){
|
do_fight_end(){
|
||||||
this.as.do_buff()
|
this.as.do_buff()
|
||||||
}
|
}
|
||||||
|
|
||||||
get isActive() {
|
get isActive() {
|
||||||
return this.ent.has(HeroViewComp) && this.node?.isValid;
|
return this.ent.has(HeroViewComp) && this.node?.isValid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
hide_info(){
|
|
||||||
|
|
||||||
}
|
|
||||||
//状态切换
|
//状态切换
|
||||||
status_change(type:string){
|
status_change(type:string){
|
||||||
this.status=type
|
this.status=type
|
||||||
@@ -199,17 +145,15 @@ export class HeroViewComp extends CCComp {
|
|||||||
// this.as.change_default("move")
|
// this.as.change_default("move")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
add_shield(shield:number){
|
add_shield(shield:number){
|
||||||
this.shield = this.shield_max +=shield
|
this.shield = this.Attrs[Attrs.SHIELD_MAX] +=shield
|
||||||
if(this.shield>0) this.BUFFCOMP.show_shield(this.shield,this.shield_max)
|
if(this.shield>0) this.BUFFCOMP.show_shield(this.shield,this.Attrs[Attrs.SHIELD_MAX])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
health(hp: number = 0,is_num:boolean=true) {
|
||||||
add_hp(hp: number = 0,is_num:boolean=true) {
|
|
||||||
this.BUFFCOMP.heathed();
|
this.BUFFCOMP.heathed();
|
||||||
let real_hp=0
|
let real_hp=0
|
||||||
let hp_max=this.hp_max
|
let hp_max=this.Attrs[Attrs.HP_MAX]
|
||||||
let lost_hp=hp_max-this.hp
|
let lost_hp=hp_max-this.hp
|
||||||
if(is_num){
|
if(is_num){
|
||||||
if(lost_hp > hp){
|
if(lost_hp > hp){
|
||||||
@@ -228,30 +172,20 @@ export class HeroViewComp extends CCComp {
|
|||||||
this.hp+=real_hp;
|
this.hp+=real_hp;
|
||||||
this.BUFFCOMP.tooltip(TooltipTypes.health,real_hp.toFixed(0));
|
this.BUFFCOMP.tooltip(TooltipTypes.health,real_hp.toFixed(0));
|
||||||
}
|
}
|
||||||
this.BUFFCOMP.hp_show(this.hp,this.hp_max)
|
this.BUFFCOMP.hp_show(this.hp,this.Attrs[Attrs.HP_MAX])
|
||||||
// this.update_vm
|
// this.update_vm
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** 静止时间 */
|
/** 静止时间 */
|
||||||
in_stop (dt: number) {
|
in_stop (dt: number) {
|
||||||
if(this.stop_cd > 0){
|
|
||||||
this.stop_cd -= dt;
|
|
||||||
if(this.stop_cd <= 0){
|
|
||||||
this.stop_cd = 0;
|
|
||||||
this.is_atking = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
count_atk_count(){ //主将攻击
|
count_atk_count(){ //主将攻击
|
||||||
if(this.fac==FacSet.MON) return
|
if(this.fac==FacSet.MON) return
|
||||||
this.atk_count+=1
|
this.atk_count+=1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
do_dead(){
|
do_dead(){
|
||||||
this.do_dead_trigger()
|
this.do_dead_trigger()
|
||||||
//console.log("[HeroViewComp]:角色死亡",this.hero_uuid)
|
//console.log("[HeroViewComp]:角色死亡",this.hero_uuid)
|
||||||
@@ -278,132 +212,7 @@ export class HeroViewComp extends CCComp {
|
|||||||
do_drop(){
|
do_drop(){
|
||||||
|
|
||||||
}
|
}
|
||||||
add_debuff(type:number,deV:number,deC:number,deR:number){
|
|
||||||
let n_deR=deR-this.Attrs[BuffAttr.DEBUFF_DOWN]
|
|
||||||
let r=RandomManager.instance.getRandomInt(0,100) // 随机数
|
|
||||||
//console.log("[HeroViewComp]:类型,值,次数,技能概率,实际概率,随机数",type,deV,deC,deR,n_deR,r)
|
|
||||||
if(r < n_deR) {
|
|
||||||
// this.BUFFCOMP.tooltip(TooltipTypes.uskill,"*抵抗*")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
switch(type){
|
|
||||||
case DebuffAttr.BURN:
|
|
||||||
this.DEBUFF_BURNS.push({value:deV,duration:deC+FightSet.BURN_COUNT})
|
|
||||||
break
|
|
||||||
case DebuffAttr.DECD:
|
|
||||||
this.DEBUFF_DECDS.push({value:deV,duration:deC})
|
|
||||||
break
|
|
||||||
case DebuffAttr.SLOW:
|
|
||||||
this.DEBUFF_SLOW+=deV
|
|
||||||
break
|
|
||||||
case DebuffAttr.FROST:
|
|
||||||
this.BUFFCOMP.in_iced(deV)
|
|
||||||
this.DEBUFF_FROST+=deV
|
|
||||||
break
|
|
||||||
case DebuffAttr.STUN:
|
|
||||||
if(this.DEBUFF_STUN>0) return
|
|
||||||
this.skills[0].cd=0 // 眩晕 cd归零
|
|
||||||
this.BUFFCOMP.in_yun(deV+FightSet.STUN_TIME) // 眩晕时间
|
|
||||||
this.DEBUFF_STUN+=deV+FightSet.STUN_TIME // 眩晕时间
|
|
||||||
// this.is_stop=true
|
|
||||||
break
|
|
||||||
case DebuffAttr.DEHP:
|
|
||||||
this.Attrs[BuffAttr.HP_MAX]-=deV
|
|
||||||
this.hp_max=Math.floor(this.hp_base*(100+this.Attrs[BuffAttr.HP_MAX]))
|
|
||||||
if(this.hp-this.hp_max>0) this.hp=this.hp_max
|
|
||||||
break
|
|
||||||
case DebuffAttr.DEATK: //99为具体数字 并且局内永久生效,其他为百分比
|
|
||||||
if(deC == 99){
|
|
||||||
this.ap-=deV
|
|
||||||
}else{
|
|
||||||
this.DEBUFF_DEATKS.push({value:deV,duration:deC})
|
|
||||||
}
|
|
||||||
break
|
|
||||||
case DebuffAttr.DECOUNT:
|
|
||||||
this.atk_count-=deV
|
|
||||||
if(this.atk_count<0) this.atk_count=1
|
|
||||||
break
|
|
||||||
case DebuffAttr.BACK:
|
|
||||||
if(this.fac==FacSet.MON) {
|
|
||||||
let tx=this.node.position.x+50
|
|
||||||
if(tx > 320) tx=320
|
|
||||||
tween(this.node).to(0.3, { position:v3(tx,this.node.position.y,0)}).start()
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
|
||||||
//console.log("[HeroViewComp]:debuffs",type,deV,deC,deR,this.DEBUFF_BURNS)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新所有按时间减少的buff和debuff
|
|
||||||
updateBuffsAndDebuffs(dt: number) {
|
|
||||||
// 更新BUFFS
|
|
||||||
for(let i = this.BUFFS.length - 1; i >= 0; i--) {
|
|
||||||
this.BUFFS[i].duration -= dt;
|
|
||||||
if(this.BUFFS[i].duration <= 0) {
|
|
||||||
this.apply_buff(this.BUFFS[i].type,-this.BUFFS[i].value)
|
|
||||||
this.BUFFS.splice(i, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新DEBUFF_BURNS
|
|
||||||
for(let i = this.DEBUFF_BURNS.length - 1; i >= 0; i--) {
|
|
||||||
this.DEBUFF_BURNS[i].duration -= dt;
|
|
||||||
if(this.DEBUFF_BURNS[i].duration <= 0) {
|
|
||||||
this.DEBUFF_BURNS.splice(i, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新DEBUFF_DEATKS
|
|
||||||
for(let i = this.DEBUFF_DEATKS.length - 1; i >= 0; i--) {
|
|
||||||
this.DEBUFF_DEATKS[i].duration -= dt;
|
|
||||||
if(this.DEBUFF_DEATKS[i].duration <= 0) {
|
|
||||||
this.DEBUFF_DEATKS.splice(i, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新DEBUFF_DECDS
|
|
||||||
for(let i = this.DEBUFF_DECDS.length - 1; i >= 0; i--) {
|
|
||||||
this.DEBUFF_DECDS[i].duration -= dt;
|
|
||||||
if(this.DEBUFF_DECDS[i].duration <= 0) {
|
|
||||||
this.DEBUFF_DECDS.splice(i, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
add_buff(buff:number,duration:number,type:number){
|
|
||||||
if(this.BUFFS.find(b=>b.type==type)) {
|
|
||||||
if(this.BUFFS.find(b=>b.type==type).value<buff) {
|
|
||||||
let dis_buff_value=buff-this.BUFFS.find(b=>b.type==type).value
|
|
||||||
this.BUFFS.find(b=>b.type==type).value=buff
|
|
||||||
this.BUFFS.find(b=>b.type==type).duration=duration
|
|
||||||
this.apply_buff(type,dis_buff_value)
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
this.BUFFS.push({value:buff,duration:duration,type:type})
|
|
||||||
this.apply_buff(type,buff)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 应用buff,有基础值的需要特殊处理,其他的直接加减
|
|
||||||
apply_buff(buff_type:number,buff_value:number){
|
|
||||||
console.log("[HeroViewComp]:apply_buff",buff_type,buff_value)
|
|
||||||
switch(buff_type){
|
|
||||||
case BuffAttr.ATK: //攻击百分比
|
|
||||||
this.Attrs[BuffAttr.AP]+=Math.floor(buff_value/100*this.ap)
|
|
||||||
break
|
|
||||||
case BuffAttr.ATK_CD: //攻击速度百分比
|
|
||||||
this.Attrs[BuffAttr.ATK_CD]+=buff_value/100*this.cd
|
|
||||||
break
|
|
||||||
case BuffAttr.HP_MAX: //血量百分比
|
|
||||||
this.Attrs[BuffAttr.HP_MAX]+=buff_value
|
|
||||||
this.hp_max=Math.floor(this.hp_base*(100+this.Attrs[BuffAttr.HP_MAX]))
|
|
||||||
if(this.hp-this.hp_max>0) this.hp=this.hp_max
|
|
||||||
break
|
|
||||||
default:
|
|
||||||
this.Attrs[buff_type]+=buff_value
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
do_atked(remainingDamage:number,
|
do_atked(remainingDamage:number,
|
||||||
crit:number=0,crit_d:number=0,
|
crit:number=0,crit_d:number=0,
|
||||||
burn_count:number=0,burn_value:number=0,
|
burn_count:number=0,burn_value:number=0,
|
||||||
@@ -412,12 +221,7 @@ export class HeroViewComp extends CCComp {
|
|||||||
atked_anm:string="atked"
|
atked_anm:string="atked"
|
||||||
){
|
){
|
||||||
this.do_atked_trigger()
|
this.do_atked_trigger()
|
||||||
if(burn_count>0){
|
|
||||||
this.add_debuff(DebuffAttr.BURN,burn_value,burn_count,100)
|
|
||||||
}
|
|
||||||
if(stun_time>0){
|
|
||||||
this.add_debuff(DebuffAttr.STUN,stun_time,1,stun_ratio)
|
|
||||||
}
|
|
||||||
|
|
||||||
if(this.check_dodge()) return
|
if(this.check_dodge()) return
|
||||||
let is_crit = this.check_crit(crit)
|
let is_crit = this.check_crit(crit)
|
||||||
@@ -469,10 +273,8 @@ export class HeroViewComp extends CCComp {
|
|||||||
}
|
}
|
||||||
//伤害计算 debuff 易伤
|
//伤害计算 debuff 易伤
|
||||||
count_damage(remainingDamage:number){
|
count_damage(remainingDamage:number){
|
||||||
let min =remainingDamage*0.2
|
|
||||||
let damage=(remainingDamage-this.dmg_red)*(100-this.def+this.burn)/100
|
return remainingDamage
|
||||||
////console.log("[HeroViewComp]:最终伤害,敌人伤害值,免伤,防御,易伤",damage,remainingDamage,buff_def,def,Burn)
|
|
||||||
return Math.floor(Math.max(damage,min))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
check_shield(damage:number){
|
check_shield(damage:number){
|
||||||
@@ -481,23 +283,23 @@ export class HeroViewComp extends CCComp {
|
|||||||
this.shield -= damage
|
this.shield -= damage
|
||||||
this.BUFFCOMP.tooltip(TooltipTypes.uskill,"*吸收*");
|
this.BUFFCOMP.tooltip(TooltipTypes.uskill,"*吸收*");
|
||||||
if(this.shield <= 0){
|
if(this.shield <= 0){
|
||||||
this.shield=this.shield_max=0
|
this.shield=this.Attrs[Attrs.SHIELD_MAX]=0
|
||||||
}
|
}
|
||||||
damage = 0
|
damage = 0
|
||||||
}
|
}
|
||||||
if(this.shield < damage){
|
if(this.shield < damage){
|
||||||
damage=damage-this.shield
|
damage=damage-this.shield
|
||||||
this.shield=0
|
this.shield=0
|
||||||
this.shield_max=0
|
this.Attrs[Attrs.SHIELD_MAX]=0
|
||||||
}
|
}
|
||||||
this.BUFFCOMP.show_shield(this.shield,this.shield_max)
|
this.BUFFCOMP.show_shield(this.shield,this.Attrs[Attrs.SHIELD_MAX])
|
||||||
return damage
|
return damage
|
||||||
}
|
}
|
||||||
|
|
||||||
check_dodge(){
|
check_dodge(){
|
||||||
if(this.dod > 0){
|
if(this.Attrs[Attrs.DODGE] > 0){
|
||||||
let random = Math.random()*100
|
let random = Math.random()*100
|
||||||
if(random < this.dod) {
|
if(random < this.Attrs[Attrs.DODGE]) {
|
||||||
this.BUFFCOMP.tooltip(TooltipTypes.uskill,"*闪避*");
|
this.BUFFCOMP.tooltip(TooltipTypes.uskill,"*闪避*");
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@@ -506,7 +308,6 @@ export class HeroViewComp extends CCComp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
check_crit(crit:number=0){
|
check_crit(crit:number=0){
|
||||||
if(this.crit_no) return false
|
|
||||||
if(crit > 0){
|
if(crit > 0){
|
||||||
let random = Math.random()*100
|
let random = Math.random()*100
|
||||||
if(random < crit) {
|
if(random < crit) {
|
||||||
@@ -609,7 +410,7 @@ export class HeroViewComp extends CCComp {
|
|||||||
/** 立即显示伤害效果 */
|
/** 立即显示伤害效果 */
|
||||||
private showDamageImmediate(damage: number, isCrit: boolean,anm:string="atked") {
|
private showDamageImmediate(damage: number, isCrit: boolean,anm:string="atked") {
|
||||||
// this.as.atked()
|
// this.as.atked()
|
||||||
this.BUFFCOMP.hp_show(this.hp,this.Attrs[BuffAttr.HP_MAX])
|
this.BUFFCOMP.hp_show(this.hp,this.Attrs[Attrs.HP_MAX])
|
||||||
this.BUFFCOMP.in_atked(anm,this.fac==FacSet.HERO?1:-1)
|
this.BUFFCOMP.in_atked(anm,this.fac==FacSet.HERO?1:-1)
|
||||||
this.atked_count++;
|
this.atked_count++;
|
||||||
if (isCrit) {
|
if (isCrit) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { _decorator, Component, Node, ProgressBar, v3, Vec3 } from 'cc';
|
import { _decorator, Component, Node, ProgressBar, v3, Vec3 } from 'cc';
|
||||||
import { HeroViewComp } from './HeroViewComp';
|
import { HeroViewComp } from './HeroViewComp';
|
||||||
import { BuffAttr,SKILL_CONST, SkillSet, SType, TGroup, } from '../common/config/SkillSet';
|
import { Attrs, SkillSet, SType, TGroup, } from '../common/config/SkillSet';
|
||||||
import { ecs } from 'db://oops-framework/libs/ecs/ECS';
|
import { ecs } from 'db://oops-framework/libs/ecs/ECS';
|
||||||
import { GameEvent } from '../common/config/GameEvent';
|
import { GameEvent } from '../common/config/GameEvent';
|
||||||
import { FacSet } from '../common/config/BoxSet';
|
import { FacSet } from '../common/config/BoxSet';
|
||||||
@@ -102,7 +102,7 @@ export class SkillConComp extends CCComp {
|
|||||||
|
|
||||||
check_wfuny(){
|
check_wfuny(){
|
||||||
let random = Math.random()*100
|
let random = Math.random()*100
|
||||||
if(random < this.HeroView.Attrs[BuffAttr.WFUNY]){
|
if(random < this.HeroView.Attrs[Attrs.WFUNY]){
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
@@ -160,11 +160,7 @@ export class SkillConComp extends CCComp {
|
|||||||
|
|
||||||
Object.values(this._timers).forEach(clearTimeout);
|
Object.values(this._timers).forEach(clearTimeout);
|
||||||
}
|
}
|
||||||
get_count(count:number,view:HeroViewComp){
|
|
||||||
let re=count+view.wfuny
|
|
||||||
if(re<1) re=1
|
|
||||||
return re
|
|
||||||
}
|
|
||||||
reset() {
|
reset() {
|
||||||
this.clear_timer();
|
this.clear_timer();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { _decorator, Animation, CCBoolean, Collider2D, Contact2DType, Tween, v3,
|
|||||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||||
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
|
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
|
||||||
import { BezierMove } from "../BezierMove/BezierMove";
|
import { BezierMove } from "../BezierMove/BezierMove";
|
||||||
import { AType, BuffAttr, DTType, EType, SkillSet, SType, TGroup } from "../common/config/SkillSet";
|
import { DTType, EType, SkillSet, SType } from "../common/config/SkillSet";
|
||||||
import { BoxSet, FacSet } from "../common/config/BoxSet";
|
import { BoxSet, FacSet } from "../common/config/BoxSet";
|
||||||
import { HeroViewComp } from "../hero/HeroViewComp";
|
import { HeroViewComp } from "../hero/HeroViewComp";
|
||||||
import { GameEvent } from "../common/config/GameEvent";
|
import { GameEvent } from "../common/config/GameEvent";
|
||||||
@@ -25,44 +25,29 @@ export class AtkConCom extends CCComp {
|
|||||||
targetPos: Vec3 = v3(); // 目标位置
|
targetPos: Vec3 = v3(); // 目标位置
|
||||||
group:number = 0; //阵营
|
group:number = 0; //阵营
|
||||||
fac:number=0; //阵营
|
fac:number=0; //阵营
|
||||||
// 战斗相关运行时数据
|
|
||||||
ap:number=0;
|
|
||||||
burn_count:number=0;
|
|
||||||
burn_value:number=0;
|
|
||||||
stun_time:number=0;
|
|
||||||
stun_ratio:number=0;
|
|
||||||
frost_ratio:number=0;
|
|
||||||
frost_time:number=0;
|
|
||||||
run_time:number = 0;
|
run_time:number = 0;
|
||||||
hited_time:number=0;
|
// 战斗相关运行时数据
|
||||||
hit_count:number=0;
|
Attrs:any=null
|
||||||
caster_crit:number=0;
|
|
||||||
caster_crit_d:number=0;
|
|
||||||
puncture:number=0;
|
|
||||||
puncture_damage:number=0;
|
|
||||||
debuff_up:number=0;
|
|
||||||
debuff_value:number=0;
|
|
||||||
debuff_count:number=0;
|
|
||||||
// 组件引用
|
// 组件引用
|
||||||
anim:Animation=null;
|
anim:Animation=null;
|
||||||
tweenInstance:Tween<any> = null;
|
tweenInstance:Tween<any> = null;
|
||||||
private moveDirection: Vec3 | null = null; // 添加一个属性来存储移动方向
|
private moveDirection: Vec3 | null = null; // 添加一个属性来存储移动方向
|
||||||
// 缓存的配置对象(避免重复查找)
|
// 缓存的配置对象(避免重复查找)
|
||||||
public skillConfig: any = null;
|
public Config: any = null;
|
||||||
private isInitialized: boolean = false;
|
private isInitialized: boolean = false;
|
||||||
private initializeSkillConfig() {
|
private initializeConfig() {
|
||||||
if (this.isInitialized) return;
|
if (this.isInitialized) return;
|
||||||
// 缓存技能配置,避免重复查找
|
// 缓存技能配置,避免重复查找
|
||||||
this.skillConfig = SkillSet[this.s_uuid];
|
this.Config = SkillSet[this.s_uuid];
|
||||||
if (!this.skillConfig) {
|
if (!this.Config) {
|
||||||
// console.error("[SkillCom] 技能配置不存在:", this.s_uuid);
|
// console.error("[SkillCom] 技能配置不存在:", this.s_uuid);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.isInitialized = true;
|
this.isInitialized = true;
|
||||||
// console.log("[SkillCom] 技能配置初始化完成:", this.s_uuid, this.skillConfig.name);
|
// console.log("[SkillCom] 技能配置初始化完成:", this.s_uuid, this.Config.name);
|
||||||
}
|
}
|
||||||
start() {
|
start() {
|
||||||
this.initializeSkillConfig();
|
this.initializeConfig();
|
||||||
// var entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象
|
// var entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象
|
||||||
// this.on(ModuleEvent.Cmd, this.onHandler, this);
|
// this.on(ModuleEvent.Cmd, this.onHandler, this);
|
||||||
|
|
||||||
@@ -122,10 +107,10 @@ export class AtkConCom extends CCComp {
|
|||||||
|
|
||||||
onAnimationFinished(){
|
onAnimationFinished(){
|
||||||
// console.log("[SkillCom]:onAnimationFinished",this.s_uuid)
|
// console.log("[SkillCom]:onAnimationFinished",this.s_uuid)
|
||||||
if (!this.skillConfig) return;
|
if (!this.Config) return;
|
||||||
|
|
||||||
if(this.skillConfig.EType==EType.timeEnd) return
|
if(this.Config.EType==EType.timeEnd) return
|
||||||
if(this.skillConfig.SType!=SType.damage){
|
if(this.Config.SType!=SType.damage){
|
||||||
|
|
||||||
}
|
}
|
||||||
this.is_destroy=true
|
this.is_destroy=true
|
||||||
@@ -136,9 +121,9 @@ export class AtkConCom extends CCComp {
|
|||||||
let target = oCol.getComponent(HeroViewComp)
|
let target = oCol.getComponent(HeroViewComp)
|
||||||
if(oCol.group!=this.group){
|
if(oCol.group!=this.group){
|
||||||
if(target == null) return;
|
if(target == null) return;
|
||||||
if (!this.skillConfig) return;
|
if (!this.Config) return;
|
||||||
// console.log("[SkillCom]:onBeginContact oCol||seCol",oCol.node.position,seCol.node.position)
|
// console.log("[SkillCom]:onBeginContact oCol||seCol",oCol.node.position,seCol.node.position)
|
||||||
this.single_damage(target,this.skillConfig.DTType==DTType.range?true:false)
|
this.single_damage(target,this.Config.DTType==DTType.range?true:false)
|
||||||
// this.ent.destroy()
|
// this.ent.destroy()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -147,36 +132,36 @@ export class AtkConCom extends CCComp {
|
|||||||
// //console.log("[SkillCom]:onBeginContact hit_count:",this.hit_count,SkillSet[this.s_uuid].hit)
|
// //console.log("[SkillCom]:onBeginContact hit_count:",this.hit_count,SkillSet[this.s_uuid].hit)
|
||||||
// if(this.hit_count > 0&&!is_range) this.ap=this.ap*(50+this.puncture_damage)/100 // 穿刺后 伤害减半,过滤范围伤害
|
// if(this.hit_count > 0&&!is_range) this.ap=this.ap*(50+this.puncture_damage)/100 // 穿刺后 伤害减半,过滤范围伤害
|
||||||
if(target == null) return;
|
if(target == null) return;
|
||||||
if (!this.skillConfig) return;
|
if (!this.Config) return;
|
||||||
let ap=this.ap
|
// let ap=this.ap
|
||||||
if(this.hit_count > 0 &&!is_range ){
|
// if(this.hit_count > 0 &&!is_range ){
|
||||||
ap=ap*(50+this.puncture_damage)/100
|
// ap=ap*(50+this.puncture_damage)/100
|
||||||
}
|
// }
|
||||||
target.do_atked(ap,this.caster_crit,this.caster_crit_d,
|
// target.do_atked(ap,this.caster_crit,this.caster_crit_d,
|
||||||
this.burn_count,this.burn_value,
|
// this.burn_count,this.burn_value,
|
||||||
this.stun_time,this.stun_ratio,
|
// this.stun_time,this.stun_ratio,
|
||||||
this.frost_time,this.frost_ratio,
|
// this.frost_time,this.frost_ratio,
|
||||||
this.skillConfig.AtkedType
|
// this.Config.AtkedType
|
||||||
) // ap 及暴击 属性已经在skill.ts 处理
|
// ) // ap 及暴击 属性已经在skill.ts 处理
|
||||||
// console.log("[SkillCom]:single_damage t:tp:rtp",this.node.position,this.targetPos,target.node.position)
|
// // console.log("[SkillCom]:single_damage t:tp:rtp",this.node.position,this.targetPos,target.node.position)
|
||||||
if(this.skillConfig.debuff>0){
|
// if(this.Config.debuff>0){
|
||||||
let debuff=this.skillConfig
|
// let debuff=this.Config
|
||||||
let dev=debuff.deV*(100+this.debuff_value)/100
|
// let dev=debuff.deV*(100+this.debuff_value)/100
|
||||||
let deR=debuff.deR+this.debuff_up
|
// let deR=debuff.deR+this.debuff_up
|
||||||
dev=Math.round(dev*100)/100
|
// dev=Math.round(dev*100)/100
|
||||||
let deC=debuff.deC+this.debuff_count //dec只作为次数叠加
|
// let deC=debuff.deC+this.debuff_count //dec只作为次数叠加
|
||||||
// //console.log("[SkillCom]:debuff",this.skillConfig.name,debuff.debuff,deUP.deV,deUP.deC)
|
// // //console.log("[SkillCom]:debuff",this.Config.name,debuff.debuff,deUP.deV,deUP.deC)
|
||||||
target.add_debuff(debuff.debuff,dev,deC,deR)
|
// target.add_debuff(debuff.debuff,dev,deC,deR)
|
||||||
}
|
// }
|
||||||
this.hit_count++
|
// this.hit_count++
|
||||||
// console.log("[SkillCom]:碰撞次数:技能次数:穿刺次数",this.hit_count,this.skillConfig.hit,this.puncture)
|
// // console.log("[SkillCom]:碰撞次数:技能次数:穿刺次数",this.hit_count,this.Config.hit,this.puncture)
|
||||||
if(this.hit_count>=(this.skillConfig.hit+this.puncture)&&(this.skillConfig.DTType!=DTType.range)&&(this.skillConfig.EType!=EType.animationEnd)&&(this.skillConfig.EType!=EType.timeEnd)) this.is_destroy=true // 技能命中次数
|
// if(this.hit_count>=(this.Config.hit+this.puncture)&&(this.Config.DTType!=DTType.range)&&(this.Config.EType!=EType.animationEnd)&&(this.Config.EType!=EType.timeEnd)) this.is_destroy=true // 技能命中次数
|
||||||
}
|
}
|
||||||
update(deltaTime: number) {
|
update(deltaTime: number) {
|
||||||
// 确保配置已初始化(处理 update 可能先于 start 执行的情况)
|
// 确保配置已初始化(处理 update 可能先于 start 执行的情况)
|
||||||
if (!this.isInitialized) {
|
if (!this.isInitialized) {
|
||||||
this.initializeSkillConfig();
|
this.initializeConfig();
|
||||||
if (!this.skillConfig) return;
|
if (!this.Config) return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(smc.mission.pause) {
|
if(smc.mission.pause) {
|
||||||
@@ -186,9 +171,9 @@ export class AtkConCom extends CCComp {
|
|||||||
if(this.anim) this.anim.resume()
|
if(this.anim) this.anim.resume()
|
||||||
if (!this.node || !this.node.isValid) return;
|
if (!this.node || !this.node.isValid) return;
|
||||||
|
|
||||||
if(this.skillConfig.EType==EType.timeEnd){
|
if(this.Config.EType==EType.timeEnd){
|
||||||
this.run_time+=deltaTime
|
this.run_time+=deltaTime
|
||||||
if(this.run_time>this.skillConfig.in){
|
if(this.run_time>this.Config.in){
|
||||||
// //console.log("[SkillCom]: timeEnd destroy",this.s_uuid,this.run_time)
|
// //console.log("[SkillCom]: timeEnd destroy",this.s_uuid,this.run_time)
|
||||||
this.is_destroy=true
|
this.is_destroy=true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { instantiate, Node, Prefab, v3, Vec3 } from "cc";
|
import { instantiate, Node, Prefab, v3, 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 { BuffAttr, SkillSet } from "../common/config/SkillSet";
|
import { Attrs, SkillSet } from "../common/config/SkillSet";
|
||||||
import { oops } from "db://oops-framework/core/Oops";
|
import { oops } from "db://oops-framework/core/Oops";
|
||||||
import { smc } from "../common/SingletonModuleComp";
|
import { smc } from "../common/SingletonModuleComp";
|
||||||
import { FacSet } from "../common/config/BoxSet";
|
import { FacSet } from "../common/config/BoxSet";
|
||||||
@@ -60,21 +60,9 @@ load(startPos: Vec3, parent: Node, uuid: number, targetPos: any[], caster:Hero
|
|||||||
group: caster.box_group,
|
group: caster.box_group,
|
||||||
fac: caster.fac,
|
fac: caster.fac,
|
||||||
// 技能数值
|
// 技能数值
|
||||||
ap: caster.Attrs[BuffAttr.AP],
|
ap: caster.Attrs[Attrs.AP],
|
||||||
caster: caster,
|
caster: caster,
|
||||||
caster_crit: caster.Attrs[BuffAttr.CRITICAL],
|
|
||||||
caster_crit_d: caster.Attrs[BuffAttr.CRITICAL_DMG],
|
|
||||||
puncture: caster.Attrs[BuffAttr.PUNCTURE],
|
|
||||||
puncture_damage: caster.Attrs[BuffAttr.PUNCTURE_DMG],
|
|
||||||
burn_count: caster.Attrs[BuffAttr.BURN_COUNT],
|
|
||||||
burn_value: caster.Attrs[BuffAttr.BURN_VALUE],
|
|
||||||
stun_time: caster.Attrs[BuffAttr.STUN_TIME],
|
|
||||||
stun_ratio: caster.Attrs[BuffAttr.STUN_RATIO],
|
|
||||||
frost_time: caster.Attrs[BuffAttr.FROST_TIME],
|
|
||||||
frost_ratio: caster.Attrs[BuffAttr.FROST_RATIO],
|
|
||||||
debuff_up: caster.Attrs[BuffAttr.DEBUFF_UP],
|
|
||||||
debuff_value: caster.Attrs[BuffAttr.DEBUFF_VALUE],
|
|
||||||
debuff_count: caster.Attrs[BuffAttr.DEBUFF_COUNT],
|
|
||||||
});
|
});
|
||||||
this.add(SComp);
|
this.add(SComp);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { _decorator, CCBoolean, CCInteger, instantiate, Node, Prefab, v3, Vec3 }
|
|||||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||||
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
|
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
|
||||||
import { HeroViewComp } from "../hero/HeroViewComp";
|
import { HeroViewComp } from "../hero/HeroViewComp";
|
||||||
import { BuffAttr, RType, SkillSet } from "../common/config/SkillSet";
|
import { getAttrs, RType, SkillSet } from "../common/config/SkillSet";
|
||||||
import { AtkConCom } from "./AtkConCom";
|
import { AtkConCom } from "./AtkConCom";
|
||||||
import { BoxSet } from "../common/config/BoxSet";
|
import { BoxSet } from "../common/config/BoxSet";
|
||||||
|
|
||||||
@@ -43,23 +43,7 @@ export class SkillViewCom extends CCComp {
|
|||||||
group:0
|
group:0
|
||||||
fac: 0
|
fac: 0
|
||||||
// 战斗相关运行时数据
|
// 战斗相关运行时数据
|
||||||
ap:number=0;
|
Attrs:any=null
|
||||||
burn_count:number=0;
|
|
||||||
burn_value:number=0;
|
|
||||||
stun_time:number=0;
|
|
||||||
stun_ratio:number=0;
|
|
||||||
frost_ratio:number=0;
|
|
||||||
frost_time:number=0;
|
|
||||||
run_time:number=0;
|
|
||||||
hited_time:number=0;
|
|
||||||
hit_count:number=0;
|
|
||||||
caster_crit:number=0;
|
|
||||||
caster_crit_d:number=0;
|
|
||||||
puncture:number=0;
|
|
||||||
puncture_damage:number=0;
|
|
||||||
debuff_up:number=0;
|
|
||||||
debuff_value:number=0;
|
|
||||||
debuff_count:number=0;
|
|
||||||
targetPos:any[]=null
|
targetPos:any[]=null
|
||||||
start() {
|
start() {
|
||||||
// var entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象
|
// var entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象
|
||||||
@@ -126,20 +110,8 @@ export class SkillViewCom extends CCComp {
|
|||||||
group: this.group,
|
group: this.group,
|
||||||
fac: this.fac,
|
fac: this.fac,
|
||||||
// 技能数值
|
// 技能数值
|
||||||
ap: this.ap,
|
Attrs:this.Attrs
|
||||||
caster_crit: this.caster_crit,
|
|
||||||
caster_crit_d: this.caster_crit_d,
|
|
||||||
puncture: this.puncture,
|
|
||||||
puncture_damage: this.puncture_damage,
|
|
||||||
burn_count: this.burn_count,
|
|
||||||
burn_value: this.burn_value,
|
|
||||||
stun_time: this.stun_time,
|
|
||||||
stun_ratio: this.stun_ratio,
|
|
||||||
frost_time: this.frost_time,
|
|
||||||
frost_ratio: this.frost_ratio,
|
|
||||||
debuff_up: this.debuff_up,
|
|
||||||
debuff_value: this.debuff_value,
|
|
||||||
debuff_count: this.debuff_count,
|
|
||||||
});
|
});
|
||||||
switch(this.runType){
|
switch(this.runType){
|
||||||
case RType.linear:
|
case RType.linear:
|
||||||
|
|||||||
Reference in New Issue
Block a user