Commit Graph

60 Commits

Author SHA1 Message Date
Regalis
1f454d593e Inventory syncing, objHeader is passed to the ClientRead/ServerRead methods so they can determine how to read the msg (is it an inventory update, position, input, etc) 2016-12-10 16:39:58 +02:00
Regalis
fa712e0102 Checking if a client can access an item in the itemcomponent serialization methods 2016-12-09 16:56:17 +02:00
Regalis
adde3461ea Merge branch 'master' into new-netcode
Conflicts:
	Subsurface/Properties/AssemblyInfo.cs
	Subsurface/Source/Characters/Animation/HumanoidAnimController.cs
	Subsurface/Source/Characters/Character.cs
	Subsurface/Source/Items/Components/Door.cs
	Subsurface/Source/Items/Components/Power/PowerContainer.cs
	Subsurface/Source/Items/Components/Signal/Wire.cs
	Subsurface/Source/Items/Item.cs
	Subsurface/Source/Networking/ChatMessage.cs
	Subsurface/Source/Networking/GameClient.cs
	Subsurface/Source/Networking/GameServer.cs
	Subsurface/Source/Networking/GameServerLogin.cs
	Subsurface/Source/Networking/GameServerSettings.cs
	Subsurface/Source/Networking/NetworkMember.cs
2016-11-24 19:52:40 +02:00
juanjp600
d2c17274fe GUI elements now respect render order + some minor distance comparison optimization 2016-11-15 22:26:36 -03:00
Regalis
3d234aef73 Sending NetEntityEvents from client to server, ItemComponent class doesn't implement the INetSerializable interfaces (only the derived classes do), reactor syncing 2016-11-13 19:34:23 +02:00
Regalis
498c72c64a Server sends ServerEntityEvents to clients, NetEntityEvents can contain an object array which will be passed to the serializable entity (now only used for ItemComponent indices) 2016-11-13 13:56:48 +02:00
Regalis
c314b37029 Some classes for syncing entity state changes. Similar to the NetworkEvents in the old netcode, but the logic is split into separate classes which prevent the server from reading updates for entities that aren't IClientSerializable.
todo: add NetEntityEventManagers to server & client, some logic to prevent sending events that don't need to be sent (e.g. duplicate event state updates)
2016-11-12 20:56:06 +02:00
juanjp600
f0acf69065 Merge remote-tracking branch 'barotrauma/master' into new-netcode
# Conflicts:
#	Subsurface/Properties/AssemblyInfo.cs
#	Subsurface/Source/Characters/AI/EnemyAIController.cs
#	Subsurface/Source/Characters/AICharacter.cs
#	Subsurface/Source/Characters/Character.cs
#	Subsurface/Source/Items/Components/Signal/Connection.cs
#	Subsurface/Source/Items/Item.cs
#	Subsurface/Source/Map/Structure.cs
#	Subsurface/Source/Networking/GameClient.cs
#	Subsurface/Source/Networking/GameServer.cs
#	Subsurface/Source/Screens/NetLobbyScreen.cs
2016-11-05 18:18:20 -03:00
Regalis
eb2c51c2f1 Cleanup with resharper (mostly removing redundancies & using collection.Length/Count properties instead of the Count method) 2016-10-31 20:50:20 +02:00
Regalis
9fed308705 InGame update messages include a timestamp which is passed to the ClientRead methods
Now only used in character position syncing, but some other entities may also have an use for it (e.g. discarding outdated data)
2016-10-18 19:04:32 +03:00
juanjp600
f5268c7c6c Fixes
It compiles now, but it's probably really broken.
2016-10-11 21:37:23 -03:00
juanjp600
e1296e4a8e Backported vsync changes from new-netcode, WIP hull visibility culling
The hull culling functions are there, they just aren't being used right now because there are some annoying bugs.
2016-10-02 22:24:31 -03:00
juanjp600
33641ead3e Fixed timestep for some GUI & input code
Fixed timestep only applied to the physics simulation, but input and GUI updates were not being handled properly, so here's some progress into fixing them.
2016-09-18 11:03:52 -03:00
juanjp600
bfd8bc6b35 Server serialization functions require client 2016-09-07 17:32:20 -03:00
Regalis
cf77a59c97 Implemented some of the itemcomponent read/write methods, made submarines server serializable 2016-09-02 17:59:08 +03:00
juanjp600
af220dbc2a Removed Fill/ReadNetworkData
These functions needed to be replaced because they rely heavily on reliability.

