Commit Graph

493 Commits

Author SHA1 Message Date
Regalis
7910b13120 Hulls, gaps, structures & waypoints implement ShallowRemove (= a method that's used to remove entities without severing links between them when copypasting).
Copied waypoints used to stay in the waypoint list, causing an exception to be thrown in PathFinder.GenerateNodes due to duplicate IDs.
2017-05-29 19:49:58 +03:00
Regalis
9281795866 Null reference fixes 2017-05-29 18:41:56 +03:00
Regalis
52daeea109 Fixed limb lightsource flipping (or actually disabled flipping altogether and just made the lightsource follow the rotation of the limb) 2017-05-29 18:41:36 +03:00
Regalis
4a94f12c8b Item list is manually cleared if there are items left after unloading a sub.
The "ItemList.Count == 0" assertion failed during one of the testing sessions. No idea why or how to reproduce it, but I hope this will do as a workaround until we figure out the actual cause.
2017-05-29 17:59:24 +03:00
Regalis
4d0a6677e9 Server notifies clients when an OnFire statuseffect causes an item to break (-> clients can see oxygen/fuel tanks exploding again) 2017-05-24 17:30:20 +03:00
Regalis
93940ff5a8 - AI crew can avoid firesources in nearby hulls, not just the one they're currently inside
- fixed fires, oxygen and water level not being taken into account in path cost calculations
- particle collision fix
2017-05-20 17:11:45 +03:00
Regalis
e3b595b9e0 Cleanup (removing unused variables & other redundancies, rethrowing exceptions instead of wrapping them in a new exception instance) 2017-05-20 15:35:13 +03:00
Regalis
89bd2b1a98 Improved particle collision logic:
- checking if any of the extents of the particle collide with the edges of the hull, instead of just checking if a position in the direction the particle is heading is outside the hull
- separate fields for friction and restitution
2017-05-18 20:03:58 +03:00
Regalis
095054182e Merge branch 'master' into new-netcode
Conflicts:
	Subsurface/Source/GUI/GUITextBlock.cs
	Subsurface/Source/GameMain.cs
	Subsurface/Source/Items/Components/Machines/Radar.cs
	Subsurface/Source/Networking/GameClient.cs
2017-05-17 18:51:22 +03:00
Regalis
043c2fbc5e Moved TotalElapsedTime from GameMain to the Timing class 2017-05-03 19:15:43 +03:00
Regalis
ba49f59204 Some cleanup (mostly removing redundancies from the GameMain class) 2017-05-03 00:27:13 +03:00
Regalis
31f7eca717 Merge branch 'master' into new-netcode
Conflicts:
	Subsurface/Source/GUI/GUIButton.cs
	Subsurface/Source/GameSession/CrewManager.cs
	Subsurface/Source/GameSession/GameSession.cs
	Subsurface/Source/Items/Item.cs
	Subsurface/Source/Networking/GameServer.cs
	Subsurface/Source/Screens/MainMenuScreen.cs
	Subsurface/Source/Screens/ServerListScreen.cs
2017-04-23 21:40:11 +03:00
Regalis
645df3fde6 Crew command menu and the info menu can't be open at the same time, UI layout tweaking again 2017-04-23 21:06:30 +03:00
Regalis
0709418ba3 Merge branch 'UI-overhaul'
Conflicts:
	Subsurface/Source/Screens/EditMapScreen.cs
2017-04-20 21:27:40 +03:00
Regalis
a5d605e29b Sub editor doesn't allow creating structures with zero width/height, fixed null exceptions when trying to remove a structure without wall sections 2017-04-20 18:02:20 +03:00
Regalis
92a74808fe Fix to oxygen distribution logic: gaps used to move a fixed amount of oxygen between hulls every frame, causing the oxygen levels to fluctuate constantly. While it wasn't noticeable in regular sized hulls, smaller hulls created excessive amounts of NetworkEvents due to large fluctuations in the oxygen percentage.
Now the gaps make the oxygen percentages settle to the average value, and hulls have a minimum delay of 0.5s between the creation of NetworkEvents.
2017-04-18 21:37:23 +03:00
Regalis
7df4bff249 Fixed exceptions if a character is removed when an AI character is attacking it 2017-04-17 17:59:22 +03:00
Regalis
dc6ed7daf1 Separate component style for item UIs + option to select the style in the item config files, removed a bunch of hard-coded UI element color changes 2017-04-10 18:11:33 +03:00
Regalis
887735ff32 - DockingPort syncing fix: server waits until the port is locked before sending hull/gap IDs, clients can't lock the port until the server tells them to
- fixed crew commands being disabled in single player instead of multiplayer
- server-side ID error logging fix
2017-04-09 20:51:57 +03:00
Regalis
4ee96e4fbe Fixed "collection was modified" exceptions if a huskified human dies in a fire 2017-04-09 18:32:13 +03:00
Regalis
3844dd9dac GUIStyle logic changes: instead of having a predetermined GUIComponentStyle for each type of GUIComponent, any GUIComponent can use any style. The GUIComponent constructors take the name of the style as a parameter, and if no style is specified, the default style for the GUIComponent in question will be used. 2017-04-08 16:46:53 +03:00
Regalis
f863eb331d Moved stun from AnimController to the character class, server notifies clients when the stun ends, husk infection included in character status messages 2017-04-07 19:56:25 +03:00
Regalis
77614dfa4e Merge branch 'master' into new-netcode
Conflicts:
	Subsurface/Source/Characters/Animation/Ragdoll.cs
2017-04-06 21:59:52 +03:00
Regalis
a2e21a78f9 Nicer looking explosions 2017-04-06 21:58:35 +03:00
Regalis
7cb88e39e9 Attempt to fix ThrowOrIgnoreBadComparer exception in LightSource.FindRaycastHits.
Couldn't reproduce the crash, but I'm guessing it could be caused by CompareCCW not returning 0 if comparing a position to itself. (and if not, at least the exception is caught now)
2017-04-05 21:36:31 +03:00
Regalis
b3bbdbf589 Explosion damage is reduced if there are walls or other solid obstacles between an explosion and a character 2017-04-04 19:54:28 +03:00
Regalis
b063cf3feb Fire sound fix: the sounds were freed after each round without ever loading them again. The sound objects still existed and had some buffer ID assigned though, causing an incorrect clip to be played or OpenAL errors to be thrown on successive rounds. (Now freed sounds always have a buffer ID of -1) 2017-04-03 20:59:02 +03:00
Regalis
6895cdbd7d Clients don't apply OnFire statuseffects to items. OnFire can cause items to explode, and because the client can't set the condition of the item to 0.0, it'll keep exploding until the server breaks the item. TODO: come up with a proper fix because now clients can't see oxy or fuel tanks exploding at their end. 2017-04-03 20:48:09 +03:00
Regalis
e75d596d34 Firesource syncing fixes 2017-04-03 20:22:59 +03:00
Regalis
43d29de45c Merge branch 'master' into new-netcode
Conflicts:
	Subsurface/Barotrauma.csproj
2017-04-03 18:36:22 +03:00
Regalis
c368d6ddf1 - fire particle tweaking
- water puts out fires more slowly and the speed depends on the height of the water surface relative to the position of the firesource (instead of the volume of the water in the room)
- the extents of the firesources are visualized when debugdraw is on
- any >0.0 damage to structures has a chance of spawning some "shrapnel" particles
2017-03-30 21:50:18 +03:00
Regalis
5bdd801da4 Having multiple sub files with the same name doesn't prevent clients from selecting or requesting the correct one 2017-03-28 21:01:44 +03:00
Regalis
1a3c18c727 EntitySpawner sends spawn/removal messages to clients using EntityEvents.
EntityEvents and EntitySpawner used to work independently of each other, with separate IDs, and there was no guarantee that spawning and events would happen in the correct order. For example, a client could fail to read events during midround syncing because the entity has been removed, or read an event for an incorrect entity because the entity has been removed and the ID taken by some other entity.
2017-03-27 21:05:32 +03:00
Regalis
52dde81396 Removed duplicate "MapEntity.MapLoaded" call from level generation, fixed level walls occasionally overlapping with ruins 2017-03-25 20:13:15 +02:00
Regalis
7e431c7dfd Merge branch 'master' into new-netcode
Conflicts:
	Subsurface/Source/Items/Components/Machines/Deconstructor.cs
	Subsurface/Source/Items/Components/Machines/Fabricator.cs
2017-03-23 18:58:18 +02:00
Regalis
e9e4e5f9d3 Level cells that overlap with ruins are removed during level generation (instead of just disabling collisions with them), background sprites can spawn on ruin walls 2017-03-23 18:13:28 +02:00
Regalis
823ad12058 Some refactoring: made PosInfo a class and moved character-specific fields to a "CharacterStateInfo" subclass 2017-03-21 19:36:28 +02:00
Regalis
2722d3cf8d Merge branch 'master' into new-netcode
Conflicts:
	Subsurface/Source/Events/MonsterEvent.cs
2017-03-21 18:16:25 +02:00
Regalis
7c6ea5b1c0 LightSource vertices are recalculated if another submarine within the range of the light has moved relative to the sub the light is in 2017-03-20 17:15:12 +02:00
Regalis
40f5f352f5 - pasted entities are assigned to the main sub (-> entities copypasted from another sub are saved)
- fixed submarinebody attempting to generate a physics body for a sub with no walls if there are some other walls loaded
- MathUtils.GiftWrap doesn't throw an exception if passed an empty list of points
2017-03-15 23:59:23 +02:00
Regalis
5bdb57b98a Merge branch 'master' into new-netcode
Conflicts:
	Subsurface/Properties/AssemblyInfo.cs
	Subsurface/Source/Characters/AICharacter.cs
	Subsurface/Source/Characters/Animation/HumanoidAnimController.cs
	Subsurface/Source/Characters/Character.cs
	Subsurface/Source/GameMain.cs
	Subsurface/Source/Items/Components/Signal/Connection.cs
	Subsurface/Source/Items/Item.cs
	Subsurface/Source/Networking/GameServer.cs
	Subsurface/Source/Networking/GameServerLogin.cs
	Subsurface/Source/Physics/PhysicsBody.cs
2017-03-11 13:24:09 +02:00
juanjp600
d6c292a2cc SharpFont + ScalableFont implementation
https://github.com/Robmaister/SharpFont

TODO: replace Code Bold.otf with the full version, fix any bugs, build on Linux, possibly move ToolBox string wrapping and limiting logic to ScalableFont class for better results.
2017-03-07 13:44:42 -03:00
juanjp600
ecb7500df9 Converted UInt32 ID's to UInt16
TODO: test everything, make sure nothing broke
2017-03-06 16:25:12 -03:00
Regalis
e059a08688 Optimized lightsource raycasts 2017-03-03 00:02:43 +02:00
Regalis
f04a00f6e1 Merge branch 'lighting-optimization' 2017-03-02 19:39:55 +02:00
Regalis
335ee8c72e Warning message about unlinked vents is only shown once when saving (not for each vent) 2017-03-02 19:39:00 +02:00
juanjp600
f2db3c6b20 Merge remote-tracking branch 'barotrauma/master' into lighting-optimization 2017-03-01 15:02:23 -03:00
juanjp600
84a8232c1a Fixed override sprite scaling
Now it looks right.
2017-02-28 19:38:25 -03:00
juanjp600
4568f34f39 Rotating lights and overridden textures
The flashlight has the correct texture now, but something still seems off about the UV coordinates. Scaling is probably incorrect.
2017-02-28 19:19:02 -03:00
Regalis
9e16542b13 Replaced the arrows in server lobby buttons with images, made GUIImages rotatable (todo: make them align correctly when rotated/scaled), fixed the size of the sub save warning messagebox 2017-02-27 22:28:10 +02:00