Commit Graph

147 Commits

Author SHA1 Message Date
Jonathan Berglin
596307c9b7 Remove unused clippy suppressions 2021-12-05 17:59:02 +00:00
Marcel Märtens
ef40ebe0c8 update toolchain to nightly-2021-11-24 2021-11-24 10:09:22 +01:00
Xeriab Nabil
c9e2293a6c Server: Fix character deletion mentioned in #1327 2021-09-06 16:02:41 +03:00
Marcel
680492cea6 Merge branch 'juliancoffee/entity_refactor' into 'master'
Improve terms of EntityConfig and LoadoutBuilder

See merge request veloren/veloren!2688
2021-07-28 23:19:04 +00:00
Ben Wallis
01ca6911a9 * Pets are now saved on logout and spawned with the player on login
* Pets now teleport to their owner when they are too far away from them
* Limited the animals that can be tamed to `QuadrupedLow` and `QuadrupedSmall` to prevent players taming overly powerful creatures before the pet feature is further developed
* Added `Pet` component used to store pet information about an entity - currently only used to store the pet's database ID
* Added `pet` database table which stores a pet's `body_id` and `name`, alongside the `character_id` that it belongs to
* Replaced `HomeChunk` component with more flexible `Anchor` component which supports anchoring entities to other entities as well as chunks.
2021-07-28 22:36:41 +00:00
Tavo Annus
63be9297e7 Combine multiple inventory loading queries into single reccursive query 2021-07-28 21:11:57 +00:00
juliancoffee
14ac9a8b4e Improve terms of EntityConfig and LoadoutBuilder
* rename LoadoutBuilder::new to LoadoutBuilder::empty
* remove LoadoutBuilder::default as Default makes no sense here
* move comments from template.ron to EntityConfig struct
* add FIXME comments to split EntityConfig into EntityBase and
EntityExtension
2021-07-28 19:19:10 +03:00
Samuel Keiffer
f38cde9d40 Merge branch 'knightresspaladin/healing-aura' into 'master'
Knightresspaladin/healing aura

See merge request veloren/veloren!2587
2021-07-16 21:32:03 +00:00
Marcel Märtens
9b3b21f368 fix clippy warnings 2021-07-12 12:09:09 +02:00
Knightress Paladin
42c3872528 Added healing aura duration skill to voxygen UI 2021-07-10 20:02:36 -07:00
Knightress Paladin
b96bb6fc5d Added combo scaling to healing aura and allowed cultists to use it 2021-07-10 20:02:36 -07:00
Monty Marz
01a04a80fa icons and naming 2021-06-13 14:34:42 -04:00
Avi Weinstock
0e394029de Mining skill tree. 2021-06-13 14:34:42 -04:00
Sam
1014ac45bf Made new skills for reworked bow.
Created migration to reset bow skills.
2021-05-22 12:33:21 -05:00
Joshua Yanovski
e7587c4d9d Added non-admin moderators and timed bans.
The security model has been updated to reflect this change (for example,
moderators cannot revert a ban by an administrator).  Ban history is
also now recorded in the ban file, and much more information about the
ban is stored (whitelists and administrators also have extra
information).

To support the new information without losing important information,
this commit also introduces a new migration path for editable settings
(both from legacy to the new format, and between versions).  Examples
of how to do this correctly, and migrate to new versions of a settings
file, are in the settings/ subdirectory.

As part of this effort, editable settings have been revamped to
guarantee atomic saves (due to the increased amount of information in
each file), some latent bugs in networking were fixed, and server-cli
has been updated to go through StructOpt for both calls through TUI
and argv, greatly simplifying parsing logic.
2021-05-09 21:19:16 -07:00
Marcel
f5c7f99846 Merge branch 'xvar/persistence-fixes' into 'master'
Fixed a rare server crash when creating a character

See merge request veloren/veloren!2237
2021-05-03 18:09:59 +00:00
Ben Wallis
d7582efad0 Moved character creation to use character_updater instead of character_loader. Changed character_loader to use a read-only database connection. 2021-05-02 16:08:39 +01:00
Sam
3cb0ee98c8 Removed all unique and simple tool kinds. 2021-05-01 09:25:51 -04:00
Sam
a35b8b4aad Removed ability set as field on items. 2021-05-01 09:25:49 -04:00
Avi Weinstock
0404250300 Unlock dodge roll iframes and staff explosion by default. 2021-04-18 16:16:06 -04:00
Ben Wallis
378561598e Character deletes are now processed by CharacterUpdater and clear any pending logout updates for the deleted character 2021-04-14 22:30:53 +01:00
Samuel Keiffer
435b5d5912 Merge branch 'holychowders/resolve_issue_#978_extract_skillset_into_own_component' into 'master'
Resolve Issue #978 - Extract SkillSet Into Its Own Component

