koishi-plugin-ggcevo-game
Version:
星际争霸2咕咕虫-evolved地图的专属游戏助手插件,集成天梯排行、抽奖系统、签到福利、兑换商城等丰富功能。
679 lines (678 loc) • 22.5 kB
TypeScript
export interface BattleStatistics {
name: string;
hpChange: number;
energyChange: number;
armorChange: number;
tagsAdded: string[];
tagsRemoved: string[];
skillsAdded: string[];
skillsRemoved: string[];
skillStacksChanged: number;
skillStatusChanged: number;
statusLayersChanged: number;
radiationLayersChange: number;
coldLayersChange: number;
burnLayersChanged: number;
lastWeaponName: string;
}
export declare const battleStatsMap: Record<string, BattleStatistics>;
/**
* 根据Boss名称获取其最大HP(maxHP)
* @param bossName 要查询的Boss名称(支持主宰或子代)
* @returns 对应Boss的maxHP(未找到时返回undefined)
*/
export declare function getMaxHPByName(bossName: string): number | undefined;
/**
* 根据Boss名称获取其最大能量(maxEnergy)
* @param bossName 要查询的Boss名称(支持主宰或子代)
* @returns 对应Boss的maxEnergy(未找到时返回undefined)
*/
export declare function getMaxEnergyByName(bossName: string): number | undefined;
export declare function getMaxStacksByName(bossName: string): number | undefined;
/**
* 根据Boss名称获取其最大护盾值(maxShield)
* @param bossName 要查询的Boss名称(支持主宰或子代)
* @returns 对应Boss的maxShield(未找到时返回undefined)
*/
export declare function getMaxShieldByName(bossName: string): number | undefined;
/**
* 根据Boss名称获取其护甲值(armor)
* @param bossName 要查询的Boss名称(支持主宰或子代)
* @returns 对应Boss的armor值(未找到时返回undefined)
*/
export declare function getArmorByName(bossName: string): number | undefined;
/**
* 根据Boss名称获取其护盾护甲值(shieldArmor)
* @param bossName 要查询的Boss名称(支持主宰或子代)
* @returns 对应Boss的shieldArmor值(未找到时返回undefined)
*/
export declare function getShieldArmorByName(bossName: string): number | undefined;
export declare const BattleEffectProcessor: {
handleWeakForm: (targetBoss: any) => {
buffMultiplier: number;
messages: string[];
};
handleAlienShell: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
};
handleIsolated: (targetBoss: any, activeBosses: any[], tempMark: boolean) => {
buffMultiplier: number;
messages: string[];
};
handleFrostRegeneration: (targetBoss: any, activeBosses: any[], maxStatsForTarget: any) => {
messages: string[];
targetUpdates?: {
name: string;
updates: Partial<BattleStatistics>;
};
otherUpdates: Array<{
name: string;
updates: Partial<BattleStatistics>;
}>;
} | null;
handleFrostAura: (targetBoss: any, activeBosses: any[]) => {
messages: string[];
targetUpdates?: {
name: string;
updates: Partial<BattleStatistics>;
};
otherUpdates: Array<{
name: string;
updates: Partial<BattleStatistics>;
}>;
} | null;
handleFrostEvolution: (targetBoss: any, weaponName: string, damage: number) => {
isImmune: boolean;
immuneCold: boolean;
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleFrostHell: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
};
handleStressShellI: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
};
handleStressShellII: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
};
handleSurvivalInstinctI: (targetBoss: any, damageAmount: number) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleSurvivalInstinctII: (targetBoss: any, damageAmount: number) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleColdAdaptation: (targetBoss: any, weaponName: string) => {
isImmune: boolean;
immuneCold: boolean;
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleInfectedSpaceStation: (targetBoss: any, activeBosses: any[]) => {
nerfMultiplier: number;
messages: string[];
};
handleVirusCloud: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
};
handleMoldGrowth: (targetBoss: any, activeBosses: any[]) => {
messages: string[];
otherUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleSentryGun: (targetBoss: any, activeBosses: any[]) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
otherUpdates: Array<{
name: string;
updates: Partial<BattleStatistics>;
}>;
} | null;
handleStructuralArmor: (targetBoss: any, weaponData: any) => {
nerfMultiplier: number;
messages: string[];
};
handleVampireSaliva: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleFeeding: (targetBoss: any) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleBloodlust: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleVomit: (targetBoss: any) => {
buffMultiplier: number;
messages: string[];
};
handleSuperconductor: (targetBoss: any) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleEnergySiphon: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
};
handleEnergyAbsorption: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
};
handleElectricField: (targetBoss: any, weaponData: any) => {
isImmune: boolean;
messages: string[];
};
handleElectricShockwave: (targetBoss: any) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handlePulse: (targetBoss: any, activeBosses: any[]) => {
messages: string[];
otherUpdates: Array<{
name: string;
updates: Partial<BattleStatistics>;
}>;
} | null;
handleEnergyBlackhole: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
};
handleFlameAlien: (targetBoss: any, weaponName: string, damage: number) => {
isImmune: boolean;
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleColossalRampage: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
};
handleBurningSlime: (targetBoss: any, weaponName: string) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
isHighStackHeal: boolean;
} | null;
handleCorrosiveBile: (targetBoss: any, activeBosses: any[], isHighStackHeal?: boolean) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
otherUpdates: Array<{
name: string;
updates: Partial<BattleStatistics>;
}>;
} | null;
handleFlameBreath: (targetBoss: any, activeBosses: any[], isHighStackHeal?: boolean) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
otherUpdates: Array<{
name: string;
updates: Partial<BattleStatistics>;
}>;
} | null;
handleSolarFlare: (targetBoss: any, weaponName: string, activeBosses: any[]) => {
isImmune: boolean;
immuneCold: boolean;
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
tempMark: boolean;
} | null;
handleBurningBurrow: (targetBoss: any) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleInfernalBomb: (targetBoss: any, activeBosses: any[]) => {
nerfMultiplier: number;
messages: string[];
};
handleHunterAlien: (targetBoss: any, activeBosses: any[], weaponName: string) => {
buffMultiplier: number;
nerfMultiplier: number;
isImmune: boolean;
immuneCold: boolean;
immuneFire: boolean;
messages: string[];
};
handleRampage: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
};
handleDisguise: (targetBoss: any, weaponName: string) => {
nerfMultiplier: number;
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleDeadlyHit: (targetBoss: any) => {
isImmune: boolean;
messages: string[];
};
/** 星界之风处理(概率群体回复)- 修正版 */
handleAstralWind: (targetBoss: any, activeBosses: any[], doubleChance: boolean) => {
messages: string[];
otherUpdates: Array<{
name: string;
updates: Partial<BattleStatistics>;
}>;
} | null;
/** 心灵狂热处理(低生命减伤和概率强化)- 修正版 */
handleMindFrenzy: (targetBoss: any) => {
nerfMultiplier: number;
doubleAstralWind: boolean;
messages: string[];
};
handleCosmicEnergy: (targetBoss: any, damage: number) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleRevival: (targetBoss: any, damageAmount: number) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
/** 光影之刃处理(层数叠加) */
handleBladeOfLight: (targetBoss: any) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
/** 远古预兆处理(概率免疫能量伤害)- 增加boost参数 */
handleAncientOmen: (targetBoss: any, weaponData: any) => {
isImmune: boolean;
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
/** 超视距穿梭处理(层数相关伤害调整) */
handleHyperRangeShift: (targetBoss: any) => {
nerfMultiplier: number;
buffMultiplier: number;
messages: string[];
};
/** 灵能构造炉处理(随机获得技能)- 增加boost参数 */
handlePsychicForge: (targetBoss: any) => {
messages: string[];
newSkill: string | null;
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleOverdriveShield: (targetBoss: any, activeBosses: any[]) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
otherUpdates: Array<{
name: string;
updates: Partial<BattleStatistics>;
}>;
} | null;
/** 塌缩脉冲处理(额外叠加层数) */
handleCollapsingPulse: (targetBoss: any) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
/** 地毯式轰炸处理 */
handleCarpetBombing: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
tempMark: boolean;
};
handleBombardmentGuide: (targetBoss: any) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleRadiationEffect: (targetBoss: any, weaponName: string, equippedWeapon: any) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
armorReduction: number;
layerAdded: boolean;
} | null;
handleColdEffect: (targetBoss: any, weaponName: string, equippedWeapon: any, isImmuneCold: boolean) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
buffMultiplier: number;
layerAdded: boolean;
} | null;
handleWeaponEnergyDrain: (targetBoss: any, weaponName: string, maxStatsForTarget: any, equippedWeapon: any) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
success: boolean;
drainFactor: number;
} | null;
handleWeaponLayerReduction: (targetBoss: any, weaponName: string, maxStatsForTarget: any, equippedWeapon: any) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
reductionSuccess: boolean;
reductionAmount: number;
} | null;
handleToxicSaliva: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
/**
* 剧毒狂暴处理(低生命额外减伤和叠层)
* 效果:生命值≤50%时,受击额外获得1层「毒性唾液」且受到的伤害降低
*/
handleToxicFrenzy: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
/**
* 毒气波处理(概率获得多层层数)
* 效果:受击时有20%概率额外获得5层「毒性唾液」
*/
handleToxicGasWave: (targetBoss: any) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
/**
* 淬毒撕咬处理(层数治疗效果)
* 效果:根据毒性唾液层数,在受击时回复生命值
*/
handlePoisonedBite: (targetBoss: any) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
/**
* 酸蚀池处理(循环抗性)
* 效果:受击时按顺序循环选择三种酸池(1->2->3->1),提供特定武器类型减伤和增伤
*/
handleAcidPool: (targetBoss: any, weaponData: any, enhanced: boolean) => {
nerfMultiplier: number;
buffMultiplier: number;
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
};
/**
* 剧毒突袭处理
* 效果:毒性唾液≥20层时,消耗所有层数并使强化下5次触发的「酸蚀池」
*/
handleToxicAssault: (targetBoss: any) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleHiveMind: (targetBoss: any, activeBosses: any[], nestlingNames?: string[]) => {
buffMultiplier: number;
messages: string[];
nerfMultiplier?: undefined;
} | {
nerfMultiplier: number;
messages: string[];
buffMultiplier?: undefined;
};
handleBurrowAmbush: (targetBoss: any, activeBosses: any[], nestlingNames?: string[]) => {
messages: string[];
targetUpdates: {
name: any;
updates: {
skillsRemoved: string[];
};
};
spawnNewBossMark?: undefined;
} | {
messages: string[];
targetUpdates: {
name: any;
updates: {
skillsRemoved: string[];
};
};
spawnNewBossMark: string[];
};
handleWeakeningSpit: (targetBoss: any, activeBosses: any[]) => any;
handleHealingSwarm: (targetBoss: any, activeBosses: any[]) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
};
otherUpdates: Array<{
name: string;
updates: Partial<BattleStatistics>;
}>;
} | null;
handleReleasePheromones: (targetBoss: any) => {
messages: string[];
nerfMultiplier: number;
};
handleTerrifyingScreech: (targetBoss: any, activeBosses: any[], nestlingNames?: string[]) => {
targetUpdates: Partial<BattleStatistics>;
messages: string[];
spawnNewBossMark?: undefined;
} | {
targetUpdates: Partial<BattleStatistics>;
messages: string[];
spawnNewBossMark: string;
};
handleHatching: (targetBoss: any, activeBosses: any[], nestlingNames?: string[]) => {
targetUpdates: {
name: any;
updates: {
statusLayersChanged: number;
};
};
messages: string[];
spawnNewBossMark?: undefined;
} | {
targetUpdates: {
name: any;
updates: {
statusLayersChanged: number;
};
};
messages: string[];
spawnNewBossMark: string;
};
handlePulseRifleEffect: (weaponName: string, targetBoss: any, equippedWeapon: any) => {
pulseGrenadeTriggered: boolean;
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
messages: string[];
};
handleFusionCannonEffect: (weaponName: string, equippedWeapon: any) => {
fusionExplosionTriggered: boolean;
messages: string[];
};
handleBurnEffect: (targetBoss: any, weaponName: string, equippedWeapon: any, isImmuneFire: boolean) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
burnLayerAdded: boolean;
} | null;
handleGeneMutation: (targetBoss: any) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
tempMark: boolean;
} | null;
handleRedundancyOptimization: (targetBoss: any, weaponName: string) => {
isImmune: boolean;
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleEnvironmentalAdaptation: (targetBoss: any, weaponName: string) => {
isImmune: boolean;
immuneCold: boolean;
immuneFire: boolean;
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleAcceleratedDifferentiation: (targetBoss: any) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleEnduranceEnhancement: (targetBoss: any) => {
messages: string[];
nerfMultiplier: number;
} | null;
handleThickenedCarapace: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
} | null;
handleAcceleratedMetabolism: (targetBoss: any) => {
messages: string[];
targetUpdates: {
name: string;
updates: Partial<BattleStatistics>;
} | null;
} | null;
handleBiologicalSignatureImitation: (targetBoss: any) => {
isImmune: boolean;
messages: string[];
} | null;
handleShiveringHowl: (targetBoss: any) => {
nerfMultiplier: number;
messages: string[];
} | null;
handleDragonBreathResistance: (targetBoss: any, weaponName: string) => {
nerfMultiplier: number;
messages: string[];
} | null;
};
/**
* 统一处理所有被动效果(包含伤害修正、免疫检查、状态更新等)
* @param targetBoss 当前被攻击的Boss对象
* @param weaponName 使用的武器名称
* @param damage 武器造成的原始伤害值
* @param activeBosses 当前所有活跃Boss列表
* @returns 包含最终伤害值和所有效果消息的对象
*/
export declare function applyPassiveEffects(targetBoss: any, activeBosses: any[], weaponName: string, damage: number, hasCrit: boolean, ignoreRate: number, careerData: any, equippedWeapon: any): {
finalDamage: number;
messages: string[];
radiationLayerAdded: boolean;
coldLayerAdded: boolean;
energyDrained: boolean;
layerReduced: boolean;
bileDetonationTrigger: boolean;
spawnNewBossMarks: string[];
pulseGrenadeTriggered: boolean;
burnLayerAdded: boolean;
drainFactor: number;
reductionAmount: number;
};