Commit Graph

418 Commits

Author SHA1 Message Date
Joonas Rikkonen 12d1692bb5 Wearables can attach lightsources to limbs 2018-03-02 11:13:11 +02:00
Joonas Rikkonen 10189254b5 GrabLimb type is written in character network messages as byte instead of UInt16 2018-03-01 23:43:10 +02:00
Joonas Rikkonen 31ba9e20a2 Item description & tags are only included in spawn network message if they differ from the prefab. 2018-03-01 22:07:51 +02:00
Joonas Rikkonen 2b4c01d18b Fixed debug assertion fail in World.Raycast if a limb is (almost) exactly at the position of a character's collider when calling TrySetLimbPosition. 2018-03-01 22:07:18 +02:00
Joonas Rikkonen cd6fc87eb4 Fixed object header issues and "trying to read past the buffer size" errors caused by NetEntityEvents for removed entities.
EntityEventManager sends an empty event with an ID of 0 if the entity doesn't exist anymore when writing the event. The recipient should simply skip over these messages and read the next one, but clients only did so if the event is the next unreceived one, causing the rest of the messages to be read incorrectly (which could lead to various sorts of problems in addition to the header and buffer size errors). The server didn't deal with the empty events correctly either, it increased the last received ID even if the received event was not the one the server is waiting for, potentially causing other non-empty events to be ignored.

