You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
AdLike2048/assets/script/manager/battleBuff/BattleBuffActiveSkillUtil.ts

76 lines
2.6 KiB

import { BattleBuffFunctionType } from './BattleBuffTypes';
import {
parseBattleBuffMultiplierCardConfig,
type BattleBuffMultiplierCardConfig,
} from './BattleBuffParamParse';
/**
* 局内拖拽种类(新表仅倍率卡/属性卡实体拖拽,非商店主动槽)。
*/
export enum BattleGameSkillDragKind {
/** 倍率卡拖到数字升 1/2 级 */
MultiplierCard = 1,
/** 属性卡拖到数字随机换五行 */
AttrCard = 2,
}
/** 是否倍率卡被动行 */
export function isBattleBuffMultiplierCard(row: ITableBattlebuff | null | undefined): boolean {
if (!row) return false;
return Number(row.functiontype) === BattleBuffFunctionType.MultiplierCard;
}
/** 是否属性卡被动行 */
export function isBattleBuffAttrCard(row: ITableBattlebuff | null | undefined): boolean {
if (!row) return false;
return Number(row.functiontype) === BattleBuffFunctionType.AttrCard;
}
/** 读取倍率卡配置 */
export function readBattleBuffMultiplierCardConfig(row: ITableBattlebuff | null | undefined): BattleBuffMultiplierCardConfig | null {
if (!isBattleBuffMultiplierCard(row)) return null;
return parseBattleBuffMultiplierCardConfig(row!.functionpar);
}
/** 解析商店主动 skill 拖拽类型(Phase1 无主动栈) */
export function resolveBattleGameSkillDragKind(_row: ITableBattlebuff | null | undefined): BattleGameSkillDragKind | null {
return null;
}
/** 解析商店主动 skill 点击类型(Phase1 无) */
export function resolveBattleGameSkillClickKind(_row: ITableBattlebuff | null | undefined): number | null {
return null;
}
/** 是否拖拽升级 buff(Phase1 无) */
export function isBattleBuffDragUnitLevelUp(_row: ITableBattlebuff | null | undefined): boolean {
return false;
}
/** 读取升级 delta(Phase1 无) */
export function readBattleBuffUnitLevelDelta(_row: ITableBattlebuff | null | undefined): number {
if (!_row) return 0;
return 0;
}
/** 读取缚仙网时长(Phase1 无) */
export function readBattleBuffBindNetDuration(_row: ITableBattlebuff | null | undefined): number {
if (!_row) return 0;
return 0;
}
/** 是否乾坤袋回收 buff(Phase1 无) */
export function isBattleBuffDragRecycleToPeach(_row: ITableBattlebuff | null | undefined): boolean {
return false;
}
/** 倍率卡掷骰等级增量(+1 或 +2) */
export function rollMultiplierCardLevelDelta(cfg: BattleBuffMultiplierCardConfig): number {
const total = cfg.plus1Weight + cfg.plus2Weight;
if (total <= 0) {
console.log('[BattleBuff] 倍率卡权重无效');
return 0;
}
const roll = Math.random() * total;
return roll < cfg.plus1Weight ? 1 : 2;
}