Skip to content

Commit

Permalink
v3.1.0.9 Beta Merge pull request #927 from Die4Ever/develop
Browse files Browse the repository at this point in the history
v3.1.0.9 Beta
  • Loading branch information
Die4Ever authored Aug 25, 2024
2 parents 3171288 + b003893 commit d93d127
Show file tree
Hide file tree
Showing 39 changed files with 775 additions and 99 deletions.
4 changes: 2 additions & 2 deletions DXRBalance/DeusEx/Classes/AugDisplayWindow.uc
Original file line number Diff line number Diff line change
Expand Up @@ -384,8 +384,8 @@ function SuperDrawTargetAugmentation(GC gc)

crossColor.R = 255; crossColor.G = 255; crossColor.B = 255;

// check 500 feet in front of the player
target = TraceLOS(8000,AimLocation);
// check 1000 feet instead of 500 feet in front of the player, to spot Leo from the top of the statue
target = TraceLOS(16000,AimLocation);

targetplayerhealthstring = "";
targetplayerlocationstring = "";
Expand Down
15 changes: 13 additions & 2 deletions DXRBalance/DeusEx/Classes/BalancePlayer.uc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
class BalancePlayer injects Human;

var travel bool bZeroRando, bReducedRando;
var travel bool bZeroRando, bReducedRando, bCrowdControl;

function TakeDamage(int Damage, Pawn instigatedBy, Vector hitlocation, Vector momentum, name damageType)
{
Expand All @@ -19,7 +19,7 @@ function TakeDamage(int Damage, Pawn instigatedBy, Vector hitlocation, Vector mo
AddDamageDisplay('NanoVirus', vect(0,0,0));
SetDamagePercent(1);
}
} else if (damageType=='Shot'){
} else if (damageType=='Shot' || damageType=='AutoShot'){
if (WineBulletsActive()){
drugEffectTimer+=3.0;
}
Expand Down Expand Up @@ -294,13 +294,19 @@ function float CombatDifficultyMultEnviro()
function float GetDamageMultiplier()
{
local DataStorage datastorage;

if (!bCrowdControl) return 0;

datastorage = class'DataStorage'.static.GetObjFromPlayer(self);
return float(datastorage.GetConfigKey('cc_damageMult'));
}

function bool WineBulletsActive()
{
local DataStorage datastorage;

if (!bCrowdControl) return False;

datastorage = class'DataStorage'.static.GetObjFromPlayer(self);
return bool(datastorage.GetConfigKey('cc_WineBullets'));
}
Expand Down Expand Up @@ -952,3 +958,8 @@ state PlayerWalking
}
}
}

// just in case it tries to get called from a different state, to prevent "Failed to find function" crashes
function PlayerPawnProcessMove(float DeltaTime, vector NewAccel, eDodgeDir DodgeMove, rotator DeltaRot)
{
}
36 changes: 16 additions & 20 deletions DXRBalance/DeusEx/Classes/Mission15Balance.uc
Original file line number Diff line number Diff line change
@@ -1,25 +1,5 @@
class DXRMission15 injects Mission15;

simulated function BeginPlay()
{
local int i;

Super.BeginPlay();

// clear all spawners
for(i=0; i<ArrayCount(spawnData); i++) {
spawnData[i].spawnTag = '';
}

// put some back
spawnData[0].spawnTag='UC_spawn1';
spawnData[2].spawnTag='UC_spawn2';
spawnData[3].spawnTag='UC_spawn2';

spawnData[5].spawnTag='UC_spawn3';
spawnData[8].spawnTag='UC_spawn3';
}

function Timer()
{
Super.Timer();
Expand All @@ -35,3 +15,19 @@ function Timer()
}
}
}

