Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions Assets/Resources/Cards/SPE_004.asset
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ MonoBehaviour:
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0e8fda732d224755bad932e3e6111ced, type: 3}
m_Name: SPE_004
m_EditorClassIdentifier:
m_EditorClassIdentifier:
cardIndex: 22
cardName: "무적의 방화벽"
cardName: "\uBB34\uC801\uC758 \uBC29\uD654\uBCBD"
cardNameEng: INVINCIBLE FIREWALL
cardImage: {fileID: 0}
positiveStatType: 0
Expand All @@ -23,5 +23,6 @@ MonoBehaviour:
negativeStatValue: 0
cost: 3
coolTime: 0
summaryDescription: "다음 턴에 받는 모든 공격 피해를 무효화한다."
description: "방화벽으로 당신을 지킨다."
summaryDescription: "\uB2E4\uC74C \uD134\uC5D0 \uBC1B\uB294 \uBAA8\uB4E0 \uACF5\uACA9
\uD53C\uD574\uB97C \uBB34\uD6A8\uD654"
description: "\uBC29\uD654\uBCBD\uC73C\uB85C \uB2F9\uC2E0\uC744 \uC9C0\uD0A8\uB2E4."
30 changes: 30 additions & 0 deletions Assets/Resources/Cards/SPE_006.asset
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
%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: e6622d28d9f7476da7a584ae76bbebf8, type: 3}
m_Name: SPE_006
m_EditorClassIdentifier:
cardIndex: 23
cardName: "\uBC14\uC774\uB7EC\uC2A4 \uBC15\uBA78"
cardNameEng: VIRUS ERADICATION
cardImage: {fileID: 0}
positiveStatType: 0
negativeStatType: 0
cardType: 4
positiveStatValue: 0
negativeStatValue: 0
cost: 3
coolTime: 0
summaryDescription: "\uBAA8\uB4E0 \uC801\uC5D0\uAC8C \uBC29\uC5B4\uB825\uC744 \uBB34\uC2DC\uD558\uB294
\uB370\uBBF8\uC9C0 -10"
description: "\uBC14\uC774\uB7EC\uC2A4 \uBC15\uBA78\uC758 \uC758\uC9C0\uB85C \uC804\uC5ED
\uACF5\uACA9\uC774 \uB4E4\uC5B4\uAC04\uB2E4."
trueDamage: 10
8 changes: 8 additions & 0 deletions Assets/Resources/Cards/SPE_006.asset.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Assets/Scenes/4.BattleScene/Scripts/Manager/PlayerManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -913,6 +913,9 @@ public void PreparePlayerTurn()

DrawCards(drawCount);

// 턴 시작 시 코스트를 최대치로 리필 (전멸 승리로 적 턴을 거치지 않고 다음 전투가 시작되는 경우 포함)
currentCost = TotalCost;

UpdateUI();
OnHandRefreshed?.Invoke();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
using UnityEngine;

/// <summary>
/// SPE_006 바이러스 박멸(VIRUS ERADICATION): 현재 스폰된 모든 적에게 방어력을 무시하는 고정 피해를 입힌다.
/// </summary>
[CreateAssetMenu(fileName = "SPE_006", menuName = "Create Card Data/Special Card Data/Virus Eradication")]
public class VirusEradicationCardObject : CardObject, ISpecialCardEffect
{
[SerializeField] private int trueDamage = 10;

public void ApplyEffect(PlayerManager player)
{
if (VirusSpawn.instance == null) return;

foreach (Transform slot in VirusSpawn.instance.spawns)
{
if (slot.childCount == 0) continue;

Virus virus = slot.GetChild(0).GetComponent<Virus>();
if (virus != null)
{
virus.ApplyTrueDamage(trueDamage);
}
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions Assets/Scenes/4.Enemy/Scripts/EnemyTurnManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,8 @@ private IEnumerator CoEnemyTurnSequence()
_running = false;

PlayerManager.instance.OnTurnEndProcess(); // 디버프 틱/쿨타임 갱신
PlayerManager.instance.PreparePlayerTurn();
PlayerManager.instance.PreparePlayerTurn(); // 코스트 리필 포함
PlayerManager.instance.ResetTurnDeltaStats();
PlayerManager.instance.currentCost = PlayerManager.instance.TotalCost;
PlayerManager.instance.UpdateUI();

// 플레이어 턴 시작 이벤트 발행 (보스 패시브 등 구독자에게 알림)
Expand Down
18 changes: 18 additions & 0 deletions Assets/Scenes/4.Enemy/Scripts/VirusData/Virus.cs
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,24 @@ public virtual int ApplyDamage(int damage)

return remaining;
}

// 방어력을 무시하고 체력만 직접 감소시키는 고정 피해 (바이러스 박멸 등)
public virtual void ApplyTrueDamage(int damage)
{
if (virusData.CurHpCnt > 0)
{
virusData.CurHpCnt = Mathf.Max(0, virusData.CurHpCnt - damage);
}

UpdateData();

Debug.Log($"[Enemy] 방어 무시 피해: {damage}, 현재 체력: {virusData.CurHpCnt}");

if (virusData.CurHpCnt <= 0)
{
OnDeath();
}
}
// ���� ó���� ����ϴ� �Լ� �߰�
protected virtual void OnDeath()
{
Expand Down