마지막으로 전투기를 위한 Stealth 클래스를 만들겠습니다.
➊ 전투기는 공중 공격 유닛이므로 FlyableAttackUnit 클래스를 상속받습니다.
➋ 전투기는 은폐라는 특수 기술이 있어서 사용하면 상대방이 볼 수 없습니다. 은폐 기술은 편의상 업그레이드가 완료됐다고 가정하겠습니다. 부모 클래스인 FlyableAttackUnit 클래스의 생성자로 기본 정보를 설정합니다.
➌ 은폐 여부를 확인하기 위해 cloaked 인스턴스 변수를 추가로 정의합니다.
➍ 은폐 모드를 설정하기 위한 cloaking() 메서드를 정의합니다. 탱크의 시지 모드와 비슷하게 은폐 모드 여부에 따라서 설정(True)과 해제(False)를 하도록 if-else 문으로 작성합니다.
➎ 은폐 모드 설정 여부를 True 또는 False로 cloaked 인스턴스 변수에 저장합니다. 확인을 위한 문구도 함께 출력합니다.
# 전투기 유닛
class Stealth(FlyableAttackUnit):---- ➊ FlyableAttackUnit 클래스 상속
def __init__(self):
FlyableAttackUnit.__init__(self, "전투기", 80, 20, 5) ---- ➋ 부모 클래스 생성자로 기본 정보 설정
self.cloaked = False--------- ➌ 은폐 모드(해제 상태), 인스턴스 변수 정의
def cloaking(self):-------------- ➍ 은폐 모드를 메서드로 정의
# 현재 은폐 모드일 때
if self.cloaked == True:
print("{0} : 은폐 모드를 해제합니다.".format(self.name))
self.cloaked = False----- ➎ 은폐 모드 해제
# 현재 은폐 모드가 아닐 때
else:
print("{0} : 은폐 모드를 설정합니다.".format(self.name))
self.cloaked = True------ ➎ 은폐 모드 설정