Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
ExtendedDatas.h
이 파일의 문서화 페이지로 가기
1#pragma once
2
3#include "CK_UE.h"
5#include "GameplayTagContainer.h"
6#include "ExtendedDatas.generated.h"
7
8class UGameplayEffect;
9class UAnimMontage;
10class UDataTable;
13
14
15USTRUCT()
17{
18 GENERATED_BODY()
19};
20
21
22#pragma region Attack Combo Datas
23
24// 플레이어 기본 공격 (콤보)
25USTRUCT()
27{
28 GENERATED_BODY()
29
30public:
31 UPROPERTY(EditDefaultsOnly, Category = "Combo")
32 TObjectPtr<UAnimMontage> ComboMontage;
33
34 UPROPERTY(EditDefaultsOnly, Category = "Combo")
35 FString MontageSectionNamePrefix;
36
37 UPROPERTY(EditDefaultsOnly, Category = "Combo")
38 uint8 MaxComboCount = 0;
39};
40
41// 적 단발 공격
42USTRUCT()
44{
45 GENERATED_BODY()
46
47public:
48 UPROPERTY(EditDefaultsOnly, Category = "Animation")
49 TObjectPtr<UAnimMontage> PlayMontage;
50};
51
52USTRUCT()
54{
55 GENERATED_BODY()
56
57public:
58 UPROPERTY(EditDefaultsOnly, Category = "Animation")
59 TMap<FGameplayTag, TObjectPtr<UAnimMontage>> PlayMontageMap;
60};
61
62USTRUCT()
64{
65 GENERATED_BODY()
66
67public:
68 UPROPERTY(EditDefaultsOnly, Category = "Animation")
69 TObjectPtr<UAnimMontage> PlayMontage;
70};
71
72USTRUCT()
74{
75 GENERATED_BODY()
76
77public:
78 UPROPERTY(EditDefaultsOnly, Category = "Cooldown", meta = (Categories = "Cooldown"))
79 FGameplayTag CooldownTag;
80
81 UPROPERTY(EditDefaultsOnly, Category = "Cooldown")
82 float CooldownDuration = 1.0f;
83
84 UPROPERTY(EditDefaultsOnly, Category = "Cost")
85 float CostValue = 0.0f;
86};
87
88USTRUCT()
90{
91 GENERATED_BODY()
92
93public:
94 FORCEINLINE float GetRotationDuration() const { return RotationDuration; }
95 FORCEINLINE float GetTurnSpeed() const { return TurnSpeed; }
96 FORCEINLINE float GetTolerance() const { return Tolerance; }
97
98protected:
99 UPROPERTY(EditDefaultsOnly, Category = "Rotation", meta = (ClampMin = "0.0", ToolTip = "공격 전 대상을 추적하며 회전하는 시간", Units = s))
100 float RotationDuration = 1.5f;
101
102 UPROPERTY(EditDefaultsOnly, Category = "Rotation", meta = (ClampMin = "0.0", ToolTip = "회전 보간 속도 계수입니다. 초당 회전 각도가 아니며, 값이 클수록 목표 방향을 빠르게 따라갑니다. 0이면 목표 방향으로 즉시 회전."))
103 float TurnSpeed = 10.0f;
104
105 UPROPERTY(EditDefaultsOnly, Category = "Rotation", meta = (ClampMin = "0.0", ToolTip = "목표 방향을 바라본 것으로 판단할 수평 각도 오차"))
106 float Tolerance = 0.0f;
107};
108
109USTRUCT()
111{
112 GENERATED_BODY()
113
114public:
115 UPROPERTY(EditDefaultsOnly, Category = "DashAttack|Hit", meta = (ClampMin = "1"))
116 int32 CombatHitDataIndex = 1;
117
118 UPROPERTY(EditDefaultsOnly, Category = "DashAttack|Section")
119 FName DashSectionName = FName("Dash_Start");
120
121 UPROPERTY(EditDefaultsOnly, Category = "DashAttack|Section")
122 FName EndSectionName = FName("Dash_End");
123
124 UPROPERTY(EditDefaultsOnly, Category = "DashAttack|Section", meta = (Categories = "Event"))
125 FGameplayTag ReadyEventTag;
126
127 UPROPERTY(EditDefaultsOnly, Category = "DashAttack|Move", meta = (ClampMin = "0.0"))
128 float DashSpeed = 1800.0f;
129
130 UPROPERTY(EditDefaultsOnly, Category = "DashAttack|Move", meta = (ClampMin = "0.0"))
131 float MaxDashDistance = 1400.0f;
132
133 UPROPERTY(EditDefaultsOnly, Category = "DashAttack|Rotation")
134 FTargetRotationSettings RotationSettings;
135
136 UPROPERTY(EditDefaultsOnly, Category = "DashAttack|Warning", meta = (ClampMin = "0.0"))
137 float WarningDuration = 3.0f;
138
139 UPROPERTY(EditDefaultsOnly, Category = "DashAttack|Decal")
141};
142
143USTRUCT()
145{
146 GENERATED_BODY()
147
148public:
149 UPROPERTY(EditDefaultsOnly, Category = "RangedAttack|Hit", meta = (ClampMin = "1"))
150 int32 CombatHitDataIndex = 1;
151
152 UPROPERTY(EditDefaultsOnly, Category = "RangedAttack", meta = (ToolTip = "발사체 클래스 선택"))
153 TSubclassOf<ADamagedProjectile> ProjectileClass;
154
155 UPROPERTY(EditDefaultsOnly, Category = "RangedAttack", meta = (ToolTip = "발사체 메시 컴포넌트 태그"))
156 FName ProjectileComponentTag;
157
158 UPROPERTY(EditDefaultsOnly, Category = "RangedAttack", meta = (ToolTip = "발사체가 생성될 소켓 이름"))
159 FName ProjectileSpawnSocketName;
160};
161
162USTRUCT()
164{
165 GENERATED_BODY()
166
167public:
168 UPROPERTY(EditDefaultsOnly, Category = "BossPattern|Section")
169 FName EndSectionName = FName("Section_End");
170
171 UPROPERTY(EditDefaultsOnly, Category = "BossPattern|Event", meta = (Categories = "Event"))
172 FGameplayTag LoopStartEventTag;
173
174 UPROPERTY(EditDefaultsOnly, Category = "BossPattern|Trace")
175 FVector TraceTransformLocalOffset = FVector(300.0f, 0.0f, 0.0f);
176
177 UPROPERTY(EditDefaultsOnly, Category = "BossPattern|Warning", meta = (ClampMin = "0.0"))
178 float WarningDuration = 2.0f;
179
180 UPROPERTY(EditDefaultsOnly, Category = "BossPattern|Warning", meta = (ClampMin = "1"))
181 int32 WarningDecalDataIndex = 2;
182
183 UPROPERTY(EditDefaultsOnly, Category = "BossPattern|Warning")
184 FPatternWarningDecalSettings WarningDecalSettings;
185};
186
187#pragma endregion
188
189
190#pragma region Skill Datas
191
192// 차지 스킬
193USTRUCT()
195{
196 GENERATED_BODY()
197
198public:
199 UPROPERTY(EditDefaultsOnly, Category = "Charge")
200 TObjectPtr<UDataTable> ChargePhaseDataTable;
201
202 UPROPERTY(EditDefaultsOnly, Category = "Charge")
203 TArray<TObjectPtr<UAnimMontage>> AttackMontages;
204
205 UPROPERTY(EditDefaultsOnly, Category = "Audio", meta = (Categories = "Audio.SFX"))
206 FGameplayTag ChargeLoopAudioTag;
207};
208
209// 무기 요청 스킬 (LockOn 타겟에 무기 투사체 소환)
210USTRUCT()
212{
213 GENERATED_BODY()
214
215public:
216 UPROPERTY(EditDefaultsOnly, Category = "WeaponRequest", meta = (Categories = "Weapon"))
217 TMap<FGameplayTag, TSubclassOf<AWeaponProjectile>> WeaponProjectileClasses;
218};
219
220
221// UGA_Skill_StrikeBase 공통 데이터. Strike 계열 스킬이 공유하는 페이즈/이동 설정.
222USTRUCT()
224{
225 GENERATED_BODY()
226
227public:
228 // 몽타주의 Preparing 섹션 이름
229 UPROPERTY(EditDefaultsOnly, Category = "WarpStrike|Phase")
230 FName PreparingSectionName = FName("Preparing");
231
232 // 이동 중 재생할 몽타주 섹션 이름
233 UPROPERTY(EditDefaultsOnly, Category = "WarpStrike|Phase")
234 FName HoldingSectionName = FName("Holding");
235
236 // 몽타주의 Strike 섹션 이름
237 UPROPERTY(EditDefaultsOnly, Category = "WarpStrike|Phase")
238 FName StrikeSectionName = FName("Strike");
239
240 // 워프 도중 다른 폰을 통과하도록 충돌 무시 처리할지 여부
241 UPROPERTY(EditDefaultsOnly, Category = "WarpStrike")
242 bool bIgnorePawnCollisionDuringWarp = true;
243
244 UPROPERTY(EditDefaultsOnly, Category = "WarpStrike|Move")
245 TObjectPtr<UCurveFloat> StrikeMoveProgressCurve;
246
247 UPROPERTY(EditDefaultsOnly, Category = "WarpStrike|Move", meta = (ClampMin = "0.0"))
248 float StrikeMoveDuration = 0.25f;
249
250 // Holding 섹션에서 이동 시작 전 대기할 시간
251 UPROPERTY(EditDefaultsOnly, Category = "WarpStrike|Phase", meta = (ClampMin = "0.0"))
252 float HoldingDuration = 0.1f;
253
254 // Strike 섹션 시작 후 MotionWarping Target을 갱신하기까지의 지연 시간
255 UPROPERTY(EditDefaultsOnly, Category = "WarpStrike|Phase", meta = (ClampMin = "0.0"))
256 float StrikeMotionWarpDelay = 0.0f;
257};
258
259
260// 워프 스트라이크 스킬 (UGA_Skill_Strike) 전용 데이터
261USTRUCT()
263{
264 GENERATED_BODY()
265};
266
267
268USTRUCT()
270{
271 GENERATED_BODY()
272
273public:
274 UPROPERTY(EditDefaultsOnly, Instanced, Category = "WeaponRequest|Target")
275 TObjectPtr<class UTargetSelector> TargetSelector;
276
277 UPROPERTY(EditDefaultsOnly, Instanced, Category = "WeaponRequest|Pull")
278 TObjectPtr<class UTickableProjectileActionBase> PullBehavior;
279
280 // 플레이어 기준 최대 임팩트 거리. 타겟이 이 거리 바깥이면 해당 방향의 최대 거리 지점에 낙하한다.
281 UPROPERTY(EditDefaultsOnly, Category = "WeaponRequest|Target", meta = (ClampMin = "0.0"))
282 float MaxImpactDistance = 2000.0f;
283
284 // (플레이어 → 임팩트) 사이에 벽 등 StaticCollision이 있으면, 충돌 지점에서 이 거리만큼 앞당겨 낙하시킨다.
285 UPROPERTY(EditDefaultsOnly, Category = "WeaponRequest|Target", meta = (ClampMin = "0.0"))
286 float ImpactObstructionOffset = 150.0f;
287
288 // 스폰 고도 — 임팩트 지점 위로 N cm. 너무 작으면 비스듬한 궤도가 나오지 않음.
289 UPROPERTY(EditDefaultsOnly, Category = "WeaponRequest|Path")
290 float SpawnHeightAboveImpact = 2000.0f;
291
292 // 타겟 기준 우측(+) / 좌측(-) 오프셋 — "측면에서 진입"하는 시각 효과의 핵심. 0이면 정수직 낙하.
293 UPROPERTY(EditDefaultsOnly, Category = "WeaponRequest|Path")
294 float SpawnLateralOffset = 700.0f;
295
296 // (플레이어 → 타겟) 방향 추가 오프셋 — 타겟 너머 상공에서 진입 궤도가 형성되도록 보정.
297 UPROPERTY(EditDefaultsOnly, Category = "WeaponRequest|Path")
298 float SpawnForwardOffset = 350.0f;
299
300 // 스킬 발동 후 무기를 실제로 발사하기까지의 딜레이(초).
301 UPROPERTY(EditDefaultsOnly, Category = "WeaponRequest|Pull", meta = (ClampMin = "0.0"))
302 float WeaponLaunchDelay = 3.0f;
303};
304
305
306USTRUCT()
308{
309 GENERATED_BODY()
310
311public:
312 // 끌어당김 검색 반경(cm). 무기 임팩트 지점 기준 구형 영역.
313 UPROPERTY(EditDefaultsOnly, Category = "StarField")
314 float PullRadius = 800.f;
315
316 // LaunchCharacter에 곱해질 속도 크기(=요구사항의 K).
317 UPROPERTY(EditDefaultsOnly, Category = "StarField")
318 float PullStrength = 1500.f;
319
320 // 끌어당김 시 위 방향 보정값 — 0이면 지면 마찰로 인해 끌어당김이 약해 보일 수 있음.
321 UPROPERTY(EditDefaultsOnly, Category = "StarField")
322 float PullZComponent = 0.15f;
323
324 // 검색에 사용할 콜리전 채널 — 적 캡슐이 응답하는 채널과 일치해야 함.
325 UPROPERTY(EditDefaultsOnly, Category = "StarField")
326 TEnumAsByte<ECollisionChannel> OverlapChannel = ECC_Pawn;
327
328 // 선택: 광역 추가 효과 (소량 데미지/슬로우/디버프 등). 비어있으면 끌어당김만 수행.
329 UPROPERTY(EditDefaultsOnly, Category = "StarField")
330 TArray<TSubclassOf<UGameplayEffect>> AreaEffects;
331
332 // 끌어당김 지속 시간(초). 0 이하면 과거처럼 1회 펄스 후 즉시 종료.
333 UPROPERTY(EditDefaultsOnly, Category = "StarField", meta = (ClampMin = "0.0"))
334 float PullDuration = 1.5f;
335
336 // 펄스 적용 간격(초). 0 이하면 시작 시 1회만 적용.
337 UPROPERTY(EditDefaultsOnly, Category = "StarField", meta = (ClampMin = "0.0"))
338 float PullInterval = 0.1f;
339};
340
341#pragma endregion
Definition DamagedProjectile.h:12
Definition WeaponProjectile.h:18
Definition TargetSelector.h:46
Definition TickableProjectileActionBase.h:16
Definition ExtendedDatas.h:27
Definition ExtendedDatas.h:164
Definition ExtendedDatas.h:17
Definition ExtendedDatas.h:111
Definition ExtendedDatas.h:145
Definition ExtendedDatas.h:64
Definition ExtendedDatas.h:54
Definition PatternWarningDecalData.h:43
Definition PatternWarningDecalData.h:33
Definition ExtendedDatas.h:44
Definition ExtendedDatas.h:195
Definition ExtendedDatas.h:74
Definition ExtendedDatas.h:270
Definition ExtendedDatas.h:308
Definition ExtendedDatas.h:224
Definition ExtendedDatas.h:263
Definition ExtendedDatas.h:90
FORCEINLINE float GetTolerance() const
Definition ExtendedDatas.h:96
FORCEINLINE float GetRotationDuration() const
Definition ExtendedDatas.h:94
FORCEINLINE float GetTurnSpeed() const
Definition ExtendedDatas.h:95
Definition ExtendedDatas.h:212