You can figure out what a Condition is by it's
value.
-
(Current research level of Explode for (Triggering player)) Equal to 1
That's an Integer comparison because the value is
1
-
(Unit-type of (Triggering unit)) Equal to Abomination
That's a Unit-Type comparison because the value is a
Unit-Type - like you'd find in the Object Editor
(not to be mixed up with a Unit comparison which is used to compare two specific units)
-
((Picked unit) is alive) Equal to True
That's a Boolean comparison because the value is either
True or
False
The most common conditions you'll find yourself using are:
Integer comparison - Whether something is Equal to or Not Equal to an integer value like 0, 1, 100. -> Is an ability level 3?
Real comparison - Whether something is Equal to or Not Equal to a real value like 0.1, 1.10, 100.00. -> Is the unit's life less than 50.00%?
Boolean comparison - Whether something is True or False. -> Is the unit alive? Is the unit owned by player 1? Is the player on team 1?
This holds true for Variables as well. Although in this case AbomPoint is confusing since I set it using Custom script (Jass).
But as you can see it's a Point variable as the name suggests.
Note that I'm using Custom script in order to prevent memory leaks as well as a special technique that allows pseudo-local variables. In this case the local variable was needed to prevent an issue when an Abomination would explode and deal lethal damage to another nearby Abomination causing that one to explode as well. If the trigger isn't designed in a way to handle this sort of chain reaction then things can go wrong. It takes a bit of practice and knowledge to figure out all of these edge cases but this is vital in making sure that your triggers are bug free.
Also, don't forget to use the Search For Text feature when looking for Actions. It can be very picky though so try different combinations of words or less words if nothing is showing up.