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
22 changes: 11 additions & 11 deletions Assets/DogKnight/Animator/DogControl.controller
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ AnimatorStateTransition:
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
Expand All @@ -42,7 +42,7 @@ AnimatorStateTransition:
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.70000005
m_HasExitTime: 0
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
Expand All @@ -64,7 +64,7 @@ AnimatorStateTransition:
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.70000005
m_HasExitTime: 0
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
Expand All @@ -89,7 +89,7 @@ AnimatorStateTransition:
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
Expand All @@ -108,25 +108,25 @@ AnimatorController:
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
m_Controller: {fileID: 9100000}
- m_Name: IsSpecialAttack
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
m_Controller: {fileID: 9100000}
- m_Name: GetHit
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
m_Controller: {fileID: 9100000}
- m_Name: IsDead
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
m_Controller: {fileID: 9100000}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
Expand Down Expand Up @@ -160,7 +160,7 @@ AnimatorStateTransition:
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
Expand Down Expand Up @@ -353,7 +353,7 @@ AnimatorStateTransition:
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.70000005
m_HasExitTime: 0
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
Expand All @@ -378,7 +378,7 @@ AnimatorStateTransition:
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
Expand Down
25 changes: 0 additions & 25 deletions Assets/Scenes/3.28_DogKnight.unity
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,6 @@ GameObject:
- component: {fileID: 16706862}
- component: {fileID: 16706861}
- component: {fileID: 16706860}
- component: {fileID: 16706863}
m_Layer: 5
m_Name: AttackButton
m_TagString: Untagged
Expand Down Expand Up @@ -207,18 +206,6 @@ MonoBehaviour:
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 16706863}
m_TargetAssemblyTypeName: AttackButton, Assembly-CSharp
m_MethodName: Active
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
- m_Target: {fileID: 128527308}
m_TargetAssemblyTypeName: GameManager, Assembly-CSharp
m_MethodName: RoundNotify
Expand Down Expand Up @@ -293,18 +280,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 16706858}
m_CullTransparentMesh: 1
--- !u!114 &16706863
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 16706858}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4c7d2fde507a7124d8ebacb6fa73e4e4, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &37514129
GameObject:
m_ObjectHideFlags: 0
Expand Down
8 changes: 8 additions & 0 deletions Assets/Scripts/3.28.meta

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

