Warning: Illegal string offset 'type' in [path]/includes/class_postbit.php(294) : eval()'d code on line 65
Bug Bug Thread: Discussion - Page 297 - .com.unity Forums
.com.unity Forums
  The Official e-Store of Shrapnel Games

This Month's Specials

Raging Tiger- Save $9.00
winSPMBT: Main Battle Tank- Save $6.00

   







Go Back   .com.unity Forums > Illwinter Game Design > Dominions 3: The Awakening

Reply
 
Thread Tools Display Modes
  #2961  
Old July 22nd, 2010, 07:16 AM

thejeff thejeff is offline
General
 
Join Date: Apr 2005
Posts: 3,327
Thanks: 4
Thanked 133 Times in 117 Posts
thejeff is on a distinguished road
Default Re: Bug Thread: Discussion

I can't look at the turn right now, but when you say by himself, there's no one, including enemies near him when he casts bless?

In my tests, targeting was the problem. Bless would target any unit as long as the AoE in its tests included unblessed sacreds. Since the AoE spreads randomly it doesn't always include the same squares and the actual cast might not cover any actual sacreds.
This isn't necessarily a bad approach. If a non-sacred is between 2 groups of sacreds, targeting him might actually cover more sacreds than aiming for any of the actual targets.
Reply With Quote
  #2962  
Old July 22nd, 2010, 09:34 AM

RadicalTurnip RadicalTurnip is offline
Corporal
 
Join Date: Apr 2010
Location: Wichtia, KS
Posts: 96
Thanks: 8
Thanked 5 Times in 4 Posts
RadicalTurnip is on a distinguished road
Default Re: Bug Thread: Discussion

It's rare, but this can happen, I believe the bless spell hits squares randomly and can miss the square it was actually cast in. Not sure that it's a bug, you may have just been unlucky.
Reply With Quote
  #2963  
Old July 22nd, 2010, 10:22 AM

thejeff thejeff is offline
General
 
Join Date: Apr 2005
Posts: 3,327
Thanks: 4
Thanked 133 Times in 117 Posts
thejeff is on a distinguished road
Default Re: Bug Thread: Discussion

I'm pretty sure the target square is always hit. My testing never showed that happening. The debug log will tell you which square was targeted.
I won't get a chance to look at this one until this evening.
Reply With Quote
  #2964  
Old July 22nd, 2010, 02:24 PM

rdonj rdonj is offline
General
 
Join Date: Oct 2007
Posts: 3,007
Thanks: 171
Thanked 206 Times in 159 Posts
rdonj is on a distinguished road
Default Re: Bug Thread: Discussion

This has happened to me numerous times, particularly noticeably with hinnom/ashdod. I've never had it happen with a sidhe lord, funnily enough. But it's happened enough with hinnom/ashdod that I always script them to bless twice now in the early game....
__________________
"Easy-slay(TM) is a whole new way of marketing violence. It cuts down on all the red tape and just butchers people. As a long-time savagery enthusiast myself, I'm very excited about the synergies that the easy-slay(TM) approach brings to the entire enterprise." -Dr DrP
Reply With Quote
  #2965  
Old July 22nd, 2010, 03:52 PM
Squirrelloid Squirrelloid is offline
Major General
 
Join Date: Jun 2009
Posts: 2,157
Thanks: 69
Thanked 116 Times in 73 Posts
Squirrelloid is on a distinguished road
Default Re: Bug Thread: Discussion

Quote:
Originally Posted by thejeff View Post
I can't look at the turn right now, but when you say by himself, there's no one, including enemies near him when he casts bless?

In my tests, targeting was the problem. Bless would target any unit as long as the AoE in its tests included unblessed sacreds. Since the AoE spreads randomly it doesn't always include the same squares and the actual cast might not cover any actual sacreds.
This isn't necessarily a bad approach. If a non-sacred is between 2 groups of sacreds, targeting him might actually cover more sacreds than aiming for any of the actual targets.
There is a single friendly unit in the combat - the caster. (Kinnara thug raiding Caelum PD).

There are non-sacred enemy Caelum PD infantry next to him, but why god why would he target an enemy unit with a spell that only effects allied sacreds? Targeting enemies with bless would surely also constitute a bug.

