| | |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using System; |
| | | using Snxxz.UI; |
| | | using System.Text.RegularExpressions; |
| | | using TableConfig; |
| | | |
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | | using UnityEngine;
|
| | | using System;
|
| | | using Snxxz.UI;
|
| | | using System.Text.RegularExpressions;
|
| | | using TableConfig;
|
| | |
|
| | | public class InGameDownLoad : SingletonMonobehaviour<InGameDownLoad>
|
| | | {
|
| | | public const int BYTE_PER_KILOBYTE = 1024;
|
| | | public const int BYTE_PER_MILLIONBYTE = 1048576; |
| | | |
| | | public const int BYTE_PER_MILLIONBYTE = 1048576;
|
| | |
|
| | | List<RemoteFile> workingQueue = new List<RemoteFile>();
|
| | | List<AssetVersion> tasks = new List<AssetVersion>();
|
| | |
|
| | | public bool inGameDownLoadAllow = false;
|
| | | |
| | | public float progress {
|
| | | get {
|
| | |
|
| | | public float progress
|
| | | {
|
| | | get
|
| | | {
|
| | | return Mathf.Clamp01((float)showDownLoadedSize / showTotalSize);
|
| | | }
|
| | | } |
| | | |
| | | }
|
| | |
|
| | | public bool isDone { get { return state == State.Completed; } }
|
| | | public long showDownLoadedSize { get { return downLoadedSizeRecord + RemoteFile.TotalDownloadedSize - backGroundDownLoadSizeRecord; } }
|
| | | public long showTotalSize { get { return totalSize - backGroundDownLoadSizeRecord; } }
|
| | | public int showTotalCount { get { return totalCount - downLoadedCountRecord; } }
|
| | | public int showOkCount { get { return okCount - downLoadedCountRecord; } } |
| | | |
| | | long totalSize = 0; |
| | | int totalCount = 0; |
| | | |
| | | int m_OkCount = 0; |
| | | int okCount {
|
| | | public int showOkCount { get { return okCount - downLoadedCountRecord; } }
|
| | |
|
| | | long totalSize = 0;
|
| | | int totalCount = 0;
|
| | |
|
| | | int m_OkCount = 0;
|
| | | int okCount
|
| | | {
|
| | | get { return m_OkCount; }
|
| | | set {
|
| | | set
|
| | | {
|
| | | m_OkCount = value;
|
| | | }
|
| | | } |
| | | |
| | | long backGroundDownLoadSizeRecord = 0;//后台偷偷已经下载到资源量 |
| | | long downLoadedSizeRecord = 0;//记录上次暂停时记录的下载量 |
| | | int downLoadedCountRecord = 0;//已经下载完成的资源包数量 |
| | | |
| | | }
|
| | |
|
| | | long backGroundDownLoadSizeRecord = 0;//后台偷偷已经下载到资源量
|
| | | long downLoadedSizeRecord = 0;//记录上次暂停时记录的下载量
|
| | | int downLoadedCountRecord = 0;//已经下载完成的资源包数量
|
| | |
|
| | | public event Action<State> downLoadStateChangeEvent;
|
| | | public event Action<Dominant> dominantDownLoadEvent;
|
| | |
|
| | | Action onDownLoadOk;
|
| | |
|
| | | Dominant m_DominantState = Dominant.None;
|
| | | public Dominant dominantState {
|
| | | public Dominant dominantState
|
| | | {
|
| | | get { return m_DominantState; }
|
| | | private set {
|
| | | private set
|
| | | {
|
| | | if (m_DominantState != value)
|
| | | {
|
| | | m_DominantState = value;
|
| | |
| | | }
|
| | |
|
| | | State m_State = State.None;
|
| | | public State state {
|
| | | public State state
|
| | | {
|
| | | get { return m_State; }
|
| | | set {
|
| | | set
|
| | | {
|
| | | if (m_State != value)
|
| | | {
|
| | | m_State = value;
|
| | |
| | |
|
| | | public List<Reward> rewards = new List<Reward>();
|
| | | public bool hasReward { get; private set; }
|
| | | public string completeDownLoadAccount {
|
| | | public string completeDownLoadAccount
|
| | | {
|
| | | get { return LocalSave.GetString("InGameDownLoadCompleteAccount"); }
|
| | | set { LocalSave.SetString("InGameDownLoadCompleteAccount", value); }
|
| | | }
|
| | |
| | |
|
| | | PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnPlayerLevelChange;
|
| | | PlayerDatas.Instance.PlayerDataRefreshInfoEvent += OnPlayerLevelChange;
|
| | | } |
| | | |
| | | }
|
| | |
|
| | | public void ParseRewardConfig()
|
| | | {
|
| | | var rewardString = Config.Instance.Get<FuncConfigConfig>("DownReward").Numerical1;
|
| | |
| | | {
|
| | | rewards.Add(new Reward(matches[i].Value));
|
| | | }
|
| | | } |
| | | |
| | | }
|
| | |
|
| | | public void UpdateRewardInfo(HA319_tagMCPackDownloadRecord _package)
|
| | | {
|
| | | hasReward = _package.Record == 1;
|
| | |
| | | }
|
| | |
|
| | | downLoadRedpoint.state = state == State.Award ? RedPointState.Simple : RedPointState.None;
|
| | | } |
| | | |
| | | }
|
| | |
|
| | | public void RequestDownLoadReward(bool _manual)
|
| | | {
|
| | | var send = new CA504_tagCMPlayerGetReward();
|
| | | send.RewardType = 15;
|
| | | send.DataEx = (byte)(_manual ? 0 : 1);
|
| | | GameNetSystem.Instance.SendInfo(send);
|
| | | } |
| | | |
| | | }
|
| | |
|
| | | public void TryDownLoad(Dominant _dominant)
|
| | | {
|
| | | if (!inGameDownLoadAllow)
|
| | |
| | | {
|
| | | backGroundDownLoadSizeRecord = RemoteFile.TotalDownloadedSize;
|
| | | downLoadedCountRecord = okCount;
|
| | | state = State.Prepared;
|
| | | }
|
| | | StartDownLoad();
|
| | | dominantState = Dominant.Half;
|
| | |
| | | break;
|
| | | }
|
| | |
|
| | | } |
| | | |
| | | }
|
| | |
|
| | | public void StartDownLoad()
|
| | | {
|
| | | if (state == State.None || state == State.Prepared || state == State.Pause)
|
| | |
| | | RemoteFile.MaxConnectLimit = 0;
|
| | | state = State.Pause;
|
| | | }
|
| | | } |
| | | |
| | | |
| | | }
|
| | |
|
| | |
|
| | | IEnumerator Co_StartDownLoad()
|
| | | {
|
| | | downLoadedSizeRecord += RemoteFile.TotalDownloadedSize;
|
| | |
| | | onDownLoadOk = null;
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | private void OnFileDownLoadCompleted(bool _ok, AssetVersion _assetVersion)
|
| | | {
|
| | | foreach (var remote in workingQueue)
|
| | |
| | | }
|
| | |
|
| | | Clock netSwitchClock;
|
| | | NetworkReachability m_NetworkReachability = NetworkReachability.NotReachable; |
| | | NetworkReachability networkReachability {
|
| | | NetworkReachability m_NetworkReachability = NetworkReachability.NotReachable;
|
| | | NetworkReachability networkReachability
|
| | | {
|
| | | get { return m_NetworkReachability; }
|
| | | set {
|
| | | set
|
| | | {
|
| | | if (m_NetworkReachability != value)
|
| | | {
|
| | | m_NetworkReachability = value;
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | } |
| | | |
| | | |
| | | bool m_SimulateWifi = true; |
| | | public bool simulateWifi {
|
| | | }
|
| | |
|
| | |
|
| | | bool m_SimulateWifi = true;
|
| | | public bool simulateWifi
|
| | | {
|
| | | get { return m_SimulateWifi; }
|
| | | set {
|
| | | set
|
| | | {
|
| | | if (m_SimulateWifi != value)
|
| | | {
|
| | | m_SimulateWifi = value;
|
| | |
| | | }
|
| | |
|
| | | }
|
| | | } |
| | | |
| | | |
| | | float netCheckTimer = 0f; |
| | | |
| | | }
|
| | |
|
| | |
|
| | | float netCheckTimer = 0f;
|
| | |
|
| | | private void LateUpdate()
|
| | | {
|
| | | if (state == State.None || state == State.Award || state == State.Completed)
|
| | |
| | | }
|
| | |
|
| | | return true;
|
| | | } |
| | | }
|
| | |
|
| | | public bool IsHighLevelPlayer()
|
| | | {
|
| | |
| | | }
|
| | | break;
|
| | | }
|
| | | } |
| | | |
| | | }
|
| | |
|
| | | private void OnMainTaskChange(int _taskId, int _state)
|
| | | {
|
| | | var mainTaskId = taskModel.currentMission;
|
| | |
| | | TryDownLoad(Dominant.Whole);
|
| | | }
|
| | | }
|
| | | } |
| | | |
| | | |
| | | }
|
| | |
|
| | |
|
| | | public struct Reward
|
| | | {
|
| | | public int id;
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | } |
| | | |
| | | }
|
| | |
|
| | | public enum State
|
| | | {
|
| | | None,
|
| | |
| | | None = 0,
|
| | | Half = 1,
|
| | | Whole = 2,
|
| | | } |
| | | |
| | | } |
| | | }
|
| | |
|
| | | }
|