Commit Graph

260 Commits

Author SHA1 Message Date
Regalis dc67eeebd4 Humans can be spawned through console in multiplayer 2016-08-23 14:19:50 +03:00
Regalis d476ebdc8d Fixed letting go of dragged character when entering/exiting the sub, fixed spawnitems not being visible in the job info window 2016-08-22 16:49:43 +03:00
Regalis 7c8e866030 Fixed the door collision bug at docking ports 2016-08-16 20:21:33 +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 8a2ad8eb64 NPCs don't try to use depth charge tubes when given the "operate railgun" command 2016-08-16 17:37:08 +03:00
Regalis aa2dbab579 PickItem networkevents include whether the item was selected instead of toggling selected/deselected, items can be picked when inside their trigger even if the position of the item isn't visible (i.e. ladders in Nehalennia can be climbed again) 2016-08-13 18:34:47 +03:00
Regalis 66df9c1dd0 Reverted the Ragdoll.SetPosition changes done in commit 6993318, won't work when standing partially through a platform 2016-08-13 18:31:55 +03:00
Regalis eb33746907 Forcing hull/gap ids to correct ones if receiving a dockingport network event and the hulls/gaps have already been created, ItemContainers are active by default (to always check for potential statuseffects of the contained items), fixed NullReferenceException in Wire.Connect if attempting to connect to something outside the sub (shouldn't be possible unless messing something up in the editor) 2016-08-11 21:52:57 +03:00
Regalis ab923c47e3 Error message if a character config file isn't found, Linux version tries to search for "Characterfolder" if "characterfolder" isn't found 2016-08-11 21:31:02 +03:00
Regalis 69933188d6 Ragdoll.SetPosition takes platforms into account if the character isn't ignoring platforms (i.e. forcing a character on top of a platform won't make it fall through it), reaching the top/bottom of a ladder won't make networkplayers fall off, server ignores position updates from dead/unconscious characters, smaller ResetRagdollDistance 2016-08-10 19:16:18 +03:00
Regalis d4338580c7 updated changelog, transparent debug console frame, stuff 2016-08-08 23:32:32 +03:00
Regalis 581a7d5d9f Highlighted items glow in the dark, health bars are hidden when health is full, usernames and health bars are drawn at full brightness 2016-07-31 19:13:08 +03:00
Regalis 1a0451d0a8 - items can be equipped/unequipped by double clicking
- items inside the respawn shuttle
- using the teleport method when moving a character into or out from a sub
- removing dropped items from the respawn shuttle when respawning
2016-07-29 22:25:48 +03:00
Regalis 4252f4b9d0 - clients don't spawn character jobitems themselves (item data is written in the StartGame network message)
- after receiving a StartGame message, clients will wait until the game is loaded before reading new messages from the server
- the Item(prefab, position, submarine) constructor uses the position as the center of the item, not as top-left corner
2016-07-29 18:38:42 +03:00
Regalis c773320a55 Autopilot can avoid other subs, characters won't go outside in idle state 2016-07-28 21:45:35 +03:00
Regalis 357a853342 A bunch of fixes to syncing clients who join mid-round:
- syncing items spawned/removed mid-round
- syncing characters spawned mid-round (through the console or by respawning)
- making sure that item IDs of the spawned characters match
- syncing wall damage
2016-07-25 18:48:48 +03:00
Regalis 6c79a8c568 Syncinc AICharacter inventories (a husk controlled by the host), clients don't try to read physicsbodyposition messages if the item doesn't have a body, control command works even if the character has spaces in the name 2016-07-25 18:43:09 +03:00
Regalis dd9b78f8ff Handling exceptions thrown at any point during coroutine update, not just at Coroutine.MoveNext, dirty workaround for a (rare?) pathfinding bug I haven't been able to reproduce 2016-07-21 21:20:21 +03:00
Regalis 911846acff - submarines send position updates more frequently when they're moving faster
- small AICharacter syncing optimizations
- respawning can be disabled in server setting
- netstats show the total amount of bytes sent for each networkevent type
2016-07-20 17:20:27 +03:00
Regalis b81417ad16 Characters can be left behind in levels and they will stay there until the player returns, other subs visible in sonar 2016-07-20 17:13:34 +03:00
Regalis 03a3a156ba - fixed camera "twitching" when trying to move it above the upper limit of the level
- fixed duplicate hulls/gaps being placed at docking ports when saving and loading
- fixed linkedsubmarines moving when saving and reloading if the center of the wall vertices isn't he same as the center of the sub
- moving docked submarines along with the main sub when syncing the position
- characters are killed when the client controlling them disconnects (+ cause of death: disconnected)
- fixed the description box in server lobby
2016-07-15 19:21:10 +03:00
Regalis a5111d33df Tons of AI + pathfinding bugfixes:
- waypoints are created between docked subs and removed when they undock
- fixed start waypoint being left out of steering paths
- NPCs won't close doors/hatches on themselves
- NPCs won't let go of ladders until their feet are above the lower edge of the hull
- fixed FindDivingGear "loops": need to find a suit -> need to get to a suit -> need a suit to get to the suit -> need to find a suit...
- fixed characters constantly turning from side to side in small rooms
- recursive function for finding the button which opens a door (so a button doesn't have to be connected straight to a door for an NPC to be able to open it)
- AIObjectiveGetItem keeps searching for more suitable items even if a path to a matching item has been found
2016-07-08 20:53:11 +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 cd3ecd36e8 Merge branch 'multisub'
Conflicts:
	.gitignore
	Subsurface/Source/Characters/Animation/HumanoidAnimController.cs
	Subsurface/Source/Items/Components/Holdable/RepairTool.cs
	Subsurface_Solution.v12.suo
2016-07-04 17:42:31 +03:00
Regalis aae24b2b2c Better logic for determining which convex hulls are in the range of a lightsource (separate convexhull lists for each sub) 2016-06-30 17:50:02 +03:00
Regalis 34c6569313 Server can inflict impact damage on clients, character oxygen level syncing bugfix, hulls send a networkevent when oxygen level changes by >=5%, limb velocities aren't reset when receiving a network update 2016-06-29 17:26:26 +03:00
Regalis 38c5251005 Vertical docking port, docking sounds, water flows properly between horizontally docked hulls, falseoutput of signal check components can be changed, lighting and FOW works between hulls (todo: some logic for determining when to update light.HullsInRange when two subs are moving relative to each other) 2016-06-27 17:48:20 +03:00
Regalis b04e204dc3 - multiple submarines can be "merged" into one file (to be used as escape vessels etc)
- WIP docking ports
2016-06-26 14:31:00 +03:00
Regalis 296c5a14ed - host can respawn
- respawn info texts
- camera clamped to the the upper edge of the level
- fixed submarinebody being generated from all walls (and not just the ones belonging to that specific sub)
2016-06-23 18:23:20 +03:00
Regalis dc7956274c - camera follows the closest sub
- WIP "respawn shuttle"
- submarine size affects its mass
- electricity fixes
2016-06-18 14:46:40 +03:00
Regalis 495a0f4124 - teleporting from sub to another works now
- repairtool fix
- submarines collide with each other
- every submarine is updated (so MainSub isn't the only one that can move)
- submarinebody vertex generation fix
2016-06-11 17:55:47 +03:00
Regalis 7349cdd310 Progress (compiles now) 2016-06-09 22:15:50 +03:00
Regalis11 c9fd599276 Merge branch 'master' of https://bitbucket.org/Regalis11/barotrauma into multisub
Conflicts:
	Subsurface/Source/GUI/GUI.cs
2016-06-09 18:39:54 +03:00
Regalis11 41569675f3 Started refactoring the submarine class in order to make it possible to add multiple submarines (or other movable structures) 2016-06-09 18:34:43 +03:00
Regalis d520c00dc9 - stunned characters don't move their hands behind their back when cuffed (caused the characters to flail around when someone grabs them)
- characters can run while grabbing/dragging someone
- inventory and chatbox are hidden when stunned
- turret rotation is reset between minRotation and maxRotation when changing the rotation limits
- fixed explosion damage being applied to simPositions of the limbs instead of worldpositions
2016-06-09 16:54:30 +03:00
Regalis 6b6af6e72e - head sprites can be given "tags", and body is chosen from sprites with the same tag
- black character sprites
2016-06-03 14:57:22 +03:00
Regalis 0621f6c9e3 Impulses aren't applied to disabled item bodies when the submarine hits something, velocities of item bodies are reset when the item is dropped, pathfinding errors don't open the debug console 2016-06-01 20:56:07 +03:00
Regalis b512a7ec18 - fixed clients failing to load submarines if they're not in the root Submarine folder
- some refactoring
- temporarily disabled kicking by voting
2016-05-30 18:32:36 +03:00
Regalis 68870b67f5 - fractal guardians have higher impact tolerance to stop them from killing themselves by slamming at the walls
- enemies use pathfinding when inside the sub and handle platforms/stairs better
2016-05-26 18:04:25 +03:00
Regalis 2398d8aa8a - resetting the "blood overlay" when switching the controlled character
- fixed 1-section long walls being impossible to fix after their body has been destroyed
- better looking blur (small lights aren't "skewed")
2016-05-26 18:03:08 +03:00
Regalis b2f83b43f8 Attacks can apply a force to the target (i.e. monsters can throw characters around) 2016-05-22 01:28:46 +03:00
Regalis 7113a154fe Aiming is disabled when unconscious/stunned, the range of fire lightsources isn't randomized to reduce the amount of required convexhull updates 2016-05-19 19:49:31 +03:00
Regalis a477dad1b2 Renamed the CollisionMisc collision category to CollisionItem, teleporting items inside/outside the sub if their physicsbody leaves/enters a hull, powercontainer charge can be changed in editor (i.e. batteries can be set to fully loaded) 2016-05-19 19:47:26 +03:00
Regalis 63e5f02057 Changes to submarine<->outside teleporting logic:
- contacts between limbs and the sub are temporarily disabled before teleporting to prevent the character from "exploding"
- impact damage is disabled for 0.25 seconds after teleporting in case the character still explodes
- characters with disabled impact damage won't damage the walls when hitting
- the collider of SubmarineBody is generated based on walls instead of hulls
- fixed Submarine.CheckVisibilit ignoring fixtures with (CollisionWall | CollisionLevel) collisioncategory
2016-05-18 11:43:22 +03:00
Regalis be72fee824 Dirty workaround for background music breaking during loading (the music is switched when a round starts), the "wall" at the top of the levels is drawn on top of the lightmap, small fixes in AIObjectiveGetItem and BackGroundSpriteManager 2016-05-15 17:58:56 +03:00
Regalis 6537751961 Particle emitters can be assigned to statuseffects, fixed item.Submarine not being set correctly for throwable items, flare particles + sounds, nerfed some of the medical items 2016-05-11 20:16:50 +03:00
Regalis 1a3da8b29f Tweaked enemy AI idle behaviour (lighter avoid steering to make the enemies less likely to "bounce" from wall to wall in tight spaces), fix for wander steering breaking if the velocity of the character is Vector2.Zero, different tooltips for suicide button in SP and MP 2016-05-08 17:15:02 +03:00
Regalis 3f22b2e4df GUIMessageBoxes are drawn on top of everything else (they were obstructed by shiftsummary), placing background sprites based on level seed, instructions for dealing with broken junction boxes in tutorial 2016-05-01 18:55:44 +03:00
Regalis 63bb78b3ef Using TrySetLimbPosition when flipping a character to prevent limbs from going through walls, changes to outside->inside teleportation logic 2016-05-01 18:53:58 +03:00
Regalis 4cda429ab0 LightSources can be assigned to limbs, glowing watcher 2016-05-01 18:47:44 +03:00