public override CheckOutput ExecuteCheck(Excel.Worksheet ws, DefinedNames nomiDefiniti, CheckObj check) { _ws = ws; _nomiDefiniti = nomiDefiniti; _check = check; CheckOutput n = new CheckOutput(); switch (check.Type) { case 1: n = CheckFunc1(); break; case 2: n = CheckFunc2(); break; case 3: n = CheckFunc3(); break; case 4: n = CheckFunc4(); break; case 5: n = CheckFunc5(); break; } return(n); }
public override CheckOutput ExecuteCheck(Excel.Worksheet ws, DefinedNames definedNames, CheckObj check) { _ws = ws; _nomiDefiniti = definedNames; _check = check; return(CheckFunc1()); }
public void OnDataChange(DataSnapshot snapshot) { foreach (DataSnapshot child in snapshot.Children.ToEnumerable()) { CheckObj checkIn = (CheckObj)child; AccountService.checkIns.Add(checkIn); Console.WriteLine($"Acct: {AccountService.checkIns}"); } }
public override CheckOutput ExecuteCheck(Excel.Worksheet ws, DefinedNames definedNames, CheckObj check) { _ws = ws; _nomiDefiniti = definedNames; _check = check; CheckOutput n = new CheckOutput(); switch (check.Type) { case 1: n = CheckFunc1(); break; } return(n); }
public override CheckOutput ExecuteCheck(Excel.Worksheet ws, DefinedNames definedNames, CheckObj check) { //Funzione che non centra nulla con i check ma che permette di effettuare il refresh del riepilogo ad ogni azioni che può modificarlo. Aggiorna aggiorna = new Aggiorna(); aggiorna.AggiornaPrevisioneRiepilogo(); return(new CheckOutput()); }
void FixedUpdate() { // 如果剧本正在进行则退出 if (MapCamera.SuspensionDrama && walkTasks.Count == 0 && Controller) { adjustableTrigger.GetComponent <Collider2D>().isTrigger = true; return; } // 是否正在执行行走任务? bool isWalkTask = (walkTasks.Count > 0); Vector3 pos = transform.localPosition; // 如果有行走任务 if (isWalkTask) { walkTask wt = walkTasks.referencePeek; // 如果坐标尚未初始化 if (!wt.isCalculated) { wt.Caculate(pos); } // 决定是否修正行走坐标(完成行走) bool isFix = false; if (wt.x < pos.x) { Move(-1, 0); if (wt.x >= transform.localPosition.x) { isFix = true; } } else if (wt.x > pos.x) { Move(1, 0); if (wt.x <= transform.localPosition.x) { isFix = true; } } else if (wt.y < pos.y) { Move(0, -1); if (wt.y >= transform.localPosition.y) { isFix = true; } } else if (wt.y > pos.y) { Move(0, 1); if (wt.y <= transform.localPosition.y) { isFix = true; } } if (!Controller) { UploadWalk(); } // 修正坐标 if (isFix) { Debug.Log("Walktask: " + (walkTasks.Count - 1) + " remaining..."); FixPos(); //transform.localPosition = new Vector3(wt.x,wt.y,pos.z); walkTasks.Dequeue(); if (walkTasks.Count == 0) { if (tMode) { Debug.Log("Walktask: tasks for Pathfinding is done."); tMode = false; MoveArrow.SetActive(false); } else { Debug.Log("Walktask: tasks for Drama Script is done."); walkTaskCallback(); } walking = false; UploadWalk(); } } } // 如果不是玩家 if (!Controller) { return; } bool isKeyboard = false; // 判定调查 Vector2 spyRay = new Vector2(pos.x, pos.y); if (dir == walkDir.Left) { spyRay.x -= 0.96f; } else if (dir == walkDir.Right) { spyRay.x += 0.96f; } else if (dir == walkDir.Up) { spyRay.y += 0.96f; } else { spyRay.y -= 0.96f; } CheckObj checkObj = null; foreach (RaycastHit2D crash in Physics2D.RaycastAll(spyRay, new Vector2(0, 0))) { if (crash.collider.gameObject.TryGetComponent <CheckObj>(out checkObj)) { if (MapCamera.HitCheck != checkObj.gameObject) { checkObj.CheckEncounter(); } break; } } if (checkObj == null && MapCamera.HitCheck != null) { MapCamera.HitCheck.GetComponent <CheckObj>().CheckGoodbye(); } // 如果屏幕被点击 if (Input.GetMouseButton(0)) { if (freeTouchTick < 0.5f) { if (freeTouchTick < 0.2f && (!isWalkTask || tMode)) { Vector3 mpos = MapCamera.mcamera.GetComponent <Camera>().ScreenToWorldPoint(Input.mousePosition); foreach (RaycastHit2D hit in Physics2D.RaycastAll(new Vector2(mpos.x, mpos.y), new Vector2(0, 0))) { if (hit.collider.gameObject.name == "MovePad") { Animator padAni = Pad.transform.parent.GetComponent <Animator>(); padAni.SetFloat("speed", 1.0f); padAni.Play("MovePad", 0, 0f); Debug.Log("Freemove OK!:" + this.gameObject.name); freeTouchTick = 1f; } } if (freeTouchTick < 0.2f) { Debug.Log("Freemove Failed!:" + this.gameObject.name); freeTouchTick = 0.3f; } } } else { // 从屏幕坐标换算到世界坐标 Vector3 mpos = Input.mousePosition; // 测算 float xp = mpos.x - srcClickPos.x, yp = mpos.y - srcClickPos.y; float xpro = Mathf.Abs(xp) / 30, ypro = Mathf.Abs(yp) / 30; if (xpro > 1) { xpro = 1; } if (ypro > 1) { ypro = 1; } if (xRemain == 0 && yRemain == 0 && (xpro == 1 || ypro == 1)) { if (Mathf.Abs(xp) > Mathf.Abs(yp)) { xRemain = 1.02f * (xp > 0 ? 1 : -1); firstFreeMove = true; isKeyboard = true; targetRotation = (xp > 0 ? 270f : 90f); } else { yRemain = 1.02f * (yp > 0 ? 1 : -1); firstFreeMove = true; isKeyboard = true; targetRotation = (yp > 0 ? 0f : 180f); } } float ro = Pad.eulerAngles.z + (targetRotation - Pad.eulerAngles.z) / 5; Pad.eulerAngles = new Vector3(0, 0, ro); } } if (Input.GetMouseButtonUp(0)) { if (!isWalkTask && freeTouchTick < 0.5f && xRemain == 0 && yRemain == 0) { Debug.Log("Occured pathfinding:" + this.gameObject.name); // 必要:开启tMode,将寻路WalkTask与DramaScript的WalkTask区别开来 tMode = true; walkTasks.Clear(); // 从屏幕坐标换算到世界坐标 Vector3 mpos = MapCamera.mcamera.GetComponent <Camera>().ScreenToWorldPoint(Input.mousePosition); mpos.z = 0; // 检查是否点击的是UI而不是地板 if (EventSystem.current.IsPointerOverGameObject()) { return; } // 格式化坐标 mpos.x = Mathf.Floor(mpos.x / 0.96f) * 0.96f + 0.48f - 0.06f; mpos.y = Mathf.Ceil(mpos.y / 0.96f) * 0.96f - 0.48f; // 设置点击反馈 MoveArrow.transform.localPosition = mpos; MoveArrow.SetActive(true); // 设置walkTask保险 lpos = new Vector2(0, 0); lposCount = 3; //prepare for Event to TRayMapBuilder dataBridge.EnqueueTask(bridgeTaskbuilderOMP.BuildProduct(this, mpos)); freeTouchTick = 0; Pad.localPosition = srcPadPos; goto skipKeyboard; } Animator padAni = Pad.transform.parent.GetComponent <Animator>(); padAni.SetFloat("speed", -2.0f); padAni.Play("MovePad", 0, 1f); freeTouchTick = 0; Pad.localPosition = srcPadPos; } // 检测键盘输入 if ((!isWalkTask || tMode) && xRemain == 0 && yRemain == 0) { if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)) { xRemain = -1.02f; firstFreeMove = true; isKeyboard = true; } else if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)) { xRemain = 1.02f; firstFreeMove = true; isKeyboard = true; } else if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow)) { yRemain = 1.02f; firstFreeMove = true; isKeyboard = true; } else if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow)) { yRemain = -1.02f; firstFreeMove = true; isKeyboard = true; } } // 自由移动 if (xRemain != 0 || yRemain != 0) { int xDir = xRemain < 0 ? -1 : 1, yDir = yRemain < 0 ? -1 : 1; if (xRemain == 0) { xDir = 0; } if (yRemain == 0) { yDir = 0; } if (firstFreeMove) { Collider2D crash = Physics2D.Raycast(new Vector2(pos.x + xDir, pos.y + yDir), new Vector2(0, 0)).collider; if (crash != null) { if (!crash.isTrigger) { if (xDir != 0) { dir = xDir < 0 ? walkDir.Left : walkDir.Right; } if (yDir != 0) { dir = yDir < 0 ? walkDir.Down : walkDir.Up; } walking = true; xRemain = 0; yRemain = 0; } } firstFreeMove = false; } if (xRemain != 0) { xRemain -= Move(xDir, 0); if ((xRemain < 0 ? -1 : 1) != xDir) { FixPos(); walking = true; if (freeTouchTick == 0) { MoveArrow.SetActive(false); } xRemain = 0; } } if (yRemain != 0) { yRemain -= Move(0, yDir); if ((yRemain < 0 ? -1 : 1) != yDir) { FixPos(); walking = true; if (freeTouchTick == 0) { MoveArrow.SetActive(false); } yRemain = 0; } } } skipKeyboard: if (Controller && adjustableTrigger != null) { adjustableTrigger.GetComponent <Collider2D>().isTrigger = !isKeyboard; } // 仅打断寻路task(tMode),不打断DramaScript的task if (lpos.x == pos.x && lpos.y == pos.y && isWalkTask && tMode) { lposCount--; } if (lposCount == 0 && isWalkTask && tMode) { Debug.Log("Walktask: tasks for Pathfinding is broke."); walking = false; UploadWalk(); walkTasks.Clear(); tMode = false; MoveArrow.SetActive(false); } lpos = pos; // 更新图片 UploadWalk(); }