Skip to content

Commit

Permalink
v2.5.4 Merge pull request #544 from Die4Ever/develop
Browse files Browse the repository at this point in the history
v2.5.4
  • Loading branch information
Die4Ever authored Oct 12, 2023
2 parents 1ef809d + d432050 commit 3a2ccff
Show file tree
Hide file tree
Showing 38 changed files with 352 additions and 64 deletions.
5 changes: 5 additions & 0 deletions .github/run-tests/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ runs:
curl -Lo installer/3rdParty/KentieDeusExe.exe
"https://github.com/Defaultplayer001/Deus-Ex-Universe-Community-Update-/raw/master/%5B1.0%5D%20Deus%20Ex%20-%20Windows-Linux-macOS-Android/DXCU%20Installer%20Source/Mods/Community%20Update/System/Alternative%20EXEs/Kentie's%20DeusExe.exe"
shell: bash
- run: >-
curl -Lo installer/3rdParty/DeusExe.u
"https://github.com/Defaultplayer001/Deus-Ex-Universe-Community-Update-/raw/master/%5B1.0%5D%20Deus%20Ex%20-%20Windows-Linux-macOS-Android/DXCU%20Installer%20Source/Mods/Community%20Update/System/DeusExe.u"
shell: bash
- run: >-
curl -Lo installer/3rdParty/Launch.exe
"https://github.com/Defaultplayer001/Deus-Ex-Universe-Community-Update-/raw/master/%5B1.0%5D%20Deus%20Ex%20-%20Windows-Linux-macOS-Android/DXCU%20Installer%20Source/Mods/Community%20Update/System/Alternative%20EXEs/Launch.exe"
Expand Down
4 changes: 2 additions & 2 deletions DXRCore/DeusEx/Classes/DXRVersion.uc
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ simulated static function CurrentVersion(optional out int major, optional out in
major=2;
minor=5;
patch=4;
build=4;//build can't be higher than 99
build=7;//build can't be higher than 99
}

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
20 changes: 19 additions & 1 deletion DXRCore/DeusEx/Classes/DataStorage.uc
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,21 @@ function EndPlaythrough()
}
}
function bool HasPlaythroughId(int tplaythrough_id)
{
local string pid;
local int i, slen;
pid = " " $ tplaythrough_id;
slen = Len(pid);
for( i=0; i < ArrayCount(config_data); i++) {
if( Right(config_data[i].key, slen) == pid ) {
return true;
}
}
return false;
}
simulated function static DataStorage GetObj(DXRando dxr)
{
local DataStorage d;
Expand All @@ -144,7 +159,10 @@ simulated function static DataStorage GetObj(DXRando dxr)
d = dxr.ds;
if( d == None ) {
if(d == None) {
foreach dxr.AllActors(class'DataStorage', d) { break; }
}
if(d == None) {
d = dxr.Spawn(class'DataStorage');
d.CheckConfig();
dxr.ds = d;
Expand Down
4 changes: 2 additions & 2 deletions DXRMapFixups/DeusEx/Classes/DXRFixupM01.uc
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,8 @@ function AnyEntryMapFixes()
c = GetConversation('MeetPaul');
ce = c.eventList;

//Should this actually be seeded?
if (rand(2)==0){
SetSeed("MeetPaul");
if (rngb()){
afterTextLine="I get the idea. What's the first move?";
} else {
afterTextLine="Great. What's the first move?";
Expand Down
10 changes: 8 additions & 2 deletions DXRMapFixups/DeusEx/Classes/DXRFixupM03.uc
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ function PreFirstEntryMapFixes()
local Actor a;
local Trigger t;
local Teleporter tele;
local NanoKey k;
local #var(prefix)NanoKey k;
local #var(prefix)InformationDevices i;
local #var(prefix)UNATCOTroop unatco;
local #var(prefix)WeaponModRecoil wmr;
Expand All @@ -59,7 +59,7 @@ function PreFirstEntryMapFixes()
switch (dxr.localURL)
{
case "03_NYC_BATTERYPARK":
foreach AllActors(class'NanoKey', k) {
foreach AllActors(class'#var(prefix)NanoKey', k) {
// unnamed key normally unreachable
if( k.KeyID == '' || k.KeyID == 'KioskDoors' ) {
k.Destroy();
Expand Down Expand Up @@ -248,6 +248,12 @@ function PreFirstEntryMapFixes()
}
}

k = Spawn(class'#var(prefix)NanoKey',,, vectm(965,900,-28));
k.KeyID = 'JaimeClosetKey';
k.Description = "MedLab Closet Key Code";
if(dxr.flags.settings.keysrando > 0)
GlowUp(k);

//Spawn some placeholders for new item locations
Spawn(class'PlaceholderItem',,, vectm(363.284149, 344.847, 50.32)); //Womens bathroom counter
Spawn(class'PlaceholderItem',,, vectm(211.227, 348.46, 50.32)); //Mens bathroom counter
Expand Down
19 changes: 19 additions & 0 deletions DXRMapFixups/DeusEx/Classes/DXRFixupM04.uc
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ function PreFirstEntryMapFixes()
local AllianceTrigger at;
local BlockPlayer bp;
local #var(DeusExPrefix)Mover door;
local #var(prefix)NanoKey key;

switch (dxr.localURL)
{
Expand Down Expand Up @@ -66,6 +67,18 @@ function PreFirstEntryMapFixes()

Spawn(class'#var(prefix)Binoculars',,, vectm(-610.374573,-3221.998779,94.160065)); //Paul's bedside table

key = Spawn(class'#var(prefix)NanoKey',,, vectm(-967,-1240,-74));
key.KeyID = 'CrackRoom';
key.Description = "'Ton Hotel, North Room Key";
if(dxr.flags.settings.keysrando > 0)
GlowUp(key);

key = Spawn(class'#var(prefix)NanoKey',,, vectm(-845,-2920,180));
key.KeyID = 'Apartment';
key.Description = "Apartment key";
if(dxr.flags.settings.keysrando > 0)
GlowUp(key);

SpawnDatacubeTextTag(vectm(-840,-2920,85), rotm(0,0,0), '02_Datacube07',False); //Paul's stash code, in closet
Spawn(class'PlaceholderItem',,, vectm(-732,-2628,75)); //Actual closet
Spawn(class'PlaceholderItem',,, vectm(-732,-2712,75)); //Actual closet
Expand Down Expand Up @@ -131,6 +144,12 @@ function PreFirstEntryMapFixes()
FixUNATCOCarterCloset();
FixAlexsEmail();

key = Spawn(class'#var(prefix)NanoKey',,, vectm(965,900,-28));
key.KeyID = 'JaimeClosetKey';
key.Description = "MedLab Closet Key Code";
if(dxr.flags.settings.keysrando > 0)
GlowUp(key);

//Spawn some placeholders for new item locations
Spawn(class'PlaceholderItem',,, vectm(363.284149, 344.847, 50.32)); //Womens bathroom counter
Spawn(class'PlaceholderItem',,, vectm(211.227, 348.46, 50.32)); //Mens bathroom counter
Expand Down
6 changes: 6 additions & 0 deletions DXRMapFixups/DeusEx/Classes/DXRFixupM05.uc
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,12 @@ function PreFirstEntryMapFixes()
if(dxr.flags.settings.keysrando > 0)
GlowUp(k);

k = Spawn(class'#var(prefix)NanoKey',,, vectm(965,900,-28));
k.KeyID = 'JaimeClosetKey';
k.Description = "MedLab Closet Key Code";
if(dxr.flags.settings.keysrando > 0)
GlowUp(k);

//Spawn some placeholders for new item locations
Spawn(class'PlaceholderItem',,, vectm(363.284149, 344.847, 50.32)); //Womens bathroom counter
Spawn(class'PlaceholderItem',,, vectm(211.227, 348.46, 50.32)); //Mens bathroom counter
Expand Down
15 changes: 15 additions & 0 deletions DXRMapFixups/DeusEx/Classes/DXRFixupM08.uc
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ function TimerMapFixes()
function PreFirstEntryMapFixes()
{
local DataLinkTrigger dlt;
local #var(prefix)NanoKey k;
#ifdef injections
local #var(prefix)Newspaper np;
local class<#var(prefix)Newspaper> npClass;
Expand Down Expand Up @@ -71,6 +72,20 @@ function PreFirstEntryMapFixes()
case "08_NYC_HOTEL":
Spawn(class'#var(prefix)Binoculars',,, vectm(-610.374573,-3221.998779,94.160065)); //Paul's bedside table
SpawnDatacubeTextTag(vectm(-840,-2920,85), rotm(0,0,0), '02_Datacube07',False); //Paul's stash code, in closet

k = Spawn(class'#var(prefix)NanoKey',,, vectm(-967,-1240,-74));
k.KeyID = 'CrackRoom';
k.Description = "'Ton Hotel, North Room Key";
if(dxr.flags.settings.keysrando > 0)
GlowUp(k);

k = Spawn(class'#var(prefix)NanoKey',,, vectm(-845,-2920,180));
k.KeyID = 'Apartment';
k.Description = "Apartment key";
if(dxr.flags.settings.keysrando > 0)
GlowUp(k);


Spawn(class'PlaceholderItem',,, vectm(-732,-2628,75)); //Actual closet
Spawn(class'PlaceholderItem',,, vectm(-732,-2712,75)); //Actual closet
Spawn(class'PlaceholderItem',,, vectm(-129,-3038,127)); //Bathroom counter
Expand Down
10 changes: 10 additions & 0 deletions DXRMapFixups/DeusEx/Classes/DXRFixupM15.uc
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,16 @@ function PreFirstEntryMapFixes_Entrance()
}
}

//Make the floor hatch near Morgan easier to get into
//If you make this breakable, the explosion right next
//to it will destroy it every time. Maybe it could
//only become breakable after the explosion happens?
foreach AllActors(class'DeusExMover', d) {
if (d.name=='DeusExMover13'){
d.lockStrength=0.25;
}
}

Spawn(class'#var(prefix)Liquor40oz',,, vectm(4585,72,-174)); //Beers on the table in the sleeping quarters
Spawn(class'#var(prefix)Liquor40oz',,, vectm(4611,27,-174));

Expand Down
69 changes: 69 additions & 0 deletions DXRMissions/DeusEx/Classes/DXRMissionsParis.uc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,19 @@ function int InitGoals(int mission, string map)
local int goal, loc, loc2;

switch(map) {
case "10_PARIS_CATACOMBS_TUNNELS":
AddGoal("10_PARIS_CATACOMBS_TUNNELS", "Agent Hela", NORMAL_GOAL, 'WIB0', PHYS_Falling);
loc=AddGoalLocation("10_PARIS_CATACOMBS_TUNNELS", "Back of Bunker", NORMAL_GOAL | VANILLA_GOAL, vect(705.735596,-3802.420410,-281.812622), rot(0, 16384, 0));
AddActorLocation(loc, 1, vect(802,-3736,-284), rot(0,0,0));
loc=AddGoalLocation("10_PARIS_CATACOMBS_TUNNELS", "Back of Bunker Upper Level Ladder Side", NORMAL_GOAL, vect(923,-2907,-32), rot(0, 31936, 0));
AddActorLocation(loc, 1, vect(880,-2980,-44), rot(0,0,0));
loc=AddGoalLocation("10_PARIS_CATACOMBS_TUNNELS", "Back of Bunker Upper Level Stair Side", NORMAL_GOAL, vect(-290,-2475,-32), rot(0, 0, 0));
AddActorLocation(loc, 1, vect(-240,-2420,-44), rot(0,0,0));
loc=AddGoalLocation("10_PARIS_CATACOMBS_TUNNELS", "Front of Bunker Side", NORMAL_GOAL, vect(-637,745,-256), rot(0, -16640, 0));
AddActorLocation(loc, 1, vect(-440,730,-300), rot(0,0,0));
loc=AddGoalLocation("10_PARIS_CATACOMBS_TUNNELS", "Front of Bunker Upper Level", NORMAL_GOAL, vect(-1635,-82,-64), rot(0, 0, 0));
AddActorLocation(loc, 1, vect(-1640,-257,-82), rot(0,0,0));
return 102;
case "10_PARIS_METRO":
case "10_PARIS_CLUB":
AddGoal("10_PARIS_METRO", "Jaime", NORMAL_GOAL, 'JaimeReyes1', PHYS_Falling);
Expand Down Expand Up @@ -56,6 +69,19 @@ function int InitGoalsRev(int mission, string map)
local int goal, loc, loc2;

switch(map) {
case "10_PARIS_CATACOMBS_TUNNELS":
AddGoal("10_PARIS_CATACOMBS_TUNNELS", "Agent Hela", NORMAL_GOAL, 'AgentHela0', PHYS_Falling);
loc=AddGoalLocation("10_PARIS_CATACOMBS_TUNNELS", "Back of Bunker", NORMAL_GOAL | VANILLA_GOAL, vect(705.049500,-3805.679932,-278.812622), rot(0, 16384, 0));
AddActorLocation(loc, 1, vect(795,-3725,-284), rot(0,0,0));
loc=AddGoalLocation("10_PARIS_CATACOMBS_TUNNELS", "Back of Bunker Upper Level Ladder Side", NORMAL_GOAL, vect(-245,-2881,-32), rot(0, 0, 0));
AddActorLocation(loc, 1, vect(-227,-2481,-28), rot(0,0,0));
loc=AddGoalLocation("10_PARIS_CATACOMBS_TUNNELS", "Back of Bunker Side Room", NORMAL_GOAL, vect(1102,-3028,-288), rot(0, -35404, 0));
AddActorLocation(loc, 1, vect(955,-2630,-330), rot(0,0,0));
loc=AddGoalLocation("10_PARIS_CATACOMBS_TUNNELS", "Front of Bunker Side", NORMAL_GOAL, vect(-500,600,-264), rot(0, -25956, 0));
AddActorLocation(loc, 1, vect(-775,675,-300), rot(0,0,0));
loc=AddGoalLocation("10_PARIS_CATACOMBS_TUNNELS", "Front of Bunker Upper Level", NORMAL_GOAL, vect(-1480,-90,-64), rot(0, 0, 0));
AddActorLocation(loc, 1, vect(-1668,65,-108), rot(0,0,0));
return 102;
case "10_PARIS_METRO":
case "10_PARIS_CLUB":
AddGoal("10_PARIS_METRO", "Jaime", NORMAL_GOAL, 'JaimeReyes1', PHYS_Falling);
Expand Down Expand Up @@ -179,3 +205,46 @@ function CreateGoal(out Goal g, GoalLocation Loc)
break;
}
}

function PreFirstEntryMapFixes()
{
local #var(prefix)WIB hela;
local #var(prefix)NanoKey key;

if( dxr.localURL == "10_PARIS_CATACOMBS_TUNNELS" ) {
foreach AllActors(class'#var(prefix)WIB', hela) {
key = #var(prefix)NanoKey(GiveItem(hela,class'#var(prefix)NanoKey'));
key.Description="Catacombs Sewer Entry Key";
key.keyId='catacombs_blastdoor02';
break;
}
}
}

function AfterMoveGoalToLocation(Goal g, GoalLocation Loc)
{
local DXREnemiesPatrols patrol;
local #var(prefix)NanoKey key;

if (g.name=="Agent Hela"){
if (Loc.Name=="Back of Bunker" || //Vanilla
Loc.Name=="Front of Bunker Side" || //Vanilla
Loc.Name=="Front of Bunker Upper Level"|| //Vanilla
Loc.Name=="Back of Bunker Side Room"){ //Revision

foreach AllActors(class'DXREnemiesPatrols',patrol){break;}
patrol.GivePatrol(#var(prefix)ScriptedPawn(g.actors[0].a));
} else {
#var(prefix)ScriptedPawn(g.actors[0].a).SetOrders('Standing');
}

//Create the sneakable bonus key near Hela
key=#var(prefix)NanoKey(Spawnm(class'#var(prefix)NanoKey',,,Loc.positions[1].pos));
key.Description="Catacombs Sewer Entry Key";
key.keyId='catacombs_blastdoor02';
key.bIsSecretGoal=true;
if(dxr.flags.settings.keysrando > 0)
GlowUp(key);

}
}
1 change: 1 addition & 0 deletions DXRModules/DeusEx/Classes/DXRAugmentations.uc
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ static function RemoveAug(DeusExPlayer player, Augmentation aug)

aug.Deactivate();
aug.bHasIt = False;
aug.CurrentLevel=0;

// Manage our AugLocs[] array
player.AugmentationSystem.AugLocs[aug.AugmentationLocation].augCount--;
Expand Down
24 changes: 7 additions & 17 deletions DXRModules/DeusEx/Classes/DXREvents.uc
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ function WatchActors()
local #var(prefix)PoolTableLight poolLight;
local #var(prefix)HKMarketLight hangingLight;
local #var(prefix)ShopLight shopLight;
local #var(prefix)HangingShopLight hangShopLight;
local #var(prefix)SignFloor signFloor;
local #var(prefix)WaterCooler cooler;
local #var(prefix)WaterFountain fountain;
Expand All @@ -32,27 +33,18 @@ function WatchActors()
foreach AllActors(class'#var(prefix)ShopLight',shopLight){
AddWatchedActor(shopLight,"LightVandalism");
}
foreach AllActors(class'#var(prefix)HangingShopLight',hangShopLight){
AddWatchedActor(hangShopLight,"LightVandalism");
}
foreach AllActors(class'#var(prefix)Chandelier',chandelier){
AddWatchedActor(chandelier,"LightVandalism");
}
foreach AllActors(class'#var(prefix)BoneFemur',femur){
AddWatchedActor(femur,"FightSkeletons");
}
foreach AllActors(class'#var(prefix)BoneSkull',skull){
AddWatchedActor(skull,"FightSkeletons");
}
foreach AllActors(class'#var(prefix)Trophy',trophy){
AddWatchedActor(trophy,"TrophyHunter");
}
foreach AllActors(class'#var(prefix)SignFloor',signFloor){
AddWatchedActor(signFloor,"SlippingHazard");
}
foreach AllActors(class'#var(prefix)WaterCooler',cooler){
AddWatchedActor(cooler,"Dehydrated");
}
foreach AllActors(class'#var(prefix)WaterFountain',fountain){
AddWatchedActor(fountain,"Dehydrated");
}
foreach AllActors(class'#var(prefix)HangingChicken',chicken){
AddWatchedActor(chicken,"BeatTheMeat");
}
Expand Down Expand Up @@ -2493,16 +2485,14 @@ static simulated function string GetBingoGoalHelpText(string event,int mission)
return "Destroy enough cigarette vending machines. Smoking kills!";
case "PhoneCall":
msg = "Make phone calls on enough different phones (Either desk phones or pay phones).";
if (mission<=1){
msg=msg$"|n|nThere is a desk phone on Janice's desk in UNATCO HQ.";
} else if (mission <=2){
if (mission <=2){
msg=msg$"|n|nThere is a desk phone and a pay phone in the Free Clinic. There are two payphones in the streets. There is a payphone in the back of the bar.";
} else if (mission <=3){
msg=msg$"|n|nThere is a desk phone on Janice's desk in UNATCO HQ. There are two desk phones in offices in the LaGuardia Helibase.";
} else if (mission <=4){
msg=msg$"|n|nThere is a desk phone on Janice's desk in UNATCO HQ. There are two payphones in the streets. There is a payphone in the back of the bar.";
} else if (mission <=5){
msg=msg$"|n|nThere is a desk phone on Janice's desk in UNATCO HQ.";
msg=msg$"|n|nThere is a desk phone on Sam's desk in UNATCO HQ.";
} else if (mission <=6){
msg=msg$"|n|nThere is a desk phone in the Luminous Path Compound in the Wan Chai Market.";
msg=msg$"|nThere is a desk phone at the front desk of Queen's Tower on Tonnochi Road.";
Expand Down Expand Up @@ -2897,7 +2887,7 @@ defaultproperties
bingo_options(280)=(event="SnitchDowd",desc="Snitches get stitches",max=1,missions=256)
bingo_options(281)=(event="SewerSurfin",desc="Sewer Surfin'",max=1,missions=276)
bingo_options(282)=(event="SmokingKills",desc="Smoking Kills (%s)",max=5,missions=3420)
bingo_options(283)=(event="PhoneCall",desc="Make %s phone calls",max=5,missions=1918)
bingo_options(283)=(event="PhoneCall",desc="Make %s phone calls",max=5,missions=1916)
bingo_options(284)=(event="Area51ElevatorPower",desc="Power the elevator in Area 51",max=1,missions=32768)
bingo_options(285)=(event="Area51SleepingPod",desc="Open %s sleeping pods in Area 51",max=4,missions=32768)
bingo_options(286)=(event="Area51SteamValve",desc="Close %s steam valves in Area 51",max=2,missions=32768)
Expand Down
5 changes: 4 additions & 1 deletion DXRModules/DeusEx/Classes/DXREventsBase.uc
Original file line number Diff line number Diff line change
Expand Up @@ -626,7 +626,10 @@ function _AddPawnDeath(ScriptedPawn victim, optional Actor Killer, optional coer

_MarkBingo(victim.BindName$"_Dead");
_MarkBingo(victim.BindName$"_DeadM" $ dxr.dxInfo.missionNumber);
if( Killer == None || #var(PlayerPawn)(Killer) != None ) {

//Burned doesn't track who set them on fire...
//The intent here is to only mark bingo for kills done by the player
if( (Killer == None && damageType=="Burned") || #var(PlayerPawn)(Killer) != None ) {
classname = string(victim.class.name);
if(#defined(hx) && InStr(classname, "HX")==0) {
classname = Mid(classname, 2);
Expand Down
Loading

0 comments on commit 3a2ccff

Please sign in to comment.