private void RandomWalk() { int direction = Random.Range(0, 4); MoveScripts.Direction nextDirection = (MoveScripts.Direction)direction; move.NPCmove(nextDirection); }
public void NPCmove(MoveScripts.Direction _direction) { /* * centerPosition = new Vector3(transform.position.x + 0.5f, transform.position.y - 0.5f, transform.position.z); * SetFacingDirectionLogic(_direction); * input = MoveScripts.GetVector2FromDirection(_direction); * checkPoint = new Vector2(centerPosition.x+input.x, centerPosition.y+input.y); * hit = Physics2D.OverlapArea(checkPoint,checkPoint); * moveDetection.StartDetection(hits, lookDirection); * * Debug.Log("Got Here!"); * //MoveScripts.CheckForTag(this.gameObject, hit, "Player") * if (moveDetection.CanPhysicallyMove()) * { * Debug.Log("Got Here! 2"); * * } */ SetFacingDirectionLogic(_direction); input = MoveScripts.GetVector2FromDirection(_direction); if (CanMoveInDirection(_direction)) { moveSpeedCurrent = moveSpeed / 2; SetFacingDirection(input); StartCoroutine(move(transform)); } }
public int getDirectionStartIndex(MoveScripts.Direction direction) { int directionValue = 0; if (fourDirectional) { switch (direction) { case MoveScripts.Direction.North: directionValue = 1; break; case MoveScripts.Direction.South: directionValue = 0; break; case MoveScripts.Direction.East: directionValue = 2; break; case MoveScripts.Direction.West: directionValue = 3; break; } } else if (twoDirectional) { switch (direction) { case MoveScripts.Direction.North: directionValue = 1; break; case MoveScripts.Direction.South: directionValue = 0; break; case MoveScripts.Direction.East: directionValue = 0; break; case MoveScripts.Direction.West: directionValue = 1; break; } } return(directionValue * spritesPerDirection); }
public int GetAnimationIndex(string type, MoveScripts.Direction direction, float time) { Animation animation = GetAnimation(type); int result = animation.getDirectionStartIndex(direction); float modulo = animation.getModulo(time); result += (int)(modulo / animation.iterateTime); return(result); }
public bool CanMoveInDirection(MoveScripts.Direction _direction) { Vector2 _input = MoveScripts.GetVector2FromDirection(_direction); checkPoint = new Vector2(centerPosition.x + _input.x, centerPosition.y + _input.y); hits = Physics2D.OverlapAreaAll(checkPoint, checkPoint); moveDetection.StartDetection(hits, _direction); moveDetection.DEBUG_PrintColliders(); if (moveDetection.CanPhysicallyMove()) { Debug.Log("Successful Move Opportunity"); return(true); } else { Debug.Log("Blocked Opportunity"); return(false); } }
public void StartDetection(Collider2D[] hit, MoveScripts.Direction direction) { inGrass = false; inDoor = false; inShop = false; inCutscene = false; moveDirection = direction; colliderInfos = new List <ColliderInfo>(); foreach (Collider2D c in hit) { colliderInfos.Add(new ColliderInfo(c.gameObject)); } foreach (ColliderInfo ci in colliderInfos) { switch (ci.tag) { default: break; case "ShopKeeper": inShop = true; shopObject = ci.gameObject; break; case "Grass": inGrass = true; grassObject = ci.gameObject; break; case "Door": inDoor = true; doorObject = ci.gameObject; break; case "Cutscene": inCutscene = true; cutsceneObject = ci.gameObject; break; } } }
public void NewOverworldAt(string location, Vector3 position, MoveScripts.Direction direction, bool moving = false, bool openState = true) { loadEntrance = true; loadPosition = position; loadDirection = direction; loadMoving = moving; if (sr.playerLogic != null) { loadAnimTime = sr.playerLogic.move.animTime; } else { loadAnimTime = 0f; } if (openState) { sr.canvasCollection.OpenState(CanvasCollection.UIState.SceneSwitch); } Debug.Log("Loading Scene: " + location); LoadNextScene(location); }
public void SetFacingDirectionLogic(MoveScripts.Direction newDirection) { lookDirection = newDirection; SetFacingDirection(MoveScripts.GetVector2FromDirection(lookDirection)); }
public void Update() { centerPosition = new Vector3(transform.position.x + 0.5f, transform.position.y - 0.5f, transform.position.z); switch (logicType) { default: break; case LogicType.Player: if (!isMoving) { if (playerInputAccepted) { thisDirectInput = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical")); input = MoveScripts.DigitizeInput(thisDirectInput, lastDirectInput, input); lastDirectInput = thisDirectInput; } animMoving = false; if (input != Vector2.zero && ableToMove) { factor = 1f; last = input; Vector3 checkPoint1 = new Vector2(centerPosition.x + input.x + 0.25f, centerPosition.y + input.y + 0.25f); Vector3 checkPoint2 = new Vector2(centerPosition.x + input.x - 0.25f, centerPosition.y + input.y - 0.25f); lookDirection = MoveScripts.GetDirectionFromVector2(input); hits = Physics2D.OverlapAreaAll(checkPoint1, checkPoint2); moveDetection.StartDetection(hits, lookDirection); if (moveDetection.CanPhysicallyMove()) { bool cancelMove = false; if (moveDetection.inCutscene) { sr.battleSetup.StartCutscene(new PackedCutscene(moveDetection.cutsceneObject.GetComponent <Cutscene>())); } if (moveDetection.inDoor) { if (moveDetection.doorObject.GetComponent <DoorToLocation>().GetTargetScene() != null) { if (moveDetection.doorObject.GetComponent <DoorToLocation>().fadeOutOnTransition) { sr.canvasCollection.OpenState(CanvasCollection.UIState.SceneSwitch); } } else { cancelMove = true; } } SetFacingDirection(input); if (!cancelMove) { if (sr.battleSetup.runButtonHeld) { moveSpeedCurrent = moveSpeed * moveSpeedModifier; } else { moveSpeedCurrent = moveSpeed; } StartCoroutine(move(transform)); } } } SetWalkAnimation(); } break; case LogicType.Trainer: if (!isMoving) { input = MoveScripts.GetVector2FromDirection(lookDirection); animMoving = false; last = input; if (input != Vector2.zero && ableToMove) { factor = 1f; checkPoint = new Vector2(centerPosition.x + input.x, centerPosition.y + input.y); lookDirection = MoveScripts.GetDirectionFromVector2(input); hits = Physics2D.OverlapAreaAll(checkPoint, checkPoint); moveDetection.StartDetection(hits, lookDirection); if (moveDetection.CanPhysicallyMove()) { SetFacingDirection(input); StartCoroutine(move(transform)); } else { npcMove = false; tLogic.sr.battleSetup.AdvanceCutscene(); } } SetWalkAnimation(); } break; case LogicType.NPC: if (!isMoving) { input = MoveScripts.GetVector2FromDirection(lookDirection); animMoving = false; last = input; if (input != Vector2.zero && npcMove) { factor = 1f; checkPoint = new Vector2(centerPosition.x + input.x, centerPosition.y + input.y); lookDirection = MoveScripts.GetDirectionFromVector2(input); hit = Physics2D.OverlapArea(checkPoint, checkPoint); moveDetection.StartDetection(hits, lookDirection); //MoveScripts.CheckForTag(this.gameObject, hit, "Player") if (moveDetection.CanPhysicallyMove()) { SetFacingDirection(input); StartCoroutine(move(transform)); } } SetWalkAnimation(); } break; } }
void SetMoveLook(MoveScripts.Direction direction) { move.SetFacingDirectionLogic(direction); }