Fraser commited on
Commit
bdd30fc
Β·
1 Parent(s): 02f9fb6
src/lib/battle-engine/BattleEngine.ts CHANGED
@@ -649,6 +649,25 @@ export class BattleEngine {
649
  private calculateStandardDamageWithPower(power: number, attacker: BattlePiclet, target: BattlePiclet, move: Move): number {
650
  const baseDamage = power;
651
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
652
  // Type effectiveness
653
  const effectiveness = getEffectivenessMultiplier(
654
  move.type,
 
649
  private calculateStandardDamageWithPower(power: number, attacker: BattlePiclet, target: BattlePiclet, move: Move): number {
650
  const baseDamage = power;
651
 
652
+ // Debug logging for type effectiveness calculation
653
+ console.log('🎯 Damage calculation debug:', {
654
+ move: {
655
+ name: move.name,
656
+ type: move.type,
657
+ power: move.power
658
+ },
659
+ attacker: {
660
+ name: attacker.definition.name,
661
+ primaryType: attacker.definition.primaryType,
662
+ secondaryType: attacker.definition.secondaryType
663
+ },
664
+ target: {
665
+ name: target.definition.name,
666
+ primaryType: target.definition.primaryType,
667
+ secondaryType: target.definition.secondaryType
668
+ }
669
+ });
670
+
671
  // Type effectiveness
672
  const effectiveness = getEffectivenessMultiplier(
673
  move.type,
src/lib/types/picletTypes.ts CHANGED
@@ -233,10 +233,36 @@ export const TYPE_EFFECTIVENESS: Record<AttackType, Record<PicletType, TypeEffec
233
  };
234
 
235
  export function getTypeEffectiveness(attackType: AttackType, defenseType: PicletType): TypeEffectiveness {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
236
  return TYPE_EFFECTIVENESS[attackType][defenseType];
237
  }
238
 
239
  export function getEffectivenessMultiplier(attackType: AttackType, defenseType: PicletType, secondaryType?: PicletType): number {
 
 
 
 
 
 
 
 
 
240
  let multiplier = getTypeEffectiveness(attackType, defenseType);
241
 
242
  if (secondaryType && secondaryType !== defenseType) {
 
233
  };
234
 
235
  export function getTypeEffectiveness(attackType: AttackType, defenseType: PicletType): TypeEffectiveness {
236
+ console.log('⚑ Getting type effectiveness:', {
237
+ attackType,
238
+ defenseType,
239
+ typeEffectivenessExists: !!TYPE_EFFECTIVENESS[attackType],
240
+ defenseTypeExists: TYPE_EFFECTIVENESS[attackType] ? !!TYPE_EFFECTIVENESS[attackType][defenseType] : false
241
+ });
242
+
243
+ if (!TYPE_EFFECTIVENESS[attackType]) {
244
+ console.error('❌ Attack type not found in TYPE_EFFECTIVENESS:', attackType);
245
+ return 1; // Default to neutral effectiveness
246
+ }
247
+
248
+ if (!TYPE_EFFECTIVENESS[attackType][defenseType]) {
249
+ console.error('❌ Defense type not found for attack type:', { attackType, defenseType });
250
+ return 1; // Default to neutral effectiveness
251
+ }
252
+
253
  return TYPE_EFFECTIVENESS[attackType][defenseType];
254
  }
255
 
256
  export function getEffectivenessMultiplier(attackType: AttackType, defenseType: PicletType, secondaryType?: PicletType): number {
257
+ console.log('πŸ” Type effectiveness lookup:', {
258
+ attackType,
259
+ defenseType,
260
+ secondaryType,
261
+ attackTypeValid: Object.values(AttackType).includes(attackType),
262
+ defenseTypeValid: Object.values(PicletType).includes(defenseType),
263
+ secondaryTypeValid: secondaryType ? Object.values(PicletType).includes(secondaryType) : 'N/A'
264
+ });
265
+
266
  let multiplier = getTypeEffectiveness(attackType, defenseType);
267
 
268
  if (secondaryType && secondaryType !== defenseType) {