feat(战斗系统): 实现怪物金币掉落计算和抽卡升级消耗

- 添加calculateMonsterGold函数计算不同怪物类型的金币掉落
- 修改SingletonModuleComp初始化金币为0并添加抽卡和升级消耗
- 在MissionCardComp中添加抽卡和升级的金币检查逻辑
- 清理FightSet中无用配置并添加金币相关常量
- 在MissionComp中实现金币奖励计算和局内数据初始化
This commit is contained in:
walkpan
2026-01-15 23:32:57 +08:00
parent d6ce56e543
commit 90e6bd755a
6 changed files with 3884 additions and 3702 deletions

View File

@@ -10,6 +10,7 @@ import { HeroAttrsComp } from "../hero/HeroAttrsComp";
import { Attrs, GameScoreStats } from "./config/HeroAttrs";
import { count, time } from "console";
import { getLevelExp } from "../map/RogueConfig";
import { FightSet } from "./config/GameSet";
/**
* 用远程数据覆盖本地数据(统一方法)
* @param remoteData 远程数据(云端或本地调试)
@@ -134,7 +135,9 @@ export class SingletonModuleComp extends ecs.Comp {
skill: {uuid:0,count:0},
friend:{uuid:0,count:0},
},
gold: 200, // 金币数据MVVM绑定字段
gold: 0, // 金币数据MVVM绑定字段
chou_gold: FightSet.CHOU_GOLD,
lvup_gold: FightSet.LVUP_GOLD_UP,
};
@@ -294,9 +297,9 @@ export class SingletonModuleComp extends ecs.Comp {
}
return true
}
updateGold(gold:number){
updateGold(gold:number, is_sync: boolean = true){
this.vmdata.gold += gold;
if(this.isWxClient()){
if(this.isWxClient() && is_sync){
let res = this.updateCloudData()
if (res){
oops.message.dispatchEvent(GameEvent.GOLD_UPDATE)

View File

@@ -100,55 +100,13 @@ export class NumberFormatter {
}
}
export enum FightSet {
FRIEND_WAVE_UP=3, //伙伴登场波次
BOSS_WAVE_UP_1=3, //boss登场波次
BOSS_WAVE_UP_2=5, //boss登场波次
BOSS_WAVE_UP_3=7, //boss登场波次
EQUIP_WAVE_UP_1=4, //装备登场波次
EQUIP_WAVE_UP_2=6, //装备登场波次
EQUIP_WAVE_UP_3=8, //装备登场波次
SKILL_WAVE_UP_1=2, //技能登场波次
SKILL_WAVE_UP_2=5, //技能登场波次
SKILL_WAVE_UP_3=7, //技能登场波次
MON_WAVE_TIME=10,//怪物波次时间
ATK_ADD_COUNT=4,//伙伴攻击力增加
ATK_ADD_GLOD=1,//金币增加
CRIT_DAMAGE=50,//暴击伤害
DEF_C=100,//物理防御常数C
MDEF_C=100,//魔法防御常数C
DOUBLE_ATK_RATE=100,//额外攻击默认概率
GREEN_GOLD=1,//绿色金币
BLUE_GOLD=2,//蓝色金币
PURPLE_GOLD=3,//紫色金币
ORANGE_GOLD=4,//橙色金币
BURN_COUNT=5,//默认易伤次数 5秒
STUN_TIME=0.5,//默认晕时间
WEAPON_LV=2,//武器等级
SHIELD_LV=3,//护盾等级
ARMOR_LV=4,//防具等级
ACCESSORY_LV=5,//饰品等级
ATKED_TO_POWER=15,//被攻击涨能量
ATK_TO_POWER=10,//攻击涨能量
CRIT_TO_POWER=15,//暴击涨能量
DODGE_TO_POWER=15,//闪避涨能量
ONE_WAVE_TIME=30,//单波时间
DOWN_TIME=5,//倒计时时间
MORE_RC=10,//更多次数 广告获取的次数
TAL_NUM=3,//天赋数量
HEARTPOS=-320,//基地位置
HERO_MAX_NUM=3,//英雄最大数量
// ATK_TO_ATK_RATIO=0.1,
// ATK_TO_HP_RATIO=0.2,
// ATK_TO_SHIELD_RATIO=2,
// ATK_LINES = 3, //英雄数
// MON_GOLD_ADD =2,
// MON_COIN_ADD=2,
// COIN_ADD=1,
// DEF_RATE=0.7,
// DODGE_MAX=70,
// HERO_NUM=3,
// AP_UPDATE_RATE=100,
// AP_CHANGE_RATE=0,
LVUP_GOLD=10,//升级需要的金币
LVUP_GOLD_UP=10,//升级需要的金币
CHOU_GOLD=5,//抽卡需要的金币
}
export enum IndexSet {
/** 英雄基础层级 */