Instead, new functions called (Write/Read)Data(Server/Client) will be added. 

Separating client and server code into completely separate functions will help ensure that proper security checks are performed.
2016-08-29 20:02:46 -03:00
Regalis
6c5452570e More sanity checks to make sure clients aren't doing something they're not allowed to:
- AICharacter, hull, structure and submarine updates from clients are ignored
- character updates from anyone else than the client controlling the character are ignored
- players can't pick/drop items from anyone else's inventory (unless the target is unconscious/stunned/cuffed)
- server has authority over reactor temperature
2016-08-16 17:56:33 +03:00
Regalis
19915fc4e5 - server log and item lists in editor can be filtered
- changes to item highlighting logic (easier in cramped subs)
- sub name/description boxes and selected items are reset when leaving the editor
2016-07-06 18:10:22 +03:00
Regalis
b4af92ace2 Small optimization: items have a list of components that have to be drawn 2016-05-24 21:17:38 +03:00
Regalis
ed529052a2 - relaycomponent inherits from powertransfer, so that they're included when calculating the load/power for the grid
- deactivated powertransfer components don't carry power
- fixed reactor graph lines going over the graph if load > 10 000
2016-05-24 19:17:42 +03:00
Regalis
d3ab7946a8 Using ToLowerInvariant instead of ToLower (the game works for Turkish players now!)
http://www.moserware.com/2008/02/does-your-code-pass-turkey-test.html
2016-04-27 17:14:09 +03:00
Regalis
c5685db0aa - handheld sonar
- junction boxes, sonar monitors, navigation terminals and engines break down if they're underwater long enough
- reactor cools down if it's underwater
- job-specific gear are grouped by job in separate .xml files
2016-04-09 14:31:59 +03:00
Regalis
5f05db7ca4 - fixed "signal loops" causing StackOverFlowExceptions (now the signals can only take 10 "steps" between components per frame)
- parameter for changing the output value of And/Or components when the input conditions aren't met
- or components work properly now
- a limited number of signals (100) can be queued in a delay component
2016-04-02 02:25:44 +03:00
Regalis
d713874bd6 Tweaked AITarget ranges: now it's possible to evade some monsters by stopping the sub and/or turning off noisy devices, AITarget ranges can be made visible by entering "ShowAITargets" in the console, misc cleanup 2016-03-12 21:35:21 +02:00
Regalis
d1580328ed Some cleanup using ReSharper (mostly removing redundancies) 2016-03-12 15:32:34 +02:00
Regalis
c605adf879 Fixed networkevents crashing due to client trying to access server.connectedclients 2016-02-19 17:18:31 +02:00
Regalis
94e34c0ed9 Molochs can damage characters, server log UI, stun weapons have a longer stun time, characters can't breathe when wearing a diving suit with no oxygen tank 2016-02-14 19:05:03 +02:00
Regalis
bec6d95198 Server log, ai characters steer away from the abyss 2016-02-14 16:47:23 +02:00
Regalis
6de5bac61b Only limbs with enough mass can cause impact damage to the sub, basictutorial changes, prevent ragdolls from teleporting inside submarinebody 2016-02-07 23:18:51 +02:00
Regalis
201dc1b733 Supercapacitors have much higher max output but smaller capacity, fixed not being able to drag wire nodes in editor, batteries working properly now 2016-02-07 12:32:19 +02:00
Regalis
6db3062cc8 dmgn 2016-02-05 19:34:10 +02:00
Regalis
7098a9a5e0 v0.3:
- Launcher checks whether a patch is newer than the current version instead of going through the patches until the current version is found
- CharacterHUD is drawn under crew commander and other UI elements
- All structures other than the command room windows are restored to full health in tutorial
- Longer cooldown for moloch attacks
- AIObjectiveCombat always overrides current order
2016-01-23 14:37:00 +02:00
Regalis
c78784068c -fixed a typo in fabricableItem requirement & added checking for said typos
- fixed being able to set battery recharge sped over the limits
- fixed vents being added to OxygenGenerator.ventlist multiple times
- fixed item.Submarine not being set if pulling an item from a fabricator
- some tutorial fixes
- fixed TraitorMode endmessage not being shown if the sub isn't at the end and neither character is dead
- SalvageQuest fails if the item has been destroyed
-
2016-01-21 20:59:26 +02:00
Regalis
1a5b3fa66a Endworm attacks working, itemlabel text saving bugfix, deconstructors & fabricators need power, engine sprite, disable wire node dragging in character mode, only hit with one meleeweapon at a time, fixrequirement text overflow fix, mapentities can hace multiple categories, Gap.FindHull fix, Waypoint ladder & gap saving, stuff 2016-01-18 20:09:38 +02:00
Regalis
0fc085c86d Item UI replacements, fabricator bugfix, randomly spawning artifacts, AI can fix leaks, LimbAttacks do damage once (not each frame for the duration of the attack) 2016-01-14 21:06:08 +02:00
Regalis
eb20af622d Limb collisions can damage hull again, new UI for steering, sonar & reactor, fabricators can require more than one of each ingredient, timer for character imploding, AICharacter position syncing changes, watcher, commands can also be given to controlled character 2016-01-13 22:19:01 +02:00
Regalis
5513637fe5 Item.Container bugfix (affected at least railguns in MP), merged the "your crew has died" message box with shiftsummary, reliable reactor syncing, prevent artifacts dropping out of the level 2016-01-12 01:02:05 +02:00
Regalis
cb1513f5e6 Lobbyscreen store fixes, sub name textbox & save button in sub editor, transitioncinematic on crew death, saving reactor state, radar marker position fix, minimap fix, button sounds, artifact positioning fix, better LegUp prevention method, some music clips when round ends 2016-01-03 01:13:32 +02:00
Regalis11
c7e7b3909f Autopilot waypoint skipping, AI finds and equips diving gear when the sub is flooding, progress on AI welding, equipping items in AIObjectiveGetItem, wire node coordinate bugfixes, EntityGrid.RemoveEntity fix 2015-12-23 00:10:02 +02:00
Regalis
78bccca4af Moar progress, fixed shadow/los/submarine misalignment issues 2015-12-09 19:29:53 +02:00
Regalis
11857f894b AI operating reactors & railguns, misc AI improvements 2015-11-30 19:06:27 +02:00
Regalis
f1e1b0b4f0 Stair improvements, inventory "tooltip" & condition progressbar, reactor tries to match the highest load of the connected junction boxes (instead of the sum of the loads) 2015-11-25 17:58:17 +02:00
Regalis
77024a31fb Positioning out-of-sub particles relative to the level, easier to climb stairs 2015-11-22 17:11:13 +02:00
Regalis
cddf4f1bde Sending NetTime at the start of a combined networkevent instead of individual networkevents, syncing itemcomponents for spectators, AICharacter importantentityupdates are sent again, misc bugfixes, some new heads 2015-11-20 17:12:33 +02:00
Regalis
9c2aec4c8e Fire improvements 2015-11-11 07:33:17 +02:00
Regalis
5a21d64b3a FillNetworkData uses NetBuffer instead of OutgoingMessage 2015-11-04 20:21:34 +02:00
Regalis
ebe248a7cc Ragdoll raycast crash, holding items in correct angles, ghost wires, dropping items properly in editmapscreen, radar wont work without power, remove wire from connectors if its deleted 2015-10-26 01:46:52 +02:00
Regalis11
aeeae13b35 NetworkEvent optimization (more frequent use of WriteRangedSingle) 2015-10-25 00:06:32 +03:00
Regalis
51e68f0949 Banning players, networkevent refactoring, wire syncing bugfixes, wrenches can be used as a melee weapon, proper error message for invalid IPs, drawing held items in correct position, fixed client crashing if sending a chatmessage while connection is lost 2015-10-22 01:04:42 +03:00
Regalis
838022fcd5 Switch to Barotrauma & too many misc changes to remember 2015-10-16 18:11:58 +03:00