Skip to content

Commit

Permalink
v3.2.2.1 Alpha Merge pull request #979 from Die4Ever/develop
Browse files Browse the repository at this point in the history
v3.2.2.1 Alpha
  • Loading branch information
Die4Ever authored Oct 7, 2024
2 parents c6b6c2e + d6dce32 commit 0355e05
Show file tree
Hide file tree
Showing 17 changed files with 260 additions and 71 deletions.
3 changes: 2 additions & 1 deletion DXRCore/DeusEx/Classes/DXRActorsBase.uc
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,7 @@ function Inventory MoveNextItemTo(Inventory item, vector Location, name Tag)
local int i;
l("MoveNextItemTo("$item@Location@Tag$")");
// Find the next item we can process.
while(item != None && (item.IsA('NanoKeyRing') || (!item.bDisplayableInv) || Ammo(item) != None))
while(item != None && (item.IsA('NanoKeyRing') || (!item.bDisplayableInv) || Ammo(item) != None || MemConUnit(item) != None))
item = item.Inventory;
if(item == None) return None;
Expand Down Expand Up @@ -581,6 +581,7 @@ static function HateEveryone(ScriptedPawn sp, optional name except)
local ScriptedPawn other;
sp.ChangeAlly('Player',-1,True);
foreach sp.AllActors(class'ScriptedPawn',other) {
if(IsCritter(other.class)) continue;
if(other.Alliance != except && other.Alliance != sp.Alliance) {
sp.ChangeAlly(other.Alliance,-1,True);
}
Expand Down
8 changes: 4 additions & 4 deletions DXRCore/DeusEx/Classes/DXRVersion.uc
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,21 @@ simulated static function CurrentVersion(optional out int major, optional out in
{
major=3;
minor=2;
patch=1;
build=0;//build can't be higher than 99
patch=2;
build=1;//build can't be higher than 99
}

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

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

status = "";
status = "Alpha";

if(status!="") {
status = " " $ status;
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 @@ -148,6 +148,15 @@ function PreFirstEntryMapFixes()
light.LightBrightness=16;
light.LightRadius=10;

//add a small spotlight from the lamp in the alley.
//This helps to just put a little bit of light on the generator location
//in the case of 0 brightness boost
light = DynamicLight(Spawnm(class'DynamicLight',,, vect(-645,1760,310),rot(-10000,-16384,0)));
light.LightType=LT_Steady;
light.LightEffect=LE_Spotlight;
light.LightBrightness=32;
light.LightRadius=64;

// fix collision with the fence https://github.com/Die4Ever/deus-ex-randomizer/issues/665
foreach AllActors(class'DeusExMover', d) {
if(d.Event == 'BlewFence') break;
Expand Down
11 changes: 0 additions & 11 deletions DXRMapFixups/DeusEx/Classes/DXRFixupM03.uc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ function PostFirstEntryMapFixes()
local Actor a;
local bool RevisionMaps;
local #var(prefix)NanoKey key;
local AllianceTrigger at;

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

Expand All @@ -35,16 +34,6 @@ function PostFirstEntryMapFixes()
}
break;

case "03_NYC_MOLEPEOPLE":
if (dxr.flags.settings.starting_map >= 35) {
foreach AllActors(class'AllianceTrigger', at, 'surrender') {
at.Trigger(None, None);
break;
}
dxr.flagbase.SetBool('M03MeetTerroristLeader_Played', true);
}
break;

case "03_NYC_AirfieldHeliBase":
if (!RevisionMaps){
//crates to get back over the beginning of the level
Expand Down
69 changes: 58 additions & 11 deletions DXRMissions/DeusEx/Classes/DXRMissionsM02.uc
Original file line number Diff line number Diff line change
Expand Up @@ -49,16 +49,34 @@ function int InitGoals(int mission, string map)
AddGoalActor(goal, 2, 'CrateExplosiveSmall6', PHYS_None);
AddGoalActor(goal, 3, 'AmbientSoundTriggered0', PHYS_None);
AddGoalActor(goal, 4, 'AmbientSoundTriggered1', PHYS_None);
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));

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));

}
AddMutualExclusion(generator_sewer, jock_sewer);// can't put Jock and the generator both in the sewers
// 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));


