import SKDataUtil from "../ts/gear_2.3.4/util/SKDataUtil" let GameRes = require('./GameRes'); let pTaskConfigMgr = require('./task_config').g_pTaskConfigMgr; let ETaskKind = require('./task_config').ETaskKind; class CMainPlayerInfo { constructor() { this.vecBagItem = []; this.vecMyGoods = []; this.vecTaskState = []; this.mapDailyCnt = {}; this.vecPartnerInfo = []; this.vecChuZhan = [0, 0, 0, 0]; } IsHasPartner(nID) { for (var it in this.vecPartnerInfo) { if (this.vecPartnerInfo[it].id == nID) return it; } return -1; } GetPartner(nID) { for (var it in this.vecPartnerInfo) { if (this.vecPartnerInfo[it].id == nID) return this.vecPartnerInfo[it]; } return null; } GetParterChuZhanPos(nPartnerID) { for (var it in this.vecChuZhan) { if (this.vecChuZhan[it] == nPartnerID) return it; } return -1; } GetFreeChuZhanPos() { for (var it in this.vecChuZhan) { if (this.vecChuZhan[it] == 0) return it; } return -1; } ChangeChuZhan(nPos, nPartnerID) { this.vecChuZhan[nPos] = nPartnerID; this.ReplaceChuZhanPos(); } ReplaceChuZhanPos() { let vecTmp = this.vecChuZhan.slice(0); this.vecChuZhan = [0, 0, 0, 0]; let nPos = -1; for (var it in vecTmp) { if (vecTmp[it] == 0) continue; nPos++; this.vecChuZhan[nPos] = vecTmp[it]; } } FindDailyTask(nGrop) { for (let itTask in this.vecTaskState) { let pTaskInfo = pTaskConfigMgr.GetTaskInfo(this.vecTaskState[itTask].nTaskID); if (null == pTaskInfo) continue; if (pTaskInfo.nKind != ETaskKind.EDaily) continue; if (pTaskInfo.nTaskGrop == nGrop) return pTaskInfo.nTaskID; } return 0; } IsHasCurTask(nTaskID) { for (let itTask in this.vecTaskState) { if (this.vecTaskState[itTask].nTaskID == nTaskID) return this.vecTaskState[itTask]; } return null; } GetTaskCurStep(nTaskID) { let pTaskState = this.IsHasCurTask(nTaskID); if (pTaskState == null) return -1; for (let nStep in pTaskState.vecStepState) { if (pTaskState.vecStepState[nStep].nState == 1) return nStep; } return -1; } GetTaskStepState(nTaskID, nStep) { for (let itTask in this.vecTaskState) { let stTaskState = this.vecTaskState[itTask]; if (stTaskState.nTaskID != nTaskID) continue; return stTaskState.vecStepState[nStep]; } return null; } IsAlreadyHasThisGropTask(nGroup) { for (let itTask in this.vecTaskState) { let stTaskState = this.vecTaskState[itTask]; let pTaskInfo = pTaskConfigMgr.GetTaskInfo(stTaskState.nTaskID); if (pTaskInfo.nTaskGrop == nGroup) return true; } return false; } GetDailyCnt(nTaskGrop) { if (this.mapDailyCnt.hasOwnProperty(nTaskGrop)) return this.mapDailyCnt[nTaskGrop]; return 0; } GetBagItemCnt(nItemID) { for (var it in this.vecBagItem) { if (this.vecBagItem[it].itemid == nItemID) return this.vecBagItem[it].count; } return 0; } GetBagItem(nItemID) { for (var it in this.vecBagItem) { if (this.vecBagItem[it].itemid == nItemID) return this.vecBagItem[it]; } return null; } OnReceiveRoleTask(stData) { let vecData = stData.vecTask; this.vecTaskState = []; for (let it in vecData) { let stData = vecData[it]; let stTaskState = {}; stTaskState.nTaskID = stData.nTaskID; stTaskState.vecStepState = []; if(!stData.vecStep){ continue; } for (let itStep in stData.vecStep) { let json=stData.vecStep[itStep]; let stInfo=SKDataUtil.jsonBy(json); stTaskState.vecStepState.push(stInfo); } this.vecTaskState.push(stTaskState); } this.mapDailyCnt = SKDataUtil.jsonBy(stData.strJsonDaily); } } let g_ctMainPlayerInfo = null; module.exports = (() => { if (g_ctMainPlayerInfo == null) { g_ctMainPlayerInfo = new CMainPlayerInfo(); } return g_ctMainPlayerInfo; })();