Skip to content

Commit

Permalink
v3.2.2.2 release Merge pull request #986 from Die4Ever/develop
Browse files Browse the repository at this point in the history
v3.2.2.2 release
  • Loading branch information
Die4Ever authored Oct 9, 2024
2 parents 0355e05 + 684b3e6 commit 45c4aa7
Show file tree
Hide file tree
Showing 19 changed files with 94 additions and 42 deletions.
2 changes: 1 addition & 1 deletion DXRBalance/DeusEx/Classes/AugEMP.uc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ function PostPostBeginPlay()
{
Super.PostPostBeginPlay();
// DXRando: AugEMP makes you immune to Scramble Grenades
default.Description = "Nanoscale EMP generators partially protect individual nanites and reduce bioelectrical drain by canceling incoming pulses."
default.Description = "Nanoscale EMP generators partially protect individual nanites and reduce bioelectrical drain by canceling incoming pulses. "
$ "All levels make you immune to Scramble Grenades."
$ "|n|nTECH ONE: Damage from EMP attacks is reduced slightly."
$ "|n|nTECH TWO: Damage from EMP attacks is reduced moderately."
Expand Down
6 changes: 3 additions & 3 deletions DXRBalance/DeusEx/Classes/BalanceAugHealing.uc
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ function HealPart(out int points, out int amt)
{
local int max;

max = Int(LevelValues[CurrentLevel]);
max = Int(GetAugLevelValue());
HealPartMax(points, amt, max);
}

Expand All @@ -71,7 +71,7 @@ function HealPartMax(out int points, out int amt, int max)
local int spill;

max = Min(max, Player.default.HealthTorso);
max = Min(max, LevelValues[CurrentLevel]);
max = Min(max, GetAugLevelValue());

if(points >= max) return;
if(amt <= 0) return;
Expand All @@ -89,7 +89,7 @@ function HealPartMax(out int points, out int amt, int max)
function bool NeedsHeal()
{
local int i;
i = Int(LevelValues[CurrentLevel]);
i = Int(GetAugLevelValue());
return Player.HealthHead < Min(i, Player.default.HealthHead)
|| Player.HealthTorso < Min(i, Player.default.HealthTorso)
|| Player.HealthLegRight < Min(i, Player.default.HealthLegRight)
Expand Down
6 changes: 3 additions & 3 deletions DXRCore/DeusEx/Classes/DXRVersion.uc
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,20 @@ simulated static function CurrentVersion(optional out int major, optional out in
major=3;
minor=2;
patch=2;
build=1;//build can't be higher than 99
build=2;//build can't be higher than 99
}

simulated static function bool VersionIsStable()
{
return false;
return true;
}

simulated static function string VersionString(optional bool full)
{
local int major,minor,patch,build;
local string status;

status = "Alpha";
status = "";

if(status!="") {
status = " " $ status;
Expand Down
6 changes: 5 additions & 1 deletion DXRCore/DeusEx/Classes/Telemetry.uc
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ function int SendText( coerce string Str )
function HTTPError(int Code)
{
log(Self$": HTTPError: " $ Code);
module.HTTPError(Code);
Super.HTTPError(Code);
}

Expand Down Expand Up @@ -116,7 +117,10 @@ function Done()
ServerIpAddr.Addr = module.GetAddrFromCache();
}
running = false;
if( ServerIpAddr.Addr == 0 ) return;
if( ServerIpAddr.Addr == 0 ) {
module.HTTPError(0);
return;
}
i = Len(content[start]);
if( i > 0 ) {
log(Self$": coming back for "$i$" more!");
Expand Down
9 changes: 9 additions & 0 deletions DXRMapFixups/DeusEx/Classes/DXRFixupM02.uc
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,7 @@ function CreateAnsweringMachineConversation(Actor tad)
function PostFirstEntryMapFixes()
{
local bool RevisionMaps;
local Female2 female;

RevisionMaps = class'DXRMapVariants'.static.IsRevisionMaps(player());

Expand All @@ -380,6 +381,14 @@ function PostFirstEntryMapFixes()
Spawn(class'#var(prefix)FireExtinguisher',,, GetRandomPositionFine());
}

break;
case "02_NYC_BAR":
foreach AllActors(class'Female2', female, 'Female2') {
if (female.bindName == "BarWoman1") {
female.FamiliarName = "Meg";
break;
}
}
break;
}
}
Expand Down
17 changes: 17 additions & 0 deletions DXRMapFixups/DeusEx/Classes/DXRFixupM04.uc
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ function PreFirstEntryMapFixes()
local #var(prefix)HumanCivilian hc;
local Teleporter tel;
local DynamicTeleporter dtel;
local #var(prefix)LaserTrigger lt;
local #var(prefix)Datacube dc;

VanillaMaps = class'DXRMapVariants'.static.IsVanillaMaps(player());

Expand Down Expand Up @@ -364,6 +366,13 @@ function PreFirstEntryMapFixes()
}
}

