20 enum class RaidState :
int {
22 PickingSpawnPoint = 1,
30 enum class RaidStatus :
int {
36 using ActorIDCollection = ::std::unordered_set<::ActorUniqueID>;
38 using ActorRemovedFromRaidCallback = ::std::function<void(
::ActorUniqueID const&)>;
40 using ApplyHeroOfTheVillageCallback = ::std::function<void(
::ActorUniqueID const&)>;
42 using CallbackCallCountType = uint64;
44 using DoesActorExistCallback = ::std::function<bool(
::ActorUniqueID const&)>;
46 using DurationType = int;
48 using FailureCountType = uchar;
50 using GroupNumberType = uchar;
52 using IsVillageDefeatedCallback = ::std::function<bool()>;
54 using NotificationCallback = ::std::function<void(::Raid
const&)>;
56 using PickSpawnPointCallback = ::std::function<bool(uint64,
::Vec3&)>;
58 using RaiderCountType = uchar;
60 using RaiderHealthCallback = ::std::function<float(
::ActorUniqueID const&)>;
62 using SpawnGroupCallback = ::std::function<bool(uint64,
::Vec3, uchar, ::std::unordered_set<::ActorUniqueID>&)>;
67 ::ll::TypedStorage<4, 4, ::Raid::RaidState> mCurrentRaidState;
68 ::ll::TypedStorage<4, 4, ::Raid::RaidStatus> mRaidStatus;
69 ::ll::TypedStorage<1, 1, uchar> mCurrentGroupNumber;
70 ::ll::TypedStorage<1, 1, uchar> mNumGroupsInRaid;
71 ::ll::TypedStorage<8, 8, ::Tick> mGameTick;
72 ::ll::TypedStorage<8, 8, ::Tick> mTicksInState;
73 ::ll::TypedStorage<4, 4, int> mRaidPreparationTime;
74 ::ll::TypedStorage<4, 4, int const> mGroupCompleteDelay;
75 ::ll::TypedStorage<4, 4, int> mTicksUntilGroupComplete;
76 ::ll::TypedStorage<4, 4, int const> mLocationHelpDelay;
77 ::ll::TypedStorage<4, 4, int> mTicksUntilLocationHelp;
78 ::ll::TypedStorage<4, 4, int const> mFinishedDelay;
79 ::ll::TypedStorage<4, 12, ::Vec3> mCurrentGroupSpawnPoint;
80 ::ll::TypedStorage<8, 64, ::std::unordered_set<::ActorUniqueID>> mRaiders;
81 ::ll::TypedStorage<1, 1, uchar> mNumRaidersSpawnedInCurrentGroup;
82 ::ll::TypedStorage<4, 4, float> mCurrentGroupTotalMaxHealth;
83 ::ll::TypedStorage<1, 1, uchar const> mAllowedSpawnFailures;
84 ::ll::TypedStorage<1, 1, uchar> mSpawnFailures;
85 ::ll::TypedStorage<8, 64, ::std::unordered_set<::ActorUniqueID>> mHeroesOfTheVillage;
86 ::ll::TypedStorage<8, 64, ::std::function<bool(uint64,
::Vec3&)>
const> mPickSpawnPointCallback;
88 TypedStorage<8, 64, ::std::function<bool(uint64,
::Vec3, uchar, ::std::unordered_set<::ActorUniqueID>&)>
const>
90 ::ll::TypedStorage<8, 64, ::std::function<bool(
::ActorUniqueID const&)>
const> mDoesActorExistCallback;
91 ::ll::TypedStorage<8, 64, ::std::function<bool()>
const> mIsVillageDefeatedCallback;
92 ::ll::TypedStorage<8, 64, ::std::function<void(::Raid
const&)>> mOnSpawnPointChosenCallback;
93 ::ll::TypedStorage<8, 64, ::std::function<void(::Raid
const&)>> mOnGroupSpawnedCallback;
94 ::ll::TypedStorage<8, 64, ::std::function<void(::Raid
const&)>> mOnAwardRewardsCallback;
95 ::ll::TypedStorage<8, 64, ::std::function<void(::Raid
const&)>> mOnHelpLocateRaidersCallback;
96 ::ll::TypedStorage<8, 64, ::std::function<void(::Raid
const&)>> mOnVillageDefeatedCallback;
97 ::ll::TypedStorage<8, 64, ::std::function<void(
::ActorUniqueID const&)>> mApplyHeroOfTheVillageCallback;
98 ::ll::TypedStorage<8, 64, ::std::function<void(
::ActorUniqueID const&)>> mOnActorRemovedFromRaidCallback;
99 ::ll::TypedStorage<8, 64, ::std::function<float(
::ActorUniqueID const&)>> mGetRaiderHealthCallback;
110 int raidPreparationTime,
111 int groupCompleteDelayInTicks,
112 int locationHelpDelayInTicks,
113 int finishedDelayInTicks,
114 ::SharedTypes::Legacy::Difficulty difficulty,
115 uchar allowedSpawnFailures,
116 ::std::function<
bool(uint64,
::Vec3&)>&& pickSpawnPointCallback,
117 ::std::function<
bool(uint64,
::Vec3, uchar, ::std::unordered_set<::ActorUniqueID>&)>&& spawnGroupCallback,
118 ::std::function<
bool(
::ActorUniqueID const&)>&& doesActorExistCallback,
119 ::std::function<
bool()>&& isVillageDefeatedCallback
122 MCAPI
void _tickAwardingRewards();
124 MCAPI
void _tickGroupInPlay();
126 MCAPI
void _tickSpawningGroup();
130 MCAPI
void addPlayerToHeroList(
::Actor const& actor);
134 MCAPI
void appendDebugInfo(::std::string& infoString)
const;
136 MCAPI
float getBossBarFilledFraction()
const;
138 MCFOLD uint64 getRemainingRaiders()
const;
144 MCAPI
void tick(
::Tick tick);
153 int raidPreparationTime,
154 int groupCompleteDelayInTicks,
155 int locationHelpDelayInTicks,
156 int finishedDelayInTicks,
157 ::SharedTypes::Legacy::Difficulty difficulty,
158 uchar allowedSpawnFailures,
159 ::std::function<
bool(uint64,
::Vec3&)>&& pickSpawnPointCallback,
160 ::std::function<
bool(uint64,
::Vec3, uchar, ::std::unordered_set<::ActorUniqueID>&)>&& spawnGroupCallback,
161 ::std::function<
bool(
::ActorUniqueID const&)>&& doesActorExistCallback,
162 ::std::function<
bool()>&& isVillageDefeatedCallback