You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+55-9Lines changed: 55 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,10 +9,22 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
9
9
<details><summary><b>Added</b></summary>
10
10
11
11
- Pathfinding and navigation overhaul, including jetpack/jump-aware pathfinding.
12
-
Actors will now intelligently choose their path depending on how high they can jump, instead of always taking the shortest path. This will reduce instances of the AI getting stuck while trying to take impossible paths.
12
+
Actors will now intelligently choose their path depending on how high they can jump, instead of always taking the shortest flying path. This will reduce instances of the AI getting stuck while trying to take paths that are impossible for them.
13
+
Improvements to both `ACrab` and `AHuman` navigation. `ACrab`s are now aware of how to pathfind and navigate using their jetpack, and will use it where applicable. Actors are better at using their jetpack, and will use automovers if their jetpack is not sufficient to reach a destination.
14
+
Actors are now more capable and responsive when digging. They will dig to their target if they cannot reach it with their jetpack (for example if there is a long vertical shaft in the route they cannot get up), and they preferentially avoid rocks, metal and other hard substances by digging around them. Actors also dig faster and spend less time idle.
13
15
In the `CalculatePath` and `CalculatePathAsync` functions, the parameter `movePathToGround` has been replaced with `jumpHeight`, which is the height in metres the pathfind can jump vertically.
14
-
The new function `GetPathFindingFlyingJumpHeight()` can be used to get a jumpHeight that allows flying (i.e infinite jump height).
15
-
New `Actor` Lua property `JumpHeight` (R) to estimate the jump height of the actor (in metres), based on the actor's jetpack and weight.
16
+
New `Actor` Lua property `JumpHeight` (R) to estimate the jump height of the actor (in metres), based on the actor's jetpack and weight. Actors without a jetpack return 0.
17
+
The new function `GetPathFindingFlyingJumpHeight()` can be used to get a jumpHeight that allows flying (i.e infinite jump height). This is also the value that `ACRocket`s and `ACDropships` return for `JumpHeight`.
18
+
19
+
- Improved locomotion.
20
+
Added the ability to run. When running, you cannot sharpaim whatsoever.
21
+
Added the ability to manually crouch. When crouching, your sharpaim distance is slightly increased.
22
+
Players on PC can enable running by holding the shift key, or crouch by holding control. Players using the arrow keys can use right ctrl/shift. Controllers can run by clicking in the left stick, or crouch by holding the left stick down. Prone on controllers is now performed by clicking in the right stick. SNES/d-pad controllers run using the right bumper.
23
+
Prone input now immediately throws you to the ground instead of crouching first.
24
+
Added new `MovementState` type `RUN` for scripts.
25
+
Added new `Controller` state `WALKCROUCH` for crouching, and `PRONE` for prone. The existing `CROUCH` state has been deprecated, as it referred to PRONE.
26
+
Added new `Actor` INI and Lua (R/W) property `CanRun` which denotes whether the Actor can run or not.
27
+
Added new `Actor` INI and Lua (R/W) property `CrouchWalkSpeedMultiplier` which is a walking speed multiplier when at max crouch amount.
16
28
17
29
- New music system, including a dynamic horizontal sequencing system, under the new music manager `MusicMan`.
18
30
`PlayDynamicSong(string songName, string songSectionName, bool playImmediately, bool playTransition, bool smoothFade)` to play a new DynamicSong.
@@ -30,16 +42,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
30
42
Lua property `Paused` (R/W) to pause or unpause all sounds of a SoundContainer. Newly played sounds will not begin playback until unpaused.
31
43
Lua function `GetAudibleVolume` to get the real audible volume of a SoundContainer's sounds as a float from 0 to 1. This accounts for literally everything, including game volume.
32
44
45
+
- New `LimbPath` features.
46
+
New `LimbPath` INI and Lua (R/W) property `BaseTravelSpeedMultiplier` which is a multiplier on the TravelSpeed of that LimbPath, on top of any other gameplay multipliers like from crouching.
47
+
New `LimbPath` INI and Lua (R/W) property `BaseScaleMultiplier`, which is a vector. This will scale the X/Y axes of the limbpath accordingly, allowing for easily adjusting limbpaths to differently sized actors, on top of any other gameplay multipliers like from running.
48
+
New `LimbPath` INI property `SegmentEndedThreshold`, which defines the distance the limb must be from the end of the segment before it's considered complete. This defaults to 2.5.
49
+
Exposed `LimbPath` properties `TravelSpeed` and `PushForce` to Lua (R/W).
50
+
51
+
- New `AEmitter` and `PEmitter` INI and Lua (R/W) property `PlayBurstSound` which denotes whether the BurstSound should play when appropriate. This should not be confused for a trigger - it's just a enable/disable toggle to avoid having to remove and add BurstSound altogether.
52
+
33
53
- Allow lua scripts to use LuaJIT's BitOp module (see https://bitop.luajit.org/api.html)
34
-
54
+
35
55
</details>
36
56
37
57
<details><summary><b>Changed</b></summary>
38
58
39
-
- Conquest activities will once again fall-back to using base dropships and rockets if a random selection of the selected tech's craft can't find one capable of carrying passengers and/or cargo.
40
-
41
-
- All music-related functionality from AudioMan has been removed due to the addition of the MusicMan. Generic DynamicSongs have been put in to use instead.
42
-
Mod activities that used to queue up all the vanilla music should now instead call, for example, `MusicMan:PlayDynamicSong("Generic Battle Music")`
59
+
- Improved navigation, making running and fast walkpaths much more consistent.
43
60
44
61
- Increased fog-of-war resolution in all vanilla activities, and conquest, from 20x20 to 4x4.
45
62
The Ronin Scrambler, the basic scanner, and `SceneMan:CastUnseenRay` have been changed to accomodate fog-of-war resolutions as fine as 1x1 and as course as 20x20.
@@ -48,10 +65,24 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
48
65
- All vanilla scenario activities have had their settings polished, respecting settings which make sense and disabling settings which don't.
49
66
You can now have fog of war in the test scene, and can no longer require path to orbit in Zero-G Diggers-Only One Man Army.
50
67
51
-
-The Signal Hunt activity no longer has a preview image, as it was not formatted correctly and spoiled the interior structure of the cave.
68
+
-Conquest activities will once again fall-back to using base dropships and rockets if a random selection of the selected tech's craft can't find one capable of carrying passengers and/or cargo.
52
69
53
70
-`MovableMan:OpenAllDoors()`, when passed `NOTEAM`, will now open/close doors specifically for `NOTEAM` (instead of all doors).
54
71
72
+
- MOs now only play the BurstSound of the first Wound they receive in a frame, which not only solves audio spam during e.g. explosions but also preserves intended audio when firing guns with a high ParticleCount at them.
73
+
74
+
- Changed how Get and SetLimbPathSpeed/PushForce work for `AHuman` and `ACrab`. The functions are as following:
75
+
`GetLimbPathSpeed` has been renamed to `GetLimbPathTravelSpeed`.
76
+
`SetLimbPathSpeed` has been renamed to `SetLimbPathTravelSpeed`.
77
+
`GetLimbPathTravelSpeed(Actor.MovementState)` returns the FG/left side (for crabs) limb path travel speed for that specific movement state, instead of being hardcoded to walking only.
78
+
`SetLimbPathTravelSpeed(Actor.MovementState, float newValue)` sets the travel speed for all layers and sides of any particular movement state's limb paths, instead of being hardcoded to walking only.
79
+
`GetLimbPathPushForce(Actor.MovementState)` returns the FG/left side (for crabs) limb path push force for that specific movement state, instead of being hardcoded to walking only.
80
+
`SetLimbPathPushForce(Actor.MovementState, float newValue)` sets the push force for all layers and sides of any particular movement state's limb paths, instead of being hardcoded to walking only.
81
+
82
+
- The `LimbPath` property `NormalTravelSpeed` has been renamed to just `TravelSpeed`.
83
+
84
+
- Almost all ctrl+* special inputs functionality (i.e restarting activity, world dumps, showing performance stats) are now mapped to right alt, to not interfere with default crouching inputs. The only exception is ctrl+arrow keys for changing console size.
85
+
55
86
</details>
56
87
57
88
<details><summary><b>Fixed</b></summary>
@@ -66,6 +97,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
97
67
98
- Fixed a bug in Harvester and Massacre where setting deploy units would auto-assign units of the wrong tech.
68
99
100
+
- Fixed an issue where an `Actor`'s MovementState wasn't correctly accessible from script.
101
+
102
+
</details>
103
+
104
+
<details><summary><b>Removed</b></summary>
105
+
106
+
- All music-related functionality from AudioMan has been removed due to the addition of the MusicMan. Generic DynamicSongs have been put in to use instead.
107
+
Mod activities that used to queue up all the vanilla music should now instead call, for example, `MusicMan:PlayDynamicSong("Generic Battle Music")`
108
+
109
+
- The Signal Hunt activity no longer has a preview image, as it was not formatted correctly and spoiled the interior structure of the cave.
110
+
111
+
- Removed `AHuman` property `MaxCrouchRotation`. `CrouchRotAngleTarget` is now used instead.
112
+
113
+
- Deprecated `LimbPath` properties `SlowTravelSpeed`, `NormalTravelSpeed` and `FastTravelSpeed`. For the sake of backwards compatibility they will not crash the game and `NormalTravelSpeed` is a valid synonym for the new `TravelSpeed`.
AI.TargetOffset=SceneMan:ShortestDistance(AI.Target.Pos, HitPoint, false); -- this is the distance vector from the target center to the point we hit with our ray
@@ -257,182 +257,6 @@ function CrabBehaviors.Sentry(AI, Owner, Abort)
AI.SentryFacing=Owner.HFlipped; -- guard this direction
350
-
AI.SentryPos=Vector(Owner.Pos.X, Owner.Pos.Y); -- guard this point
351
-
AI:CreateSentryBehavior(Owner);
352
-
end
353
-
354
-
Owner:ClearAIWaypoints();
355
-
Owner:ClearMovePath();
356
-
357
-
break;
358
-
end
359
-
end
360
-
else
361
-
ifnotWaypointthen-- get the next waypoint in the list
362
-
UpdatePathTimer:Reset();
363
-
Waypoint=table.remove(WptList, 1);
364
-
ifWptList[1] then
365
-
Owner:RemoveMovePathBeginning();
366
-
elseifnotOwner.MOMoveTargetandSceneMan:ShortestDistance(Owner.Pos, Waypoint.Pos, false):MagnitudeIsLessThan(Owner.MoveProximityLimit) then-- the last waypoint
0 commit comments