I can set it as 1, 2, 3, 4 etc etc. I cannot put . between numbers.
Because they are integers when they should be reals. You
really need to understand the difference between a real number (61.34 or -1.98 or 4.00) and an integer (61 or -1 or 4), as that distinction is super important when writing triggers.
As biridius said in their first reply... Integer math does not round at all; instead it always truncates ("cuts off" or "stops") everything after the dot. So 10/5 = 2, but 9/5 = 1 (this would be 1.8 but the .8 gets cut off and it becomes 1 because of integer truncation). This applies to any computation done using only integers. If you attempt to multiply a number by 1/2 (where 1/2 is made from integers) it will round the 1/2 to 0 and then multiply by that number, giving you 0 again.
Notice that the damage dealt by each each level of the spell are all multiples of each other. I mean that the base damage goes up by 45 for each level, and the int scaling multiplier goes up by 0.50 every level. It's thus possible to rewrite the cooldowns like this:
Level 1: 1 x (45 + 0.50 INT) damage
Level 2: 2 x (45 + 0.50 INT) damage
Level 3: 3 x (45 + 0.50 INT) damage
Level 4: 4 x (45 + 0.50 INT) damage
Level N = N x (45 + 0.50 INT) damage
You could write that in a trigger like this:
-
Set DMG = (Real(Intelligence of Archmage 0041 <gen> (Include bonuses)))
-
Set DMG = (DMG x 0.50)
-
Set DMG = (DMG + 45.00)
-
Set DMG = (DMG x (Real(Level of ABILITY for UNIT)))
-
Floating Text - Create floating text that reads (String(DMG)) above Archmage 0041 <gen>