private void HandleIdleStateChange() { switch (CurrentIdleState) { case IdleStates.Unset: CurrentIdleState = IdleStates.Inactive; HandleIdleStateChange(); break; case IdleStates.Active: this.StatusImage.InvokeControl(img => img.BackColor = Color.Green); this.StatusLabel.InvokeControl(label => label.Text = "Active"); Broadcaster.Stop(); break; case IdleStates.Inactive: this.StatusImage.InvokeControl(img => img.BackColor = Color.Gray); this.StatusLabel.InvokeControl(label => label.Text = "Searching"); Broadcaster.Start(); break; case IdleStates.Idle: this.StatusImage.InvokeControl(img => img.BackColor = Color.Yellow); this.StatusLabel.InvokeControl(label => label.Text = "Idle, Searching"); Broadcaster.Start(); break; } }
public static void AddState(State state) { switch (state.Type) { case States.Idle: var idle = state as IdleState; IdleStates.Add(idle); break; case States.Build: var build = state as BuildState; BuildStates.Add(build); break; case States.Attack: var attack = state as AttackState; AttackStates.Add(attack); break; case States.Conquer: var conquer = state as ConquerState; ConquerStates.Add(conquer); break; case States.Move: var move = state as MoveState; MoveStates.Add(move); break; } }
private void IdleTimerLoop() { while (true) { if (LastMessage.AddMilliseconds(IDLE_TIME_MILLI) < DateTime.Now) { CurrentIdleState = IdleStates.Idle; HandleIdleStateChange(); } Thread.Sleep(IDLE_LOOP_TIME_MILLI); } }
private void Receiver_OnMouseSignalReceived(object sender, string e) { if (this.MessageTextBox.Text.Length > 1000) { this.MessageTextBox.InvokeControl(t => t.Text = ""); } this.MessageTextBox.InvokeControl(t => t.Text = $"{e}\r\n{t.Text}"); LastMessage = DateTime.Now; if (CurrentIdleState != IdleStates.Active) { CurrentIdleState = IdleStates.Active; HandleIdleStateChange(); } Broadcaster.Pause(30); }
public MainForm() { InitializeComponent(); CurrentIdleState = IdleStates.Unset; Mousepad = new Mousepad(); Keyboard = new KeyboardEventRunner(); Broadcaster = new ClientBroadcastSignaler(37015); Receiver = new Receiver(37015); Receiver.Start(); Receiver.OnError += Receiver_OnError; Receiver.OnMouseMove += (o, e) => { Mousepad.MoveMouse(e.X, e.Y); }; Receiver.OnMouseLeftClick += (o, e) => { Mousepad.LeftClick(); }; Receiver.OnMouseRightClick += (o, e) => { Mousepad.RightClick(); }; Receiver.OnMouseDoubleLeftClick += (o, e) => { Mousepad.LeftDoubleClick(); }; Receiver.OnMouseLeftPress += (o, e) => { Mousepad.LeftDown(); }; Receiver.OnMouseLeftRelease += (o, e) => { Mousepad.LeftUp(); }; Receiver.OnScrollwheelMove += (o, e) => { if (e > 0) { Mousepad.ScrollDown(); } else { Mousepad.ScrollUp(); } }; Receiver.OnMouseSignalReceived += Receiver_OnMouseSignalReceived; LastMessage = DateTime.Now; IdleLoopThread = new Thread(new ThreadStart(IdleTimerLoop)); IdleLoopThread.IsBackground = true; IdleLoopThread.Start(); HandleIdleStateChange(); }
public override bool Idle(){ switch (idleState) { case IdleStates.hover: rigidbody2D.AddForce(Vector2.up * deltaStart); break; case IdleStates.goUp: if(deltaStart < .35f) { //rigidbody2D.velocity = Vector2.zero; idleState = IdleStates.stabilizing; } rigidbody2D.AddForce(Vector2.up * deltaStart * 2); break; case IdleStates.stabilizing: rigidbody2D.AddForce(Vector2.up * -2f); rigidbody2D.velocity *= .91f; if(rigidbody2D.velocity.y < .3f) idleState = IdleStates.hover; break; } return true; }
public static void RemoveState(State state) { switch (state.Type) { case States.Idle: if (IdleStates.Contains(state)) { IdleStates.Remove(state); } break; case States.Build: if (BuildStates.Contains(state)) { BuildStates.Remove(state); } break; case States.Attack: if (AttackStates.Contains(state)) { AttackStates.Remove(state); } break; case States.Conquer: if (ConquerStates.Contains(state)) { ConquerStates.Remove(state); } break; case States.Move: if (MoveStates.Contains(state)) { MoveStates.Remove(state); } break; } }
IEnumerator CheckOffset(){ while (true) { deltaStart = (startElevation -rigidbody2D.position.y); if(deltaStart > .35f){ idleState = IdleStates.goUp; } yield return null; } }