Files
pixelheros/assets/script/game/common/config/GameSet.ts
panw 5c5954b7d5 feat(卡牌系统): 重构卡牌选择逻辑并添加属性卡类型支持
- 在GameSet枚举中添加Attr卡牌类型
- 在GameEvent中添加UseAttrCard事件
- 重构CardSet模块,统一使用GameSet中的CardType枚举
- 重构MissionCardComp模块,支持混合模式卡牌选择和强制类型获取
- 添加等级升级事件处理,优化卡牌获取逻辑
2026-01-14 20:37:40 +08:00

177 lines
5.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* @Author: dgflash
* @Date: 2021-11-23 15:28:39
* @LastEditors: dgflash
* @LastEditTime: 2022-01-26 16:42:00
*/
/** 碰撞分组 */
export enum BoxSet {
//物理碰撞tag
SKILL_TAG=8,
ATK_RANGE = 4,
//group
DEFAULT = 1,
MONSTER = 2,
HERO = 4,
//地图边界
LETF_END = -420,
RIGHT_END = 420,
//游戏地平线
GAME_LINE = 120,
//攻击距离
}
export enum CardType {
Talent = 1,
Skill = 2,
Potion = 3,
Partner = 4,
Attr = 5
}
/**
* 获取等级对应的奖励类型
* @param level 当前等级
* @returns 奖励类型 CardType
*/
export function getLevelRewardType(level: number): CardType {
if (level === 1) {
return CardType.Skill;
} else if (level >= 2 && level <= 5) {
return CardType.Talent;
} else if (level === 6) {
return CardType.Partner;
} else {
return CardType.Potion; // 以后暂时都是物品
}
}
export enum FacSet {
HERO=0,
MON=1,
}
/** 数字格式化工具函数 */
export class NumberFormatter {
/**
* 将数字转换为易读格式
* @param num 要转换的数字
* @returns 格式化后的字符串
* 例如1234 -> "1.2k", 1234567 -> "1.2M", 1234567890 -> "1.2B"
*/
static formatNumber(num: number): string {
if (num < 1000) {
return num.toString();
} else if (num < 1000000) {
// 5位数用k表示 (1000-999999)
return (num / 1000).toFixed(1).replace(/\.0$/, '') + 'k';
} else if (num < 1000000000) {
// 7位数用M表示 (1000000-999999999)
return (num / 1000000).toFixed(1).replace(/\.0$/, '') + 'M';
} else if (num < 1000000000000) {
// 10位数用B表示 (1000000000-999999999999)
return (num / 1000000000).toFixed(1).replace(/\.0$/, '') + 'B';
} else {
// 更大的数字用T表示
return (num / 1000000000000).toFixed(1).replace(/\.0$/, '') + 'T';
}
}
/**
* 将数字转换为中文格式
* @param num 要转换的数字
* @returns 中文格式的字符串
* 例如1234 -> "1.2千", 1234567 -> "1.2百万"
*/
static formatNumberChinese(num: number): string {
if (num < 10000) {
return num.toString();
} else if (num < 100000000) {
// 万级别
return (num / 10000).toFixed(1).replace(/\.0$/, '') + '万';
} else if (num < 1000000000000) {
// 亿级别
return (num / 100000000).toFixed(1).replace(/\.0$/, '') + '亿';
} else {
// 万亿级别
return (num / 1000000000000).toFixed(1).replace(/\.0$/, '') + '万亿';
}
}
}
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,
}
export enum IndexSet {
/** 英雄基础层级 */
HERO = 2000,
/** 一线怪物基础层级(y=120) - 层级较低,在后面 */
MON1 = 1000,
/** 二线怪物基础层级(y=80) - 层级较高,在前面 */
MON2 = 3000,
/** 每个怪物的层级增量,确保后生成的在前面 */
MON_INCREMENT = 1,
SLILL=4000,
BOSS=2100,
}
export const TooltipTypes = {
life:1,
health:2,
skill:3,
crit:4,
uskill:5,
lvup:6,
apup:7,
hpup:8,
addmp:9,
shield:10,
}