#탱크
class Tank(AttackUnit):
#시즈모드 : 탱크를 고정시켜, 더 높은 파워로 공격 가능. 이동불가
def __init__(self):
AttackUnit.__init__(self, "탱크", 150, 1, 35)
self.seize_mode = False
seize_developed = False #시즈모드 개발여부
def set_seize_mode(self):
if Tank.seize_developed == False:
return
# 현재 시즈모드가 아닐 때 -> 시즈모드
if self.seize_mode == False:
print("{} : 시즈모드로 전환합니다.".format(self.name))
self.damage *= 2
self.seize_mode = True
# 현재 시즈모드일 떄 -> 시즈모드 해제
else:
print("{} : 시즈모드를 해제합니다.".format(self.name))
self.damage /= 2
self.seize_mode = False
#드랍쉽 : 공중유닛, 수송기, 마린/파이어뱃/탱크 등을 수송, 공격불가
class Flyable:
def __init__(self, flying_speed):
self.flying_speed = flying_speed
def fly(self, name, location):
print("{} : {} 방향으로 날아갑니다. [속도{}]".format(name, location, self.flying_speed))
#공중 공격 유닛 클래스
class FlyableAttackUnit(AttackUnit, Flyable):
def __init__(self, name, hp, damage, flying_speed):
AttackUnit.__init__(self, name, hp, 0, damage)
Flyable.__init__(self, flying_speed)
def move(self, location):
self.fly(self.name, location)
#레이스
class Wraith(FlyableAttackUnit):
def __init__(self):
FlyableAttackUnit.__init__(self, "레이스", 80, 20, 5)
self.clocked = False
def clocking(self):
if self.clocked == True:
print("{} : 클로킹 모드 해제합니다.".format(self.name))
self.clocked == False
else:
print("{} : 클로킹 모드 설정합니다.".format(self.name))
self.clocked == True
def game_start():
print("[알림] 새로운 게임을 시작합니다.")
def game_over():
print("Player : gg")
print("[Player] 님이 게임에서 퇴장하셨습니다.")
game_start()
m1 = Marine()
m2 = Marine()
m3 = Marine()
t1 = Tank()
t2 = Tank()
w1 = Wraith()
attack_units = []
attack_units.append(m1)
attack_units.append(m2)
attack_units.append(m3)
attack_units.append(t1)
attack_units.append(t2)
attack_units.append(w1)
#전군 이동
for unit in attack_units:
unit.move("1시")
#탱크 시즈모드 개발
Tank.seize_developed = True
print("[알림] 탱크 시즈모드 개발이 완료되었습니다.")
#공격모드 준비 (마린 : 스팀팩 탱크 : 시즈모드, 레이스 : 클로킹)
for unit in attack_units:
if isinstance(unit, Marine):
unit.stimpack()
elif isinstance(unit, Tank):
unit.set_seize_mode
elif isinstance(unit, Wraith):
unit.clocking()
#전군 공격
for unit in attack_units:
unit.attack("1시")
#전군 피해
for unit in attack_units:
unit.damaged(randint(5,21))
# 게임 종료
game_over()
[알림] 새로운 게임을 시작합니다. 마린 유닛이 생성되었습니다. 마린 유닛이 생성되었습니다. 마린 유닛이 생성되었습니다. 탱크 유닛이 생성되었습니다. 탱크 유닛이 생성되었습니다. 레이스 유닛이 생성되었습니다. 마린 : 1시 방향으로 이동합니다. [속도 1] 마린 : 1시 방향으로 이동합니다. [속도 1] 마린 : 1시 방향으로 이동합니다. [속도 1] 탱크 : 1시 방향으로 이동합니다. [속도 1] 탱크 : 1시 방향으로 이동합니다. [속도 1] 레이스 : 1시 방향으로 날아갑니다. [속도5] [알림] 탱크 시즈모드 개발이 완료되었습니다. 마린 : 스팀팩을 사용합니다. (HP10 감소) 마린 : 스팀팩을 사용합니다. (HP10 감소) 마린 : 스팀팩을 사용합니다. (HP10 감소) 레이스 : 클로킹 모드 설정합니다. 마린 : 1시 방향으로 적군을 공격합니다. [공격력 5] 마린 : 1시 방향으로 적군을 공격합니다. [공격력 5] 마린 : 1시 방향으로 적군을 공격합니다. [공격력 5] 탱크 : 1시 방향으로 적군을 공격합니다. [공격력 35] 탱크 : 1시 방향으로 적군을 공격합니다. [공격력 35] 레이스 : 1시 방향으로 적군을 공격합니다. [공격력 20] 마린 : 5 데미지를 입었습니다. 마린 : 현재 체력은 25 입니다. 마린 : 12 데미지를 입었습니다. 마린 : 현재 체력은 18 입니다. 마린 : 11 데미지를 입었습니다. 마린 : 현재 체력은 19 입니다. 탱크 : 20 데미지를 입었습니다. 탱크 : 현재 체력은 130 입니다. 탱크 : 10 데미지를 입었습니다. 탱크 : 현재 체력은 140 입니다. 레이스 : 5 데미지를 입었습니다. 레이스 : 현재 체력은 75 입니다. Player : gg [Player] 님이 게임에서 퇴장하셨습니다.
똑같이 한것같은데 어디가 잘못되서 시즈모드가 안되는지
도저히 모르겠습니다 ㅠㅠ