-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path알고리즘.txt
More file actions
32 lines (23 loc) · 2.79 KB
/
알고리즘.txt
File metadata and controls
32 lines (23 loc) · 2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
스킬 유효성 판단 알고리즘
1. 게임플레이어에 전투실행기 자체를 저장
2. 전투 실행기에 스킬 유효성 판단하는 메서드를 포함(또는 전투실행기가 가진 게임플레이어 데이터를 상속받은 클래스로 분리)
3. 아군 객체와 적군 객체는 AllyStatusManager, EnemyStatusManager 로 존재하며
서로 다른 연관점이 없는 별도의 클래스 이나 처리를 위한 메서드는 동일하게 존재함
4. ui 조작 시에 스킬정보, 사용자 맾id, 대상 맵id 를 위의 매서드에 전달하여 실행
5.유효성 검사(대상타입, 사용자위치, 대상 위치) 전부 통과 시
해당 스킬의 데미지 배율 * 공격자의 공격력 * (100 - 대상의 방어력) 의 피해 만큼 데미지 부여 및 스킬의 추가효과 부여
-- 광역기 일 경우에 타입, 사용자 위치만 판단하고, 반복문을 사용하여 전체에게 적용
-- 추가효과가 회복, 기습추뎀 과 같은 피해량이나 회복인지와 같이 직접적으로 연관된 경우 이를 최우선으로 처리
-- 적군은 ui 조작이 아닌 전체 스킬을 전부 판단하고 사용가능한 스킬의 index를 배열로 저장(적은 알고리즘에 따라 스킬을 사용하도록 지정해야 함)
-- 아군은 해당 알고리즘 만으로 행동처리하게 지정(ui 조작을 통해 필요한 데이터를 모두 가져올 수 있음)
적 스킬 사용 알고리즘
1. 위의 유효성 판단 알고리즘을 통과한 스킬 리스트를 불러옴
2.모든 스킬을 알고리즘 종류(공격우선(공격력 우선, 약화된 대상 우선), 디버프, 버프 우선, 상태이상 우선) 에 따른 스킬 우선순위 선정
알고리즘 종류는 각 적 객체의 algorithme 속성으로 저장되며 2가지 이상의 조건문을 통한 혼합 도 가능
(ex1 : 1.버프 2.공격)(ex2: if(체력 50미만인 대상 있음, 약화, 공격))
2 - 1 공격력(공격력이 1 이상인 모든 스킬을 모든 대상에게 시뮬하여 가장 예상 피해량이 높은 케이스를 사용)
2 - 2 약화(가장 체력이 낮은 대상에게 사용 가능한 스킬 전부 시뮬 후 가장 피해량 높은 케이스 사용)
2 - 3 버프(사용가능한 스킬 중 아군을 강화하는 스킬을 최우선으로 사용[버프기 2개 이상일 시 index 낮은것 우선사용])
2 - 4 디버프(사용가능한 스킬 중 적에게 디버프를 부여하는 스킬을 최우선으로 사용[디버프기 2개 이상일 시 index 낮은것 우선사용])
2 - 5 상태이상(사용 가능한 스킬 중 적에게 자신이 부여하는 상태이상을 가장 많이 가진 대상에게 해당 상태이상을 부여하는 스킬 사용)
3. 알고리즘에 따라 선정된 스킬 우선순위가 가장 높은 스킬 사용