Commit Graph

1541 Commits

Author SHA1 Message Date
Joonas Rikkonen
65211ecbb6 Characters that are outside are rendered under particles -> creatures can be hidden by smoke from hydrothermal vents. 2017-08-22 19:06:29 +03:00
Joonas Rikkonen
15a31c5291 - The commonness of scripted events can be overridden for specific level types (e.g. some monsters can be set to spawn more frequently in specific types of levels).
- The sub can be moved from location to another in the map view by double clicking in debug builds.
- Level wall color can be changed in level generation parameters.
- Fixed level geometry not being rendered if the ocean floor is visible (which isn't a problem in most level types, but there can be levels where the ocean floor is so close to the actual level that they can both be visible at the same time).
- Background sprite scale is taken into account when calculating particle emitter positions.
- Fixed limb lights being rendered even if the character is disabled.
2017-08-22 19:04:49 +03:00
Joonas Rikkonen
d772049cc0 Particle fixes, background sprites can emit particles if the camera is within the area where the particles are visible 2017-08-22 15:41:23 +03:00
Joonas Rikkonen
cc40970b58 Separate ParticleEmitter & ParticleEmitterPrefab classes - the emission timer (and maybe some other values in the future) can't be in the prefab class because multiple objects may use the same prefab. 2017-08-20 22:05:30 +03:00
Joonas Rikkonen
04834f9f7f Background sprites can be set to spawn on the sea floor, particle emitters can be attached to background sprites 2017-08-20 19:07:07 +03:00
Joonas Rikkonen
4a460ff150 - The emission rate of ParticleEmitters can be set as particles per second (instead of particles per frame).
- Particles that are outside the sub aren't visible inside hulls even if they overlap with the sub.
- ParticleManager takes the movement of the particles into account when determining which particles to cull. For example, a particle that will move upwards can be emitted even if it's below the camera view.
2017-08-20 19:05:25 +03:00
Joonas Rikkonen
3c0f099448 Entities can be nudged with the arrow keys in the sub editor 2017-08-20 13:20:52 +03:00
Joonas Rikkonen
a6689b894d Map generation tweaking: some biomes are placed at the center of the map, some at the center and some randomly. 2017-08-20 13:20:23 +03:00
Joonas Rikkonen
8e71b4b828 Ocean floor is visible on sonar 2017-08-16 19:09:51 +03:00
Joonas Rikkonen
52a52cdfc7 Level biomes (basically a way of categorizing level generation parameters). The single player map is now divided into biomes, meaning that specific types of levels are generated at different areas of the map.
TODO: more variety between biomes, assign the map biomes in a less random way (e.g. splotches of easier biomes connected by more dangerous ones, very dangerous biomes at the edges of the map...), option to select the biome in MP?
2017-08-15 22:43:58 +03:00
Joonas Rikkonen
9c372137bd Added randomly generated ocean floors. Atm the bottom is too deep to reach in most levels and there's not much to explore down there, but the plan is to have some levels where the bottom or some of the bottom formations are reachable (because we need hydrothermal vents!).
Ice walls also use vertex colors now, could be used to add some cosmetic variety to the levels.
2017-08-15 19:20:21 +03:00
juanjp600
6fe9130dd8 Fixed crash when projectiles stuck to items on dedicated server
Report submitted by etet2, haven't tested it yet but I'm fairly certain this should fix the crash
2017-08-14 21:35:19 -03:00
Joonas Rikkonen
8691789974 ScalableFont uses a non-obsolete override of the SpriteBatch.Draw method, + minor optimization 2017-08-13 20:01:00 +03:00
Joonas Rikkonen
c7a357d84c Fix for exceptions when a human is targeting a removed entity while debugdraw is enabled, accessing AITarget position properties after the target has been destroyed doesn't throw an exception (but does log an error in debug builds). 2017-08-13 20:00:52 +03:00
Joonas Rikkonen
4d40f5d483 Submarines, items and characters that reach a depth of 300,000 units (~4000 m) are automatically disabled. Avoids the unnecessary cost of updating entities that are way too deep to be reached by anyone. 2017-08-13 20:00:18 +03:00
Joonas Rikkonen
98b4b904d4 Inventory slots are highlighted if the cursor is within 5 pixels of the rect. The spacing between inventory slots is 10 px, so now items can't be accidentally dropped by releasing the cursor between slots. 2017-08-11 17:49:43 +03:00
Joonas Rikkonen
75a4d641bf Medical scanner shows husk infections 2017-08-10 20:30:48 +03:00
Joonas Rikkonen
f40d244deb Moved inventory UI update logic to the client project, sound effects for picking up and dropping items 2017-08-10 20:30:29 +03:00
Joonas Rikkonen
fd844fd696 Option to make wearable sprites use the depth of the sprite instead of using the depth of the limb it's attached to 2017-08-10 18:19:06 +03:00
Joonas Rikkonen
b70f6fb3ca v0.6.1.4 2017-08-09 22:43:31 +03:00
Joonas Rikkonen
f7f738765b Fixed "collection was modified" exceptions when a huskified human is killed while enumerating the character list (e.g. when killed by an explosion) 2017-08-09 19:37:37 +03:00
Joonas Rikkonen
6eba16ff4e Fixed clients spawning monsters twice (first during mission/event initialization and again when the server notifies them about the spawning) 2017-08-08 23:03:26 +03:00
Joonas Rikkonen
a8ec821382 Handcuffed AICharacters can't climb ladders 2017-08-08 21:17:43 +03:00
Joonas Rikkonen
0159cc3f25 Submarine position syncing fix:
The position correction logic only moved the submarine that's being synced and the subs docked directly to it, but not the subs docked to the docked subs. This caused severe physics issues with some specific subs, for example mirrored HSE Kullervo Carriers tended to get launched downwards at a game-breaking speed.
2017-08-07 23:14:25 +03:00
Joonas Rikkonen
d0a1a8413b Fixed contained items applying status effects even if their condition is 0.0 (-> spent fuel rods can't be used in reactors anymore) 2017-08-07 19:37:19 +03:00
Joonas Rikkonen
a86a10b177 Fixed the spamchatmessages debug command 2017-08-03 19:29:53 +03:00
Joonas Rikkonen
264015346d Clients ignore messages about attaching an item to a wall if the item is not attachable, and don't drop the the items before attaching (because it disconnects all connected wires). The spamevents debug command didn't work correctly because of this, and I'd imagine that the latter could have caused wires to drop from some attached items when joining mid-round. 2017-08-03 19:29:27 +03:00
Joonas Rikkonen
3b6630562c Fixed ruin generator attempting to create walls with a negative width/height if a wall gets placed inside another room with either end of the wall exactly at the edge of the room (example seed: cBLgZ2im). 2017-08-02 18:02:02 +03:00
Joonas Rikkonen
6e95bbb524 Server log remembers the state of the filters and applies the filter when opened 2017-08-02 17:50:34 +03:00
Joonas Rikkonen
9c039e7574 Fixed exceptions during job assignment if a client or the host is controlling a character with no CharacterInfo (i.e. any non-human character) 2017-08-01 21:29:55 +03:00
Joonas Rikkonen
1e11d5ab28 Fixed server failing to assign jobs to all clients on some modded servers: if the max amount of players per job had been reached on all the jobs the client has in their preferences, the client would not get a job at all (causing crashes later on when trying to access the client's job). Now the server assigns a random job if none of the preferred jobs are available.
+ Fix for exceptions in Client constructor if there are less than 3 job prefabs.
2017-08-01 19:46:24 +03:00
Joonas Rikkonen
7553d63a99 Reverted 719f194 because it broke spawning items at world-space positions. Now the submarine-field of the body is simply set to match the item to make sure it gets rendered at the correct position. 2017-08-01 18:05:21 +03:00
Joonas Rikkonen
1bc2523269 Added some GPU info to the crash reports, all available debug console messages are included in the reports (not just the 15 latest ones), restart attempts caused by SharpDXExceptions are logged 2017-07-31 20:49:01 +03:00
Joonas Rikkonen
d5e2b202d1 Repair tools can be used on bodies with the CollisionLevel collision category (-> ruins can be cut again) 2017-07-31 18:00:36 +03:00
Joonas Rikkonen
6a96a0c801 v0.6.1.3 2017-07-31 17:59:27 +03:00
Joonas Rikkonen
f58566b0d5 NetEntityEvent.IsDuplicate null reference fix for real now 2017-07-28 19:34:01 +03:00
Joonas Rikkonen
9e3f4bfa5a Syncing crouching from server to clients, not just from clients to server 2017-07-28 19:01:47 +03:00
Joonas Rikkonen
719f19418c Fixed invisible diving suits in respawn shuttles (and possible some other bugs): item constructor instantiates the physics body of the item before finding the hull the item is inside, because otherwise the submarine-field of the body won't be updated until the item moves, causing the item to be rendered at a complete wrong position. 2017-07-28 17:29:44 +03:00
Joonas Rikkonen
602b99c9fb Fixed hulls not being rendered in the sub editor 2017-07-28 17:26:56 +03:00
Joonas Rikkonen
db05bbf4c0 Another dockingport syncing fix 2017-07-27 21:33:09 +03:00
Joonas Rikkonen
2090bbf04e Platforms or stairs don't obstruct RepairTool raycasts (-> improperly placed platforms/stairs don't prevent fixing walls) 2017-07-27 20:15:58 +03:00
Joonas Rikkonen
3c04d2c479 Using SetClientCharacter forces the client's line of sight effect back on 2017-07-27 18:03:29 +03:00
Joonas Rikkonen
061ed7392e v0.6.1.2 2017-07-27 17:27:13 +03:00
Joonas Rikkonen
affb43e7a5 Workaround to null reference exceptions in Character.WriteStatus: it seems AnimController can be null when reading the message, which suggests that the character has been removed (e.g. turned to a husk, eaten by something). 2017-07-26 21:35:50 +03:00
Joonas Rikkonen
61b90464dd Playing whack-a-mole with the interaction logic again:
- Fixed server keeping clients focused on entities until they report focusing on something else. This allowed clients to interact with the entity they previously focused on, even if they weren't anywhere near anymore.
- Checking if clients are allowed to focus on an entity before letting them do so (!!!).
- Server doesn't highlight entities when a client focuses on them.
- Characters can interact with a wire if they've selected either of the items it's connected to.
2017-07-26 21:03:21 +03:00
Joonas Rikkonen
520e1df1a5 Fixed exceptions in NetEntityEvent.IsDuplicate if the data array contains null 2017-07-26 20:19:19 +03:00
Joonas Rikkonen
c63248ee51 DockingPort syncing fix: the server didn't take into account that the IDs of the hulls created between docking ports may change during loading if another sub has an entity with the same ID. The clients would still use the old ID, which lead to syncing issues such as client-side fires inside docking ports (for example in HSE Kullervo Carrier). 2017-07-26 18:46:29 +03:00
Joonas Rikkonen
a627f25c95 Fixed missing kick/ban buttons in the crew menu 2017-07-26 17:49:55 +03:00
Joonas Rikkonen
bcb0dbfa90 Tab doesn't autoselect the chatbox when the debug console is open 2017-07-26 17:21:11 +03:00
Joonas Rikkonen
6faf658ae0 Fixed SetClientCharacter & Revive 2017-07-26 17:19:35 +03:00