48 changes: 17 additions & 31 deletions Assets/Scripts/Character.cs → Assets/Scripts/3.28/Character.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,60 +12,46 @@ public class Character : MonoBehaviour, Observer
{
public string _myName;
public float _myHp;
// 1. Hp UI bar ������ ���� HpMax �� �߰�
public float _myHpMax;
public float _myDamage;

protected int _gameRound;
protected string _whoseTurn;
protected bool _isFinished;

// 1. TurnUpdate: _gameRound, _whoseTurn update
public void TurnUpdate(int round, string turn)
{

this._gameRound = round;
this._whoseTurn = turn;
}

// 2. FinishUpdate: _isFinished update
public void FinishUpdate(bool isFinish)
{

this._isFinished = isFinish;
}

/// <summary>
/// 3. Attack: ���ݽ� ����� ���� �� Player�� Enemy �������� ����� ��� �ۼ�
/// ���� �� class���� �������̵��ؼ� �ۼ�
/// 1) ������ ������ �ʾҰ� �ڽ��� _myName�� _whoseTurn�� ��ġ�Ѵٸ�,
/// 2) AttackMotion() ȣ���ؼ� �ִϸ��̼� ����
/// 3) ������ GetHit()�� �ڽ��� _myDamage �Ѱܼ� ȣ��
/// </summary>

public virtual void Attack()
{

}

/// <summary>
/// 4. GetHit: �ǰݽ� ����� ���� 3���� �����ϰ� ����Ǵ� ��� �ۼ�
/// ���� �� class���� �������̵��ؼ� �ۼ�
/// 1) �Ѱ� ���� damage��ŭ _myHp ����
/// 2) ���� _myHp�� 0���� �۰ų� ���ٸ�, DeadMotion() ȣ���ؼ� �ִϸ��̼� ����
/// + Subject�� EndNotify() ȣ��
/// 3) ���� ����ִٸ�, GetHitMotion() ȣ���ؼ� �ִϸ��̼� ����
/// + Debug.Log($"{_myName} HP: {_myHp}"); �߰�
/// </summary>
public virtual void GetHit(float damage)
{

_myHp -= damage;
if(_myHp <= 0)
{
DeadMotion();
GameManager.Instance().EndNotify();
}
else
{
GetHitMotion();
Debug.Log($"{_myName} HP: {_myHp}");
}
}

/// <summary>
/// �� �����δ� animation ���� code, ������ �ʿ� ���� (������ ���ǿ��� �� ��)
/// ������ �Ʒ�ó�� ���� �޼ҵ带 ���� �ʿ䵵 ������ ����� ���� �����̱� ������
/// ����� ���Ǹ� ���� 4���� �޼ҵ带 �ۼ��Ͽ���.
/// ���� Attack, GetHit �������̵���, �Ʒ��� �޼ҵ常 ȣ���ϸ� animation �����
/// 1. AttackMotion()
/// 2. SpecialAttackMotion()
/// 3. DeadMotion()
/// 4. GetHitMotion()
/// </summary>
protected Animator _animator;

protected virtual void Init()
Expand Down
File renamed without changes.
65 changes: 65 additions & 0 deletions Assets/Scripts/3.28/Enemy.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Enemy : Character
{
// 1. _player ���� ���� -> GetCharacter�� ������ ����
//private Player _player;
private float _randomHeal;

protected override void Init()
{
base.Init();
_myName = "Enemy";
_myHpMax = 100;
_myHp = _myHpMax;
_myDamage = 15;
GameManager.Instance().AddCharacter(this.GetComponent<Enemy>());
}

private void Awake()
{
Init();
}

public override void Attack()
{
if(_myName.Equals(_whoseTurn) && !_isFinished)
{
_myDamage += 3;
// 1. GetCharacter�� Player ����
if (_gameRound >= 10) _myDamage = GameManager.Instance().GetCharacter("Player")._myHp;
AttackMotion();
GameManager.Instance().GetCharacter("Player").GetHit(_myDamage);
}
}

public override void GetHit(float damage)
{
base.GetHit(damage);
if(_myHp > 0)
{
_randomHeal = Random.Range(0, 10);
if(_randomHeal < 5) // 50% Ȯ���� Heal
{
StartCoroutine(HealCoroutine());
}
}
}

/// <summary>
/// HealCoroutine:
/// 1) Player�� Enemy ���� -> Hp ���� -> UI �ݿ�
/// 2) Enemy Ȯ�������� ȸ�� -> Hp �� -> UI �ݿ�
/// 3) �߰��� yield return ���� ������ �ѹ��� ó���ż� �ǰ� �ϰ� Heal �ϴ� UI �ݿ��� ����� �̷������ ����.
/// </summary>
/// <returns></returns>
IEnumerator HealCoroutine()
{
yield return new WaitForSeconds(1.3f);
_myHp += 10;
Debug.Log($"{_myName} Heal!");
}
}

File renamed without changes.
97 changes: 97 additions & 0 deletions Assets/Scripts/3.28/GameManager.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GameManager : MonoBehaviour, Subject
{
private static GameManager _instance;
public static GameManager Instance()
{
return _instance;
}

private void Awake()
{
if (_instance == null)
{
_instance = this;
DontDestroyOnLoad(this.gameObject);
}
else
{
if (this != _instance)
{
Destroy(this.gameObject);
}
}
}

private int _gameRound = 0;
private string _whoseTurn = "Enemy";
private bool _isEnd = false;

// 1. SceneUI�� GameManager ���� �� �� �ֵ��� ij���� ��ųʸ� ����
private Dictionary<string, Character> _characterList = new Dictionary<string, Character>();

private delegate void TurnHandler(int round, string turn);
private TurnHandler _turnHandler;
private delegate void FinishHandler(bool isFinish);
private FinishHandler _finishHandler;
// 2. UIHandler ���� (�̹����� round, turn, isFinish ��� �޴´�)
private delegate void UIHandler(int round, string turn, bool isFinish);
private UIHandler _uiHandler;

public void RoundNotify()
{
if (!_isEnd)
{
if(_whoseTurn == "Enemy")
{
_gameRound++;
Debug.Log($"GameManager: Round {_gameRound}.");
}
TurnNotify();
}
}

public void TurnNotify()
{
_whoseTurn = _whoseTurn == "Enemy" ? "Player" : "Enemy";
Debug.Log($"GameManager: {_whoseTurn} turn.");
_turnHandler(_gameRound, _whoseTurn);
// 2. _uiHandler ȣ��
}

public void EndNotify()
{
_isEnd = true;
_finishHandler(_isEnd);
// 2. _uiHandler ȣ��
Debug.Log("GameManager: The End");
Debug.Log($"GameManager: {_whoseTurn} is Win!");
}

public void AddCharacter(Character character)
{
_turnHandler += new TurnHandler(character.TurnUpdate);
_finishHandler += new FinishHandler(character.FinishUpdate);
// 1. _characterList�� �߰�
}

// 3. AddUI: SceneUI �������� ���
public void AddUI(SceneUI ui)
{

}

/// <summary>
/// 4. GetChracter: �Ѱ� ���� name�� Character�� �ִٸ� �ش� ij���� ��ȯ
/// 1) _characterList ��ȸ�ϸ�
/// 2) if ���� ContainsKey(name) �̿�
/// 3) ���ٸ� null ��ȯ
/// </summary>
public Character GetCharacter(string name)
{
return null;
}
}
Loading