public bool ChangeBehaveState(GSNPCStateRemote targetState)
 {
     if (mutexState1 == targetState)
     {
         return(false);
     }
     if (mutexState1 != null)
     {
         mutexState1.LoseFocus();
     }
     mutexState1 = targetState;
     if (targetState != null)
     {
         targetState.GainFocus(this.entity);
     }
     return(true);
 }
    public void ChangeStrategy(GSNPCStrategy strategy)
    {
        currentStrategy = strategy;
        switch (strategy)
        {
        case GSNPCStrategy.AutoFight:
            ChangeBehaveState(AutoFightRemote);
            break;

        case GSNPCStrategy.Daiji:
            ChangeBehaveState(DaijiRemote);
            break;

        case GSNPCStrategy.Jingjie:
            ChangeBehaveState(JingjieRemote);
            break;

        case GSNPCStrategy.Empty:
        default:
            mutexState1 = state_empty;
            break;
        }
    }