Exemplo n.º 1
0
 public void RecyleCooldown(CooldownCtrl ctrl)
 {
     if (ctrl == null)
     {
         return;
     }
     if (ctrl.Owner != null)
     {
         ctrl.Destroy();
     }
 }
Exemplo n.º 2
0
        public CooldownCtrl GetNewCoolDown(Actor owner)
        {
            if (owner == null)
            {
                return(null);
            }
            if (owner.IsLocalPlayer)
            {
                uint pre_scene_id            = SceneHelp.Instance.PreSceneID;
                bool pre_scene_is_secretArea = IsSecretArea(pre_scene_id);
                uint cur_scene_id            = SceneHelp.Instance.CurSceneID;
                bool cur_scene_is_secretArea = IsSecretArea(cur_scene_id);

                bool can_reset_cd = false;
                DBInstance.InstanceInfo cur_instance_info = InstanceManager.Instance.InstanceInfo;
                if (DBInstanceTypeControl.Instance.ClearCd(cur_instance_info.mWarType, cur_instance_info.mWarSubType))
                {
                    can_reset_cd = true;
                }
                if ((pre_scene_is_secretArea || cur_scene_is_secretArea) &&
                    pre_scene_id != cur_scene_id)
                {//进出武神塔(同一武神塔内切换不重置),都要重置CD
                    can_reset_cd = true;
                }
                if (can_reset_cd == true)
                {
                    m_localPlayerCtrl = null;
                }
                if (m_localPlayerCtrl == null)
                {
                    m_localPlayerCtrl = new CooldownCtrl(owner);
                }
                else
                {
                    m_localPlayerCtrl.SetOwner(owner);
                }
                return(m_localPlayerCtrl);
            }
            return(new CooldownCtrl(owner));
        }