Tidy up Activity.Cancel(), make Tick abstract
This commit is contained in:
@@ -5,24 +5,17 @@ using System.Text;
|
||||
|
||||
namespace OpenRA.Traits.Activities
|
||||
{
|
||||
public class Activity
|
||||
public abstract class Activity
|
||||
{
|
||||
public Activity NextActivity { get; set; }
|
||||
protected bool IsCanceled { get; private set; }
|
||||
|
||||
public virtual Activity Tick( Actor self )
|
||||
{
|
||||
return this;
|
||||
}
|
||||
protected virtual bool OnCancel( Actor self ) { return true; }
|
||||
public abstract Activity Tick( Actor self );
|
||||
|
||||
public virtual void Cancel( Actor self )
|
||||
{
|
||||
IsCanceled = OnCancel( self );
|
||||
if( IsCanceled )
|
||||
NextActivity = null;
|
||||
else if (NextActivity != null)
|
||||
NextActivity.Cancel( self );
|
||||
IsCanceled = true;
|
||||
NextActivity = null;
|
||||
}
|
||||
|
||||
public virtual void Queue( Activity activity )
|
||||
|
||||
Reference in New Issue
Block a user