SamsaraGame/assets/Script/game/MainPlayerInfo.js
2025-04-24 17:03:28 +08:00

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;
})();