196 lines
4.7 KiB
JavaScript
196 lines
4.7 KiB
JavaScript
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;
|
|
})(); |