Closed EHadoux closed 9 years ago
It isn't strictly possible to get the source but depending on the context you can make a good guess.
For targeted abilities, the selected caster that is closest to the target is used so if you know the location of all the selected units you can pick the correct one (e.g. this works for buildings).
Unit production abilities use the first (in UI display order) available building tied for the lowest queue size. You are correct that the selection tracker order is not the same as the UI ordering. You can probably figure out how to generate the correct UI ordering from the selection tracker ordering though. If you can post that information I'd be happy to provide a second "UI Selection" view that is correctly ordered as part of sc2reader.
For targeted abilities, the selected caster that is closest to the target is used so if you know the location of all the selected units you can pick the correct one (e.g. this works for buildings).
You mean that for, e.g., Chronoboosts, the Nexus casting is the closest from the building and not the first in the selection? I didn't know that. Ofc we still need to check for energy, the closest doesn't necessarily have enough energy.
If you can post that information
I'll try that and come back to you for this particular point.
Yeah, that is right. I believe that @dsjoerg uses an approach similar to the above for ggtracker.
This is reasonably advanced functionality that I don't plan on integrating anytime soon. Now that ggtracker is open source anyone looking for this functionality can look at ggpyjobs.
Hi,
it's currently possible to get the target of an ability but is it possible to get the source (the caster)? I tried with the SelectionTracker to get the current selection before casting the abality but, if there is more than one, say, Nexus, you cannot know which one casted the spell if both have enough energy. Indeed, the order in the selection tracker is not guarantee to be the same as in the real selection.