- Home /
Casting-related error: "^ cannot be applied to double and int"
I'm trying to get a formula working to calculate enemy HP based on their level, it looks fine to me, but it returns an error "Operator '^' cannot be applied to operands of type 'double' and 'int'". I assume it's int level within the formula giving it problems, but neither changing level to a double within the argument or casting it as one within the formula seems to get rid of the error.
public float CalculateHP(int level){
float enemyHP;
enemyHP = 10 * (1.6 ^ (Mathf.Min (level, 140) - 1) + Mathf.Min (level, 140) - 1) * (1.15 ^ Mathf.Max (level - 140, 0));
return enemyHP;
}
Answer by tanoshimi · Jun 12, 2015 at 10:02 AM
^ is the XOR operator - it works on Boolean or integral types. https://msdn.microsoft.com/en-us/library/zkacc7k1.aspx
I'm guessing that you meant to calculate 1.6 raised to the power Mathf.Min(level, 140)-1? If so, you're looking for the Mathf.Pow() function.
Oh man, I should've caught that, thank you! This is what I get for copying directly from my scratchpad into code- it works perfectly now :)
Your answer
Follow this Question
Related Questions
Distribute terrain in zones 3 Answers
Help Understanding Script 2 Answers
How to calculate inner vertices of a line renderer? (math question) 1 Answer