internal void SetFacing(AI.Direction playerFacing) { switch (playerFacing) { case AI.Direction.NONE: break; case AI.Direction.UP: break; case AI.Direction.DOWN: break; case AI.Direction.LEFT: playerBody.transform.localScale = startingBodyScale; weaponParent.transform.localScale = startingWeaponScale; break; case AI.Direction.RIGHT: // flip our x axis scale to flip the sprite playerBody.transform.localScale = new Vector3(-startingBodyScale.x, startingBodyScale.y, startingBodyScale.z); weaponParent.transform.localScale = new Vector3(-startingWeaponScale.x, startingWeaponScale.y, startingWeaponScale.z); break; } }
private void FindClosestWall() { if (objectOnLeft && objectOnRight) { // Left object is closer if (Vector2.Distance(objectOnLeft.transform.position, transform.position) < Vector2.Distance(objectOnRight.transform.position, transform.position)) { wallDirection = AI.Direction.LEFT; } else { wallDirection = AI.Direction.RIGHT; } } else if (objectOnLeft) { wallDirection = AI.Direction.LEFT; } else if (objectOnRight) { wallDirection = AI.Direction.RIGHT; } else { wallDirection = AI.Direction.NONE; } }
private void UpdatePlayerDirectionFromInput() { if (Mathf.Approximately(xInput, 0f)) { return; } if (xInput < 0f && playerFacing == AI.Direction.RIGHT || xInput > 0f && playerFacing == AI.Direction.LEFT) { playerFacing = AI.OppositeDirection(playerFacing); cameraFollowScript.SetPlayerTurnaroundX(transform.position.x); playerOrganizer.SetFacing(playerFacing); } }
} // END OF UPDATE FUNCTION private void SetMotionState(MotionState newMotionState) { if (newMotionState == motionState) { // this should never happen, but... return; } prevMotionState = motionState; motionState = newMotionState; currentStateTimer = 0f; switch (prevMotionState) { case MotionState.SWING: if (weaponHand.HasRope()) { weaponHand.BreakRope(); } break; } switch (motionState) { case MotionState.DODGE: dodgeDirection = AI.FloatToHorizontalDirection(dodgeInput); // Make us invulnerable for the duration of the dodge. SetInvulnerabilityTime(dodgeStateTime); break; case MotionState.FALL: // Set an angle in our motion curve. // We move up slowly but as soon as our speed hits zero, shoot us downwards. // Increase to decrease feeling of suddenly falling at top of jump. yVel = -1f; break; } prevMotionState = motionState; motionState = newMotionState; if (debugStateText) { debugStateText.text = motionState.ToString(); } }
protected void SetDirection(AI.Direction dir) { direction = dir; // Update scaling for appropriate local axis directions and sprite reorientation Vector3 scale = transform.localScale; switch (direction) { case AI.Direction.NONE: break; case AI.Direction.UP: break; case AI.Direction.DOWN: break; case AI.Direction.LEFT: scale = transform.localScale; scale.x = -Mathf.Abs(scale.x); transform.localScale = scale; scale = healthBarLocation.transform.localScale; scale.x = -Mathf.Abs(scale.x); healthBarLocation.transform.localScale = scale; // flip the health bar again to keep it correct break; case AI.Direction.RIGHT: scale = transform.localScale; scale.x = Mathf.Abs(scale.x); transform.localScale = scale; scale = healthBarLocation.transform.localScale; scale.x = Mathf.Abs(scale.x); healthBarLocation.transform.localScale = scale; // flip the health bar again to keep it correct break; } }
public void Load(PlayerData data) { playerFacing = data.facingLeft ? (AI.Direction.LEFT) : (AI.Direction.RIGHT); }