コード例 #1
0
    protected void OnClickSceneItem(SceneItem _sceneItem)
    {
        if (_sceneItem == null || target == null)
        {
            return;
        }
        if (target.CurFSMState == MainPlayer.EventType.AI_FIGHT_CTRL) //应策划要求,自动战斗时的点击,不能直接跳转到普通,而只是临时执行。
        {
            target.BreakAutoFight();
        }
        else
        {
            target.GoNormal();
        }
        target.CancelCommands();
        Command_MoveTo cmdMoveTo = new Command_MoveTo();

        cmdMoveTo.destPos     = _sceneItem.gameObject.transform.position;
        cmdMoveTo.maxDistance = 0f;
        target.commandMng.PushCommand(cmdMoveTo);

        switch (_sceneItem.IsTouchType)
        {
        case TouchType.TOUCH:
            GameCenter.curMainPlayer.CurTarget = _sceneItem;
            CommandTriggerTarget trigCmd = new CommandTriggerTarget();
            trigCmd.target = _sceneItem;
            target.commandMng.PushCommand(trigCmd);
            break;

        default:
            break;
        }
    }
コード例 #2
0
    protected void OnClickNpc(NPC _npc)
    {
        if (_npc == null || target == null)
        {
            return;
        }
        target.CurTarget = _npc;
        target.GoNormal();

        if (isDragingRockerItem)
        {
            return;
        }

        //  target.autoAttak = MainPlayer.AttackType.NONE;
        target.CancelCommands();
        Command_MoveTo cmdMoveTo = new Command_MoveTo();
        Vector3        npcPos    = _npc.gameObject.transform.position;
        Vector3        myPos     = target.transform.position;

        cmdMoveTo.destPos = npcPos - Vector3.Normalize(npcPos - myPos) * 2.0f;

        cmdMoveTo.maxDistance = 0f;
        target.commandMng.PushCommand(cmdMoveTo);

        CommandTriggerTarget cmdMoveToTarget = new CommandTriggerTarget();

        cmdMoveToTarget.minDistance = 3.5f;
        cmdMoveToTarget.target      = _npc;
        target.commandMng.PushCommand(cmdMoveToTarget);
    }
コード例 #3
0
    protected virtual void UpdateCollectState(fsm.State _curState)
    {
        if (!CheckTask())
        {
            thisPlayer.GoNormal();
            return;
        }
        if (curTarSceneItem == null || curTarSceneItem.isDead)
        {
            curTarSceneItem = GetTarSceneItem();
        }
        else if (!thisPlayer.commandMng.HasCommand() && !thisPlayer.IsCollecting && !GameCenter.mainPlayerMng.IsWaitTouchSceneItemMsg)
        {
            thisPlayer.CurTarget = curTarSceneItem;
            Command_MoveTo moveCmd = new Command_MoveTo();
            moveCmd.destPos = curTarSceneItem.transform.position;
            thisPlayer.commandMng.PushCommand(moveCmd);

            CommandTriggerTarget trigCmd = new CommandTriggerTarget();
            trigCmd.target = curTarSceneItem;
            thisPlayer.commandMng.PushCommand(trigCmd);
        }
    }