Skip to content

Commit

Permalink
v3.0.0.0 Alpha Merge pull request #791 from Die4Ever/develop
Browse files Browse the repository at this point in the history
* v2.7.3.0 Alpha bump version for dev

* Jock drops gibs when he explodes.  Louis Pan screams are now controlled
by the Memes toggle

* Louis Pan death screams no longer alert enemies

* Jock only explodes into meat chunks in Area 51

* Jock leaves the bar before flying to the NSF warehouse (#776)

* remove jock from the bar after destroying the generator

* remove jock instead of killing him

* More info in messages after using bots (#771)

* add more info to medical bot message

* add repair bot client message

* revert parameter name to vanilla (even though I hate it)

* return correct value in MedicalBot.HealPlayer and RepairBot.ChargePlayer

* cleanup switch with break at the end, just in case

* MedicalBot fix other mods

* messages for skill upgrades

* dockyard roof backtrack button for the crane

* reduce ammo respect bIsSecretGoal, mostly for jail

* Restore 2 Nicollete lines in the Chateau cellar (#775)

* restore 2 nicollete lines in chateau cellar

* use FixConversationFlag for Nicolette cellar lines

* increase area for restored nicolette lines

* move NicoletteInCellar FixConversationFlag call to AnyEntry

* use vectm for ChateauInCellar FlagTriggers

* Fix crates that allow you to jump out of the Warehouse sewer water (#773)

* set bIsSecretGoal for the crates that let you get out of the warehouse sewer water

* move m02 sewer escape crates so that they aren't blocked by a generator

* use #var(prefix) and nonzero radius for M02 sewer crate fix

* use vectm for offset movement, just in case we do transformations on the Y axis

---------

Co-authored-by: Die4Ever <die4ever2005@gmail.com>

* Update rotation on HK Helibase flight deck buttons to use rotm

* Clean up usage of Button1 variables in Mission 6 fixups

* Loot Refusal (#768)

* add (nonfunctional) trash/autouse inventory butons

* items can be added to refusal list

* add basic functionality to item refusal button

* give item refusal button a hotkey

* allow un-refusing inventory items

* drop entire stack when refusing an item

* drop spawned Pickups roughly in front of player

* loot ammo from refused weapons

* correctly disable btnRefusal when selecting a non-inventory item

* move refusal logic in Carcass from Frob to TryLootItem

* item refusal refactor

---------

Co-authored-by: Die4Ever <die4ever2005@gmail.com>

* HUDEnergyDisplay reuse CalcEnergyUse function from AugmentationManager

* rework snyth heart aug (#657)

* spy drone rework (#657)

* fix aug descriptions for spy drone and synth heart (#657)

* nerfed damage of spy drone, no longer disables walker bots in 1 hit in Zero Rando (#657)

* tweak spy drone description (#657)

* close windows in PreTravel to prevent crashes with autorun and realtime menus

* fix Anna pepper spray when EMP'd

* PS20/40 get thrown away more quickly

* A first pass at petting animals.  Some potential improvements still
remain, such as better animation choosing when crouching, getting the
"high" pet animation to play consistently with the mp_jumpsuit mesh,
possibly more. #750

* Some messy logic to prevent other animations from taking priority over
our much more important petting animation #750

* Allow petting hostile animals

* Rename bPetting to bBlockAnimations (as a more generic piece of
functionality) #750

* Ensure FemJC can actually get the default jacket

* fix GMDX v10 missing Animal.ModifyDamage (#767)

* Animal petting improvements.  Must have free hands to pet.  Can't pet
while swimming.  Flies can't be pet.  #750

* Multiple new animal petting bingo goals.  Killing an animal while it's
being pet will no longer leave you in third person. #750

* stun and gas for enemies with shields when EMPed

* Fix crash on New Game Plus, trying to clear the window stack while the
credits are being destroyed

* buff update notifications

* speedrun splits display tweaks

* fix timer names in credits (#782)

* fix balanced splits being faster than gold (#787) (obviously only when the goal time is slower than the sum of bests)

* Add 'TerroristCommander_Dead' == false requirement to 'DL_Top' (#783)

* add 'TerroristCommander_Dead' == false requirement to 'DL_Top'

* move new AddFlagRef to AnyEntryMapFixes

* Add default refusal options to the Gameplay settings menu (#785)

* add default refusal options to gameplay settings menu

* change refusal settings wordings

* refusal settings apply immediately

* add "miscellaneous" item set to refusal defaults

* don't create refusal settings options in non-vanilla

* fix item refusal menu options conflicting with VMD

---------

Co-authored-by: Die4Ever <die4ever2005@gmail.com>

* tone down lamps a bit to retain mood of the game

* fix floating nanokeys and datacubes
I had to git bisect to find commit 8860b02

* Bingo Goal for disabling electrical control panels in Vandenberg
Computer room no longer gets completed by merging Helios

* Highlighting decorations will now show the proper number of shots from
sabot and explosive weapons.  New hint for using sabot on decorations,
and fix a typo in another hint

* speedrun splits slightly more red in the pink color

* alex turns the lights out when he leaves his office (#784)

* Beam and Laser Triggers now take damage from sabot and explosives even
when under the min damage threshold, to match DeusExDecoration
behaviour.  Highlight info reflects this as well.

* clean up airfield tower keys (#758)

* fix consistency of shields
fixes for 5bcc347

---------

Co-authored-by: theastropath@gmail.com <theastropath@gmail.com>
Co-authored-by: Jeffrey Thomas Piercy <mqduck@mqduck.net>
  • Loading branch information
3 people authored Jun 7, 2024
2 parents 198bc55 + d57eef6 commit 76d357a
Show file tree
Hide file tree
Showing 64 changed files with 1,327 additions and 224 deletions.
17 changes: 16 additions & 1 deletion DXRBalance/DeusEx/Classes/AnnaNavarre.uc
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,22 @@ function float ModifyDamage(int Damage, Pawn instigatedBy, Vector hitLocation,
function float ShieldDamage(name damageType)
{
// move her resistances into shield so they are visible to the player
if ((damageType == 'Stunned') || (damageType == 'KnockedOut') || (damageType == 'Poison') || (damageType == 'PoisonEffect'))
if (damageType == 'Stunned' || damageType == 'KnockedOut' || damageType == 'Poison' || damageType == 'PoisonEffect')
return 0;
return Super.ShieldDamage(damageType);
}

// if her shields are down, allow her to be stunned/gassed
function GotoDisabledState(name damageType, EHitLocation hitPos)
{
if(ShieldDamage(damageType) < 1) {
if(EmpHealth > 0) {
MaybeDrawShield();
Super.GotoDisabledState(damageType, hitPos);
}
else
Super(HumanMilitary).GotoDisabledState(damageType, hitPos);
} else {
Super.GotoDisabledState(damageType, hitPos);
}
}
19 changes: 18 additions & 1 deletion DXRBalance/DeusEx/Classes/AugHeartLung.uc
Original file line number Diff line number Diff line change
@@ -1,8 +1,25 @@
class DXRAugHeartLung injects AugHeartLung;

function PostPostBeginPlay()
{
Super.PostPostBeginPlay();
// description gets overwritten by language file, also DXRAugmentations reads from the default.Description
default.Description = "This synthetic heart circulates not only blood but a steady concentration of mechanochemical power cells, smart phagocytes, and liposomes containing prefab diamondoid machine parts,"
$ " resulting in upgraded performance for all installed augmentations, but also increasing their energy use."
$ "|n|n<UNATCO OPS FILE NOTE JR133-VIOLET> However, this will not enhance any augmentation past its maximum upgrade level. -- Jaime Reyes <END NOTE>";
Description = default.Description;
}

defaultproperties
{
bAutomatic=true
AutoLength=1.2
AutoLength=0
AutoEnergyMult=1

EnergyRate=0
MaxLevel=3
LevelValues(0)=2
LevelValues(1)=1.75
LevelValues(2)=1.5
LevelValues(3)=1.25
}
28 changes: 11 additions & 17 deletions DXRBalance/DeusEx/Classes/AugmentationManager.uc
Original file line number Diff line number Diff line change
Expand Up @@ -157,31 +157,31 @@ simulated function int GetClassLevel(class<Augmentation> augClass)

simulated function Float CalcEnergyUse(float deltaTime)
{
local float f, energyUse, energyMult;
local Augmentation anAug, augBoost;
local bool bBoosting;
local float f, energyUse, boostedEnergyUse, energyMult, boostMult;
local Augmentation anAug;

energyUse = 0;
energyMult = 1.0;
boostMult = 1.0;

Player.AmbientSound = None;

anAug = FirstAug;
while(anAug != None)
{
if (AugPower(anAug) != None && anAug.bHasIt)
if (AugPower(anAug) != None && anAug.bHasIt && anAug.bIsActive)
energyMult = anAug.LevelValues[anAug.CurrentLevel];
if (AugHeartLung(anAug) != None && anAug.bHasIt && anAug.bIsActive)
boostMult = anAug.LevelValues[anAug.CurrentLevel];

if (anAug.bHasIt && anAug.bIsActive)
{
if (AugHeartLung(anAug) != None) {
augBoost = AnAug;
}
f = ((anAug.GetEnergyRate()/60) * deltaTime);
if(f > 0 && anAug.bBoosted) {
bBoosting = true;
boostedEnergyUse += f;
} else {
energyUse += f;
}
energyUse += f;

if ((anAug.bAutomatic == false && anAug.bAlwaysActive == false) || f > 0.0) {
Player.AmbientSound = anAug.LoopSound;
Expand All @@ -190,14 +190,8 @@ simulated function Float CalcEnergyUse(float deltaTime)
anAug = anAug.next;
}

if(bBoosting) {
f = (augBoost.GetEnergyRate()/60) * deltaTime;// check if it wasn't using energy yet
augBoost.TickUse();
if(f == 0) { // add in its energy usage if this is the first tick
f = (augBoost.GetEnergyRate()/60) * deltaTime;
energyUse += f;
}
}
// check for synthetic heart
energyUse += boostedEnergyUse * boostMult;

// check for the power augmentation
energyUse *= energyMult;
Expand Down
26 changes: 20 additions & 6 deletions DXRBalance/DeusEx/Classes/BalanceAugDrone.uc
Original file line number Diff line number Diff line change
@@ -1,11 +1,25 @@
class BalanceAugDrone injects AugDrone;
// original values went from 10 to 50, but we also adjust the damage values in BalanceSpyDrone.uc

function PostPostBeginPlay()
{
Super.PostPostBeginPlay();
// description gets overwritten by language file, also DXRAugmentations reads from the default.Description
default.Description = "Advanced nanofactories can assemble a spy drone upon demand which can then be remotely controlled by the agent until released or destroyed, at which a point a new drone will be assembled."
$ " Detonating the drone costs 10 energy. Further upgrades equip the spy drones with better armor and a one-shot EMP attack."
$ "|n|nTECH ONE: The drone is slow and has a very light EMP attack."
$ "|n|nTECH TWO: The drone is fast and has a light EMP attack."
$ "|n|nTECH THREE: The drone is very fast and has a medium EMP attack."
$ "|n|nTECH FOUR: The drone is extremely fast and has a strong EMP attack.";
Description = default.Description;
}

// original values went from 10 to 50, but we also adjust the multipliers in BalancePlayer.uc
defaultproperties
{
reconstructTime=1
EnergyRate=100
LevelValues(0)=50
LevelValues(1)=75
LevelValues(2)=100
LevelValues(3)=150
EnergyRate=20
LevelValues(0)=30
LevelValues(1)=50
LevelValues(2)=70
LevelValues(3)=100
}
45 changes: 45 additions & 0 deletions DXRBalance/DeusEx/Classes/BalancePlayer.uc
Original file line number Diff line number Diff line change
Expand Up @@ -489,7 +489,52 @@ exec function DualmapF10() { ActivateAugmentation(7); }
exec function DualmapF11() { ActivateAugmentation(8); }
exec function DualmapF12() { ActivateAugmentation(9); }

function CreateDrone()
{
local Vector loc;

loc = (2.0 + class'SpyDrone'.Default.CollisionRadius + CollisionRadius) * Vector(ViewRotation);
loc.Z = BaseEyeHeight;
loc += Location;
aDrone = Spawn(class'SpyDrone', Self,, loc, ViewRotation);
if (aDrone != None)
{
//aDrone.Speed = 3 * spyDroneLevelValue;
aDrone.Speed = 5 * spyDroneLevelValue;
//aDrone.MaxSpeed = 3 * spyDroneLevelValue;
aDrone.MaxSpeed = 5 * spyDroneLevelValue;
//aDrone.Damage = 5 * spyDroneLevelValue;
aDrone.Damage = 2 * spyDroneLevelValue;
//aDrone.blastRadius = 8 * spyDroneLevelValue;
aDrone.blastRadius = 4 * spyDroneLevelValue;
// window construction now happens in Tick()
}
}

simulated function MoveDrone( float DeltaTime, Vector loc )
{
if(aDrone == None) {
// just in case the drone got killed
DroneExplode();
return;
}
aDrone.MoveDrone(DeltaTime, loc);// DXRando: this doesn't belong in the player...
}

function DroneExplode()
{
local AugDrone anAug;

if (aDrone == None) {
anAug = AugDrone(AugmentationSystem.FindAugmentation(class'AugDrone'));
if (anAug != None) anAug.Deactivate();
return;
}

if(Energy >= 10) {
Energy -= 10;
Super.DroneExplode();
} else {
ClientMessage("You need 10 bio-electric energy to detonate the spy drone.");
}
}
10 changes: 10 additions & 0 deletions DXRBalance/DeusEx/Classes/BalanceSpyDrone.uc
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,13 @@ function TakeDamage(int Damage, Pawn instigatedBy, Vector HitLocation, Vector Mo
LifeSpan=class'AugDrone'.Default.reconstructTime-0.1;
}
}

function Destroyed()
{
if ( DeusExPlayer(Owner) != None ) {
DeusExPlayer(Owner).aDrone = None;
DeusExPlayer(Owner).DroneExplode();
}

Super.Destroyed();
}
16 changes: 16 additions & 0 deletions DXRBalance/DeusEx/Classes/GuntherHermann.uc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
class DXRGuntherHermann injects GuntherHermann;

// if his shields are down, allow him to be stunned/gassed
function GotoDisabledState(name damageType, EHitLocation hitPos)
{
if(ShieldDamage(damageType) < 1) {
if(EmpHealth > 0) {
MaybeDrawShield();
Super.GotoDisabledState(damageType, hitPos);
}
else
Super(HumanMilitary).GotoDisabledState(damageType, hitPos);
} else {
Super.GotoDisabledState(damageType, hitPos);
}
}
18 changes: 18 additions & 0 deletions DXRBalance/DeusEx/Classes/MJ12Commando.uc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ function float ModifyDamage(int Damage, Pawn instigatedBy, Vector hitLocation,
Vector offset, Name damageType)
{
if(damageType == 'Sabot') Damage *= 2;
if(damageType == 'TearGas' || damageType == 'HalonGas') return 0;

return Super.ModifyDamage(Damage, instigatedBy, hitLocation, offset, damageType);
}

Expand All @@ -12,6 +14,22 @@ function PlayPanicRunning()
PlayRunning();
}

// if his shields are down, allow him to be stunned
// commandos don't have the rubbing eyes animation
function GotoDisabledState(name damageType, EHitLocation hitPos)
{
if(damageType != 'TearGas' && damageType != 'HalonGas' && ShieldDamage(damageType) < 1) {
if(EmpHealth > 0) {
MaybeDrawShield();
Super.GotoDisabledState(damageType, hitPos);
}
else
Super(HumanMilitary).GotoDisabledState(damageType, hitPos);
} else {
Super.GotoDisabledState(damageType, hitPos);
}
}

defaultproperties
{
BurnPeriod=5.0
Expand Down
16 changes: 16 additions & 0 deletions DXRBalance/DeusEx/Classes/PaulDenton.uc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
class DXRPaulDenton injects PaulDenton;

// if his shields are down, allow him to be stunned/gassed
function GotoDisabledState(name damageType, EHitLocation hitPos)
{
if(ShieldDamage(damageType) < 1) {
if(EmpHealth > 0) {
MaybeDrawShield();
Super.GotoDisabledState(damageType, hitPos);
}
else
Super(HumanMilitary).GotoDisabledState(damageType, hitPos);
} else {
Super.GotoDisabledState(damageType, hitPos);
}
}
16 changes: 16 additions & 0 deletions DXRBalance/DeusEx/Classes/WaltonSimons.uc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
class DXRWaltonSimons injects WaltonSimons;

// if his shields are down, allow him to be stunned/gassed
function GotoDisabledState(name damageType, EHitLocation hitPos)
{
if(ShieldDamage(damageType) < 1) {
if(EmpHealth > 0) {
MaybeDrawShield();
Super.GotoDisabledState(damageType, hitPos);
}
else
Super(HumanMilitary).GotoDisabledState(damageType, hitPos);
} else {
Super.GotoDisabledState(damageType, hitPos);
}
}
2 changes: 2 additions & 0 deletions DXRCore/DeusEx/Classes/DXRActorsBase.uc
Original file line number Diff line number Diff line change
Expand Up @@ -894,6 +894,8 @@ static function int GetRotationOffset(class<Actor> c)
return 16384;
if(ClassIsChildOf(c, class'ProjectileGenerator'))
return 16384;
if(ClassIsChildOf(c, class'#var(prefix)Button1'))
return 16384;
//ComputerPersonal is fine without this, so just leave it commented out
//if(ClassIsChildOf(c, class'#var(prefix)ComputerPersonal'))
// return 32768;
Expand Down
12 changes: 6 additions & 6 deletions DXRCore/DeusEx/Classes/DXRVersion.uc
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,23 @@ class DXRVersion extends Info;

simulated static function CurrentVersion(optional out int major, optional out int minor, optional out int patch, optional out int build)
{
major=2;
minor=7;
patch=2;
build=3;//build can't be higher than 99
major=3;
minor=0;
patch=0;
build=0;//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
Loading

0 comments on commit 76d357a

Please sign in to comment.