Skip to content

Commit

Permalink
Merge pull request #32 from NSHoffman/dev
Browse files Browse the repository at this point in the history
release/2024-04-27/1.4.0
  • Loading branch information
NSHoffman authored Apr 27, 2024
2 parents db76f36 + 27b4ba0 commit 801109c
Show file tree
Hide file tree
Showing 24 changed files with 2,151 additions and 495 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
N7ZedsMut.code-workspace
76 changes: 71 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# N7 Zeds Changelog

## `1.2.0`
## `1.2.x` Features

### `1.2.x` Features
### `1.2.0`

- Although custom skins are turned on by default, it is now possible to switch them off and get back to original textures by setting `bUseOriginalZedSkins` to `True` in configuration file.

Expand All @@ -12,8 +12,74 @@

- Fixed issue with vanilla textured stalkers blinking and not going invisible.

## `1.3.0`
## `1.3.x` Features

### `1.3.x` Features
### `1.3.0`

- Mutate API extended with new console commands to allow in-game ZEDs configuration.
- Mutate API has been extended with mutator-specific console commands to allow in-game ZEDs configuration.

## `1.4.x` Features

### `1.4.0`

- **Major rework of the Patriarch**:
+ **Addition of new patriarch's behaviours**:
* Patriarch might want to destroy pipe bombs when there are players nearby.
* Patriarch might want to destroy welded doors when there are players nearby.
* Patriarch might want to radial attack players circling around him during chaingun attack (He won't though until he gets damaged).
* Patriarch might want to evade significant damage by switching places with one of the alive pseudos.
* Patriarch might want to go on invisible hunt right after healing.
+ **Updates to existing behaviours**:
* Radial attack animation has been trimmed so patriarch won't waste time boasting.
* Patriarch's chaingun attack has been reconsidered. Depending on distance and configuration settings he can do three types of chaingun attack:
1. Stationary burst fire - More accurate, yet less mobile. More likely to be chosen when the patriarch is attacking from larger distance.
2. Walking auto fire - Less accurate, but allows for chasing players at mid-range distances.
3. Running auto fire - Inaccurate, but efficient when it comes to killing players in close quarters combat. Activates only after patriarch gets damaged severely during 2nd type attack.
* Patriarch shoots a little less rounds per chaingun attack.
* Patriarch is no longer invincible when escaping/healing - though the exact percentage of ignored incoming damage is configured.
* Patriarch is no longer invincible when using shield - the exact percentage of absorbed incoming damage is configured.
* Patriarch is no longer vulnerable to commando attacks when invisible. Commando does the same damage as other perks.
* Cooldown for rocket launcher attack has been increased.
* Patriarch's pseudos are now spawned at random locations rather than around the patriarch.
* Patriarch's teleportation point is now by default further from the enemy player than it used to be + it is now configurable.
* Conditions for force charge have been slightly changed to consider cooldown.
- **Other ZEDs' behaviour changes**:
+ **Husks**:
* Can do either moving or stationary attack depending on distance to the target player (Stationary is preferred when close enough to players and there is no need in shortening the distance).
+ **Fleshpounds**
* Can settle down after killing a player or after certain timeout (given he is far enough from the player he is charging at).
+ **Sirens**
* Scream causes less screen shaking.
- **Major configuration changes**:
+ Each ZED can be set a custom display name.
+ **Patriarch**:
* All of the boolean configuration settings for patriarch (`bCanKite`, `bSpawnPseudos`, `bUseShield`, `bUseTeleport` etc.) have been removed due to redundancy. Those are replaced with chance settings.
* Large number of settings have been added to patriarch's combat stages configuration allowing huge variety of behaviour adjustments. More in [`CONFIG.md`](./CONFIG.md).
* Added setting for patriarch's HP configuration.
* Added setting for patriarch's chaingun damage configuration.
+ **Stalkers**:
* Added min/max spawned pseudos configuration settings.
+ **Husks**:
* Added firing interval settings.
* Added moving attack chance setting.
+ **Sirens**:
* Added custom damage type enable/disable setting. (Allows for turning off the agony effect).
+ **Fleshpound**
* Added chance setting of settling down after killing a player.
* Added setting of distance at which fleshpound stops charging at player (works only if fleshpound has been raged by damage).
- **Major changes to custom skins pack**: Clot, Bloat, Gorefast, Crawler, Siren, Scrake, Fleshpound.

### `1.4.x` Fixes

#### `1.4.0`

- Fixed patriarch replacement in the sandbox.
- Fixed patriarch not charging at nearby players when shot during stationary chaingun attack.
- Fixed patriach's pseudos overriding each other when spawning was to occur multiple times at different healing stages.
- Fixed siren's attack not pulling players.
- Fixed siren's attack damaging players after decapitation.
- Fixed husk trying to shoot when falling.
- Fixed husk's moving attack not being interrupted by stunning.
- Fixed fleshpound's device light not changing fully to red when he gets raged by explosions.
- Fixed fleshpound's spinning when raging and other ZEDs are around.
- Fixed fleshpound's unraging before door bashing.
176 changes: 155 additions & 21 deletions CONFIG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@

## Description

Configuration file allows for setting replacement rules for individual ZEDs as well as reverting back to default skins.
Configuration file allows for setting replacement rules for individual ZEDs or reverting back to default skins.

Moreover, some ZEDs have configurable properties that can be changed in the `.ini` file.
Also, some ZEDs have configurable properties that can be changed in the `.ini` file.
Here are some hints on what those are supposed to do.

Apart from it, there can also be [Mutate API related settings](./MUTATE.md).

## Config Example
## Default Config

```ini
; Replacement rules
; ===== ZEDS REPLACEMENT SETTINGS =====
[N7ZedsMut.N7ZedsMut]
bEnableAutoReplacement=True
bUseOriginalZedSkins=False
Expand All @@ -27,27 +27,161 @@ bReplaceSiren=True
bReplaceHusk=True
bReplaceBoss=True

; Stalker
[N7ZedsMut.N7_Stalker]
; Whether or not Stalkers will spawn pseudo squads
bSpawnPseudos=True
; ===== MUTATE API SETTINGS =====
; Access settings for Mutate API commands
; -- 0 = Everyone, 1 = Admin Only
;
[N7ZedsMut.N7ZedsConfigMutateAPI]
flagAdminOnlyCommand[0]=0 ; zeds.help
flagAdminOnlyCommand[1]=0 ; zeds.cfg
flagAdminOnlyCommand[2]=0 ; zeds.skins
flagAdminOnlyCommand[3]=0 ; zeds.clot
flagAdminOnlyCommand[4]=0 ; zeds.crawl
flagAdminOnlyCommand[5]=0 ; zeds.gore
flagAdminOnlyCommand[6]=0 ; zeds.stalk
flagAdminOnlyCommand[7]=0 ; zeds.sc
flagAdminOnlyCommand[8]=0 ; zeds.fp
flagAdminOnlyCommand[9]=0 ; zeds.bloat
flagAdminOnlyCommand[10]=0 ; zeds.siren
flagAdminOnlyCommand[11]=0 ; zeds.husk
flagAdminOnlyCommand[12]=0 ; zeds.boss
flagAdminOnlyCommand[13]=0 ; zeds.all

; Prefix that prepends commands (purely for commands uniqueness purposes, can be any)
Prefix=zeds.

; Commands execution messages
MsgSuccessTemplate=%KEY% set to %VALUE%
MsgAccessDenied=Access Denied

; Those are generated automatically
; Irrelevant for the mutator
; ===== TO BE IGNORED =====
[XGame.xPawn]
[UnrealGame.UnrealPawn]
[Engine.Pawn]

; Patriarch
; ===== ZEDS SETTINGS =====
; CustomMenuName - Zed's display name. Leave empty if default names are preferred.

[N7ZedsMut.N7_Clot]
CustomMenuName=N7 Clot

[N7ZedsMut.N7_Bloat]
CustomMenuName=N7 Bloat

[N7ZedsMut.N7_Gorefast]
CustomMenuName=N7 Gorefast

[N7ZedsMut.N7_Crawler]
CustomMenuName=N7 Crawler

; MinPseudos - Min number of pseudos to be spawned.
; MaxPseudos - Max number of pseudos to be spawned.
; -- In case MaxPseudos=0 - no pseudos will be spawned.
[N7ZedsMut.N7_Stalker]
MinPseudos=0
MaxPseudos=3
CustomMenuName=N7 Stalker

[N7ZedsMut.N7_PseudoStalker]
CustomMenuName=N7 Pseudo Stalker

; MinFireInterval - Min time between fire shots.
; MaxFireInterval - Max time between fire shots.
; MovingAttackChance - Chance of moving attack.
; MovingAttackCertainDistance - Distance starting from which moving attack will always be chosen (if not disabled by setting MovingAttackChance=0).
[N7ZedsMut.N7_Husk]
MinFireInterval=2.000000
MaxFireInterval=4.000000
MovingAttackChance=0.500000
MovingAttackCertainDistance=2000
CustomMenuName=N7 Husk

; bUseCustomDamageType - Use custom damage type with the agony effect.
[N7ZedsMut.N7_Siren]
CustomMenuName=N7 Siren
bUseCustomDamageType=False

[N7ZedsMut.N7_Scrake]
CustomMenuName=N7 Scrake

; RageStopDistance - Min distance to player at which raged fleshpound will want to give up raging.
; RageStopAfterKillChance - Chance fleshpound will settle down after killing a player.
[N7ZedsMut.N7_Fleshpound]
CustomMenuName=N7 Fleshpound
RageStopDistance=750
RageStopAfterKillChance=0.340000

; PatHealth - Patriarch's base HP before players count/difficulty multipliers are applied.
; CGDamage - Chaingun damage.
;
; CombatStages[n] - Group of settings for patriarch's behaviour during n-th stage (n - Number of syringes used).
; -- if a certain setting is omitted - its value defaults to 0.
; -- Distance values are in Unreal Units (uu): 1uu = 0.75in, 1m = 52.5uu.
; -- Chance/Threshold values are in floating point numbers from 0.0 to 1.0.
; -- Cooldown/Duration/Rate values are in floating point numbers: 1.0 = 1s.
;
; ===== COMBAT STAGES PROPERTIES =====
;
; MinPseudos - Min number of pseudos to be spawned.
; MaxPseudos - Max number of pseudos to be spawned.
; -- In case MaxPseudos=0 - no pseudos will be spawned
;
; KiteChance - Chance of successful melee kiting.
;
; ChargeCooldown - Min time between non-forced patriarch charges at players.
; ForceChargeCooldown - Min time between forced patriarch charges at players (forced - in response to incoming damage from players).
; ForceChargeDamageThreshold - Damage as % of current health to make patriarch force charge at players.
; MaxChargeGroupDistance - Max distance from which patriarch might want to charge at group of players.
; MaxChargeSingleDistance - Max distance from which patriarch might want to charge at single player.
; RadialAttackCirclersChance - Change of patriarch radial attacking players circling around him during his chaingun attack (if he's damaged).
;
; CGShots - Shots per single chaingun attack.
; CGFireRate - Chaingun firerate, time between shots in seconds. Less the value - higher the firerate.
; CGRunChance - Chance of patriarch speeding up towards players during moving chaingun attack.
; CGRunDamageThreshold - Damage as % of current health to make patriarch speed up towards players during moving chaingun attack.
; CGMoveChance - Chance of moving chaingun attack.
; CGChargeAtNearbyChance - Chance of chaingun attack interruption and charging at nearby attacking player.
;
; PseudoSwitchChance - Chance of patriarch switching places with one of the alive pseudos to avoid taking significant damage. Damage is taken by the pseudo.
; PseudoSwitchCooldown - Min time between patriarch damage evasions/switches.
; PseudoSwitchDamageThreshold - Damage as % of current health to make patriarch want to evade next incoming damage by switching places with pseudos.
;
; RLShots - Shots per single rocket launcher attack.
; RLFireRate - Rocket launcher firerate, time between shots in seconds. Less the value - higher the firerate.
;
; ShieldChance - Chance of patriarch activating shield which absorbs incoming damage.
; ShieldDuration - Duration of the shield in seconds.
; ShieldCooldown - Min time between shield usages.
;
; ShootObstacleChance - Chance of patriarch wanting to destroy some obstacles (Doors and pipes with players nearby).
; ShootObstacleMaxDistance - Max distance from which patriarch should spot the potential obstacles.
;
; SneakAroundOnHealChance - Chance of patriarch chosing invisible hunt right after healing
; SneakAroundCooldown - Min time between invisible hunts.
;
; TeleportChance - Chance of patriarch teleporting to current target player when they are far enough to reach.
; TeleportCooldown - Min time between patriarch teleportations.
; TeleportMinDistance - Min distance to the target the patriarch might want to teleport from.
; TeleportMinApproachDistance - Min distance to the player the patriarch is able to teleport to.
; TeleportMaxApproachDistance - Max distance to the player the patriarch is able to teleport to.
;
; ShieldIgnoreDamageRate - % of ignored damage in shield state.
; EscapingIgnoreDamageRate - % of ignored damage in escaping state.
; HealingIgnoreDamageRate - % of ignored damage in healing state.
;
[N7ZedsMut.N7_Boss]
; Each of the CombatStages corresponds to the number of healing syringes used by Patriarch.
; bCanKite - Allow Patriarch to be kited using move to/move from exploit, KiteChance - Chance that kite won't fail (Works if only bCanKite=True)
; bSpawnPseudos - Allow Patriarch to spawn pseudos after healing, MinPseudos/MaxPseudos - Limits for possible spawned pseudos
; bUseShield - Allow Patriarch to turn on shield upon being damaged, ShieldChance - Chance of enabling shield, ShieldDuration - Duration of a shield in seconds
; bUseTeleport - Allow Patriarch to teleport to a target which is far enough, TeleportChance - Chance of teleporting
; CGShots - Chaingun shots per attack, CGFireRate - Chaingun fire rate, RLShots - Rocket Launcher shots per attack, RLFireRate - Rocket Launcher fire rate
CombatStages[0]=(bCanKite=True,bSpawnPseudos=False,bUseShield=False,bUseTeleport=False,CGShots=75,RLShots=1,MinPseudos=0,MaxPseudos=0,KiteChance=1.000000,CGFireRate=0.050000,RLFireRate=0.500000,ShieldChance=0.000000,ShieldDuration=0.000000,TeleportChance=0.000000)
CombatStages[1]=(bCanKite=False,bSpawnPseudos=False,bUseShield=False,bUseTeleport=False,CGShots=100,RLShots=1,MinPseudos=0,MaxPseudos=0,KiteChance=0.350000,CGFireRate=0.040000,RLFireRate=0.400000,ShieldChance=0.000000,ShieldDuration=0.000000,TeleportChance=0.000000)
CombatStages[2]=(bCanKite=False,bSpawnPseudos=False,bUseShield=True,bUseTeleport=True,CGShots=100,RLShots=2,MinPseudos=0,MaxPseudos=0,KiteChance=0.200000,CGFireRate=0.035000,RLFireRate=0.300000,ShieldChance=0.050000,ShieldDuration=1.000000,TeleportChance=0.100000)
CombatStages[3]=(bCanKite=False,bSpawnPseudos=True,bUseShield=True,bUseTeleport=True,CGShots=125,RLShots=3,MinPseudos=3,MaxPseudos=5,KiteChance=0.100000,CGFireRate=0.030000,RLFireRate=0.200000,ShieldChance=0.050000,ShieldDuration=2.000000,TeleportChance=0.150000)
CustomMenuName=N7 Patriarch
PatHealth=4000
CGDamage=5.000000

CombatStages[0]=(MinPseudos=0,MaxPseudos=0,KiteChance=1.000000,ChargeCooldown=5.000000,ForceChargeCooldown=5.000000,ForceChargeDamageThreshold=0.100000,MaxChargeGroupDistance=400,MaxChargeSingleDistance=700,RadialAttackCirclersChance=0.100000,CGShots=75,CGFireRate=0.050000,CGRunChance=0.100000,CGRunDamageThreshold=0.150000,CGMoveChance=0.100000,CGChargeAtNearbyChance=0.5,PseudoSwitchChance=0.000000,PseudoSwitchCooldown=3.000000,PseudoSwitchDamageThreshold=0.000000,RLShots=1,RLFireRate=0.500000,ShieldChance=0.000000,ShieldDuration=0.000000,ShieldCooldown=5.000000,ShootObstacleChance=0.100000,ShootObstacleMaxDistance=2000,SneakAroundOnHealChance=0.25,SneakAroundCooldown=20.0,TeleportChance=0.000000,TeleportCooldown=20.000000,TeleportMinDistance=1250,TeleportMinApproachDistance=500,TeleportMaxApproachDistance=800,ShieldIgnoreDamageRate=0.250000,EscapingIgnoreDamageRate=0.700000,HealingIgnoreDamageRate=1.000000)

CombatStages[1]=(MinPseudos=0,MaxPseudos=0,KiteChance=0.500000,ChargeCooldown=5.000000,ForceChargeCooldown=4.000000,ForceChargeDamageThreshold=0.100000,MaxChargeGroupDistance=450,MaxChargeSingleDistance=750,RadialAttackCirclersChance=0.200000,CGShots=100,CGFireRate=0.040000,CGRunChance=0.250000,CGRunDamageThreshold=0.150000,CGMoveChance=0.250000,CGChargeAtNearbyChance=0.4,PseudoSwitchChance=0.000000,PseudoSwitchCooldown=3.000000,PseudoSwitchDamageThreshold=0.000000,RLShots=1,RLFireRate=0.400000,ShieldChance=0.000000,ShieldDuration=0.000000,ShieldCooldown=5.000000,ShootObstacleChance=0.200000,ShootObstacleMaxDistance=2000,SneakAroundOnHealChance=0.35,SneakAroundCooldown=20.0,TeleportChance=0.000000,TeleportCooldown=20.000000,TeleportMinDistance=1250,TeleportMinApproachDistance=500,TeleportMaxApproachDistance=800,ShieldIgnoreDamageRate=0.500000,EscapingIgnoreDamageRate=0.600000,HealingIgnoreDamageRate=1.000000)

CombatStages[2]=(MinPseudos=0,MaxPseudos=0,KiteChance=0.250000,ChargeCooldown=5.000000,ForceChargeCooldown=3.500000,ForceChargeDamageThreshold=0.100000,MaxChargeGroupDistance=500,MaxChargeSingleDistance=800,RadialAttackCirclersChance=0.300000,CGShots=100,CGFireRate=0.035000,CGRunChance=0.400000,CGRunDamageThreshold=0.150000,CGMoveChance=0.400000,CGChargeAtNearbyChance=0.3,PseudoSwitchChance=0.000000,PseudoSwitchCooldown=3.000000,PseudoSwitchDamageThreshold=0.000000,RLShots=2,RLFireRate=0.300000,ShieldChance=0.030000,ShieldDuration=1.000000,ShieldCooldown=5.000000,ShootObstacleChance=0.400000,ShootObstacleMaxDistance=2000,SneakAroundOnHealChance=0.5,SneakAroundCooldown=17.5,TeleportChance=0.100000,TeleportCooldown=20.000000,TeleportMinDistance=1250,TeleportMinApproachDistance=500,TeleportMaxApproachDistance=800,ShieldIgnoreDamageRate=0.750000,EscapingIgnoreDamageRate=0.500000,HealingIgnoreDamageRate=0.800000)

CombatStages[3]=(MinPseudos=3,MaxPseudos=5,KiteChance=0.100000,ChargeCooldown=5.000000,ForceChargeCooldown=3.000000,ForceChargeDamageThreshold=0.100000,MaxChargeGroupDistance=500,MaxChargeSingleDistance=850,RadialAttackCirclersChance=0.500000,CGShots=125,CGFireRate=0.030000,CGRunChance=0.500000,CGRunDamageThreshold=0.150000,CGMoveChance=0.500000,CGChargeAtNearbyChance=0.2,PseudoSwitchChance=0.600000,PseudoSwitchCooldown=3.000000,PseudoSwitchDamageThreshold=0.100000,RLShots=3,RLFireRate=0.200000,ShieldChance=0.050000,ShieldDuration=2.000000,ShieldCooldown=5.000000,ShootObstacleChance=0.500000,ShootObstacleMaxDistance=2000,SneakAroundOnHealChance=0.75,SneakAroundCooldown=15.0,TeleportChance=0.150000,TeleportCooldown=20.000000,TeleportMinDistance=1250,TeleportMinApproachDistance=500,TeleportMaxApproachDistance=800,ShieldIgnoreDamageRate=1.000000,EscapingIgnoreDamageRate=0.400000,HealingIgnoreDamageRate=0.700000)

[N7ZedsMut.N7_PseudoBoss]
CustomMenuName=N7 Pseudo Patriarch
```
Loading

0 comments on commit 801109c

Please sign in to comment.