feat: 다중 젬 공격 검증용 프리셋 및 디버그 보강

- 젬 테스트 공격용 공격형 젬 3종과 추가 피해 이펙트 자산을 추가
- 단일/복합/삼중 젬 프리셋과 공격 삼중 젬 테스트 프리셋을 생성 경로에 반영
- 플레이어 스킬 디버그 메뉴에 젬 프리셋 적용, 보스 체력 확인, 공격 검증 경로를 추가
- 추가 피해 이펙트의 타겟 레이어 설정을 수정해 보스 타격이 실제 대미지로 이어지도록 보강
- 무젬 35, 공격 삼중 젬 56으로 서로 다른 추가 피해 젬 3종의 합산 대미지 21을 검증
This commit is contained in:
2026-03-25 19:59:16 +09:00
parent 24b284ad7e
commit 3db8acfaaa
31 changed files with 903 additions and 1 deletions

View File

@@ -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}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b4d1f570d76e0d24f957538042979d3e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ba6bd335928358e4cb356350b1d7dea9
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8d16495421b4c6a42a94be0f73c677df
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -40,6 +40,7 @@ MonoBehaviour:
socketedGems:
- {fileID: 11400000, guid: 2c42bf0e90f5dd9488d534c337a44eed, type: 2}
- {fileID: 0}
- {fileID: 0}
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
socketedGems:
- {fileID: 0}

View File

@@ -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}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8444892e65aef174098c01ec184656ce
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fa6d264f0222d3c48840dee746641b93
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -40,6 +40,7 @@ MonoBehaviour:
socketedGems:
- {fileID: 11400000, guid: de5e48980eba8794c93ea7168d592f8f, type: 2}
- {fileID: 0}
- {fileID: 0}
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
socketedGems:
- {fileID: 0}

View File

@@ -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}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: bafefc1df5ada674294ea2a684a9333a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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: 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}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 49c33a6bc2118c44bb4362b55469a8d1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -40,6 +40,7 @@ MonoBehaviour:
socketedGems:
- {fileID: 11400000, guid: e86536592f45d2b49b9d25abbad1b184, type: 2}
- {fileID: 0}
- {fileID: 0}
- baseSkill: {fileID: 11400000, guid: 2ed15dca92a165046b6df17b28f64874, type: 2}
socketedGems:
- {fileID: 0}

View File

@@ -0,0 +1,25 @@
%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}
manaCostMultiplier: 1
cooldownMultiplier: 1
castStartEffects: []
triggeredEffects:
- triggerIndex: 0
effects:
- {fileID: 11400000, guid: 2a467b25340d65f4a854350319f10d0a, type: 2}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 47a98aa9a30748a4da49455ac0fbd142
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,25 @@
%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}
manaCostMultiplier: 1
cooldownMultiplier: 1
castStartEffects: []
triggeredEffects:
- triggerIndex: 0
effects:
- {fileID: 11400000, guid: 197e5c38a24c95044a5959bb4c67f055, type: 2}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 66ccf80cf9c50614dbe13ea7f24a6f19
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,25 @@
%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}
manaCostMultiplier: 1
cooldownMultiplier: 1
castStartEffects: []
triggeredEffects:
- triggerIndex: 0
effects:
- {fileID: 11400000, guid: 1a6d1b31b640d87499ef7c9e3580ed34, type: 2}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cf3e3e1f9f1f42f499196fa819263dc1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -13,13 +13,21 @@ MonoBehaviour:
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"
description: "\uB2E4\uC911 \uC82C \uD6A8\uACFC \uAC80\uC99D\uC6A9 \uBE60\uB978
\uB2E8\uC77C \uACF5\uACA9"
icon: {fileID: 0}
skillClip: {fileID: -8689311932429934276, guid: 1a2314cec0db9814f90aaa68fc5ce4bd, type: 3}
endClip: {fileID: 0}
animationSpeed: 1
useRootMotion: 1
ignoreRootMotionY: 1
jumpToTarget: 0
blockMovementWhileCasting: 1
blockJumpWhileCasting: 1
blockOtherSkillsWhileCasting: 1
cooldown: 0.5
manaCost: 3
maxGemSlotCount: 3
castStartEffects: []
effects:
- {fileID: 11400000, guid: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4, type: 2}

