Second pair of eyes needed for 'otherwise'

I have a block conditional that was working. I added two new items and now getting ‘otherwise’ errors. I have looked until I’m cross-eyed. Anyone want an easy Solution point? What’s wrong with this code?

This is the stripping rule:
	if the number of entries in L is 0:
		say "Nothing left to strip";
		stop the action;
	otherwise:
		let target be entry 1 in L;
		[These targets are most likely player will have in his possession.]
		if target is:	 
			-- amulet: say "The magical amulet is caught in the zombie's claws and ripped from your neck. It flies across the room.";
			-- bell: say "You hear the magic bell clank as it bounces onto the floor.";
			-- book: say "You hear your book fall to the floor with a 'Clop.' ";
			-- right lt_bar: say "The zombie knocks off your [target] and it flutters to the floor.";
			-- left lt_bar: 	say "The zombie knocks off your [target] and it flutters to the floor."; 
			-- otherwise: say "In the battle, your [target] goes skittering across the floor.";
		remove target from L;
		now target is in Columbarium;

The error I get is:
Problem. You wrote ‘-- otherwise’ : but this seems to be misplaced since it is not a case within an ‘if X is…’, as it must be. Each case must be placed one tab stop in from the ‘if X is…’ to which it belongs, and the instructions for what to do in that case should be one tab stop further in still.

Looks like you might have an errant tab in the left lt_bar condition that’s throwing things off? There’s a bunch of extra white space there between the colon and the “say”.

1 Like

Just tested this and you are correct - removing the errant tab lets the code compile.

I wouldn’t exactly call this a bug since placing tabs mid-sentence is not standard coding practice, but it does seem like something the compiler should be able to deal with more elegantly.

2 Likes