XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

SpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 1 Star 0
返回提交历史

XFEstudio/SpaceNinjaServer

feat: pride (#4310)

Closes #4232 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/4310 Reviewed-by: Sainan <63328889+sainan@users.noreply.github.com> Co-authored-by: rk-watchdog-timer <347+rk-watchdog-timer@noreply.localhost> Co-committed-by: rk-watchdog-timer <347+rk-watchdog-timer@noreply.localhost>

555d64fd
rk-watchdog-timer <347+rk-watchdog-timer@noreply.localhost>
提交于

代码差异

12 个文件 +107 -0
Modified config-vanilla.json +1 -0
@@ -99,6 +99,7 @@
99 99 "plagueStarOverride": null,
100 100 "starDaysOverride": null,
101 101 "saintPatrickOverride": null,
102 "prideOverride": null,
102 103 "xmasOverride": null,
103 104 "lunarNewYear": null,
104 105 "dogDaysOverride": null,
Modified src/constants/gameToBuildVersion.ts +1 -0
@@ -24,6 +24,7 @@ const gameToBuildVersion = {
24 24 "33.0.0": "2023.04.25.23.40",
25 25 "32.2.0": "2022.11.30.08.13",
26 26 "32.0.0": "2022.09.06.19.24",
27 "31.6.0": "2022.06.09.08.45",
27 28 "31.5.0": "2022.04.29.12.53",
28 29 "31.0.0": "2021.12.15.00.15",
29 30 "30.5.0": "2021.07.05.17.03",
Modified src/services/configService.ts +1 -0
@@ -107,6 +107,7 @@ export interface IConfig {
107 107 plagueStarOverride?: boolean;
108 108 starDaysOverride?: boolean;
109 109 saintPatrickOverride?: boolean;
110 prideOverride?: boolean;
110 111 xmasOverride?: boolean;
111 112 lunarNewYear?: string;
112 113 dogDaysOverride?: boolean;
Modified src/services/worldStateService.ts +89 -0
@@ -2682,6 +2682,95 @@ export const getWorldState = (
2682 2682 pushFlashSales(worldState, storeItems, activation, expiry, "SEASONAL", buildLabel);
2683 2683 }
2684 2684
2685 // Pride Month - June
2686 const isJune = date.getUTCMonth() == 5;
2687 if (
2688 (config.worldState?.prideOverride ?? isJune) &&
2689 version_compare(buildLabel, gameToBuildVersion["29.5.0"]) >= 0
2690 ) {
2691 const activation = config.worldState?.prideOverride ? 1772467200000 : Date.UTC(date.getUTCFullYear(), 5, 1);
2692 const expiry = config.worldState?.prideOverride ? 2000000000000 : Date.UTC(date.getUTCFullYear(), 6, 1);
2693 const storeItems: (Partial<IFlashSale> & { TypeName: string; minBuildLabel?: string })[] = [
2694 // Color palettes
2695 { TypeName: "/Lotus/Types/StoreItems/SuitCustomizations/ColourPickerPrideItemA", RegularOverride: 1 },
2696 {
2697 TypeName: "/Lotus/Types/StoreItems/SuitCustomizations/ColourPickerPrideItemB",
2698 RegularOverride: 1,
2699 minBuildLabel: gameToBuildVersion["31.5.0"]
2700 },
2701 // Glyphs
2702 {
2703 TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImagePrideLotusSymbolGlyph",
2704 RegularOverride: 1,
2705 minBuildLabel: gameToBuildVersion["42.0.0"]
2706 },
2707 {
2708 TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImagePrideCommunity",
2709 RegularOverride: 1,
2710 minBuildLabel: gameToBuildVersion["31.6.0"]
2711 },
2712 {
2713 TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageHildrynPrideCommunity",
2714 RegularOverride: 1,
2715 minBuildLabel: gameToBuildVersion["33.5.0"]
2716 },
2717 {
2718 TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImagePrideGlyph",
2719 RegularOverride: 1,
2720 minBuildLabel: gameToBuildVersion["35.5.0"]
2721 },
2722 {
2723 TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImagePride2025Glyph",
2724 RegularOverride: 1,
2725 minBuildLabel: gameToBuildVersion["38.5.0"]
2726 },
2727 // Ship decorations
2728 {
2729 TypeName: "/Lotus/Types/Items/ShipDecos/Venus/PrideCommunityDisplay",
2730 RegularOverride: 1,
2731 minBuildLabel: gameToBuildVersion["31.6.0"]
2732 },
2733 {
2734 TypeName: "/Lotus/Types/Items/ShipDecos/Pride2023Display",
2735 RegularOverride: 1,
2736 minBuildLabel: gameToBuildVersion["33.5.0"]
2737 },
2738 {
2739 TypeName: "/Lotus/Types/Items/ShipDecos/Venus/Pride2024Display",
2740 RegularOverride: 1,
2741 minBuildLabel: gameToBuildVersion["35.5.0"]
2742 },
2743 {
2744 TypeName: "/Lotus/Types/Items/ShipDecos/Pride2in1Display",
2745 RegularOverride: 1,
2746 minBuildLabel: gameToBuildVersion["38.6.0"]
2747 },
2748 {
2749 TypeName: "/Lotus/Types/Items/ShipDecos/Events/NeonPrideWings",
2750 RegularOverride: 1,
2751 minBuildLabel: gameToBuildVersion["35.5.0"]
2752 },
2753 {
2754 TypeName: "/Lotus/Types/Items/ShipDecos/HeartOroRainbowDeco",
2755 RegularOverride: 1,
2756 minBuildLabel: gameToBuildVersion["38.6.0"]
2757 },
2758 // 2026 items
2759 {
2760 TypeName: "/Lotus/Types/Items/ShipDecos/Pride2026Poster",
2761 RegularOverride: 1,
2762 minBuildLabel: gameToBuildVersion["42.0.0"]
2763 },
2764 {
2765 TypeName: "/Lotus/Types/Items/ShipDecos/Props/Seasonal/Pride2026SquarePictureFrame",
2766 RegularOverride: 1,
2767 minBuildLabel: gameToBuildVersion["42.0.0"]
2768 }
2769 ];
2770
2771 pushFlashSales(worldState, storeItems, activation, expiry, "SEASONAL", buildLabel);
2772 }
2773
2685 2774 const xmasStart = Date.UTC(date.getUTCFullYear(), 11, 1);
2686 2775 const xmasEnd = Date.UTC(date.getUTCFullYear() + 1, 1, 1);
2687 2776 const isXmas = timeMs >= xmasStart && timeMs < xmasEnd;
Modified static/webui/index.html +8 -0
@@ -1563,6 +1563,14 @@
1563 1563 <option value="false" data-loc="disabled"></option>
1564 1564 </select>
1565 1565 </div>
1566 <div class="form-group mt-2">
1567 <label class="form-label" for="worldState.prideOverride" data-loc="worldState_prideOverride"></label>
1568 <select class="form-control" id="worldState.prideOverride" data-default="null">
1569 <option value="null" data-loc="normal"></option>
1570 <option value="true" data-loc="enabled"></option>
1571 <option value="false" data-loc="disabled"></option>
1572 </select>
1573 </div>
1566 1574 <div class="form-group mt-2">
1567 1575 <label class="form-label" for="worldState.lunarNewYear" data-loc-itemMap="/Lotus/Language/Store/LunarNewYearSearchTag"></label>
1568 1576 <select class="form-control" id="worldState.lunarNewYear" data-default="null">
Modified static/webui/translations/de.js +1 -0
@@ -318,6 +318,7 @@ dict = {
318 318 worldState_tennoLiveRelay: `TennoLive Relais`,
319 319 worldState_baroTennoConRelay: `Baros TennoCon-Relais`,
320 320 worldState_saintPatrick: `St. Patrick’s Day`,
321 worldState_prideOverride: `[UNTRANSLATED] Pride Month`,
321 322 worldState_xmas: `Tennobaum`,
322 323 worldState_lunarNewYearEntry: `|VAL|: Jahr |ANIMAL|`,
323 324 worldState_lunarNewYearAnimal1: `der Ratte`,
Modified static/webui/translations/en.js +1 -0
@@ -317,6 +317,7 @@ dict = {
317 317 worldState_tennoLiveRelay: `TennoLive Relay`,
318 318 worldState_baroTennoConRelay: `Baro's TennoCon Relay`,
319 319 worldState_saintPatrick: `St. Patrick’s Day`,
320 worldState_prideOverride: `Pride Month`,
320 321 worldState_xmas: `Tennobaum`,
321 322 worldState_lunarNewYearEntry: `|VAL|: Year of the |ANIMAL|`,
322 323 worldState_lunarNewYearAnimal1: `Rat`,
Modified static/webui/translations/es.js +1 -0
@@ -318,6 +318,7 @@ dict = {
318 318 worldState_tennoLiveRelay: `Repetidor de TennoLive`,
319 319 worldState_baroTennoConRelay: `Repetidor de Baro de la TennoCon`,
320 320 worldState_saintPatrick: `Día de San Patricio`,
321 worldState_prideOverride: `[UNTRANSLATED] Pride Month`,
321 322 worldState_xmas: `[UNTRANSLATED] Tennobaum`,
322 323 worldState_lunarNewYearEntry: `[UNTRANSLATED] |VAL|: Year of the |ANIMAL|`,
323 324 worldState_lunarNewYearAnimal1: `[UNTRANSLATED] Rat`,
Modified static/webui/translations/fr.js +1 -0
@@ -318,6 +318,7 @@ dict = {
318 318 worldState_tennoLiveRelay: `Relais TennoLive`,
319 319 worldState_baroTennoConRelay: `Relais Baro TennoCon`,
320 320 worldState_saintPatrick: `Saint-Patrick`,
321 worldState_prideOverride: `[UNTRANSLATED] Pride Month`,
321 322 worldState_xmas: `Tennobaum`,
322 323 worldState_lunarNewYearEntry: `|VAL|: Année |ANIMAL|`,
323 324 worldState_lunarNewYearAnimal1: `du Rat`,
Modified static/webui/translations/ru.js +1 -0
@@ -318,6 +318,7 @@ dict = {
318 318 worldState_tennoLiveRelay: `Реле TennoLive`,
319 319 worldState_baroTennoConRelay: `Реле Баро TennoCon`,
320 320 worldState_saintPatrick: `День Святого Патрика`,
321 worldState_prideOverride: `[UNTRANSLATED] Pride Month`,
321 322 worldState_xmas: `Теннобаум`,
322 323 worldState_lunarNewYearEntry: `|VAL|: Год |ANIMAL|`,
323 324 worldState_lunarNewYearAnimal1: `Крысы`,
Modified static/webui/translations/uk.js +1 -0
@@ -318,6 +318,7 @@ dict = {
318 318 worldState_tennoLiveRelay: `Реле TennoLive`,
319 319 worldState_baroTennoConRelay: `Реле Баро TennoCon`,
320 320 worldState_saintPatrick: `День святого Патрика`,
321 worldState_prideOverride: `[UNTRANSLATED] Pride Month`,
321 322 worldState_xmas: `Теннобаум`,
322 323 worldState_lunarNewYearEntry: `|VAL|: Рік |ANIMAL|`,
323 324 worldState_lunarNewYearAnimal1: `[UNTRANSLATED] Rat`,
Modified static/webui/translations/zh.js +1 -0
@@ -318,6 +318,7 @@ dict = {
318 318 worldState_tennoLiveRelay: `TennoLive中继站`,
319 319 worldState_baroTennoConRelay: `Baro的TennoCon中继站`,
320 320 worldState_saintPatrick: `圣帕特里克节`,
321 worldState_prideOverride: `[UNTRANSLATED] Pride Month`,
321 322 worldState_xmas: `活动:Tennobaum`,
322 323 worldState_lunarNewYearEntry: `|VAL|:|ANIMAL|年`,
323 324 worldState_lunarNewYearAnimal1: `鼠`,