namespace OpenRa.Game.Traits.Activities { class Turn : IActivity { public IActivity NextActivity { get; set; } int desiredFacing; public Turn( int desiredFacing ) { this.desiredFacing = desiredFacing; } public IActivity Tick( Actor self ) { var unit = self.traits.Get(); if( desiredFacing == unit.Facing ) return NextActivity; Util.TickFacing( ref unit.Facing, desiredFacing, self.LegacyInfo.ROT ); return this; } public void Cancel( Actor self ) { var unit = self.traits.Get(); desiredFacing = unit.Facing; NextActivity = null; } } }