From d9b7b6c966712d3b510539611acab9e7e0a65ad9 Mon Sep 17 00:00:00 2001 From: panw Date: Mon, 16 Jun 2025 10:53:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8B=B1=E9=9B=84=E6=99=AE=E9=80=9A=E6=94=BB?= =?UTF-8?q?=E5=87=BB=E6=94=B9=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/script/game/common/config/Equips.ts | 22 +++++++++++++---- assets/script/game/common/config/GameEvent.ts | 1 + assets/script/game/hero/HeroViewComp.ts | 18 ++++++++++++++ assets/script/game/map/EquipsComp.ts | 24 ++++++++++++++++++- assets/script/game/map/FightConComp.ts | 1 + assets/script/todo.md | 7 +++--- 6 files changed, 64 insertions(+), 9 deletions(-) diff --git a/assets/script/game/common/config/Equips.ts b/assets/script/game/common/config/Equips.ts index 6b83a087..eb8992e1 100644 --- a/assets/script/game/common/config/Equips.ts +++ b/assets/script/game/common/config/Equips.ts @@ -21,11 +21,19 @@ export enum SkillTarget { WATER = 2, EARTH = 3, WIND = 4, - LIGHT = 5, - DARK = 6, + LIGHT = 5, + DARK = 6, + } + //特殊属性 +export enum EquipSpecialAttr { + ICE=1, //普通技能变冰系冰冻 + FIRE=2, //普通技能变火焰易伤 + WIND=3, //普通技能变飓风带击退 + FRIND_LIVE_CD=4, //伙伴复活时间减少 + ATK_ADD_FRIND_ATK=5, //伙伴攻击力增加 + ATK_ADD_FRIND_HP=6, //伙伴生命值增加 + ATK_ADD_GLOD=7, //金币增加 } - - export enum EquipQuality { WHITE = 1, GREEN = 2, @@ -56,11 +64,13 @@ export interface EquipData { name: string; // 装备名称 type: EquipType; // 装备类型 info: string; // 装备描述 + special_attr: EquipSpecialAttr; // 特殊属性 buff: EquipAttribute[]; // 属性加成列表 debuff: EquipDebuffAttribute[]; // 属性减益列表 } export const EquipInfo: { [key: number]: EquipData } = { 2001: {uuid: 2001, name: "新手剑", type: EquipType.WEAPON,info:"攻击力增加80%", + special_attr: EquipSpecialAttr.ICE, buff: [ { type: BuffAttr.ATK, value: 80, target: EquipAttrTarget.HERO }, ], @@ -69,6 +79,7 @@ export const EquipInfo: { [key: number]: EquipData } = { ] }, 2002: {uuid: 2002,name: "新手剑2",type: EquipType.WEAPON,info:"攻击速度增加30%", + special_attr: EquipSpecialAttr.ICE, buff: [ { type: BuffAttr.ATK_CD, value: 30, target: EquipAttrTarget.HERO }, ], @@ -77,6 +88,7 @@ export const EquipInfo: { [key: number]: EquipData } = { ] }, 2003: {uuid: 2003,name: "新手剑3",type: EquipType.WEAPON,info:"攻击次数增加1次", + special_attr: EquipSpecialAttr.ICE, buff: [ { type: BuffAttr.ATK_COUNT, value: 1, target: EquipAttrTarget.HERO }, ], @@ -85,6 +97,7 @@ export const EquipInfo: { [key: number]: EquipData } = { ] }, 2004: {uuid: 2004,name: "防具1",type: EquipType.ARMOR,info:"生命值增加100%", + special_attr: EquipSpecialAttr.ICE, buff: [ { type: BuffAttr.HP, value: 100, target: EquipAttrTarget.HERO }, ], @@ -93,6 +106,7 @@ export const EquipInfo: { [key: number]: EquipData } = { ] }, 2005: {uuid: 2005,name: "防具2",type: EquipType.ARMOR,info:"免伤增加50%", + special_attr: EquipSpecialAttr.ICE, buff: [ { type: BuffAttr.DEF, value: 50, target: EquipAttrTarget.HERO }, ], diff --git a/assets/script/game/common/config/GameEvent.ts b/assets/script/game/common/config/GameEvent.ts index 2501ecc3..2d4f3307 100644 --- a/assets/script/game/common/config/GameEvent.ts +++ b/assets/script/game/common/config/GameEvent.ts @@ -41,4 +41,5 @@ export enum GameEvent { EquipSelect = "EquipSelect", EquipSelectEnd = "EquipSelectEnd", WaveUpdate = "WaveUpdate", + ChangeATK = "ChangeATK", } \ No newline at end of file diff --git a/assets/script/game/hero/HeroViewComp.ts b/assets/script/game/hero/HeroViewComp.ts index 9363d289..4d095eae 100644 --- a/assets/script/game/hero/HeroViewComp.ts +++ b/assets/script/game/hero/HeroViewComp.ts @@ -10,6 +10,7 @@ import { BuffComp } from "./BuffComp"; import { oops } from "db://oops-framework/core/Oops"; import { GameEvent } from "../common/config/GameEvent"; import { FightConComp } from "../map/FightConComp"; +import { EquipSpecialAttr } from "../common/config/Equips"; const { ccclass, property } = _decorator; @@ -88,6 +89,7 @@ export class HeroViewComp extends CCComp { this.as = this.getComponent(HeroSpine); this.FIGHTCON=this.node.parent.getComponent(FightConComp); console.log("hero view comp ",this.FIGHTCON) + this.on(GameEvent.ChangeATK,this.change_atk,this) // let anm = this.node.getChildByName("anm") // anm.setScale(anm.scale.x*0.8,anm.scale.y*0.8); // 注册单个碰撞体的回调函数 @@ -146,6 +148,22 @@ export class HeroViewComp extends CCComp { // 处理伤害队列 this.processDamageQueue(); } + change_atk(e:GameEvent,data:any){ + switch(data){ + case EquipSpecialAttr.ICE: + this.atk_skill=6001 + break + case EquipSpecialAttr.FIRE: + this.atk_skill=6002 + break + case EquipSpecialAttr.WIND: + this.atk_skill=6003 + break + default: + this.atk_skill=6001 + break + } + } get isActive() { return this.ent.has(HeroViewComp) && this.node?.isValid; } diff --git a/assets/script/game/map/EquipsComp.ts b/assets/script/game/map/EquipsComp.ts index 81fd960c..f65d51f1 100644 --- a/assets/script/game/map/EquipsComp.ts +++ b/assets/script/game/map/EquipsComp.ts @@ -2,7 +2,7 @@ import { _decorator, Component, Node, resources, Sprite, SpriteAtlas } from 'cc' import { oops } from 'db://oops-framework/core/Oops'; import { GameEvent } from '../common/config/GameEvent'; import { smc } from '../common/SingletonModuleComp'; -import { EquipInfo, EquipType, EquipAttrTarget} from '../common/config/Equips'; +import { EquipInfo, EquipType, EquipAttrTarget, EquipSpecialAttr} from '../common/config/Equips'; import { BuffAttr, DebuffAttr, geDebuffNum, getBuffNum } from '../common/config/SkillSet'; const { ccclass, property } = _decorator; @@ -121,12 +121,34 @@ export class EquipsComp extends Component { let weapon_debuffs = this.weapon.uuid ? EquipInfo[this.weapon.uuid]?.debuff || [] : []; let armor_debuffs = this.armor.uuid ? EquipInfo[this.armor.uuid]?.debuff || [] : []; let accessory_debuffs = this.accessory.uuid ? EquipInfo[this.accessory.uuid]?.debuff || [] : []; + let weapon_special_attr = this.weapon.uuid ? EquipInfo[this.weapon.uuid]?.special_attr : 0; + let armor_special_attr = this.armor.uuid ? EquipInfo[this.armor.uuid]?.special_attr : 0; + let accessory_special_attr = this.accessory.uuid ? EquipInfo[this.accessory.uuid]?.special_attr : 0; + + console.log("武器特殊属性", weapon_special_attr); + console.log("防具特殊属性", armor_special_attr); + console.log("饰品特殊属性", accessory_special_attr); console.log("武器属性", weapon_buffs); console.log("防具属性", armor_buffs); console.log("饰品属性", accessory_buffs); console.log("武器减益", weapon_debuffs); console.log("防具减益", armor_debuffs); console.log("饰品减益", accessory_debuffs); + //特殊属性附加 + switch(weapon_special_attr){ + case EquipSpecialAttr.ICE: + oops.message.dispatchEvent(GameEvent.ChangeATK,EquipSpecialAttr.ICE) + break + case EquipSpecialAttr.FIRE: + oops.message.dispatchEvent(GameEvent.ChangeATK,EquipSpecialAttr.FIRE) + break + case EquipSpecialAttr.WIND: + oops.message.dispatchEvent(GameEvent.ChangeATK,EquipSpecialAttr.WIND) + break + default: + oops.message.dispatchEvent(GameEvent.ChangeATK,0) + break + } // 合并所有装备属性 const allBuff = [...weapon_buffs, ...armor_buffs, ...accessory_buffs]; const allDebuff = [...weapon_debuffs, ...armor_debuffs, ...accessory_debuffs]; diff --git a/assets/script/game/map/FightConComp.ts b/assets/script/game/map/FightConComp.ts index fdf7076a..400136ff 100644 --- a/assets/script/game/map/FightConComp.ts +++ b/assets/script/game/map/FightConComp.ts @@ -22,6 +22,7 @@ export class FightConComp extends Component { temp_hero_debuff = this.getInitTempDebuff(); temp_friend_debuff = this.getInitTempDebuff(); temp_enemy_debuff = this.getInitTempDebuff(); + atk_type:number=0; onLoad(){ // console.log("fight con start") diff --git a/assets/script/todo.md b/assets/script/todo.md index c00479b8..f4f14b6f 100644 --- a/assets/script/todo.md +++ b/assets/script/todo.md @@ -12,11 +12,10 @@ - [x] HP加100% - [x] 免伤50% -- [ ] 普通攻击改为飓风攻击带击退(被动) -- [ ] 普通攻击改为寒冰攻击带冰冻(被动) -- [ ] 普通攻击改为火焰攻击带易伤(被动) +- [x] 普通攻击改为飓风攻击带击退(被动) +- [x] 普通攻击改为寒冰攻击带冰冻(被动) +- [x] 普通攻击改为火焰攻击带易伤(被动) - [ ] 伙伴复活时间减少%(被动) - [ ] 每攻击n次 加伙伴hp - [ ] 每攻击n次 加伙伴ap - [ ] 每攻击n次后 增加1金币 -- [ ] 每攻击n次减少下次一次伙伴复活时间