defaultproperties
{
spawnData(0)=(SpawnTag=UC_spawn1,SpawnClass=Class'DeusEx.SpiderBot2',Tag=spbot1,OrderTag=spiderbot1_0,lastKilledTime=-1.000000)
spawnData(1)=(SpawnTag=dummy)
spawnData(2)=(SpawnTag=UC_spawn2,SpawnClass=Class'DeusEx.Gray',Tag=gray_1,OrderTag=gray1_0,lastKilledTime=-1.000000)
spawnData(3)=(SpawnTag=UC_spawn2,SpawnClass=Class'DeusEx.Gray',Tag=gray_2,OrderTag=gray2_0,lastKilledTime=-1.000000)
spawnData(4)=(SpawnTag=dummy)
spawnData(5)=(SpawnTag=UC_spawn3,SpawnClass=Class'DeusEx.Karkian',Tag=karkian_1,OrderTag=karkian1_0,lastKilledTime=-1.000000)
spawnData(6)=(SpawnTag=dummy)
spawnData(7)=(SpawnTag=dummy)
spawnData(8)=(SpawnTag=UC_spawn3,SpawnClass=Class'DeusEx.Greasel',Tag=greasel_1,OrderTag=greasel1_0,lastKilledTime=-1.000000)
spawnData(9)=(SpawnTag=dummy)
spawnData(10)=(SpawnTag=dummy)
spawnData(11)=(SpawnTag=dummy)
}
2 changes: 1 addition & 1 deletion DXRCore/DeusEx/Classes/DXRActorsBase.uc
Original file line number Diff line number Diff line change
Expand Up @@ -1189,7 +1189,7 @@ function Actor SpawnReplacement(Actor a, class<Actor> newclass, optional bool do
return newactor;
}

static function DestroyMover(DeusExMover m)
static function DestroyMover(#var(DeusExPrefix)Mover m)
{
local DeusExDecal D;

Expand Down
2 changes: 1 addition & 1 deletion DXRCore/DeusEx/Classes/DXRVersion.uc
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ simulated static function CurrentVersion(optional out int major, optional out in
major=3;
minor=1;
patch=0;
build=8;//build can't be higher than 99
build=9;//build can't be higher than 99
}

simulated static function bool VersionIsStable()
Expand Down
15 changes: 15 additions & 0 deletions DXRFixes/DeusEx/Classes/Decoration.uc
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
class DXRDecoration merges DeusExDecoration;

singular function BaseChange()
{
local Human p;
// DXRando: check if we're being carried
p = Human(GetPlayerPawn());
if(base == None && p != None && p.CarriedDecoration == self) {
p.ForcePutCarriedDecorationInHand();
return;
}

// back to vanilla code
_BaseChange();
}
16 changes: 16 additions & 0 deletions DXRMapFixups/DeusEx/Classes/DXRFixupIntro.uc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
class DXRFixupIntro extends DXRFixup;

function PreFirstEntryMapFixes()
{
local Actor a;
local #var(DeusExPrefix)Mover dxm;

switch(dxr.localURL) {
case "INTRO":
//Remove trap door under MJ12 hand that causes Z-Fighting
foreach AllActors(class'#var(DeusExPrefix)Mover',dxm,'trap_door'){
DestroyMover(dxm);
}
break;
}
}
14 changes: 0 additions & 14 deletions DXRMapFixups/DeusEx/Classes/DXRFixupM00.uc
Original file line number Diff line number Diff line change
Expand Up @@ -131,17 +131,3 @@ function PostFirstEntryMapFixes()
break;
}
}

