UNPKG

@aituber-onair/kizuna

Version:

A sophisticated bond system (絆 - Kizuna) for managing relationships between users and AI characters in AITuber OnAir.

90 lines (89 loc) 2 kB
/** * PointCalculator - Point calculation class * * Manages platform-specific point rules and performs point calculations */ import type { PointContext, PointRule, KizunaUser, KizunaConfig } from "./types"; /** * Point calculation result */ interface CalculationResult { /** Points to be awarded */ points: number; /** Applied rules */ appliedRules: PointRule[]; /** Calculation details */ breakdown: CalculationBreakdown[]; } /** * Calculation details */ interface CalculationBreakdown { /** Rule name */ ruleName: string; /** Points */ points: number; /** Description */ description: string; } /** * Point calculation class */ export declare class PointCalculator { private config; private cooldowns; constructor(config: KizunaConfig); /** * Main method for point calculation */ calculatePoints(context: PointContext, user: KizunaUser): CalculationResult; /** * Check if a specific rule can be applied */ canApplyRule(rule: PointRule, context: PointContext, user: KizunaUser): boolean; /** * Record rule application (cooldown management) */ recordRuleApplication(rule: PointRule, userId: string): void; /** * Clear cooldown data */ clearCooldowns(): void; /** * Reset cooldowns for specific user */ resetUserCooldowns(userId: string): void; /** * Calculate base points */ private calculateBasePoints; /** * Apply platform-specific rules */ private applyPlatformRules; /** * Apply custom rules */ private applyCustomRules; /** * Check daily bonus */ private checkDailyBonus; /** * Get platform configuration */ private getPlatformConfig; /** * Get action type */ private getActionType; /** * Get or create cooldown record */ private getCooldownRecord; /** * Log output */ private log; } export {};