s2client-proto icon indicating copy to clipboard operation
s2client-proto copied to clipboard

Add energy cost to AbilityData

Open Dentosal opened this issue 7 years ago • 9 comments

Currently there seems to be no way to find out how much energy using an ability costs

Cost itself is already mentioned in a comment in data.proto. I suppose this means energy cost, because for building units and researching upgrades the cost data is already available, and for others there is no mineral or vespene cost:

// Stuff that may be important: cost, range, Alignment, targetfilters.

Dentosal avatar Aug 21 '17 18:08 Dentosal

Yes it looks like we are missing energy cost currently. Good suggestion.

To be more general, maybe we should have a health cost too. (eg. Stim)

KevinCalderone avatar Aug 21 '17 20:08 KevinCalderone

Would it be better to have an additional field that specifies what resource it's using? Are there any other resources than energy and health and is health only used by stim? I can't think of anything else.

kuzi117 avatar Aug 21 '17 20:08 kuzi117

Void Ray slowdown?

Dentosal avatar Aug 21 '17 20:08 Dentosal

Err, I think there's no cost associated with Prismatic Alignment beyond the cooldown. I figure the slowdown is an effect and not a cost.

kuzi117 avatar Aug 21 '17 21:08 kuzi117

That sounds right. How about archon merge, Zerg morphs and nuke calldown, that result to loss of other units? Probably not an issue either, since it should be quite clear what happens with those.

Dentosal avatar Aug 21 '17 21:08 Dentosal

I feel like nuke calldown is interesting because nukes could be considered a resource, but it's a global resource instead of per unit. Merge and morph are interesting, I'm not sure if the unit could be considered a "cost" in this sense though. Perhaps there's something different that could specify it? Maybe for archons is makes sense because it costs "another unit" but otherwise don't have a cost. You bring up another good point with morphs though. Morphing is an ability that costs minerals/gas. I believe the definition for abilities they gave also includes things like Terran buildings creating attachments. Those also have an associated cost.

kuzi117 avatar Aug 21 '17 21:08 kuzi117

All Zerg morphs create a new unit that cannot be obtained otherwise (at least currently), and you can always check the cost of the new unit. GameData contains repeated UnitTypeData field that contains following info on baneling:

unit_id: 9
name: "Baneling"
available: true
cargo_size: 2
attributes: Biological
movement_speed: 2.5
armor: 0.0
mineral_cost: 50
vespene_cost: 25

Other related case would be buildings. Do their abilities need to have the cost listed, or is it enough to be able to fetch it from the unit list. I think it is, but I'm not completely sure.

Dentosal avatar Aug 21 '17 21:08 Dentosal

Another interesting case is Oracle energy: The ability itself costs 25 energy to activate, and then some energy per every second. Viper has similar ability, Consume. Both abilities take hp, but oracle targets moving units, and viper friendly structures. Moreover, Consume gives energy instead of reducing it, but that could just be marked with negative energy cost. Maybe using two values, energy_cost and energy_cost_per_second could be possible?

Dentosal avatar Jan 05 '18 14:01 Dentosal

Would still be nice getting an energy_cost for an ability :)

noxiaz avatar Oct 28 '18 21:10 noxiaz