Closes #1065 and #978

See merge request veloren/veloren!2116
2021-04-14 15:35:35 +00:00
holychowders
568a8d9666 Resolve Issue #978 - Extract SkillSet Into Its Own Component 2021-04-14 15:35:34 +00:00
Ben Wallis
d6b3eb3784 Fixed initial creation of saves directory. Added path of old singleplayer saves directory to information logged when it is moved to the new userdata directory 2021-04-14 07:15:51 +01:00
Ben Wallis
1de94a9979 * Replaced diesel with rusqlite and refinery
* Added "migration of migrations" to transfer the data from the __diesel_schema_migrations table to the refinery_schema_history table
* Removed all down migrations as refinery does not support down migrations
* Changed all diesel up migrations to refinery naming format
* Added --sql-log-mode parameter to veloren-server-cli to allow SQL tracing and profiling
* Added /disconnect_all_players admin command
* Added disconnectall CLI command
* Fixes for several potential persistence-related race conditions
2021-04-13 22:05:47 +00:00
Joshua Yanovski
af94753ad9 Remove panics and unwraps, part 1.
Also fixes various other miscellaneous bugs.
2021-04-10 10:03:21 +02:00
Marcel Märtens
6b23101fac update toolchain to nightly-2021-03-22 2021-03-22 16:41:04 +01:00
Joshua Barretto
7ae4230dc8 Merge branch 'zesterer/pick' into 'master'
Pickaxe

See merge request veloren/veloren!1959
2021-03-22 00:19:42 +00:00
Joshua Barretto
347e1022a0 Initial implementation of pickaxe 2021-03-21 16:09:16 +00:00
Vincent Foulon
e06870702f Add skill for swimming speed 2021-03-21 15:58:38 +01:00
Vincent Foulon
8b01abde67 address comments 2021-03-20 22:56:54 +01:00
Vincent Foulon
d0aa68a9d2 Add climbing speed and cost 2021-03-20 17:17:28 +01:00
Sam
16222948a3 Sceptre skill tree and migration. 2021-03-09 18:02:07 -05:00
jshipsey
16a44cd532 minotaur moves, added claygolem 2021-02-27 01:42:47 -05:00
jshipsey
aa4237b019 BL improvements, various fixes 2021-02-27 01:42:45 -05:00
jshipsey
ac16a8900d bow 2021-02-27 01:42:45 -05:00
Avi Weinstock
78014d7d3b Put material stats in their own manifest, and multiply a form's stats by the weighted average of the material multipliers. 2021-02-23 15:49:34 -05:00
Marcel Märtens
514d5db038 Update Network Protocol
- now last digit version is compatible 0.6.0 will connect to 0.6.1
 - the TCP DATA Frames no longer contain START field, as it's not needed
 - the TCP OPENSTREAM Frames will now contain the BANDWIDTH field
 - MID is not Protocol internal

Update network
 - update API with Bandwidth

Update veloren
 - introduce better runtime and `async` things that are IO bound.
 - Remove `uvth` and instead use `tokio::runtime::Runtime::spawn_blocking`
 - remove futures_execute from client and server use tokio::runtime::Runtime instead
 - give threads a Name
2021-02-22 17:34:55 +01:00
Avi Weinstock
c489d095df Implement persistence for modular weapons.
This stores the components as children of the item that contains them via the DB's `parent_container_item_id` feature, and ensures that things are loaded in a good order with breadth-first search.

Squahed fixes:

- Fix some constraint violations that occurred when swapping inventory items.
- Comment out recipes for modular weapons.
- Make update_item_at_slot_using_persistence_key and is_modular more idiomatic.
- Add changelog entry.
- Document `defer_foreign_keys` usage.
2021-02-20 14:31:46 -05:00
Monty Marz
ac60bf5794 Better visuals for skill button labels, don't show "0 EXP" in the SCT
Made functions that were called every frame significantly cheaper.

Final UI fixes.
2021-01-19 08:08:29 -05:00
Sam
eaa41c7dea Skills are now factored into combat rating. New formula for exp scaling per SP.
Adjust lvl up msg fade

Add female humanoid names WIP

Changed text formatting when skill is max level. Added message to show you have 0 skill points available.

Addressed a lot of comments.

various changes to UI

- fix skillbar offset
- remove CR indicators for group members
- add CR indicators to group member frames
- use unified CR indicator icon

Exp reward tweaks.

Fixed flamethrower range skill description.
2021-01-19 08:08:26 -05:00
jshipsey
5d1993009f keyframed axe spin
Fixed error in converting FK to entity_id from character_id.

Giant match statements in persistence.

Tweaked roll.