foreach AllActors(class'#var(prefix)Datacube', dc) {
if (dc.textTag == '04_Datacube03') {
dc.TextPackage = "#var(package)";
break;
}
}

break;

case "04_NYC_SMUG":
Expand All @@ -378,6 +387,14 @@ function PreFirstEntryMapFixes()
class'MoverToggleTrigger'.static.CreateMTT(self, 'DXRSmugglerElevatorUsed', 'elevatorbutton', 1, 0, 0.0, 5);

break;

case "04_NYC_UNDERGROUND":
foreach AllActors(class'#var(prefix)LaserTrigger',lt){
if (lt.Location.Z < -574 && lt.Location.Z > -575){
lt.SetLocation(lt.Location+vect(0,0,11)); //Move them slightly higher up to match their location in mission 2, so you can crouch under
}
}
break;
}
}

Expand Down
2 changes: 1 addition & 1 deletion DXRMapFixups/DeusEx/Classes/DXRFixupM08.uc
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ function PreFirstEntryMapFixes()
case "08_NYC_UNDERGROUND":
foreach AllActors(class'#var(prefix)LaserTrigger',lt){
if (lt.Location.Z < -574 && lt.Location.Z > -575){
lt.SetLocation(lt.Location+vect(0,0,11)); //Move them slightly higher up to match their location in missions 2 and 4, so you can crouch under
lt.SetLocation(lt.Location+vect(0,0,11)); //Move them slightly higher up to match their location in mission 2, so you can crouch under
}
}
}
Expand Down
38 changes: 12 additions & 26 deletions DXRMissions/DeusEx/Classes/DXRMissionsM02.uc
Original file line number Diff line number Diff line change
Expand Up @@ -50,31 +50,17 @@ function int InitGoals(int mission, string map)
AddGoalActor(goal, 3, 'AmbientSoundTriggered0', PHYS_None);
AddGoalActor(goal, 4, 'AmbientSoundTriggered1', PHYS_None);

if (FeatureFlag(3,3,0, "M02GeneratorRework")){
AddGoalLocation("02_NYC_WAREHOUSE", "Warehouse", GOAL_TYPE1 | VANILLA_GOAL, vect(575,-608,122), rot(32768, -16384, 0));
generator_alley = AddGoalLocation("02_NYC_WAREHOUSE", "Alley", GOAL_TYPE1, vect(-550, 1700, 110), rot(0,32768,-16384));
AddMutualExclusion(generator_alley, jock_sewer);// too easy
AddGoalLocation("02_NYC_WAREHOUSE", "Apartment", GOAL_TYPE1, vect(460,1130,1000), rot(0,32768,-16384));
AddGoalLocation("02_NYC_WAREHOUSE", "Basement", GOAL_TYPE1, vect(300,-480,-125), rot(0,-16384,-16384));
generator_sewer = AddGoalLocation("02_NYC_WAREHOUSE", "Sewer", GOAL_TYPE1, vect(-1695,784,-210), rot(32768,-32768,0));
AddMutualExclusion(generator_sewer, jock_sewer);// can't put Jock and the generator both in the sewers
//This location works now (with the rework), but we can wait on enabling it until we feel like we want to ruin runs
//AddGoalLocation("02_NYC_WAREHOUSE", "3rd Floor", GOAL_TYPE1, vect(1340, -700, 575), rot(32768, 0, 32768)); //Near the ramp
//AddGoalLocation("02_NYC_WAREHOUSE", "4th Floor", GOAL_TYPE1, vect(390,-660,832), rot(32768,0,0)); //Among the boxes

} else {
AddGoalLocation("02_NYC_WAREHOUSE", "Warehouse", GOAL_TYPE1 | VANILLA_GOAL, vect(576.000000, -512.000000, 71.999939), rot(32768, -16384, 0));
generator_alley = AddGoalLocation("02_NYC_WAREHOUSE", "Alley", GOAL_TYPE1, vect(-640.000000, 1760.000000, 128.000000), rot(0,32768,-16384));
AddMutualExclusion(generator_alley, jock_sewer);// too easy
AddGoalLocation("02_NYC_WAREHOUSE", "Apartment", GOAL_TYPE1, vect(368.000000, 1248.000000, 992.000000), rot(0,32768,-16384));
AddGoalLocation("02_NYC_WAREHOUSE", "Basement", GOAL_TYPE1, vect(224, -512, -192), rot(0,-16384,-16384));
generator_sewer = AddGoalLocation("02_NYC_WAREHOUSE", "Sewer", GOAL_TYPE1, vect(-1600.000000, 784.000000, -256.000000), rot(32768,-32768,0));

// pawns run into these and break them
//AddGoalLocation("02_NYC_WAREHOUSE", "3rd Floor", GOAL_TYPE1, vect(1360.000000, -512.000000, 528.000000), rot(32768, -16384, 0));
//AddGoalLocation("02_NYC_WAREHOUSE", "3rd Floor Corner", GOAL_TYPE1, vect(1600, -1136.000000, 540), rot(32768, 16384, 0));
AddGoalLocation("02_NYC_WAREHOUSE", "Warehouse", GOAL_TYPE1 | VANILLA_GOAL, vect(575,-608,122), rot(32768, -16384, 0));
generator_alley = AddGoalLocation("02_NYC_WAREHOUSE", "Alley", GOAL_TYPE1, vect(-550, 1700, 110), rot(0,32768,-16384));
AddMutualExclusion(generator_alley, jock_sewer);// too easy
AddGoalLocation("02_NYC_WAREHOUSE", "Apartment", GOAL_TYPE1, vect(460,1130,1000), rot(0,32768,-16384));
AddGoalLocation("02_NYC_WAREHOUSE", "Basement", GOAL_TYPE1, vect(300,-480,-125), rot(0,-16384,-16384));
generator_sewer = AddGoalLocation("02_NYC_WAREHOUSE", "Sewer", GOAL_TYPE1, vect(-1695,784,-210), rot(32768,-32768,0));
AddMutualExclusion(generator_sewer, jock_sewer);// can't put Jock and the generator both in the sewers
//This location works now (with the rework), but we can wait on enabling it until we feel like we want to ruin runs
//AddGoalLocation("02_NYC_WAREHOUSE", "3rd Floor", GOAL_TYPE1, vect(1340, -700, 575), rot(32768, 0, 32768)); //Near the ramp
//AddGoalLocation("02_NYC_WAREHOUSE", "4th Floor", GOAL_TYPE1, vect(390,-660,832), rot(32768,0,0)); //Among the boxes

}
AddMutualExclusion(generator_sewer, jock_sewer);// can't put Jock and the generator both in the sewers


