void Awake() { State = _state.Idle; NextState = State; paused = false; miscStats = new PropertyStats(); }
void Die() { NextState = _state.Dead; dieTimer = Time.time; this.SendMessage("SetAction", UnitAnimation._action.Die, SendMessageOptions.DontRequireReceiver); this.SendMessage("StartAnimation", null, SendMessageOptions.DontRequireReceiver); }
void AttackUnit() { this.SendMessage("SetAction", weapon.actionAnim, SendMessageOptions.DontRequireReceiver); this.SendMessage("StartAnimation", null, SendMessageOptions.DontRequireReceiver); NextState = _state.Engage; attackTimer = Time.time; }
void EngageUnit() { if ((attackTimer + weapon.rechargeTime) < Time.time) { NextState = _state.Idle; } }
public void Throw() { Debug.Log("I am being thrown!"); if (state == _state.Held) { state = _state.Throwing; Vector3 pos = heldBy.transform.position; PlayerController nearest=heldBy; float nearestDist = float.MaxValue; foreach (PlayerController player in PlayerController.players) { if (player == heldBy) continue; float currentDist = Vector3.Distance(player.transform.position, heldBy.transform.position); if (nearestDist > currentDist) { nearestDist=currentDist; nearest=player; } } //ThrowStriaght(); ThrowAt(nearest.transform.position); heldBy.state = PlayerState.NOT_HOLDING; } }
public void disconnect() { arduino_serial.DiscardInBuffer(); arduino_serial.DiscardOutBuffer(); arduino_serial.Close(); state = _state.DISCONNECTED; }
public void PickUp(PlayerController pc) { if (state == _state.OnGround || state == _state.Falling || state == _state.Throwing) { heldBy = pc; state = _state.Held; pc.state = PlayerState.HOLDING; //transform.position = heldBy.eggNode.transform.position; } }
public void ThrowToPlayer(Vector3 receivingPlayer) { Debug.Log ("Throwing to a player"); if (state == _state.Held) { state = _state.Throwing; //Vector3 distance = receivingPlayer - this.transform.position; ThrowAt(receivingPlayer); //delta = Vector3.Normalize ((distance) + Vector3.up) * 5.0f; heldBy = null; } }
private void serial_data_received(object sender, SerialDataReceivedEventArgs e) { String command_feedback; try { command_feedback = arduino_serial.ReadLine(); //Console.WriteLine(command_feedback); } catch { return; } if (command_checker == null) { return; } if (!command_feedback.Contains(command_checker)) { //throw new InvalidOperationException("Invalid command feedback"); } else { command_valid = true; if (command_feedback.IndexOf('(') > -1 && command_feedback.IndexOf(',') > -1 && command_feedback.IndexOf(')') > -1) { int startchar = command_feedback.IndexOf('(') + 1; int numlength = (command_feedback.IndexOf(',') - startchar); values_received[0] = Convert.ToInt64(command_feedback.Substring(startchar, numlength)); startchar = command_feedback.IndexOf(',') + 1; numlength = (command_feedback.IndexOf(')') - startchar); values_received[1] = Convert.ToInt64(command_feedback.Substring(startchar, numlength)); } if (command_checker == "InoCtrl") { state = _state.CONTROLLING; } } if (command_feedback.Contains("Homming")) { command_type = command_types.HOME; } else if (command_feedback.Contains("Start")) { command_type = command_types.START; } else if (command_feedback.Contains("Normal")) { command_type = command_types.NORMAL; } //if(command_feedback.Contains("Apertou")) //Console.WriteLine("Received Data: "+ command_feedback); }
//public resetButton resetButton; public controlPanel() { state = _state.beforeStart; buttonA = new buttonA(); buttonB = new buttonB(); //resetButton = new resetButton(); this.Controls.Add(buttonA); this.Controls.Add(buttonB); //this.Controls.Add(resetButton); buttonA.Left = 2; buttonB.Left = buttonA.Left + buttonA.Width + 2; this.Height = buttonA.Height + 2; this.Width = buttonA.Width + 4; buttonB.Visible = false; }
void SetupMoveUnit() { UnitAnimation._direction dir; int tileXDelta; int tileYDelta; tileXDelta = (int)moveTile.x - (int)curTile.x; tileYDelta = (int)moveTile.y - (int)curTile.y; if ((tileXDelta == 0) && (tileYDelta == 0)) { return; } deltaX = (float)tileXDelta * moveXScale; deltaY = (float)tileYDelta * moveXScale; if (Mathf.Abs(tileXDelta) > Mathf.Abs(tileYDelta)) { if (tileXDelta > 0) { dir = UnitAnimation._direction.DirRight; } else { dir = UnitAnimation._direction.DirLeft; } } else { if (tileYDelta > 0) { dir = UnitAnimation._direction.DirUp; } else { dir = UnitAnimation._direction.DirDown; } } this.SendMessage("SetDirection", dir, SendMessageOptions.DontRequireReceiver); this.SendMessage("SetAction", UnitAnimation._action.Walk, SendMessageOptions.DontRequireReceiver); this.SendMessage("StartAnimation", null, SendMessageOptions.DontRequireReceiver); NextState = _state.Move; }
public bool connect(String port_name) { try { arduino_serial.PortName = port_name; arduino_serial.BaudRate = 115200; arduino_serial.Handshake = Handshake.RequestToSend; arduino_serial.DtrEnable = true; arduino_serial.RtsEnable = true; arduino_serial.Open(); //arduino_serial = new SerialPort(port_name, 9600);//, Parity.None, 8, StopBits.One); } catch { return(false); } state = _state.INITIALIZING; state_init = _state_init.NOT_READY; state_ctrl = _state_ctrl.CONTROLLING; return(true); }
void Awake() { //Application.targetFrameRate = 30; Screen.SetResolution(1080, 1920, true); //Application.targetFrameRate = 60; //QualitySettings.vSyncCount = 0; cam = Camera.Instantiate(mainCamera); playerDataController = transform.GetComponent <PlayerDataController>(); playerDataController.LoadPlayerData(); Debug.Log(playerDataController.playerData.lastLevel); dataController = transform.GetComponent <DataController>(); dataController.LoadGameData(); gameState = _state.intro; Object.DontDestroyOnLoad(transform); Object.DontDestroyOnLoad(cam); soundController = GetComponent <SoundController>(); musicController = GetComponent <MusicController>(); pauseMenuEnabled = true; paused = false; helperEnabled = true; if (playerDataController.playerData.sfxOnOff == 1) { soundController.SoundFXOn = true; } else { soundController.SoundFXOn = false; } if (playerDataController.playerData.musicOnOff == 1) { musicController.MusicOn = true; } else { musicController.MusicOn = false; } }
private void OnLevelFinishLoading(Scene scene, LoadSceneMode mode) { if (scene.name == "Board") { gameState = _state.board; StartBoard(); LevelPostStart(); sceneHandler = null; //background = GameObject.Instantiate(backgroundPrefabs[currentLevel % backgroundPrefabs.Count]); background = GameObject.Instantiate((GameObject)Resources.Load("Backgrounds/" + backgrounds[currentLevel % backgrounds.Count])); } if (scene.name == "World") { if (board) { Destroy(board); } if (worldController == null) { worldController = GameObject.Instantiate(worldControllerPrefab); } worldController.GetComponent <WorldController>().DoRender(); } }
void Move(Vector2 newTile) { NextState = _state.SetupMove; moveTile = newTile; }
} // end of parce of tree /// <summary> /// Парсинг скобочного дерева 1С /// </summary> /// <param name="text"></param> /// <param name="path"></param> /// <returns></returns> public static Tree Parse_1Ctext(String text, String path) { StringBuilder __curvalue__ = new StringBuilder(""); String curvalue = ""; Tree ret = new Tree("", Node_Type.nd_list, null); Tree t = ret; int len = text.Length; int i = 0; char sym = '0'; Node_Type nt = Node_Type.nd_unknown; _state state = _state.s_value; //for (i = 0; i <= len-1; i++) for (i = 1; i < len; i++) { sym = text[i]; if (String.IsNullOrEmpty(sym.ToString())) { break; } switch (state) { case _state.s_value: switch (sym) { case ' ': // space case '\t': case '\r': case '\n': break; case '"': __curvalue__.Clear(); state = _state.s_string; break; case '{': t = new Tree("", Node_Type.nd_list, t); break; case '}': if (t.Get_First() != null) { t.AddChild("", Node_Type.nd_empty); } t = t.Get_Parent(); if (t == null) { //if (msreg) msreg->AddError("Ошибка формата потока. Лишняя закрывающая скобка }.", "Позиция", i, "Путь", path); //delete ret; //String msreg = $"Ошибка формата потока. Лишняя закрывающая скобка. Позиция: { i }, Путь: {path}"; ShowMessage("Ошибка формата потока. Лишняя закрывающая скобка }. Позиция " + i + ", Путь " + path); ret = null; return(null); } state = _state.s_delimitier; break; case ',': t.AddChild("", Node_Type.nd_empty); break; default: __curvalue__.Clear(); __curvalue__.Append(sym); state = _state.s_nonstring; break; } break; case _state.s_delimitier: switch (sym) { case ' ': // space case '\t': case '\r': case '\n': break; case ',': state = _state.s_value; break; case '}': t = t.Get_Parent(); if (t == null) { /* * if (msreg) msreg->AddError("Ошибка формата потока. Лишняя закрывающая скобка }.", * "Позиция", i, * "Путь", path); */ ShowMessage("Ошибка формата потока. Лишняя закрывающая скобка }. Позиция " + i + ", Путь " + path); ret = null; return(null); } break; default: /* * if (msreg) msreg->AddError("Ошибка формата потока. Ошибочный символ в режиме ожидания разделителя.", * "Символ", sym, * "Код символа", tohex(sym), * "Путь", path); */ ShowMessage("Ошибка формата потока. Ошибочный символ в режиме ожидания разделителя. Символ " + sym + ", Код символа " + sym.ToString() + ", Путь " + path); ret = null; return(null); } break; case _state.s_string: if (sym == '"') { state = _state.s_quote_or_endstring; } else { __curvalue__.Append(sym); } break; case _state.s_quote_or_endstring: if (sym == '"') { __curvalue__.Append(sym); state = _state.s_string; } else { t.AddChild(__curvalue__.ToString(), Node_Type.nd_string); switch (sym) { case ' ': // space case '\t': case '\r': case '\n': state = _state.s_delimitier; break; case ',': state = _state.s_value; break; case '}': t = t.Get_Parent(); if (t == null) { /* * if (msreg) msreg->AddError("Ошибка формата потока. Лишняя закрывающая скобка }.", * "Позиция", i, * "Путь", path); */ ShowMessage("Ошибка формата потока. Лишняя закрывающая скобка }. Позиция " + i.ToString() + ", Путь " + path); ret = null; return(null); } state = _state.s_delimitier; break; default: /* * if (msreg) msreg->AddError("Ошибка формата потока. Ошибочный символ в режиме ожидания разделителя.", * "Символ", sym, * "Код символа", tohex(sym), * "Путь", path); */ ShowMessage("Ошибка формата потока. Ошибочный символ в режиме ожидания разделителя. Символ " + sym + ", Код символа " + sym.ToString() + ", Путь " + path); ret = null; return(null); } } break; case _state.s_nonstring: switch (sym) { case ',': curvalue = __curvalue__.ToString(); nt = ClassificationValue(curvalue); if (nt == Node_Type.nd_unknown) { /* * if (msreg) msreg->AddError("Ошибка формата потока. Неизвестный тип значения.", * "Значение", curvalue, * "Путь", path); */ ShowMessage("Ошибка формата потока. Неизвестный тип значения. Значение " + curvalue + ", Путь " + path); } t.AddChild(curvalue, nt); state = _state.s_value; break; case '}': curvalue = __curvalue__.ToString(); nt = ClassificationValue(curvalue); if (nt == Node_Type.nd_unknown) { //if (msreg) msreg->AddError("Ошибка формата потока. Неизвестный тип значения.", "Значение", curvalue, "Путь", path); ShowMessage("Ошибка формата потока. Неизвестный тип значения. Значение " + curvalue + ", Путь " + path); } t.AddChild(curvalue, nt); t = t.Get_Parent(); if (t == null) { /* * if (msreg) msreg->AddError("Ошибка формата потока. Лишняя закрывающая скобка }.", * "Позиция", i, * "Путь", path); */ ShowMessage("Ошибка формата потока. Лишняя закрывающая скобка. Позиция " + i.ToString() + ", Путь " + path); ret = null; return(null); } state = _state.s_delimitier; break; default: __curvalue__.Append(sym); break; } break; default: /* * if (msreg) msreg->AddError("Ошибка формата потока. Неизвестный режим разбора.", * "Режим разбора", tohex(state), * "Путь", path); */ ShowMessage("Ошибка формата потока. Неизвестный режим разбора. Режим разбора " + state.ToString() + ", Путь " + path); ret = null; return(null); } } if (state == _state.s_nonstring) { curvalue = __curvalue__.ToString(); nt = ClassificationValue(curvalue); if (nt == Node_Type.nd_unknown) { /* * if (msreg) msreg->AddError("Ошибка формата потока. Неизвестный тип значения.", * "Значение", curvalue, * "Путь", path); */ ShowMessage("Ошибка формата потока. Неизвестный тип значения. Значение: " + curvalue + ", Путь " + path); } t.AddChild(curvalue, nt); } else if (state == _state.s_quote_or_endstring) { t.AddChild(__curvalue__.ToString(), Node_Type.nd_string); } else if (state != _state.s_delimitier) { /* * if (msreg) msreg->AddError("Ошибка формата потока. Незавершенное значение", * "Режим разбора", tohex(state), * "Путь", path); */ ShowMessage("Ошибка формата потока. Незавершенное значение. Режим разбора: " + state.ToString() + ", Путь " + path); ret = null; return(null); } if (t != ret) { /* * if (msreg) msreg->AddError("Ошибка формата потока. Не хватает закрывающих скобок } в конце текста разбора.", * "Путь", path); */ ShowMessage("Ошибка формата потока. Не хватает закрывающих скобок в конце текста разбора, путь " + path); ret = null; return(null); } return(ret); } // End parse_1Ctext
public static Tree Parse_1Cstream(Stream str, string err, string path) { StringBuilder __curvalue__ = new StringBuilder(""); string curvalue = ""; _state state = _state.s_value; int i = 0; Char sym = '0'; int _sym = 0; Node_Type nt = Node_Type.nd_unknown; Tree ret = new Tree("", Node_Type.nd_list, null); Tree t = ret; //StreamReader reader = new StreamReader(str, true); StreamReader reader = new StreamReader(str, Encoding.ASCII, true); // т.к. файл в кодировке win1251 for (i = 1, _sym = reader.Read(); _sym >= 0; i++, _sym = reader.Read()) { sym = (Char)_sym; //if(i % 0x100000 == 0) if(err) err->Status(String(i/0x100000) + L" MB"); switch (state) { case _state.s_value: switch (sym) { case ' ': // space case '\t': case '\r': case '\n': break; case '"': __curvalue__.Clear(); state = _state.s_string; break; case '{': t = new Tree("", Node_Type.nd_list, t); break; case '}': if (t.Get_First() != null) { t.AddChild("", Node_Type.nd_empty); } t = t.Get_Parent(); //if (t != null) if (t is null) { // Ошибка формата потока. Лишняя закрывающая скобка }. ShowMessage("Ошибка формата потока. Лишняя закрывающая скобка }"); ret = null; return(null); } state = _state.s_delimitier; break; case ',': t.AddChild("", Node_Type.nd_empty); break; default: __curvalue__.Clear(); __curvalue__.Append(sym); state = _state.s_nonstring; break; } break; case _state.s_delimitier: switch (sym) { case ' ': // space case '\t': case '\r': case '\n': break; case ',': state = _state.s_value; break; case '}': t = t.Get_Parent(); //if (t != null) if (t is null) { // Ошибка формата потока. Лишняя закрывающая скобка }. ShowMessage("Ошибка формата потока. Лишняя закрывающая скобка }"); ret = null; return(null); } //state = _state.s_delimitier; break; default: // Ошибка формата потока. Ошибочный символ в режиме ожидания разделителя. ShowMessage("Ошибка формата потока. Ошибочный символ в режиме ожидания разделителя."); __curvalue__.Clear(); __curvalue__.Append(sym); ret = null; return(null); } break; case _state.s_string: if (sym == '"') { state = _state.s_quote_or_endstring; } else { __curvalue__.Append(sym); } break; case _state.s_quote_or_endstring: if (sym == '"') { __curvalue__.Append(sym); state = _state.s_string; } else { t.AddChild(__curvalue__.ToString(), Node_Type.nd_string); switch (sym) { case ' ': case '\t': case '\r': case '\n': state = _state.s_delimitier; break; case ',': state = _state.s_value; break; case '}': t = t.Get_Parent(); //if (t != null) if (t is null) { // Ошибка формата потока. Лишняя закрывающая скобка }. ShowMessage("Ошибка формата потока. Лишняя закрывающая скобка }."); ret = null; return(null); } state = _state.s_delimitier; break; default: // Ошибка формата потока. Ошибочный символ в режиме ожидания разделителя. ShowMessage("Ошибка формата потока. Ошибочный символ в режиме ожидания разделителя."); ret = null; return(null); } } break; case _state.s_nonstring: switch (sym) { case ',': curvalue = __curvalue__.ToString(); nt = ClassificationValue(curvalue); if (nt == Node_Type.nd_unknown) { // Ошибка формата потока. Неизвестный тип значения. ShowMessage("Ошибка формата потока. Неизвестный тип значения."); } t.AddChild(curvalue, nt); state = _state.s_value; break; case '}': curvalue = __curvalue__.ToString(); nt = ClassificationValue(curvalue); if (nt == Node_Type.nd_unknown) { // Ошибка формата потока. Неизвестный тип значения. ShowMessage("Ошибка формата потока. Неизвестный тип значения."); } t.AddChild(curvalue, nt); t = t.Get_Parent(); //if (t != null) if (t is null) { // Ошибка формата потока. Лишняя закрывающая скобка }. ShowMessage("Ошибка формата потока. Лишняя закрывающая скобка }."); ret = null; return(null); } state = _state.s_delimitier; break; default: __curvalue__.Append(sym); break; } break; default: if (1 != 1) { // Ошибка формата потока. Неизвестный режим разбора. ShowMessage("Ошибка формата потока. Неизвестный режим разбора."); } ret = null; return(null); } } // end of for if (state == _state.s_nonstring) { curvalue = __curvalue__.ToString(); nt = ClassificationValue(curvalue); if (nt == Node_Type.nd_unknown) { // Ошибка формата потока. Неизвестный тип значения. ShowMessage("Ошибка формата потока. Неизвестный тип значения."); } t.AddChild(curvalue, nt); } if (state == _state.s_quote_or_endstring) { t.AddChild(__curvalue__.ToString(), Node_Type.nd_string); } if (state != _state.s_delimitier) { ret = null; return(null); } if (t != ret) { // Ошибка формата потока. Не хватает закрывающих скобок } в конце текста разбора. ShowMessage("Ошибка формата потока. Не хватает закрывающих скобок } в конце текста разбора. "); ret = null; return(null); } return(ret); } // end of parce of tree
void MoveUnit() { float xSpeed; float ySpeed; xSpeed = 0; ySpeed = 0; if (deltaX > 0) { xSpeed = speed * Time.deltaTime; deltaX -= xSpeed; if (deltaX < 0) { xSpeed = deltaX; deltaX = 0; } } else if (deltaX < 0) { xSpeed = speed * Time.deltaTime * -1; deltaX -= xSpeed; if (deltaX > 0) { xSpeed = -deltaX; deltaX = 0; } } if (deltaY > 0) { ySpeed = speed * Time.deltaTime; deltaY -= ySpeed; if (deltaY < 0) { ySpeed = deltaY; deltaY = 0; } } else if (deltaY < 0) { ySpeed = speed * Time.deltaTime * -1; deltaY -= ySpeed; if (deltaY > 0) { ySpeed = -deltaY; deltaY = 0; } } //Debug.Log(xSpeed + ":" + ySpeed + "> <" + deltaX + ":" + deltaY); if ((deltaX == 0) && (deltaY == 0)) { curTile = moveTile; NextState = _state.Idle; State = NextState; world.GetComponent <WorldController>().UnitAI((int)curTile.y, (int)curTile.x); } transform.position = new Vector3(transform.position.x + xSpeed, transform.position.y + ySpeed, transform.position.z); }
void Update() { // Instantiate the health bars if ((HpLeftBar == null) && (BarEmptyLeft != null)) { HpLeftBar = Instantiate(BarEmptyLeft, HpBarPos, Quaternion.identity) as GameObject; HpMidBar = Instantiate(BarEmptyMid, HpBarPos + new Vector3(0.3f * transform.localScale.x, 0, 0), Quaternion.identity) as GameObject; HpRightBar = Instantiate(BarEmptyRight, HpBarPos + new Vector3(0.6f * transform.localScale.x, 0, 0), Quaternion.identity) as GameObject; HpBarFill = Instantiate(HpBarColor, HpBarPos + new Vector3(0.3f * transform.localScale.x, 0, 0), Quaternion.identity) as GameObject; HpBarFill.transform.localScale = new Vector3(HpBarMidScale, 0.4f * transform.localScale.x, 1); // Make the health bars follow the unit HpLeftBar.transform.parent = transform; HpMidBar.transform.parent = transform; HpRightBar.transform.parent = transform; HpBarFill.transform.parent = transform; } // Don't update the unit until the animation has been changed if (NextState != State) { if ((GetComponent <UnitAnimation>() != null) && (GetComponent <UnitAnimation>().isAnimationChanged() == true)) { State = NextState; } else { return; } } if (paused) { return; } // Apply unit regen if (regenRate > 0) { if (nextRegenTick < Time.time) { if (health < getStats().maxHealth) { health += regenRate; if (health > getStats().maxHealth) { health = getStats().maxHealth; } updateHealthBars(); nextRegenTick = Time.time + 1; } } } switch (State) { case _state.Idle: this.SendMessage("SetDirection", idleDir, SendMessageOptions.DontRequireReceiver); this.SendMessage("SetAction", UnitAnimation._action.Idle, SendMessageOptions.DontRequireReceiver); this.SendMessage("StartAnimation", null, SendMessageOptions.DontRequireReceiver); break; case _state.SetupMove: SetupMoveUnit(); break; case _state.Move: MoveUnit(); break; case _state.Advance: break; case _state.Attacking: AttackUnit(); break; case _state.Engage: EngageUnit(); break; case _state.Dead: DeadUnit(); break; } }
//public void ShowPauseButton() //{ // if (!pauseButton) // { // pauseButton = GameObject.Instantiate(pauseButtonPrefab); // } // pauseButton.SetActive(true); //} public void IntroOnClick() { SceneManager.LoadScene(1); gameState = _state.world; }
private void arduino_admin_func(Object source, ElapsedEventArgs e) { if (arduino_serial != null) { if (!arduino_serial.IsOpen) { state = _state.DISCONNECTED; } } admin_clock++; if (arduino_serial.IsOpen) { if (arduino_serial.BytesToRead > 0) { this.serial_data_received(null, null); } } switch (state) { case _state.DISCONNECTED: /*if (arduino_serial.IsOpen) * { * state = _state.INITIALIZING; * return; * }*/ /*if (!comboBox1.InvokeRequired) * { * String[] ports = SerialPort.GetPortNames(); * if (this.actual_ports.Length == 255) * { * foreach (String port in ports) * comboBox1.Items.Add(port); * comboBox1.Refresh(); * } * else if (!this.actual_ports.SequenceEqual(ports)) * { * comboBox1.Items.Clear(); * foreach (String port in ports) * comboBox1.Items.Add(port); * comboBox1.Refresh(); * } * this.actual_ports = ports; * }*/ break; case _state.INITIALIZING: switch (state_init) { case _state_init.NOT_READY: if (command_valid) { state_init++; command_valid = false; command_timeout = 0; command_checker = ""; return; } if (command_checker == "" || admin_clock > command_timeout) { //Console.WriteLine("ReadyPc"); arduino_serial.WriteLine("ReadyPc"); command_checker = "ReadyAr"; command_timeout = admin_clock + 10; calibrate_counter = 0; } break; case _state_init.GETTING_DATA: if (command_valid) { calibrate_counter++; //motors[0].position = ((motors[0].position * (calibrate_counter - 1)) + values_received[0])/ calibrate_counter; //motors[1].position = ((motors[1].position * (calibrate_counter - 1)) + values_received[1]) / calibrate_counter; motors[0].position = values_received[0]; motors[1].position = values_received[1]; if (calibrate_counter > 128) { motors[0].setpoint = motors[0].position; motors[1].setpoint = motors[1].position; state_init++; } command_valid = false; command_timeout = 0; command_checker = ""; } if (command_checker == "" || admin_clock > command_timeout) { arduino_serial.WriteLine("GetData"); command_checker = "SendData"; command_timeout = admin_clock + 10; } break; case _state_init.DATA_READY: if (command_valid) { state++; command_valid = false; command_timeout = 0; command_checker = ""; return; } if (command_checker == "" || admin_clock > command_timeout) { arduino_serial.WriteLine("DataSetup"); command_checker = "ArduinoSetup"; command_timeout = admin_clock + 10; } break; } break; case _state.CONTROLLING: if (command_valid) { if (command_checker.Equals("SetpointSetted")) { motors[0].position = values_received[0]; motors[1].position = values_received[1]; } else if (command_checker.Equals("BrakeSetted")) { if (motors[0].brake != values_received[0] || motors[1].brake != values_received[1]) { ; } } else if (command_checker.Equals("HomeSetted")) { if (motors[0].home != values_received[0] || motors[1].home != values_received[1]) { ; } } command_valid = false; command_timeout = 0; command_checker = ""; return; } if (command_checker == "" || admin_clock > command_timeout) { switch (state_ctrl) { case _state_ctrl.CONTROLLING: arduino_serial.WriteLine(String.Format("Controlling({0},{1})", motors[0].setpoint, motors[1].setpoint)); command_checker = "SetpointSetted"; break; case _state_ctrl.SETBRAKE: arduino_serial.WriteLine(String.Format("setbrake({0},{1})", motors[0].brake, motors[1].brake)); command_checker = "BrakeSetted"; state_ctrl = _state_ctrl.CONTROLLING; break; case _state_ctrl.SETHOME: arduino_serial.WriteLine(String.Format("sethome({0},{1})", motors[0].home, motors[1].home)); command_checker = "HomeSetted"; state_ctrl = _state_ctrl.CONTROLLING; break; } } break; case _state.HOMMING_LOCK: if (command_checker == "" || admin_clock > command_timeout) { arduino_serial.WriteLine("TesteIno"); command_checker = "InoCtrl"; command_timeout += admin_clock + 10; } break; } }
public void notReady() { this.state = _state.beforeStart; buttonA.notReady(); buttonB.notReady(); }
private void DetectGroundHit() { transform.position += delta * Time.deltaTime; delta.y -= gravity * Time.deltaTime; RaycastHit fallingHitinfo; if(Physics.Raycast(new Ray(transform.position, Vector3.down), out fallingHitinfo)) { if(fallingHitinfo.collider.gameObject.layer == LayerMask.NameToLayer("Terrain")) { if(fallingHitinfo.distance < 0.2f){ state = _state.OnGround; transform.position = fallingHitinfo.point; return; } } } }
public void Reset() { transform.position = spawnPos; state = _state.OnGround; }
set => SetProperty(ref _state, value);
void Attack() { NextState = _state.Attacking; }