Beispiel #1
0
    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);
    }
Beispiel #2
0
    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;
    }