View File

@@ -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: 4294967295
includeCasterInArea: 0
areaRadius: 2
fanOriginDistance: 0
fanRadius: 3
fanHalfAngle: 45
baseDamage: 4
damageType: 3
statScaling: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 197e5c38a24c95044a5959bb4c67f055
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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: 4294967295
includeCasterInArea: 0
areaRadius: 2
fanOriginDistance: 0
fanRadius: 3
fanHalfAngle: 45
baseDamage: 7
damageType: 3
statScaling: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1a6d1b31b640d87499ef7c9e3580ed34
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -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: 4294967295
includeCasterInArea: 0
areaRadius: 2
fanOriginDistance: 0
fanRadius: 3
fanHalfAngle: 45
baseDamage: 10
damageType: 3
statScaling: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2a467b25340d65f4a854350319f10d0a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -4,6 +4,7 @@ using System.Collections.Generic;
using Colosseum.Enemy;
using Colosseum.Player;
using Colosseum.Skills;
using Colosseum.Skills.Effects;
using Colosseum.UI;
using Colosseum.Abnormalities;
@@ -39,9 +40,22 @@ namespace Colosseum.Editor
private const string CrushGemPath = SkillGemFolderPath + "/Data_SkillGem_Player_파쇄.asset";
private const string ChallengerGemPath = SkillGemFolderPath + "/Data_SkillGem_Player_도전자.asset";
private const string GuardianGemPath = SkillGemFolderPath + "/Data_SkillGem_Player_수호.asset";
private const string EdgeGemPath = SkillGemFolderPath + "/Data_SkillGem_Player_예리함.asset";
private const string ImpactGemPath = SkillGemFolderPath + "/Data_SkillGem_Player_충격.asset";
private const string BreachGemPath = SkillGemFolderPath + "/Data_SkillGem_Player_관통.asset";
private const string EdgeDamageEffectPath = "Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_젬테스트_추가데미지A.asset";
private const string ImpactDamageEffectPath = "Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_젬테스트_추가데미지B.asset";
private const string BreachDamageEffectPath = "Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_젬테스트_추가데미지C.asset";
private const string TankGemPresetPath = LoadoutPresetFolderPath + "/Data_LoadoutPreset_Player_탱커_젬테스트.asset";
private const string SupportGemPresetPath = LoadoutPresetFolderPath + "/Data_LoadoutPreset_Player_지원_젬테스트.asset";
private const string DpsGemPresetPath = LoadoutPresetFolderPath + "/Data_LoadoutPreset_Player_딜러_젬테스트.asset";
private const string TankDualGemPresetPath = LoadoutPresetFolderPath + "/Data_LoadoutPreset_Player_탱커_복합젬테스트.asset";
private const string SupportDualGemPresetPath = LoadoutPresetFolderPath + "/Data_LoadoutPreset_Player_지원_복합젬테스트.asset";
private const string DpsDualGemPresetPath = LoadoutPresetFolderPath + "/Data_LoadoutPreset_Player_딜러_복합젬테스트.asset";
private const string TankTripleGemPresetPath = LoadoutPresetFolderPath + "/Data_LoadoutPreset_Player_탱커_삼중젬테스트.asset";
private const string SupportTripleGemPresetPath = LoadoutPresetFolderPath + "/Data_LoadoutPreset_Player_지원_삼중젬테스트.asset";
private const string DpsTripleGemPresetPath = LoadoutPresetFolderPath + "/Data_LoadoutPreset_Player_딜러_삼중젬테스트.asset";
private const string DamageStackPresetPath = LoadoutPresetFolderPath + "/Data_LoadoutPreset_Player_공격삼중젬테스트.asset";
[MenuItem("Tools/Colosseum/Debug/Cast Local Skill 3")]
private static void CastLocalSkill3()
@@ -195,6 +209,19 @@ namespace Colosseum.Editor
Debug.Log($"[Debug] 보스 위협 요약 | {builder}");
}
[MenuItem("Tools/Colosseum/Debug/Log Boss Health")]
private static void LogBossHealth()
{
BossEnemy boss = BossEnemy.ActiveBoss != null ? BossEnemy.ActiveBoss : Object.FindFirstObjectByType<BossEnemy>();
if (boss == null)
{
Debug.LogWarning("[Debug] 활성 보스를 찾지 못했습니다.");
return;
}
Debug.Log($"[Debug] 보스 체력 | Name={boss.name} | HP={boss.CurrentHealth:0.###}/{boss.MaxHealth:0.###}");
}
[MenuItem("Tools/Colosseum/Debug/Apply Local Stun")]
private static void ApplyLocalStun()
{
@@ -319,6 +346,48 @@ namespace Colosseum.Editor
ApplyLoadoutPreset(DpsGemPresetPath, "딜러 젬");
}
[MenuItem("Tools/Colosseum/Debug/Apply Tank Dual Gem Loadout")]
private static void ApplyTankDualGemLoadout()
{
ApplyLoadoutPreset(TankDualGemPresetPath, "탱커 복합 젬");
}
[MenuItem("Tools/Colosseum/Debug/Apply Support Dual Gem Loadout")]
private static void ApplySupportDualGemLoadout()
{
ApplyLoadoutPreset(SupportDualGemPresetPath, "지원 복합 젬");
}
[MenuItem("Tools/Colosseum/Debug/Apply DPS Dual Gem Loadout")]
private static void ApplyDpsDualGemLoadout()
{
ApplyLoadoutPreset(DpsDualGemPresetPath, "딜러 복합 젬");
}
[MenuItem("Tools/Colosseum/Debug/Apply Tank Triple Gem Loadout")]
private static void ApplyTankTripleGemLoadout()
{
ApplyLoadoutPreset(TankTripleGemPresetPath, "탱커 삼중 젬");
}
[MenuItem("Tools/Colosseum/Debug/Apply Support Triple Gem Loadout")]
private static void ApplySupportTripleGemLoadout()
{
ApplyLoadoutPreset(SupportTripleGemPresetPath, "지원 삼중 젬");
}
[MenuItem("Tools/Colosseum/Debug/Apply DPS Triple Gem Loadout")]
private static void ApplyDpsTripleGemLoadout()
{
ApplyLoadoutPreset(DpsTripleGemPresetPath, "딜러 삼중 젬");
}
[MenuItem("Tools/Colosseum/Debug/Apply Damage Stack Gem Loadout")]
private static void ApplyDamageStackGemLoadout()
{
ApplyLoadoutPreset(DamageStackPresetPath, "공격 삼중 젬");
}
[MenuItem("Tools/Colosseum/Setup/Create or Update Test Skill Gems")]
public static void CreateOrUpdateTestSkillGems()
{
@@ -327,6 +396,9 @@ namespace Colosseum.Editor
SkillEffect damageEffect = AssetDatabase.LoadAssetAtPath<SkillEffect>("Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_찌르기_0_데미지.asset");
SkillEffect tauntEffect = AssetDatabase.LoadAssetAtPath<SkillEffect>("Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_도발_0_도발.asset");
SkillEffect shieldEffect = AssetDatabase.LoadAssetAtPath<SkillEffect>("Assets/_Game/Data/Skills/Effects/Data_SkillEffect_Player_보호막_0_보호막.asset");
DamageEffect edgeDamageEffect = CreateOrUpdateDamageEffectAsset(EdgeDamageEffectPath, 4f);
DamageEffect impactDamageEffect = CreateOrUpdateDamageEffectAsset(ImpactDamageEffectPath, 7f);
DamageEffect breachDamageEffect = CreateOrUpdateDamageEffectAsset(BreachDamageEffectPath, 10f);
CreateOrUpdateGemAsset(
CrushGemPath,
@@ -352,6 +424,30 @@ namespace Colosseum.Editor
1.1f,
shieldEffect);
CreateOrUpdateGemAsset(
EdgeGemPath,
"예리함",
"고정 추가 피해를 부여하는 테스트용 공격 젬",
1f,
1f,
edgeDamageEffect);
CreateOrUpdateGemAsset(
ImpactGemPath,
"충격",
"중간 고정 추가 피해를 부여하는 테스트용 공격 젬",
1f,
1f,
impactDamageEffect);
CreateOrUpdateGemAsset(
BreachGemPath,
"관통",
"높은 고정 추가 피해를 부여하는 테스트용 공격 젬",
1f,
1f,
breachDamageEffect);
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
Debug.Log("[Debug] 테스트용 젬 자산 생성/갱신 완료");
@@ -381,6 +477,11 @@ namespace Colosseum.Editor
SkillGemData crushGem = AssetDatabase.LoadAssetAtPath<SkillGemData>(CrushGemPath);
SkillGemData challengerGem = AssetDatabase.LoadAssetAtPath<SkillGemData>(ChallengerGemPath);
SkillGemData guardianGem = AssetDatabase.LoadAssetAtPath<SkillGemData>(GuardianGemPath);
SkillGemData edgeGem = AssetDatabase.LoadAssetAtPath<SkillGemData>(EdgeGemPath);
SkillGemData impactGem = AssetDatabase.LoadAssetAtPath<SkillGemData>(ImpactGemPath);
SkillGemData breachGem = AssetDatabase.LoadAssetAtPath<SkillGemData>(BreachGemPath);
EnsureGemTestSkillSlotCount(gemTestSkill, 3);
CreateOrUpdatePresetAsset(
TankGemPresetPath,
@@ -421,6 +522,97 @@ namespace Colosseum.Editor
CreateEntry(gemTestSkill, crushGem),
CreateEntry(evadeSkill)));
CreateOrUpdatePresetAsset(
TankDualGemPresetPath,
"탱커 복합 젬 테스트",
"도전자 + 파쇄 젬을 동시에 사용하는 탱커 검증 프리셋",
CreateLoadoutEntries(
CreateEntry(slashSkill),
CreateEntry(tauntSkill),
CreateEntry(guardSkill),
CreateEntry(dashSkill),
CreateEntry(ironWallSkill),
CreateEntry(gemTestSkill, challengerGem, crushGem),
CreateEntry(evadeSkill)));
CreateOrUpdatePresetAsset(
SupportDualGemPresetPath,
"지원 복합 젬 테스트",
"수호 + 도전자 젬을 동시에 사용하는 지원 검증 프리셋",
CreateLoadoutEntries(
CreateEntry(slashSkill),
CreateEntry(healSkill),
CreateEntry(areaHealSkill),
CreateEntry(shieldSkill),
CreateEntry(dashSkill),
CreateEntry(gemTestSkill, guardianGem, challengerGem),
CreateEntry(evadeSkill)));
CreateOrUpdatePresetAsset(
DpsDualGemPresetPath,
"딜러 복합 젬 테스트",
"파쇄 + 수호 젬을 동시에 사용하는 딜러 검증 프리셋",
CreateLoadoutEntries(
CreateEntry(slashSkill),
CreateEntry(pierceSkill),
CreateEntry(spinSkill),
CreateEntry(dashSkill),
CreateEntry(projectileSkill),
CreateEntry(gemTestSkill, crushGem, guardianGem),
CreateEntry(evadeSkill)));
CreateOrUpdatePresetAsset(
TankTripleGemPresetPath,
"탱커 삼중 젬 테스트",
"도전자 + 파쇄 + 수호 젬을 동시에 사용하는 탱커 검증 프리셋",
CreateLoadoutEntries(
CreateEntry(slashSkill),
CreateEntry(tauntSkill),
CreateEntry(guardSkill),
CreateEntry(dashSkill),
CreateEntry(ironWallSkill),
CreateEntry(gemTestSkill, challengerGem, crushGem, guardianGem),
CreateEntry(evadeSkill)));
CreateOrUpdatePresetAsset(
SupportTripleGemPresetPath,
"지원 삼중 젬 테스트",
"수호 + 도전자 + 파쇄 젬을 동시에 사용하는 지원 검증 프리셋",
CreateLoadoutEntries(
CreateEntry(slashSkill),
CreateEntry(healSkill),
CreateEntry(areaHealSkill),
CreateEntry(shieldSkill),
CreateEntry(dashSkill),
CreateEntry(gemTestSkill, guardianGem, challengerGem, crushGem),
CreateEntry(evadeSkill)));
CreateOrUpdatePresetAsset(
DpsTripleGemPresetPath,
"딜러 삼중 젬 테스트",
"파쇄 + 수호 + 도전자 젬을 동시에 사용하는 딜러 검증 프리셋",
CreateLoadoutEntries(
CreateEntry(slashSkill),
CreateEntry(pierceSkill),
CreateEntry(spinSkill),
CreateEntry(dashSkill),
CreateEntry(projectileSkill),
CreateEntry(gemTestSkill, crushGem, guardianGem, challengerGem),
CreateEntry(evadeSkill)));
CreateOrUpdatePresetAsset(
DamageStackPresetPath,
"공격 삼중 젬 테스트",
"서로 다른 추가 피해 젬 3종을 동시에 사용하는 공격 검증 프리셋",
CreateLoadoutEntries(
CreateEntry(slashSkill),
CreateEntry(tauntSkill),
CreateEntry(guardSkill),
CreateEntry(dashSkill),
CreateEntry(ironWallSkill),
CreateEntry(gemTestSkill, edgeGem, impactGem, breachGem),
CreateEntry(evadeSkill)));
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
Debug.Log("[Debug] 테스트용 젬 프리셋 생성/갱신 완료");
@@ -461,6 +653,46 @@ namespace Colosseum.Editor
Debug.Log($"[Debug] 로컬 스킬 구성 | {builder}");
}
[MenuItem("Tools/Colosseum/Debug/Log Local Skill 6 Resolved Stats")]
private static void LogLocalSkill6ResolvedStats()
{
if (!EditorApplication.isPlaying)
{
Debug.LogWarning("[Debug] 플레이 모드에서만 사용할 수 있습니다.");
return;
}
PlayerSkillInput localSkillInput = FindLocalSkillInput();
if (localSkillInput == null)
{
Debug.LogWarning("[Debug] 로컬 PlayerSkillInput을 찾지 못했습니다.");
return;
}
SkillLoadoutEntry loadoutEntry = localSkillInput.GetSkillLoadout(5);
if (loadoutEntry == null || loadoutEntry.BaseSkill == null)
{
Debug.LogWarning("[Debug] 6번 슬롯 스킬이 비어 있습니다.");
return;
}
float resolvedManaCost = loadoutEntry.GetResolvedManaCost();
float resolvedCooldown = loadoutEntry.GetResolvedCooldown();
StringBuilder builder = new StringBuilder();
builder.Append("[Debug] 6번 슬롯 계산값 | ");
builder.Append(loadoutEntry.BaseSkill.SkillName);
AppendGemSummary(builder, loadoutEntry);
builder.Append(" | Mana=");
builder.Append(resolvedManaCost.ToString("0.###"));
builder.Append(" | Cooldown=");
builder.Append(resolvedCooldown.ToString("0.###"));
builder.Append(" | GemSlots=");
builder.Append(loadoutEntry.SocketedGems.Count);
Debug.Log(builder.ToString());
}
private static PlayerSkillInput FindLocalSkillInput()
{
PlayerSkillInput[] skillInputs = Object.FindObjectsByType<PlayerSkillInput>(FindObjectsInactive.Exclude, FindObjectsSortMode.None);
@@ -665,6 +897,21 @@ namespace Colosseum.Editor
return entry;
}
private static void EnsureGemTestSkillSlotCount(SkillData skill, int slotCount)
{
if (skill == null)
return;
SerializedObject serializedSkill = new SerializedObject(skill);
SerializedProperty slotProperty = serializedSkill.FindProperty("maxGemSlotCount");
if (slotProperty == null || slotProperty.intValue == slotCount)
return;
slotProperty.intValue = slotCount;
serializedSkill.ApplyModifiedPropertiesWithoutUndo();
EditorUtility.SetDirty(skill);
}
private static void CreateOrUpdateGemAsset(string assetPath, string gemName, string description, float manaCostMultiplier, float cooldownMultiplier, SkillEffect triggeredEffect)
{
SkillGemData gem = AssetDatabase.LoadAssetAtPath<SkillGemData>(assetPath);
@@ -704,6 +951,55 @@ namespace Colosseum.Editor
EditorUtility.SetDirty(gem);
}
private static DamageEffect CreateOrUpdateDamageEffectAsset(string assetPath, float baseDamage)
{
DamageEffect effect = AssetDatabase.LoadAssetAtPath<DamageEffect>(assetPath);
if (effect == null)
{
if (AssetDatabase.LoadMainAssetAtPath(assetPath) != null)
{
AssetDatabase.DeleteAsset(assetPath);
}
effect = ScriptableObject.CreateInstance<DamageEffect>();
AssetDatabase.CreateAsset(effect, assetPath);
}
SerializedObject serializedEffect = new SerializedObject(effect);
serializedEffect.FindProperty("targetType").enumValueIndex = 1;
serializedEffect.FindProperty("targetTeam").enumValueIndex = 0;
serializedEffect.FindProperty("areaCenter").enumValueIndex = 1;
serializedEffect.FindProperty("areaShape").enumValueIndex = 0;
SerializedProperty targetLayers = serializedEffect.FindProperty("targetLayers");
if (targetLayers != null)
{
SerializedProperty bitsProperty = targetLayers.FindPropertyRelative("m_Bits");
if (bitsProperty != null)
bitsProperty.intValue = -1;
}
SerializedProperty includeCasterProperty = serializedEffect.FindProperty("includeCasterInArea");
if (includeCasterProperty != null)
includeCasterProperty.boolValue = false;
SerializedProperty areaRadiusProperty = serializedEffect.FindProperty("areaRadius");
if (areaRadiusProperty != null)
areaRadiusProperty.floatValue = 2f;
SerializedProperty fanOriginDistanceProperty = serializedEffect.FindProperty("fanOriginDistance");
if (fanOriginDistanceProperty != null)
fanOriginDistanceProperty.floatValue = 0f;
SerializedProperty fanRadiusProperty = serializedEffect.FindProperty("fanRadius");
if (fanRadiusProperty != null)
fanRadiusProperty.floatValue = 3f;
SerializedProperty fanHalfAngleProperty = serializedEffect.FindProperty("fanHalfAngle");
if (fanHalfAngleProperty != null)
fanHalfAngleProperty.floatValue = 45f;
serializedEffect.FindProperty("baseDamage").floatValue = baseDamage;
serializedEffect.FindProperty("damageType").enumValueIndex = (int)DamageType.True;
serializedEffect.FindProperty("statScaling").floatValue = 0f;
serializedEffect.ApplyModifiedPropertiesWithoutUndo();
EditorUtility.SetDirty(effect);
return effect;
}
private static void CreateOrUpdatePresetAsset(string assetPath, string presetName, string description, IReadOnlyList<SkillLoadoutEntry> entries)
{
PlayerLoadoutPreset preset = AssetDatabase.LoadAssetAtPath<PlayerLoadoutPreset>(assetPath);