This is one example where I think the BASIC syntax actually makes reading code more complicated than with a C style syntax.
But basically, the way it works in DBPro:
When you follow an IF statement with a THEN statement, then only the commands on that line of code are associated with the IF statement - the following lines of code are considered "outside of" the IF block. Conversely, when you DON'T follow an IF with a THEN statement, then the IF block continues until you explicitly use an ENDIF command.
So, where you have
If mouseclick()=1 then play sound 2
print "deflected"
If mouseclick()=2 then play sound 3
print "blocked"
If mouseclick()=3 then stop sound 1
print "lightsaber deactivated"
play sound 4
Then the only parts that are associated with the IF statements are the commands to play or stop the sounds. The PRINT statements will execute regardless, because they are on different lines than the IF statements. There are two ways to correct this:
1) Use a colon (":") to allow both the print and sound statements to share the same line as the IF statement, e.g.,
If mouseclick()=1 then play sound 2 : print "deflected"
2) Remove the THEN statement, split each command so they're on separate lines, and end your block with an ENDIF, e.g.,
If mouseclick()=1
play sound 2
print "deflected"
Endif
Personally I prefer the second method, but of course it's a matter of opinion and up to you. Hope this helps.