개발 일지
13일차 개발이다. 마찬가지로 오전부터 쭉 개인 작업 시작했다.
목표
(+) 이직신청서
(+) 아이템 사용하면 아이템 화면 갱신
(+) 스킬 데이터 바탕으로 힐, 버프주기
(+) 데미지 바탕으로 적 데미지 주기
(+) all flight 이후 enable한 사람들은 다시 enable
(+) 전투 끝나면 가디언들은 다시 enable, is run 마나 확인 (힐), 필드 아이템 사용 확인
(+) 스킬 데이터 이용해서 데미지 만들기
(+) 맵핵 안됨
(+) 캐릭터 초기 생성시 이름 겹치지 않게 검증
(+) 장비템 착용 겹치는 것
(+) 텔레포트 스크롤 기능 구현 및 횟수 제한
(-) 수호대 개인 장비 벗기 안됨
(-) 수호대에 따라 시작 위치 바뀌는 것
(-) 이동할 때 한번씩 비어있는 몬스터 주는 것
(-) 1번만 쓸 수 있는 스킬 카운트
(-) 치트 로직
(-) 전투 밸런스
(-) 저장 -> 못한 것 내일 진행 예정
개발 이슈
장비템 착용 겹치는 것 (해결 완료)
# in Guardian class....
def add_equipment(self, equipment_):
"""
_equipment list에 아이템을 추가합니다.
"""
if not isinstance(equipment_, Item):
raise "장비 아이템을 입력해주세요"
equip_list: list
equipment_: Item
equip_list = self.equipment_list
# 아이템 추가 및 아이템에 점유 표식
equip_list.append(equipment_)
equipment_.set_occupied(self.character_name)
# in Archer class....
def add_equipment(self, equipment_):
"""
_equipment list에 아이템을 추가합니다.
궁수의 제한사항이 더 붙습니다.
"""
equipment_: Item
if not isinstance(equipment_, Item):
raise "장비 아이템을 입력해주세요"
if equipment_.item_type == ItemData.equip_head and equipment_.item_classification \
not in [ItemData.classification_leather, ItemData.classification_fabric]:
raise "궁수는 머리에 가죽, 천만 착용할 수 있습니다.\n"
if equipment_.item_type == ItemData.equip_upper_cloth and equipment_.item_classification \
not in [ItemData.classification_leather, ItemData.classification_fabric]:
raise "궁수는 상의에 가죽, 천만 착용할 수 있습니다.\n"
if equipment_.item_type == ItemData.equip_lower_cloth and equipment_.item_classification \
not in [ItemData.classification_leather, ItemData.classification_fabric]:
raise "궁수는 하의에 가죽, 천만 착용할 수 있습니다.\n"
if equipment_.item_type == ItemData.equip_lower_cloth and equipment_.item_classification \
not in [ItemData.classification_leather, ItemData.classification_fabric]:
raise "궁수는 장갑에 가죽, 천만 착용할 수 있습니다.\n"
if equipment_.item_type == ItemData.equip_right_hand and equipment_.item_classification != ItemData.classification_bow:
raise "궁수는 활류만 착용할 수 있습니다.\n"
if equipment_.item_type == ItemData.equip_left_hand and equipment_.item_classification \
in [ItemData.classification_leather_shield, ItemData.classification_chain_shield,
ItemData.classification_iron_shield]:
raise "궁수는 방패를 착용할 수 없습니다.\n"
super().remove_same_type_item(equipment_)
equip_list: list
equipment_: Item
equip_list = self.equipment_list
# 아이템 추가 및 아이템에 점유 표식
equip_list.append(equipment_)
equipment_.set_occupied(self)


해결 전 상황은 장비를 착용 이후엔 같은 부위에 중첩되어 착용되는 버그가 있었다.
별의 별 방법을 써도, 안되길래, 잠깐 밖에 나가서 쉬고 왔다.
돌아와서 보니, 상속 받고 있던 하위 클래스에서 오버라이딩하여 기존 부모 함수가 무시되고 있었는데,
부모 함수에서 마치 기능이 작동되는 것처럼 코드를 작성해놔서(내가)...
디버그 해결에 오랜 시간이 걸렸다.
사실 중간에 통합하면서 오버라이딩하게 되었는데
이런 중요한 것을 인지하지 못했다!
다음 부터는 오버라이딩 함수가 있을 때, 자식에서 다 따로 구현할 예정이라면 부모에 항상 pass를 적어놓든, 주석처리를 해놓든 주의를 해야겠다.
오늘도 많은 기능들을 구현한 것 같다. 마감의 압박이 생각보다 큰 것 같다.
하루 빨리 코드들이 대통합되고 필요 요구사항들이 완성되길 기원합니다.
감사합니다.
'광주인력개발원' 카테고리의 다른 글
소프트웨어 요구 사양서(SRS) 제작 일지 0일차 [2023-06-01] (0) | 2023.06.01 |
---|---|
레전드오브복이 개발일지 14일차- 마지막날 - [2023-05-25] (0) | 2023.05.31 |
레전드오브복이 개발일지 12일차 [2023-05-23] (0) | 2023.05.31 |
레전드오브복이 개발일지 11일차 [2023-05-22] (0) | 2023.05.31 |
레전드오브복이 개발일지 10일차 [2023-05-21] (0) | 2023.05.31 |