public ObjectEventSystem(Level curLevelPointer) { this.curLevelPointer = curLevelPointer; ///TODO: temporally SegmentContent[,] matrix = curLevelPointer.map.curSegMatrix; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (matrix[i, j].field == null) { continue; } for (int y = 0; y < matrix[i, j].field.Count; y++) { for (int x = 0; x < matrix[i, j].field[y].Count; x++) { List <BaseObject> list = matrix[i, j].field[y][x]; for (int k = 0; k < list.Count; k++) { if (GlobalData.getObjectTypeById(list[k].id) == 1) { ObjectEventSequence sequence = new ObjectEventSequence(); sequence.addEvent("behaviour", new object[] { list[k] }); addSequence(sequence, 0); } } } } } } /// }
public void baseAI() //temporarily { ObjectEventSequence sequence = new ObjectEventSequence(); for (int i = 0; i < 100; i++) //temporarily { int dir = random.Next(8); if (isPathPossible(dir8[dir])) { sequence.addEvent("step", new object[] { dir8[dir], this }); break; } } sequence.addEvent("behaviour", new object[] { this }); adr.levelPointer.eventSystem.addSequence(sequence, 1); adr.levelPointer.eventSystem.isExecutionAvailable = true; }
private void Update() { for (int i = 0; i < dirButtons.Length; i++) { if (Input.GetButtonDown(dirButtons[i])) { arrow[i] = true; } } for (int i = 0; i < dirButtons.Length; i++) { if (Input.GetButtonUp(dirButtons[i])) { remainder[i] = delay; } } int dt = (int)(Time.deltaTime * 1000); for (int i = 0; i < dirButtons.Length; i++) { if (remainder[i] > 0) { remainder[i] -= dt; if (remainder[i] <= 0) { arrow[i] = false; } } } Pair <int, int> moveVector = new Pair <int, int>(); if (arrow[0]) { moveVector.second = 1; } if (arrow[1]) { moveVector.second -= 1; } if (arrow[3]) { moveVector.first = 1; } if (arrow[2]) { moveVector.first -= 1; } bool way = curUnitPointer.isPathPossible(moveVector); if (moveVector.Equals(new Pair <int, int>(0, 0))) { arrowObject.SetActive(false); } else { int curArrowX = (curUnitPointer.adr.worldX + moveVector.first) * 24; int curArrowY = (curUnitPointer.adr.worldY + moveVector.second) * 24; arrowObject.transform.position = new Vector2(curArrowX, curArrowY); setEnable(way); arrowObject.SetActive(true); } for (int i = 0; i < dirButtons.Length; i++) { if (Input.GetButton(dirButtons[i])) { return; } } for (int i = 0; i < dirButtons.Length; i++) { arrow[i] = false; remainder[i] = 0; } if (way && !moveVector.Equals(new Pair <int, int>(0, 0))) { gameObject.SetActive(false); arrowObject.SetActive(false); ObjectEventSequence sequence = new ObjectEventSequence(); sequence.addEvent("step", new object[] { moveVector, curUnitPointer }); sequence.addEvent("behaviour", new object[] { curUnitPointer }); curUnitPointer.adr.levelPointer.eventSystem.addSequence(sequence, 1); curUnitPointer.adr.levelPointer.eventSystem.isExecutionAvailable = true; } }