플레이어 장비의 헬멧과 바지의 인챈트 효과는 액티브 스킬을 부여할 수 있습니다. 그래서 전투에 들어가기전 전투 스킬 UI 버튼의 온클릭 이벤트에 액티브 스킬을 세팅할 수 있도록 구현했습니다.
// ORDER : #7) 전투 시 플레이어 캐릭터의 바지와 헬멧의 인챈트를 확인하여 액티브 스킬을 장착
// 액티브 스킬을 세팅합니다.
public void InitAbility(Helmet helmet, Pants pants, BattleStatus status)
{
if (helmet.suffix != null && helmet.suffix.isIncantAbility)
// 헬멧의 접미 인챈트가 있고 인챈트에 따로 효과가 있다면
{
HelmetIncant incant = helmet.suffix as HelmetIncant;
// 인챈트에서 효과 정보를 가지고 와서 세팅합니다.
helmetAbility.gameObject.SetActive(true);
helmetAbility.Init(helmet.suffix.abilityIcon, incant.skillCoolTime);
helmetAbility.AbilityBtn.onClick.AddListener(() =>
{
if (BattleManager.Instance.currentBattleState != BattleSceneState.Battle) return;
incant.ActiveSkill(status);
});
}
else
{
// 없다면 스킬 UI를 숨겨줍니다.
helmetAbility.gameObject.SetActive(false);
}
if (pants.suffix != null && pants.suffix.isIncantAbility)
// 바지에 접미 인챈트가 있고 인챈트에 따로 효과가 있다면
{
PantsIncant incant = pants.suffix as PantsIncant;
// 인챈트에서 효과 정보를 가지고 와서 세팅합니다.
PantsAbility.gameObject.SetActive(true);
PantsAbility.Init(pants.suffix.abilityIcon, incant.skillCoolTime);
PantsAbility.AbilityBtn.onClick.AddListener(() =>
{
if (BattleManager.Instance.currentBattleState != BattleSceneState.Battle) return;
incant.ActiveSkill(status);
});
}
else
{
// 없다면 스킬 UI를 숨겨줍니다.
PantsAbility.gameObject.SetActive(false);
}
}'Portfolio > Portfolio_RiseTheTower' 카테고리의 다른 글
| #8) 스테이지 선택 씬에서 무한 스크롤링 UI 구현 (0) | 2023.07.26 |
|---|---|
| #6) 현재 무기 외형에 따라 나올 애니메이션 컨트롤러를 변경 (0) | 2023.07.26 |
| #5) 현재 자신의 위치에서 가장 가까운 컨트롤러를 반환하는 함수 (0) | 2023.07.26 |
| #4) 제네릭 형식 제약조건을 사용한 장비아이템 데이터를 가져오는 함수 (0) | 2023.07.26 |
| #3) 현재 상태에 따라 컨트롤러의 동작을 변경하는 상태패턴 구현 (0) | 2023.07.26 |