simulated function PlayerAnyEntry(#var(PlayerPawn) p)
{
local Inventory i;
Super.PlayerAnyEntry(p);
if(dxr.localURL != "00_INTRO") return;
if(dxr.flags.newgameplus_loops > 0) return;
// try to fix inventory stuff on new game (issue #426)
foreach AllActors(class'Inventory', i) {
if(PlayerPawn(i.Owner) != None)
i.Destroy();
}
p.Inventory = None;
}
62 changes: 54 additions & 8 deletions DXRMapFixups/DeusEx/Classes/DXRFixupM15.uc
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,8 @@ function PreFirstEntryMapFixes_Final()
local DataLinkTrigger dlt;
local SkillAwardTrigger sat;
local Dispatcher disp;
local FlagTrigger ft;
local OnceOnlyTrigger oot;
local int i;

AddSwitch( vect(-5112.805176, -2495.639893, -1364), rot(0, 16384, 0), 'blastdoor_final');// just in case the dialog fails
Expand All @@ -229,30 +231,51 @@ function PreFirstEntryMapFixes_Final()
//but like... for REAL
foreach AllActors(class'Switch2',s2){
if (s2.Event=='button_1'){
s2.Event = 'button_1_once';
oot = Spawn(class'OnceOnlyTrigger',, 'button_1_once');
oot.Event = 'button_1';
s2.Tag='button_1_switch';
class'DXRTriggerEnable'.static.Create(s2,'Generator_panel','button_1_switch');
} else if (s2.Event=='button_2'){
s2.Event = 'button_2_once';
oot = Spawn(class'OnceOnlyTrigger',, 'button_2_once');
oot.Event = 'button_2';
s2.Tag='button_2_switch';
class'DXRTriggerEnable'.static.Create(s2,'injector2','button_2_switch');
} else if (s2.Event=='button_3'){
s2.Event = 'button_3_once';
oot = Spawn(class'OnceOnlyTrigger',, 'button_3_once');
oot.Event = 'button_3';
s2.Tag='button_3_switch';
class'DXRTriggerEnable'.static.Create(s2,'injector3','button_3_switch');
}
}

// also make Tong ending a little faster
if(dxr.flags.moresettings.splits_overlay > 0) {
foreach AllActors(class'Dispatcher', disp) {
switch(disp.Tag) {
case 'button_1':
case 'button_2':
case 'button_3':
// make the Tong ending flag trigger not based on collision
foreach AllActors(class'FlagTrigger', ft, 'FlagTrigger') {
if(ft.event != 'Generator_overload') continue;
ft.Tag = 'Check_Generator_overload';
ft.SetCollision(false,false,false);
}

foreach AllActors(class'Dispatcher', disp) {
switch(disp.Tag) {
case 'button_3':
disp.OutEvents[6] = 'Check_Generator_overload';
// fallthrough
case 'button_1':
case 'button_2':
if(dxr.flags.moresettings.splits_overlay > 0) {// also make Tong ending a little faster
for(i=0; i<ArrayCount(disp.OutDelays); i++) {
disp.OutDelays[i] /= 3;
}
break;
}
break;
}
}

// also make Tong ending a little faster
if(dxr.flags.moresettings.splits_overlay > 0) {
foreach AllActors(class'DeusExMover', d) {
switch(d.Tag) {
case 'Generator_panel':
Expand Down Expand Up @@ -400,9 +423,26 @@ function PreFirstEntryMapFixes_Page()
local int i;
local #var(prefix)DataLinkTrigger dlt;
local #var(prefix)FlagTrigger ft;
local #var(prefix)ScriptedPawn sp;
local vector cloneCubeLoc[4];
local string cloneCubeText[4];

// fix in-fighting
foreach AllActors(class'#var(prefix)ScriptedPawn', sp) {
if(#var(prefix)MJ12Commando(sp) != None && sp.Alliance=='') {
sp.SetAlliance('MJ12');
}
if(sp.Alliance=='') {
continue;// probably the security bots you can release
}
sp.ChangeAlly('MJ12', 1, true);
sp.ChangeAlly('Karkian', 1, true);
sp.ChangeAlly('Gray', 1, true);
sp.ChangeAlly('Greasel', 1, true);
sp.ChangeAlly('Subject1', 1, true);
sp.ChangeAlly('bots', 1, true);
}

foreach AllActors(class'ComputerSecurity', c) {
if( c.UserList[0].userName != "graytest" || c.UserList[0].Password != "Lab12" ) continue;
c.UserList[0].userName = "Lab 12";
Expand Down Expand Up @@ -514,6 +554,7 @@ function AnyEntryMapFixes()
switch(dxr.localURL)
{
case "15_AREA51_FINAL":
SetTimer(1, true);// fix ReactorReady flag being set by infolinks
if (VanillaMaps){
foreach AllActors(class'Gray', g) {
if( g.Tag == 'reactorgray1' ) g.BindName = "ReactorGray1";
Expand Down Expand Up @@ -546,6 +587,11 @@ function TimerMapFixes()
{
switch(dxr.localURL)
{
case "15_AREA51_FINAL":
if(dxr.flagbase.GetBool('ReactorSwitch1') && dxr.flagbase.GetBool('ReactorSwitch2')) {
dxr.flagbase.SetBool('ReactorReady', true);
}
break;
case "15_AREA51_PAGE":
Area51_CountBlueFusion();
break;
Expand Down
22 changes: 20 additions & 2 deletions DXRModules/DeusEx/Classes/DXRFashion.uc
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,14 @@ simulated function PreFirstEntry()
cr.lootableClothes=class'#var(prefix)SmugglerCarcass';
break;

case "02_NYC_HOTEL":
case "04_NYC_HOTEL":
case "08_NYC_HOTEL":
foreach AllActors(class'#var(injectsprefix)ClothesRack',cr){ //The two clothes racks in Paul's closet
cr.lootableClothes = class'#var(prefix)PaulDentonCarcass';
}
break;

case "03_NYC_BATTERYPARK":
cr = #var(injectsprefix)ClothesRack(Spawnm(class'#var(injectsprefix)ClothesRack',,,vect(-3994,357,415))); //In first shanty town hut
cr.lootableClothes=class'#var(prefix)HarleyFilbenCarcass';
Expand Down Expand Up @@ -118,7 +126,17 @@ simulated function PreFirstEntry()
}
}

//Any remaining clothes racks without specific clothes can get random generic ones
}

function FirstEntry()
{
local #var(injectsprefix)ClothesRack cr;

if (dxr.flags.clothes_looting == 0) return; //Everything past here is "important" for clothes looting

SetSeed("RandoFashion");

//Any clothes racks without specific clothes can get random generic ones
foreach AllActors(class'#var(injectsprefix)ClothesRack',cr){
if (cr.lootableClothes==None){
cr.lootableClothes=RandomGenericClothes();
Expand All @@ -128,7 +146,7 @@ simulated function PreFirstEntry()

simulated function class<#var(DeusExPrefix)Carcass> RandomGenericClothes()
{
switch(Rand(20))
switch(rng(20))
{
case 0: return class'#var(prefix)Male1Carcass';
case 1: return class'#var(prefix)Male2Carcass';
Expand Down
2 changes: 2 additions & 0 deletions DXRModules/DeusEx/Classes/DXRFixup.uc
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ static function class<DXRBase> GetModuleToLoad(DXRando dxr, class<DXRBase> reque
return class'DXRFixupVandenberg';
case 15:
return class'DXRFixupM15';
case 98:
return class'DXRFixupIntro';
}
return request;
}
Expand Down
1 change: 1 addition & 0 deletions DXRModules/DeusEx/Classes/DXRFlags.uc
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ simulated function PlayerAnyEntry(#var(PlayerPawn) p)
#ifdef injections
p.bZeroRando = IsZeroRandoPure();
p.bReducedRando = IsReducedRando();
p.bCrowdControl = (crowdcontrol!=0);
#endif

if(!VersionIsStable() || #defined(debug))
Expand Down
8 changes: 4 additions & 4 deletions DXRModules/DeusEx/Classes/DXRHalloween.uc
Original file line number Diff line number Diff line change
Expand Up @@ -292,8 +292,8 @@ function SpawnJackOLantern(vector loc)
if( ! NearestWallSearchZ(wall1, distrange, 16*3, floor.loc, size) ) return;

zone = GetZone(wall1.loc);
if (zone.bWaterZone){
//No underwater Jack O Lanterns
if (zone.bWaterZone || SkyZoneInfo(zone)!=None){
//No underwater or skybox Jack O Lanterns
return;
}

Expand Down Expand Up @@ -327,8 +327,8 @@ function SpawnSpiderweb(vector loc)
if(!GetSpiderwebLocation(loc, rot, size * 10)) return;

zone = GetZone(loc);
if (zone.bWaterZone){
//No underwater spiderwebs
if (zone.bWaterZone || SkyZoneInfo(zone)!=None){
//No underwater or skybox spiderwebs
return;
}

Expand Down
4 changes: 2 additions & 2 deletions DXRModules/DeusEx/Classes/DXRMachines.uc
Original file line number Diff line number Diff line change
Expand Up @@ -585,11 +585,11 @@ function Actor SpawnNewActor(class<Actor> c, bool jitter, optional vector target
function DestroyMedbotDoors()
{
local DeusExMover m;
local #var(DeusExPrefix)Mover m;
switch(dxr.localURL) {
case "01_NYC_UNATCOISLAND":
foreach AllActors(class'DeusExMover', m) {
foreach AllActors(class'#var(DeusExPrefix)Mover', m) {
if(m.name == 'DeusExMover0' || m.name == 'DeusExMover2') {
DestroyMover(m);
}
Expand Down
Loading

0 comments on commit d93d127

Please sign in to comment.