Joonas Rikkonen
01e97fe4bd
Fixed crashing if the server attempts to spawn extra cargo that doesn't spawn in a container.
2018-07-24 19:10:18 +03:00
Joonas Rikkonen
df720b67ba
Fixed clients getting desynced if cargomanager spawns extra containers due to running out of space.
2018-07-24 19:02:56 +03:00
ursinewalrus
c28fd336c9
If you buy more than a full box worth of stuff at the store instead of not letting you start the mission it will put the extra stuff in extra boxes for you
2018-07-23 21:32:01 -05:00
ursinewalrus
4e3d375ae5
game will now launch on overbuy and extra items will be present on floor, however a GUI error will be generated on match start
2018-07-23 18:57:29 -05:00
Nilanth Animosus
cac1c48aa3
Redesigned campaign buymenu to use a quantity field
...
Additionally sorts the bought items by name then type to attempt to mirror the tabs (Not perfect)
2018-07-20 18:01:38 +01:00
Joonas Rikkonen
a61ac1716d
Sending level seed & level gen errors to GameAnalytics
2018-07-20 14:17:59 +03:00
Joonas Rikkonen
07de2b2a0f
Fixed previous items not being cleared from multiplayer campaign UI after a round ends. Closes #505
2018-07-20 13:50:04 +03:00
Joonas Rikkonen
49c6b177e3
Added wrapper methods that check if user statistics are enabled to GameAnalyticsManager
2018-07-20 12:05:13 +03:00
Joonas Rikkonen
88abbe28e3
Fixed entity IDs getting messed up and causing desync because of purchased items in multiplayer campaign. The server created cargo items first and then mission-related entities, while the clients only spawned mission entities and relied on the server to spawn the cargo, which caused mission entities to have wrong IDs. Closes #484
2018-07-17 12:50:04 +03:00
Joonas Rikkonen
ceae0bf94e
Fixed oddities in traitor ratio/assignment logic. The TraitorUseRatio setting is used to determine the number of traitors, the minimum number of traitors is 1 instead of 2, the host is taken into account when determining the number of traitors. Closes #477
2018-07-16 11:05:10 +03:00
Joonas Rikkonen
015eacbcb0
Fixed GameAnalytics thread becoming active despite user statistics being disabled, causing the game to stay active in the background when quitting.
2018-07-13 11:29:11 +03:00
Joonas Rikkonen
c7e220d222
Collecting some more usage statistics: selected game mode, mission, submarine, content package, traitors on/off, kills
2018-07-10 15:49:08 +03:00
juanjp600
f59db98188
Fixed case-sensitivity issues, part six quadrillion and one
2018-06-06 15:00:02 -03:00
juanjp600
e9374812a5
Fixed case-sensitivity issues, part six quadrillion
2018-06-06 14:59:32 -03:00
Joonas Rikkonen
f931d81aed
Mission refactoring (mission prefabs) and option to select which types of missions can be selected when mission type is set to random (TODO: a way to set the allowed types from the UI).
2018-05-17 23:45:29 +03:00
Joonas Rikkonen
10ce4bd20d
Fixed messageboxes opened by the mp campaign setup UI not being shown until the UI is closed (e.g. shuttle & incompatible content package warnings), renamed MultiplayerCampaign -> MultiPlayerCampaign for consistency. See #315
2018-03-06 16:43:36 +02:00
Joonas Rikkonen
08ade1dc6f
Fixed clients not being notified when a campaign is exited and a new one started, causing them to think they still have up-to-date save files for the new campaign and get kicked out due to desync as soon as a round starts. (See #315 )
2018-03-06 14:18:37 +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
9f58d1b74d
Cargo items can be set to spawn inside specific types of containers instead of being scattered on the cargo room floor.
2018-01-10 15:56:11 +02:00
Joonas Rikkonen
4d55e2dd55
Move hard-coded gender pronouns from TextManager to Texts.xml
2017-12-28 21:47:29 +02:00
Joonas Rikkonen
3d73f28362
- TextManager automatically replaces "\n" strings with a newline.
...
- Removed instantiating traitor start popup from client-side TraitorManager (instead the client receives the start message from the server).
- GUIMessageBoxes don't leave unnecessary empty space for the header if the header text is empty.
- More hard-coded text removal.
2017-12-27 16:07:00 +02:00
Joonas Rikkonen
2894b74edc
Started moving hard-coded texts to a separate xml file (Content/Texts.xml) to make modding and translating the game easier (see #80 ). Also Renamed InfoTextManager as TextManager.
2017-12-26 23:51:18 +02:00
Joonas Rikkonen
6e78e945a7
Minor code style nitpicking :)
2017-12-05 19:05:21 +02:00
Alex Noir
1e8c1f7f04
Fixed a NullReferenceException caused when you try to play a round with traitors enabled while there are not enough player characters.
2017-12-05 16:17:51 +03:00
Alex Noir
3b02f0c86a
Seems like sending a long-winded copy-paste of the traitor greeting message to host when he's still in lobby causes an error: https://cdn.discordapp.com/attachments/386620407035330561/387295192946049025/unknown.png
...
This is mostly a bugfix
2017-12-05 00:20:36 +03:00
Alex Noir
94b2c4c9e7
Moved code around a bit, moved traitor greeting to Greet function in Traitor class
2017-12-04 20:03:29 +03:00
Alex Noir
63f8760b86
Added traitor code words
...
Fixed host never being traitor
2017-12-03 19:39:31 +03:00
Alex Noir
56df7b6900
Support for multi-traitors!
...
It's possible for traitors to share targets and/or target each other.
Todo: code phrases-responses, clientside settings for traitor amount
2017-12-03 00:43:14 +03:00
Alex Noir
0740ca84bc
Overhauled GetEndMessage() to also include detaining
2017-12-02 16:15:50 +03:00
Alex Noir
1394d15c29
fix start pop up saying the host is the target if host becomes traitor
2017-12-02 11:09:06 +03:00
Joonas Rikkonen
1c09f757a2
Renaming fields in the Client class for consistency
2017-11-23 20:43:22 +02:00
Joonas Rikkonen
4689bec441
Clients send the latest received campaign ID to the server when in the lobby instead of requesting it once with a reliable message. -> Now the server reattempts sending the save file if the transfer fails at either end.
2017-11-23 20:16:47 +02:00
Joonas Rikkonen
fce7d43ef3
Fixed characters not appearing in the round summary in mp, minor CrewManager refactoring
2017-11-20 20:46:54 +02:00
Joonas Rikkonen
04e3710a65
Renaming fields for consistency
2017-11-14 22:45:22 +02:00
Joonas Rikkonen
57667b3169
Fixed removed (e.g. eaten) characters not appearing in the round summary, but still spawning during the next round
2017-10-05 21:18:01 +03:00
Joonas Rikkonen
1ff2054ca8
Converted the GetAttribute methods in the ToolBox class to extension methods
2017-10-04 18:38:40 +03:00
Joonas Rikkonen
04b0c63f30
Campaign mode can't be voted for. The host has to manually create/select the campaign save, so switching to the campaign mode when the host isn't present would cause problems.
2017-09-24 13:41:54 +03:00
Joonas Rikkonen
f291a22976
- Autorestart works in campaign mode.
...
- The server select a random destination when the campaign starts and after each round, so the campaign can be played even if there's no host/client to choose the destinations. (TODO: make it possible to vote for the destination?)
- Reverting to the previous save if the entire crew is dead works correctly now.
- Clients load the campaign saves after receiving them (-> discovered locations/connections are synced with clients).
2017-09-19 22:05:42 +03:00
Joonas Rikkonen
e26600d088
Added MP campaign setup to the dedicated server & some console commands for managing the campaign
2017-09-17 20:03:18 +03:00
Joonas Rikkonen
9114ae658f
- Modified item buying logic: selected items are purchased immediately without having to click the "buy" button, and they stay in the list of purchased items until the round is started. (-> It's possible to see which items have been purchased and cancel purchases).
...
- Clients can be given a permission to manage the campaign (atm selecting which location to head towards and buying items).
- Syncing cargomanager state with clients.
- Misc fixes.
2017-09-17 15:55:24 +03:00
Joonas Rikkonen
b292a301cf
MP campaign additions/fixes:
...
- Store tab & cargo spawning
- Sub & shuttle lists and level seed box are disabled when a campaign is active.
- Campaign UI is recreated if a new campaign is started while another one is active.
2017-09-16 19:16:56 +03:00
Joonas Rikkonen
348d81a66f
MP campaign fixes
2017-09-13 20:34:10 +03:00
Joonas Rikkonen
63bca3c7ea
Syncing campaign state & save files with clients (WIP)
2017-09-11 21:32:48 +03:00
Joonas Rikkonen
3feee93c53
Campaign saving fixes
2017-09-03 13:08:10 +03:00
Joonas Rikkonen
c1f5e3cbda
Progress on multiplayer campaign:
...
- Moved SaveUtils to the shared project.
- Moved the "new game"/"load game" menu logic to a separate class.
- Somewhat functional campaign UI in the server lobby (only the map view is usable atm though).
2017-08-31 18:53:37 +03:00
Joonas Rikkonen
dc3b9baa0d
Moved campaign UI logic from LobbyScreen to a separate class
2017-08-29 19:32:14 +03:00
Joonas Rikkonen
a75fd12020
Started moving single player campaign logic to an abstract CampaignMode class to make it reusable in the eventual multiplayer campaign
2017-08-28 20:19:21 +03:00
Joonas Rikkonen
729108c7b9
Replaced usages of "shift" with "round" for consistency
2017-08-28 17:59:08 +03:00
Joonas Rikkonen
c2da3a6af4
- Added "LevelTriggers", areas that apply statuseffects and/or damage to entities. Atm can only be attached to background sprites.
...
- Moved background sprites to the shared project.
- The debug textures of physics bodies have a maximum size of 128x128 pixels to prevent large bodies from taking up excessive amounts of memory.
- Attacks can be set to only affect humans.
2017-08-23 20:37:30 +03:00
Joonas Rikkonen
6cf0f966aa
Refactored event/task logic:
...
- Instead of configuring a commonness value and difficulty for an event and creating new random events until the maximum difficulty of the selected level is reached, the number of events per level can be configured directly (and overridden for specific level types).
- Removed task logic. The initial idea was to display the unfinished tasks to the player somehow and to use them as objectives for the AI crew, but those were scrapped and the tasks only ended up controlling which type of music to play. TODO: implement some kind of logic to determine when to play repair/monster music clips.
2017-08-22 21:12:06 +03:00