Commit Graph

102 Commits

Author SHA1 Message Date
Sam
5eec915c2e Added support for damage falloff with explosions. 2021-02-02 13:07:06 -05:00
Sam
c3408c084c Critical hits are now functional. 2021-02-02 13:06:32 -05:00
jiminycrick
a02444825d Address some comments
Eliminated extra stagger state

Responding to more comments

Move poise character state changes to character behavior system

Move poise out of JoinTuple/Data

Finish up comments (various fixes)
2021-01-28 17:31:05 -08:00
jiminycrick
661764f4aa Some preliminary balancing
Fix rebase
2021-01-28 17:22:39 -08:00
jiminycrick
0f244bf84b Made stunned state invulnerable to poise damage
Fixing silly error for comp creation
2021-01-28 17:22:35 -08:00
jiminycrick
dd69b5f2bc Poise stats 2021-01-28 17:22:35 -08:00
jiminycrick
c83296a4ec Initial broken implementation of poise
Character movement no longer broken.
2021-01-28 17:22:33 -08:00
jiminycrick
8b97199245 Update rand dependency 2021-01-26 20:35:08 -08:00
Sam
4014b28d19 Removed body from stats component as there is already a body component. 2021-01-22 16:50:22 -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
Sam
b6d2d48ead Exp floaters.
You load in with correct energy and health values now.
2021-01-19 08:07:36 -05:00
Sam
c0c45a1996 Purged stats, including level and experience 2021-01-19 08:07:23 -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
Joshua Barretto
a4b9230f03 fixed Cargo.lock conflict
Fixed `crossbeam-queue` being referenced  twice in the lockfile
2021-01-07 20:25:12 +00:00
Joshua Barretto
f8c8e342e6 Moved common networking code to common/net, clippy fixes 2020-12-13 17:23:45 +00:00
Marcel Märtens
e398cca53c move common_state into common_sys 2020-12-01 13:46:28 +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
Snowram
febe79e602 Added remaining creature spawns 2020-11-21 14:33:33 +01:00
Joshua Barretto
87edbf02ab Random orientation for spawned NPCs 2020-11-21 14:33:31 +01:00
Christof Petig
b56919b123 Make waypoints persistent
Closes #549
2020-11-08 22:15:47 +01:00
Snowram
ce96af4363 Allow for an arbitrary array of effects and buffs for consumables 2020-11-06 01:08:30 +01:00
Sam
a0af315930 Addressed comments. 2020-11-04 19:22:08 -06:00
Sam
bda7fefdc0 Removed Damages struct. Added GroupTarget enum. Changed RadiusEffect to use Effect instead of Daamges. Added Damage variant to Effect Eenum. 2020-11-04 19:22:07 -06:00
Sam
d38f1d319c Energy and health change server events now reference EcsEntity instead of Uid. Added TargetGroup to use to determine targets of effects/damage. Added Entity(TargetGroup, Effect) to RadiusEffect enum. 2020-11-04 19:22:06 -06:00
Sam
87bff41a66 Addressed comments. 2020-11-04 19:22:05 -06:00
Sam
c48c022f7e Separated out health from stats component. 2020-11-04 19:22:04 -06:00
Marcel Märtens
3d9c3e481e Undo one Componenet per Stream and instead use Client.
In order to keep the performance we made it Internal Mutability and use a `Mutex` per Stream, till `Stream.send` is no longer `&mut self`.
The old solution didn't rely on this, but needed multiple Components instead which zest didn't liked
2020-11-03 08:56:08 +01:00
Marcel Märtens
00456c8373 extract a Presence Component, which is server only and has state of Player and Client. Presence is only valid for Clients that are in game 2020-11-03 08:56:02 +01:00
Marcel Märtens
37d08e93ca review:
- fix wording in error msg
 - find better name for structs
 - unify errors and cleanup code with `(|| {foo?; Some(())})()` pattern
 - fix the negative PlayersOnline, it was caused by having a gracefull shutdown AND a timeout error. we now unregister the client when he issues TERMINATE
