Compare commits
3 Commits
2bc5241ff1
...
ba52518d65
| Author | SHA1 | Date | |
|---|---|---|---|
| ba52518d65 | |||
| 3e6e4f04ae | |||
| 77accc4150 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -91,3 +91,5 @@ Assets/Screenshots
|
||||
Assets/_Recovery
|
||||
Assets/_Recovery.meta
|
||||
Assets/External/Models/SidekickCharacters/Database/Side_Kick_Data.db
|
||||
BuildSimulationReports
|
||||
nul
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
{
|
||||
"mcpServers": {}
|
||||
"mcpServers": {
|
||||
"unity": {
|
||||
"type": "remote",
|
||||
"url": "http://127.0.0.1:8080/mcp",
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11441,15 +11441,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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
%YAML 1.1
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
@@ -24,4 +24,4 @@ MonoBehaviour:
|
||||
Skill: {fileID: 11400000, guid: 16321efbd1f2498458683bac7605b054, type: 2}
|
||||
Duration: 0
|
||||
cooldown: 1
|
||||
|
||||
minPhase: 2
|
||||
|
||||
@@ -21,3 +21,4 @@ MonoBehaviour:
|
||||
Skill: {fileID: 0}
|
||||
Duration: 0
|
||||
cooldown: 45
|
||||
minPhase: 3
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -29,6 +29,12 @@ public abstract partial class CheckPatternReadyActionBase : Action
|
||||
return Status.Failure;
|
||||
|
||||
BossPatternData pattern = context.GetPattern(PatternRole);
|
||||
if (pattern == null)
|
||||
return Status.Failure;
|
||||
|
||||
if (context.CurrentPatternPhase < pattern.MinPhase)
|
||||
return Status.Failure;
|
||||
|
||||
return UsePatternAction.IsPatternReady(GameObject, pattern) ? Status.Success : Status.Failure;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,8 +31,14 @@ namespace Colosseum.AI
|
||||
[Tooltip("패턴 완료 후 다시 사용 가능해지기까지의 시간")]
|
||||
[SerializeField] private float cooldown = 5f;
|
||||
|
||||
[Header("페이즈 제한")]
|
||||
[Min(1)]
|
||||
[Tooltip("이 패턴을 사용하기 시작하는 최소 페이즈 (1=Phase 1부터)")]
|
||||
[SerializeField] private int minPhase = 1;
|
||||
|
||||
public string PatternName => patternName;
|
||||
public IReadOnlyList<PatternStep> Steps => steps;
|
||||
public float Cooldown => cooldown;
|
||||
public int MinPhase => minPhase;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -828,7 +828,6 @@ namespace Colosseum.Editor
|
||||
SkillData slashSkill = AssetDatabase.LoadAssetAtPath<SkillData>(SlashSkillPath);
|
||||
SkillData tauntSkill = AssetDatabase.LoadAssetAtPath<SkillData>(TauntSkillPath);
|
||||
SkillData guardSkill = AssetDatabase.LoadAssetAtPath<SkillData>(GuardSkillPath);
|
||||
SkillData dashSkill = AssetDatabase.LoadAssetAtPath<SkillData>(DashSkillPath);
|
||||
SkillData ironWallSkill = AssetDatabase.LoadAssetAtPath<SkillData>(IronWallSkillPath);
|
||||
SkillData pierceSkill = AssetDatabase.LoadAssetAtPath<SkillData>(PierceSkillPath);
|
||||
SkillData gemTestSkill = AssetDatabase.LoadAssetAtPath<SkillData>(GemTestSkillPath);
|
||||
@@ -836,7 +835,6 @@ namespace Colosseum.Editor
|
||||
SkillData areaHealSkill = AssetDatabase.LoadAssetAtPath<SkillData>(AreaHealSkillPath);
|
||||
SkillData shieldSkill = AssetDatabase.LoadAssetAtPath<SkillData>(ShieldSkillPath);
|
||||
SkillData projectileSkill = AssetDatabase.LoadAssetAtPath<SkillData>(ProjectileSkillPath);
|
||||
SkillData spinSkill = AssetDatabase.LoadAssetAtPath<SkillData>(SpinSkillPath);
|
||||
SkillData evadeSkill = AssetDatabase.LoadAssetAtPath<SkillData>(EvadeSkillPath);
|
||||
|
||||
SkillGemData crushGem = AssetDatabase.LoadAssetAtPath<SkillGemData>(CrushGemPath);
|
||||
@@ -852,7 +850,6 @@ namespace Colosseum.Editor
|
||||
SetSkillClassification(slashSkill, SkillRoleType.Attack, SkillActivationType.Instant, SkillBaseType.Attack);
|
||||
SetSkillClassification(tauntSkill, SkillRoleType.Defense, SkillActivationType.Instant, SkillBaseType.Defense);
|
||||
SetSkillClassification(guardSkill, SkillRoleType.Defense, SkillActivationType.Buff, SkillBaseType.Defense);
|
||||
SetSkillClassification(dashSkill, SkillRoleType.Attack, SkillActivationType.Instant, SkillBaseType.Attack);
|
||||
SetSkillClassification(ironWallSkill, SkillRoleType.Defense, SkillActivationType.Buff, SkillBaseType.Defense);
|
||||
SetSkillClassification(pierceSkill, SkillRoleType.Attack, SkillActivationType.Instant, SkillBaseType.Attack);
|
||||
SetSkillClassification(gemTestSkill, SkillRoleType.Attack, SkillActivationType.Instant, SkillBaseType.Attack);
|
||||
@@ -860,7 +857,6 @@ namespace Colosseum.Editor
|
||||
SetSkillClassification(areaHealSkill, SkillRoleType.Support, SkillActivationType.Instant, SkillBaseType.Support);
|
||||
SetSkillClassification(shieldSkill, SkillRoleType.Support, SkillActivationType.Instant, SkillBaseType.Support);
|
||||
SetSkillClassification(projectileSkill, SkillRoleType.Attack, SkillActivationType.Instant, SkillBaseType.Attack);
|
||||
SetSkillClassification(spinSkill, SkillRoleType.Attack, SkillActivationType.Instant, SkillBaseType.Attack);
|
||||
SetSkillClassification(evadeSkill, SkillRoleType.Defense, SkillActivationType.Instant, SkillBaseType.Defense);
|
||||
|
||||
EnsureGemTestSkillSlotCount(gemTestSkill, 3);
|
||||
@@ -873,7 +869,7 @@ namespace Colosseum.Editor
|
||||
CreateEntry(slashSkill),
|
||||
CreateEntry(tauntSkill),
|
||||
CreateEntry(guardSkill),
|
||||
CreateEntry(dashSkill),
|
||||
CreateEntry(shieldSkill),
|
||||
CreateEntry(ironWallSkill),
|
||||
CreateEntry(gemTestSkill, challengerGem),
|
||||
CreateEntry(evadeSkill)));
|
||||
@@ -887,7 +883,7 @@ namespace Colosseum.Editor
|
||||
CreateEntry(healSkill),
|
||||
CreateEntry(areaHealSkill),
|
||||
CreateEntry(shieldSkill),
|
||||
CreateEntry(dashSkill),
|
||||
CreateEntry(guardSkill),
|
||||
CreateEntry(gemTestSkill, guardianGem),
|
||||
CreateEntry(evadeSkill)));
|
||||
|
||||
@@ -898,8 +894,8 @@ namespace Colosseum.Editor
|
||||
CreateLoadoutEntries(
|
||||
CreateEntry(slashSkill),
|
||||
CreateEntry(pierceSkill),
|
||||
CreateEntry(spinSkill),
|
||||
CreateEntry(dashSkill),
|
||||
CreateEntry(shieldSkill),
|
||||
CreateEntry(guardSkill),
|
||||
CreateEntry(projectileSkill),
|
||||
CreateEntry(gemTestSkill, crushGem),
|
||||
CreateEntry(evadeSkill)));
|
||||
@@ -911,8 +907,8 @@ namespace Colosseum.Editor
|
||||
CreateLoadoutEntries(
|
||||
CreateEntry(slashSkill),
|
||||
CreateEntry(pierceSkill),
|
||||
CreateEntry(spinSkill),
|
||||
CreateEntry(dashSkill),
|
||||
CreateEntry(shieldSkill),
|
||||
CreateEntry(guardSkill),
|
||||
CreateEntry(projectileSkill),
|
||||
CreateEntry(gemTestSkill, repeatGem),
|
||||
CreateEntry(evadeSkill)));
|
||||
@@ -924,8 +920,8 @@ namespace Colosseum.Editor
|
||||
CreateLoadoutEntries(
|
||||
CreateEntry(slashSkill),
|
||||
CreateEntry(pierceSkill),
|
||||
CreateEntry(spinSkill),
|
||||
CreateEntry(dashSkill),
|
||||
CreateEntry(shieldSkill),
|
||||
CreateEntry(guardSkill),
|
||||
CreateEntry(projectileSkill),
|
||||
CreateEntry(gemTestSkill, fortitudeGem),
|
||||
CreateEntry(evadeSkill)));
|
||||
@@ -937,8 +933,8 @@ namespace Colosseum.Editor
|
||||
CreateLoadoutEntries(
|
||||
CreateEntry(slashSkill),
|
||||
CreateEntry(pierceSkill),
|
||||
CreateEntry(spinSkill),
|
||||
CreateEntry(dashSkill),
|
||||
CreateEntry(shieldSkill),
|
||||
CreateEntry(guardSkill),
|
||||
CreateEntry(projectileSkill),
|
||||
CreateEntry(gemTestSkill, witherGem),
|
||||
CreateEntry(evadeSkill)));
|
||||
@@ -950,8 +946,8 @@ namespace Colosseum.Editor
|
||||
CreateLoadoutEntries(
|
||||
CreateEntry(slashSkill),
|
||||
CreateEntry(pierceSkill),
|
||||
CreateEntry(spinSkill),
|
||||
CreateEntry(dashSkill),
|
||||
CreateEntry(shieldSkill),
|
||||
CreateEntry(guardSkill),
|
||||
CreateEntry(projectileSkill),
|
||||
CreateEntry(gemTestSkill, fortitudeGem, witherGem),
|
||||
CreateEntry(evadeSkill)));
|
||||
@@ -964,7 +960,7 @@ namespace Colosseum.Editor
|
||||
CreateEntry(slashSkill),
|
||||
CreateEntry(tauntSkill),
|
||||
CreateEntry(guardSkill),
|
||||
CreateEntry(dashSkill),
|
||||
CreateEntry(shieldSkill),
|
||||
CreateEntry(ironWallSkill),
|
||||
CreateEntry(gemTestSkill, challengerGem, crushGem),
|
||||
CreateEntry(evadeSkill)));
|
||||
@@ -978,7 +974,7 @@ namespace Colosseum.Editor
|
||||
CreateEntry(healSkill),
|
||||
CreateEntry(areaHealSkill),
|
||||
CreateEntry(shieldSkill),
|
||||
CreateEntry(dashSkill),
|
||||
CreateEntry(guardSkill),
|
||||
CreateEntry(gemTestSkill, guardianGem, challengerGem),
|
||||
CreateEntry(evadeSkill)));
|
||||
|
||||
@@ -989,8 +985,8 @@ namespace Colosseum.Editor
|
||||
CreateLoadoutEntries(
|
||||
CreateEntry(slashSkill),
|
||||
CreateEntry(pierceSkill),
|
||||
CreateEntry(spinSkill),
|
||||
CreateEntry(dashSkill),
|
||||
CreateEntry(shieldSkill),
|
||||
CreateEntry(guardSkill),
|
||||
CreateEntry(projectileSkill),
|
||||
CreateEntry(gemTestSkill, crushGem, guardianGem),
|
||||
CreateEntry(evadeSkill)));
|
||||
@@ -1003,7 +999,7 @@ namespace Colosseum.Editor
|
||||
CreateEntry(slashSkill),
|
||||
CreateEntry(tauntSkill),
|
||||
CreateEntry(guardSkill),
|
||||
CreateEntry(dashSkill),
|
||||
CreateEntry(shieldSkill),
|
||||
CreateEntry(ironWallSkill),
|
||||
CreateEntry(gemTestSkill, challengerGem, crushGem, guardianGem),
|
||||
CreateEntry(evadeSkill)));
|
||||
@@ -1017,7 +1013,7 @@ namespace Colosseum.Editor
|
||||
CreateEntry(healSkill),
|
||||
CreateEntry(areaHealSkill),
|
||||
CreateEntry(shieldSkill),
|
||||
CreateEntry(dashSkill),
|
||||
CreateEntry(guardSkill),
|
||||
CreateEntry(gemTestSkill, guardianGem, challengerGem, crushGem),
|
||||
CreateEntry(evadeSkill)));
|
||||
|
||||
@@ -1028,8 +1024,8 @@ namespace Colosseum.Editor
|
||||
CreateLoadoutEntries(
|
||||
CreateEntry(slashSkill),
|
||||
CreateEntry(pierceSkill),
|
||||
CreateEntry(spinSkill),
|
||||
CreateEntry(dashSkill),
|
||||
CreateEntry(shieldSkill),
|
||||
CreateEntry(guardSkill),
|
||||
CreateEntry(projectileSkill),
|
||||
CreateEntry(gemTestSkill, crushGem, guardianGem, challengerGem),
|
||||
CreateEntry(evadeSkill)));
|
||||
@@ -1042,7 +1038,7 @@ namespace Colosseum.Editor
|
||||
CreateEntry(slashSkill),
|
||||
CreateEntry(tauntSkill),
|
||||
CreateEntry(guardSkill),
|
||||
CreateEntry(dashSkill),
|
||||
CreateEntry(shieldSkill),
|
||||
CreateEntry(ironWallSkill),
|
||||
CreateEntry(gemTestSkill, edgeGem, impactGem, breachGem),
|
||||
CreateEntry(evadeSkill)));
|
||||
|
||||
@@ -91,9 +91,6 @@ namespace Colosseum.Enemy
|
||||
[Min(1)] [SerializeField] protected int phase3SecondaryInterval = 2;
|
||||
|
||||
[Header("Signature Pattern")]
|
||||
[Tooltip("시그니처 패턴을 사용하기 시작하는 최소 페이즈")]
|
||||
[Min(1)] [SerializeField] protected int signatureMinPhase = 2;
|
||||
|
||||
[Tooltip("시그니처 패턴 차단에 필요한 누적 피해 비율")]
|
||||
[Range(0f, 1f)] [SerializeField] protected float signatureRequiredDamageRatio = 0.1f;
|
||||
|
||||
@@ -497,16 +494,13 @@ namespace Colosseum.Enemy
|
||||
if (IsBehaviorSuppressed)
|
||||
return false;
|
||||
|
||||
if (CurrentPatternPhase < signatureMinPhase)
|
||||
return false;
|
||||
|
||||
if (activePatternCoroutine != null || isSignaturePatternActive)
|
||||
return false;
|
||||
|
||||
if (bossEnemy.IsDead || bossEnemy.IsTransitioning || skillController.IsPlayingAnimation)
|
||||
return false;
|
||||
|
||||
return UsePatternAction.IsPatternReady(gameObject, signaturePattern);
|
||||
return IsPatternReady(signaturePattern);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -692,6 +686,9 @@ namespace Colosseum.Enemy
|
||||
if (pattern == null || pattern.Steps == null || pattern.Steps.Count == 0)
|
||||
return false;
|
||||
|
||||
if (CurrentPatternPhase < pattern.MinPhase)
|
||||
return false;
|
||||
|
||||
if (!patternCooldownTracker.TryGetValue(pattern, out float readyTime))
|
||||
return true;
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace Colosseum.Player
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_베기.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_도발.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_방어태세.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_돌진.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_보호막.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_철벽.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_찌르기.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_구르기.asset",
|
||||
@@ -44,7 +44,7 @@ namespace Colosseum.Player
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_치유.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_광역치유.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_보호막.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_돌진.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_방어태세.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_투사체.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_구르기.asset",
|
||||
};
|
||||
@@ -53,10 +53,10 @@ namespace Colosseum.Player
|
||||
{
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_베기.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_찌르기.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_회전베기.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_돌진.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_젬테스트공격.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_투사체.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_보호막.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_방어태세.asset",
|
||||
"Assets/_Game/Data/Skills/Data_Skill_Player_구르기.asset",
|
||||
};
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user