value]; self::assertInstanceOf(AbilityDefinition::class, $definition); self::assertSame('Heal', $definition->label); self::assertSame(2, $definition->range); self::assertSame(0, $definition->areaRadius); self::assertSame('ally', $definition->target); self::assertSame('restore_health', $definition->effect); self::assertSame(5, $definition->effectValue); } public function testAreaDamageTargetsAnEnemyTileAndAffectsANeighborhood(): void { $definition = AbilityCatalog::definitions()[AbilityId::AreaDamage->value]; self::assertSame('Area Damage', $definition->label); self::assertSame(3, $definition->range); self::assertSame(1, $definition->areaRadius); self::assertSame('tile', $definition->target); self::assertSame('deal_damage', $definition->effect); self::assertSame(3, $definition->effectValue); } public function testBuffTargetsAnAllyAndAppliesAnAttackBonus(): void { $definition = AbilityCatalog::definitions()[AbilityId::Buff->value]; self::assertSame('Rally', $definition->label); self::assertSame(1, $definition->range); self::assertSame(0, $definition->areaRadius); self::assertSame('ally', $definition->target); self::assertSame('apply_buff', $definition->effect); self::assertSame(2, $definition->effectValue); } }