1#include "Game/Boss/SkeletalFishBossInfo.hpp"
2#include "Game/Boss/SkeletalFishBoss.hpp"
6 static const char* sParamFileName =
"Param";
7 static const char* sParamNameLevelNum =
"LevelNum";
8 static const char* sParamNameEnergy =
"EnergyLv";
9 static const char* sParamNameSpeed =
"SpeedLv";
10 static const char* sParamNameRailID =
"RailIDLv";
11 static const char* sParamNameGuardOffset =
"GuardOffsetLv";
12 static const char* sParamNameGuardAppearNum =
"GuardAppearNumLv";
13 static const char* sParamNameGuard =
"Id";
14 static const char* sParamNameGuardPos =
"GuardPosLv";
15 static const char* sParamNameGuardWait =
"GuardWaitLv";
18SkeletalFishBossInfo::SkeletalFishBossInfo(
SkeletalFishBoss *pBoss, s32 levelNum, s32 guardNum,
const char *pDesc) :
NameObj(pDesc) {
22 mLevelStatusArray =
nullptr;
27 volatile const JMapInfo* info = MR::tryCreateCsvParser(mFishBoss,
"%s.bcsv", ::sParamFileName);
29 if (info !=
nullptr) {
37 loadLevelStatus(what);
42 return &mLevelStatusArray[idx];
45void SkeletalFishBossInfo::createLevelStatus() {
46 mLevelStatusArray =
new LevelStatus[mLevelNum];
48 for (s32 i = 0; i < mLevelNum; i++) {
49 getLevelStatus(i)->mEnergyLevel = 1;
50 getLevelStatus(i)->mSpeedLevel = 20.0f;
51 getLevelStatus(i)->mRailIDLevel = 0;
52 getLevelStatus(i)->mGuardOffsLevel = 2000.0f;
53 getLevelStatus(i)->mGuardAppearNumLevel = 0;
54 getLevelStatus(i)->mStatusArray =
new GuardStatus[mGuardNum];
56 for (s32 j = 0; j < mGuardNum; j++) {
57 LevelStatus* s = &mLevelStatusArray[i];
58 s->getGuardStatus(j)->mGuardPosLevel.setZYX(0.0f);
59 LevelStatus* cur = &mLevelStatusArray[i];
60 cur->getGuardStatus(j)->mGuardWaitLevelID = 0;
65SkeletalFishBossInfo::GuardStatus::GuardStatus() {
69void SkeletalFishBossInfo::loadLevelStatus(
const JMapInfoIter &rIter) {
72 if (rIter.getValue<s32>(::sParamNameLevelNum, &levelNum)) {
73 if (levelNum > mLevelNum) {
77 for (s32 i = 0; i < levelNum; i++) {
79 snprintf(nameBuf,
sizeof(nameBuf),
"%s%d", ::sParamNameEnergy, i);
80 rIter.getValue<s32>(nameBuf, &getLevelStatus(i)->mEnergyLevel);
81 snprintf(nameBuf,
sizeof(nameBuf),
"%s%d", ::sParamNameSpeed, i);
82 rIter.getValue<f32>(nameBuf, &getLevelStatus(i)->mSpeedLevel);
83 snprintf(nameBuf,
sizeof(nameBuf),
"%s%d", ::sParamNameRailID, i);
84 rIter.getValue<s32>(nameBuf, &getLevelStatus(i)->mRailIDLevel);
85 snprintf(nameBuf,
sizeof(nameBuf),
"%s%d", ::sParamNameGuardOffset, i);
86 rIter.getValue<f32>(nameBuf, &getLevelStatus(i)->mGuardOffsLevel);
87 snprintf(nameBuf,
sizeof(nameBuf),
"%s%d", ::sParamNameGuardAppearNum, i);
88 rIter.getValue<s32>(nameBuf, &getLevelStatus(i)->mGuardAppearNumLevel);
89 loadGuardStatus(rIter, i, mLevelStatusArray[i].mGuardAppearNumLevel);
94void SkeletalFishBossInfo::loadGuardStatus(
const JMapInfoIter &rIter, s32 levelIdx, s32 guardLevel) {
95 LevelStatus* status = &mLevelStatusArray[levelIdx];
97 for (s32 i = 0; i < guardLevel; i++) {
99 snprintf(buf,
sizeof(buf),
"%s%d%s%d", ::sParamNameGuardPos, levelIdx, ::sParamNameGuard, i);
100 MR::getJMapInfoV3f(rIter, buf, &status->getGuardStatus(i)->mGuardPosLevel);
101 snprintf(buf,
sizeof(buf),
"%s%d%s%d", ::sParamNameGuardWait, levelIdx, ::sParamNameGuard, i);
102 rIter.getValue<s32>(buf, &status->getGuardStatus(i)->mGuardWaitLevelID);
106SkeletalFishBossInfo::~SkeletalFishBossInfo() {
The most basic form of an object.
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.