public void AddArea(UIArea uiArea) { uiArea.Construct(); UIAreas.Add(uiArea); UpdateDepth(); }
/// <summary> /// 重写OnMouseDown /// </summary> /// <param name="e"></param> protected override void OnMouseDown(MouseEventArgs e) { try { this._lastMouseDownMoveLocation = e.Location; this._mouseDownArgs = e; this._mouseDownUIArea = this.GetUIArea(e.Location); //在主波形区域中键双击全选主波形区域 if (this._mouseDownUIArea == UIArea.WavArea && e.Button == System.Windows.Forms.MouseButtons.Middle && e.Clicks == 1 && this._bassDataTotalLength > 0) { //全选 this._ss = this._ws; this._se = this._we; //刷新波形选中区域改变 this.RefreshWavSelectedChange(this._wavArea.X, this._wavArea.Width); } } catch (Exception ex) { this.OnRaiseLog(ex); } finally { base.OnMouseDown(e); } }
private void SetZoomWavMoveMouseStyle(UIArea area) { //Point location = this.PointToClient(Control.MousePosition); //Loger.Info(area.ToString()); switch (area) { case UIArea.GlobalViewZoomDisplay: if (this._zoomInfo.HasZoom()) { this.Cursor = this._zoomWavDisplayAreaMmoveMouseStyle; } else { this.Cursor = this._defaultCursor; } break; case UIArea.Wave: case UIArea.Voice: this.Cursor = this._wavAndVoiceSelecteMouseStyle; break; case UIArea.WaveSelected: case UIArea.VoiceSelected: this.Cursor = this._wavAndVoiceSelecteMouseStyle; break; case UIArea.TimeArea: default: this.Cursor = this._defaultCursor; break; } }
public override void BuildUI(UIManager manager) { UIArea manageData; manager.AddArea(manageData = new UIArea(Screen.Width - 400, 100, 250, 300) {Closable = true}); manageData.Visible = true; manageData.AddControl(new TextArea(30, 25, "Manage Defense") {Color = "blue"}); myClickState = null; myClickState = new Button<bool>(false, 20, 50, 100, 25, new Func<string>(() => { return myClickState.Data ? "This" : "That"; })) { Click = (p) => { myClickState.Data = !myClickState.Data; } }; manageData.AddControl(myClickState); manageData.AddControl(new Button(20, 80, 100, 25, "Send Wave") { Click = (p) => { //idk do something on button click } }); }
/// <summary> /// 重写OnMouseDown /// </summary> /// <param name="e"></param> protected override void OnMouseDown(MouseEventArgs e) { try { this._lastMouseDownMoveLocation = e.Location; this._mouseDownArgs = e; this._mouseDownUIArea = this.GetUIArea(e.Location, this._plotPara, this._selectedInfo); if (e.Button == MouseButtons.Right && (this._mouseDownUIArea == UIArea.Wave || this._mouseDownUIArea == UIArea.WaveSelected || this._mouseDownUIArea == UIArea.Voice || this._mouseDownUIArea == UIArea.VoiceSelected)) { SelectedInfo oldSelectedInfo = this._selectedInfo; if (e.Clicks == 1) { //右键单击,取消选择 if (this._selectedInfo == null) { return; } this._selectedInfo = null; } else { //右键双击,全选 this._selectedInfo = new SelectedInfo(this._plotPara.BaseTime, 0d, this._plotPara.DurationMillisecond); } this.SelectedAreaChangeDraw(oldSelectedInfo); } } catch (Exception ex) { Loger.Error(ex); } finally { base.OnMouseDown(e); } }
public override void BuildUI(UIManager manager) { UIArea manageData; manager.AddArea(manageData = new UIArea(Screen.Width - 400, 100, 250, 300) {Closable = true}); manageData.Visible = true; manageData.AddControl(new TextArea(30, 25, "Manage Defense") {Color = "blue"}); manageData.AddControl(new TextArea(5, 50, "Mode: ")); myClickState = null; myClickState = new Button<bool>(true, 20, 50, 100, 25, new Func<string>(() => { return myClickState.Data ? "Edit" : "Play"; })) { Click = (p) => { myClickState.Data = !myClickState.Data; if (myClickState.Data) gameManager.GameMode = GameMode.Play; else gameManager.GameMode = GameMode.TileEdit; } }; manageData.AddControl(myClickState); manageData.AddControl(new Button(20, 80, 100, 25, "Send Wave") {Click = (p) => { }}); }
/// <summary> /// 设置缩略波形图平移鼠标样式 /// </summary> /// <param name="area">鼠标所在区域</param> private void SetZoomWavMoveMouseStyle(UIArea area) { if (this._wavArea.Width == this._zoomDisplayArea.Width) { //如果当前缩略波形全部为显示区域,则不作处理,不允许移动 if (this.Cursor == this._zoomWavDisplayAreaMmoveMouseStyle) { this.Cursor = this._defaultCursor; } return; } if (area == UIArea.ZoomDisplayArea && this.Cursor != this._zoomWavDisplayAreaMmoveMouseStyle) { //在缩略波形区域内,在该区域内可左右移动显示的波形区域,所以设置鼠标光标样式为可移动的样式 this.Cursor = this._zoomWavDisplayAreaMmoveMouseStyle; } else if (area == UIArea.ZoomArea && this.Cursor != this._defaultCursor) { this.Cursor = this._defaultCursor; } }
public LevelManagerArea(UIManager.UIManager uiManager) { LevelManager = uiManager.UIManagerAreas.LevelManagerArea = new UIArea(Window.OuterWidth - 440, 100, 390, 390) { Closable = true }; LevelManager.Visible = true; uiManager.AddArea(LevelManager); LevelManager.AddControl(new TextArea(30, 25, "Level Manager") { Color = "blue" }); LevelManager.AddControl(new Button(50, 70, 120, 28, "Live Objects") { Click = (p) => { new LiveObjectsArea(uiManager); } }); LevelManager.AddControl(new Button(50, 110, 120, 28, "Debug Animations") { Click = (p) => { SonicManager.Instance.TileChunkDebugDrawOptions.OutlineChunk = !SonicManager.Instance.TileChunkDebugDrawOptions.OutlineChunk; SonicManager.Instance.TileChunkDebugDrawOptions.ShowPaletteAnimationData = !SonicManager.Instance.TileChunkDebugDrawOptions.ShowPaletteAnimationData; SonicManager.Instance.TileChunkDebugDrawOptions.ShowBaseData = !SonicManager.Instance.TileChunkDebugDrawOptions.ShowBaseData; SonicManager.Instance.TileChunkDebugDrawOptions.ShowTileAnimationData = !SonicManager.Instance.TileChunkDebugDrawOptions.ShowTileAnimationData; } }); }
/// <summary> /// 重写OnMouseUp /// </summary> /// <param name="e"></param> protected override void OnMouseUp(MouseEventArgs e) { try { UIArea area = this.GetUIArea(e.Location); switch (area) { case UIArea.ZoomArea: break; case UIArea.WavArea: if (this._mouseDownArgs != null && this._mouseDownArgs.Location == e.Location) { if (e.Button == System.Windows.Forms.MouseButtons.Right) { //计算主波形选中区域起始结束索引 this.CalculateWavSelectedAreaIndex(0, 0); //添加更新区域 bool refreshFlag = this.AddPartRefreshArea(this._wavSelectedArea); refreshFlag |= this.AddPartRefreshArea(this._zoomSelectedArea); //更新波形选中区域 this.UpdateSelectedArea(0, 0); //添加更新区域 refreshFlag |= this.AddPartRefreshArea(this._wavSelectedArea); refreshFlag |= this.AddPartRefreshArea(this._zoomSelectedArea); //刷新 if (refreshFlag) { this.RefreshWave(true, false, false, false, false, false); } } else if (e.Button == System.Windows.Forms.MouseButtons.Left && e.Clicks == 1 && this.GrtPlayState() == PlayStatus.PLAYING) { //播放位置跳转 //播放位置对应当前播放段的比例 float pscale = ((float)(e.X - this._wavArea.X)) / this._wavArea.Width; long bytePosition = (long)((this._we - this._ws) * pscale) + this._ws; long pos = bytePosition * this._channelInfo.chans * WavePlayer.OFFSETPARA; float wavLocation = (float)pos / (this._channelInfo.chans * WavePlayer.OFFSETPARA); //如果当前有开启环听,则当跳转的位置不在选中的区域范围内,则不允许跳转 if (this._isRingHear && (wavLocation >= this._se || wavLocation <= this._ss)) { return; } //设置播放位置 Bass.BASS_ChannelSetPosition(this._handle, pos, BASSMode.BASS_POS_BYTE); //将当前的播放位置指示线区域添加为需要更新的区域 this.AddPartRefreshArea(new RectangleF(this._wavPlayLineX, this._wavArea.Y, this._playLineChannelPen.Width, this._wavArea.Height)); this.AddPartRefreshArea(new RectangleF(this._zoomPlayLineX, this._zoomArea.Y, this._playLineChannelPen.Width, this._zoomArea.Height)); } } break; default: break; } } catch (Exception ex) { this.OnRaiseLog(ex); } finally { //还原鼠标是否近下标识 this._mouseDownArgs = null; base.OnMouseUp(e); } }
/// <summary> /// 重写OnMouseMove /// </summary> /// <param name="e"></param> protected override void OnMouseMove(MouseEventArgs e) { try { this._currentMouseArgs = e; UIArea area = this.GetUIArea(this._currentMouseArgs.Location); switch (area) { case UIArea.ZoomDisplayArea: case UIArea.ZoomArea: //设置鼠标样式 this.SetZoomWavMoveMouseStyle(area); //计算新的显示区域 if (this._mouseDownArgs != null && this._mouseDownArgs.Button == System.Windows.Forms.MouseButtons.Left && this._mouseDownArgs.Clicks == 1 && this._mouseDownUIArea == UIArea.ZoomDisplayArea && this._srcLeftChannelDataLength != 0) { int offset = (e.X - this._lastMouseDownMoveLocation.X) * this._srcLeftChannelDataLength / this._zoomArea.Width; //缩略波形对应主波形中显示段改变 this.ZoomWavDisplaySegmentAreaChange(offset); //更新主波形播放位置指示线上次指示线所在的位置是否在主波形显示段内 this.UpdateWavPlayLocationLingLastInArea(); } break; case UIArea.WavArea: //在主波形区域内,在该区域内有缩放波形、选中波形区域、跳转播放位置、右键菜单等操作,所以设置鼠标光标样式为可选中的样式 if (this.Cursor != this._wavSelecteMouseStyle) { this.Cursor = this._wavSelecteMouseStyle; } //更新缩略波形区域 if (this._mouseDownArgs != null && this._mouseDownArgs.Button == System.Windows.Forms.MouseButtons.Right && this._mouseDownUIArea == UIArea.WavArea) { int mouseDownX = this._mouseDownArgs.Location.X; float x, sectedAreaWidth; if (e.X < mouseDownX) { x = e.X; sectedAreaWidth = mouseDownX - e.X; } else { x = mouseDownX; sectedAreaWidth = e.X - mouseDownX; } //计算主波形选中区域起始结束索引 this.CalculateWavSelectedAreaIndex(x, sectedAreaWidth); //刷新波形选中区域改变 this.RefreshWavSelectedChange(x, sectedAreaWidth); } break; //case UIArea.TimeArea: // break; //case UIArea.DbArea: // break; default: if (this.Cursor != this._defaultCursor) { this.Cursor = this._defaultCursor; } break; } } catch (Exception ex) { this.OnRaiseLog(ex); } finally { this._lastMouseDownMoveLocation = e.Location; base.OnMouseMove(e); } }
/// <summary> /// 重写OnMouseMove /// </summary> /// <param name="e"></param> protected override void OnMouseMove(MouseEventArgs e) { try { if (this._plotPara == null) { return; } this._currentMouseArgs = e; UIArea area = this.GetUIArea(this._currentMouseArgs.Location, this._plotPara, this._selectedInfo); this.SetZoomWavMoveMouseStyle(area); switch (area) { case UIArea.GlobalViewZoomDisplay: if (e.Button != MouseButtons.Left || !this._zoomInfo.HasZoom()) { return; } //有缩放时,拖动全局视图进行移动,改变放大后显示区域 double moveMillisecond = (e.X - this._lastMouseDownMoveLocation.X) * this._plotPara.DurationMillisecond / this._content.Area.Width; double sbtoMillisecond = this._plotPara.SBTOMillisecond + moveMillisecond; double setoMillisecond; if (sbtoMillisecond < PlotConstant.ZEROR_D) { sbtoMillisecond = 0; setoMillisecond = this._plotPara.GetSETOMillisecond() - this._plotPara.SBTOMillisecond; } else { setoMillisecond = this._plotPara.GetSETOMillisecond() + moveMillisecond; if (this._plotPara.DurationMillisecond - setoMillisecond < PlotConstant.ZEROR_D) { setoMillisecond = this._plotPara.DurationMillisecond; sbtoMillisecond = setoMillisecond - (this._plotPara.GetSETOMillisecond() - this._plotPara.SBTOMillisecond); } } this._plotPara.SBTOMillisecond = sbtoMillisecond; this._plotPara.UpdateSETOMillisecond(setoMillisecond); this.Resample(); this.PartDraw_ZoomMove(); break; case UIArea.Wave: case UIArea.Voice: if (e.Button != MouseButtons.Right) { return; } //波形图和语谱图上选中区域改变 int mouseDownX = this._mouseDownArgs.Location.X; float beginX, endX; if (e.X < mouseDownX) { beginX = e.X; endX = mouseDownX; } else { beginX = mouseDownX; endX = e.X; } double setOMillisecond = this._plotPara.GetSETOMillisecond(); double unitTime = (setOMillisecond - this._plotPara.SBTOMillisecond) / this._content.Area.Width; double beginMillisecond = this._plotPara.SBTOMillisecond + beginX * unitTime; double endMillisecond = this._plotPara.SBTOMillisecond + endX * unitTime; SelectedInfo oldSelectedInfo = this._selectedInfo; this._selectedInfo = new SelectedInfo(this._plotPara.BaseTime, beginMillisecond, endMillisecond); this.SelectedAreaChangeDraw(oldSelectedInfo); break; case UIArea.WaveSelected: case UIArea.VoiceSelected: default: break; } } catch (Exception ex) { Loger.Error(ex); } finally { this._lastMouseDownMoveLocation = e.Location; base.OnMouseMove(e); } }
public ObjectFrameworkArea(UIManager.UIManager manager) { var size = 40 * 4; objectFrameworkArea = new UIArea<ObjectFrameworkData>(new ObjectFrameworkData() {ObjectFramework = new LevelObject("Foo")}, 540, 75, 850, 690) {Closable = true}; objectFrameworkArea.Visible = false; manager.AddArea(objectFrameworkArea); manager.UIManagerAreas.ObjectFrameworkArea = this; objectFrameworkArea.AddControl(new TextArea(30, 25, "Object Framework") {Color = "blue"}); objectFrameworkArea.AddControl(new TextArea(16, 60, "Assets") {Color = "black"}); objectFrameworkArea.AddControl(new Button(160, 38, 140, 25, "Add Asset") { Color = "rgb(50,150,50)", Click = (p) => { objectFrameworkArea.Data.ObjectFramework.Assets.Add( new LevelObjectAsset("Asset " + ( objectFrameworkArea.Data.ObjectFramework.Assets.Count + 1 ))); Populate(objectFrameworkArea.Data.ObjectFramework); } }); objectFrameworkArea.AddControl( objectFrameworkArea.Data.Assets = new ScrollBox(30, 60 + 10, 25, 4, 250) {BackColor = "rgb(50, 60, 127)",}); objectFrameworkArea.AddControl(new TextArea(16, 60 + ( size * 1 ), "Pieces") {Color = "black"}); objectFrameworkArea.AddControl(new Button(160, 38 + ( size * 1 ), 140, 25, "Add Piece") { Color = "rgb(50,150,50)", Click = (p) => { objectFrameworkArea.Data.ObjectFramework.Pieces.Add( new LevelObjectPiece("Piece " + ( objectFrameworkArea.Data.ObjectFramework. Pieces.Count + 1 ))); Populate(objectFrameworkArea.Data.ObjectFramework); } }); objectFrameworkArea.AddControl( objectFrameworkArea.Data.Pieces = new ScrollBox(30, 60 + 10 + ( size * 1 ), 25, 4, 250) {BackColor = "rgb(50, 60, 127)",}); objectFrameworkArea.AddControl(new TextArea(16, 60 + ( size * 2 ), "Piece Layouts") {Color = "black"}); objectFrameworkArea.AddControl(new Button(160, 38 + ( size * 2 ), 140, 25, "Add Piece Layout") { Color = "rgb(50,150,50)", Click = (p) => { objectFrameworkArea.Data.ObjectFramework.PieceLayouts.Add( new LevelObjectPieceLayout("Piece Layout " + ( objectFrameworkArea.Data. ObjectFramework . PieceLayouts .Count + 1 ))); Populate(objectFrameworkArea.Data.ObjectFramework); } }); objectFrameworkArea.AddControl( objectFrameworkArea.Data.PieceLayouts = new ScrollBox(30, 60 + 10 + ( size * 2 ), 25, 4, 250) {BackColor = "rgb(50, 60, 127)",}); objectFrameworkArea.AddControl(new TextArea(16, 60 + ( size * 3 ), "Projectiles") {Color = "black"}); objectFrameworkArea.AddControl(new Button(160, 38 + ( size * 3 ), 140, 25, "Add Projectile") { Color = "rgb(50,150,50)", Click = (p) => { objectFrameworkArea.Data.ObjectFramework.Projectiles.Add( new LevelObjectProjectile( "Piece Projectile " + ( objectFrameworkArea.Data.ObjectFramework.Projectiles. Count + 1 ))); Populate(objectFrameworkArea.Data.ObjectFramework); } }); objectFrameworkArea.AddControl( objectFrameworkArea.Data.Projectiles = new ScrollBox(30, 60 + 10 + ( size * 3 ), 25, 4, 250) {BackColor = "rgb(50, 60, 127)",}); objectFrameworkArea.AddControl(new TextArea(320, 80 - 20, "Key: ") {Font = UIManager.UIManager.SmallTextFont, Color = "black"}); objectFrameworkArea.AddControl( objectFrameworkArea.Data.Key = new TextBox(370, 60 - 20, 150, 25, "") {Color = "rgb(50,150,50)", Click = (p) => { objectFrameworkArea.Data.ObjectFramework.Key = objectFrameworkArea.Data.Key.Text; }}); objectFrameworkArea.AddControl(new TextArea(320 + 205, 80 - 24, "Description: ") {Font = UIManager.UIManager.SmallTextFont, Color = "black"}); objectFrameworkArea.AddControl( objectFrameworkArea.Data.Description = new TextBox(370 + 240, 60 - 20, 220, 25, "") {Color = "rgb(50,150,50)", Click = (p) => { objectFrameworkArea.Data.ObjectFramework.Description = objectFrameworkArea.Data.Description.Text; }}); objectFrameworkArea.AddControl(objectFrameworkArea.Data.b1 = new Button(320, 95 - 20, 250, 25, "onInit") { Color = "rgb(50,150,50)", Click = (p) => { objectFrameworkArea.Data.b2.Toggled = false; objectFrameworkArea.Data.b3.Toggled = false; objectFrameworkArea.Data.b4.Toggled = false; if (objectFrameworkArea.Data.b1.Toggled) { addCodeWindow(objectFrameworkArea.Data.ObjectFramework.InitScript, () => { objectFrameworkArea.Data.ObjectFramework.InitScript = objectFrameworkArea.Data.Editor.GetValue(); }); } else ClearMainArea(); } }); objectFrameworkArea.Data.b1.Toggle = true; objectFrameworkArea.AddControl(objectFrameworkArea.Data.b2 = new Button(580, 95 - 20, 250, 25, "onTick") { Color = "rgb(50,150,50)", Click = (p) => { objectFrameworkArea.Data.b1.Toggled = false; objectFrameworkArea.Data.b3.Toggled = false; objectFrameworkArea.Data.b4.Toggled = false; if (objectFrameworkArea.Data.b2.Toggled) { addCodeWindow(objectFrameworkArea.Data.ObjectFramework.TickScript, () => { objectFrameworkArea.Data.ObjectFramework.TickScript = objectFrameworkArea.Data.Editor.GetValue(); }); } else ClearMainArea(); } }); objectFrameworkArea.Data.b2.Toggle = true; objectFrameworkArea.AddControl(objectFrameworkArea.Data.b3 = new Button(320, 130 - 20, 250, 25, "onCollide") { Color = "rgb(50,150,50)", Click = (p) => { objectFrameworkArea.Data.b1.Toggled = false; objectFrameworkArea.Data.b2.Toggled = false; objectFrameworkArea.Data.b4.Toggled = false; if (objectFrameworkArea.Data.b3.Toggled) { addCodeWindow(objectFrameworkArea.Data.ObjectFramework.CollideScript, () => { objectFrameworkArea.Data.ObjectFramework.CollideScript = objectFrameworkArea.Data.Editor.GetValue(); }); } else ClearMainArea(); } }); objectFrameworkArea.Data.b3.Toggle = true; objectFrameworkArea.AddControl(objectFrameworkArea.Data.b4 = new Button(580, 130 - 20, 250, 25, "onHurtSonic") { Color = "rgb(50,150,50)", Click = (p) => { objectFrameworkArea.Data.b1.Toggled = false; objectFrameworkArea.Data.b2.Toggled = false; objectFrameworkArea.Data.b3.Toggled = false; if (objectFrameworkArea.Data.b4.Toggled) { addCodeWindow(objectFrameworkArea.Data.ObjectFramework.HurtScript, () => { objectFrameworkArea.Data.ObjectFramework.HurtScript = objectFrameworkArea.Data.Editor.GetValue(); }); } else ClearMainArea(); } }); objectFrameworkArea.Data.b4.Toggle = true; objectFrameworkArea.AddControl(objectFrameworkArea.Data.MainPanel = new Panel<MainPanelData>(new MainPanelData(), 320, 150, 510, 510)); // setTimeout(" var sc = document.getElementById("picFieldUploader");sc.style.visibility = "hidden";sc.style.position="absolute";", 300); }
public LevelSelectorArea(UIManager.UIManager manager) { var levelInformation = new UIArea(70, 70, 460, 420); levelInformation.Visible = true; manager.AddArea(levelInformation); levelInformation.AddControl(new TextArea(30, 25, "Level Selector") { Font = UIManager.UIManager.TextFont, Color = "blue" }); levelInformation.AddControl(new TextArea(30, 52, ((Func<string>)(() => UIManager.UIManager.CurLevelName))) { Font = UIManager.UIManager.TextFont, Color = "black" }); levelInformation.AddControl(new Button(320, 70, 100, 22, "Save Level") { Font = UIManager.UIManager.ButtonFont, Color = "rgb(50,150,50)" }); levelInformation.AddControl(new Button(320, 105, 135, 22, "Load Empty Level") { Font = UIManager.UIManager.ButtonFont, Color = "rgb(50,150,50)", Click = (p) => { /* levelManagerArea.visible = true; loadingText.visible = true; var index = 0; var tim = function () { var max = 188; if (index == max) { setTimeout(function () { alert(_H.stringify(sonicManager.SonicLevel)); sonicManager.uiManager.loadGame(_H.stringify(sonicManager.SonicLevel), sonicManager.mainCanvas); loadingText.visible = false; }, 500); return; } setTimeout(tim, 100); _H.loadSprite("assets/Chunks/Tile" + index++ + ".png", function (image) { loadingText.text = "Loading " + index + "/" + max; sonicManager.importChunkFromImage(image); if (index == max) { sonicManager.inds = { done: true }; } }); }; setTimeout(tim, 100);*/ } }); var ctls = levelInformation.AddControl(new ScrollBox(30, 70, 25, 11, 250) { BackColor = "rgb(50, 60, 127)", }); var loadLevel = (Action<string>)(name => { UIManager.UIManager.UpdateTitle("Downloading " + name); SonicEngine.Instance.client.Emit("LoadLevel.Request", new DataObject<string>(name)); ; }); bool neverGot=true; SonicEngine.Instance.client.On<DataObject<string>>("LoadLevel.Response", LoadLevel); Window.SetTimeout(() => { if (neverGot) { UIManager.UIManager.CurLevelName = "Connection Failed, static level loaded"; LoadLevel(new DataObject<string>(Window.Instance.Me().STATICLEVEL)); } }, 3000); SonicEngine.Instance.client.On<DataObject<string[]>>("GetLevels.Response", data => { neverGot = false; bool load = true; foreach (var level in data.Data.OrderBy(a => a)) { if (load) { //#if RELEASE //loadLevel(level); //#endif load = false; } string area = level; ctls.AddControl(new Button(0, 0, 0, 0, level) { Color = "rgb(50,190,90)", Click = (p) => { loadLevel(area); } }); } }); SonicEngine.Instance.client.Emit("GetLevels.Request", null); UIManager.UIManager.CurLevelName = "Level Not Loaded"; }
public override void BuildUI(UIManager manager) { UIArea manageData; manager.AddArea(manageData = new UIArea(Screen.Width - 400, 100, 250, 300) {Closable = true}); manageData.Visible = true; manageData.AddControl(new TextArea(30, 25, "Manage Defense") {Color = "blue"}); myClickState = null; myClickState = new Button<int>(0, 20, 50, 100, 25, (Func<string>) ( () => { switch (myClickState.Data) { case 0: return "Move Kingdom"; case 1: return "Move Waypoint"; case 2: return "Add Waypoint"; case 3: return "Place Tower"; } return ""; } )) { Click = (p) => { myClickState.Data++; myClickState.Data = myClickState.Data % 4; } }; manageData.AddControl(myClickState); manageData.AddControl(new Button(20, 80, 100, 25, "Send Wave") { Click = (p) => { foreach (var kingdom in Kingdoms) { for (int i = 0; i < 4; i++) { KeyValuePair<string, Kingdom> kingdom1 = kingdom; Window.SetTimeout(() => { kingdom1.Value.Units.Add(new QuickShooterUnit(kingdom1.Value.Waypoints[0].Travel(150, Scale), kingdom1.Value)); kingdom1.Value.Units.Add(new QuickShooterUnit(kingdom1.Value.Waypoints[1].Travel(150, Scale), kingdom1.Value)); kingdom1.Value.Units.Add(new QuickShooterUnit(kingdom1.Value.Waypoints[2].Travel(150, Scale), kingdom1.Value)); }, 750 * i); } } } }); manageData.AddControl(new Button(20, 125, 100, 25, ( (Func<string>) ( () => { return DRAWFAST ? "Draw Slow" : "Draw Fast"; } ) )) {Click = (p) => { DRAWFAST = !DRAWFAST; }}); }