Skip to content

Commit

Permalink
v2.6 Merge pull request #653 from Die4Ever/develop
Browse files Browse the repository at this point in the history
v2.6
  • Loading branch information
Die4Ever authored Mar 21, 2024
2 parents 3deb544 + cd43ccf commit 7daa3ba
Show file tree
Hide file tree
Showing 30 changed files with 236 additions and 73 deletions.
14 changes: 14 additions & 0 deletions DXRBalance/DeusEx/Classes/AugmentationManager.uc
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,20 @@ function DeactivateAll()
}
}

function ActivateAllAutoAugs()
{
local Augmentation anAug;

if (player != None)
{
for(anAug = FirstAug; anAug != None; anAug = anAug.next)
{
if (anAug.bAutomatic)
anAug.Activate();
}
}
}

simulated function int NumAugsActive()
{
local Augmentation anAug;
Expand Down
3 changes: 2 additions & 1 deletion DXRBalance/DeusEx/Classes/WeaponRifle.uc
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
class DXRWeaponRifle injects WeaponRifle;

// vanilla is shottime=1.5, reloadcount=6, reloadtime=1 (inherited from DeusExWeapon), TODO: maybe bCanHaveModReloadCount=False?
// vanilla is shottime=1.5, reloadcount=6, reloadtime=1 (inherited from DeusExWeapon), bCanHaveModReloadCount=True
defaultproperties
{
ShotTime=1
bHasMuzzleFlash=True
ReloadCount=1
ReloadTime=1
bCanHaveModReloadCount=False
}
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=2;
minor=6;
patch=0;
build=3;//build can't be higher than 99
build=6;//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 = "Beta";
status = "";

if(status!="") {
status = " " $ status;
Expand Down
26 changes: 25 additions & 1 deletion DXRFixes/DeusEx/Classes/ActorDisplayWindow.uc
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ var bool bShowCustom;
var string customAttrib;
var bool bShowInventory;
var string nameFilter;
var string tagFilter;
var string eventFilter;
var bool bLimitRadius;
var int actorRadius;
var bool bShowTagEvent;
Expand Down Expand Up @@ -42,6 +44,24 @@ function String GetNameFilter(){
return nameFilter;
}

function SetTagFilter(string newFilter)
{
tagFilter = newFilter;
}

function String GetTagFilter(){
return tagFilter;
}

function SetEventFilter(string newFilter)
{
eventFilter = newFilter;
}

function String GetEventFilter(){
return eventFilter;
}

function SetViewClass(Class<Actor> newViewClass)
{
Super.SetViewClass(newViewClass);
Expand Down Expand Up @@ -207,7 +227,7 @@ function DrawWindow(GC gc)
return;

classToShow = viewClass;
if (nameFilter!="" && classToShow==None){
if ((nameFilter!="" || tagFilter!="" || eventFilter!="") && classToShow==None){
classToShow=class'Actor';
}

Expand All @@ -231,6 +251,10 @@ function DrawWindow(GC gc)

if (filter!='' && filter!=trackActor.Name)
continue;
if (tagFilter!="" && tagFilter!=string(trackActor.Tag))
continue;
if (eventFilter!="" && eventFilter!=string(trackActor.Event))
continue;

dxMover = DeusExMover(trackActor);
cVect.X = trackActor.CollisionRadius;
Expand Down
1 change: 1 addition & 0 deletions DXRFixes/DeusEx/Classes/BeamTrigger.uc
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
class DXRBeamTrigger injects BeamTrigger;
// the blue one with no alarm

function bool IsRelevant( actor Other )
{
Expand Down
1 change: 1 addition & 0 deletions DXRFixes/DeusEx/Classes/LaserEmitter.uc
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
class DXRLaserEmitter injects #var(prefix)LaserEmitter;
// used by both BeamTrigger and LaserTrigger

// make sure death markers don't block lasers, continue tracing through them
function CalcTrace(float deltaTime)
Expand Down
1 change: 1 addition & 0 deletions DXRFixes/DeusEx/Classes/LaserTrigger.uc
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
class DXRLaserTrigger injects LaserTrigger;
// the red one with the alarm built-in

function bool IsRelevant( actor Other )
{
Expand Down
18 changes: 18 additions & 0 deletions DXRMapFixups/DeusEx/Classes/DXRFixupM08.uc
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ function PreFirstEntryMapFixes()
local #var(prefix)BlackHelicopter jock;
local DXRHoverHint hoverHint;
local bool VanillaMaps;
local ScriptedPawn pawn;

#ifdef injections
local #var(prefix)Newspaper np;
Expand All @@ -153,6 +154,23 @@ function PreFirstEntryMapFixes()
switch(dxr.localURL)
{
case "08_NYC_STREET":
// fix alliances
foreach AllActors(class'ScriptedPawn', pawn) {
switch(pawn.Alliance) {
case 'UNATCO':
case 'RiotCop':
case 'Robot':
case 'MJ12':
case 'ShadyGuy':
// make their alliances permananet
pawn.ChangeAlly('RiotCop', 1, true);
pawn.ChangeAlly('Robot', 1, true);
pawn.ChangeAlly('UNATCO', 1, true);
pawn.ChangeAlly('MJ12', 1, true);
pawn.ChangeAlly('ShadyGuy', 1, true);
break;
}
}
//Since we always spawn the helicopter on the roof immediately after the conversation,
//the ambush should also always happen immediately after the conversation (instead of
//after getting explosives)
Expand Down
24 changes: 0 additions & 24 deletions DXRMapFixups/DeusEx/Classes/DXRFixupParis.uc
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ function PreFirstEntryMapFixes()
local ScriptedPawn sp;
local Conversation c;
local #var(prefix)TobyAtanwe toby;
local #var(prefix)DataLinkTrigger dlt;
local #var(prefix)JaimeReyes j;
local #var(prefix)DamageTrigger dt;
local #var(prefix)ComputerSecurity cs;
Expand All @@ -23,29 +22,6 @@ function PreFirstEntryMapFixes()

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

// shut up, Tong! (reduced rando is not as focused on replays compared to normal rando)
if(!dxr.flags.IsReducedRando()) {
foreach AllActors(class'#var(prefix)DataLinkTrigger', dlt) {
switch(dlt.dataLinkTag) {
case 'DL_paris_10_shaft':
case 'DL_paris_10_radiation':
case 'DL_paris_10_catacombs':
case 'DL_tunnels_oldplace':
case 'DL_tunnels_oldplace2':
case 'DL_tunnels_oldplace3':
case 'DL_metroentrance':
case 'DL_club_entry':
case 'DL_apartments':
case 'DL_hotel':
case 'DL_bakery':
case 'DL_entered_graveyard':
case 'DL_restaurant':
dlt.Event='';
dlt.Destroy();
}
}
}

switch(dxr.localURL)
{
case "10_PARIS_CATACOMBS":
Expand Down
12 changes: 11 additions & 1 deletion DXRMissions/DeusEx/Classes/DXRMissionsM06.uc
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ function int InitGoals(int mission, string map)
AddGoalLocation("06_HONGKONG_MJ12LAB", "Lab", NORMAL_GOAL, vect(-1712.699951, -809.700012, -744.500610), rot(0, 16384, 0));
AddGoalLocation("06_HONGKONG_MJ12LAB", "ROM Encoding Room", NORMAL_GOAL | VANILLA_GOAL, vect(-0.995101,-260.668579,-311.088989), rot(0,32824,0));
AddGoalLocation("06_HONGKONG_MJ12LAB", "Radioactive Lab", NORMAL_GOAL | VANILLA_GOAL, vect(-723.018677,591.498901,-743.972717), rot(0,49160,0));
loc = AddGoalLocation("06_HONGKONG_MJ12LAB", "Overlook Office", NORMAL_GOAL, vect(3, 886, 820), rot(0, 32768, 0));
AddActorLocation(loc, 1, vect(3, 886, 789.101990), rot(0,0,0));// MAHOGANY desk
return 62;

case "06_HONGKONG_WANCHAI_STREET":
Expand Down Expand Up @@ -246,7 +248,6 @@ function CreateGoal(out Goal g, GoalLocation Loc)
dlt.Tag='';
dlt.datalinkTag='DL_Tong_00';
dlt.SetCollisionSize(100,20);

break;
}
}
Expand All @@ -269,4 +270,13 @@ function AfterMoveGoalToLocation(Goal g, GoalLocation Loc)
if (g.name=="Nanotech Blade ROM" && Loc.name!="ROM Encoding Room") {
g.actors[3].a.SetCollisionSize(400, 100);// DL_Tong_08: The ROM-encoding should be in this wing of the laboratory.
}

if (Loc.name == "Overlook Office") {
// spawn the MAHOGANY desk (CreateGoal only gets called for different maps)
g.actors[1].a = Spawnm(class'#var(prefix)WHDeskOvalOffice',,,Loc.positions[1].pos, Loc.positions[1].rot);
if(g.actors[1].a != None) {
#var(prefix)WHDeskOvalOffice(g.actors[1].a).ItemName = "Mahogany Desk";
#var(prefix)WHDeskOvalOffice(g.actors[1].a).HitPoints *= 4;
}
}
}
12 changes: 11 additions & 1 deletion DXRMissions/DeusEx/Classes/DXRMissionsM09.uc
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,8 @@ function int InitGoals(int mission, string map)
AddMapMarker(class'Image09_NYC_Ship_Bottom',51,102,"C","Bilge Computer", loc,"The bilge pump computer can be located on a bed in the barracks underneath the helicopter in the helibay.");
loc = AddGoalLocation("09_NYC_SHIPBELOW", "Engine Room Tower", GOAL_TYPE1, vect(-133,-678,15), rot(0, -15815, 0));
AddMapMarker(class'Image09_NYC_Ship_Bottom',328,256,"C","Bilge Computer", loc,"The bilge pump computer can be found in the control tower in the engine room.");
loc = AddGoalLocation("09_NYC_SHIPBELOW", "Helipad Air Control", GOAL_TYPE1, vect(-4987,1176,-205), rot(0, 32710, 0));
loc = AddGoalLocation("09_NYC_SHIPBELOW", "Helipad Air Control", GOAL_TYPE1, vect(-4799, 1198, -150), rot(0, 32768, 0));
AddActorLocation(loc, 1, vect(-4799, 1198, -220), rot(0,0,0));// MAHOGANY desk
AddMapMarker(class'Image09_NYC_Ship_Bottom',78,353,"C","Bilge Computer", loc,"The bilge pump computer can be found in the air control room of the helipad.");

return 92;
Expand Down Expand Up @@ -330,6 +331,15 @@ function AfterMoveGoalToLocation(Goal g, GoalLocation Loc)
se.Message="EM Field Disabled";
se.GoToState('DisplayMessage');
}

if (g.name=="Bilge Pump Computer" && Loc.name=="Helipad Air Control") {
// spawn the MAHOGANY desk (CreateGoal only gets called for different maps)
g.actors[1].a = Spawnm(class'#var(prefix)WHDeskOvalOffice',,,Loc.positions[1].pos, Loc.positions[1].rot);
if(g.actors[1].a != None) {
#var(prefix)WHDeskOvalOffice(g.actors[1].a).ItemName = "Mahogany Desk";
#var(prefix)WHDeskOvalOffice(g.actors[1].a).HitPoints *= 4;
}
}
}


Expand Down
71 changes: 58 additions & 13 deletions DXRMissions/DeusEx/Classes/DXRMissionsVandenberg.uc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@ var bool WaltonAppeared;

function int InitGoals(int mission, string map)
{
local int goal, loc, howard1, howard2, jock1, jock2;
local int goal, loc;
local int howard_cherry, howard_meeting, howard_radio, howard_computer;
local int jock_vanilla, jock_cherry, jock_tower, jock_computer;
local int computer_vanilla, computer_radio, computer_meeting;

switch(map) {
case "12_VANDENBERG_CMD":
Expand Down Expand Up @@ -80,22 +83,41 @@ function int InitGoals(int mission, string map)
return 141;

case "14_OCEANLAB_SILO":
// HOWARD
AddGoal("14_OCEANLAB_SILO", "Howard Strong", NORMAL_GOAL, 'HowardStrong0', PHYS_Falling);

AddGoalLocation("14_OCEANLAB_SILO", "Third Floor", NORMAL_GOAL, vect(-220.000000, -6829.463379, 55.600639), rot(0, 0, 0));
howard_computer = AddGoalLocation("14_OCEANLAB_SILO", "Control Room", NORMAL_GOAL, vect(38,-1306,832), rot(0, 28804, 0));
//howard_computer = AddGoalLocation("14_OCEANLAB_SILO", "Computer Room", NORMAL_GOAL, vect(-100, -1331, 832), rot(0, 32768, 0));
howard_meeting = AddGoalLocation("14_OCEANLAB_SILO", "Surface Meeting Room", NORMAL_GOAL, vect(-640,-3589,1472), rot(0, 34388, 0));
howard_radio = AddGoalLocation("14_OCEANLAB_SILO", "Radio", NORMAL_GOAL, vect(-1822,-6516,1662), rot(0, 24308, 0));
AddGoalLocation("14_OCEANLAB_SILO", "Machine Shop", NORMAL_GOAL, vect(566,-4395,1474), rot(0, 21120, 0));
//AddGoalLocation("14_OCEANLAB_SILO", "Third Floor", NORMAL_GOAL, vect(-220.000000, -6829.463379, 55.600639), rot(0, 0, 0));
AddGoalLocation("14_OCEANLAB_SILO", "Fourth Floor", NORMAL_GOAL, vect(-259.846710, -6848.406250, 326.598969), rot(0, 0, 0));
AddGoalLocation("14_OCEANLAB_SILO", "Fifth Floor", NORMAL_GOAL, vect(-271.341187, -6832.150391, 535.596741), rot(0, 0, 0));
howard1 = AddGoalLocation("14_OCEANLAB_SILO", "Sixth Floor", NORMAL_GOAL, vect(-266.569397, -6868.054199, 775.592590), rot(0, 0, 0));
howard2 = AddGoalLocation("14_OCEANLAB_SILO", "Cherry Picker", NORMAL_GOAL | VANILLA_GOAL, vect(-52.397560,-6767.679199,-320.225006), rot(0,-7512,0));
//AddGoalLocation("14_OCEANLAB_SILO", "Fifth Floor", NORMAL_GOAL, vect(-271.341187, -6832.150391, 535.596741), rot(0, 0, 0)); //this one sucks, since he runs away down the hall
//howard_sixth = AddGoalLocation("14_OCEANLAB_SILO", "Sixth Floor", NORMAL_GOAL, vect(-266.569397, -6868.054199, 775.592590), rot(0, 0, 0));
howard_cherry = AddGoalLocation("14_OCEANLAB_SILO", "Cherry Picker", NORMAL_GOAL | VANILLA_GOAL, vect(-52.397560,-6767.679199,-320.225006), rot(0,-7512,0));

// JOCK
AddGoal("14_OCEANLAB_SILO", "Jock Escape", GOAL_TYPE1, 'BlackHelicopter0', PHYS_None);
jock1 = AddGoalLocation("14_OCEANLAB_SILO", "Vanilla Escape", GOAL_TYPE1 | VANILLA_GOAL, vect(-194.602554, -5680.964355, 1507.895020), rot(0, 0, 0));
AddGoalLocation("14_OCEANLAB_SILO", "Sniper Tower", GOAL_TYPE1, vect(-842.344604, -3827.978027, 2039.993286), rot(0, 0, 0));
jock2 = AddGoalLocation("14_OCEANLAB_SILO", "Cherry Picker", GOAL_TYPE1, vect(-13.000000, -6790.000000, -542.000000), rot(0, 32768, 0));
AddGoalLocation("14_OCEANLAB_SILO", "Computer Room", GOAL_TYPE1, vect(-100.721497, -1331.947754, 904.364380), rot(0, 32768, 0));

AddMutualExclusion(howard1, jock1);
AddMutualExclusion(howard2, jock2);
jock_vanilla = AddGoalLocation("14_OCEANLAB_SILO", "Vanilla Escape", GOAL_TYPE1 | VANILLA_GOAL, vect(-194.602554, -5680.964355, 1507.895020), rot(0, 0, 0));
jock_tower = AddGoalLocation("14_OCEANLAB_SILO", "Sniper Tower", GOAL_TYPE1, vect(-842.344604, -3827.978027, 2039.993286), rot(0, 0, 0));
jock_cherry = AddGoalLocation("14_OCEANLAB_SILO", "Cherry Picker", GOAL_TYPE1, vect(-13.000000, -6790.000000, -542.000000), rot(0, 32768, 0));
jock_computer = AddGoalLocation("14_OCEANLAB_SILO", "Computer Room", GOAL_TYPE1, vect(-100.721497, -1331.947754, 904.364380), rot(0, 32768, 0));

// COMPUTER
goal = AddGoal("14_OCEANLAB_SILO", "Launch Control Computer", GOAL_TYPE2, 'ComputerSecurity0', PHYS_None);
AddGoalActor(goal, 1, 'DataLinkTrigger4', PHYS_None); // Launch sequence initiated. It's gonna be a sunny day at Area 51...
computer_vanilla = AddGoalLocation("14_OCEANLAB_SILO", "Control Room", GOAL_TYPE2 | VANILLA_GOAL, vect(175.973724, -1612.441650, 853.105103), rot(0,16344,0));
computer_radio = AddGoalLocation("14_OCEANLAB_SILO", "Radio", GOAL_TYPE2, vect(-1721.988770, -6533.606445, 1664), rot(16384,32768,0));
computer_meeting = AddGoalLocation("14_OCEANLAB_SILO", "Surface Meeting Room", GOAL_TYPE2, vect(-691.854248, -3575.400391, 1475), rot(16384,0,0));

// MUTEXES
AddMutualExclusion(howard_radio, computer_radio);
AddMutualExclusion(howard_computer, computer_vanilla);
AddMutualExclusion(howard_meeting, computer_meeting);

AddMutualExclusion(howard_cherry, jock_cherry); //Cherry Picker and bottom of silo Jock
AddMutualExclusion(howard_meeting, jock_tower); //Surface meeting room and sniper tower
AddMutualExclusion(howard_radio, jock_vanilla); //Radio/Poker building and vanilla Jock
return 142;
}

Expand Down Expand Up @@ -286,6 +308,9 @@ function AfterMoveGoalToLocation(Goal g, GoalLocation Loc)
local #var(prefix)OrdersTrigger ot;
local #var(prefix)ComputerPersonal cp;
local DXRPasswords passwords;
local #var(prefix)DataLinkTrigger dt;
local #var(prefix)Switch1 button;
local #var(DeusExPrefix)Mover door;

if (g.name=="Jock and Tong") {
foreach AllActors(class'#var(prefix)OrdersTrigger', ot, 'TongGO') {
Expand Down Expand Up @@ -322,6 +347,26 @@ function AfterMoveGoalToLocation(Goal g, GoalLocation Loc)
else if (g.name=="Backup Power Keypad") {
GlowUp(g.actors[0].a, 255);
}
else if (g.name=="Missile Computer" && Loc.name != "Computer Room") {
foreach AllActors(class'#var(prefix)DataLinkTrigger', dt) {
if(dt.name=='DataLinkTrigger1' || dt.name=='DataLinkTrigger6') {
dt.Destroy();
}
}
foreach AllActors(class'#var(prefix)Switch1', button) {
if(button.name=='Switch4') {
button.Destroy();
break;
}
}
}

if (g.name=="Missile Computer") {
g.actors[1].a.Tag = 'klax'; // trigger the DataLinkTrigger immediately
foreach AllActors(class'#var(DeusExPrefix)Mover', door, 'computerdoors') {
door.MoverEncroachType = ME_IgnoreWhenEncroach;
}
}
}

function PreFirstEntryMapFixes()
Expand Down
3 changes: 3 additions & 0 deletions DXRModules/DeusEx/Classes/DXRFlags.uc
Original file line number Diff line number Diff line change
Expand Up @@ -614,13 +614,16 @@ function FlagsSettings SetDifficulty(int new_difficulty)
settings.skill_value_rando = 80;
// at least level 1 speed aug
settings.speedlevel = Max(settings.speedlevel, 1);
// speedrunners, please install augs
moresettings.empty_medbots *= 1.5;
}
else if(IsWaltonWare()) {
settings.bingo_win = 1;
settings.bingo_freespaces = 5;
settings.skills_reroll_missions = 0;// no rerolls since after the menu screen you would immediately get a reroll depending what mission you start in
settings.banned_skills = 0;// need computer skill for hacking
settings.prison_pocket = 100; //Keep your items in mission 5
moresettings.empty_medbots *= 1.5; // WW gets lower medbots chances pretty quickly
bingo_duration = 1;
bingo_scale = 0;
moresettings.newgameplus_curve_scalar = 50;
Expand Down
4 changes: 3 additions & 1 deletion DXRModules/DeusEx/Classes/DXRHordeMode.uc
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ var config ItemChances items[32];
function CheckConfig()
{
local int i;
if( ConfigOlderThan(2,6,0,2) ) {
if( ConfigOlderThan(2,6,0,5) ) {
time_between_waves = 65;
time_before_damage = 180;
damage_timer = 10;
Expand Down Expand Up @@ -246,6 +246,8 @@ function CheckConfig()
remove_objects[i++] = 'Teleporter';
remove_objects[i++] = 'SecurityCamera';
remove_objects[i++] = 'AutoTurret';
remove_objects[i++] = 'AlarmUnit';
remove_objects[i++] = 'LaserTrigger';

i=0;
lock_doors[i++] = 'BreakableGlass0';
Expand Down
Loading

0 comments on commit 7daa3ba

Please sign in to comment.