备份CatanBuilding瘦身独立工程
This commit is contained in:
82
Assets/Scripts/SandDig/GameBroadLogic_Ani.cs
Normal file
82
Assets/Scripts/SandDig/GameBroadLogic_Ani.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System.Collections.Generic;
|
||||
using asap.core;
|
||||
using Script.RuntimeScript.Interface;
|
||||
|
||||
namespace Script.RuntimeScript
|
||||
{
|
||||
public partial class GameBroadLogic
|
||||
{
|
||||
private List<BroadEffectInterface> _effectList = new List<BroadEffectInterface>();
|
||||
|
||||
private BroadEffectState _broadState = BroadEffectState.None;
|
||||
|
||||
public void AddToEffectList(BroadEffectInterface item)
|
||||
{
|
||||
_effectList.Add(item);
|
||||
if (this._broadState == BroadEffectState.None)
|
||||
{
|
||||
this._broadState = BroadEffectState.Check;
|
||||
}
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
switch (_broadState)
|
||||
{
|
||||
case BroadEffectState.None:
|
||||
break;
|
||||
case BroadEffectState.Check:
|
||||
case BroadEffectState.OverCheck:
|
||||
bool haveEffect = CheckCanPlayEffect(_broadState == BroadEffectState.OverCheck);
|
||||
if (haveEffect == false)
|
||||
{
|
||||
_broadState = BroadEffectState.AllOver;
|
||||
}
|
||||
break;
|
||||
case BroadEffectState.Playing:
|
||||
break;
|
||||
case BroadEffectState.AllOver:
|
||||
_broadState = BroadEffectState.None;
|
||||
GContext.container.Resolve<DiggingGameManager>().GameState = SandDigGameState.PropEffectEnd;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private bool CheckCanPlayEffect(bool overCheck)
|
||||
{
|
||||
if (_effectList.Count > 0)
|
||||
{
|
||||
_effectList.Sort((a, b) => a.PlayEffectPriority.CompareTo(b.PlayEffectPriority));
|
||||
_broadState = BroadEffectState.Playing;
|
||||
DiggingGameManager.LogError("_effectList.Count ::" + _effectList.Count);
|
||||
PlayEffect(_effectList[0], overCheck);
|
||||
if (_effectList.Count > 0)//防止 被ClearEffect 清空
|
||||
_effectList.RemoveAt(0);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void PlayEffect(BroadEffectInterface item, bool overCheck)
|
||||
{
|
||||
item.PlayEffect(overCheck);
|
||||
}
|
||||
|
||||
private void ClearEffect()
|
||||
{
|
||||
_effectList.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum BroadEffectState
|
||||
{
|
||||
None,
|
||||
Check,
|
||||
Playing,
|
||||
AllOver,
|
||||
OverCheck,
|
||||
}
|
||||
Reference in New Issue
Block a user