OldBlueWater/BlueWater/Assets/02.Scripts/HouseInfo.cs
NTG_Lenovo dc00036723 #29 유닛 이동 방식 수정 중
1. IDamageable 인터페이스 수정
2. Ai 프리팹 크기 변경, 깃발 LookAt 추가
3. Boat 공격 선택 매개변수 제거
2023-08-31 16:38:08 +09:00

62 lines
1.4 KiB
C#

using System;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class HouseInfo : MonoBehaviour, IDamageable
{
#region Property and variable
public IslandInfo IslandInfo { get; set; }
#endregion
#region Unity built-in function
private void Awake()
{
SetCurrentHp(AiStat.MaxHp);
}
private void OnDisable()
{
RemoveIslandInfo();
}
#endregion
#region Interface property and function
[field: SerializeField] public AiStat AiStat { get; set; }
public float GetCurrentHp() => AiStat.CurrentHp;
public void SetCurrentHp(float value) => AiStat.CurrentHp = value;
public void TakeDamage(float attackerPower, float attackerShieldPenetrationRate = default, Vector3? attackPos = null)
{
var changeHp = Mathf.Max(AiStat.CurrentHp - attackerPower, 0);
SetCurrentHp(changeHp);
// 건물 파괴
if (changeHp == 0f)
{
RemoveIslandInfo();
}
}
#endregion
#region Custom function
private void RemoveIslandInfo()
{
if (!IslandInfo) return;
IslandInfo.RemoveListElement(IslandInfo.HouseList, transform);
}
#endregion
}
}