Anyway, with only one allied sacred (himself), the best way to maximize coverage is obviously to target himself. Its kind of inexcusable that he doesn't. 100% precision is supposed to mean he never misses - what good is that if the targeting behaves inappropriately.
__________________
The ignorant shall fall to the squirrels.
--Chip 4:2

Ulm: Order of the Black Rose - Reimagining MA Ulm

A more Sombre forum: http://z7.invisionfree.com/Dom3mods/index.php?.act=idx. Now with more Maerlande.
Reply With Quote
  #2966  
Old July 22nd, 2010, 05:00 PM

chrispedersen chrispedersen is offline
BANNED USER
 
Join Date: May 2004
Posts: 4,075
Thanks: 203
Thanked 121 Times in 91 Posts
chrispedersen is on a distinguished road
Default Re: Bug Thread: Discussion

I believe (but do not know) that dominions applies a standard template on Aoe effects.

I believe (but do not know) that it will run through target squares and see how many units are withing the Aoe without considering that template. It uses the first square with the highest number of targeted units.

It then casts the spell and the Template is applied which results in a miss.

Sometime ago I worked on determining what the template was. I dno't ahve the results to hand.

However suppose for example the AoE was 4. the template may result in something like this:
.X1
XTX
.X
where X is the template applied effects, T was the target square and 1 is where the caster is standing when he desired to be blessed.

Playing mictlan I need to bless a lot - I almost always bless twice due to the frequency of units being 'missed'.
Reply With Quote
  #2967  
Old July 22nd, 2010, 06:04 PM

thejeff thejeff is offline
General
 
Join Date: Apr 2005
Posts: 3,327
Thanks: 4
Thanked 133 Times in 117 Posts
thejeff is on a distinguished road
Default Re: Bug Thread: Discussion

Ok, that clinches it then.

Yes, the AI will target enemy units with a bless. The targeting AI doesn't know what the spell does. It simulates casting the spell at a variety of targets, evaluates the results and chooses the target with the best score.
The code doesn't think. It can't look at the situation and decide that there is only one sacred unit and therefore it should be targeted. It just tries a bunch of locations and uses the one that seems to work best. In some situations that might legitimately be an enemy unit. If he'd been surrounded by your sacred troops, targeting the center enemy unit might actually get more.

In this case the debug log shows us he targeted the pair of Caelum's troops at 7,19 while your priest was at 6,18:
Code:
best Blessing this far, 6 17 (136 pnts)
best Blessing this far, 7 19 (140 pnts)
spellscore, Blessing score 146 (boost 106 scorat 0)
Eval: Blessing score 162 (fat 0)
comp_castspell: eval Blessing  result 162
best spell so far  Blessing (score100162)
...
castspell: cnr83 spl754 (Blessing) vis0 x7 y19 spldmg1
vis 0 xvis 0
blastsqr: unr2241 x7 y19 aoe1 dmg1 eff10 spc1086373888 as10217 al9
  affectvic vic6186 hv1
hitunit 2241 6186 dmg1 spec1086373888 ba-1
  affectvic vic6188 hv1
hitunit 2241 6188 dmg1 spec1086373888 ba-1
blastsqr: unr2241 x6 y19 aoe1 dmg1 eff10 spc1086373888 as10217 al9
blastsqr: unr2241 x8 y19 aoe1 dmg1 eff10 spc1086373888 as10217 al9
blastsqr: unr2241 x8 y18 aoe1 dmg1 eff10 spc1086373888 as10217 al9
blastsqr: unr2241 x9 y18 aoe1 dmg1 eff10 spc1086373888 as10217 al9
blastsqr: unr2241 x7 y18 aoe1 dmg1 eff10 spc1086373888 as10217 al9
blastsqr: unr2241 x9 y19 aoe1 dmg1 eff10 spc1086373888 as10217 al9
blastsqr: unr2241 x6 y20 aoe1 dmg1 eff10 spc1086373888 as10217 al9
blastsqr: unr2241 x7 y17 aoe1 dmg1 eff10 spc1086373888 as10217 al9
  affectvic vic6184 hv0