AddGoal("02_NYC_WAREHOUSE", "Generator Computer", GOAL_TYPE2, 'ComputerPersonal5', PHYS_Falling);
AddGoal("02_NYC_WAREHOUSE", "Email Computer", GOAL_TYPE2, 'ComputerPersonal0', PHYS_Falling);
Expand Down Expand Up @@ -212,6 +230,7 @@ function PreFirstEntryMapFixes()
{
local #var(prefix)AnnaNavarre anna;
local #var(prefix)InterpolateTrigger it;
local #var(DeusExPrefix)Mover dxm;
local bool RevisionMaps;

RevisionMaps = class'DXRMapVariants'.static.IsRevisionMaps(player());
Expand All @@ -234,6 +253,17 @@ 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")){
foreach AllActors(class'#var(DeusExPrefix)Mover',dxm,'Generator'){
dxm.SetCollision(false,false,false);
RemoveMoverPrePivot(dxm);
dxm.PrePivot=vect(-80,0,-50); //This is intentionally not a vectm
dxm.BasePos=dxm.BasePos+dxm.PrePivot;
dxm.SetLocation(dxm.BasePos);
dxm.SetCollision(true,true,true);
}
}
}
}

Expand All @@ -257,10 +287,27 @@ function AfterMoveGoalToLocation(Goal g, GoalLocation Loc)
local #var(DeusExPrefix)Mover m;
local #var(prefix)ComputerPersonal cp;
local DXRPasswords passwords;
local int i;
local int i,rad,height;
local bool RevisionMaps;

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

