Skip to content

Commit 2b5c952

Browse files
committed
Add Muridae Market stager
1 parent d4e7e95 commit 2b5c952

File tree

5 files changed

+30
-18
lines changed

5 files changed

+30
-18
lines changed

src/scripts/main.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1187,7 +1187,6 @@ import * as detailingFuncs from './modules/details/legacy';
11871187
"Iceberg": stagingFuncs.addIcebergStage,
11881188
"Living Garden": stagingFuncs.addGardenStage,
11891189
"Lost City": stagingFuncs.addLostCityStage,
1190-
"Muridae Market": stagingFuncs.addMuridaeMarketStage,
11911190
"Queso Geyser": stagingFuncs.addQuesoGeyserStage,
11921191
"Sand Dunes": stagingFuncs.addSandDunesStage,
11931192
"Seasonal Garden": stagingFuncs.addSeasonalGardenStage,
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import {type User} from '@scripts/types/hg';
2+
import {type IntakeMessage} from '@scripts/types/mhct';
3+
import {type IStager} from '../stages.types';
4+
5+
export class MuridaeMarketStager implements IStager {
6+
readonly environment: string = 'Muridae Market';
7+
8+
/**
9+
* Report the Artisan Charm status.
10+
*/
11+
addStage(message: IntakeMessage, userPre: User, userPost: User, journal: unknown): void {
12+
const charm = userPre.trinket_name;
13+
14+
message.stage = charm === "Artisan Charm"
15+
? "Artisan"
16+
: "Not Artisan";
17+
}
18+
}

src/scripts/modules/stages/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {IceFortressStager} from './environments/iceFortress';
1010
import {LabyrinthStager} from './environments/labyrinth';
1111
import {MoussuPicchuStager} from './environments/moussuPicchu';
1212
import {MousoleumStager} from './environments/mousoleum';
13+
import {MuridaeMarketStager} from './environments/muridaeMarket';
1314
import {SlushyShorelineStager} from './environments/slushyShoreline';
1415
import {SuperBrieFactoryStager} from './environments/superBrieFactory';
1516

@@ -25,6 +26,7 @@ const stageModules: IStager[] = [
2526
new LabyrinthStager(),
2627
new MoussuPicchuStager(),
2728
new MousoleumStager(),
29+
new MuridaeMarketStager(),
2830
new SlushyShorelineStager(),
2931
new SuperBrieFactoryStager(),
3032
];

src/scripts/modules/stages/legacy.js

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -176,20 +176,6 @@ export function addIcebergStage(message, user, user_post, hunt) {
176176
}
177177
}
178178

179-
/**
180-
* Report the Artisan Charm status.
181-
* @param {Object <string, any>} message The message to be sent.
182-
* @param {Object <string, any>} user The user state object, when the hunt was invoked (pre-hunt).
183-
* @param {Object <string, any>} user_post The user state object, after the hunt.
184-
* @param {Object <string, any>} hunt The journal entry corresponding to the active hunt.
185-
*/
186-
export function addMuridaeMarketStage(message, user, user_post, hunt) {
187-
message.stage = "Not Artisan";
188-
if (user.trinket_name === "Artisan Charm") {
189-
message.stage = "Artisan";
190-
}
191-
}
192-
193179
/**
194180
* Report the zone and depth, if any.
195181
* @param {Object <string, any>} message The message to be sent.

tests/scripts/modules/stages/environments/muridaeMarket.spec.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,33 @@
1-
import {addMuridaeMarketStage} from "@scripts/modules/stages/legacy";
1+
import {MuridaeMarketStager} from "@scripts/modules/stages/environments/muridaeMarket";
22
import {User} from "@scripts/types/hg";
33
import {IntakeMessage} from "@scripts/types/mhct";
44

55
describe('Muridae Market stages', () => {
6+
it('should be for the "Muridae Market" environment', () => {
7+
const stager = new MuridaeMarketStager();
8+
expect(stager.environment).toBe('Muridae Market');
9+
});
10+
611
it('should set stage to "Artisan" if user has artisan charm equipped', () => {
12+
const stager = new MuridaeMarketStager();
713
const message = {} as IntakeMessage;
814
const preUser = {trinket_name: 'Artisan Charm'} as User;
915
const postUser = {} as User;
1016
const journal = {};
1117

12-
addMuridaeMarketStage(message, preUser, postUser, journal);
18+
stager.addStage(message, preUser, postUser, journal);
1319

1420
expect(message.stage).toBe('Artisan');
1521
});
1622

1723
it('should set stage to "Not Artisan" if user does not has artisan charm equipped', () => {
24+
const stager = new MuridaeMarketStager();
1825
const message = {} as IntakeMessage;
1926
const preUser = {trinket_name: 'Power Charm'} as User;
2027
const postUser = {} as User;
2128
const journal = {};
2229

23-
addMuridaeMarketStage(message, preUser, postUser, journal);
30+
stager.addStage(message, preUser, postUser, journal);
2431

2532
expect(message.stage).toBe('Not Artisan');
2633
});

0 commit comments

Comments
 (0)