You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
assert.ok(allEvents.indexOf('guild_created')!==-1,'guild create should replay');
86
-
assert.ok(allEvents.indexOf('siege_declared')!==-1,'siege declare should replay');
87
-
assert.ok(allEvents.indexOf('siege_contribution')!==-1,'siege contribution should replay');
88
-
assert.ok(allEvents.indexOf('boss_attacked')!==-1,'boss attack should replay');
89
-
assert.ok(allEvents.indexOf('territory_claimed')!==-1,'territory claim should replay after siege expiry: '+JSON.stringify(result.outputs));
90
-
assert.ok(result.boss&&result.boss.totalDamage>0,'boss state should accumulate deterministic damage');
91
-
assert.strictEqual(result.territory.controllerGuild,'world-guild','attacker guild should control territory after uncontested claim: '+JSON.stringify({outputs: result.outputs,territory: result.territory}));
92
-
assert.ok(result.guild&&result.guild.members['world-alpha'],'guild state should persist founder membership');
93
-
assert.ok(result.bossText.indexOf('World Boss')!==-1,'world boss screen should render after populated state');
94
-
assert.ok(result.mapText.indexOf('World Map')!==-1,'map/territory screen should render after populated state');
158
+
assert.ok(result.happy.hasGuild,'guild create should replay');
159
+
assert.ok(result.happy.hasSiegeDeclared,'siege declare should replay');
160
+
assert.ok(result.happy.hasSiegeContribution,'siege contribution should replay');
161
+
assert.ok(result.happy.hasBossAttack,'boss attack should replay');
162
+
assert.ok(result.happy.hasTerritoryClaim,'territory claim should replay after siege expiry: '+JSON.stringify(result.happy.outputs));
163
+
assert.ok(result.happy.boss&&result.happy.boss.totalDamage>0,'boss state should accumulate deterministic damage');
164
+
assert.strictEqual(result.happy.territory.controllerGuild,'world-guild','attacker guild should control territory after uncontested claim: '+JSON.stringify({outputs: result.happy.outputs,territory: result.happy.territory}));
165
+
assert.ok(result.happy.guild&&result.happy.guild.members['world-alpha'],'guild state should persist founder membership');
166
+
assert.ok(result.happy.bossText.indexOf('World Boss')!==-1,'world boss screen should render after populated state');
167
+
assert.ok(result.happy.mapText.indexOf('World Map')!==-1,'map/territory screen should render after populated state');
168
+
169
+
assert.deepStrictEqual(result.expired.output.events,[],'expired active boss should not accept attack: '+JSON.stringify(result.expired));
170
+
assert.strictEqual(result.expired.after,result.expired.before,'expired boss damage must not mutate');
171
+
172
+
assert.ok(result.defeated.output.events.indexOf('boss_attacked')!==-1,'defeat attack should emit boss_attacked');
173
+
assert.ok(result.defeated.output.events.indexOf('boss_defeated')!==-1,'high-power fixture should defeat boss');
174
+
assert.strictEqual(result.defeated.boss.currentHp,0,'defeated boss HP should clamp to zero');
175
+
assert.strictEqual(result.defeated.boss.defeated,true,'defeated flag should be true');
176
+
assert.ok(result.defeated.loot.length===1&&result.defeated.loot[0].account==='slayer-alpha','loot distribution should include contributor: '+JSON.stringify(result.defeated.loot));
177
+
assert.ok(result.defeated.text.indexOf('Defeated')!==-1||result.defeated.text.indexOf('Повержен')!==-1,'defeated UI should render loot/defeated state');
assert.ok(defenderEvents.indexOf('territory_claimed')!==-1,'defender siege claim should resolve');
181
+
assert.strictEqual(result.defender.territory.controllerGuild,'def-guild','defender guild should retain territory after stronger defense: '+JSON.stringify(result.defender));
182
+
assert.strictEqual(result.defender.territory.activeSieges[0].state,'failed','defended siege should be marked failed');
183
+
95
184
console.log('PASS world boss territory siege replay smoke');
0 commit comments