if (g.name=="Generator"){
class'DXRHoverHint'.static.Create(self, "NSF Generator", g.actors[0].a.Location, 175, 140, g.actors[0].a);
if (!RevisionMaps && FeatureFlag(3,3,0, "M02GeneratorRework")){
if (Loc.Name=="Warehouse" || Loc.Name=="Sewer" || Loc.Name=="3rd Floor" || Loc.Name=="4th Floor"){ //These ones lie horizontal
rad=175;
height=100;
} else { //The rest stand upright
rad=120;
height=131;
}
class'DXRHoverHint'.static.Create(self, "NSF Generator", g.actors[0].a.Location, rad, height, g.actors[0].a);
a = Spawn(class'DynamicBlockMonsters',,, g.actors[0].a.Location);
a.SetBase(g.actors[0].a);
a.SetCollisionSize(rad, height);
} else {
class'DXRHoverHint'.static.Create(self, "NSF Generator", g.actors[0].a.Location, 175, 140, g.actors[0].a);
}

for(i=0; i<ArrayCount(g.actors); i++) {
if( AmbientSoundTriggered(g.actors[i].a) != None) {
Expand Down
10 changes: 7 additions & 3 deletions DXRModules/DeusEx/Classes/DXRAutosave.uc
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ static function string GetSaveFailReason(DeusExPlayer player)
}
if( f.autosave == FixedSaves || f.autosave == UnlimitedFixedSaves ) {
if(Computers(player.FrobTarget) == None && ATM(player.FrobTarget) == None) {
return "You need to have a computer highlighted to save! Good Luck!";
return "Saving is only allowed when a computer is highlighted! Good Luck!";
}
}

Expand Down Expand Up @@ -347,16 +347,20 @@ function MapAdjustments()
local Actor a;
local vector loc;
local bool fixed, limited;
local int i;

fixed = dxr.flags.autosave==FixedSaves || dxr.flags.autosave==UnlimitedFixedSaves;
limited = dxr.flags.autosave == FixedSaves || dxr.flags.autosave == LimitedSaves;

if(limited) {
SetSeed("spawn MCU");
if(chance_single(80)) {
for(i=0; i<10; i++) {
loc = GetRandomPositionFine();
a = Spawn(class'MemConUnit',,, loc);
l("MapAdjustments() spawned MCU " $ a $ " at " $ loc);
if(a != None) {
l("MapAdjustments() spawned MCU " $ a $ " at " $ loc);
break;
}
}
}
}
5 changes: 5 additions & 0 deletions DXRModules/DeusEx/Classes/DXRFashion.uc
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,11 @@ simulated function PreFirstEntry()
cr.lootableClothes=class'#var(prefix)StantonDowdCarcass';
break;

case "10_PARIS_CHATEAU":
cr = #var(injectsprefix)ClothesRack(Spawnm(class'#var(injectsprefix)ClothesRack',,,vect(-743,677,445),rot(0,16384,0))); //In Nicolette's room
cr.lootableClothes=class'#var(prefix)NicoletteDuclareCarcass';
break;

case "11_PARIS_CATHEDRAL":
cr = #var(injectsprefix)ClothesRack(Spawnm(class'#var(injectsprefix)ClothesRack',,,vect(4776,-661,-827),rot(0,16328,0))); //Near Gunther's vanilla spot
cr.lootableClothes=class'#var(prefix)GuntherHermannCarcass';
Expand Down
3 changes: 2 additions & 1 deletion DXRModules/DeusEx/Classes/DXRHints.uc
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,8 @@ simulated function InitHints()

if(dxr.flags.IsHalloweenMode()) {
AddHint("Mr. H cannot die, run away!");
AddHint("Dead bodies will come back as zombies!", "You might want to destroy the bodies.");
if(dxr.flags.settings.enemyrespawn > 0)
AddHint("Dead bodies will come back as zombies!", "You might want to destroy the bodies.");
}
if(dxr.flags.autosave == 3 && !dxr.flags.IsHordeMode()) {
AddHint("You're not allowed to manually save,", "you only get an autosave when first entering a map.");
Expand Down
48 changes: 35 additions & 13 deletions DXRModules/DeusEx/Classes/DXRStartMap.uc
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ function PreFirstEntry()
local ElevatorMover eMover;
local #var(DeusExPrefix)Mover dxMover;
local Dispatcher disp;
local AllianceTrigger at;
local #var(prefix)AnnaNavarre anna;
local #var(prefix)OrdersTrigger ot;

Expand All @@ -62,15 +61,6 @@ function PreFirstEntry()
}
break;

case "03_NYC_MOLEPEOPLE":
if (dxr.flags.settings.starting_map >= 35) {
foreach AllActors(class'AllianceTrigger', at, 'surrender') {
at.Trigger(None, None);
break;
}
}
break;

case "05_NYC_UNATCOMJ12LAB":
if(dxr.flags.settings.starting_map > 50) {
foreach AllActors(class'#var(prefix)AnnaNavarre', anna) {
Expand Down Expand Up @@ -105,6 +95,24 @@ function PreFirstEntry()
}
break;

case "14_VANDENBERG_SUB":
if (dxr.flags.settings.starting_map == 141 || dxr.flags.settings.starting_map == 142) {
foreach AllActors(class'#var(DeusExPrefix)Mover', dxMover, 'Elevator1') {
dxMover.InterpolateTo(1, 0.0);
break;
}
}
break;

case "14_OCEANLAB_LAB":
if (dxr.flags.settings.starting_map == 142) {
foreach AllActors(class'ElevatorMover', eMover, 'lift') {
eMover.InterpolateTo(1, 0.0);
break;
}
}
break;

case "15_Area51_Bunker":
if (dxr.flags.settings.starting_map > 150) {
foreach AllActors(class'ElevatorMover', eMover, 'elevator_shaft') {
Expand Down Expand Up @@ -133,9 +141,22 @@ function PreFirstEntry()

function PostFirstEntry()
{
local AllianceTrigger at;

if(IsStartMap()) {
PostFirstEntryStartMapFixes(player(), dxr.flagbase, dxr.flags.settings.starting_map);
}

switch(dxr.localURL) {
case "03_NYC_MOLEPEOPLE":
if (dxr.flags.settings.starting_map >= 35) {
foreach AllActors(class'AllianceTrigger', at, 'surrender') {
at.Trigger(None, None);
break;
}
}
break;
}
}

static function int GetStartMapMission(int start_map_val)
Expand Down Expand Up @@ -721,12 +742,13 @@ function PreFirstEntryStartMapFixes(#var(PlayerPawn) player, FlagBase flagbase,

case 145:
flagbase.SetBool('schematic_downloaded',true,,-1); //Make sure the oceanlab UC schematics are downloaded
// fallthrough
case 142: // fallthrough
case 141:
case 142:
case 140:
MarkConvPlayed("DL_Underwater", bFemale); // The URV bay is in this module. You might not hear from me again.
case 140: // fallthrough
flagbase.SetBool('TiffanySavage_Dead',true,,15);
break;

case 153:
MarkConvPlayed("DL_Helios_Door1", bFemale); // Not yet. No... I will not allow you to enter Sector 4 until you have received my instructions.
MarkConvPlayed("DL_Helios_Intro", bFemale); // I will now explain why you have been allowed to reach Sector 3.
Expand Down
Loading

0 comments on commit 0355e05

Please sign in to comment.