+ FieldBoss01 BT 구현 + FieldBoss01가 사용하는 스킬(LineRush, LavaEruption, BigLavaEruption, VolcanicEruption) 추가 + 보스 전용 HpSlider 추가
65 lines
2.1 KiB
C#
65 lines
2.1 KiB
C#
using System;
|
|
using BehaviorDesigner.Runtime;
|
|
using BehaviorDesigner.Runtime.Tasks;
|
|
using UnityEngine;
|
|
|
|
// ReSharper disable once CheckNamespace
|
|
namespace BlueWaterProject
|
|
{
|
|
public enum Inequality
|
|
{
|
|
NONE = 0,
|
|
LESS_THEN,
|
|
LESS_THEN_OR_EQUAL_TO,
|
|
GREATER_THEN,
|
|
GREATER_THEN_OR_EQUAL_TO
|
|
}
|
|
|
|
[TaskCategory("Common")]
|
|
[Serializable]
|
|
public class CompareSharedFloat2 : Conditional
|
|
{
|
|
[RequiredField]
|
|
public SharedFloat variable;
|
|
|
|
[Header("비교값 float 설정")]
|
|
public float compareTo;
|
|
|
|
[Header("부등호 설정 - Tooltip 참고")]
|
|
[BehaviorDesigner.Runtime.Tasks.Tooltip("LessThen : variable < compareTo\n" +
|
|
"LessThenOrEqualTo : variable <= compareTo\n" +
|
|
"GreaterThen : variable > compareTo\n" +
|
|
"GreaterThenOrEqualTo : variable < compareTo\n")]
|
|
public Inequality inequality;
|
|
|
|
/// <summary>
|
|
/// 비교 값이 true면 Success, false면 Running
|
|
/// </summary>
|
|
public override TaskStatus OnUpdate()
|
|
{
|
|
return CompareInequality(variable.Value) ? TaskStatus.Success : TaskStatus.Failure;
|
|
}
|
|
|
|
public override void OnReset()
|
|
{
|
|
compareTo = 0;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 부등호 선택에 따른 bool값 리턴
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private bool CompareInequality(float value)
|
|
{
|
|
return inequality switch
|
|
{
|
|
Inequality.NONE => throw new Exception("부등호 미설정 오류"),
|
|
Inequality.LESS_THEN => value < compareTo,
|
|
Inequality.LESS_THEN_OR_EQUAL_TO => value <= compareTo,
|
|
Inequality.GREATER_THEN => value > compareTo,
|
|
Inequality.GREATER_THEN_OR_EQUAL_TO => value >= compareTo,
|
|
_ => throw new ArgumentOutOfRangeException()
|
|
};
|
|
}
|
|
}
|
|
} |