Blizzard / Blizzard/s2client-proto

Tech requirement for units

Open
#106 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
4k
Forks
440
PR merge metrics
No merged PRs in 30d

Description

Hello,
there seems to be an [issue with units](https://github.com/Blizzard/s2client-proto/blob/33f0ecf615aa06ca845ffe4739ef3133f37265a9/s2clientprotocol/data.proto#L91) that have 2 requirements, e.g. Thor has techlab and armory requirement, Ghost has techlab and ghost academy requirement, Battlecruiser has techlab and fusion core requirement.

However, in the API they all return UnitTypeData.tech_requirement = 0
Also Siegetank seems to return id=5 which is just `TECHLAB`. Wouldn't it be better to return at least `FACTORYTECHLAB` or `FACTORY and TECHLAB`? There are a few more cases like these actually.
Or is that intended behavior that the `tech_requirement` requirement basically only works for buildings?

I'm using [Dentosal's API](https://github.com/Dentosal/python-sc2) but it should still be an issue with the s2client-proto, that is why I'm creating the issue here.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the linked data.proto definition around line 91 and inspect how UnitTypeData.tech_requirement is represented for Thor, Ghost, Battlecruiser, and Siege Tank. Compare those protocol values with the behavior observed through Dentosal's python-sc2 API; done means the intended handling of multiple unit technology requirements is documented or consistently represented.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.