diff --git a/assets/resources/gui/element/list.prefab b/assets/resources/gui/element/list.prefab index 52a88ab9..3f7964fd 100644 --- a/assets/resources/gui/element/list.prefab +++ b/assets/resources/gui/element/list.prefab @@ -351,18 +351,18 @@ "_dstBlendFactor": 4, "_color": { "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 88 + "r": 255, + "g": 255, + "b": 255, + "a": 255 }, "_spriteFrame": { - "__uuid__": "cb93c900-b440-4571-91d1-7da1636e3d73@1be8d", + "__uuid__": "cb93c900-b440-4571-91d1-7da1636e3d73@b9538", "__expectedType__": "cc.SpriteFrame" }, "_type": 0, "_fillType": 0, - "_sizeMode": 1, + "_sizeMode": 0, "_fillCenter": { "__type__": "cc.Vec2", "x": 0, @@ -372,7 +372,10 @@ "_fillRange": 0, "_isTrimmedMode": true, "_useGrayscale": false, - "_atlas": null, + "_atlas": { + "__uuid__": "cb93c900-b440-4571-91d1-7da1636e3d73", + "__expectedType__": "cc.SpriteAtlas" + }, "_id": "" }, { diff --git a/assets/script/game/common/config/HeroSkillDesc.ts b/assets/script/game/common/config/HeroSkillDesc.ts index 828db71a..bdeb5b6f 100644 --- a/assets/script/game/common/config/HeroSkillDesc.ts +++ b/assets/script/game/common/config/HeroSkillDesc.ts @@ -72,6 +72,7 @@ function buildEffectDesc(skill: ReturnType): string { if (skill.crt) parts.push(`暴击+${skill.crt}%`); // 附加冰冻概率 if (skill.frz) parts.push(`冰冻+${skill.frz}%`); + if (skill.stun) parts.push(`击晕+${skill.stun}%`); // 附加击退概率 if (skill.bck) parts.push(`击退+${skill.bck}%`); } @@ -109,7 +110,7 @@ export function buildSkillDesc(hero: heroInfo): string { // 通过 s_uuid 查找技能基础配置 const base = SkillSet[item.s_uuid]; if (!base) continue; - // 合并 overrides 得到实际技能参数(ap/hit_count/crt/frz/bck 等可能被覆盖) + // 合并 overrides 得到实际技能参数(ap/hit_count/crt/frz/stun/bck 等可能被覆盖) const skill = mergeSkillParams(base, item.overrides); // 将模板中的 "n" 替换为实际触发次数 const trigger = tpl.replace("n", String(item.t_num)); diff --git a/assets/script/game/common/config/SkillSet.ts b/assets/script/game/common/config/SkillSet.ts index 605118c0..c426d8df 100644 --- a/assets/script/game/common/config/SkillSet.ts +++ b/assets/script/game/common/config/SkillSet.ts @@ -150,6 +150,7 @@ export interface SkillConfig { kind?: SkillKind, // 主效果类型 crt?: number, // 额外暴击率 frz?: number, // 额外冰冻概率 + stun?: number, // 额外击晕概率 bck?: number, // 额外击退概率 buff_type?: Attrs, // Buff 类型 (单一职责) call_hero?: number, // 召唤技能召唤英雄id(可选) @@ -164,8 +165,10 @@ export interface SkillOverrides { hitcd?: number; crt?: number; frz?: number; + stun?: number; bck?: number; buff_type?: Attrs; + call_hero?: number; } /** @@ -183,7 +186,7 @@ export function mergeSkillParams(config: SkillConfig, overrides?: SkillOverrides } export const SkillUpList = { - 1001: { ap: 0, hit_count: 0, buff_ap: 0, buff_hp: 0, bck: 0, frz: 0, crt: 0, num: 0 } + 1001: { ap: 0, hit_count: 0, buff_ap: 0, buff_hp: 0, bck: 0, frz: 0, stun: 0, crt: 0, num: 0 } } /****** @@ -249,7 +252,7 @@ export const SkillSet: Record = { 6101: { uuid: 6101, name: "火球", sp_name: "ball_fire", icon: "1126", TGroup: TGroup.Enemy, readyAnm: "", endAnm: "", act: "atk", - DTType: DTType.single, frz: 0, ap: 100, hit_count: 1, hitcd: 0.3, speed: 720, with: 90, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote, + DTType: DTType.single, stun: 0, ap: 100, hit_count: 1, hitcd: 0.3, speed: 720, with: 90, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote, RType: RType.linear, EType: EType.collision, info: "造成攻击力100%的伤害,一定几率暴击,高阶技能", }, 6102: { @@ -269,14 +272,14 @@ export const SkillSet: Record = { RType: RType.linear, EType: EType.collision, info: "射出强力箭矢,最多穿透6个敌人,附带20%额外暴击率", }, 6105: { - uuid: 6105, name: "冰刺", sp_name: "ice_up", icon: "1173", TGroup: TGroup.Enemy, readyAnm: "blues", endAnm: "", act: "max", - DTType: DTType.range, frz: 0, ap: 150, hit_count: 6, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote, - RType: RType.fixedEnd, EType: EType.animationEnd, info: "召唤冰刺攻击一排的敌人,有概率冰冻", + uuid: 6105, name: "雷爆", sp_name: "ice_up", icon: "1173", TGroup: TGroup.Enemy, readyAnm: "blues", endAnm: "", act: "max", + DTType: DTType.range, stun: 0, ap: 150, hit_count: 6, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote, + RType: RType.fixedEnd, EType: EType.animationEnd, info: "召唤雷爆攻击一排的敌人,有概率击晕", }, 6106: { - uuid: 6106, name: "冰推", sp_name: "ice_t", icon: "1173", TGroup: TGroup.Enemy, readyAnm: "blues", endAnm: "", act: "max", - DTType: DTType.range, frz: 0, ap: 150, hit_count: 6, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote, - RType: RType.fixed, EType: EType.animationEnd, info: "召唤冰墙阻挡敌人,有概率冰冻", + uuid: 6106, name: "雷墙", sp_name: "ice_t", icon: "1173", TGroup: TGroup.Enemy, readyAnm: "blues", endAnm: "", act: "max", + DTType: DTType.range, stun: 0, ap: 150, hit_count: 6, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.remote, + RType: RType.fixed, EType: EType.animationEnd, info: "召唤雷墙阻挡敌人,有概率击晕", }, 6107: { uuid: 6107, name: "陨石", sp_name: "fire_yuns", icon: "1173", TGroup: TGroup.Enemy, readyAnm: "reds", endAnm: "", act: "max", @@ -322,9 +325,9 @@ export const SkillSet: Record = { RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.critical_damage, info: "全体友方暴击伤害提升20%,持续1次", }, 6405: { - uuid: 6405, name: "冰冻强化", sp_name: "buff_wind", icon: "1255", TGroup: TGroup.Team, readyAnm: "up_blue", endAnm: "", act: "atk", + uuid: 6405, name: "击晕强化", sp_name: "buff_wind", icon: "1255", TGroup: TGroup.Team, readyAnm: "up_blue", endAnm: "", act: "atk", DTType: DTType.single, kind: SkillKind.Support, ap: 1, hit_count: 1, hitcd: 0.2, speed: 720, with: 0, ready: 0.2, EAnm: 0, DAnm: "", IType: IType.support, - RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.freeze_chance, info: "全体友方冰冻概率提升10%,持续1次", + RType: RType.fixed, EType: EType.animationEnd, buff_type: Attrs.stun_chance, info: "全体友方击晕概率提升10%,持续1次", }, 6406: { uuid: 6406, name: "击退强化", sp_name: "buff_wind", icon: "1255", TGroup: TGroup.Team, readyAnm: "up_blue", endAnm: "", act: "atk", @@ -363,7 +366,7 @@ export enum FieldSkillType { SellGold = 6, // 卖出英雄金币提升 WaveHeal = 7, // 战斗结束生命回复量提升 HeroAtk = 8, // 英雄攻击力加成 - HeroFrost = 9, // 英雄冰冻加成 + HeroStun = 9, // 英雄击晕加成 HeroCrit = 10, // 英雄暴击加成 HeroCritDamage = 11, // 英雄暴击伤害加成 HeroSpeed = 12, // 英雄攻击速度加成 @@ -393,7 +396,7 @@ export const FieldSkillSet: Record = { 7006: { uuid: 7006, name: "出售强化", type: FieldSkillType.SellGold, value: 5, info: "卖出英雄金币+5" }, 7007: { uuid: 7007, name: "战后恢复", type: FieldSkillType.WaveHeal, value: 0.3, info: "战斗结束生命回复量+30%" }, 7008: { uuid: 7008, name: "攻击加成", type: FieldSkillType.HeroAtk, value: 0.2, info: "英雄攻击力+20%" }, - 7009: { uuid: 7009, name: "冰冻加成", type: FieldSkillType.HeroFrost, value: 0.1, info: "英雄冰冻概率+10%" }, + 7009: { uuid: 7009, name: "击晕加成", type: FieldSkillType.HeroStun, value: 0.1, info: "英雄击晕概率+10%" }, 7010: { uuid: 7010, name: "暴击加成", type: FieldSkillType.HeroCrit, value: 0.1, info: "英雄暴击率+10%" }, 7011: { uuid: 7011, name: "暴伤加成", type: FieldSkillType.HeroCritDamage, value: 0.5, info: "英雄暴击伤害+50%" }, 7012: { uuid: 7012, name: "攻速加成", type: FieldSkillType.HeroSpeed, value: 0.2, info: "英雄攻击速度+20%" }, diff --git a/assets/script/game/common/config/heroSet.ts b/assets/script/game/common/config/heroSet.ts index 4788ebbf..95e0af68 100644 --- a/assets/script/game/common/config/heroSet.ts +++ b/assets/script/game/common/config/heroSet.ts @@ -268,33 +268,33 @@ export const HeroInfo: Record = { info:"驻场提供攻击力光环,每2次攻击为全队叠加攻击力"}, - // ========== 冰冻控制流 (新加) ========== - 5106:{uuid:5106,name:"寒冰学徒",path:"hm3", fac:FacSet.HERO,pool_lv:1,lv:1,type:HType.Long, + // ========== 击晕控制流 (新加) ========== + 5106:{uuid:5106,name:"雷爆学徒",path:"hm3", fac:FacSet.HERO,pool_lv:1,lv:1,type:HType.Long, hp:130,ap:50, skills:{6007:{uuid:6007,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Slow1].cd,ccd:0}}, field:[6405], atking:[{s_uuid:6405,t_num:2}], evolve:{ - 2:{atking:[{s_uuid:6105,t_num:3,overrides:{ap:100,frz:20}}]}, - 3:{skill:{s_uuid:6105,overrides:{frz:15,hit_count:6}}, - atking:[{s_uuid:6105,t_num:1,overrides:{ap:150,frz:35,hit_count:8}}], + 2:{atking:[{s_uuid:6105,t_num:3,overrides:{ap:100,stun:20}}]}, + 3:{skill:{s_uuid:6105,overrides:{stun:15,hit_count:6}}, + atking:[{s_uuid:6105,t_num:1,overrides:{ap:150,stun:35,hit_count:8}}], ap_bonus:30}, }, - info:"驻场提供冰冻光环,每2次普攻叠加冰冻概率"}, + info:"驻场提供击晕光环,每2次普攻叠加击晕概率"}, - 5107:{uuid:5107,name:"霜寒法师",path:"hm5", fac:FacSet.HERO,pool_lv:2,lv:1,type:HType.Long, + 5107:{uuid:5107,name:"雷霆法师",path:"hm5", fac:FacSet.HERO,pool_lv:2,lv:1,type:HType.Long, hp:160,ap:80, skills:{6007:{uuid:6007,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Normal3].cd,ccd:0}}, field:[6405], - atking:[{s_uuid:6105,t_num:2,overrides:{ap:120,frz:25}}], - info:"驻场冰冻光环,每2次攻击触发冰刺AOE,25%冰冻概率冻住一排敌人"}, + atking:[{s_uuid:6105,t_num:2,overrides:{ap:120,stun:25}}], + info:"驻场击晕光环,每2次攻击触发雷爆AOE,25%击晕概率晕住一排敌人"}, - 5108:{uuid:5108,name:"永冬贤者",path:"hm4", fac:FacSet.HERO,pool_lv:3,lv:1,type:HType.Long, + 5108:{uuid:5108,name:"风暴贤者",path:"hm4", fac:FacSet.HERO,pool_lv:3,lv:1,type:HType.Long, hp:250,ap:110, skills:{6007:{uuid:6007,lv:1,cd:AtkSpeedSet[AtkSpeedLv.Slow3].cd,ccd:0}}, field:[6405], - atking:[{s_uuid:6105,t_num:1,overrides:{ap:150,frz:35,hit_count:8}}], - info:"驻场强力冰冻光环,每次攻击释放冰刺,35%冰冻概率"}, + atking:[{s_uuid:6105,t_num:1,overrides:{ap:150,stun:35,hit_count:8}}], + info:"驻场强力击晕光环,每次攻击释放雷爆,35%击晕概率"}, // ========== 辅助英雄 (保留 5301, 5302) ========== diff --git a/assets/script/game/hero/HeroAttrsComp.ts b/assets/script/game/hero/HeroAttrsComp.ts index 9462fce6..ad1f6a7b 100644 --- a/assets/script/game/hero/HeroAttrsComp.ts +++ b/assets/script/game/hero/HeroAttrsComp.ts @@ -273,7 +273,13 @@ export class HeroAttrsComp extends ecs.Comp { /** 英雄实时冰冻率 = 基础冰冻率 + 驻场冰冻率。 */ public getRuntimeFreezeChance(): number { if (this.fac !== FacSet.HERO) return this.freeze_chance; - return this.freeze_chance + HeroAttrsComp.getFieldPercentValue(FieldSkillType.HeroFrost); + return this.freeze_chance; + } + + /** 英雄实时击晕率 = 基础击晕率 + 驻场击晕率。 */ + public getRuntimeStunChance(): number { + if (this.fac !== FacSet.HERO) return this.stun_chance; + return this.stun_chance + HeroAttrsComp.getFieldPercentValue(FieldSkillType.HeroStun); } /** 英雄实时风怒概率 = 基础风怒 + 驻场风怒。 */ diff --git a/assets/script/game/hero/SCastSystem.ts b/assets/script/game/hero/SCastSystem.ts index 8eedc683..9dac7b04 100644 --- a/assets/script/game/hero/SCastSystem.ts +++ b/assets/script/game/hero/SCastSystem.ts @@ -483,7 +483,7 @@ export class SCastSystem extends ecs.ComblockSystem implements ecs.ISystemUpdate if (config.buff_type === Attrs.ap) upgradeValue = sUp.buff_ap || 0; else if (config.buff_type === Attrs.hp_max) upgradeValue = sUp.buff_hp || 0; else if (config.buff_type === Attrs.critical) upgradeValue = sUp.crt || 0; - // 如果后续有冰冻等,在这里加上对应的 sUp 字段即可,如 sUp.frz + // 如果后续有冰冻、击晕等,在这里加上对应的 sUp 字段即可,如 sUp.frz / sUp.stun const totalBuffValue = baseValue + upgradeValue; diff --git a/assets/script/game/skill/Skill.ts b/assets/script/game/skill/Skill.ts index b29506f4..a9576ad6 100644 --- a/assets/script/game/skill/Skill.ts +++ b/assets/script/game/skill/Skill.ts @@ -206,13 +206,14 @@ export class Skill extends ecs.Entity { const SUp=SkillUpList[s_uuid] ? SkillUpList[s_uuid]:SkillUpList[1001]; const sCrt = (config.crt ?? 0)+(SUp.crt*skill_lv); const sFrz = (config.frz ?? 0)+(SUp.frz*skill_lv); + const sStun = (config.stun ?? 0)+(SUp.stun*skill_lv); const sAp =config.ap+(SUp.ap*skill_lv); const sHit=config.hit_count+(SUp.hit_count*skill_lv); sDataCom.Attrs[Attrs.ap] = Math.floor(cAttrsComp.ap*sAp/100); //技能的ap是百分值 需要/100 而且需要再最终计算总ap时再/100,不然会出现ap为90%变0 sDataCom.Attrs[Attrs.critical] = cAttrsComp.getRuntimeCritical() + sCrt; sDataCom.Attrs[Attrs.critical_damage] = cAttrsComp.getRuntimeCritDamageBonus(); sDataCom.Attrs[Attrs.freeze_chance] = cAttrsComp.getRuntimeFreezeChance() + sFrz; - sDataCom.Attrs[Attrs.stun_chance] = cAttrsComp.stun_chance || 0; + sDataCom.Attrs[Attrs.stun_chance] = cAttrsComp.getRuntimeStunChance() + sStun; sDataCom.Attrs[Attrs.knockback_chance] = cAttrsComp.knockback_chance || 0; sDataCom.Attrs[Attrs.knockback_distance] = cAttrsComp.knockback_distance || 0; sDataCom.Attrs[Attrs.puncture_chance] = cAttrsComp.getRuntimePunctureChance(); // 初始化携带施法者的穿透概率