Changed how skills and skill groups were assigned in the skillset builder so it's format more closely followed loadout builder.
2021-01-19 08:08:18 -05:00
jiminycrick
3d44ac2c35 Humanoid skill config and AI skill check
updated axe skill with correct icons
2021-01-19 08:08:05 -05:00
Monty Marz
30df603115 flashing buttons for available points, WIP lock/unlock indicator
Condensed UI code. Removed some hardcoding.

icons

squash later, WIP colouring for unavailable skills
2021-01-19 08:07:33 -05:00
Sam
51c0bd765f Database support for refunding skills.
Nonfunctional xp floaters, squash when working.

more icons, lock visuals
2021-01-19 08:07:29 -05:00
Monty Marz
48bd921d0a EXP bar and available points UI
fix overhead UI

Add WIP overhead difficulty indicator

readd commented out exp counter for later use

Wired skill information into UI.
2021-01-19 08:07:25 -05:00
Sam
c0c45a1996 Purged stats, including level and experience 2021-01-19 08:07:23 -05:00
Sam
48c98b11cf General combat skill tree.
UI for general skill tree
2021-01-19 08:07:20 -05:00
Sam
69be3a3d93 Added persistence for skill trees. 2021-01-19 08:07:00 -05:00
Ben Wallis
aef2637288 Refactored loadout to have public functions for each slot instead of requiring callers to use the _INDEX consts 2021-01-08 19:12:09 +00:00
Ben Wallis
5636083e27 * Fixed character load errors not being handled in Voxygen.
* Improved server error message for character load errors.
* Added server logging for item asset load errors during character load.
* Fixed character select error message dialog not supporting long messages.
2020-12-30 19:29:22 +00:00
Ben Wallis
c07844ba52 Fixed diesel schema namespace conflicts in persistence 2020-12-28 23:56:23 +00:00
Marcel Märtens
26918d10c9 update chrossbeam, tracy, prometheus (and reduce server deps to crossbeam-channel) 2020-12-16 00:51:07 +01:00
Marcel Märtens
add7922653 Move Systems out of common into common_sys
This requires to move `State` into a own crate called `common_state` which depends on `common` and `common_sys`
2020-12-01 13:44:07 +01:00
Ben Wallis
143ecd6e34 Moved waypoint persistence to new waypoint column on stats table 2020-11-17 07:51:50 +00:00
Imbris
4f2512f126 Save the selected character, deselect character when deleting, auto select newly created character 2020-11-14 19:17:42 -05:00
Sam
e2fe2fd532 Speed and power on weapons are now able to modify abilities after they are loaded from ron files. 2020-11-12 21:24:36 -06:00
Sam
9b4fa4e961 Started moving loading of ability manifest to an ecs variable. 2020-11-12 21:24:34 -06:00
Christof Petig
b56919b123 Make waypoints persistent
Closes #549
2020-11-08 22:15:47 +01:00
Sam
c48c022f7e Separated out health from stats component. 2020-11-04 19:22:04 -06:00
Imbris
ca2bf937e6 Apply saves dir override when loading settings, change whitelist to a HashSet, let admins login even if they are not on the whitelist to reflect the comments in login code 2020-10-10 02:10:32 -04:00
Imbris
7c14a3f4a4 New userdata folder that holds voxygen settings and logs and server saves and settings, split up server settings file into parts that are persisted back to their files and parts that are read-only, misc fixes 2020-10-10 02:10:32 -04:00
Imbris
26d59a62fc Downgrade debug -> trace in persistence code 2020-10-10 02:10:32 -04:00
Ben Wallis
9178327e09 Removed unnecessary Option around send and receive channels in character_loader.rs 2020-09-27 22:12:41 +01:00
Ben Wallis
099dfaae9c Added several missing items that didn't exist in any inventories/loadoads on the production server to the item_persistence migration 2020-09-27 14:51:57 +01:00
Snowram
f9fada87cf Addresses comments 2020-09-18 18:45:03 +02:00
Ben Wallis
712f2e9c97 * Moved migrations to beginning of server initialisation
* Added migrations for entity ID changes to existing tables
2020-09-17 23:02:14 +00:00
Capucho
6a83da0dfd Force migration text trough tracing 2020-09-01 23:03:33 +02:00
notoria
2be4202d01 Corrected some spelling errors 2020-08-25 12:21:25 +00:00
Joshua Yanovski
6d425f125e Fix various migration issues. 2020-08-07 01:35:51 +02:00
Joshua Yanovski
51ff7cded2 Fix corrupted character inventories by adding protection.
This is a temporary bandaid until we move to our new schema, but it
should at least allow people to log in with old characters.
2020-07-20 02:34:43 +02:00
Samuel Keiffer
25c28f26d6 Different body types now have different health values and gain different amounts of healths on leveling. 2020-07-09 00:04:25 +00:00
Ben Wallis
ddb66ec73b Added CharacterDataError when character list fails to load due to Loadout de-serialization error 2020-07-08 09:34:20 +01:00
Ben Wallis
3ac18f73ea Removed de-serialization failure tolerance to prevent player inventory/loadout wipes 2020-07-08 09:09:47 +01:00
Ben Wallis
538598eb08 Refactored Skills/SkillGroups structure and implemented JSON persistence 2020-07-04 15:25:21 +01:00
Shane Handley
255ad97289 - Move the remaining character data loading to the message/thread formatharacter list actions
- Handle/notify the client of errors during character load by returning to character select with the error, clean up client and server states
- Add player_uuid check when loading character data.
2020-06-24 11:47:41 +10:00
Shane Handley
38b146d840 Add channel setup for persistence to move character operations off the
main thread.
2020-06-23 21:07:43 +10:00
Marcel Märtens
9485b45e70 switch to tracing stlye and enhance logs with usefull information
- Updated CHANGELOG
- reduce dependencies
- found out that we have alot of duplicate coding... alot...
2020-06-22 09:53:15 +02:00
Kevin Glasson
589254e4ab Convert all other veloren crates to use tracing
- Completely removed both `log` and `pretty_env_logger` and replaced
with `tracing` and `tracing_subscriber` where necessary.

