@vibemancer/core 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/{chunk-NR326XEY.js → chunk-MUU3ELH5.js} +9 -4
- package/dist/chunk-MUU3ELH5.js.map +1 -0
- package/dist/{index-browser-iiIpqpDl.d.ts → index-browser-ClmR9SkR.d.ts} +2 -1
- package/dist/index-browser.d.ts +1 -1
- package/dist/index-browser.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/engine/manual-match.ts +3 -1
- package/src/engine-version.ts +1 -1
- package/src/hooks/threat-analysis.ts +396 -389
- package/src/rules.ts +6 -1
- package/dist/chunk-NR326XEY.js.map +0 -1
|
@@ -463,6 +463,7 @@ declare const RULES: {
|
|
|
463
463
|
MISSILE_MIN_CAST_TIME: number;
|
|
464
464
|
MISSILE_BASE_RADIUS: number;
|
|
465
465
|
MISSILE_DAMAGE_RADIUS_SCALE: number;
|
|
466
|
+
MISSILE_RADIUS_MULTIPLIER: number;
|
|
466
467
|
MISSILE_BASE_CAST: number;
|
|
467
468
|
MISSILE_DAMAGE_SCALE: number;
|
|
468
469
|
MISSILE_DAMAGE_POWER: number;
|
|
@@ -608,7 +609,7 @@ declare function currentRuleset(): Record<string, number>;
|
|
|
608
609
|
* Used to gate spectator replays: a recorded match can only be re-simulated when
|
|
609
610
|
* the runtime engine version matches the version that produced the match.
|
|
610
611
|
*/
|
|
611
|
-
declare const ENGINE_VERSION =
|
|
612
|
+
declare const ENGINE_VERSION = 3523070221336433;
|
|
612
613
|
/**
|
|
613
614
|
* Historical versions that denote the SAME engine as `ENGINE_VERSION`.
|
|
614
615
|
*
|
package/dist/index-browser.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { A as ALL_BOTS, a as ARENA_MAX, b as ARENA_MIN, c as ARENA_SIZE, d as ARENA_WATER_BUFFER, e as ActionBuilder, f as AnalyzedThreat, g as Archlich, h as Archmage, B as BLINK_CAST_TIME, i as BLINK_COOLDOWN, j as BLINK_MAX_COOLDOWN, k as BLINK_MAX_RANGE, l as BLINK_MIN_COOLDOWN, m as BLINK_RANGE, n as BOT_GROUPS, o as Battlemage, p as BlinkEvent, q as Bonemancer, s as BotError, t as BrowserManualMatchSandbox, u as BrowserMatchSandbox, v as BrowserSandboxOptions, C as CASTING_MOVEMENT_MULT, x as COLLISION_RADIUS, y as CastCancelEvent, z as CastStartEvent, D as Critter, H as DEFAULT_SEED, I as Doombringer, J as ENGINE_VERSION, K as EQUIVALENT_ENGINE_VERSIONS, L as EnemyState, M as FIGHT_SPAWN_DISTANCES, F as FightResult, O as FightStats, P as FightWinner, Q as FinalAction, R as Flamecaller, T as GCD_DURATION, U as GameConfig, V as GameState, W as Golem, X as Hero, Y as Hogger, Z as HomingParams, _ as HookState, $ as Infernalist, a0 as InternalWizardState, a1 as KNOCKBACK_DAMAGE_THRESHOLD, a2 as KNOCKBACK_DECAY, a3 as KNOCKBACK_DELAY, a4 as KNOCKBACK_SPEED_PER_DAMAGE, a5 as LAVA_BORDER_WIDTH, a6 as Lich, a7 as MATCH_DURATION, a8 as MAX_HEALTH, a9 as MISSILE_BASE_CAST, aa as MISSILE_BASE_RADIUS, ab as MISSILE_DAMAGE_POWER, ac as MISSILE_DAMAGE_RADIUS_SCALE, ad as MISSILE_DAMAGE_SCALE, ae as MISSILE_HOMING_COEFF, af as MISSILE_MIN_CAST_TIME, ag as MISSILE_MIN_DAMAGE, ah as MISSILE_MIN_DURATION, ai as MISSILE_MIN_SPEED, aj as MISSILE_RADIUS_PER_DAMAGE, ak as MISSILE_SPEED_DURATION_BASELINE, al as MISSILE_SPEED_DURATION_COEFF, am as MISSILE_TURN_DURATION_COEFF, an as MOVEMENT_SPEED, ao as MOVE_SPEED, ap as ManualMatch, aq as ManualMatchInitOptions, ar as ManualMatchOptions, as as ManualMatchStepRequest, at as MatchWinner, au as MissileAction, av as MissileActions, aw as MissileConfig, ax as MissileContext, ay as MissileExpiredEvent, az as MissileFunction, aA as MissileHitEvent, aB as MissileLaunchEvent, aC as MissileOobEvent, aD as MissileTemplate, aE as Nightblade, aF as ParamDeclaration, aG as Position, aH as ProjectileState, aI as Pyromancer, aJ as RULES, aK as RULESET_RANGES, aL as RefObject, aM as Rookie, aN as SHIELD_CAST_TIME, aO as SHIELD_DECAY_PER_SECOND, aP as SHIELD_DECAY_RATE, aQ as SHIELD_MAX_BLOCK, aR as SHIELD_MAX_STRENGTH, aS as SHIELD_MIN_BLOCK, aT as SHIELD_MIN_STRENGTH, aU as SPAWN_DISTANCE, aV as SeekerParams, aW as Sentinel, aX as Shadowblade, aY as ShieldBlockEvent, aZ as ShieldStartEvent, a_ as SimEvent, S as SimulateResult, a$ as Spellbinder, b0 as Spellseeker, b1 as Spellshot, b2 as Spellspinner, b3 as Spelltracer, b4 as Spellweaver, b5 as SpiralParams, b6 as StepResult, b7 as Stormcaller, b8 as Stormchaser, b9 as Stormforger, ba as StraightParams, bb as TICKS_PER_SECOND, bc as TICK_DURATION_MS, bd as TargetDummy, be as TestBotBuilder, bf as TestFightResult, bg as TestSimulateResult, bh as TraceBotSummary, bi as TraceEvent, bj as TraceEventType, bk as TraceSummary, bl as Turtle, bm as Velocity, bn as Voidblade, bo as WARMUP_DURATION_TOLERANCE, bp as WARMUP_MAX_BONUS, bq as WARMUP_MAX_PENALTY, br as WARMUP_SPEED_TOLERANCE, bs as WARMUP_TURN_TOLERANCE, bt as WIZARD_HEALTH, bu as WIZARD_RADIUS, bv as Warmage, bw as WizardActions, bx as WizardContext, by as WizardDeathEvent, bz as WizardEntry, bA as WizardFunction, bB as WizardGroup, bC as WizardLavaDeathEvent, bD as WizardState, bE as WorkerFactory, bF as WorkerLike, bG as analyzeThreats, bH as angleDiff, bI as angleInRange, bJ as angleTo, bK as applyDamage, bL as applyRulesetOverrides, bM as blink, bN as browserSandboxFight, bO as browserSandboxSimulate, bP as calculateBlinkCooldown, bQ as calculateMissileCastTime, bR as calculateMissileRadius, bS as calculateMissileSimilarity, bT as calculateShieldBlock, bU as calculateWarmupMultiplier, bV as canReplayMatch, bW as cancel, bX as cancelCast, bY as clampPositionToArena, bZ as clampToArena, b_ as clearHooks, b$ as clearParamValues, c0 as completeCast, c2 as createEntitySeed, c4 as createInitialState, c5 as createRandom, c6 as createWorkerScript, c7 as currentRuleset, c8 as diagnoseTrace, c9 as directionAway, ca as directionTo, cb as distanceTo, cc as effectiveTurnRateCost, cd as extractAction, ce as extractMissileAction, cf as extractStats, cg as extractTraceEvents, ch as fight, ci as findInRange, cj as findNearest, ck as fitMissileForEscapingTarget, cl as fitMissileToBudget, cm as flyStraight, cn as formatDiagnosis, co as formatStats, cp as formatTraceEvents, cq as formatTraceSummary, cr as generateCandidates, cs as generateCombos, ct as getAdaptiveMissileConfig, cu as getEffectiveRange, cv as getLeadPosition, cw as getMissileCastTime, cx as getMissileContext, cy as getPlayerState, cz as getWizardContext, cA as hashCombine, cB as homingMissile, cC as idle, cD as inRange, cE as interceptAngle, cF as isBannedBotName, cG as isInLava, cH as magnitude, cI as matchesAnyBanRule, cK as missile, cL as move, cM as moveInDirection, cN as moveProjectile, cO as moveWizard, cP as narrowRange, cQ as nextRandom, cR as normalize, cS as normalizeAngle, cT as predictPosition, cV as resetAllHooks, cW as resetRuleset, cX as resolveWizardCollision, cY as runWithHooks, cZ as runWizardWithContext, c_ as scoreFight, c$ as scoreFightAsWizard2, d0 as seekerMissile, d1 as setParamValues, d2 as shield, d3 as simulate, d4 as simulateMinDuration, d5 as sortByDistance, d6 as spiralMissile, d7 as startCast, d8 as startDiscovery, d9 as stopDiscovery, da as straightMissile, db as summarizeTrace, dc as sweptCircleCollision, dd as testBot, de as tick, df as turnToAngle, dg as turnToward, dh as updateShield, di as useArenaSize, dj as useBlinkCooldown, dk as useCastProgress, dl as useCastingSpell, dm as useClosestThreat, dn as useDamageDealt, dp as useDamageTaken, dq as useEffect, dr as useEnemy, ds as useHealth, dt as useLastHitTick, du as useLastMissileConfig, dv as useMemo, dw as useMyProjectiles, dx as useMyThreatsToEnemy, dy as useParam, dz as usePosition, dA as useProjectiles, dB as useRandom, dC as useRef, dD as useShieldStrength, dE as useState, dF as useStatus, dG as useThreats, dH as useTick, dI as useTicksUntilReady, dJ as useVelocity, dK as validateHookCall, dL as validateMissileConfig, dM as withMissileContext, dN as withWizardContext, dO as wrapWithParams } from './index-browser-
|
|
1
|
+
export { A as ALL_BOTS, a as ARENA_MAX, b as ARENA_MIN, c as ARENA_SIZE, d as ARENA_WATER_BUFFER, e as ActionBuilder, f as AnalyzedThreat, g as Archlich, h as Archmage, B as BLINK_CAST_TIME, i as BLINK_COOLDOWN, j as BLINK_MAX_COOLDOWN, k as BLINK_MAX_RANGE, l as BLINK_MIN_COOLDOWN, m as BLINK_RANGE, n as BOT_GROUPS, o as Battlemage, p as BlinkEvent, q as Bonemancer, s as BotError, t as BrowserManualMatchSandbox, u as BrowserMatchSandbox, v as BrowserSandboxOptions, C as CASTING_MOVEMENT_MULT, x as COLLISION_RADIUS, y as CastCancelEvent, z as CastStartEvent, D as Critter, H as DEFAULT_SEED, I as Doombringer, J as ENGINE_VERSION, K as EQUIVALENT_ENGINE_VERSIONS, L as EnemyState, M as FIGHT_SPAWN_DISTANCES, F as FightResult, O as FightStats, P as FightWinner, Q as FinalAction, R as Flamecaller, T as GCD_DURATION, U as GameConfig, V as GameState, W as Golem, X as Hero, Y as Hogger, Z as HomingParams, _ as HookState, $ as Infernalist, a0 as InternalWizardState, a1 as KNOCKBACK_DAMAGE_THRESHOLD, a2 as KNOCKBACK_DECAY, a3 as KNOCKBACK_DELAY, a4 as KNOCKBACK_SPEED_PER_DAMAGE, a5 as LAVA_BORDER_WIDTH, a6 as Lich, a7 as MATCH_DURATION, a8 as MAX_HEALTH, a9 as MISSILE_BASE_CAST, aa as MISSILE_BASE_RADIUS, ab as MISSILE_DAMAGE_POWER, ac as MISSILE_DAMAGE_RADIUS_SCALE, ad as MISSILE_DAMAGE_SCALE, ae as MISSILE_HOMING_COEFF, af as MISSILE_MIN_CAST_TIME, ag as MISSILE_MIN_DAMAGE, ah as MISSILE_MIN_DURATION, ai as MISSILE_MIN_SPEED, aj as MISSILE_RADIUS_PER_DAMAGE, ak as MISSILE_SPEED_DURATION_BASELINE, al as MISSILE_SPEED_DURATION_COEFF, am as MISSILE_TURN_DURATION_COEFF, an as MOVEMENT_SPEED, ao as MOVE_SPEED, ap as ManualMatch, aq as ManualMatchInitOptions, ar as ManualMatchOptions, as as ManualMatchStepRequest, at as MatchWinner, au as MissileAction, av as MissileActions, aw as MissileConfig, ax as MissileContext, ay as MissileExpiredEvent, az as MissileFunction, aA as MissileHitEvent, aB as MissileLaunchEvent, aC as MissileOobEvent, aD as MissileTemplate, aE as Nightblade, aF as ParamDeclaration, aG as Position, aH as ProjectileState, aI as Pyromancer, aJ as RULES, aK as RULESET_RANGES, aL as RefObject, aM as Rookie, aN as SHIELD_CAST_TIME, aO as SHIELD_DECAY_PER_SECOND, aP as SHIELD_DECAY_RATE, aQ as SHIELD_MAX_BLOCK, aR as SHIELD_MAX_STRENGTH, aS as SHIELD_MIN_BLOCK, aT as SHIELD_MIN_STRENGTH, aU as SPAWN_DISTANCE, aV as SeekerParams, aW as Sentinel, aX as Shadowblade, aY as ShieldBlockEvent, aZ as ShieldStartEvent, a_ as SimEvent, S as SimulateResult, a$ as Spellbinder, b0 as Spellseeker, b1 as Spellshot, b2 as Spellspinner, b3 as Spelltracer, b4 as Spellweaver, b5 as SpiralParams, b6 as StepResult, b7 as Stormcaller, b8 as Stormchaser, b9 as Stormforger, ba as StraightParams, bb as TICKS_PER_SECOND, bc as TICK_DURATION_MS, bd as TargetDummy, be as TestBotBuilder, bf as TestFightResult, bg as TestSimulateResult, bh as TraceBotSummary, bi as TraceEvent, bj as TraceEventType, bk as TraceSummary, bl as Turtle, bm as Velocity, bn as Voidblade, bo as WARMUP_DURATION_TOLERANCE, bp as WARMUP_MAX_BONUS, bq as WARMUP_MAX_PENALTY, br as WARMUP_SPEED_TOLERANCE, bs as WARMUP_TURN_TOLERANCE, bt as WIZARD_HEALTH, bu as WIZARD_RADIUS, bv as Warmage, bw as WizardActions, bx as WizardContext, by as WizardDeathEvent, bz as WizardEntry, bA as WizardFunction, bB as WizardGroup, bC as WizardLavaDeathEvent, bD as WizardState, bE as WorkerFactory, bF as WorkerLike, bG as analyzeThreats, bH as angleDiff, bI as angleInRange, bJ as angleTo, bK as applyDamage, bL as applyRulesetOverrides, bM as blink, bN as browserSandboxFight, bO as browserSandboxSimulate, bP as calculateBlinkCooldown, bQ as calculateMissileCastTime, bR as calculateMissileRadius, bS as calculateMissileSimilarity, bT as calculateShieldBlock, bU as calculateWarmupMultiplier, bV as canReplayMatch, bW as cancel, bX as cancelCast, bY as clampPositionToArena, bZ as clampToArena, b_ as clearHooks, b$ as clearParamValues, c0 as completeCast, c2 as createEntitySeed, c4 as createInitialState, c5 as createRandom, c6 as createWorkerScript, c7 as currentRuleset, c8 as diagnoseTrace, c9 as directionAway, ca as directionTo, cb as distanceTo, cc as effectiveTurnRateCost, cd as extractAction, ce as extractMissileAction, cf as extractStats, cg as extractTraceEvents, ch as fight, ci as findInRange, cj as findNearest, ck as fitMissileForEscapingTarget, cl as fitMissileToBudget, cm as flyStraight, cn as formatDiagnosis, co as formatStats, cp as formatTraceEvents, cq as formatTraceSummary, cr as generateCandidates, cs as generateCombos, ct as getAdaptiveMissileConfig, cu as getEffectiveRange, cv as getLeadPosition, cw as getMissileCastTime, cx as getMissileContext, cy as getPlayerState, cz as getWizardContext, cA as hashCombine, cB as homingMissile, cC as idle, cD as inRange, cE as interceptAngle, cF as isBannedBotName, cG as isInLava, cH as magnitude, cI as matchesAnyBanRule, cK as missile, cL as move, cM as moveInDirection, cN as moveProjectile, cO as moveWizard, cP as narrowRange, cQ as nextRandom, cR as normalize, cS as normalizeAngle, cT as predictPosition, cV as resetAllHooks, cW as resetRuleset, cX as resolveWizardCollision, cY as runWithHooks, cZ as runWizardWithContext, c_ as scoreFight, c$ as scoreFightAsWizard2, d0 as seekerMissile, d1 as setParamValues, d2 as shield, d3 as simulate, d4 as simulateMinDuration, d5 as sortByDistance, d6 as spiralMissile, d7 as startCast, d8 as startDiscovery, d9 as stopDiscovery, da as straightMissile, db as summarizeTrace, dc as sweptCircleCollision, dd as testBot, de as tick, df as turnToAngle, dg as turnToward, dh as updateShield, di as useArenaSize, dj as useBlinkCooldown, dk as useCastProgress, dl as useCastingSpell, dm as useClosestThreat, dn as useDamageDealt, dp as useDamageTaken, dq as useEffect, dr as useEnemy, ds as useHealth, dt as useLastHitTick, du as useLastMissileConfig, dv as useMemo, dw as useMyProjectiles, dx as useMyThreatsToEnemy, dy as useParam, dz as usePosition, dA as useProjectiles, dB as useRandom, dC as useRef, dD as useShieldStrength, dE as useState, dF as useStatus, dG as useThreats, dH as useTick, dI as useTicksUntilReady, dJ as useVelocity, dK as validateHookCall, dL as validateMissileConfig, dM as withMissileContext, dN as withWizardContext, dO as wrapWithParams } from './index-browser-ClmR9SkR.js';
|
package/dist/index-browser.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { F as FightResult, S as SimulateResult } from './index-browser-
|
|
2
|
-
export { A as ALL_BOTS, a as ARENA_MAX, b as ARENA_MIN, c as ARENA_SIZE, d as ARENA_WATER_BUFFER, e as ActionBuilder, f as AnalyzedThreat, g as Archlich, h as Archmage, B as BLINK_CAST_TIME, i as BLINK_COOLDOWN, j as BLINK_MAX_COOLDOWN, k as BLINK_MAX_RANGE, l as BLINK_MIN_COOLDOWN, m as BLINK_RANGE, n as BOT_GROUPS, o as Battlemage, p as BlinkEvent, q as Bonemancer, r as BotBudgetState, s as BotError, t as BrowserManualMatchSandbox, u as BrowserMatchSandbox, v as BrowserSandboxOptions, w as BudgetLimits, C as CASTING_MOVEMENT_MULT, x as COLLISION_RADIUS, y as CastCancelEvent, z as CastStartEvent, D as Critter, E as DEFAULT_BUDGET, G as DEFAULT_FIGHT_BACKSTOP_MS, H as DEFAULT_SEED, I as Doombringer, J as ENGINE_VERSION, K as EQUIVALENT_ENGINE_VERSIONS, L as EnemyState, M as FIGHT_SPAWN_DISTANCES, N as FightBudget, O as FightStats, P as FightWinner, Q as FinalAction, R as Flamecaller, T as GCD_DURATION, U as GameConfig, V as GameState, W as Golem, X as Hero, Y as Hogger, Z as HomingParams, _ as HookState, $ as Infernalist, a0 as InternalWizardState, a1 as KNOCKBACK_DAMAGE_THRESHOLD, a2 as KNOCKBACK_DECAY, a3 as KNOCKBACK_DELAY, a4 as KNOCKBACK_SPEED_PER_DAMAGE, a5 as LAVA_BORDER_WIDTH, a6 as Lich, a7 as MATCH_DURATION, a8 as MAX_HEALTH, a9 as MISSILE_BASE_CAST, aa as MISSILE_BASE_RADIUS, ab as MISSILE_DAMAGE_POWER, ac as MISSILE_DAMAGE_RADIUS_SCALE, ad as MISSILE_DAMAGE_SCALE, ae as MISSILE_HOMING_COEFF, af as MISSILE_MIN_CAST_TIME, ag as MISSILE_MIN_DAMAGE, ah as MISSILE_MIN_DURATION, ai as MISSILE_MIN_SPEED, aj as MISSILE_RADIUS_PER_DAMAGE, ak as MISSILE_SPEED_DURATION_BASELINE, al as MISSILE_SPEED_DURATION_COEFF, am as MISSILE_TURN_DURATION_COEFF, an as MOVEMENT_SPEED, ao as MOVE_SPEED, ap as ManualMatch, aq as ManualMatchInitOptions, ar as ManualMatchOptions, as as ManualMatchStepRequest, at as MatchWinner, au as MissileAction, av as MissileActions, aw as MissileConfig, ax as MissileContext, ay as MissileExpiredEvent, az as MissileFunction, aA as MissileHitEvent, aB as MissileLaunchEvent, aC as MissileOobEvent, aD as MissileTemplate, aE as Nightblade, aF as ParamDeclaration, aG as Position, aH as ProjectileState, aI as Pyromancer, aJ as RULES, aK as RULESET_RANGES, aL as RefObject, aM as Rookie, aN as SHIELD_CAST_TIME, aO as SHIELD_DECAY_PER_SECOND, aP as SHIELD_DECAY_RATE, aQ as SHIELD_MAX_BLOCK, aR as SHIELD_MAX_STRENGTH, aS as SHIELD_MIN_BLOCK, aT as SHIELD_MIN_STRENGTH, aU as SPAWN_DISTANCE, aV as SeekerParams, aW as Sentinel, aX as Shadowblade, aY as ShieldBlockEvent, aZ as ShieldStartEvent, a_ as SimEvent, a$ as Spellbinder, b0 as Spellseeker, b1 as Spellshot, b2 as Spellspinner, b3 as Spelltracer, b4 as Spellweaver, b5 as SpiralParams, b6 as StepResult, b7 as Stormcaller, b8 as Stormchaser, b9 as Stormforger, ba as StraightParams, bb as TICKS_PER_SECOND, bc as TICK_DURATION_MS, bd as TargetDummy, be as TestBotBuilder, bf as TestFightResult, bg as TestSimulateResult, bh as TraceBotSummary, bi as TraceEvent, bj as TraceEventType, bk as TraceSummary, bl as Turtle, bm as Velocity, bn as Voidblade, bo as WARMUP_DURATION_TOLERANCE, bp as WARMUP_MAX_BONUS, bq as WARMUP_MAX_PENALTY, br as WARMUP_SPEED_TOLERANCE, bs as WARMUP_TURN_TOLERANCE, bt as WIZARD_HEALTH, bu as WIZARD_RADIUS, bv as Warmage, bw as WizardActions, bx as WizardContext, by as WizardDeathEvent, bz as WizardEntry, bA as WizardFunction, bB as WizardGroup, bC as WizardLavaDeathEvent, bD as WizardState, bE as WorkerFactory, bF as WorkerLike, bG as analyzeThreats, bH as angleDiff, bI as angleInRange, bJ as angleTo, bK as applyDamage, bL as applyRulesetOverrides, bM as blink, bN as browserSandboxFight, bO as browserSandboxSimulate, bP as calculateBlinkCooldown, bQ as calculateMissileCastTime, bR as calculateMissileRadius, bS as calculateMissileSimilarity, bT as calculateShieldBlock, bU as calculateWarmupMultiplier, bV as canReplayMatch, bW as cancel, bX as cancelCast, bY as clampPositionToArena, bZ as clampToArena, b_ as clearHooks, b$ as clearParamValues, c0 as completeCast, c1 as createBudgetState, c2 as createEntitySeed, c3 as createFightBudget, c4 as createInitialState, c5 as createRandom, c6 as createWorkerScript, c7 as currentRuleset, c8 as diagnoseTrace, c9 as directionAway, ca as directionTo, cb as distanceTo, cc as effectiveTurnRateCost, cd as extractAction, ce as extractMissileAction, cf as extractStats, cg as extractTraceEvents, ch as fight, ci as findInRange, cj as findNearest, ck as fitMissileForEscapingTarget, cl as fitMissileToBudget, cm as flyStraight, cn as formatDiagnosis, co as formatStats, cp as formatTraceEvents, cq as formatTraceSummary, cr as generateCandidates, cs as generateCombos, ct as getAdaptiveMissileConfig, cu as getEffectiveRange, cv as getLeadPosition, cw as getMissileCastTime, cx as getMissileContext, cy as getPlayerState, cz as getWizardContext, cA as hashCombine, cB as homingMissile, cC as idle, cD as inRange, cE as interceptAngle, cF as isBannedBotName, cG as isInLava, cH as magnitude, cI as matchesAnyBanRule, cJ as mayAct, cK as missile, cL as move, cM as moveInDirection, cN as moveProjectile, cO as moveWizard, cP as narrowRange, cQ as nextRandom, cR as normalize, cS as normalizeAngle, cT as predictPosition, cU as recordSpend, cV as resetAllHooks, cW as resetRuleset, cX as resolveWizardCollision, cY as runWithHooks, cZ as runWizardWithContext, c_ as scoreFight, c$ as scoreFightAsWizard2, d0 as seekerMissile, d1 as setParamValues, d2 as shield, d3 as simulate, d4 as simulateMinDuration, d5 as sortByDistance, d6 as spiralMissile, d7 as startCast, d8 as startDiscovery, d9 as stopDiscovery, da as straightMissile, db as summarizeTrace, dc as sweptCircleCollision, dd as testBot, de as tick, df as turnToAngle, dg as turnToward, dh as updateShield, di as useArenaSize, dj as useBlinkCooldown, dk as useCastProgress, dl as useCastingSpell, dm as useClosestThreat, dn as useDamageDealt, dp as useDamageTaken, dq as useEffect, dr as useEnemy, ds as useHealth, dt as useLastHitTick, du as useLastMissileConfig, dv as useMemo, dw as useMyProjectiles, dx as useMyThreatsToEnemy, dy as useParam, dz as usePosition, dA as useProjectiles, dB as useRandom, dC as useRef, dD as useShieldStrength, dE as useState, dF as useStatus, dG as useThreats, dH as useTick, dI as useTicksUntilReady, dJ as useVelocity, dK as validateHookCall, dL as validateMissileConfig, dM as withMissileContext, dN as withWizardContext, dO as wrapWithParams } from './index-browser-
|
|
1
|
+
import { F as FightResult, S as SimulateResult } from './index-browser-ClmR9SkR.js';
|
|
2
|
+
export { A as ALL_BOTS, a as ARENA_MAX, b as ARENA_MIN, c as ARENA_SIZE, d as ARENA_WATER_BUFFER, e as ActionBuilder, f as AnalyzedThreat, g as Archlich, h as Archmage, B as BLINK_CAST_TIME, i as BLINK_COOLDOWN, j as BLINK_MAX_COOLDOWN, k as BLINK_MAX_RANGE, l as BLINK_MIN_COOLDOWN, m as BLINK_RANGE, n as BOT_GROUPS, o as Battlemage, p as BlinkEvent, q as Bonemancer, r as BotBudgetState, s as BotError, t as BrowserManualMatchSandbox, u as BrowserMatchSandbox, v as BrowserSandboxOptions, w as BudgetLimits, C as CASTING_MOVEMENT_MULT, x as COLLISION_RADIUS, y as CastCancelEvent, z as CastStartEvent, D as Critter, E as DEFAULT_BUDGET, G as DEFAULT_FIGHT_BACKSTOP_MS, H as DEFAULT_SEED, I as Doombringer, J as ENGINE_VERSION, K as EQUIVALENT_ENGINE_VERSIONS, L as EnemyState, M as FIGHT_SPAWN_DISTANCES, N as FightBudget, O as FightStats, P as FightWinner, Q as FinalAction, R as Flamecaller, T as GCD_DURATION, U as GameConfig, V as GameState, W as Golem, X as Hero, Y as Hogger, Z as HomingParams, _ as HookState, $ as Infernalist, a0 as InternalWizardState, a1 as KNOCKBACK_DAMAGE_THRESHOLD, a2 as KNOCKBACK_DECAY, a3 as KNOCKBACK_DELAY, a4 as KNOCKBACK_SPEED_PER_DAMAGE, a5 as LAVA_BORDER_WIDTH, a6 as Lich, a7 as MATCH_DURATION, a8 as MAX_HEALTH, a9 as MISSILE_BASE_CAST, aa as MISSILE_BASE_RADIUS, ab as MISSILE_DAMAGE_POWER, ac as MISSILE_DAMAGE_RADIUS_SCALE, ad as MISSILE_DAMAGE_SCALE, ae as MISSILE_HOMING_COEFF, af as MISSILE_MIN_CAST_TIME, ag as MISSILE_MIN_DAMAGE, ah as MISSILE_MIN_DURATION, ai as MISSILE_MIN_SPEED, aj as MISSILE_RADIUS_PER_DAMAGE, ak as MISSILE_SPEED_DURATION_BASELINE, al as MISSILE_SPEED_DURATION_COEFF, am as MISSILE_TURN_DURATION_COEFF, an as MOVEMENT_SPEED, ao as MOVE_SPEED, ap as ManualMatch, aq as ManualMatchInitOptions, ar as ManualMatchOptions, as as ManualMatchStepRequest, at as MatchWinner, au as MissileAction, av as MissileActions, aw as MissileConfig, ax as MissileContext, ay as MissileExpiredEvent, az as MissileFunction, aA as MissileHitEvent, aB as MissileLaunchEvent, aC as MissileOobEvent, aD as MissileTemplate, aE as Nightblade, aF as ParamDeclaration, aG as Position, aH as ProjectileState, aI as Pyromancer, aJ as RULES, aK as RULESET_RANGES, aL as RefObject, aM as Rookie, aN as SHIELD_CAST_TIME, aO as SHIELD_DECAY_PER_SECOND, aP as SHIELD_DECAY_RATE, aQ as SHIELD_MAX_BLOCK, aR as SHIELD_MAX_STRENGTH, aS as SHIELD_MIN_BLOCK, aT as SHIELD_MIN_STRENGTH, aU as SPAWN_DISTANCE, aV as SeekerParams, aW as Sentinel, aX as Shadowblade, aY as ShieldBlockEvent, aZ as ShieldStartEvent, a_ as SimEvent, a$ as Spellbinder, b0 as Spellseeker, b1 as Spellshot, b2 as Spellspinner, b3 as Spelltracer, b4 as Spellweaver, b5 as SpiralParams, b6 as StepResult, b7 as Stormcaller, b8 as Stormchaser, b9 as Stormforger, ba as StraightParams, bb as TICKS_PER_SECOND, bc as TICK_DURATION_MS, bd as TargetDummy, be as TestBotBuilder, bf as TestFightResult, bg as TestSimulateResult, bh as TraceBotSummary, bi as TraceEvent, bj as TraceEventType, bk as TraceSummary, bl as Turtle, bm as Velocity, bn as Voidblade, bo as WARMUP_DURATION_TOLERANCE, bp as WARMUP_MAX_BONUS, bq as WARMUP_MAX_PENALTY, br as WARMUP_SPEED_TOLERANCE, bs as WARMUP_TURN_TOLERANCE, bt as WIZARD_HEALTH, bu as WIZARD_RADIUS, bv as Warmage, bw as WizardActions, bx as WizardContext, by as WizardDeathEvent, bz as WizardEntry, bA as WizardFunction, bB as WizardGroup, bC as WizardLavaDeathEvent, bD as WizardState, bE as WorkerFactory, bF as WorkerLike, bG as analyzeThreats, bH as angleDiff, bI as angleInRange, bJ as angleTo, bK as applyDamage, bL as applyRulesetOverrides, bM as blink, bN as browserSandboxFight, bO as browserSandboxSimulate, bP as calculateBlinkCooldown, bQ as calculateMissileCastTime, bR as calculateMissileRadius, bS as calculateMissileSimilarity, bT as calculateShieldBlock, bU as calculateWarmupMultiplier, bV as canReplayMatch, bW as cancel, bX as cancelCast, bY as clampPositionToArena, bZ as clampToArena, b_ as clearHooks, b$ as clearParamValues, c0 as completeCast, c1 as createBudgetState, c2 as createEntitySeed, c3 as createFightBudget, c4 as createInitialState, c5 as createRandom, c6 as createWorkerScript, c7 as currentRuleset, c8 as diagnoseTrace, c9 as directionAway, ca as directionTo, cb as distanceTo, cc as effectiveTurnRateCost, cd as extractAction, ce as extractMissileAction, cf as extractStats, cg as extractTraceEvents, ch as fight, ci as findInRange, cj as findNearest, ck as fitMissileForEscapingTarget, cl as fitMissileToBudget, cm as flyStraight, cn as formatDiagnosis, co as formatStats, cp as formatTraceEvents, cq as formatTraceSummary, cr as generateCandidates, cs as generateCombos, ct as getAdaptiveMissileConfig, cu as getEffectiveRange, cv as getLeadPosition, cw as getMissileCastTime, cx as getMissileContext, cy as getPlayerState, cz as getWizardContext, cA as hashCombine, cB as homingMissile, cC as idle, cD as inRange, cE as interceptAngle, cF as isBannedBotName, cG as isInLava, cH as magnitude, cI as matchesAnyBanRule, cJ as mayAct, cK as missile, cL as move, cM as moveInDirection, cN as moveProjectile, cO as moveWizard, cP as narrowRange, cQ as nextRandom, cR as normalize, cS as normalizeAngle, cT as predictPosition, cU as recordSpend, cV as resetAllHooks, cW as resetRuleset, cX as resolveWizardCollision, cY as runWithHooks, cZ as runWizardWithContext, c_ as scoreFight, c$ as scoreFightAsWizard2, d0 as seekerMissile, d1 as setParamValues, d2 as shield, d3 as simulate, d4 as simulateMinDuration, d5 as sortByDistance, d6 as spiralMissile, d7 as startCast, d8 as startDiscovery, d9 as stopDiscovery, da as straightMissile, db as summarizeTrace, dc as sweptCircleCollision, dd as testBot, de as tick, df as turnToAngle, dg as turnToward, dh as updateShield, di as useArenaSize, dj as useBlinkCooldown, dk as useCastProgress, dl as useCastingSpell, dm as useClosestThreat, dn as useDamageDealt, dp as useDamageTaken, dq as useEffect, dr as useEnemy, ds as useHealth, dt as useLastHitTick, du as useLastMissileConfig, dv as useMemo, dw as useMyProjectiles, dx as useMyThreatsToEnemy, dy as useParam, dz as usePosition, dA as useProjectiles, dB as useRandom, dC as useRef, dD as useShieldStrength, dE as useState, dF as useStatus, dG as useThreats, dH as useTick, dI as useTicksUntilReady, dJ as useVelocity, dK as validateHookCall, dL as validateMissileConfig, dM as withMissileContext, dN as withWizardContext, dO as wrapWithParams } from './index-browser-ClmR9SkR.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* A compiled bot ready for sandboxed execution.
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -185,7 +185,9 @@ export class ManualMatch
|
|
|
185
185
|
|
|
186
186
|
this.history.push(getPlayerState(0, this.wizards, this.projectiles, this.currentTick, result.events));
|
|
187
187
|
|
|
188
|
-
// Track death and add grace period (
|
|
188
|
+
// Track death and add grace period (2s = 200 ticks at 100 tps), matching
|
|
189
|
+
// simulation.ts. The window is what makes a Draw reachable: a second death inside
|
|
190
|
+
// it is still recorded. Pinned by tests/death-grace-period.test.ts.
|
|
189
191
|
if (!this.deathTick && (this.wizards[0]!.health <= 0 || this.wizards[1]!.health <= 0))
|
|
190
192
|
{
|
|
191
193
|
this.deathTick = this.currentTick;
|
package/src/engine-version.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* Used to gate spectator replays: a recorded match can only be re-simulated when
|
|
10
10
|
* the runtime engine version matches the version that produced the match.
|
|
11
11
|
*/
|
|
12
|
-
export const ENGINE_VERSION =
|
|
12
|
+
export const ENGINE_VERSION = 3523070221336433;
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Historical versions that denote the SAME engine as `ENGINE_VERSION`.
|