public override void execute()
    {
        Character      character = mReceiver as Character;
        CharacterOther player    = character as CharacterOther;

        if (player == null)
        {
            return;
        }
        PlayerPack pack = player.getPlayerPack();

        if (!pack.isFull())
        {
            int itemIndex = pack.addItem(mItemType);
            // 如果获取道具的是玩家自己,通知游戏界面
            if (player.isType(CHARACTER_TYPE.CT_MYSELF))
            {
                mScriptProps.addProps(mItemType, itemIndex);
                GameTools.PLAY_AUDIO_UI(mScriptGlobalAudio.getAudioWindow(), SOUND_DEFINE.SD_GET_ITEM);
            }
            // 如果获取道具的是游戏中Al(直接使用游戏中的道具)
            else
            {
                CharacterControllerAI characterControllerAI = player.getFirstActiveComponent <CharacterControllerAI>();
                characterControllerAI.notifyAIGetBoxItem(pack.getCurItem());
            }
        }
    }
Beispiel #2
0
    //-------------------------------------------------------------------------------------------------------
    protected void updateInfo(bool enable = true)
    {
        if (mPlayer == null)
        {
            return;
        }
        mState = new List <PLAYER_STATE>(mPlayer.getStateMachine().getStateList().Keys);
        mActiveComponentList.Clear();
        Dictionary <string, GameComponent> allComponent = mPlayer.getAllComponent();

        foreach (var item in allComponent)
        {
            if (item.Value.isActive())
            {
                mActiveComponentList.Add(item.Value.getType().ToString());
            }
        }
        mCenterOfMass         = mPlayer.getRigidBody().centerOfMass;
        mSpeed                = mCharacterData.mSpeed;
        mCircle               = mCharacterData.mCircle;
        mCurWayPoint          = mCharacterData.mCurWayPoint;
        mRunDistance          = mCharacterData.mRunDistance;
        mTotalDistance        = mCharacterData.mTotalDistance;
        mProcessKey           = mPlayer.getProcessKey();
        mProcessTurn          = mPlayer.getProcessTurn();
        mProcessExternalSpeed = mPlayer.getProcessExternalSpeed();
        CharacterSpeedHardware hardwareSpeed = mPlayer.getFirstActiveComponent <CharacterSpeedHardware>();

        if (hardwareSpeed != null)
        {
            mTargetSpeed = hardwareSpeed.getTargetSpeed();
        }
        mActivedAnimationStateList.Clear();
        mAllAnimationStateList.Clear();
        if (enable)
        {
            foreach (var item in mAnimation)
            {
                AnimationState state = item as AnimationState;
                string         info  = "|" + state.name + "| |";
                info += (state.enabled ? "enabled" : "disabled") + "| |";
                info += "len:" + StringUtility.floatToString(state.length, 2) + "| |";
                info += "spd:" + StringUtility.floatToString(state.speed, 2) + "| |";
                info += "time:" + StringUtility.floatToString(state.time, 2) + "| |";
                info += "weight:" + StringUtility.floatToString(state.weight, 2) + "| |";
                info += state.wrapMode + "|";
                mAllAnimationStateList.Add(info);
                if (state.enabled)
                {
                    mActivedAnimationStateList.Add(info);
                }
            }
        }
    }