If I'm reading the old Flash code right, the sparring goes like this:
- The final paragraph before you make your choice for each round tells you what what Kane's going to do (which is determined randomly at the start of each round); the first line will always be the same depending on which move he picks, while the second will correctly identify the appropriate counter if Steele's Intelligence is over 97% and be much less helpful otherwise.
- If Steele's move does not match Kane's move, Kane will get one point. Otherwise, Steele needs to pass both a Physique and a Willpower check to win a point: the checks are both stat quotient + a random number between 0 and 64 > 75. As such, having over 75% Physique and Willpower will guarantee winning every time, while having either at 11% or less will guarantee never getting a point. Failing these checks means neither Steele nor Kane gets a point.
- Steele needs 3 points to win; Kane only needs 2 points.
- Finally, if neither Steele nor Kane have won at the end of the round, Kane will deal Pheromone damage (base power: 25 plus or minus 30% i.e. 17.5 to 32.5) to Steele; if this brings Steele to max Lust, they automatically lose. This has lower priority than point-based win/loss.
All that is assuming no bugs have been introduced in the JS port. So, you can still lose even if you pick the right choice each time; if you get sufficiently unlucky with the Physique and Willpower checks, you'll eventually lose by Pheromone damage.