/// <summary> /// 移动单位 /// </summary> /// <param name="direction">移动方向</param> /// <returns>是否成功</returns> public virtual bool Move(Direction direction) { var now = DateTime.UtcNow; Check(now); var target = GameHost.DataService.GetPlace(Coordinate.GetCoordinate(direction)); lock ( SyncRoot ) { var m = MobilityRequired(target); if (Mobility < m || m == -1) { return(false); } Coordinate = target.Coordinate; Mobility -= m; LastActTime = now; Save(); return(true); } }