2020-11-03 08:55:51 +01:00
Marcel Märtens
9ba19a1cd9 implement lazy_msg which only serialize + compress AT MAX ONCE if the same msg is send to multiple participants 2020-11-03 08:55:46 +01:00
Marcel Märtens
e9be36c993 replace the single message system with 5 message systems. one per stream to handle less ECS systems PER msg system.
As the MAIN message system was already on 25 of the max of 26 possible Ressources
2020-11-03 08:55:42 +01:00
Marcel Märtens
dd966dd00e remote all streams from Client and put it directly in the ecs system.
This commit does not run compile as the message sys now would requiere 30 imput parameters which is over the max of 26 :/
2020-11-03 08:55:35 +01:00
Sam
125de0b46e Creatures and playrs now have buffs component, buffs that expire now only end their particular buff instead of every buff with the same type. 2020-10-26 19:28:16 -05:00
Sam
c50063ad0c Move addition/removal of buffs to server event. 2020-10-26 19:28:15 -05:00
BottledByte
7ab99a3bbf Initial WIP implementation of the Buff system 2020-10-26 19:28:14 -05:00
jiminycrick
50aac17d94 Added secondary skills to agent code (except bow) 2020-10-19 16:20:58 +02:00
Enrico Marconi
80b863da3b Fix #793 2020-10-18 11:03:02 +02:00
Sam
1c21362bc3 Fixed shockwaves hitting entities multiple times. Explosions can now regen energy. Staff M1 now has particles instead of using bomb particles. 2020-10-14 20:56:23 -05:00
Marcel Märtens
2a7378b4ae pack together InGame, CharacterScreen and General variant in a single enum, as requested by zesterer.
His reason to reqeust that is, that there might not be a perfect disctinction in the future.
Now we need to send ServerGeneral over streams and do additional checking at various places to verify that not the wrong variant is send.
2020-10-12 11:27:21 +02:00
Marcel Märtens
ff374eab59 create a ServerMsg and ClientMsg enum and verify the state when in debug mode to benefit from the transition 2020-10-11 22:59:53 +02:00
Marcel Märtens
e8452fafc6 fix naming, replace NotInGame with CharacterScreen 2020-10-11 22:55:38 +02:00
Marcel Märtens
8b40f81ee2 No longer block the main thread for client connections, new clients will be handled by server without waiting.
- Instread we have a dedicated thread that will async wait for new participants to connect and then notify the main thread
- registry no longer sends a view distance with it.
- remove ClientMsg::Command again as it's unused
2020-10-11 22:55:02 +02:00
Marcel Märtens
017e004309 Rename enums to allow a super enum in the future, but i am not yet sure if we want to introduce this yet
```
//This is a helper structure, containing all possible data send over
pub enum ClientMsg {
    Initial(ClientType),
    General(ClientGeneralMsg),
    InGame(ClientInGameMsg),
    NotInGame(ClientNotInGameMsg),
    Register(ClientRegisterMsg),
    Ping(PingMsg)
}
```
2020-10-11 22:49:25 +02:00
Marcel Märtens
b1db5ef488 Redo Network Frontend.
Rather than having a single Stream to handle ALL data, seperate into multiple streams:
 - Ping Stream, for seperate PINGS
 - Register Stream, only used till the client is registered, then no longer used!
 - General Stream, used for msg that can occur always
 - NotInGame Stream, used for everything NOT ingame, e.g. Character Screen
 - InGame Stream, used for all GAME data, players, terrain, entities, etc...

This version does compile, and gets the client registered (with auth too) but doesnt get to the char screen yet.

This fixes also the ignoring messages problem we had, as we are not sending data to the register stream!
This fixes also the problem that the server had to sleep for the Stream Creation, as the Server is now creating the streams and client has to sleep.
2020-10-11 22:49:14 +02:00
Sam
a8f31cbe6f Beam tick rate now more responsive when aiming. 2020-09-29 19:48:14 -05:00
Sam
46563e7008 Added beam system. Added collision code for spherical wedge/cylinder detection. 2020-09-29 19:48:04 -05:00
Joshua Yanovski
103bda2230 Removed redundant code missed in auth merge. 2020-09-22 18:21:31 +02:00
Imbris
829d8a20d1 Add shockwave system to handle shockwaves colliding with other entities 2020-09-19 14:40:10 -05: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
TheThirdSpartan
6dbd1bc132 adding feature requested in issue #153 - displaying your alias in game as 'you' 2020-09-06 19:42:32 +00:00