39 lines
1.2 KiB
C#
39 lines
1.2 KiB
C#
using System.Collections.Generic;
|
||
using Framework;
|
||
using Gameplay.Level;
|
||
using Framework.Condition;
|
||
|
||
|
||
/// <summary>
|
||
/// 关卡是否通关
|
||
/// </summary>
|
||
public class ConditionLevelPass : ICondition
|
||
{
|
||
public EventManager.EventName SignalName => EventManager.EventName.LevelInfoChanged;
|
||
|
||
public bool Check(List<float> args)
|
||
{
|
||
if (args.Count < 1)
|
||
throw new ConditionException($"{nameof(ConditionLevelPass)}条件,参数数量错误,需要1个参数,只有{args.Count}参数");
|
||
|
||
int id = (int)args[0];
|
||
|
||
if (!LevelManager.Instance.TryGetLevelInfoByID(id, out LevelInfo levelInfo))
|
||
return false;
|
||
|
||
return levelInfo.IsPass;
|
||
}
|
||
|
||
public string[] GetArgLocalizations(List<float> args)
|
||
{
|
||
if (args.Count < 1)
|
||
throw new ConditionException($"{nameof(ConditionLevelPass)}条件,参数数量错误,需要1个参数,只有{args.Count}参数");
|
||
|
||
int id = (int)args[0];
|
||
|
||
if (LevelManager.Instance.TryGetLevelInfoByID(id, out LevelInfo levelInfo))
|
||
return new string[1] { levelInfo.Name };
|
||
else
|
||
return new string[1] { id.ToString() };
|
||
}
|
||
} |