/** 刷怪状态逻辑 根据规则刷怪,无怪可刷或已刷完怪切到刷怪结束状态 */
 private void do_mapState_refresh() {
   if (this.ruleIndex >= this.ruleMaxSize) {
     // 如果没有怪可刷,则切换到刷怪结束状态
     // 刷完怪,切换到刷怪结束状态
     this.mapState = MapState.refresh_end;
     return;
   }
   int ruleId = Integer.parseInt(this.ruleId);
   this.ruleIndex =
       GameContext.getRefreshRuleApp().refresh(ruleId, this.ruleIndex, startTime, this, true);
 }
 /** 初始化状态的逻辑 找到刷怪规则,切换到刷怪状态 */
 private void do_mapState_init() {
   RoleInstance role = this.getFirstRole();
   if (null == role) {
     return;
   }
   CopyMapRoleRule rule =
       GameContext.getCopyLogicApp().getCopyMapRoleRule(role, this.map.getMapId());
   // 如果没有找到合适的规则,有可能是地图里种怪了
   if (null != rule) {
     this.ruleId = rule.getRuleId();
     this.ruleMaxSize =
         GameContext.getRefreshRuleApp().getRefreshMax(Integer.parseInt(this.ruleId));
   }
   // 必须切换到刷怪状态,里面会发副本倒计时
   this.change_mapState_init_to_refresh();
 }