728x90
이번에 구현하고자 하는 것은 사이버네틱스 코어 (인공 제어소) 건설입니다.
테크를 진행하는 건물 중 하나이자, 스타크래프트 2에서 프로토스를 더 포크로 만들어준 기능을 업그레이드를 할 수 있는 건물입니다. 공중 업그레이드와 차원관문을 업그레이드할 수 있습니다.
간단한 로직을 세워봅시다. 먼저 인공 제어소는 수정탑과 관문이 있어야지만 건설 가능한 건물입니다. 역시 당연하게도 주변에 동력이 공급되어야지만 건설 가능합니다. 이를 토대로 한 코드가 아래와 같습니다.
async def build_core(self):
if self.structures(UnitTypeId.PYLON).ready:
pylons = self.structures(UnitTypeId.PYLON).ready.random
if self.structures(UnitTypeId.GATEWAY).ready:
if not self.structures(UnitTypeId.CYBERNETICSCORE):
if (
self.can_afford(UnitTypeId.CYBERNETICSCORE)
and self.already_pending(UnitTypeId.CYBERNETICSCORE) == 0
):
await self.build(UnitTypeId.CYBERNETICSCORE, near=pylons)
already_pending 메소드는 특정 유닛 종류를 생산 혹은 건설을 하기로 예약이 되어 있는 지를 확인하는 메소드이다.
인공 제어소는 하나만 지어도 괜찮다.
(공중 유닛 업그레이드 시간이 길며, 공중으로만 공격을 할 지라도 딱히 많이 필요하지 않기 때문이다)
다음엔 관문에서 유닛 생산을 구현하겠습니다.
'스타크래프트2 봇' 카테고리의 다른 글
압생트(Absinthe)봇 만들기 (#6) (0) | 2021.08.15 |
---|---|
압생트(Absinthe)봇 만들기 (#5) (0) | 2021.08.14 |
압생트(Absinthe)봇 만들기 (#3) (0) | 2021.08.12 |
압생트(Absinthe)봇 만들기 (#2) (0) | 2021.08.11 |
압생트(Absinthe)봇 만들기 (#1) (0) | 2021.08.10 |