+ Added an error message if the size of an NetEntityEvent is larger than 255 bytes. Not only is that excessively large for an event, but the length of the event is written as a byte and larger ones may again cause messages to be read incorrectly. Most events should be nowhere near 255 bytes, but now that the descriptions and tags of a spawned item are included in the item spawn messages there's the possibility that some events are too large.
2018-03-01 19:30:27 +02:00
Joonas Rikkonen 1255b21853 Relay fix attempt number n + 1 2018-03-01 15:56:03 +02:00
Joonas Rikkonen ab99aa9ac1 Relay fix attempt number n 2018-03-01 12:40:38 +02:00
Joonas Rikkonen 55a5e9e968 Syringes are recolored according to the color of the contained medical item. Closes #256 2018-03-01 11:26:04 +02:00
Joonas Rikkonen 9f6868eaaa Fixed crashing when attempting to perform CPR _as_ a headless character. 2018-03-01 10:17:32 +02:00
Joonas Rikkonen 38e80be05d Some more debug logging 2018-02-28 18:04:40 +02:00
Joonas Rikkonen c803e23c50 Added checks for character removal to a bunch of places. Some of these may not necessary, but at least MeleeWeapon, Projectile and Controller still accessed the user after the user had been removed. 2018-02-28 17:37:20 +02:00
Joonas Rikkonen e29655c81b Fixed clients forcing remote players to pick an item when it's being selected, causing them to press buttons and start deattaching them when the player is actually just rewiring the button. Closes #251 2018-02-28 15:38:55 +02:00
Joonas Rikkonen f5277ce661 Fixed clients being unable to crowbar doors due to OnPicked only being called on local players. Closes #297 2018-02-28 15:24:42 +02:00
Joonas Rikkonen 74ef5c6ea6 Fixed items attached mid-round by other clients or the host being impossible to interact with and occasionally being attached to an incorrect position. Closes #296 2018-02-28 14:01:38 +02:00
Joonas Rikkonen 2585cc9873 Fixed attachable objects being deattachable with the select key due to e6b7a0d3, fixed typo in ConvertInputType 2018-02-28 13:26:18 +02:00
Joonas Rikkonen 795b2e4cad Fixed crashing when attempting to perform CPR on a character with no head. Closes #294 2018-02-27 15:01:53 +02:00
Joonas Rikkonen 77940fa992 Added some debug logging, Character.Revive removes the existing AITarget from the character before creating a new one 2018-02-26 18:05:03 +02:00
Joonas Rikkonen 1c68d5a4d7 - Fixed clients using character directories to count the number of disallowed monsters, which made it possible for them to disallow incorrect monsters.
- Fixed MonsterEvent checking if the name of the character directory contains the name of the disallowed character directory, which could for example cause them to disallow "someMonsterAlt" if "someMonster" is disallowed.
2018-02-26 16:53:22 +02:00
Joonas Rikkonen 7f740c2f67 Attempt to diagnose issues #278, #284 and #291. It appears that the game attempts to access the Limbs-field of a ragdoll after it's been set to null (which should only happen when the ragdoll is removed). 2018-02-26 15:06:00 +02:00
Joonas Rikkonen 064750d99f Fixed missing RepairTool HitStructure particles & missing ancient weapon beam (+ added hit particles to ancient weapon). Closes #285 2018-02-25 22:43:06 +02:00
Joonas Rikkonen 0827c475ba Fixed "an item with the same key has already been added" exceptions caused by humanhusk.xml being in the same folder as human.xml. Closes #283 2018-02-25 18:35:31 +02:00
Joonas Rikkonen 9df0f0a275 Invalid contentpackage content types don't crash the game 2018-02-25 17:46:04 +02:00
Joonas Rikkonen 9e2966e9cb - Fixed creature disable list only taking config files in the Content/Characters folder into account (making it impossible to disable spawning of custom monsters outside the folder)
- Removed hard-coded ruin structure, particle & decal config paths and moved them to content package (custom ones can be added now without modifying the original files).
2018-02-25 15:03:29 +02:00
Joonas Rikkonen e02a1dc6ae Reverted the changes to power transfer logic in bb987676 because of the issues it caused with relay components. Signals are still passed using the cached recipient lists, but power is passed using the old recursive CheckJunctions method. Closes #282 2018-02-25 14:42:38 +02:00
Joonas Rikkonen 6fcf2f573b Fixed relays burning out when connected to the main power grid. The changes in bb98767 caused relay components to be considered parts of whichever power grid they're connected to, causing their power and load to match the rest of the grid which usually causes them to go over the max power value. Closes #279
+ Fixed "powerConnections" field not being updated when creating PowerTransfer components mid-round, which made fabricated relays unusable for power transfer.
2018-02-24 20:46:28 +02:00
Joonas Rikkonen 127cc28af3 SoundPlayer.GetSound doesn't attempt to load the sound if a sound with a matching tag is not found, because otherwise configuring limb hit sounds and such with the file path instead of the tag will cause a new sound instance to be created every time the sound is played (and these instances are never freed). + Sound config files can be now configured in content packages. 2018-02-24 19:41:28 +02:00
Joonas Rikkonen 313fb35b4a Reverted d36dab4 (XML files are calculated according to XML content). Caused content package hashes to differ between linux and windows versions. Closes #275 2018-02-24 18:39:47 +02:00
Joonas Rikkonen f2f37b020e Applied fire extinguisher changes from the command-improvement branch: the repair tool steps through the ray that's used to find firesources in range and collects all firesources along the way instead of just checking the start and end positions of the ray (-> fires are much easier to extinguish now). Closes #274 2018-02-24 17:28:52 +02:00
juanjp600 351a1a15fc Fixed stack overflow when trying to store jumpsuits in themselves 2018-02-23 00:19:36 -03:00
Joonas Rikkonen 05408d5ec0 Fixed some items with a body disappearing when flipping a sub. Closes #273 2018-02-22 17:43:40 +02:00
Joonas Rikkonen 671f59e984 Unequipped headsets can't be used and don't consume batteries. Closes #272 2018-02-22 15:08:38 +02:00
Joonas Rikkonen 1fe2a1916f Fixed ruin doors being possible to open with the select key. Closes #268 2018-02-22 14:36:48 +02:00
Joonas Rikkonen 375e135672 Made round summary scrollable (long summary texts don't overflow anymore), listbox scissorrects work correctly now on nested listboxes 2018-02-22 12:18:09 +02:00
Joonas Rikkonen 27ded3e5a3 Fixed dead/spectator chat. Closes #264 2018-02-22 11:34:33 +02:00
Joonas Rikkonen 23b59dd70b Reverted a290a6a (chatbox can be deselected with the chat hotkey again). Closes #262. 2018-02-22 11:19:53 +02:00
Joonas Rikkonen d87c6bd06a Fixed exceptions when creating items with a powertransfer component mid-round (e.g. when fabricating a relay component). Closes #267 2018-02-22 11:11:08 +02:00
Joonas Rikkonen e991967830 DefaultPlayerName never returns null 2018-02-22 10:41:49 +02:00
Joonas Rikkonen 98d7793b86 Fixed exceptions when attempting to save game settings without default player name being set. Closes #263 2018-02-22 10:34:55 +02:00
Joonas Rikkonen 24cb7a3659 Husk infection state can be decreased after the infection reaches the active state (causing the husk appendage to be removed). Calyxanide still has a conditional preventing the decrease, but now it's possible for modders to revert huskification without code modifications. Closes #258 2018-02-21 11:12:49 +02:00
Joonas Rikkonen d414e8e103 Fixed StatusEffects not being able to decrease stun timer. Closes #255 2018-02-20 22:44:32 +02:00
Joonas Rikkonen 7d346c1437 Fixed wires dropping when a client moves them from a connection to another in the same connection panel, fixed wires becoming disconnected client-side if they're moved from a connection to another connection that's upper in the connection panel. (See #252) 2018-02-15 14:24:04 +02:00
Joonas Rikkonen a2c898150e Item.SetTransform uses SetTransformIgnoreContacts to set the position of the physics body if the body is disabled. No need to update contacts when moving disabled items such as wearables. 2018-02-13 13:54:09 +02:00
Joonas Rikkonen 055bf13f59 Fixed minimap not powering up 2018-02-13 12:29:57 +02:00
Joonas Rikkonen ff883ae882 Bunch of fixes to statuseffects:
- Fixed the multi-target StatusEffect.Apply method ignoring target names and always allowing stacking.
- Fixed delayed effects not working if the single-target StatusEffect.Apply method is used.
- Fixed delayed effects ignoring target names.
- Fixed delayed effects comparing the equality of the target lists, not the elements in the list (if the contents of the lists are identical the statuseffects should be considered identical).
2018-02-12 11:25:40 +02:00
Joonas Rikkonen 43d6ee5e06 Spark & smoke particle effects when welding or cutting something. Closes #155. 2018-02-12 11:20:25 +02:00
Joonas Rikkonen 633dc1ff1e Option to define multiple compatible content packages in submarine files, added extension methods for parsing string, float and int arrays from XML elements 2018-02-06 10:18:39 +02:00
Joonas Rikkonen ec302e099b Fixed Powered ItemComponents (not components deriving from Powered) never resetting their voltage after receiving power, causing them to stay powered indefinitely. Closes #247 2018-02-05 22:31:55 +02:00
Joonas Rikkonen 74cd265952 Fixed railgun shells never deactivating their particle emitter 2018-02-05 17:10:00 +02:00
Joonas Rikkonen ff85400f01 Removed hard-coded path to humanhusk (now the huskified human config is found based on the name), characters with severed limbs cannot turn into husks. Closes #243 2018-02-05 15:55:32 +02:00
Joonas Rikkonen 60ad5ed3fb Reverted b26b6a74. Making stunned characters receive damage from limb impacts caused them to suffer excessive amounts of damage when falling or getting thrown around when the sub hits something (e.g. a moloch attacking a sub could easily kill crew members by bumping the sub and falling down the stairs was often a death sentence). In general I don't think it's a good idea to apply impact damage from limb impacts, because the limbs may occasionally move or rotate at very high velocities due to the animations. 2018-02-05 11:16:03 +02:00