Commit Graph

111 Commits

Author SHA1 Message Date
Joonas Rikkonen 5b3696f7e4 (d16942d30) Simplify. 2019-05-16 05:16:13 +03:00
Joonas Rikkonen 82d74f7481 (a1ebc2642) Use lazy loading to ensure that the list is assigned when it's needed. Fixes null reference exceptions when pumping water or charging batteries. 2019-05-16 05:15:34 +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 8be0b0676e (83868bb0e) Refactor AIObjectiveExtinguishFires to use the AIObjectiveLoop class. Significant refactoring of the other looping objectives. Reduce the duplicate code. 2019-05-16 05:13:40 +03:00
Joonas Rikkonen 7fb7c13198 (fbfb76aeb) Implement automatic extinguishing. TODO: should use the AIObjectiveLoop class. 2019-05-16 05:13:21 +03:00
Joonas Rikkonen ab2ca90d08 (900eddc26) Take the priority modifier in account when calculating the priority, not the max value. 2019-05-16 05:13:03 +03:00
Joonas Rikkonen 019712ef66 (829458a66) Don't apply priority modifier on the priority value, because it's already applied to the max value. The priority value should be normalized, because we are using the lerp. 2019-05-16 05:12:07 +03:00
Joonas Rikkonen dbccd76613 (c6ca0ef58) Recreate objectives when the bot is dismissed. 2019-05-16 05:11:49 +03:00
Joonas Rikkonen de8a23f687 (1137f730e) Instead of forcing the looping objectives to use the average, let them decide the method of evaluating the targets. Use the highest priority for now. 2019-05-16 05:11:32 +03:00
Joonas Rikkonen 759e4aee0d (96ccafd88) Fix the goto objective not always completing because of too high NearEnough value. 2019-05-16 05:11:17 +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 781fd44a8c (4efa46ffe) Limit the base priority due to devotion to 10. 2019-05-16 05:10:42 +03:00
Joonas Rikkonen cdeb6d40b3 (f3bfe1ac4) Fix damage priority calculation. 2019-05-16 05:10:25 +03:00
Joonas Rikkonen 7ebb0be29b (db42ef494) Don't allow combat priority go over 100. 2019-05-16 05:09:51 +03:00
Joonas Rikkonen 171c42f077 (3241b8fe7) Adjust the priorities. The orders should now always have higher priority than other objectives (except find safety and combat). 2019-05-16 05:09:33 +03:00
Joonas Rikkonen 7c901d8d77 (8fd36f702) Add a separate value for run threshold. Increase the order priority from 50 to 70. 2019-05-16 05:09:15 +03:00
Joonas Rikkonen 3a3d55d780 (39b4d0859) Merge branch 'dev' into human-ai 2019-05-16 05:08:56 +03:00
Joonas Rikkonen 454dda56c7 (1762f02b3) Merge branch 'dev' into human-ai 2019-05-16 05:08:22 +03:00
Joonas Rikkonen b51fd32b88 (de7949704) Rewrite the leak priority calculations. Ensure that the damage priority is not negative. 2019-05-16 05:07:45 +03:00
Joonas Rikkonen 37555ed1a4 (9fc7c8e98) Only reset when the objective is an order. 2019-05-16 05:07:07 +03:00
Joonas Rikkonen 2a0e289a59 (40f4f67f8) Further changes to the calculations. 2019-05-16 05:06:49 +03:00
Joonas Rikkonen b7272e1c96 (2f379083c) Change how some of the priorities are clamped. 2019-05-16 05:06:30 +03:00
Joonas Rikkonen b5db30ec72 (c48cb7804) Change the operate item priority calculation so that it starts from 25 and increases with devotion and is multiplied by the priority modifier. Clamp the result. 2019-05-16 05:06:11 +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 039d07f693 (a2943d8b7) Merge branch 'dev' into human-ai 2019-05-16 05:04:10 +03:00
Joonas Rikkonen 60f52375e6 (7788ec72a) Test issuing orders automatically. 2019-05-16 05:03:49 +03:00
Joonas Rikkonen 5af8170ac6 (372c6e60a) More automatic text scaling + merge fix 2019-05-06 14:15:40 +03:00
Joonas Rikkonen a11e7db190 (78f064b46) Revert "Cherry pick from human-ai: Fix bots not knowing how to use the integrated controllers, effectively failing to use the doors with integrated buttons." 2019-05-03 13:49:23 +03:00
Joonas Rikkonen bd659383b4 (1aa050263) Cherry pick from human-ai: Fix bots not knowing how to use the integrated controllers, effectively failing to use the doors with integrated buttons. 2019-05-03 13:48:48 +03:00
Joonas Rikkonen 5031432e77 (513733e88) Check that the character is inside the same room as the target before repairing/operating an item. 2019-05-03 13:47:39 +03:00
Joonas Rikkonen 1ff1584be5 (53f9210d1) Check the line of sight before fixing leaks or extinguishing fires. 2019-05-03 13:47:22 +03:00
Joonas Rikkonen 9b8d0ffc51 (17bb71ed5) Fix repair tool not being used if the repair target is not within interaction area. Fixes repairing items with the welding tool. Partial fix to #63 (dev). 2019-04-25 17:45:33 +03:00
Joonas Rikkonen e0fe737c3b (60001519f) Fixed clients not being able to see other characters in spectator if they've died far away from the sub. + Increased position update interval for spectators. Closes #1421
+ Merge fix
2019-04-16 17:16:14 +03:00
Joonas Rikkonen 6262b3ea54 (ce8e185aa) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev 2019-04-16 17:12:09 +03:00
Joonas Rikkonen bd07acf26d (052ab6307) Use MonoKickstart on Linux so installing Mono is not required, fixed division by zero if the width of the server console window is 0 2019-04-16 17:11:49 +03:00
Joonas Rikkonen b8b61ebb02 (a405d1aed) Check volume validity in SoundPlayer.UpdateWaterAmbience (there was a report on GameAnalytics about the method setting the gain to an invalid value) + Merge fix 2019-04-15 14:12:14 +03:00
Joonas Rikkonen 66de47f041 (a83cec9d6) Made room names translatable, added "RoomName." to all room names in EnglishVanilla.xml 2019-04-15 12:06:58 +03:00
Joonas Rikkonen 0f2e09b65e (62261c6e6) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev 2019-04-15 12:06:03 +03:00
Joonas Rikkonen a9ad6d0504 (02db081a3) Fixed treatment suggestions not working correctly for some items because they were using incorrect affliction identifiers (there's no affliction with the identifier "damage"). Now the treatments can be defined using either the identifier or type of the affliction. 2019-04-15 12:05:34 +03:00
Joonas Rikkonen 921e4ef818 (aff19d6cd) Don't reset the hull timer if cannot complete the divinggearobjective, because it might cause performance issues. Reduce the timer instead so that new hull is searched once per sec at max. 2019-04-15 12:05:20 +03:00
Joonas Rikkonen 29f902f0bb (18bb55660) Add unreachable targets on the unreachables list. Reset the list when a new combat objective begins. Don't immediately find a new hull target if the current hull is unsafe. Instead wait a sec at max. Fixes #1417. 2019-04-15 12:01:48 +03:00
Joonas Rikkonen cc0e217e82 (e1476e522) Cleanup. 2019-04-15 12:01:32 +03:00
Joonas Rikkonen e8c67f94c3 (a8e725a96) Optimized AIObjectiveFindSafety.FindBestHull. TODO: optimize further, causes huge lag spikes if the character can't find a path (see #1417) 2019-04-15 12:01:04 +03:00
Joonas Rikkonen 3eaec8bbc6 (c490f5118) Fixed bots not appearing to use repair tools or weapons client-side when repairing something or attacking (i.e. they aimed the item but never fired/used it) 2019-04-11 18:24:01 +03:00
Joonas Rikkonen 3877c18d0c (c15419d90) Changelog additions + merge fix 2019-04-08 19:20:05 +03:00
Joonas Rikkonen 28f2c00255 (02bbfb6a3) Let the ai objectives handle waiting (after switching characters). Currently only idle objective uses wait timer, others ignore it. Reduce the wait time from 20 to 10 secs. 2019-04-08 15:59:36 +03:00
Joonas Rikkonen 1ffe3e4ec0 (6b95aa87e) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev 2019-04-08 13:36:44 +03:00
Joonas Rikkonen 2efcd200f5 (17490598f) Don't allow putting items into locked inventories by double-clicking (causes them to be dropped in multiplayer) 2019-04-08 13:36:30 +03:00
Joonas Rikkonen 10776572d2 (0eef99a8b) Don't change targets, wander or stay still in ladders. Don't stay still in water. Improve bot behavior in close spaces. 2019-04-08 13:36:16 +03:00