public bool Start(GameClient client, List <Point> path, int cellSizeX, int cellSizeY, long elapsedTicks) { bool result; lock (this.mutex) { if (this._Started) { result = false; } else { this._CellSizeX = cellSizeX; this._CellSizeY = cellSizeY; this._PathIndex = 0; this._LastRunTicks = StoryBoard4Client.getMyTimer() - elapsedTicks; this._LastTargetX = client.ClientData.PosX; this._LastTargetY = client.ClientData.PosY; this._CurrentX = (double)client.ClientData.PosX; this._CurrentY = (double)client.ClientData.PosY; this._Path = path; this._CompletedState = false; this._Started = true; this._Stopped = false; this._LastStopIndex = -1; this._FirstPoint = new Point(this._Path[0].X * (double)this._CellSizeX + (double)(this._CellSizeX / 2), this._Path[0].Y * (double)this._CellSizeY + (double)(this._CellSizeY / 2)); if (this._Path.Count <= 0) { this._LastPoint = this._FirstPoint; } else { this._LastPoint = new Point(this._Path[this._Path.Count - 1].X * (double)this._CellSizeX + (double)(this._CellSizeX / 2), this._Path[this._Path.Count - 1].Y * (double)this._CellSizeY + (double)(this._CellSizeY / 2)); } result = true; } } return(result); }
public static void runStoryBoards() { long currentTicks = StoryBoard4Client.getMyTimer(); StoryBoard4Client.LastRunStoryTicks = currentTicks; List <StoryBoard4Client> list = new List <StoryBoard4Client>(); lock (StoryBoard4Client.StoryBoardDict) { foreach (StoryBoard4Client sb in StoryBoard4Client.StoryBoardDict.Values) { list.Add(sb); } } for (int i = 0; i < list.Count; i++) { StoryBoard4Client sb = list[i]; if (null != sb) { sb.Run(currentTicks); } } }