보병은 강화제라는 특수 기술이 있습니다. 특수 기술을 사용하면 일정 시간 동안 이동 속도와 공격 속도가 아주 빠르게 증가합니다. 그 대신 체력이 10만큼 소모되므로 현재 남은 체력이 10보다 클 때만 사용할 수 있다는 조건이 필요합니다. 이 책에서는 다른 부분은 제외하고 특수 기술을 사용할 수 있는지 여부 확인과 체력 소모에 대해서만 작성하겠습니다.
기존에는 AttackUnit 클래스로 보병, 탱크 등 지상 유닛을 생성했지만, 이제는 각 유닛을 직접 클래스로 정의하겠습니다. 먼저 보병 유닛을 위한 Soldier 클래스를 만듭니다.
➊ 보병은 공격 유닛입니다. 따라서 AttackUnit 클래스를 상속받아 AttackUnit 클래스의 생성자로 체력, 공격력, 이동 속도를 설정합니다.
➋ 강화제 기능을 위해 booster()라는 메서드를 만듭니다. 체력이 10보다 크면 체력 10을 소모한 후 강화제를 사용한다는 안내 문구를 출력하고, 10보다 작으면 강화제 사용이 불가능하다는 문구를 출력합니다.
# 보병 유닛
class Soldier(AttackUnit): --------- ➊ AttackUnit 클래스 상속
def __init__(self):
AttackUnit.__init__(self, "보병", 40, 5, 1) # 이름, 체력, 공격력, 이동 속도
# 강화제: 일정 시간 동안 이동 속도와 공격 속도 증가, 체력 10 감소
def booster(self): ------------- ➋ 강화제 기능 메서드로 정의
if self.hp > 10:
self.hp -= 10 # 체력 10 소모
print("{0} : 강화제를 사용합니다. (HP 10 감소)".format(self.name))
else:
print("{0} : 체력이 부족해 기술을 사용할 수 없습니다".format(self.name))