스타크래프트2 봇

압생트(Absinthe)봇 만들기 (#7)

오잎 클로버 2021. 8. 16. 12:00
728x90

이번에 구현하고자 하는 것은 차원관문 업그레이드입니다.

차원관문은 스2에서만 존재하는 특별한 기능 중 하나입니다.관문을 통하여 생산하는 유닛이고, 동력이 통하는 곳이라면 어디서든지 생산이 가능하게 만드는 기능입니다.또, 생산속도 역시 빨라집니다.

 

차원관문을 업그레이드 중이 아니고 인공제어소가 있다면 업그레이드하도록 하는 것이 로직입니다.

async def warpgate_research(self):
    if (
        self.structures(UnitTypeId.CYBERNETICSCORE).ready
        and self.can_afford(AbilityId.RESEARCH_WARPGATE)
        and self.already_pending_upgrade(UpgradeId.WARPGATERESEARCH) == 0
    ):
        cybercore = self.structures(UnitTypeId.CYBERNETICSCORE).ready.first
        cybercore.research(UpgradeId.WARPGATERESEARCH)

업그레이드는 인공제어소에서 하기때문에 인공제어소가 건설 완료되었는 지 확인하고

자원이 충분하며, 동시에 업그레이드 예약이 되어있지않을 때에만 업그레이드하도록 합니다.

first 라는 변수는 가장 첫 번쨰로 지어진 것만 가져오는 변수입니다.

다음번에는 공격을 구현할 것입니다.