Compare commits
9 Commits
35a5b272cb
...
1261d4dc3c
| Author | SHA1 | Date | |
|---|---|---|---|
| 1261d4dc3c | |||
| e4710f9a29 | |||
| 8a1f11d134 | |||
| 78dbbbf88d | |||
| b4475ea77f | |||
| dedfb60a4c | |||
| aaa7d2d6a7 | |||
| 3db8acfaaa | |||
| 24b284ad7e |
@@ -15,6 +15,10 @@ Design docs are maintained in Obsidian Vault: `\\Truenas\smb\Obsidian Vault\Colo
|
||||
|
||||
- Always use the shared Obsidian Vault at `\\Truenas\smb\Obsidian Vault\Colosseum` for project documentation updates.
|
||||
- Do not write Colosseum design notes to `C:\Users\dal4s\OneDrive\문서\Obsidian Vault\Colosseum`; that path is not the active vault for this project.
|
||||
- When editing user-authored Obsidian notes, preserve the user's original text structure as much as possible.
|
||||
- If Codex adds interpretation, clarification, proposals, or implementation notes to a user-authored note, put them in a clearly labeled separate section such as `Codex 보완 메모` or `Codex 제안` so the added content is visibly distinguishable from the user's original writing.
|
||||
- Avoid silently rewriting or blending Codex-authored guidance into the user's original bullet lists unless the user explicitly asks for a rewrite.
|
||||
- Cross-session design agreements that should be checked before related work are summarized in `\\Truenas\smb\Obsidian Vault\Colosseum\개발\세션 공통 합의.md`.
|
||||
|
||||
### Game Concept
|
||||
- **Genre**: Online multiplayer co-op action RPG (3rd person)
|
||||
@@ -338,3 +342,6 @@ public class NetworkedComponent : NetworkBehaviour
|
||||
- Use `[TextArea]` for multi-line string fields
|
||||
- Private fields should use `camelCase` (no `m_` or `_` prefix)
|
||||
- Prefer `IReadOnlyList<T>` for exposing collections
|
||||
- 프로젝트 용어로는 `필살기`보다 `고위력 기술`을 우선 사용한다.
|
||||
- 보호막은 단일 값이 아니라 `타입별 독립 인스턴스`로 취급한다. 같은 타입은 자기 자신만 갱신되고, 서로 다른 타입은 공존하며, 흡수 순서는 적용 순서를 따른다.
|
||||
- 보스 시그니처 전조는 가능한 한 정확한 진행 수치 UI보다 명확한 모션/VFX로 읽히게 한다. 차단 진행도나 정확한 누적 수치 노출은 명시 요청이 없으면 피한다.
|
||||
|
||||
@@ -6051,6 +6051,8 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.UI.PlayerHUD
|
||||
healthBar: {fileID: 281797463}
|
||||
manaBar: {fileID: 1237841695}
|
||||
abnormalitySummaryText: {fileID: 0}
|
||||
autoCreateAbnormalitySummary: 1
|
||||
autoFindPlayer: 1
|
||||
--- !u!4 &1171449866 stripped
|
||||
Transform:
|
||||
@@ -6814,15 +6816,15 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7035590099291789281, guid: 2122b1e1b36684a40978673f272f200e, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7035590099291789281, guid: 2122b1e1b36684a40978673f272f200e, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7035590099291789281, guid: 2122b1e1b36684a40978673f272f200e, type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7053117599274393893, guid: 2122b1e1b36684a40978673f272f200e, type: 3}
|
||||
propertyPath: m_text
|
||||
@@ -10866,15 +10868,15 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4724035329832922458, guid: 6a6d1b384d7c82f49802f1650bb34b40, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 0
|
||||
value: 0.2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4724035329832922458, guid: 6a6d1b384d7c82f49802f1650bb34b40, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4724035329832922458, guid: 6a6d1b384d7c82f49802f1650bb34b40, type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
value: 0
|
||||
value: 0.2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5468776293638745500, guid: 6a6d1b384d7c82f49802f1650bb34b40, type: 3}
|
||||
propertyPath: m_sharedMaterial
|
||||
@@ -10882,15 +10884,15 @@ PrefabInstance:
|
||||
objectReference: {fileID: 2399985188671511309, guid: ef44cbe516f6f9f418375e5b2b73ad8d, type: 2}
|
||||
- target: {fileID: 5704451173235104889, guid: 6a6d1b384d7c82f49802f1650bb34b40, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 0
|
||||
value: 0.2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5704451173235104889, guid: 6a6d1b384d7c82f49802f1650bb34b40, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5704451173235104889, guid: 6a6d1b384d7c82f49802f1650bb34b40, type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
value: 0
|
||||
value: 0.2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6042451605894433948, guid: 6a6d1b384d7c82f49802f1650bb34b40, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
|
||||
BIN
Assets/_Game/Animations/Anim_Common_젬테스트공격.fbx
Normal file
BIN
Assets/_Game/Animations/Anim_Common_젬테스트공격.fbx
Normal file
Binary file not shown.
333
Assets/_Game/Animations/Anim_Common_젬테스트공격.fbx.meta
Normal file
333
Assets/_Game/Animations/Anim_Common_젬테스트공격.fbx.meta
Normal file
@@ -0,0 +1,333 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1a2314cec0db9814f90aaa68fc5ce4bd
|
||||
ModelImporter:
|
||||
serializedVersion: 24200
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
materials:
|
||||
materialImportMode: 2
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
removeConstantScaleCurves: 0
|
||||
motionNodeName: root
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 0
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations:
|
||||
- serializedVersion: 16
|
||||
name: A_MOD_SWD_Attack_GemTest_RM_Neut
|
||||
takeName: A_MOD_SWD_Attack_HeavyStab01_RM_Neut
|
||||
internalID: -8689311932429934276
|
||||
firstFrame: 1
|
||||
lastFrame: 33
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 0
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 0
|
||||
loopBlendPositionY: 0
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 0
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 0
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events:
|
||||
- time: 0.6
|
||||
functionName: OnEffect
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 1.0
|
||||
functionName: OnSkillEnd
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
transformMask:
|
||||
- path:
|
||||
weight: 1
|
||||
- path: root
|
||||
weight: 1
|
||||
- path: root/ik_foot_root
|
||||
weight: 1
|
||||
- path: root/ik_foot_root/ik_foot_l
|
||||
weight: 1
|
||||
- path: root/ik_foot_root/ik_foot_r
|
||||
weight: 1
|
||||
- path: root/ik_hand_root
|
||||
weight: 1
|
||||
- path: root/ik_hand_root/ik_hand_gun
|
||||
weight: 1
|
||||
- path: root/ik_hand_root/ik_hand_gun/ik_hand_l
|
||||
weight: 1
|
||||
- path: root/ik_hand_root/ik_hand_gun/ik_hand_r
|
||||
weight: 1
|
||||
- path: root/pelvis
|
||||
weight: 1
|
||||
- path: root/pelvis/hipAttach_l
|
||||
weight: 1
|
||||
- path: root/pelvis/hipAttach_r
|
||||
weight: 1
|
||||
- path: root/pelvis/hipAttachBack
|
||||
weight: 1
|
||||
- path: root/pelvis/hipAttachFront
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/backAttach
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/shoulderAttach_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/elbowAttach_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/index_01_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/index_01_l/index_02_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/index_01_l/index_02_l/index_03_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/middle_01_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/middle_01_l/middle_02_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/middle_01_l/middle_02_l/middle_03_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/pinky_01_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/pinky_01_l/pinky_02_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/pinky_01_l/pinky_02_l/pinky_03_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/prop_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/ring_01_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/ring_01_l/ring_02_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/ring_01_l/ring_02_l/ring_03_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/thumb_01_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/thumb_01_l/thumb_02_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/hand_l/thumb_01_l/thumb_02_l/thumb_03_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/lowerarm_l/lowerarm_twist_01_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_l/upperarm_l/upperarm_twist_01_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/shoulderAttach_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/elbowAttach_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/index_01_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/index_01_r/index_02_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/index_01_r/index_02_r/index_03_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/middle_01_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/middle_01_r/middle_02_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/middle_01_r/middle_02_r/middle_03_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/pinky_01_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/pinky_01_r/pinky_02_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/pinky_01_r/pinky_02_r/pinky_03_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/prop_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/ring_01_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/ring_01_r/ring_02_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/ring_01_r/ring_02_r/ring_03_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/thumb_01_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/thumb_01_r/thumb_02_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/hand_r/thumb_01_r/thumb_02_r/thumb_03_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/lowerarm_r/lowerarm_twist_01_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/clavicle_r/upperarm_r/upperarm_twist_01_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/neck_01
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/eye_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/eye_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/eyeLight_l
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/eyeLight_r
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/faceAttach
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/headAttach
|
||||
weight: 1
|
||||
- path: root/pelvis/spine_01/spine_02/spine_03/neck_01/head/jaw
|
||||
weight: 1
|
||||
- path: root/pelvis/thigh_l
|
||||
weight: 1
|
||||
- path: root/pelvis/thigh_l/calf_l
|
||||
weight: 1
|
||||
- path: root/pelvis/thigh_l/calf_l/calf_twist_01_l
|
||||
weight: 1
|
||||
- path: root/pelvis/thigh_l/calf_l/foot_l
|
||||
weight: 1
|
||||
- path: root/pelvis/thigh_l/calf_l/foot_l/ball_l
|
||||
weight: 1
|
||||
- path: root/pelvis/thigh_l/calf_l/kneeAttach_l
|
||||
weight: 1
|
||||
- path: root/pelvis/thigh_l/thigh_twist_01_l
|
||||
weight: 1
|
||||
- path: root/pelvis/thigh_r
|
||||
weight: 1
|
||||
- path: root/pelvis/thigh_r/calf_r
|
||||
weight: 1
|
||||
- path: root/pelvis/thigh_r/calf_r/calf_twist_01_r
|
||||
weight: 1
|
||||
- path: root/pelvis/thigh_r/calf_r/foot_r
|
||||
weight: 1
|
||||
- path: root/pelvis/thigh_r/calf_r/foot_r/ball_r
|
||||
weight: 1
|
||||
- path: root/pelvis/thigh_r/calf_r/kneeAttach_r
|
||||
weight: 1
|
||||
- path: root/pelvis/thigh_r/thigh_twist_01_r
|
||||
weight: 1
|
||||
- path: SK_DMMY_BASE_01_00BODY
|
||||
weight: 1
|
||||
maskType: 1
|
||||
maskSource: {fileID: 31900000, guid: 3daacf102d24acb4aae029057b824d13, type: 2}
|
||||
additiveReferencePoseFrame: 0
|
||||
isReadable: 0
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importPhysicalCameras: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
nodeNameCollisionStrategy: 1
|
||||
fileIdsGeneration: 2
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
optimizeBones: 1
|
||||
generateMeshLods: 0
|
||||
meshLodGenerationFlags: 0
|
||||
maximumMeshLod: -1
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
strictVertexDataChecks: 0
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human: []
|
||||
skeleton: []
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
globalScale: 1
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 0
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 2
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 0
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||
importBlendShapeDeformPercent: 1
|
||||
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,32 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b08cc671f858a3b409170a5356e960a0, type: 3}
|
||||
m_Name: Data_Abnormality_Common_보호막
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Abnormalities.AbnormalityData
|
||||
abnormalityName: 보호막
|
||||
icon: {fileID: 0}
|
||||
duration: 0
|
||||
level: 1
|
||||
isDebuff: 0
|
||||
showInUI: 1
|
||||
isShieldState: 1
|
||||
ignoreHitReaction: 0
|
||||
loopingVfxPrefab: {fileID: 0}
|
||||
loopingVfxOffset: {x: 0, y: 0, z: 0}
|
||||
loopingVfxScaleMultiplier: 1
|
||||
parentLoopingVfxToTarget: 1
|
||||
statModifiers: []
|
||||
periodicInterval: 0
|
||||
periodicValue: 0
|
||||
controlType: 0
|
||||
slowMultiplier: 0.5
|
||||
incomingDamageMultiplier: 1
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 228bf5f3997e4cb582d5fcc66b8b93dc
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,31 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b08cc671f858a3b409170a5356e960a0, type: 3}
|
||||
m_Name: Data_Abnormality_Drog_집행준비
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Abnormalities.AbnormalityData
|
||||
abnormalityName: 집행 준비
|
||||
icon: {fileID: 0}
|
||||
duration: 0
|
||||
level: 1
|
||||
isDebuff: 0
|
||||
showInUI: 0
|
||||
ignoreHitReaction: 0
|
||||
loopingVfxPrefab: {fileID: 1800972780968652, guid: 205d983549fba2a47a7808abf228f4be, type: 3}
|
||||
loopingVfxOffset: {x: 0, y: 3.2, z: 0}
|
||||
loopingVfxScaleMultiplier: 6
|
||||
parentLoopingVfxToTarget: 0
|
||||
statModifiers: []
|
||||
periodicInterval: 0
|
||||
periodicValue: 0
|
||||
controlType: 0
|
||||
slowMultiplier: 0.5
|
||||
incomingDamageMultiplier: 1
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fb1a782e44ff4dc19fd8b3c633360752
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,32 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b08cc671f858a3b409170a5356e960a0, type: 3}
|
||||
m_Name: Data_Abnormality_Test_보호막A
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Abnormalities.AbnormalityData
|
||||
abnormalityName: 보호막 A
|
||||
icon: {fileID: 0}
|
||||
duration: 0
|
||||
level: 1
|
||||
isDebuff: 0
|
||||
showInUI: 1
|
||||
isShieldState: 1
|
||||
ignoreHitReaction: 0
|
||||
loopingVfxPrefab: {fileID: 0}
|
||||
loopingVfxOffset: {x: 0, y: 0, z: 0}
|
||||
loopingVfxScaleMultiplier: 1
|
||||
parentLoopingVfxToTarget: 1
|
||||
statModifiers: []
|
||||
periodicInterval: 0
|
||||
periodicValue: 0
|
||||
controlType: 0
|
||||
slowMultiplier: 0.5
|
||||
incomingDamageMultiplier: 1
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d4336ef1eec3e8e479efd9bc67334534
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,32 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b08cc671f858a3b409170a5356e960a0, type: 3}
|
||||
m_Name: Data_Abnormality_Test_보호막B
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Abnormalities.AbnormalityData
|
||||
abnormalityName: 보호막 B
|
||||
icon: {fileID: 0}
|
||||
duration: 0
|
||||
level: 1
|
||||
isDebuff: 0
|
||||
showInUI: 1
|
||||
isShieldState: 1
|
||||
ignoreHitReaction: 0
|
||||
loopingVfxPrefab: {fileID: 0}
|
||||
loopingVfxOffset: {x: 0, y: 0, z: 0}
|
||||
loopingVfxScaleMultiplier: 1
|
||||
parentLoopingVfxToTarget: 1
|
||||
statModifiers: []
|
||||
periodicInterval: 0
|
||||
periodicValue: 0
|
||||
controlType: 0
|
||||
slowMultiplier: 0.5
|
||||
incomingDamageMultiplier: 1
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d33ac1a44c7874d4eb24fce2642521fd
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/_Game/Data/Loadouts.meta
Normal file
8
Assets/_Game/Data/Loadouts.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4b3aa64bb192a3c43b89e4a0ad054c3e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,47 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26d5895a89de4f24aade1ea4b5f7644e, type: 3}
|
||||
m_Name: "Data_LoadoutPreset_Player_\uACF5\uACA9\uC0BC\uC911\uC82C\uD14C\uC2A4\uD2B8"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.PlayerLoadoutPreset
|
||||
presetName: "\uACF5\uACA9 \uC0BC\uC911 \uC82C \uD14C\uC2A4\uD2B8"
|
||||
description: "\uC11C\uB85C \uB2E4\uB978 \uCD94\uAC00 \uD53C\uD574 \uC82C 3\uC885\uC744
|
||||
\uB3D9\uC2DC\uC5D0 \uC0AC\uC6A9\uD558\uB294 \uACF5\uACA9 \uAC80\uC99D \uD504\uB9AC\uC14B"
|
||||
slots:
|
||||
- baseSkill: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 1020083ab98b8214f918fa2ab7c1a3a1, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: a822c7e8c7cee5546ad594b582208e53, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 29e1ce0656471b54f84b18a773032a99, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 549a9978338eb504690c3c490acc0c60, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 11400000, guid: 66ccf80cf9c50614dbe13ea7f24a6f19, type: 2}
|
||||
- {fileID: 11400000, guid: cf3e3e1f9f1f42f499196fa819263dc1, type: 2}
|
||||
- {fileID: 11400000, guid: 47a98aa9a30748a4da49455ac0fbd142, type: 2}
|
||||
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b4d1f570d76e0d24f957538042979d3e
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,47 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26d5895a89de4f24aade1ea4b5f7644e, type: 3}
|
||||
m_Name: "Data_LoadoutPreset_Player_\uB51C\uB7EC_\uBCF5\uD569\uC82C\uD14C\uC2A4\uD2B8"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.PlayerLoadoutPreset
|
||||
presetName: "\uB51C\uB7EC \uBCF5\uD569 \uC82C \uD14C\uC2A4\uD2B8"
|
||||
description: "\uD30C\uC1C4 + \uC218\uD638 \uC82C\uC744 \uB3D9\uC2DC\uC5D0 \uC0AC\uC6A9\uD558\uB294
|
||||
\uB51C\uB7EC \uAC80\uC99D \uD504\uB9AC\uC14B"
|
||||
slots:
|
||||
- baseSkill: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b8c86399865e91144a3d6fcfddc04fd9, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 549a9978338eb504690c3c490acc0c60, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 11400000, guid: 2c42bf0e90f5dd9488d534c337a44eed, type: 2}
|
||||
- {fileID: 11400000, guid: de5e48980eba8794c93ea7168d592f8f, type: 2}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ba6bd335928358e4cb356350b1d7dea9
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,47 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26d5895a89de4f24aade1ea4b5f7644e, type: 3}
|
||||
m_Name: "Data_LoadoutPreset_Player_\uB51C\uB7EC_\uC0BC\uC911\uC82C\uD14C\uC2A4\uD2B8"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.PlayerLoadoutPreset
|
||||
presetName: "\uB51C\uB7EC \uC0BC\uC911 \uC82C \uD14C\uC2A4\uD2B8"
|
||||
description: "\uD30C\uC1C4 + \uC218\uD638 + \uB3C4\uC804\uC790 \uC82C\uC744 \uB3D9\uC2DC\uC5D0
|
||||
\uC0AC\uC6A9\uD558\uB294 \uB51C\uB7EC \uAC80\uC99D \uD504\uB9AC\uC14B"
|
||||
slots:
|
||||
- baseSkill: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b8c86399865e91144a3d6fcfddc04fd9, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 549a9978338eb504690c3c490acc0c60, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 11400000, guid: 2c42bf0e90f5dd9488d534c337a44eed, type: 2}
|
||||
- {fileID: 11400000, guid: de5e48980eba8794c93ea7168d592f8f, type: 2}
|
||||
- {fileID: 11400000, guid: e86536592f45d2b49b9d25abbad1b184, type: 2}
|
||||
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8d16495421b4c6a42a94be0f73c677df
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,47 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26d5895a89de4f24aade1ea4b5f7644e, type: 3}
|
||||
m_Name: "Data_LoadoutPreset_Player_\uB51C\uB7EC_\uC82C\uD14C\uC2A4\uD2B8"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.PlayerLoadoutPreset
|
||||
presetName: "\uB51C\uB7EC \uC82C \uD14C\uC2A4\uD2B8"
|
||||
description: "\uD30C\uC1C4 \uC82C\uC744 \uC0AC\uC6A9\uD558\uB294 \uB51C\uB7EC \uAC80\uC99D
|
||||
\uD504\uB9AC\uC14B"
|
||||
slots:
|
||||
- baseSkill: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b8c86399865e91144a3d6fcfddc04fd9, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 549a9978338eb504690c3c490acc0c60, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 11400000, guid: 2c42bf0e90f5dd9488d534c337a44eed, type: 2}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0a55c1d1d35c2e1488cc6ebdf35693c8
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,47 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26d5895a89de4f24aade1ea4b5f7644e, type: 3}
|
||||
m_Name: "Data_LoadoutPreset_Player_\uBC18\uBCF5\uC82C\uD14C\uC2A4\uD2B8"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.PlayerLoadoutPreset
|
||||
presetName: "\uBC18\uBCF5 \uC82C \uD14C\uC2A4\uD2B8"
|
||||
description: "\uC5F0\uC18D \uC82C\uC744 \uC0AC\uC6A9\uD558\uB294 \uBC18\uBCF5 \uC2DC\uC804
|
||||
\uAC80\uC99D \uD504\uB9AC\uC14B"
|
||||
slots:
|
||||
- baseSkill: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b8c86399865e91144a3d6fcfddc04fd9, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 549a9978338eb504690c3c490acc0c60, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 11400000, guid: 863dcd9e10827f94ab4574b529ffe683, type: 2}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 59d8860ad6e7ecd459b56c4d3bbea8f8
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,48 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26d5895a89de4f24aade1ea4b5f7644e, type: 3}
|
||||
m_Name: "Data_LoadoutPreset_Player_\uC0C1\uD0DC\uBCF5\uD569\uC82C\uD14C\uC2A4\uD2B8"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.PlayerLoadoutPreset
|
||||
presetName: "\uC0C1\uD0DC \uBCF5\uD569 \uC82C \uD14C\uC2A4\uD2B8"
|
||||
description: "\uAC15\uC778\uD568 + \uC57D\uD654 \uC82C\uC744 \uB3D9\uC2DC\uC5D0
|
||||
\uC0AC\uC6A9\uD574 \uC790\uAE30 \uAC15\uD654\uC640 \uC801\uC911 \uB514\uBC84\uD504\uB97C
|
||||
\uD568\uAED8 \uAC80\uC99D\uD558\uB294 \uD504\uB9AC\uC14B"
|
||||
slots:
|
||||
- baseSkill: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b8c86399865e91144a3d6fcfddc04fd9, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 549a9978338eb504690c3c490acc0c60, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 11400000, guid: e020eee86f6c97f4393672759d73602e, type: 2}
|
||||
- {fileID: 11400000, guid: 2edf7687dc6caa0489ae2111499fcfab, type: 2}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e73dbec0f2d31484ea06a23369e88424
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,47 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26d5895a89de4f24aade1ea4b5f7644e, type: 3}
|
||||
m_Name: "Data_LoadoutPreset_Player_\uC790\uAE30\uAC15\uD654\uC82C\uD14C\uC2A4\uD2B8"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.PlayerLoadoutPreset
|
||||
presetName: "\uC790\uAE30\uAC15\uD654 \uC82C \uD14C\uC2A4\uD2B8"
|
||||
description: "\uAC15\uC778\uD568 \uC82C\uC73C\uB85C \uC2DC\uC804 \uC2DC \uC790\uAE30
|
||||
\uAC15\uD654 \uC0C1\uD0DC\uB97C \uAC80\uC99D\uD558\uB294 \uD504\uB9AC\uC14B"
|
||||
slots:
|
||||
- baseSkill: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b8c86399865e91144a3d6fcfddc04fd9, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 549a9978338eb504690c3c490acc0c60, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 11400000, guid: e020eee86f6c97f4393672759d73602e, type: 2}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4939a9da2935f744389326250b0edf69
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,47 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26d5895a89de4f24aade1ea4b5f7644e, type: 3}
|
||||
m_Name: "Data_LoadoutPreset_Player_\uC801\uC911\uC774\uC0C1\uC82C\uD14C\uC2A4\uD2B8"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.PlayerLoadoutPreset
|
||||
presetName: "\uC801\uC911 \uC774\uC0C1 \uC82C \uD14C\uC2A4\uD2B8"
|
||||
description: "\uC57D\uD654 \uC82C\uC73C\uB85C \uC801\uC911 \uB300\uC0C1 \uB514\uBC84\uD504\uB97C
|
||||
\uAC80\uC99D\uD558\uB294 \uD504\uB9AC\uC14B"
|
||||
slots:
|
||||
- baseSkill: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b8c86399865e91144a3d6fcfddc04fd9, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 549a9978338eb504690c3c490acc0c60, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 11400000, guid: 2edf7687dc6caa0489ae2111499fcfab, type: 2}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a2403161604e6984c82d7644e4c11ac2
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,47 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26d5895a89de4f24aade1ea4b5f7644e, type: 3}
|
||||
m_Name: "Data_LoadoutPreset_Player_\uC9C0\uC6D0_\uBCF5\uD569\uC82C\uD14C\uC2A4\uD2B8"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.PlayerLoadoutPreset
|
||||
presetName: "\uC9C0\uC6D0 \uBCF5\uD569 \uC82C \uD14C\uC2A4\uD2B8"
|
||||
description: "\uC218\uD638 + \uB3C4\uC804\uC790 \uC82C\uC744 \uB3D9\uC2DC\uC5D0
|
||||
\uC0AC\uC6A9\uD558\uB294 \uC9C0\uC6D0 \uAC80\uC99D \uD504\uB9AC\uC14B"
|
||||
slots:
|
||||
- baseSkill: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 21598931a138aa44c86d85d67f6c534a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 7a245d40a0d21b248b942033d4ec4309, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b78d2eb76cdfbe248b65bafe6e1dc231, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 549a9978338eb504690c3c490acc0c60, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 11400000, guid: de5e48980eba8794c93ea7168d592f8f, type: 2}
|
||||
- {fileID: 11400000, guid: e86536592f45d2b49b9d25abbad1b184, type: 2}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8444892e65aef174098c01ec184656ce
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,47 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26d5895a89de4f24aade1ea4b5f7644e, type: 3}
|
||||
m_Name: "Data_LoadoutPreset_Player_\uC9C0\uC6D0_\uC0BC\uC911\uC82C\uD14C\uC2A4\uD2B8"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.PlayerLoadoutPreset
|
||||
presetName: "\uC9C0\uC6D0 \uC0BC\uC911 \uC82C \uD14C\uC2A4\uD2B8"
|
||||
description: "\uC218\uD638 + \uB3C4\uC804\uC790 + \uD30C\uC1C4 \uC82C\uC744 \uB3D9\uC2DC\uC5D0
|
||||
\uC0AC\uC6A9\uD558\uB294 \uC9C0\uC6D0 \uAC80\uC99D \uD504\uB9AC\uC14B"
|
||||
slots:
|
||||
- baseSkill: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 21598931a138aa44c86d85d67f6c534a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 7a245d40a0d21b248b942033d4ec4309, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b78d2eb76cdfbe248b65bafe6e1dc231, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 549a9978338eb504690c3c490acc0c60, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 11400000, guid: de5e48980eba8794c93ea7168d592f8f, type: 2}
|
||||
- {fileID: 11400000, guid: e86536592f45d2b49b9d25abbad1b184, type: 2}
|
||||
- {fileID: 11400000, guid: 2c42bf0e90f5dd9488d534c337a44eed, type: 2}
|
||||
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fa6d264f0222d3c48840dee746641b93
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,47 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26d5895a89de4f24aade1ea4b5f7644e, type: 3}
|
||||
m_Name: "Data_LoadoutPreset_Player_\uC9C0\uC6D0_\uC82C\uD14C\uC2A4\uD2B8"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.PlayerLoadoutPreset
|
||||
presetName: "\uC9C0\uC6D0 \uC82C \uD14C\uC2A4\uD2B8"
|
||||
description: "\uC218\uD638 \uC82C\uC744 \uC0AC\uC6A9\uD558\uB294 \uC9C0\uC6D0 \uAC80\uC99D
|
||||
\uD504\uB9AC\uC14B"
|
||||
slots:
|
||||
- baseSkill: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 21598931a138aa44c86d85d67f6c534a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 7a245d40a0d21b248b942033d4ec4309, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: b78d2eb76cdfbe248b65bafe6e1dc231, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 549a9978338eb504690c3c490acc0c60, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 11400000, guid: de5e48980eba8794c93ea7168d592f8f, type: 2}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b8d5ad5e2c43e5745838929f1123be8f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,47 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26d5895a89de4f24aade1ea4b5f7644e, type: 3}
|
||||
m_Name: "Data_LoadoutPreset_Player_\uD0F1\uCEE4_\uBCF5\uD569\uC82C\uD14C\uC2A4\uD2B8"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.PlayerLoadoutPreset
|
||||
presetName: "\uD0F1\uCEE4 \uBCF5\uD569 \uC82C \uD14C\uC2A4\uD2B8"
|
||||
description: "\uB3C4\uC804\uC790 + \uD30C\uC1C4 \uC82C\uC744 \uB3D9\uC2DC\uC5D0
|
||||
\uC0AC\uC6A9\uD558\uB294 \uD0F1\uCEE4 \uAC80\uC99D \uD504\uB9AC\uC14B"
|
||||
slots:
|
||||
- baseSkill: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 1020083ab98b8214f918fa2ab7c1a3a1, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: a822c7e8c7cee5546ad594b582208e53, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 29e1ce0656471b54f84b18a773032a99, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 549a9978338eb504690c3c490acc0c60, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 11400000, guid: e86536592f45d2b49b9d25abbad1b184, type: 2}
|
||||
- {fileID: 11400000, guid: 2c42bf0e90f5dd9488d534c337a44eed, type: 2}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bafefc1df5ada674294ea2a684a9333a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,47 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26d5895a89de4f24aade1ea4b5f7644e, type: 3}
|
||||
m_Name: "Data_LoadoutPreset_Player_\uD0F1\uCEE4_\uC0BC\uC911\uC82C\uD14C\uC2A4\uD2B8"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.PlayerLoadoutPreset
|
||||
presetName: "\uD0F1\uCEE4 \uC0BC\uC911 \uC82C \uD14C\uC2A4\uD2B8"
|
||||
description: "\uB3C4\uC804\uC790 + \uD30C\uC1C4 + \uC218\uD638 \uC82C\uC744 \uB3D9\uC2DC\uC5D0
|
||||
\uC0AC\uC6A9\uD558\uB294 \uD0F1\uCEE4 \uAC80\uC99D \uD504\uB9AC\uC14B"
|
||||
slots:
|
||||
- baseSkill: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 1020083ab98b8214f918fa2ab7c1a3a1, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: a822c7e8c7cee5546ad594b582208e53, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 29e1ce0656471b54f84b18a773032a99, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 549a9978338eb504690c3c490acc0c60, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 11400000, guid: e86536592f45d2b49b9d25abbad1b184, type: 2}
|
||||
- {fileID: 11400000, guid: 2c42bf0e90f5dd9488d534c337a44eed, type: 2}
|
||||
- {fileID: 11400000, guid: de5e48980eba8794c93ea7168d592f8f, type: 2}
|
||||
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 49c33a6bc2118c44bb4362b55469a8d1
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,47 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26d5895a89de4f24aade1ea4b5f7644e, type: 3}
|
||||
m_Name: "Data_LoadoutPreset_Player_\uD0F1\uCEE4_\uC82C\uD14C\uC2A4\uD2B8"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.PlayerLoadoutPreset
|
||||
presetName: "\uD0F1\uCEE4 \uC82C \uD14C\uC2A4\uD2B8"
|
||||
description: "\uB3C4\uC804\uC790 \uC82C\uC744 \uC0AC\uC6A9\uD558\uB294 \uD0F1\uCEE4
|
||||
\uAC80\uC99D \uD504\uB9AC\uC14B"
|
||||
slots:
|
||||
- baseSkill: {fileID: 11400000, guid: b7f09e0e899c8fc4bb2cc9204cc6eb4a, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 1020083ab98b8214f918fa2ab7c1a3a1, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: a822c7e8c7cee5546ad594b582208e53, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 29e1ce0656471b54f84b18a773032a99, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 549a9978338eb504690c3c490acc0c60, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 11400000, guid: e86536592f45d2b49b9d25abbad1b184, type: 2}
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
|
||||
socketedGems:
|
||||
- {fileID: 0}
|
||||
- {fileID: 0}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a370257e3b9758e43b547a9d4e8ed5d6
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -19,5 +19,5 @@ MonoBehaviour:
|
||||
Duration: 0
|
||||
- Type: 1
|
||||
Skill: {fileID: 0}
|
||||
Duration: 6.5
|
||||
Duration: 0
|
||||
cooldown: 45
|
||||
|
||||
8
Assets/_Game/Data/SkillGems.meta
Normal file
8
Assets/_Game/Data/SkillGems.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de096830c8246e14490d1d568492c046
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
36
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_강인함.asset
Normal file
36
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_강인함.asset
Normal file
@@ -0,0 +1,36 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e81a62ae7c7624847ab572ff37789bb8, type: 3}
|
||||
m_Name: "Data_SkillGem_Player_\uAC15\uC778\uD568"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillGemData
|
||||
gemName: "\uAC15\uC778\uD568"
|
||||
description: "\uC2A4\uD0AC \uC0AC\uC6A9 \uC2DC \uC790\uC2E0\uC5D0\uAC8C \uACBD\uC9C1
|
||||
\uBA74\uC5ED\uC744 \uBD80\uC5EC\uD558\uB294 \uD14C\uC2A4\uD2B8\uC6A9 \uBC29\uC5B4
|
||||
\uC82C"
|
||||
icon: {fileID: 0}
|
||||
category: 3
|
||||
allowedSkillTypes: 63
|
||||
incompatibleCategories:
|
||||
incompatibleGems: []
|
||||
manaCostMultiplier: 1.05
|
||||
cooldownMultiplier: 1.05
|
||||
castSpeedMultiplier: 1
|
||||
damageMultiplier: 1
|
||||
healMultiplier: 1
|
||||
shieldMultiplier: 1
|
||||
threatMultiplier: 1
|
||||
additionalRepeatCount: 0
|
||||
castStartEffects: []
|
||||
triggeredEffects: []
|
||||
selfAbnormalities:
|
||||
- {fileID: 11400000, guid: f4f55b61c9d04fd2b83b9c80e81fa0a2, type: 2}
|
||||
onHitAbnormalities: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e020eee86f6c97f4393672759d73602e
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
37
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_관통.asset
Normal file
37
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_관통.asset
Normal file
@@ -0,0 +1,37 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e81a62ae7c7624847ab572ff37789bb8, type: 3}
|
||||
m_Name: "Data_SkillGem_Player_\uAD00\uD1B5"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillGemData
|
||||
gemName: "\uAD00\uD1B5"
|
||||
description: "\uB192\uC740 \uACE0\uC815 \uCD94\uAC00 \uD53C\uD574\uB97C \uBD80\uC5EC\uD558\uB294
|
||||
\uD14C\uC2A4\uD2B8\uC6A9 \uACF5\uACA9 \uC82C"
|
||||
icon: {fileID: 0}
|
||||
category: 1
|
||||
allowedSkillTypes: 1
|
||||
incompatibleCategories:
|
||||
incompatibleGems: []
|
||||
manaCostMultiplier: 1
|
||||
cooldownMultiplier: 1
|
||||
castSpeedMultiplier: 1
|
||||
damageMultiplier: 1
|
||||
healMultiplier: 1
|
||||
shieldMultiplier: 1
|
||||
threatMultiplier: 1
|
||||
additionalRepeatCount: 0
|
||||
castStartEffects: []
|
||||
triggeredEffects:
|
||||
- triggerIndex: 0
|
||||
effects:
|
||||
- {fileID: 11400000, guid: 2a467b25340d65f4a854350319f10d0a, type: 2}
|
||||
selfAbnormalities: []
|
||||
onHitAbnormalities: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 47a98aa9a30748a4da49455ac0fbd142
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
37
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_도전자.asset
Normal file
37
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_도전자.asset
Normal file
@@ -0,0 +1,37 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e81a62ae7c7624847ab572ff37789bb8, type: 3}
|
||||
m_Name: "Data_SkillGem_Player_\uB3C4\uC804\uC790"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillGemData
|
||||
gemName: "\uB3C4\uC804\uC790"
|
||||
description: "\uACE0\uC704\uB825 \uAE30\uC220\uC5D0 \uC704\uD611 \uC120\uC810 \uAE30\uB2A5\uC744
|
||||
\uC5B9\uB294 \uD14C\uC2A4\uD2B8\uC6A9 \uC82C"
|
||||
icon: {fileID: 0}
|
||||
category: 2
|
||||
allowedSkillTypes: 1
|
||||
incompatibleCategories:
|
||||
incompatibleGems: []
|
||||
manaCostMultiplier: 1
|
||||
cooldownMultiplier: 1
|
||||
castSpeedMultiplier: 1
|
||||
damageMultiplier: 1
|
||||
healMultiplier: 1
|
||||
shieldMultiplier: 1
|
||||
threatMultiplier: 1.5
|
||||
additionalRepeatCount: 0
|
||||
castStartEffects: []
|
||||
triggeredEffects:
|
||||
- triggerIndex: 0
|
||||
effects:
|
||||
- {fileID: 11400000, guid: f0aaa98426be3d44082a386c00ea9aea, type: 2}
|
||||
selfAbnormalities: []
|
||||
onHitAbnormalities: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e86536592f45d2b49b9d25abbad1b184
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
37
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_수호.asset
Normal file
37
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_수호.asset
Normal file
@@ -0,0 +1,37 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e81a62ae7c7624847ab572ff37789bb8, type: 3}
|
||||
m_Name: "Data_SkillGem_Player_\uC218\uD638"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillGemData
|
||||
gemName: "\uC218\uD638"
|
||||
description: "\uACE0\uC704\uB825 \uAE30\uC220\uC5D0 \uBCF4\uD638\uB9C9 \uBCF4\uC870\uB97C
|
||||
\uC5B9\uB294 \uD14C\uC2A4\uD2B8\uC6A9 \uC82C"
|
||||
icon: {fileID: 0}
|
||||
category: 4
|
||||
allowedSkillTypes: 1
|
||||
incompatibleCategories:
|
||||
incompatibleGems: []
|
||||
manaCostMultiplier: 1.05
|
||||
cooldownMultiplier: 1.1
|
||||
castSpeedMultiplier: 1
|
||||
damageMultiplier: 1
|
||||
healMultiplier: 1.2
|
||||
shieldMultiplier: 1.5
|
||||
threatMultiplier: 1
|
||||
additionalRepeatCount: 0
|
||||
castStartEffects: []
|
||||
triggeredEffects:
|
||||
- triggerIndex: 0
|
||||
effects:
|
||||
- {fileID: 11400000, guid: 65ed1eabc2fb73d43b86230317222608, type: 2}
|
||||
selfAbnormalities: []
|
||||
onHitAbnormalities: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de5e48980eba8794c93ea7168d592f8f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
37
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_약화.asset
Normal file
37
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_약화.asset
Normal file
@@ -0,0 +1,37 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e81a62ae7c7624847ab572ff37789bb8, type: 3}
|
||||
m_Name: "Data_SkillGem_Player_\uC57D\uD654"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillGemData
|
||||
gemName: "\uC57D\uD654"
|
||||
description: "\uC2A4\uD0AC \uC801\uC911 \uB300\uC0C1\uC5D0\uAC8C \uD14C\uC2A4\uD2B8
|
||||
\uB514\uBC84\uD504\uB97C \uBD80\uC5EC\uD558\uB294 \uC81C\uC5B4 \uC82C"
|
||||
icon: {fileID: 0}
|
||||
category: 5
|
||||
allowedSkillTypes: 63
|
||||
incompatibleCategories:
|
||||
incompatibleGems: []
|
||||
manaCostMultiplier: 1.05
|
||||
cooldownMultiplier: 1.05
|
||||
castSpeedMultiplier: 1
|
||||
damageMultiplier: 1
|
||||
healMultiplier: 1
|
||||
shieldMultiplier: 1
|
||||
threatMultiplier: 1
|
||||
additionalRepeatCount: 0
|
||||
castStartEffects: []
|
||||
triggeredEffects: []
|
||||
selfAbnormalities: []
|
||||
onHitAbnormalities:
|
||||
- triggerIndex: 0
|
||||
abnormalities:
|
||||
- {fileID: 11400000, guid: c4abb0f89779f294ab99562e085e8f3b, type: 2}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2edf7687dc6caa0489ae2111499fcfab
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
34
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_연속.asset
Normal file
34
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_연속.asset
Normal file
@@ -0,0 +1,34 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e81a62ae7c7624847ab572ff37789bb8, type: 3}
|
||||
m_Name: "Data_SkillGem_Player_\uC5F0\uC18D"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillGemData
|
||||
gemName: "\uC5F0\uC18D"
|
||||
description: "\uBD99\uC740 \uC2A4\uD0AC\uC744 \uD55C \uBC88 \uB354 \uBC18\uBCF5
|
||||
\uC2DC\uC804\uD558\uB294 \uD14C\uC2A4\uD2B8\uC6A9 \uC82C"
|
||||
icon: {fileID: 0}
|
||||
category: 6
|
||||
allowedSkillTypes: 1
|
||||
incompatibleCategories:
|
||||
incompatibleGems: []
|
||||
manaCostMultiplier: 1.2
|
||||
cooldownMultiplier: 1.15
|
||||
castSpeedMultiplier: 1.1
|
||||
damageMultiplier: 1
|
||||
healMultiplier: 1
|
||||
shieldMultiplier: 1
|
||||
threatMultiplier: 1
|
||||
additionalRepeatCount: 1
|
||||
castStartEffects: []
|
||||
triggeredEffects: []
|
||||
selfAbnormalities: []
|
||||
onHitAbnormalities: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 863dcd9e10827f94ab4574b529ffe683
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
37
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_예리함.asset
Normal file
37
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_예리함.asset
Normal file
@@ -0,0 +1,37 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e81a62ae7c7624847ab572ff37789bb8, type: 3}
|
||||
m_Name: "Data_SkillGem_Player_\uC608\uB9AC\uD568"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillGemData
|
||||
gemName: "\uC608\uB9AC\uD568"
|
||||
description: "\uACE0\uC815 \uCD94\uAC00 \uD53C\uD574\uB97C \uBD80\uC5EC\uD558\uB294
|
||||
\uD14C\uC2A4\uD2B8\uC6A9 \uACF5\uACA9 \uC82C"
|
||||
icon: {fileID: 0}
|
||||
category: 1
|
||||
allowedSkillTypes: 1
|
||||
incompatibleCategories:
|
||||
incompatibleGems: []
|
||||
manaCostMultiplier: 1
|
||||
cooldownMultiplier: 1
|
||||
castSpeedMultiplier: 1
|
||||
damageMultiplier: 1
|
||||
healMultiplier: 1
|
||||
shieldMultiplier: 1
|
||||
threatMultiplier: 1
|
||||
additionalRepeatCount: 0
|
||||
castStartEffects: []
|
||||
triggeredEffects:
|
||||
- triggerIndex: 0
|
||||
effects:
|
||||
- {fileID: 11400000, guid: 197e5c38a24c95044a5959bb4c67f055, type: 2}
|
||||
selfAbnormalities: []
|
||||
onHitAbnormalities: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 66ccf80cf9c50614dbe13ea7f24a6f19
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
37
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_충격.asset
Normal file
37
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_충격.asset
Normal file
@@ -0,0 +1,37 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e81a62ae7c7624847ab572ff37789bb8, type: 3}
|
||||
m_Name: "Data_SkillGem_Player_\uCDA9\uACA9"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillGemData
|
||||
gemName: "\uCDA9\uACA9"
|
||||
description: "\uC911\uAC04 \uACE0\uC815 \uCD94\uAC00 \uD53C\uD574\uB97C \uBD80\uC5EC\uD558\uB294
|
||||
\uD14C\uC2A4\uD2B8\uC6A9 \uACF5\uACA9 \uC82C"
|
||||
icon: {fileID: 0}
|
||||
category: 1
|
||||
allowedSkillTypes: 1
|
||||
incompatibleCategories:
|
||||
incompatibleGems: []
|
||||
manaCostMultiplier: 1
|
||||
cooldownMultiplier: 1
|
||||
castSpeedMultiplier: 1
|
||||
damageMultiplier: 1
|
||||
healMultiplier: 1
|
||||
shieldMultiplier: 1
|
||||
threatMultiplier: 1
|
||||
additionalRepeatCount: 0
|
||||
castStartEffects: []
|
||||
triggeredEffects:
|
||||
- triggerIndex: 0
|
||||
effects:
|
||||
- {fileID: 11400000, guid: 1a6d1b31b640d87499ef7c9e3580ed34, type: 2}
|
||||
selfAbnormalities: []
|
||||
onHitAbnormalities: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cf3e3e1f9f1f42f499196fa819263dc1
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
37
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_파쇄.asset
Normal file
37
Assets/_Game/Data/SkillGems/Data_SkillGem_Player_파쇄.asset
Normal file
@@ -0,0 +1,37 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e81a62ae7c7624847ab572ff37789bb8, type: 3}
|
||||
m_Name: "Data_SkillGem_Player_\uD30C\uC1C4"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillGemData
|
||||
gemName: "\uD30C\uC1C4"
|
||||
description: "\uACE0\uC704\uB825 \uAE30\uC220\uC758 \uB2E8\uC77C \uD53C\uD574\uB97C
|
||||
\uAC15\uD654\uD558\uB294 \uD14C\uC2A4\uD2B8\uC6A9 \uC82C"
|
||||
icon: {fileID: 0}
|
||||
category: 1
|
||||
allowedSkillTypes: 1
|
||||
incompatibleCategories:
|
||||
incompatibleGems: []
|
||||
manaCostMultiplier: 1.15
|
||||
cooldownMultiplier: 1.1
|
||||
castSpeedMultiplier: 1
|
||||
damageMultiplier: 1.2
|
||||
healMultiplier: 1
|
||||
shieldMultiplier: 1
|
||||
threatMultiplier: 1
|
||||
additionalRepeatCount: 0
|
||||
castStartEffects: []
|
||||
triggeredEffects:
|
||||
- triggerIndex: 0
|
||||
effects:
|
||||
- {fileID: 11400000, guid: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4, type: 2}
|
||||
selfAbnormalities: []
|
||||
onHitAbnormalities: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2c42bf0e90f5dd9488d534c337a44eed
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -15,9 +15,9 @@ MonoBehaviour:
|
||||
skillName: "\uC9D1\uD589\uAC1C\uC2DC"
|
||||
description: "\uB4DC\uB85C\uADF8\uAC00 \uD798\uC744 \uB04C\uC5B4\uBAA8\uC73C\uBA70 \uC9D1\uD589\uC744 \uC900\uBE44\uD569\uB2C8\uB2E4."
|
||||
icon: {fileID: 0}
|
||||
skillClip: {fileID: -5764696784021583549, guid: 5eaeca917bbeb494eb14ad0e0552c42f, type: 3}
|
||||
endClip: {fileID: 0}
|
||||
animationSpeed: 1
|
||||
skillClip: {fileID: 1196400477972205583, guid: 330fdc27ae77eab44a6cfa040fa46036, type: 3}
|
||||
endClip: {fileID: -473667693787628719, guid: 580fc907eee299f43a914da368c7a639, type: 3}
|
||||
animationSpeed: 0.5
|
||||
useRootMotion: 0
|
||||
ignoreRootMotionY: 0
|
||||
jumpToTarget: 0
|
||||
@@ -26,4 +26,6 @@ MonoBehaviour:
|
||||
blockOtherSkillsWhileCasting: 1
|
||||
cooldown: 0
|
||||
manaCost: 0
|
||||
castStartEffects:
|
||||
- {fileID: 11400000, guid: 032be692478542b2b7eae48b2a5b29c1, type: 2}
|
||||
effects: []
|
||||
|
||||
@@ -10,11 +10,13 @@ MonoBehaviour:
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
|
||||
m_Name: Data_Skill_Player_광역치유
|
||||
m_Name: "Data_Skill_Player_\uAD11\uC5ED\uCE58\uC720"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
|
||||
skillName: 광역 치유
|
||||
description: 주변 아군과 자신의 체력을 함께 회복한다.
|
||||
skillName: "\uAD11\uC5ED \uCE58\uC720"
|
||||
description: "\uC8FC\uBCC0 \uC544\uAD70\uACFC \uC790\uC2E0\uC758 \uCCB4\uB825\uC744
|
||||
\uD568\uAED8 \uD68C\uBCF5\uD55C\uB2E4."
|
||||
icon: {fileID: 0}
|
||||
baseTypes: 4
|
||||
skillClip: {fileID: -8689311932429934276, guid: 836c26605050496b9fd07dd456e6ea82, type: 3}
|
||||
endClip: {fileID: 0}
|
||||
animationSpeed: 1
|
||||
@@ -26,6 +28,7 @@ MonoBehaviour:
|
||||
blockOtherSkillsWhileCasting: 1
|
||||
cooldown: 16
|
||||
manaCost: 30
|
||||
maxGemSlotCount: 2
|
||||
castStartEffects:
|
||||
- {fileID: 11400000, guid: e7d0d605c1c2449ebc41f1a713670d6b, type: 2}
|
||||
effects:
|
||||
|
||||
@@ -15,14 +15,19 @@ MonoBehaviour:
|
||||
skillName: "\uAD6C\uB974\uAE30"
|
||||
description:
|
||||
icon: {fileID: 21300000, guid: eafcc94eae3865944b93e64c4e281aa0, type: 3}
|
||||
baseTypes: 16
|
||||
skillClip: {fileID: -14460799136228694, guid: d6d51384d6dd17a419c1d8e2a1c0c875, type: 3}
|
||||
endClip: {fileID: 0}
|
||||
animationSpeed: 1
|
||||
useRootMotion: 1
|
||||
ignoreRootMotionY: 1
|
||||
jumpToTarget: 0
|
||||
blockMovementWhileCasting: 1
|
||||
blockJumpWhileCasting: 1
|
||||
blockOtherSkillsWhileCasting: 1
|
||||
cooldown: 10
|
||||
manaCost: 0
|
||||
maxGemSlotCount: 2
|
||||
castStartEffects: []
|
||||
effects:
|
||||
- {fileID: 11400000, guid: 8b2c3d4e5f60718293a4b5c6d7e8f901, type: 2}
|
||||
|
||||
@@ -10,11 +10,14 @@ MonoBehaviour:
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
|
||||
m_Name: Data_Skill_Player_도발
|
||||
m_Name: "Data_Skill_Player_\uB3C4\uBC1C"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
|
||||
skillName: 도발
|
||||
description: 주변 적의 위협 수치를 크게 높이고 짧은 시간 동안 위협 생성량을 증가시킨다.
|
||||
skillName: "\uB3C4\uBC1C"
|
||||
description: "\uC8FC\uBCC0 \uC801\uC758 \uC704\uD611 \uC218\uCE58\uB97C \uD06C\uAC8C
|
||||
\uB192\uC774\uACE0 \uC9E7\uC740 \uC2DC\uAC04 \uB3D9\uC548 \uC704\uD611 \uC0DD\uC131\uB7C9\uC744
|
||||
\uC99D\uAC00\uC2DC\uD0A8\uB2E4."
|
||||
icon: {fileID: 0}
|
||||
baseTypes: 40
|
||||
skillClip: {fileID: -4662563244894722208, guid: de4d0153716747cd9fc90c60f5efb1ae, type: 3}
|
||||
endClip: {fileID: 0}
|
||||
animationSpeed: 1
|
||||
@@ -26,5 +29,7 @@ MonoBehaviour:
|
||||
blockOtherSkillsWhileCasting: 1
|
||||
cooldown: 8
|
||||
manaCost: 10
|
||||
maxGemSlotCount: 2
|
||||
castStartEffects: []
|
||||
effects:
|
||||
- {fileID: 11400000, guid: f0aaa98426be3d44082a386c00ea9aea, type: 2}
|
||||
|
||||
@@ -13,13 +13,21 @@ MonoBehaviour:
|
||||
m_Name: "Data_Skill_Player_\uB3CC\uC9C4"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
|
||||
skillName: "\uB3CC\uC9C4"
|
||||
description:
|
||||
description:
|
||||
icon: {fileID: 0}
|
||||
baseTypes: 16
|
||||
skillClip: {fileID: 0}
|
||||
endClip: {fileID: 0}
|
||||
animationSpeed: 1
|
||||
useRootMotion: 1
|
||||
ignoreRootMotionY: 1
|
||||
jumpToTarget: 0
|
||||
blockMovementWhileCasting: 1
|
||||
blockJumpWhileCasting: 1
|
||||
blockOtherSkillsWhileCasting: 1
|
||||
cooldown: 3
|
||||
manaCost: 15
|
||||
maxGemSlotCount: 2
|
||||
castStartEffects: []
|
||||
effects:
|
||||
- {fileID: 11400000, guid: e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2, type: 2}
|
||||
|
||||
@@ -10,11 +10,13 @@ MonoBehaviour:
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
|
||||
m_Name: Data_Skill_Player_방어태세
|
||||
m_Name: "Data_Skill_Player_\uBC29\uC5B4\uD0DC\uC138"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
|
||||
skillName: 방어 태세
|
||||
description: 짧은 시간 동안 받는 피해를 줄이고 위협 생성량을 높인다.
|
||||
skillName: "\uBC29\uC5B4 \uD0DC\uC138"
|
||||
description: "\uC9E7\uC740 \uC2DC\uAC04 \uB3D9\uC548 \uBC1B\uB294 \uD53C\uD574\uB97C
|
||||
\uC904\uC774\uACE0 \uC704\uD611 \uC0DD\uC131\uB7C9\uC744 \uB192\uC778\uB2E4."
|
||||
icon: {fileID: 0}
|
||||
baseTypes: 2
|
||||
skillClip: {fileID: -592826573199220879, guid: 52e14756abda46499f4739d811043b3d, type: 3}
|
||||
endClip: {fileID: 0}
|
||||
animationSpeed: 1
|
||||
@@ -26,6 +28,7 @@ MonoBehaviour:
|
||||
blockOtherSkillsWhileCasting: 1
|
||||
cooldown: 10
|
||||
manaCost: 12
|
||||
maxGemSlotCount: 2
|
||||
castStartEffects:
|
||||
- {fileID: 11400000, guid: e7d0d605c1c2449ebc41f1a713670d6b, type: 2}
|
||||
effects:
|
||||
|
||||
@@ -15,11 +15,19 @@ MonoBehaviour:
|
||||
skillName: "\uBCA0\uAE30"
|
||||
description:
|
||||
icon: {fileID: 0}
|
||||
baseTypes: 1
|
||||
skillClip: {fileID: -7717634560727564301, guid: 0f6fd9302e489b94d96774e2713b1317, type: 3}
|
||||
endClip: {fileID: -8265974341663887746, guid: fbcbf9c09792c924296ac6036e76f6dc, type: 3}
|
||||
animationSpeed: 1
|
||||
useRootMotion: 1
|
||||
ignoreRootMotionY: 1
|
||||
jumpToTarget: 0
|
||||
blockMovementWhileCasting: 1
|
||||
blockJumpWhileCasting: 1
|
||||
blockOtherSkillsWhileCasting: 1
|
||||
cooldown: 1
|
||||
manaCost: 5
|
||||
maxGemSlotCount: 2
|
||||
castStartEffects: []
|
||||
effects:
|
||||
- {fileID: 11400000, guid: e23fca57309ab2b4faa5c380118cd07e, type: 2}
|
||||
|
||||
@@ -10,11 +10,13 @@ MonoBehaviour:
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
|
||||
m_Name: Data_Skill_Player_보호막
|
||||
m_Name: "Data_Skill_Player_\uBCF4\uD638\uB9C9"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
|
||||
skillName: 보호막
|
||||
description: 주변 아군과 자신에게 피해를 흡수하는 보호막을 부여한다.
|
||||
skillName: "\uBCF4\uD638\uB9C9"
|
||||
description: "\uC8FC\uBCC0 \uC544\uAD70\uACFC \uC790\uC2E0\uC5D0\uAC8C \uD53C\uD574\uB97C
|
||||
\uD761\uC218\uD558\uB294 \uBCF4\uD638\uB9C9\uC744 \uBD80\uC5EC\uD55C\uB2E4."
|
||||
icon: {fileID: 0}
|
||||
baseTypes: 6
|
||||
skillClip: {fileID: -1185230921767219677, guid: f2d90cfa60b04630af1dde00f4d29320, type: 3}
|
||||
endClip: {fileID: 0}
|
||||
animationSpeed: 1
|
||||
@@ -26,6 +28,7 @@ MonoBehaviour:
|
||||
blockOtherSkillsWhileCasting: 1
|
||||
cooldown: 18
|
||||
manaCost: 24
|
||||
maxGemSlotCount: 2
|
||||
castStartEffects:
|
||||
- {fileID: 11400000, guid: e7d0d605c1c2449ebc41f1a713670d6b, type: 2}
|
||||
effects:
|
||||
|
||||
34
Assets/_Game/Data/Skills/Data_Skill_Player_젬테스트공격.asset
Normal file
34
Assets/_Game/Data/Skills/Data_Skill_Player_젬테스트공격.asset
Normal file
@@ -0,0 +1,34 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
|
||||
m_Name: "Data_Skill_Player_\uC82C\uD14C\uC2A4\uD2B8\uACF5\uACA9"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
|
||||
skillName: "\uC82C \uD14C\uC2A4\uD2B8 \uACF5\uACA9"
|
||||
description: "\uB2E4\uC911 \uC82C \uD6A8\uACFC \uAC80\uC99D\uC6A9 \uBE60\uB978
|
||||
\uB2E8\uC77C \uACF5\uACA9"
|
||||
icon: {fileID: 0}
|
||||
baseTypes: 1
|
||||
skillClip: {fileID: -8689311932429934276, guid: ac0adc4c7f982fe4d82eac9c2267f0c6, type: 3}
|
||||
endClip: {fileID: 0}
|
||||
animationSpeed: 1
|
||||
useRootMotion: 0
|
||||
ignoreRootMotionY: 0
|
||||
jumpToTarget: 0
|
||||
blockMovementWhileCasting: 1
|
||||
blockJumpWhileCasting: 1
|
||||
blockOtherSkillsWhileCasting: 1
|
||||
cooldown: 0.5
|
||||
manaCost: 3
|
||||
maxGemSlotCount: 3
|
||||
castStartEffects: []
|
||||
effects:
|
||||
- {fileID: 11400000, guid: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4, type: 2}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 549a9978338eb504690c3c490acc0c60
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -13,13 +13,21 @@ MonoBehaviour:
|
||||
m_Name: "Data_Skill_Player_\uCC0C\uB974\uAE30"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
|
||||
skillName: "\uCC0C\uB974\uAE30"
|
||||
description:
|
||||
description:
|
||||
icon: {fileID: 0}
|
||||
baseTypes: 1
|
||||
skillClip: {fileID: -8689311932429934276, guid: ac0adc4c7f982fe4d82eac9c2267f0c6, type: 3}
|
||||
endClip: {fileID: 0}
|
||||
animationSpeed: 1
|
||||
useRootMotion: 1
|
||||
ignoreRootMotionY: 1
|
||||
jumpToTarget: 0
|
||||
blockMovementWhileCasting: 1
|
||||
blockJumpWhileCasting: 1
|
||||
blockOtherSkillsWhileCasting: 1
|
||||
cooldown: 1
|
||||
manaCost: 5
|
||||
maxGemSlotCount: 2
|
||||
castStartEffects: []
|
||||
effects:
|
||||
- {fileID: 11400000, guid: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4, type: 2}
|
||||
|
||||
@@ -10,11 +10,13 @@ MonoBehaviour:
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
|
||||
m_Name: Data_Skill_Player_철벽
|
||||
m_Name: "Data_Skill_Player_\uCCA0\uBCBD"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
|
||||
skillName: 철벽
|
||||
description: 짧은 시간 동안 무적이 되며 위협 생성량이 약간 증가한다.
|
||||
skillName: "\uCCA0\uBCBD"
|
||||
description: "\uC9E7\uC740 \uC2DC\uAC04 \uB3D9\uC548 \uBB34\uC801\uC774 \uB418\uBA70
|
||||
\uC704\uD611 \uC0DD\uC131\uB7C9\uC774 \uC57D\uAC04 \uC99D\uAC00\uD55C\uB2E4."
|
||||
icon: {fileID: 0}
|
||||
baseTypes: 6
|
||||
skillClip: {fileID: -7313196749698736815, guid: 95764ba490b24918b73fc1553e34dc1e, type: 3}
|
||||
endClip: {fileID: 0}
|
||||
animationSpeed: 1
|
||||
@@ -26,6 +28,7 @@ MonoBehaviour:
|
||||
blockOtherSkillsWhileCasting: 1
|
||||
cooldown: 18
|
||||
manaCost: 20
|
||||
maxGemSlotCount: 2
|
||||
castStartEffects:
|
||||
- {fileID: 11400000, guid: e7d0d605c1c2449ebc41f1a713670d6b, type: 2}
|
||||
effects:
|
||||
|
||||
@@ -10,11 +10,12 @@ MonoBehaviour:
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
|
||||
m_Name: Data_Skill_Player_치유
|
||||
m_Name: "Data_Skill_Player_\uCE58\uC720"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
|
||||
skillName: 치유
|
||||
description: 자신의 체력을 빠르게 회복한다.
|
||||
skillName: "\uCE58\uC720"
|
||||
description: "\uC790\uC2E0\uC758 \uCCB4\uB825\uC744 \uBE60\uB974\uAC8C \uD68C\uBCF5\uD55C\uB2E4."
|
||||
icon: {fileID: 0}
|
||||
baseTypes: 4
|
||||
skillClip: {fileID: -8689311932429934276, guid: 4450ee0d92144ade9f63dd601432d3bf, type: 3}
|
||||
endClip: {fileID: 0}
|
||||
animationSpeed: 1
|
||||
@@ -26,6 +27,7 @@ MonoBehaviour:
|
||||
blockOtherSkillsWhileCasting: 1
|
||||
cooldown: 8
|
||||
manaCost: 18
|
||||
maxGemSlotCount: 2
|
||||
castStartEffects:
|
||||
- {fileID: 11400000, guid: e7d0d605c1c2449ebc41f1a713670d6b, type: 2}
|
||||
effects:
|
||||
|
||||
@@ -16,11 +16,19 @@ MonoBehaviour:
|
||||
description: "\uD22C\uC0AC\uCCB4\uB97C \uBC1C\uC0AC\uD569\uB2C8\uB2E4. \uBA85\uC911
|
||||
\uC2DC \uC6D0\uAC70\uB9AC \uB300\uBBF8\uC9C0\uB97C \uC785\uD799\uB2C8\uB2E4."
|
||||
icon: {fileID: 0}
|
||||
baseTypes: 1
|
||||
skillClip: {fileID: -8689311932429934276, guid: ac0adc4c7f982fe4d82eac9c2267f0c6, type: 3}
|
||||
endClip: {fileID: 0}
|
||||
animationSpeed: 1
|
||||
useRootMotion: 1
|
||||
ignoreRootMotionY: 1
|
||||
jumpToTarget: 0
|
||||
blockMovementWhileCasting: 1
|
||||
blockJumpWhileCasting: 1
|
||||
blockOtherSkillsWhileCasting: 1
|
||||
cooldown: 1.5
|
||||
manaCost: 10
|
||||
maxGemSlotCount: 2
|
||||
castStartEffects: []
|
||||
effects:
|
||||
- {fileID: 11400000, guid: fa684d4a7ce68d54aa4ce101f9400c35, type: 2}
|
||||
|
||||
@@ -13,13 +13,21 @@ MonoBehaviour:
|
||||
m_Name: "Data_Skill_Player_\uD68C\uC804\uBCA0\uAE30"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
|
||||
skillName: "\uD68C\uC804\uBCA0\uAE30"
|
||||
description:
|
||||
description:
|
||||
icon: {fileID: 0}
|
||||
baseTypes: 1
|
||||
skillClip: {fileID: 0}
|
||||
endClip: {fileID: 0}
|
||||
animationSpeed: 1
|
||||
useRootMotion: 0
|
||||
ignoreRootMotionY: 1
|
||||
jumpToTarget: 0
|
||||
blockMovementWhileCasting: 1
|
||||
blockJumpWhileCasting: 1
|
||||
blockOtherSkillsWhileCasting: 1
|
||||
cooldown: 2
|
||||
manaCost: 10
|
||||
maxGemSlotCount: 2
|
||||
castStartEffects: []
|
||||
effects:
|
||||
- {fileID: 11400000, guid: c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6, type: 2}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: bf750718c64c4bd48af905d2927351de, type: 3}
|
||||
m_Name: "Data_SkillEffect_Drog_\uC9D1\uD589\uAC1C\uC2DC_0_\uC9D1\uD589\uC900\uBE44"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.AbnormalityEffect
|
||||
targetType: 0
|
||||
targetTeam: 0
|
||||
areaCenter: 0
|
||||
areaShape: 0
|
||||
targetLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
areaRadius: 3
|
||||
fanOriginDistance: 1
|
||||
fanRadius: 3
|
||||
fanHalfAngle: 45
|
||||
abnormalityData: {fileID: 11400000, guid: fb1a782e44ff4dc19fd8b3c633360752, type: 2}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 032be692478542b2b7eae48b2a5b29c1
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -27,3 +27,4 @@ MonoBehaviour:
|
||||
baseShield: 28
|
||||
shieldScaling: 0.8
|
||||
duration: 5
|
||||
shieldStateAbnormality: {fileID: 11400000, guid: 228bf5f3997e4cb582d5fcc66b8b93dc, type: 2}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3}
|
||||
m_Name: "Data_SkillEffect_Player_\uC82C\uD14C\uC2A4\uD2B8_\uCD94\uAC00\uB370\uBBF8\uC9C0A"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect
|
||||
targetType: 1
|
||||
targetTeam: 0
|
||||
areaCenter: 1
|
||||
areaShape: 0
|
||||
targetLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
includeCasterInArea: 0
|
||||
areaRadius: 2
|
||||
fanOriginDistance: 0
|
||||
fanRadius: 3
|
||||
fanHalfAngle: 45
|
||||
baseDamage: 4
|
||||
damageType: 3
|
||||
statScaling: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 197e5c38a24c95044a5959bb4c67f055
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,29 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3}
|
||||
m_Name: "Data_SkillEffect_Player_\uC82C\uD14C\uC2A4\uD2B8_\uCD94\uAC00\uB370\uBBF8\uC9C0B"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect
|
||||
targetType: 1
|
||||
targetTeam: 0
|
||||
areaCenter: 1
|
||||
areaShape: 0
|
||||
targetLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
includeCasterInArea: 0
|
||||
areaRadius: 2
|
||||
fanOriginDistance: 0
|
||||
fanRadius: 3
|
||||
fanHalfAngle: 45
|
||||
baseDamage: 7
|
||||
damageType: 3
|
||||
statScaling: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1a6d1b31b640d87499ef7c9e3580ed34
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,29 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3}
|
||||
m_Name: "Data_SkillEffect_Player_\uC82C\uD14C\uC2A4\uD2B8_\uCD94\uAC00\uB370\uBBF8\uC9C0C"
|
||||
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect
|
||||
targetType: 1
|
||||
targetTeam: 0
|
||||
areaCenter: 1
|
||||
areaShape: 0
|
||||
targetLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
includeCasterInArea: 0
|
||||
areaRadius: 2
|
||||
fanOriginDistance: 0
|
||||
fanRadius: 3
|
||||
fanHalfAngle: 45
|
||||
baseDamage: 10
|
||||
damageType: 3
|
||||
statScaling: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2a467b25340d65f4a854350319f10d0a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -2203,6 +2203,7 @@ MonoBehaviour:
|
||||
phase3SlamInterval: 2
|
||||
signatureMinPhase: 2
|
||||
signatureRequiredDamageRatio: 0.1
|
||||
signatureTelegraphAbnormality: {fileID: 11400000, guid: fb1a782e44ff4dc19fd8b3c633360752, type: 2}
|
||||
signatureSuccessStaggerDuration: 2
|
||||
signatureFailureAbnormality: {fileID: 11400000, guid: bc74f1485ad140c28cc14b821e22c127, type: 2}
|
||||
signatureFailureDamage: 40
|
||||
|
||||
@@ -47,6 +47,12 @@ public abstract partial class BossPatternActionBase : Action
|
||||
if (!IsReady())
|
||||
return Status.Failure;
|
||||
|
||||
if (combatBehaviorContext.IsBehaviorSuppressed)
|
||||
{
|
||||
StopMovement();
|
||||
return Status.Failure;
|
||||
}
|
||||
|
||||
if (bossEnemy.IsDead || bossEnemy.IsTransitioning)
|
||||
return Status.Failure;
|
||||
|
||||
@@ -71,6 +77,12 @@ public abstract partial class BossPatternActionBase : Action
|
||||
if (!IsReady() || activePattern == null)
|
||||
return Status.Failure;
|
||||
|
||||
if (combatBehaviorContext.IsBehaviorSuppressed)
|
||||
{
|
||||
StopMovement();
|
||||
return Status.Failure;
|
||||
}
|
||||
|
||||
if (bossEnemy.IsDead || bossEnemy.IsTransitioning)
|
||||
return Status.Failure;
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using Colosseum.Enemy;
|
||||
using Unity.Behavior;
|
||||
using UnityEngine;
|
||||
using Action = Unity.Behavior.Action;
|
||||
@@ -22,6 +23,12 @@ public partial class ChaseTargetAction : Action
|
||||
|
||||
protected override Status OnStart()
|
||||
{
|
||||
BossCombatBehaviorContext context = GameObject.GetComponent<BossCombatBehaviorContext>();
|
||||
if (context != null && context.IsBehaviorSuppressed)
|
||||
{
|
||||
return Status.Failure;
|
||||
}
|
||||
|
||||
if (Target.Value == null)
|
||||
{
|
||||
return Status.Failure;
|
||||
@@ -47,6 +54,15 @@ public partial class ChaseTargetAction : Action
|
||||
|
||||
protected override Status OnUpdate()
|
||||
{
|
||||
BossCombatBehaviorContext context = GameObject.GetComponent<BossCombatBehaviorContext>();
|
||||
if (context != null && context.IsBehaviorSuppressed)
|
||||
{
|
||||
if (agent != null)
|
||||
agent.isStopped = true;
|
||||
|
||||
return Status.Failure;
|
||||
}
|
||||
|
||||
if (Target.Value == null)
|
||||
{
|
||||
return Status.Failure;
|
||||
|
||||
@@ -25,6 +25,9 @@ public abstract partial class CheckPatternReadyActionBase : Action
|
||||
if (context == null)
|
||||
return Status.Failure;
|
||||
|
||||
if (context.IsBehaviorSuppressed)
|
||||
return Status.Failure;
|
||||
|
||||
BossPatternData pattern = context.GetPattern(PatternRole);
|
||||
return UsePatternAction.IsPatternReady(GameObject, pattern) ? Status.Success : Status.Failure;
|
||||
}
|
||||
|
||||
@@ -21,6 +21,9 @@ public partial class CheckSignaturePatternReadyAction : Action
|
||||
protected override Status OnStart()
|
||||
{
|
||||
BossCombatBehaviorContext context = GameObject.GetComponent<BossCombatBehaviorContext>();
|
||||
if (context != null && context.IsBehaviorSuppressed)
|
||||
return Status.Failure;
|
||||
|
||||
return context != null && context.IsSignaturePatternReady()
|
||||
? Status.Success
|
||||
: Status.Failure;
|
||||
|
||||
@@ -24,6 +24,10 @@ public partial class RefreshPrimaryTargetAction : Action
|
||||
|
||||
protected override Status OnStart()
|
||||
{
|
||||
BossCombatBehaviorContext context = GameObject.GetComponent<BossCombatBehaviorContext>();
|
||||
if (context != null && context.IsBehaviorSuppressed)
|
||||
return Status.Failure;
|
||||
|
||||
EnemyBase enemyBase = GameObject.GetComponent<EnemyBase>();
|
||||
if (enemyBase == null)
|
||||
return Status.Failure;
|
||||
@@ -34,7 +38,6 @@ public partial class RefreshPrimaryTargetAction : Action
|
||||
|
||||
if (resolvedTarget == null)
|
||||
{
|
||||
BossCombatBehaviorContext context = GameObject.GetComponent<BossCombatBehaviorContext>();
|
||||
resolvedTarget = context != null ? context.FindNearestLivingTarget() : null;
|
||||
}
|
||||
|
||||
|
||||
@@ -68,9 +68,26 @@ namespace Colosseum.Abnormalities
|
||||
[Tooltip("플레이어 HUD의 이상상태 UI에 표시할지 여부")]
|
||||
public bool showInUI = true;
|
||||
|
||||
[Tooltip("보호막 계열 상태인지 여부 (보호막 인스턴스 동기화용)")]
|
||||
public bool isShieldState = false;
|
||||
|
||||
[Tooltip("활성 중에는 일반 피격 반응(경직, 넉백, 다운)을 무시할지 여부")]
|
||||
public bool ignoreHitReaction = false;
|
||||
|
||||
[Header("시각 효과")]
|
||||
[Tooltip("이상 상태가 유지되는 동안 대상에 붙일 루핑 VFX 프리팹")]
|
||||
public GameObject loopingVfxPrefab;
|
||||
|
||||
[Tooltip("루핑 VFX 위치 보정값")]
|
||||
public Vector3 loopingVfxOffset = Vector3.zero;
|
||||
|
||||
[Tooltip("루핑 VFX 스케일 배율")]
|
||||
[Min(0.01f)]
|
||||
public float loopingVfxScaleMultiplier = 1f;
|
||||
|
||||
[Tooltip("루핑 VFX를 대상의 자식으로 붙일지 여부")]
|
||||
public bool parentLoopingVfxToTarget = true;
|
||||
|
||||
[Header("스탯 수정자")]
|
||||
[Tooltip("스탯에 적용할 수정자 목록")]
|
||||
public List<AbnormalityStatModifier> statModifiers = new List<AbnormalityStatModifier>();
|
||||
@@ -110,6 +127,11 @@ namespace Colosseum.Abnormalities
|
||||
/// </summary>
|
||||
public bool HasControlEffect => controlType != ControlType.None;
|
||||
|
||||
/// <summary>
|
||||
/// 유지형 루핑 VFX가 있는지 확인
|
||||
/// </summary>
|
||||
public bool HasLoopingVfx => loopingVfxPrefab != null;
|
||||
|
||||
/// <summary>
|
||||
/// 받는 피해 배율 변경 여부
|
||||
/// </summary>
|
||||
|
||||
@@ -26,6 +26,7 @@ namespace Colosseum.Abnormalities
|
||||
|
||||
// 활성화된 이상 상태 목록
|
||||
private readonly List<ActiveAbnormality> activeAbnormalities = new List<ActiveAbnormality>();
|
||||
private readonly Dictionary<int, GameObject> abnormalityVisualInstances = new Dictionary<int, GameObject>();
|
||||
|
||||
// 제어 효과 상태
|
||||
private int stunCount;
|
||||
@@ -150,6 +151,8 @@ namespace Colosseum.Abnormalities
|
||||
{
|
||||
SyncControlEffects();
|
||||
}
|
||||
|
||||
RefreshAbnormalityVisuals();
|
||||
}
|
||||
|
||||
public override void OnNetworkDespawn()
|
||||
@@ -165,6 +168,8 @@ namespace Colosseum.Abnormalities
|
||||
{
|
||||
networkController.OnDeathStateChanged -= HandleDeathStateChanged;
|
||||
}
|
||||
|
||||
ClearAllAbnormalityVisuals();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
@@ -255,6 +260,7 @@ namespace Colosseum.Abnormalities
|
||||
ApplyControlEffect(data);
|
||||
RecalculateIncomingDamageMultiplier();
|
||||
SyncAbnormalityAdd(newAbnormality, source);
|
||||
RefreshAbnormalityVisuals();
|
||||
|
||||
OnAbnormalityAdded?.Invoke(newAbnormality);
|
||||
OnAbnormalitiesChanged?.Invoke();
|
||||
@@ -301,6 +307,7 @@ namespace Colosseum.Abnormalities
|
||||
RecalculateIncomingDamageMultiplier();
|
||||
SyncAbnormalityRemove(abnormality);
|
||||
activeAbnormalities.Remove(abnormality);
|
||||
RefreshAbnormalityVisuals();
|
||||
|
||||
OnAbnormalityRemoved?.Invoke(abnormality);
|
||||
OnAbnormalitiesChanged?.Invoke();
|
||||
@@ -593,6 +600,7 @@ namespace Colosseum.Abnormalities
|
||||
|
||||
private void OnSyncedAbnormalitiesChanged(NetworkListEvent<AbnormalitySyncData> changeEvent)
|
||||
{
|
||||
RefreshAbnormalityVisuals();
|
||||
OnAbnormalitiesChanged?.Invoke();
|
||||
}
|
||||
|
||||
@@ -651,6 +659,111 @@ namespace Colosseum.Abnormalities
|
||||
Debug.Log($"[Abnormality] Cleared all abnormalities on death: {gameObject.name}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 현재 활성 이상상태 기준으로 루핑 VFX를 동기화합니다.
|
||||
/// </summary>
|
||||
private void RefreshAbnormalityVisuals()
|
||||
{
|
||||
HashSet<int> desiredAbnormalityIds = new HashSet<int>();
|
||||
|
||||
if (IsServer)
|
||||
{
|
||||
for (int i = 0; i < activeAbnormalities.Count; i++)
|
||||
{
|
||||
ActiveAbnormality abnormality = activeAbnormalities[i];
|
||||
if (abnormality?.Data == null || !abnormality.Data.HasLoopingVfx)
|
||||
continue;
|
||||
|
||||
int abnormalityId = abnormality.Data.GetInstanceID();
|
||||
desiredAbnormalityIds.Add(abnormalityId);
|
||||
|
||||
if (!abnormalityVisualInstances.ContainsKey(abnormalityId) || abnormalityVisualInstances[abnormalityId] == null)
|
||||
{
|
||||
abnormalityVisualInstances[abnormalityId] = CreateLoopingVfxInstance(abnormality.Data);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < syncedAbnormalities.Count; i++)
|
||||
{
|
||||
AbnormalitySyncData syncData = syncedAbnormalities[i];
|
||||
AbnormalityData data = FindAbnormalityDataById(syncData.AbnormalityId);
|
||||
if (data == null || !data.HasLoopingVfx)
|
||||
continue;
|
||||
|
||||
desiredAbnormalityIds.Add(syncData.AbnormalityId);
|
||||
|
||||
if (!abnormalityVisualInstances.ContainsKey(syncData.AbnormalityId) || abnormalityVisualInstances[syncData.AbnormalityId] == null)
|
||||
{
|
||||
abnormalityVisualInstances[syncData.AbnormalityId] = CreateLoopingVfxInstance(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<int> removeIds = new List<int>();
|
||||
foreach (KeyValuePair<int, GameObject> pair in abnormalityVisualInstances)
|
||||
{
|
||||
if (desiredAbnormalityIds.Contains(pair.Key))
|
||||
continue;
|
||||
|
||||
if (pair.Value != null)
|
||||
Destroy(pair.Value);
|
||||
|
||||
removeIds.Add(pair.Key);
|
||||
}
|
||||
|
||||
for (int i = 0; i < removeIds.Count; i++)
|
||||
{
|
||||
abnormalityVisualInstances.Remove(removeIds[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 루핑 VFX 인스턴스를 생성합니다.
|
||||
/// </summary>
|
||||
private GameObject CreateLoopingVfxInstance(AbnormalityData data)
|
||||
{
|
||||
if (data == null || data.loopingVfxPrefab == null)
|
||||
return null;
|
||||
|
||||
Transform parent = data.parentLoopingVfxToTarget ? transform : null;
|
||||
GameObject instance = Instantiate(data.loopingVfxPrefab, transform.position + data.loopingVfxOffset, Quaternion.identity, parent);
|
||||
instance.transform.localScale *= data.loopingVfxScaleMultiplier;
|
||||
|
||||
if (data.parentLoopingVfxToTarget)
|
||||
instance.transform.localPosition = data.loopingVfxOffset;
|
||||
else
|
||||
instance.transform.position = transform.position + data.loopingVfxOffset;
|
||||
|
||||
ParticleSystem[] particleSystems = instance.GetComponentsInChildren<ParticleSystem>(true);
|
||||
for (int i = 0; i < particleSystems.Length; i++)
|
||||
{
|
||||
ParticleSystem particleSystem = particleSystems[i];
|
||||
var main = particleSystem.main;
|
||||
main.loop = true;
|
||||
main.stopAction = ParticleSystemStopAction.None;
|
||||
particleSystem.Clear(true);
|
||||
particleSystem.Play(true);
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 현재 관리 중인 루핑 VFX를 모두 제거합니다.
|
||||
/// </summary>
|
||||
private void ClearAllAbnormalityVisuals()
|
||||
{
|
||||
foreach (KeyValuePair<int, GameObject> pair in abnormalityVisualInstances)
|
||||
{
|
||||
if (pair.Value != null)
|
||||
Destroy(pair.Value);
|
||||
}
|
||||
|
||||
abnormalityVisualInstances.Clear();
|
||||
}
|
||||
|
||||
private void TryCancelCurrentSkill(SkillCancelReason reason, string sourceName)
|
||||
{
|
||||
if (!IsServer || skillController == null || !skillController.IsPlayingAnimation)
|
||||
@@ -686,6 +799,9 @@ namespace Colosseum.Abnormalities
|
||||
/// </summary>
|
||||
public bool HasAbnormality(AbnormalityData data)
|
||||
{
|
||||
if (data == null)
|
||||
return false;
|
||||
|
||||
return activeAbnormalities.Exists(a => a.Data.abnormalityName == data.abnormalityName);
|
||||
}
|
||||
}
|
||||
|
||||
332
Assets/_Game/Scripts/Combat/CombatBalanceTracker.cs
Normal file
332
Assets/_Game/Scripts/Combat/CombatBalanceTracker.cs
Normal file
@@ -0,0 +1,332 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
using Unity.Netcode;
|
||||
using UnityEngine;
|
||||
|
||||
using Colosseum.Enemy;
|
||||
using Colosseum.Skills;
|
||||
|
||||
namespace Colosseum.Combat
|
||||
{
|
||||
/// <summary>
|
||||
/// 전투 밸런싱 검증을 위한 런타임 계측기입니다.
|
||||
/// 플레이어/보스 기준으로 대미지, 치유, 보호막, 위협, 패턴 사용량을 누적합니다.
|
||||
/// </summary>
|
||||
public static class CombatBalanceTracker
|
||||
{
|
||||
private sealed class ActorMetrics
|
||||
{
|
||||
public string label;
|
||||
public float totalDamageDealt;
|
||||
public float bossDamageDealt;
|
||||
public float damageTaken;
|
||||
public float healDone;
|
||||
public float healReceived;
|
||||
public float shieldApplied;
|
||||
public float shieldReceived;
|
||||
public float threatGenerated;
|
||||
public readonly Dictionary<string, float> damageBySkill = new Dictionary<string, float>();
|
||||
public readonly Dictionary<string, float> healBySkill = new Dictionary<string, float>();
|
||||
public readonly Dictionary<string, float> shieldBySkill = new Dictionary<string, float>();
|
||||
public readonly Dictionary<string, float> threatBySkill = new Dictionary<string, float>();
|
||||
}
|
||||
|
||||
private static readonly Dictionary<string, ActorMetrics> actorMetrics = new Dictionary<string, ActorMetrics>();
|
||||
private static readonly Dictionary<string, int> bossPatternCounts = new Dictionary<string, int>();
|
||||
private static readonly Dictionary<string, int> bossEventCounts = new Dictionary<string, int>();
|
||||
private static float combatStartTime = -1f;
|
||||
private static float lastEventTime = -1f;
|
||||
|
||||
/// <summary>
|
||||
/// 누적된 전투 계측 데이터를 초기화합니다.
|
||||
/// </summary>
|
||||
public static void Reset()
|
||||
{
|
||||
actorMetrics.Clear();
|
||||
bossPatternCounts.Clear();
|
||||
bossEventCounts.Clear();
|
||||
combatStartTime = -1f;
|
||||
lastEventTime = -1f;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 실제 적용된 대미지를 기록합니다.
|
||||
/// </summary>
|
||||
public static void RecordDamage(GameObject source, GameObject target, float actualDamage)
|
||||
{
|
||||
if (actualDamage <= 0f || target == null)
|
||||
return;
|
||||
|
||||
MarkCombatEvent();
|
||||
|
||||
ActorMetrics targetMetrics = GetMetrics(target);
|
||||
targetMetrics.damageTaken += actualDamage;
|
||||
|
||||
if (source == null)
|
||||
return;
|
||||
|
||||
ActorMetrics sourceMetrics = GetMetrics(source);
|
||||
sourceMetrics.totalDamageDealt += actualDamage;
|
||||
|
||||
if (target.GetComponent<BossEnemy>() != null || target.GetComponentInParent<BossEnemy>() != null)
|
||||
{
|
||||
sourceMetrics.bossDamageDealt += actualDamage;
|
||||
}
|
||||
|
||||
AddSkillValue(sourceMetrics.damageBySkill, ResolveSkillLabel(source), actualDamage);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 실제 적용된 회복량을 기록합니다.
|
||||
/// </summary>
|
||||
public static void RecordHeal(GameObject source, GameObject target, float actualHeal)
|
||||
{
|
||||
if (actualHeal <= 0f || target == null)
|
||||
return;
|
||||
|
||||
MarkCombatEvent();
|
||||
|
||||
ActorMetrics targetMetrics = GetMetrics(target);
|
||||
targetMetrics.healReceived += actualHeal;
|
||||
|
||||
if (source == null)
|
||||
return;
|
||||
|
||||
ActorMetrics sourceMetrics = GetMetrics(source);
|
||||
sourceMetrics.healDone += actualHeal;
|
||||
AddSkillValue(sourceMetrics.healBySkill, ResolveSkillLabel(source), actualHeal);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 실제 적용된 보호막 수치를 기록합니다.
|
||||
/// </summary>
|
||||
public static void RecordShield(GameObject source, GameObject target, float actualShield)
|
||||
{
|
||||
if (actualShield <= 0f || target == null)
|
||||
return;
|
||||
|
||||
MarkCombatEvent();
|
||||
|
||||
ActorMetrics targetMetrics = GetMetrics(target);
|
||||
targetMetrics.shieldReceived += actualShield;
|
||||
|
||||
if (source == null)
|
||||
return;
|
||||
|
||||
ActorMetrics sourceMetrics = GetMetrics(source);
|
||||
sourceMetrics.shieldApplied += actualShield;
|
||||
AddSkillValue(sourceMetrics.shieldBySkill, ResolveSkillLabel(source), actualShield);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 실제 적용된 위협 증가량을 기록합니다.
|
||||
/// </summary>
|
||||
public static void RecordThreat(GameObject source, float threatAmount)
|
||||
{
|
||||
if (threatAmount <= 0f || source == null)
|
||||
return;
|
||||
|
||||
MarkCombatEvent();
|
||||
|
||||
ActorMetrics sourceMetrics = GetMetrics(source);
|
||||
sourceMetrics.threatGenerated += threatAmount;
|
||||
AddSkillValue(sourceMetrics.threatBySkill, ResolveSkillLabel(source), threatAmount);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 보스 패턴 사용 횟수를 기록합니다.
|
||||
/// </summary>
|
||||
public static void RecordBossPattern(string patternName)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(patternName))
|
||||
return;
|
||||
|
||||
MarkCombatEvent();
|
||||
AddCount(bossPatternCounts, patternName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 시그니처 성공/실패 같은 보스 전투 이벤트를 기록합니다.
|
||||
/// </summary>
|
||||
public static void RecordBossEvent(string eventName)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(eventName))
|
||||
return;
|
||||
|
||||
MarkCombatEvent();
|
||||
AddCount(bossEventCounts, eventName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 현재 누적 계측 데이터를 보기 좋은 문자열로 반환합니다.
|
||||
/// </summary>
|
||||
public static string BuildSummary()
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.Append("[Balance] 전투 요약");
|
||||
|
||||
if (combatStartTime >= 0f && lastEventTime >= combatStartTime)
|
||||
{
|
||||
builder.Append(" | Duration=");
|
||||
builder.Append((lastEventTime - combatStartTime).ToString("0.00"));
|
||||
builder.Append("s");
|
||||
}
|
||||
|
||||
if (bossPatternCounts.Count > 0)
|
||||
{
|
||||
builder.AppendLine();
|
||||
builder.Append("보스 패턴: ");
|
||||
AppendCountSummary(builder, bossPatternCounts);
|
||||
}
|
||||
|
||||
if (bossEventCounts.Count > 0)
|
||||
{
|
||||
builder.AppendLine();
|
||||
builder.Append("보스 이벤트: ");
|
||||
AppendCountSummary(builder, bossEventCounts);
|
||||
}
|
||||
|
||||
foreach (KeyValuePair<string, ActorMetrics> pair in actorMetrics)
|
||||
{
|
||||
ActorMetrics metrics = pair.Value;
|
||||
builder.AppendLine();
|
||||
builder.Append("- ");
|
||||
builder.Append(metrics.label);
|
||||
builder.Append(" | BossDmg=");
|
||||
builder.Append(metrics.bossDamageDealt.ToString("0.##"));
|
||||
builder.Append(" | TotalDmg=");
|
||||
builder.Append(metrics.totalDamageDealt.ToString("0.##"));
|
||||
builder.Append(" | Taken=");
|
||||
builder.Append(metrics.damageTaken.ToString("0.##"));
|
||||
builder.Append(" | Heal=");
|
||||
builder.Append(metrics.healDone.ToString("0.##"));
|
||||
builder.Append(" | HealRecv=");
|
||||
builder.Append(metrics.healReceived.ToString("0.##"));
|
||||
builder.Append(" | Shield=");
|
||||
builder.Append(metrics.shieldApplied.ToString("0.##"));
|
||||
builder.Append(" | ShieldRecv=");
|
||||
builder.Append(metrics.shieldReceived.ToString("0.##"));
|
||||
builder.Append(" | Threat=");
|
||||
builder.Append(metrics.threatGenerated.ToString("0.##"));
|
||||
|
||||
AppendSkillBreakdown(builder, "DmgBySkill", metrics.damageBySkill);
|
||||
AppendSkillBreakdown(builder, "HealBySkill", metrics.healBySkill);
|
||||
AppendSkillBreakdown(builder, "ShieldBySkill", metrics.shieldBySkill);
|
||||
AppendSkillBreakdown(builder, "ThreatBySkill", metrics.threatBySkill);
|
||||
}
|
||||
|
||||
return builder.ToString();
|
||||
}
|
||||
|
||||
private static void MarkCombatEvent()
|
||||
{
|
||||
if (!Application.isPlaying)
|
||||
return;
|
||||
|
||||
float now = Time.time;
|
||||
if (combatStartTime < 0f)
|
||||
combatStartTime = now;
|
||||
|
||||
lastEventTime = now;
|
||||
}
|
||||
|
||||
private static ActorMetrics GetMetrics(GameObject actor)
|
||||
{
|
||||
string actorLabel = ResolveActorLabel(actor);
|
||||
if (!actorMetrics.TryGetValue(actorLabel, out ActorMetrics metrics))
|
||||
{
|
||||
metrics = new ActorMetrics
|
||||
{
|
||||
label = actorLabel,
|
||||
};
|
||||
|
||||
actorMetrics.Add(actorLabel, metrics);
|
||||
}
|
||||
|
||||
return metrics;
|
||||
}
|
||||
|
||||
private static string ResolveActorLabel(GameObject actor)
|
||||
{
|
||||
if (actor == null)
|
||||
return "Unknown";
|
||||
|
||||
NetworkObject networkObject = actor.GetComponent<NetworkObject>() ?? actor.GetComponentInParent<NetworkObject>();
|
||||
if (networkObject != null)
|
||||
{
|
||||
string roleLabel = actor.GetComponent<BossEnemy>() != null || actor.GetComponentInParent<BossEnemy>() != null
|
||||
? "Boss"
|
||||
: "Actor";
|
||||
|
||||
return $"{roleLabel}:{actor.name}(Owner={networkObject.OwnerClientId})";
|
||||
}
|
||||
|
||||
return actor.name;
|
||||
}
|
||||
|
||||
private static string ResolveSkillLabel(GameObject source)
|
||||
{
|
||||
if (source == null)
|
||||
return "Unknown";
|
||||
|
||||
SkillController skillController = source.GetComponent<SkillController>() ?? source.GetComponentInParent<SkillController>();
|
||||
if (skillController != null && skillController.CurrentSkill != null)
|
||||
return skillController.CurrentSkill.SkillName;
|
||||
|
||||
return "Unknown";
|
||||
}
|
||||
|
||||
private static void AddSkillValue(Dictionary<string, float> dictionary, string key, float value)
|
||||
{
|
||||
if (dictionary == null || string.IsNullOrWhiteSpace(key) || value <= 0f)
|
||||
return;
|
||||
|
||||
dictionary.TryGetValue(key, out float currentValue);
|
||||
dictionary[key] = currentValue + value;
|
||||
}
|
||||
|
||||
private static void AddCount(Dictionary<string, int> dictionary, string key)
|
||||
{
|
||||
dictionary.TryGetValue(key, out int currentValue);
|
||||
dictionary[key] = currentValue + 1;
|
||||
}
|
||||
|
||||
private static void AppendCountSummary(StringBuilder builder, Dictionary<string, int> dictionary)
|
||||
{
|
||||
bool first = true;
|
||||
foreach (KeyValuePair<string, int> pair in dictionary)
|
||||
{
|
||||
if (!first)
|
||||
builder.Append(" | ");
|
||||
|
||||
builder.Append(pair.Key);
|
||||
builder.Append('=');
|
||||
builder.Append(pair.Value);
|
||||
first = false;
|
||||
}
|
||||
}
|
||||
|
||||
private static void AppendSkillBreakdown(StringBuilder builder, string label, Dictionary<string, float> dictionary)
|
||||
{
|
||||
if (dictionary == null || dictionary.Count == 0)
|
||||
return;
|
||||
|
||||
builder.Append(" | ");
|
||||
builder.Append(label);
|
||||
builder.Append('=');
|
||||
|
||||
bool first = true;
|
||||
foreach (KeyValuePair<string, float> pair in dictionary)
|
||||
{
|
||||
if (!first)
|
||||
builder.Append(", ");
|
||||
|
||||
builder.Append(pair.Key);
|
||||
builder.Append(':');
|
||||
builder.Append(pair.Value.ToString("0.##"));
|
||||
first = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/_Game/Scripts/Combat/CombatBalanceTracker.cs.meta
Normal file
2
Assets/_Game/Scripts/Combat/CombatBalanceTracker.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f9168649dde02654baf3b890d70d8b74
|
||||
271
Assets/_Game/Scripts/Combat/ShieldAbnormalityUtility.cs
Normal file
271
Assets/_Game/Scripts/Combat/ShieldAbnormalityUtility.cs
Normal file
@@ -0,0 +1,271 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
using Colosseum.Abnormalities;
|
||||
|
||||
namespace Colosseum.Combat
|
||||
{
|
||||
/// <summary>
|
||||
/// 개별 보호막 인스턴스입니다.
|
||||
/// 같은 종류의 보호막은 하나로 합쳐지고, 다른 종류의 보호막은 독립적으로 유지됩니다.
|
||||
/// </summary>
|
||||
[System.Serializable]
|
||||
public sealed class ActiveShield
|
||||
{
|
||||
[SerializeField] private AbnormalityData shieldType;
|
||||
[SerializeField] private float remainingAmount;
|
||||
[SerializeField] private float remainingDuration;
|
||||
[SerializeField] private bool isPermanent;
|
||||
[SerializeField] private GameObject source;
|
||||
|
||||
public AbnormalityData ShieldType => shieldType;
|
||||
public float RemainingAmount => remainingAmount;
|
||||
public float RemainingDuration => isPermanent ? 0f : remainingDuration;
|
||||
public bool IsPermanent => isPermanent;
|
||||
public bool IsExpired => !isPermanent && remainingDuration <= 0f;
|
||||
public bool IsDepleted => remainingAmount <= 0f;
|
||||
public GameObject Source => source;
|
||||
|
||||
public ActiveShield(AbnormalityData shieldType, float amount, float duration, GameObject source)
|
||||
{
|
||||
this.shieldType = shieldType;
|
||||
remainingAmount = Mathf.Max(0f, amount);
|
||||
isPermanent = duration <= 0f;
|
||||
remainingDuration = isPermanent ? 0f : duration;
|
||||
this.source = source;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 같은 종류 보호막이 다시 적용되었을 때 양을 더하고 지속시간을 갱신합니다.
|
||||
/// </summary>
|
||||
public float Add(float amount, float duration, GameObject source)
|
||||
{
|
||||
float appliedAmount = Mathf.Max(0f, amount);
|
||||
remainingAmount += appliedAmount;
|
||||
|
||||
if (duration <= 0f)
|
||||
{
|
||||
isPermanent = true;
|
||||
remainingDuration = 0f;
|
||||
}
|
||||
else if (!isPermanent)
|
||||
{
|
||||
remainingDuration = duration;
|
||||
}
|
||||
|
||||
if (source != null)
|
||||
{
|
||||
this.source = source;
|
||||
}
|
||||
|
||||
return appliedAmount;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 지속시간을 감소시킵니다.
|
||||
/// </summary>
|
||||
public bool Tick(float deltaTime)
|
||||
{
|
||||
if (isPermanent || deltaTime <= 0f)
|
||||
return false;
|
||||
|
||||
remainingDuration = Mathf.Max(0f, remainingDuration - deltaTime);
|
||||
return IsExpired;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 들어오는 피해를 흡수합니다.
|
||||
/// </summary>
|
||||
public float Consume(float incomingDamage)
|
||||
{
|
||||
if (incomingDamage <= 0f || remainingAmount <= 0f)
|
||||
return 0f;
|
||||
|
||||
float absorbed = Mathf.Min(remainingAmount, incomingDamage);
|
||||
remainingAmount = Mathf.Max(0f, remainingAmount - absorbed);
|
||||
return absorbed;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 대상이 가진 보호막 인스턴스를 관리합니다.
|
||||
/// </summary>
|
||||
[System.Serializable]
|
||||
public sealed class ShieldCollection
|
||||
{
|
||||
private readonly List<ActiveShield> activeShields = new List<ActiveShield>();
|
||||
|
||||
public IReadOnlyList<ActiveShield> ActiveShields => activeShields;
|
||||
|
||||
public float TotalAmount
|
||||
{
|
||||
get
|
||||
{
|
||||
float total = 0f;
|
||||
for (int i = 0; i < activeShields.Count; i++)
|
||||
{
|
||||
total += activeShields[i].RemainingAmount;
|
||||
}
|
||||
|
||||
return total;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 보호막을 적용합니다. 같은 종류는 자기 자신만 합산 및 갱신합니다.
|
||||
/// </summary>
|
||||
public float ApplyShield(AbnormalityData shieldType, float amount, float duration, GameObject source)
|
||||
{
|
||||
if (amount <= 0f)
|
||||
return 0f;
|
||||
|
||||
ActiveShield existingShield = FindShield(shieldType);
|
||||
if (existingShield != null)
|
||||
{
|
||||
return existingShield.Add(amount, duration, source);
|
||||
}
|
||||
|
||||
activeShields.Add(new ActiveShield(shieldType, amount, duration, source));
|
||||
return amount;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 보호막이 적용된 순서대로 피해를 흡수하고 남은 피해를 반환합니다.
|
||||
/// </summary>
|
||||
public float ConsumeDamage(float incomingDamage)
|
||||
{
|
||||
if (incomingDamage <= 0f || activeShields.Count == 0)
|
||||
return incomingDamage;
|
||||
|
||||
float remainingDamage = incomingDamage;
|
||||
for (int i = 0; i < activeShields.Count && remainingDamage > 0f; i++)
|
||||
{
|
||||
remainingDamage -= activeShields[i].Consume(remainingDamage);
|
||||
}
|
||||
|
||||
CleanupInactiveShields();
|
||||
return Mathf.Max(0f, remainingDamage);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 지속시간 경과를 처리합니다.
|
||||
/// </summary>
|
||||
public bool Tick(float deltaTime)
|
||||
{
|
||||
bool changed = false;
|
||||
|
||||
for (int i = activeShields.Count - 1; i >= 0; i--)
|
||||
{
|
||||
ActiveShield shield = activeShields[i];
|
||||
bool expired = shield.Tick(deltaTime);
|
||||
if (!expired && !shield.IsDepleted)
|
||||
continue;
|
||||
|
||||
activeShields.RemoveAt(i);
|
||||
changed = true;
|
||||
}
|
||||
|
||||
return changed;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 모든 보호막을 제거합니다.
|
||||
/// </summary>
|
||||
public void Clear()
|
||||
{
|
||||
activeShields.Clear();
|
||||
}
|
||||
|
||||
private ActiveShield FindShield(AbnormalityData shieldType)
|
||||
{
|
||||
for (int i = 0; i < activeShields.Count; i++)
|
||||
{
|
||||
if (activeShields[i].ShieldType == shieldType)
|
||||
return activeShields[i];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void CleanupInactiveShields()
|
||||
{
|
||||
for (int i = activeShields.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (!activeShields[i].IsExpired && !activeShields[i].IsDepleted)
|
||||
continue;
|
||||
|
||||
activeShields.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 보호막 수치와 보호막 이상상태를 동기화하는 유틸리티입니다.
|
||||
/// </summary>
|
||||
public static class ShieldAbnormalityUtility
|
||||
{
|
||||
/// <summary>
|
||||
/// 활성 보호막 목록에 맞춰 보호막 이상상태를 적용하거나 제거합니다.
|
||||
/// </summary>
|
||||
public static void SyncShieldAbnormalities(
|
||||
AbnormalityManager abnormalityManager,
|
||||
IReadOnlyList<ActiveShield> activeShields,
|
||||
GameObject defaultSource)
|
||||
{
|
||||
if (abnormalityManager == null)
|
||||
return;
|
||||
|
||||
HashSet<AbnormalityData> desiredShieldStates = new HashSet<AbnormalityData>();
|
||||
Dictionary<AbnormalityData, GameObject> shieldSources = new Dictionary<AbnormalityData, GameObject>();
|
||||
|
||||
if (activeShields != null)
|
||||
{
|
||||
for (int i = 0; i < activeShields.Count; i++)
|
||||
{
|
||||
ActiveShield shield = activeShields[i];
|
||||
if (shield == null || shield.RemainingAmount <= 0f || shield.ShieldType == null)
|
||||
continue;
|
||||
|
||||
desiredShieldStates.Add(shield.ShieldType);
|
||||
|
||||
if (!shieldSources.ContainsKey(shield.ShieldType))
|
||||
{
|
||||
shieldSources.Add(shield.ShieldType, shield.Source != null ? shield.Source : defaultSource);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (AbnormalityData shieldState in desiredShieldStates)
|
||||
{
|
||||
if (abnormalityManager.HasAbnormality(shieldState))
|
||||
continue;
|
||||
|
||||
GameObject source = shieldSources.TryGetValue(shieldState, out GameObject resolvedSource)
|
||||
? resolvedSource
|
||||
: defaultSource;
|
||||
abnormalityManager.ApplyAbnormality(shieldState, source);
|
||||
}
|
||||
|
||||
IReadOnlyList<ActiveAbnormality> activeAbnormalities = abnormalityManager.ActiveAbnormalities;
|
||||
List<AbnormalityData> removeList = new List<AbnormalityData>();
|
||||
|
||||
for (int i = 0; i < activeAbnormalities.Count; i++)
|
||||
{
|
||||
ActiveAbnormality activeAbnormality = activeAbnormalities[i];
|
||||
if (activeAbnormality?.Data == null || !activeAbnormality.Data.isShieldState)
|
||||
continue;
|
||||
|
||||
if (desiredShieldStates.Contains(activeAbnormality.Data))
|
||||
continue;
|
||||
|
||||
removeList.Add(activeAbnormality.Data);
|
||||
}
|
||||
|
||||
for (int i = 0; i < removeList.Count; i++)
|
||||
{
|
||||
abnormalityManager.RemoveAbnormality(removeList[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 69ea46fefb9597e49a4ce68c81ccf0ce
|
||||
356
Assets/_Game/Scripts/Editor/MultiplayerPlayModeDebugMenu.cs
Normal file
356
Assets/_Game/Scripts/Editor/MultiplayerPlayModeDebugMenu.cs
Normal file
@@ -0,0 +1,356 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using Process = System.Diagnostics.Process;
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Colosseum.Editor
|
||||
{
|
||||
/// <summary>
|
||||
/// Multiplayer Play Mode 관련 상태와 리플렉션 정보를 점검하는 디버그 메뉴입니다.
|
||||
/// </summary>
|
||||
public static class MultiplayerPlayModeDebugMenu
|
||||
{
|
||||
private const string MultiplayerManagerAssetPath = "ProjectSettings/MultiplayerManager.asset";
|
||||
private const string DiagnosticsDirectory = "Temp/MPP";
|
||||
private const string VirtualProjectsRoot = "Library/VP";
|
||||
|
||||
[MenuItem("Tools/Colosseum/Multiplayer/Log Play Mode Module Types")]
|
||||
private static void LogPlayModeModuleTypes()
|
||||
{
|
||||
Assembly playModeAssembly = typeof(UnityEditor.PlayModeStateChange).Assembly;
|
||||
Type[] types = playModeAssembly
|
||||
.GetTypes()
|
||||
.Where(type => type.FullName != null &&
|
||||
(type.FullName.Contains("PlayMode", StringComparison.OrdinalIgnoreCase) ||
|
||||
type.FullName.Contains("Scenario", StringComparison.OrdinalIgnoreCase) ||
|
||||
type.FullName.Contains("Multiplayer", StringComparison.OrdinalIgnoreCase)))
|
||||
.OrderBy(type => type.FullName)
|
||||
.ToArray();
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.AppendLine("[MPP] PlayModeModule 타입 목록");
|
||||
for (int i = 0; i < types.Length; i++)
|
||||
{
|
||||
builder.Append("- ");
|
||||
builder.AppendLine(types[i].FullName);
|
||||
}
|
||||
|
||||
string diagnosticsPath = EnsureDiagnosticsFilePath("PlayModeModuleTypes.txt");
|
||||
File.WriteAllText(diagnosticsPath, builder.ToString(), Encoding.UTF8);
|
||||
Debug.Log($"[MPP] PlayModeModule 타입 목록을 저장했습니다. {diagnosticsPath}");
|
||||
}
|
||||
|
||||
[MenuItem("Tools/Colosseum/Multiplayer/Log Play Mode User Settings")]
|
||||
private static void LogPlayModeUserSettings()
|
||||
{
|
||||
Type settingsType = Type.GetType("Unity.PlayMode.Editor.PlayModeUserSettings, UnityEditor.PlayModeModule");
|
||||
if (settingsType == null)
|
||||
{
|
||||
Debug.LogWarning("[MPP] Unity.PlayMode.Editor.PlayModeUserSettings 타입을 찾지 못했습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
string diagnosticsPath = EnsureDiagnosticsFilePath("PlayModeUserSettings.txt");
|
||||
MethodInfo getOrCreateMethod = settingsType.GetMethod(
|
||||
"GetOrCreateSettings",
|
||||
BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);
|
||||
|
||||
object settings = getOrCreateMethod?.Invoke(null, null);
|
||||
if (settings == null)
|
||||
{
|
||||
StringBuilder nullBuilder = new StringBuilder();
|
||||
nullBuilder.AppendLine("[MPP] PlayModeUserSettings 인스턴스를 가져오지 못했습니다.");
|
||||
nullBuilder.AppendLine($"Type: {settingsType.FullName}");
|
||||
nullBuilder.AppendLine("Static Members:");
|
||||
AppendStaticMembers(nullBuilder, settingsType);
|
||||
File.WriteAllText(diagnosticsPath, nullBuilder.ToString(), Encoding.UTF8);
|
||||
Debug.LogWarning($"[MPP] PlayModeUserSettings 인스턴스를 가져오지 못했습니다. 진단 파일: {diagnosticsPath}");
|
||||
return;
|
||||
}
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.AppendLine("[MPP] PlayModeUserSettings");
|
||||
AppendMembers(builder, settingsType, settings);
|
||||
AppendStaticMembers(builder, settingsType);
|
||||
File.WriteAllText(diagnosticsPath, builder.ToString(), Encoding.UTF8);
|
||||
Debug.Log($"[MPP] PlayModeUserSettings 정보를 저장했습니다. {diagnosticsPath}");
|
||||
}
|
||||
|
||||
[MenuItem("Tools/Colosseum/Multiplayer/Enable Local Deployment")]
|
||||
private static void EnableLocalDeployment()
|
||||
{
|
||||
SerializedObject multiplayerManager = GetMultiplayerManagerSerializedObject();
|
||||
if (multiplayerManager == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
SerializedProperty localDeployment = multiplayerManager.FindProperty("m_EnablePlayModeLocalDeployment");
|
||||
if (localDeployment == null)
|
||||
{
|
||||
Debug.LogWarning("[MPP] m_EnablePlayModeLocalDeployment 속성을 찾지 못했습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
localDeployment.intValue = 1;
|
||||
multiplayerManager.ApplyModifiedPropertiesWithoutUndo();
|
||||
AssetDatabase.SaveAssets();
|
||||
|
||||
Debug.Log("[MPP] 로컬 Play Mode 배포를 활성화했습니다.");
|
||||
}
|
||||
|
||||
[MenuItem("Tools/Colosseum/Multiplayer/Disable Local Deployment")]
|
||||
private static void DisableLocalDeployment()
|
||||
{
|
||||
SerializedObject multiplayerManager = GetMultiplayerManagerSerializedObject();
|
||||
if (multiplayerManager == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
SerializedProperty localDeployment = multiplayerManager.FindProperty("m_EnablePlayModeLocalDeployment");
|
||||
if (localDeployment == null)
|
||||
{
|
||||
Debug.LogWarning("[MPP] m_EnablePlayModeLocalDeployment 속성을 찾지 못했습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
localDeployment.intValue = 0;
|
||||
multiplayerManager.ApplyModifiedPropertiesWithoutUndo();
|
||||
AssetDatabase.SaveAssets();
|
||||
|
||||
Debug.Log("[MPP] 로컬 Play Mode 배포를 비활성화했습니다.");
|
||||
}
|
||||
|
||||
[MenuItem("Tools/Colosseum/Multiplayer/Log Multiplayer Manager Settings")]
|
||||
private static void LogMultiplayerManagerSettings()
|
||||
{
|
||||
SerializedObject multiplayerManager = GetMultiplayerManagerSerializedObject();
|
||||
if (multiplayerManager == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
SerializedProperty roles = multiplayerManager.FindProperty("m_EnableMultiplayerRoles");
|
||||
SerializedProperty localDeployment = multiplayerManager.FindProperty("m_EnablePlayModeLocalDeployment");
|
||||
SerializedProperty remoteDeployment = multiplayerManager.FindProperty("m_EnablePlayModeRemoteDeployment");
|
||||
|
||||
Debug.Log(
|
||||
$"[MPP] MultiplayerManager | Roles={roles?.intValue ?? -1} | " +
|
||||
$"LocalDeployment={localDeployment?.intValue ?? -1} | " +
|
||||
$"RemoteDeployment={remoteDeployment?.intValue ?? -1}");
|
||||
}
|
||||
|
||||
[MenuItem("Tools/Colosseum/Multiplayer/Log Virtual Player Clones")]
|
||||
private static void LogVirtualPlayerClones()
|
||||
{
|
||||
string[] cloneDirectories = GetVirtualPlayerCloneDirectories();
|
||||
if (cloneDirectories.Length == 0)
|
||||
{
|
||||
Debug.LogWarning("[MPP] Library/VP 아래에 가상 플레이어 복제본을 찾지 못했습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.AppendLine("[MPP] 가상 플레이어 복제본 목록");
|
||||
for (int i = 0; i < cloneDirectories.Length; i++)
|
||||
{
|
||||
builder.Append("- ");
|
||||
builder.AppendLine(Path.GetFullPath(cloneDirectories[i]));
|
||||
}
|
||||
|
||||
Debug.Log(builder.ToString());
|
||||
}
|
||||
|
||||
[MenuItem("Tools/Colosseum/Multiplayer/Launch First Virtual Player Clone")]
|
||||
private static void LaunchFirstVirtualPlayerClone()
|
||||
{
|
||||
string[] cloneDirectories = GetVirtualPlayerCloneDirectories();
|
||||
if (cloneDirectories.Length == 0)
|
||||
{
|
||||
Debug.LogWarning("[MPP] 실행할 가상 플레이어 복제본이 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
string cloneProjectPath = Path.GetFullPath(cloneDirectories[0]);
|
||||
Process.Start(new System.Diagnostics.ProcessStartInfo
|
||||
{
|
||||
FileName = EditorApplication.applicationPath,
|
||||
Arguments = $"-projectPath \"{cloneProjectPath}\"",
|
||||
UseShellExecute = true,
|
||||
});
|
||||
|
||||
Debug.Log($"[MPP] 가상 플레이어 복제본을 실행했습니다. {cloneProjectPath}");
|
||||
}
|
||||
|
||||
private static SerializedObject GetMultiplayerManagerSerializedObject()
|
||||
{
|
||||
UnityEngine.Object[] assets = AssetDatabase.LoadAllAssetsAtPath(MultiplayerManagerAssetPath);
|
||||
if (assets == null || assets.Length == 0 || assets[0] == null)
|
||||
{
|
||||
Debug.LogWarning("[MPP] MultiplayerManager.asset를 찾지 못했습니다.");
|
||||
return null;
|
||||
}
|
||||
|
||||
return new SerializedObject(assets[0]);
|
||||
}
|
||||
|
||||
private static void AppendMembers(StringBuilder builder, Type settingsType, object settings)
|
||||
{
|
||||
const BindingFlags flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
|
||||
|
||||
List<PropertyInfo> properties = settingsType.GetProperties(flags)
|
||||
.Where(property => property.GetIndexParameters().Length == 0)
|
||||
.OrderBy(property => property.Name)
|
||||
.ToList();
|
||||
|
||||
for (int i = 0; i < properties.Count; i++)
|
||||
{
|
||||
PropertyInfo property = properties[i];
|
||||
object value = null;
|
||||
bool success = true;
|
||||
|
||||
try
|
||||
{
|
||||
value = property.GetValue(settings);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
success = false;
|
||||
value = exception.GetType().Name;
|
||||
}
|
||||
|
||||
builder.Append("- Property ");
|
||||
builder.Append(property.Name);
|
||||
builder.Append(" = ");
|
||||
builder.AppendLine(success ? FormatValue(value) : $"<error: {value}>");
|
||||
}
|
||||
|
||||
List<FieldInfo> fields = settingsType.GetFields(flags)
|
||||
.OrderBy(field => field.Name)
|
||||
.ToList();
|
||||
|
||||
for (int i = 0; i < fields.Count; i++)
|
||||
{
|
||||
FieldInfo field = fields[i];
|
||||
object value = field.GetValue(settings);
|
||||
builder.Append("- Field ");
|
||||
builder.Append(field.Name);
|
||||
builder.Append(" = ");
|
||||
builder.AppendLine(FormatValue(value));
|
||||
}
|
||||
}
|
||||
|
||||
private static void AppendStaticMembers(StringBuilder builder, Type settingsType)
|
||||
{
|
||||
const BindingFlags flags = BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;
|
||||
|
||||
List<PropertyInfo> properties = settingsType.GetProperties(flags)
|
||||
.Where(property => property.GetIndexParameters().Length == 0)
|
||||
.OrderBy(property => property.Name)
|
||||
.ToList();
|
||||
|
||||
for (int i = 0; i < properties.Count; i++)
|
||||
{
|
||||
PropertyInfo property = properties[i];
|
||||
object value = null;
|
||||
bool success = true;
|
||||
|
||||
try
|
||||
{
|
||||
value = property.GetValue(null);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
success = false;
|
||||
value = exception.GetType().Name;
|
||||
}
|
||||
|
||||
builder.Append("- Static Property ");
|
||||
builder.Append(property.Name);
|
||||
builder.Append(" = ");
|
||||
builder.AppendLine(success ? FormatValue(value) : $"<error: {value}>");
|
||||
}
|
||||
|
||||
List<FieldInfo> fields = settingsType.GetFields(flags)
|
||||
.OrderBy(field => field.Name)
|
||||
.ToList();
|
||||
|
||||
for (int i = 0; i < fields.Count; i++)
|
||||
{
|
||||
FieldInfo field = fields[i];
|
||||
object value = field.GetValue(null);
|
||||
builder.Append("- Static Field ");
|
||||
builder.Append(field.Name);
|
||||
builder.Append(" = ");
|
||||
builder.AppendLine(FormatValue(value));
|
||||
}
|
||||
|
||||
List<MethodInfo> methods = settingsType.GetMethods(flags)
|
||||
.Where(method => !method.IsSpecialName)
|
||||
.OrderBy(method => method.Name)
|
||||
.ToList();
|
||||
|
||||
for (int i = 0; i < methods.Count; i++)
|
||||
{
|
||||
MethodInfo method = methods[i];
|
||||
string parameterSummary = string.Join(
|
||||
", ",
|
||||
method.GetParameters().Select(parameter => $"{parameter.ParameterType.Name} {parameter.Name}"));
|
||||
|
||||
builder.Append("- Static Method ");
|
||||
builder.Append(method.ReturnType.Name);
|
||||
builder.Append(' ');
|
||||
builder.Append(method.Name);
|
||||
builder.Append('(');
|
||||
builder.Append(parameterSummary);
|
||||
builder.AppendLine(")");
|
||||
}
|
||||
}
|
||||
|
||||
private static string EnsureDiagnosticsFilePath(string fileName)
|
||||
{
|
||||
Directory.CreateDirectory(DiagnosticsDirectory);
|
||||
return Path.Combine(DiagnosticsDirectory, fileName);
|
||||
}
|
||||
|
||||
private static string[] GetVirtualPlayerCloneDirectories()
|
||||
{
|
||||
if (!Directory.Exists(VirtualProjectsRoot))
|
||||
{
|
||||
return Array.Empty<string>();
|
||||
}
|
||||
|
||||
return Directory
|
||||
.GetDirectories(VirtualProjectsRoot, "mppm*")
|
||||
.OrderBy(path => path)
|
||||
.ToArray();
|
||||
}
|
||||
|
||||
private static string FormatValue(object value)
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
return "null";
|
||||
}
|
||||
|
||||
if (value is string stringValue)
|
||||
{
|
||||
return stringValue;
|
||||
}
|
||||
|
||||
if (value is IEnumerable<object> enumerable)
|
||||
{
|
||||
return "[" + string.Join(", ", enumerable.Select(FormatValue)) + "]";
|
||||
}
|
||||
|
||||
return value.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user