Expand Down Expand Up @@ -254,7 +240,7 @@ function PreFirstEntryMapFixes()
if(dxr.localURL=="02_NYC_WAREHOUSE") {
ConsoleCommand("set #var(prefix)AmbientSoundTriggered bstatic false");// HACK? maybe better than creating a new subclass for DynamicSoundTriggered and then doing replacements

if (!RevisionMaps && FeatureFlag(3,3,0, "M02GeneratorRework")){
if (!RevisionMaps){
foreach AllActors(class'#var(DeusExPrefix)Mover',dxm,'Generator'){
dxm.SetCollision(false,false,false);
RemoveMoverPrePivot(dxm);
Expand Down Expand Up @@ -293,7 +279,7 @@ function AfterMoveGoalToLocation(Goal g, GoalLocation Loc)
RevisionMaps = class'DXRMapVariants'.static.IsRevisionMaps(player());

if (g.name=="Generator"){
if (!RevisionMaps && FeatureFlag(3,3,0, "M02GeneratorRework")){
if (!RevisionMaps){
if (Loc.Name=="Warehouse" || Loc.Name=="Sewer" || Loc.Name=="3rd Floor" || Loc.Name=="4th Floor"){ //These ones lie horizontal
rad=175;
height=100;
Expand Down
2 changes: 1 addition & 1 deletion DXRModules/DeusEx/Classes/DXRHalloween.uc
Original file line number Diff line number Diff line change
Expand Up @@ -535,7 +535,7 @@ function SpawnSpiderweb(vector loc)

EndTrace = loc + vector(rot) * -32;
foreach TraceTexture(class'Actor', target, texName, texGroup, texFlags, HitLocation, HitNormal, EndTrace, loc) {
if ((texFlags & 1) !=0) { // 1 = PF_Invisible
if ((texFlags & 0x81) !=0) { // 1 = PF_Invisible, 0x80 == PF_FakeBackdrop
return;
}
break;
Expand Down
31 changes: 25 additions & 6 deletions DXRModules/DeusEx/Classes/DXRTelemetry.uc
Original file line number Diff line number Diff line change
Expand Up @@ -43,23 +43,36 @@ function AnyEntry()
info("health: "$p.health$", HealthLegLeft: "$p.HealthLegLeft$", HealthLegRight: "$p.HealthLegRight$", HealthTorso: "$p.HealthTorso$", HealthHead: "$p.HealthHead$", HealthArmLeft: "$p.HealthArmLeft$", HealthArmRight: "$p.HealthArmRight);
info("renderer: " $ GetConfig("Engine.Engine", "GameRenderDevice"));

CheckOfflineUpdates();
if(!enabled) CheckOfflineUpdates();
}

function CheckOfflineUpdates()
{
local DXRNews news;
local DXRNewsWindow newswindow;
local DeusExRootWindow r;
local string s;

if(enabled) return;// telemetry enabled, get real updates
if(newsdates[0]!="") return;
if(!CanShowNotification()) return;
if(!DateAtLeast(2025, 6, 23)) return;// day after Deus Ex anniversary, especially with timezones, TODO: make this dynamic from the compiler

newsdates[0] = "2025-06-22";
newsheaders[0] = "Anniversary Update!";
newstexts[0] = "You have Online Features disabled, so we can't know for sure, but there's a good chance that you are behind many updates!|n|nAlso happy anniversary to Deus Ex and Randomizer!";
if(DateAtLeast(2052, 1, 1)) {
newsdates[0] = "2052-01-01";
newsheaders[0] = "Is Deus Ex Real Life Yet?";
newstexts[0] = "Thank you for still playing this mod in the year " $ Level.Year $ ", but you're probably extremely behind on updates. The project is open source, so even if we have moved on, maybe someone else has taken over?";
}
else if(DateAtLeast(2025, 6, 23)) {// day after Deus Ex anniversary, especially with timezones, TODO: make this dynamic from the compiler
newsdates[0] = "2025-06-22";
newsheaders[0] = "Anniversary Update!";
newstexts[0] = "You have Online Features disabled or the server is down, so we can't know for sure, but there's a good chance that you are behind many updates!|n|nAlso happy anniversary to Deus Ex and Randomizer!";
} else {
return;
}

s = "offline " $ Level.Year @ Level.Month @ (Level.Day/7);
if(s == last_notification) return;
last_notification = s;
SaveConfig();
notification_url = "https://github.com/Die4Ever/deus-ex-randomizer/releases/latest";

foreach AllObjects(class'DXRNews', news) {
Expand Down Expand Up @@ -166,6 +179,12 @@ function int GetAddrFromCache()
return cache_addr;
}

function HTTPError(int Code)
{
if(newsdates[0]=="")
CheckOfflineUpdates();
}

function ReceivedData(string data)
{
local string status;
Expand Down
2 changes: 2 additions & 0 deletions DXRando/DeusEx/Classes/DXRandoText.uc
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,5 @@ class DXRandoText extends object abstract;
#exec DEUSEXTEXT IMPORT FILE=Text\10_HostelBulletinMenu.txt
#exec DEUSEXTEXT IMPORT FILE=Text\10_HostelBulletin01.txt
#exec DEUSEXTEXT IMPORT FILE=Text\10_HostelBulletin02.txt

#exec DEUSEXTEXT IMPORT FILE=Text\04_Datacube03.txt
13 changes: 13 additions & 0 deletions DXRando/DeusEx/Text/04_Datacube03.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<DC=255,255,255>
<P>ONE WORLD BANKING
<P>3 Plaza One, New York
<P>"The future of banking is One World."
<P>
<P>Mr. Renton,
<P>
<P>As requested, we've provided you with a copy of your bank account and PIN number. We appreciate your business and look forward to answering any other questions you might have.
<P>
<P>Account #: 487659
<P>Pin #: 259087
<P>
<P>Please keep this record in a secure location to prevent unauthorized use of your account.
Binary file modified DeusEx.u
Binary file not shown.
Binary file modified GMDXRandomizer.u
Binary file not shown.
1 change: 1 addition & 0 deletions GUI/DeusEx/Classes/DXRNewsWindow.uc
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ function CreateControls()

news = DXRNews(winClient.NewChild(class'DXRNews'));
news.CreateNews(player, 0, 0, ClientWidth, ClientHeight);
news.SetBackgroundStyle(DSTY_Normal); // update notification window has a solid black background, because it can appear on top of other windows
}

function ProcessAction(String actionKey)
Expand Down
1 change: 1 addition & 0 deletions GUI/DeusEx/Classes/MenuChoice_ShowBingoUpdates.uc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ class MenuChoice_ShowBingoUpdates extends DXRMenuUIChoiceInt;

static function bool IsEnabled(DXRFlags f)
{
if(f.IsHordeMode()) return false;
return (default.value==2) ||
(default.value==1 && !f.IsReducedRando() && !f.IsSpeedrunMode()) ||
(default.value==1 && f.settings.bingo_win>0);
Expand Down
Binary file modified HXRandomizer.u
Binary file not shown.
Binary file modified RevRandomizer.u
Binary file not shown.
Binary file modified VMDRandomizer.u
Binary file not shown.

0 comments on commit 45c4aa7

Please sign in to comment.