Commit Graph

27 Commits

Author SHA1 Message Date
Joonas Rikkonen 42a023e811 (43c3787ae) Refactor AIObjectiveRescue and remove ShouldInterruptSubObjective property. Not yet tested. 2019-05-16 05:40:35 +03:00
Joonas Rikkonen 7d0d669cdc (8fd5fa292) Fix a stack overflow issue. 2019-05-16 05:40:19 +03:00
Joonas Rikkonen ddd84a4f9e (c45394988) Refactor and fix button interaction and access checks in the indoors steering manager. 2019-05-16 05:40:00 +03:00
Joonas Rikkonen 704e0731c9 (a73e09604) Fixed inventory locking up when rewiring items with a Controller component (e.g. periscopes). Don't open the health interface by clicking on the healthbar when using a controller. 2019-05-16 05:39:42 +03:00
Joonas Rikkonen 3575c8df52 (03ab09991) Load chinese fonts dynamically, removed unnecessary duplicate block from DynamicRenderAtlas 2019-05-16 05:39:25 +03:00
Joonas Rikkonen 4695e6f92b (89fea1963) Refactoring and fixing: - Remove relatively expensive HasAccessToPath calls. - Fix finding diving gear subobjective of goto main objective not checking if we need the gear. - Move the abandon checks from CanBeCompleted property under Act method and use the inherited property. Fixes incorrect results when the goto objective is not the active objective. - Improve the support for concurrent sub objectives. 2019-05-16 05:38:02 +03:00
Joonas Rikkonen 96eb27140e (ab2157c70) Remove KeepDivingGear property, because it can cause issues when the objective tree is deep. Checking the property is possible via recursion, but it seems that the checks can miss a frame. Instead, let's just make it simple and remove the diving suit only when idling. 2019-05-16 05:37:46 +03:00
Joonas Rikkonen 9fba7b1d7a (1136677c2) Fix Extinguish fire objective. Implement ConcurrentObjectives property (should use this for Combat). 2019-05-16 05:35:12 +03:00
Joonas Rikkonen a3db11876b (d34fb2097) Major refactoring: - Replace custom logic regarding subobjectives with generic logic. - Ensure that all the objectives follow the same logic, reduce duplicate code where possible. 2019-05-16 05:32:56 +03:00
Joonas Rikkonen 05270aa165 (d9e651e1c) Add a generic method for handling subobjectives, when we don't use a collection but individual references instead. 2019-05-16 05:32:37 +03:00
Joonas Rikkonen 5f610caadd (f0837188e) Bots now target only reported targets when the objective is not an order. 2019-05-16 05:31:48 +03:00
Joonas Rikkonen 7614642d93 (e7b2add9d) Merge branch 'human-ai' of https://github.com/Regalis11/Barotrauma-development into human-ai 2019-05-16 05:30:39 +03:00
Joonas Rikkonen 54a0164f89 (98501b696) Reduce the max accepted distance for repair tool ai operate. 2019-05-16 05:30:23 +03:00
Joonas Rikkonen eadd063950 (d82a5d3f3) Use the wait delay for all objectives that are not orders (instead of just idle). 2019-05-16 05:28:41 +03:00
Joonas Rikkonen 9ec9adb2a7 (cec5cdbcd) Reset steering when an objective is activated. 2019-05-16 05:21:39 +03:00
Joonas Rikkonen 2ae54a01a5 (ac7ab10b0) Pass AIObjectiveManager reference in the constructors instead of methods so that we can always access it. 2019-05-16 05:14:20 +03:00
Joonas Rikkonen 9a1e7f8212 (1c6954251) Add IsLoop property. Fixes operate item orders being removed when they are done. Instead of calling loopable objectives done, let's just use the priority system. 2019-05-16 05:11:01 +03:00
Joonas Rikkonen ff5a819ad3 (62a89ce6a) Refactor and fix priority calculations. WIP, but should already improve things. 2019-05-16 05:05:53 +03:00
Joonas Rikkonen d0795791e7 (3bb9485ad) Add automatic orders as objectives instead of orders so that we can take advantage of the existing priority system. Turn the priority values defined in the xml into modifiers. 2019-05-16 05:04:53 +03:00
Joonas Rikkonen 47ee14227e (551008fc1) Abandon FixLeakObjective when the goto subobjective cannot be completed. Reset AIObjectiveLoops when the objective is activated or added. Don't clear ignored targets periodically by default. Calculate AIObjectiveGoTo CloseEnough when the objective is created. Don't use arm length in CloseEnough, because it's not used in range checks. Partial fixes to #1343. 2019-04-08 12:01:54 +03:00
Joonas Rikkonen 63eb4d64e5 f8b0295...0671290 2019-03-18 23:30:58 +02:00
Joonas Rikkonen 23687fbf2f aeafa16...4d3cf73 2019-03-18 22:57:05 +02:00
Joonas Rikkonen 3301bed442 409d4d9...aeafa16 (merge human-ai) 2019-03-18 22:52:17 +02:00
Joonas Rikkonen 6c0679c297 38f1ddb...178a853: v0.8.9.1, removed content folder 2019-03-18 20:39:27 +02:00
Joonas Rikkonen 604fc65154 Human AI improvements & fixes:
- Replaced item name comparisons with Prefab.NameMatches (-> item names can be changed without breaking the AIs).
- Having an AIObjective set as the current order of the character doesn't automatically cause it to have a high priority. For example, the order to fix leaks has a low priority if there are no leaks to fix.
- AIObjectiveFixLeaks makes sure the character is wearing a diving suit before going to fix a leak. The characters used to run in and out of flooded rooms because the AIObjectiveFindSafety objective would become active as soon as the character entered the room, causing the character to run out, and then immediately run back because they are no longer in immediate danger of drowning, making the FixLeaks objective the most high-priority one.
- Characters attempt to find a room with no water in AIObjectiveIdle even if the character is wearing a diving suit.
- AIObjectiveFindSafety considers flooded rooms dangerous even if the character is wearing a diving suit (-> the character attempts to go into a more dry room instead of happily idling in the flooded one).
- Distance to a hull doesn't decrease its desirability nearly as much in AIObjectiveFindSafety (-> fixes characters not bothering to move into a non-flooded room if it's far away).
- AIObjectiveOperateItem makes sure the item is equipped before using it (-> characters can't weld leaks with the welder in their inventory).
2017-12-21 19:49:26 +02:00
Joonas Rikkonen 64ad5e5003 Removed unnecessary using directives 2017-07-05 18:35:09 +03:00
juanjp600 4d225c65f2 Updated to MonoGame 3.6 + Directory refactor
- Barotrauma's projects are in the Barotrauma directory
- All libraries are in the Libraries directory
- MonoGame is now managed by NuGet, rather than referenced from the installed files (TODO: consider using PCL for easier cross-platform development?)
- NuGet libraries are not included in the repo, as getting the latest versions automatically should be preferred
- Removed Content/effects.mgfx as it didn't seem to be used anywhere
- Removed some references to Subsurface directory
- Renamed Launcher2 to Launcher
2017-06-27 09:52:57 -03:00