public virtual float AggroFlag() { if (playerTransform == null) { return(aggroMaxInterval); } characterState.targetPosition = playerTransform.position; float distance = Vector2.Distance(transform.position, playerTransform.position); if (characterState.stateDict[CharacterState.State.aggro] && distance > deAggroRadius) { characterMovement.speed = idleSpeed; characterState.Aggro(false); } else if (!characterState.stateDict[CharacterState.State.aggro] && distance < aggroRadius) { characterMovement.speed = aggroSpeed; characterState.Aggro(true); } return(aggroMaxInterval); }
public void Equip(CharacterState _holderState, CharacterMovement _holderMovement, Skeleton _holderSkeleton) { // Attach the weapon _holderSkeleton.hand.Attach(skeleton.root); transform.localRotation = Quaternion.identity; // Set the parameters holderSkeleton = _holderSkeleton; holderState = _holderState; holderMovement = _holderMovement; holderState.Aggro(true); // Adjust the internal settings gameObject.SetActive(true); holderState.equippedWeapon = this; isEquipped = true; }