More work towards Legacy of Rust support (with caveats).

As of this commit, do not consider the experience when playing that new
expansion to be complete. I've only partially written some of the mission texts
and rudimentarily enhanced some boss fights.

Currently there is one major limitation in that the intermission texts cannot
be replaced, as they're hardcoded inside the UMAPINFO. I don't know if I can
work around that.
This commit is contained in:
Mari the Deer 2025-08-20 15:50:07 +02:00
commit 2aa0ea4680
16 changed files with 414 additions and 43 deletions

View file

@ -69,6 +69,17 @@ extend Class DemolitionistMenu
c_minute = 9;
c_tz = "+09";
}
else if ( SWWMUtility.IsLegacyOfRust() )
{
// August 8th 2150, 02:31 EDT
// (August 8th 2150, 11:31 JST)
c_year = 2150;
c_month = 7;
c_day = 7;
c_hour = 2;
c_minute = 31;
c_tz = "EDT";
}
else // Doom
{
// June 6th 2148, 18:37 EDT

View file

@ -23,6 +23,7 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
}
// saves time
bool nrftl = false;
bool lor = false;
bool eviternity = false;
bool eviternitwo = false;
bool hexdd = false;
@ -32,6 +33,7 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
{
int clus = level.cluster;
if ( clus == 11 ) nrftl = true;
lor = SWWMUtility.IsLegacyOfRust();
eviternity = SWWMUtility.IsEviternity();
eviternitwo = SWWMUtility.IsEviternityTwo();
if ( eviternitwo )
@ -59,6 +61,14 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
else if ( level.levelnum <= 32 ) clus = 8;
missionstr = String.Format("$SWWM_MISSION_EVITERNITY%d",clus);
}
else if ( lor )
{
// legacy of rust has its quirks, as with umapinfo there are
// technically no clusters
if ( (level.levelnum <= 7) || (level.levelnum == 15) ) clus = 28;
else if ( (level.levelnum <= 14) || (level.levelnum == 16) ) clus = 29;
missionstr = String.Format("$SWWM_MISSION_DOOM%d",clus);
}
// naive method to guess if this is sigil
else if ( (clus == 5) && (level.mapname.Left(2) == "E5") )
missionstr = String.Format("$SWWM_MISSION_SIGIL");