示例#1
0
    void AttempActivate(ref DefaultCharBehaviourController.InternalState internalState,
                        ref DefaultCharBehaviourController.PredictedState predictedState, DefaultCharBehaviourController.Ability ability, bool force)
    {
        if (predictedState.activeAbility == ability)
        {
            return;
        }

        // if(DefaultCharBehaviourController.ShowInfo.IntValue > 0)
        // GameDebug.Log("AttempActivate:" + ability);

        if (predictedState.activeAbility != DefaultCharBehaviourController.Ability.None)
        {
            var behavior = internalState.GetAbilityBehavior(predictedState.activeAbility);
            if (force)
            {
                Deactivate(behavior);
            }
            else
            {
                RequestDeactivate(behavior);
                return;
            }
        }

        {
            predictedState.activeAbility = ability;
            var behavior = internalState.GetAbilityBehavior(predictedState.activeAbility);
            Activate(behavior);
        }
    }
示例#2
0
    bool IsRequestingActive(ref DefaultCharBehaviourController.InternalState internalState, DefaultCharBehaviourController.Ability ability)
    {
        var behavior    = internalState.GetAbilityBehavior(ability);
        var abilityCtrl = EntityManager.GetComponentData <AbilityControl>(behavior);

        return(abilityCtrl.behaviorState == AbilityControl.State.RequestActive);
    }