This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
user:loggy:castingai [2021/06/30 15:26] loggy this is now likely complete enough to give a good impression of how mages decide to do what and where |
user:loggy:castingai [2023/02/24 19:01] loggy fairly important note those self buffing resists |
||
---|---|---|---|
Line 6: | Line 6: | ||
The battlefield location array seems to be stored with offsets of %%((coord2 * 200) + coord 1) * 0x20%% | The battlefield location array seems to be stored with offsets of %%((coord2 * 200) + coord 1) * 0x20%% | ||
+ | Or is it? | ||
+ | |||
+ | When looking for specific units in squares, it's instead %%(index, 0-7 inclusive + ((coord2 * 200) + coord1) * 8)%% | ||
Line 25: | Line 28: | ||
* 4, cause fear type 1 [1] | * 4, cause fear type 1 [1] | ||
* 7, poison damage [1] | * 7, poison damage [1] | ||
- | * 8, remove fatigue? [0] | + | * 8, remove fatigue? [-1] |
* 9, undocumented | * 9, undocumented | ||
- | * 10, bless/buff type 1 [0] | + | * 10, bless/buff type 1 [-1] |
* 11, cause affliction [1] | * 11, cause affliction [1] | ||
- | * 13, heal [0] | + | * 13, heal [-1] |
- | * 23, buff type 2 [0] | + | * 23, buff type 2 [-1] |
* 24, damage x3 vs demon/ | * 24, damage x3 vs demon/ | ||
* 28, enslave [1] | * 28, enslave [1] | ||
Line 138: | Line 141: | ||
* If the spell' | * If the spell' | ||
* square spread = 2 | * square spread = 2 | ||
- | * accurate square weight = (min(1, aoe) * number of effects * 200)/26 | + | * accurate square weight = (max(1, aoe) * number of effects * 200)/26 |
- | * inaccurate square weight = (min(1, aoe) * number of effects * 100)/26 | + | * inaccurate square weight = (max(1, aoe) * number of effects * 100)/26 |
- | * If the spell' | + | * If the spell' |
* square spread = 1 | * square spread = 1 | ||
- | * accurate square weight = min(1, aoe) * number of effects * 20 | + | * accurate square weight = max(1, aoe) * number of effects * 20 |
- | * inaccurate square weight = min(1, aoe) * number of effects * 10 | + | * inaccurate square weight = max(1, aoe) * number of effects * 10 |
* If the final precision is 90+ OR the distance being aimed at is less than (final prec/3): | * If the final precision is 90+ OR the distance being aimed at is less than (final prec/3): | ||
* square spread = 0 | * square spread = 0 | ||
* accurate square weight = 100 | * accurate square weight = 100 | ||
* inaccurate square weight = 0 | * inaccurate square weight = 0 | ||
- | * If the distance being aimed is less than (final prec/6): | + | * If the distance being aimed is less than (final prec/2): |
* square spread = 1 | * square spread = 1 | ||
* accurate square weight = 36 | * accurate square weight = 36 | ||
Line 161: | Line 164: | ||
* If the square struck was the originally picked square at the centre of the square spread (and not the extra ones around it), add (this square' | * If the square struck was the originally picked square at the centre of the square spread (and not the extra ones around it), add (this square' | ||
* If the total score from all the squares is greater than 0: | * If the total score from all the squares is greater than 0: | ||
- | * score = max(1, -5 + closed d10 + (score / 100)) | + | * score = max(1, -5 + closed d10 + (score / 100)) [This divides the weighting multiplied scores from the above by 100 regardless of which spread/ |
- | * If the spell is being aimed less than 10 squares from the caster, some enemies were considered by the spell, and the spell would affect | + | * If the spell is being aimed less than 10 squares from the caster, and the spell is an offensive effect number (effects that returned 1 on the list somewhere above) |
* score = max(1, (score * 10)/max(2, distance from caster)) | * score = max(1, (score * 10)/max(2, distance from caster)) | ||
* Otherwise: | * Otherwise: | ||
Line 203: | Line 206: | ||
* If combat round 2+, this is always 1. | * If combat round 2+, this is always 1. | ||
* In assassination, | * In assassination, | ||
- | * In other cases, this is (2 - round) | + | * In other cases, this is (2 - round)*2 |
Self buff bias is 2 if the caster is the spell' | Self buff bias is 2 if the caster is the spell' | ||
Line 277: | Line 280: | ||
* Otherwise, add (1 - victim' | * Otherwise, add (1 - victim' | ||
- | If the current damage value is greater than (victim' | + | If the current damage value is greater than (victim |
If the spell offers either (or both) an easy or hard MR check: | If the spell offers either (or both) an easy or hard MR check: | ||
Line 283: | Line 286: | ||
* If the spell offers an easy mr check, consider victim' | * If the spell offers an easy mr check, consider victim' | ||
* If the spell does not offer a normal MR check, and (user' | * If the spell does not offer a normal MR check, and (user' | ||
- | * If the spell offers a normal MR check: | + | * If the spell offers a normal MR check, do the first one that applies: |
- | * if (mr > pen bonus + 8), do nothing to damage | + | * if (mr >= pen bonus + 23), divide |
- | * if (mr < pen bonus + 11), multiply | + | * if (mr >= pen bonus + 20), divide |
- | * if (mr < pen bonus + 14), divide damage by 2 | + | * if (mr >= pen bonus + 17), divide damage by 6 |
- | * if (mr < pen bonus + 17), divide damage by 6 | + | * if (mr >= pen bonus + 14), divide damage by 3 |
- | * if (mr < pen bonus + 20), divide damage by 12 | + | * if (mr >= pen bonus + 11), divide damage by 2 |
- | * if (mr < pen bonus + 23), divide | + | * if (mr >= pen bonus + 8), multiply |
+ | * Otherwise, do nothing to damage | ||
If MR check for half damage, multiply damage by 2/3 [shouldn' | If MR check for half damage, multiply damage by 2/3 [shouldn' | ||
Line 402: | Line 406: | ||
* score = max(10, 20 - victim' | * score = max(10, 20 - victim' | ||
* If the spell confers invuln 25: | * If the spell confers invuln 25: | ||
- | * If the recipient' | + | * If the recipient' |
* Otherwise, score = friendly bias | * Otherwise, score = friendly bias | ||
* If the spell confers invuln 15 and does not confer invuln 25: | * If the spell confers invuln 15 and does not confer invuln 25: | ||
- | * If the recipient' | + | * If the recipient' |
* Otherwise, score = friendly bias | * Otherwise, score = friendly bias | ||
* If the spell confers invuln 15 to wolves only, and neither of the two above invuln effects, and the victim is a wolf: | * If the spell confers invuln 15 to wolves only, and neither of the two above invuln effects, and the victim is a wolf: | ||
- | * If the recipient' | + | * If the recipient' |
* Otherwise, score = friendly bias | * Otherwise, score = friendly bias | ||
* If the spell confers power of the spheres: | * If the spell confers power of the spheres: | ||
Line 576: | Line 580: | ||
* If the spell confers desiccation, | * If the spell confers desiccation, | ||
* If the spell confers anything else, score = 1 | * If the spell confers anything else, score = 1 | ||
- | * If the victim has the effect already at some magnitude: | + | * If the victim has the effect already at some magnitude |
* If the spell is trying to add less magnitude than the effect has already, score = 0 | * If the spell is trying to add less magnitude than the effect has already, score = 0 | ||
* If the spell confers damage reversal, score = victim current HP * friendly bias * 10 | * If the spell confers damage reversal, score = victim current HP * friendly bias * 10 |