Пример #1
0
    void onHitterActivated(ActivatableHitter hitter, Hashtable parameters)
    {
        OnHitterActivated?.Invoke(hitter, parameters);

        if (sendMessageEnabled)
        {
            Hashtable feedbackParameters = new Hashtable();
            feedbackParameters.Add(ParameterType.SENDER_TYPE, senderType);
            hitter.SendMessage(feedbackParameters);
        }
    }
Пример #2
0
    void onHitterActivated(ActivatableHitter hitter, Hashtable parameters)
    {
        if (!IsGrounded)
        {
            Vector3 velocity = this.Velocity;
            velocity.y = 5.5f;
            SetVelocity(velocity);
        }

        if (hitter != null && hitter.HitterType == HitterType.BLADE)
        {
            if (parameters != null && parameters.ContainsKey(ParameterType.ATTACK_TYPE))
            {
                WeaponActionType attackType         = (WeaponActionType)parameters [ParameterType.ATTACK_TYPE];
                Hashtable        feedbackParameters = new Hashtable();
                feedbackParameters.Add(ParameterType.SENDER_TYPE, SenderType.NPC);

                if (mainMovementState != null &&
                    mainMovementState is NPCGroundState &&
                    Random.value < 0.1f &&
                    attackType != WeaponActionType.DOWNWARD_SMASH)
                {
                    attackType = WeaponActionType.BLOCK;
                    feedbackParameters.Add(ParameterType.ATTACK_TYPE, WeaponActionType.BLOCK);
                }

                hitter.SendMessage(feedbackParameters);

                switch (attackType)
                {
                case WeaponActionType.SLASH:

                    onHit(hitter);

                    break;

                case WeaponActionType.UPPERCUT:

                    upperCut();

                    break;

                case WeaponActionType.STAB:

                    stab();

                    break;

                case WeaponActionType.BLOCK:

                    block();

                    break;

                case WeaponActionType.DOWNWARD_SMASH:

                    smashed();

                    break;
                }
            }
        }
    }