void OnCollisionEnter2D(Collision2D col) { if (col.gameObject.layer == LayerMask.NameToLayer("Enemy")) { healthHandler.takeDamage(0.5f); Debug.Log(StaticPlayer.getHealth()); } }
private void HandleCombatStateBehavior() { switch (combatState) { case CombatEnum.ATTACK: mainPlayerHealthHandler.takeDamage(damagePerAttack); break; case CombatEnum.FLEE: break; case CombatEnum.FREEZE: targetPosition = null; break; case CombatEnum.PURSUE: fov.viewAngle = chaseViewAngle; targetPosition = mainPlayerPosition; break; case CombatEnum.SNEAK: //Sneak logic here fov.viewAngle = sneakViewAngle; if (teleportCharged) { bool shouldTeleport = false; targetPosition = null; do { teleportPosition = mainPlayerPosition.position - (getRandomVector() * teleportDistance); float dstToTarget = Vector3.Distance(teleportPosition, mainPlayerPosition.position); Vector3 dirToTarget = (teleportPosition - mainPlayerPosition.position).normalized; if (!Physics2D.Raycast(mainPlayerPosition.position, dirToTarget, dstToTarget, obstacleMask)) { print(Vector3.Distance(teleportPosition, mainPlayerPosition.position)); shouldTeleport = true; } } while (!shouldTeleport); this.transform.position = teleportPosition; teleportCharged = false; } //if (mainPlayerPosition.) //this.transform.position = break; default: break; } }