- Converted all `log::info!(...)` et al. statements to just use the
shorthand macro i.e. `info!`. This was mostly to make renaming easier.
2020-06-21 23:19:41 +08:00
Ben Wallis
4d6c553b1b Fixed suppressed clippy warnings for #587 - redundant_closure 2020-06-12 20:47:22 +01:00
Ben Wallis
950c62efc6 Suppressed all existing clippy warnings in preparation for fixes as part of #587 2020-06-10 22:01:42 +01:00
Shane Handley
24cdea0a4c Enable WAL and busy_timeout for each sqlite connection to mitigate db locks, 2020-06-07 22:33:48 +10:00
S Handley
e0633a238e Update CHANGELOG and a TODO, fix safer deserialisation for inventory
data.
2020-06-04 11:44:33 +00:00
S Handley
b1d191301a Make the persistence system code more generic so that it handles all
data associated with a character, rather than individually as we were
planning to do with stats/inv/etc... This removes potential for DB locking when we deal with each individually, and we
should have plenty of room for additional writes within the transaction.
2020-06-01 21:34:52 +00:00
Shane Handley
84d0332c6d Ensure that the player uuid and character id both match in a character deletion query. 2020-06-01 02:29:05 +10:00
Monty Marz
f7d6f76a04 Added 36 Swords
I added 36 sword models to the code.
2020-05-29 18:23:00 +00:00
Imbris
6b70354fbb Wrap updates in transaction 2020-05-15 16:40:06 -04:00
Imbris
49e2fb80e7 Update stats in a separate thread 2020-05-15 16:03:51 -04:00
Shane Handley
a41576e767 Correctly set the exp target for the next level when spawning a character.
Removed the unwrap_or from the update method for stats persistence, and
have a dedicated method for updating single rows with a new connection.
2020-05-15 13:27:26 +10:00
Mckol
fe859fc2e1 VELOREN_SAVES_DIR envar now overrides the server persistence db path 2020-05-15 01:54:14 +02:00
Mckol
aa69046055 Changed the default path of persistence database
Now the default is `./saves/`, it's also configurable.
2020-05-14 22:42:44 +02:00
Shane Handley
fa8c6418f6 Write stats to the DB when a player disconnects from the server. 2020-05-13 22:08:26 +10:00
Shane Handley
e852e0cfab - Update the stats of characters individually, reverting the change with
big combined updates.
- Add a timer to the stats persistence system and change the frequency
that it runs to 10s
- Seperate the loading of character data for the character list during
selection, and the full data we will grab during state creation. Ideally
additional persisted bits can get returned at the same point and added
to the ecs within the same block.
2020-05-13 09:14:09 +10:00
Shane Handley
0a6f9b860d Gather all characters stats in the system, build one big query, rather than per-character queries. 2020-05-13 09:14:08 +10:00
Shane Handley
7c6c9f4302 Stats persistence
- Update client code to use persisted stats
- Add a system for stats persistence
- Add a basic scheduler to control duration between execution of
persistence systems
2020-05-13 09:14:08 +10:00
Shane Handley
e5853dbdd4 Initial models, migration and client code for stats persistence. 2020-05-13 09:14:08 +10:00
S Handley
5a13b54cbf - Load characters after login.
- Make the character screen load with an empty character list from the server, send event to the server for character creation with data, but not yet saving them to the DB.
- Working but messy character saving to DB
- Add the character_data to the client, rather than keep it in the GLobalState.
2020-05-09 15:41:25 +00:00