void Start() { computer = GetComponent <VirtualComputer>(); programs = computer.ProgramManager; stream = new SerialPort(portname, 9600); try { stream.Open(); //Open the Serial Stream. } catch (Exception ex) { Debug.Log("Error opening NFC Reader: " + ex.Message.ToString()); } stream.ReadTimeout = 20; }
void Update() { if (Input.GetKeyDown(KeyCode.R)) { Restart(); } if (Input.GetKeyDown(KeyCode.Space)) { computer.SetActive(true); editor.SetActive(true); player.gameObject.SetActive(false); } if (computer.activeSelf) { if (Input.GetKeyDown(KeyCode.C) && (Input.GetKey(KeyCode.LeftControl)))//|| Input.GetKey (KeyCode.LeftCommand))) { computer.SetActive(false); player.gameObject.SetActive(true); } } guards = FindObjectsOfType <HackingEnemy>(); if (!active && player.transform.position.z > -3) { active = true; turret.active = true; foreach (var e in guards) { e.active = true; } } if (active && player != null) { string code = (useTestSolution) ? testCodeSolution.text : testCodeInitial.text; code = editor.code; VirtualCompiler compiler = new VirtualCompiler(code); VirtualComputer cc = computer.GetComponent <VirtualComputer>(); cc.availableModules[0] = turret; compiler.vComputer = cc; float[] guardSpeed = new float[guards.Length]; float[] guardPosX = new float[guards.Length]; float[] guardPosY = new float[guards.Length]; float[] guardDirX = new float[guards.Length]; float[] guardDirY = new float[guards.Length]; for (int i = 0; i < guards.Length; i++) { guardSpeed[i] = guards[i].speed; guardPosX[i] = guards[i].transform.position.x; guardPosY[i] = guards[i].transform.position.z; guardDirX[i] = guards[i].transform.forward.x; guardDirY[i] = guards[i].transform.forward.y; } compiler.AddInputArray(nameof(guardSpeed), guardSpeed); compiler.AddInputArray(nameof(guardPosX), guardPosX); compiler.AddInputArray(nameof(guardPosY), guardPosY); compiler.AddInputArray(nameof(guardDirX), guardDirX); compiler.AddInputArray(nameof(guardDirY), guardDirY); compiler.AddInput("numGuards", guards.Length); compiler.AddInput("intruderPosX", player.transform.position.x); compiler.AddInput("intruderPosY", player.transform.position.z); compiler.AddInput("intruderDirX", player.dir.x); compiler.AddInput("intruderDirY", player.dir.y); compiler.AddInput("intruderSpeed", player.speed); compiler.AddInput("missileSpeed", turret.missilePrefab.speed); compiler.AddInput("turretPosX", turret.muzzle.position.x); compiler.AddInput("turretPosY", turret.muzzle.position.z); compiler.AddInput("turretHeight", turret.muzzle.position.y); compiler.AddOutputFunction("setAim"); compiler.AddOutputFunction("powerUp"); compiler.AddOutputFunction("setInactive"); List <VirtualFunction> output = compiler.Run(); ExecuteFunctions(output); //OLD /*if (output.Count > 0) * { * float aimX = output[1].values[0]; * float aimY = output[1].values[1]; * turret.setAim(aimX, aimY); * }*/ } }
public void RemoveComputer(VirtualComputer _virtualcomputer) { Virtualcomputers.Remove(_virtualcomputer); }
public void AddComputer(VirtualComputer _virtualcomputer) { Virtualcomputers.Add(_virtualcomputer); }