예제 #1
0
    /// <summary>
    /// 设置意图
    /// </summary>
    /// <param name="intentEnum"></param>
    public void SetIntent(RascalIntentEnum intentEnum)
    {
        if (this)
        {
            StopAllCoroutines();
        }
        this.rascalIntent = intentEnum;
        SetMoveStatus(true);
        switch (intentEnum)
        {
        case RascalIntentEnum.GoToInn:
            SetIntentForGoToInn();
            break;

        case RascalIntentEnum.WaitingForReply:
            SetIntentForWaitingForReply();
            break;

        case RascalIntentEnum.MakeTrouble:
            SetIntentForMakeTrouble();
            break;

        case RascalIntentEnum.Fighting:
            SetIntentForFighting();
            break;

        case RascalIntentEnum.ContinueMakeTrouble:
            SetIntentForContinueMakeTrouble();
            break;

        case RascalIntentEnum.Leave:
            SetIntentForLeave();
            break;
        }
    }
예제 #2
0
    /// <summary>
    /// 设置全体意图
    /// </summary>
    public void SetTeamIntent(RascalIntentEnum rascalIntent)
    {
        List <NpcAIRascalCpt> listNpc = NpcHandler.Instance.builderForEvent.GetRascalTeamByTeamCode(teamCode);

        if (rascalIntent == RascalIntentEnum.Leave)
        {
            SceneInnManager sceneInnManager = GameScenesHandler.Instance.manager.GetSceneManager <SceneInnManager>();
            leavePosition = sceneInnManager.GetRandomSceneExportPosition();
        }
        foreach (NpcAIRascalCpt itemNpc in listNpc)
        {
            itemNpc.leavePosition = leavePosition;
            itemNpc.SetIntent(rascalIntent);
        }
    }