hitunit 2241 6184 dmg1 spec1086373888 ba-1
blastsqr: unr2241 x8 y20 aoe1 dmg1 eff10 spc1086373888 as10217 al9
What isn't clear to me is how the evaluation is done. It may be that only 2 tries are made, at 6,17 and 7,19. More likely, I think, the log only shows those tries that produce the best results so far. If only one test is done per target, the results should be binary, either the priest was blessed or he wasn't. But they're not, 7,19 gets 4 more points than 6,17. If multiple tries are made, then self-targeting would have the advantage, since it would always hit. It's possible that multiple, but too few tries are made. It's also possible that something is wrong with the scoring algorithm.



chris: I don't know how the actual squares hit by a given AoE are selected, but it isn't as simple as a single template. If you check the patterns for a couple of casts of the same spell they are different. Just looking at the H2 blessings in Squirreloid's turn I saw 5 different patterns, no repetition. Either it's actually generating random squares by some algorithm or picking from a decent number of templates.
Reply With Quote
  #2968  
Old July 22nd, 2010, 06:24 PM
Squirrelloid Squirrelloid is offline
Major General
 
Join Date: Jun 2009
Posts: 2,157
Thanks: 69
Thanked 116 Times in 73 Posts
Squirrelloid is on a distinguished road
Default Re: Bug Thread: Discussion

Surely the AI should know which targets can be effected by a spell its casting? I mean, it doesn't cast 'effects only enemies' spells on your own troops, nor does it drop its fireball right on your guys right in front of it even though its going to hit a lot more often that way.

Surely if it knows who enemies are, it knows who friendlies are. Blessing only affects friendly units. It shouldn't even look at enemy units for targetting it.
__________________
The ignorant shall fall to the squirrels.
--Chip 4:2

Ulm: Order of the Black Rose - Reimagining MA Ulm

A more Sombre forum: http://z7.invisionfree.com/Dom3mods/index.php?.act=idx. Now with more Maerlande.
Reply With Quote
  #2969  
Old July 22nd, 2010, 07:04 PM

thejeff thejeff is offline
General
 
Join Date: Apr 2005
Posts: 3,327
Thanks: 4
Thanked 133 Times in 117 Posts
thejeff is on a distinguished road
Default Re: Bug Thread: Discussion

Handled differently, I think. The targeting may just try every unit within range. Or maybe a random subset.
The evaluation distinguishes. For damage spells, I believe, damage done to the enemy boosts the score and damage done to your own reduces it.
So, in most cases it doesn't matter who the actual target is. What matters is who is affected. It won't target clumps of your troops with damage spells because that isn't effective. Many of your own get hurt and few or no enemies.

Much of this is guess work. I can see in the debug log that it does target units from both sides. I can see that an evaluation is done. I don't know how it picks the targets to try or what factors into the evaluation. It does look to me as if something is sketchy in the blessing evaluation, but I don't know enough of the details to say.

It would be easy to mod a workaround for this. Just add a H1 Self-Bless spell with AoE 1. Or change the current H1 Bless to AoE 1, but that would make it much harder for nations with only H1 priests to use sacred troops. I'd like to see the Self-Bless added to CBM.

BTW: one quick caution on casting bless twice to avoid this. If the first one works, the AI will choose another spell to cast. Most of the time this will just be some added fatigue, which is still can be problematic for a SC/thug, but I've also had calamities like shockwave thugs casting Ironskin.
Reply With Quote
  #2970  
Old July 24th, 2010, 02:02 AM

chrispedersen chrispedersen is offline
BANNED USER
 
Join Date: May 2004
Posts: 4,075
Thanks: 203
Thanked 121 Times in 91 Posts
chrispedersen is on a distinguished road
Default Re: Bug Thread: Discussion

In the nations I have played I have never seen the AI not cast bless twice if scripted. And I've done it *thousands* of times.

Someone wrote a little mod for just this purpose. Bless cast on caster, and then chained a regular bless.

I do think that bless is screwy.

By the way .. anyone notie that darkness in cave citadels is back working?
Reply With Quote
Reply

Bookmarks


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump


All times are GMT -4. The time now is 04:58 PM.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©1999 - 2024, Shrapnel Games, Inc. - All Rights Reserved.