Commit Graph

1034 Commits

Author SHA1 Message Date
Joshua Barretto
b402e450cf Added rtsim_npc, made herbalists gather ingredients 2023-04-09 19:25:56 +01:00
Joshua Barretto
dfb5e32803 Don't interact forever 2023-04-09 19:25:56 +01:00
Joshua Barretto
364255c7fe Allowed rtsim NPCs to greet nearby actors 2023-04-09 19:25:55 +01:00
Isse
d53b344c23 make merchants use tell, and general cleanup 2023-04-09 19:25:55 +01:00
Joshua Barretto
8ba68e30f3 Merchants no longer buy/sell things they don't know the price of 2023-04-09 19:25:55 +01:00
Joshua Barretto
ea007ff702 Cleaning up 2023-04-09 19:25:55 +01:00
Joshua Barretto
6035234c6e Removed old rtsim 2023-04-09 19:25:55 +01:00
Joshua Barretto
64324262c7 Added /rtsim_purge command 2023-04-09 19:25:55 +01:00
Isse
1c0fdf9228 rtsim personalities 2023-04-09 19:25:55 +01:00
Isse
7ac6c6b453 fix warnings in rtsim 2023-04-09 19:25:55 +01:00
Isse
dda1be58d4 big birds! 2023-04-09 19:25:54 +01:00
Isse
1a117f1331 rtsim vehicles 2023-04-09 19:25:54 +01:00
Joshua Barretto
2aa6ced357 Removed patrol origin from humanoid NPCs 2023-04-09 19:25:54 +01:00
Joshua Barretto
acecc62d40 sync 2023-04-09 19:25:53 +01:00
Joshua Barretto
e8b489a71a sync 2023-04-09 19:25:53 +01:00
IsseW
c026b4d20a travelers say where they're going 2023-04-09 19:25:53 +01:00
Joshua Barretto
558dd99fd3 Added basic rtsim NPC simulation, rtsim controller support 2023-04-09 19:25:51 +01:00
Joshua Barretto
1dc7518200 Added rtsim entity unload hook 2023-04-09 19:25:51 +01:00
Joshua Barretto
c168ff2f9b Added rtsim saving, chunk resources, chunk resource depletion 2023-04-09 19:25:51 +01:00
Joshua Barretto
0cafafdaa7 Began integrating rtsim2 into server 2023-04-09 19:25:51 +01:00
Sam
0966753699 Added repair recipes 2023-04-06 10:54:48 -04:00
Joshua Barretto
63a949b95c Removed spawn town and safe spawn settings 2023-04-01 17:51:05 +01:00
Joshua Barretto
2e3870cf6d Shut up, clippy 2023-03-31 21:17:38 +01:00
Joshua Barretto
9e76561ad6 Spawn new players at the highest point in a chunk 2023-03-31 14:38:32 +01:00
Joshua Barretto
acec45b756 Initial implementation of starting site choice 2023-03-31 14:24:14 +01:00
Isse
c34e5ad4ed Small fixes 2023-03-29 23:11:59 +00:00
Isse
1298fc792b Merge branch 'ProfessionalHobbyist/configurable_day_night_length' into 'master'
Add setting to control length of day/night cycle for servers. ("Fix" for https://gitlab.com/veloren/veloren/-/issues/1798)

See merge request veloren/veloren!3836
2023-03-23 16:33:39 +00:00
Sophia Waggoner
30251221e5 Fix math mistakes (24 * 60 is 1440 not 1400) 2023-03-22 06:19:38 -07:00
Sophia Waggoner
264e4a53f8 cargo clippy + fmt 2023-03-22 05:49:54 -07:00
Sophia Waggoner
7e4ea483e0 Add a ServerConstants to Client and Server structs and sync on register. 2023-03-21 20:28:08 -07:00
Sam
9875008efa Added stance component that persists even after sheathing weapon (does not yet work with M1 replacement). 2023-03-21 19:29:34 -04:00
Ben Wallis
45c8934b79 Merge branch 'xvar/queue-char-deletes' into 'master'
Changed character deletion to go via batch update

See merge request veloren/veloren!3562
2023-03-12 23:21:54 +00:00
Ben Wallis
6eedc02286 Changed character deletion to go via batch update 2023-03-12 23:21:53 +00:00
Sam
89aa934c3c Initial work 2023-03-11 16:45:10 -05:00
Thegaming Life
5ddc55be52 replaced CHUNK_SIZE by RECT_SIZE everywhere, and change the use (and remove... 2023-03-06 21:03:35 +00:00
flo
bf81ffc029 frost_gigas 2023-02-15 00:10:37 +00:00
Ellen Sun
d774319cf0 cleanup and fixes + added change to CHANGELOG.md 2023-01-27 20:32:41 -05:00
Ellen Sun
74cb514094 move client commands to voxygen + add Admin to be shared with client for permissions + unit test for alphabetical server command 2023-01-27 20:31:56 -05:00
Avi Weinstock
78845a0d73 Implement potion sickness, which causes diminishing returns on healing from potions. 2023-01-19 15:06:12 -05:00
Nils Ascheuer
43b61ea6d9 #1725 do not clear target during trading. 2023-01-18 08:15:13 +01:00
Marcel Märtens
dad73ba2a3 fix clamp clippy errors 2022-11-28 14:26:27 +01:00
Marcel Märtens
0ab7a2543e fix clippy errors 2022-11-28 14:08:11 +01:00
holychowders
dc9074ae6b Revert "[REVERT ME] Display debug information for code reviewers."
This reverts commit bae5c5b675.
2022-11-20 15:51:09 -06:00
holychowders
23dd1d1be3 MVP for searching target's last known position. 2022-11-20 02:36:11 -06:00
holychowders
1331b046b5 Rename mouthful variable. 2022-11-17 19:21:22 -06:00
holychowders
2c745bed30 Update target's last known position.
Before, it was set only upon targeting.
2022-11-16 20:54:32 -06:00
holychowders
bae5c5b675 [REVERT ME] Display debug information for code reviewers. 2022-11-16 20:12:14 -06:00
holychowders
61aa49fa66 Add last_known_pos to Target struct. 2022-11-16 18:26:07 -06:00
holychowders
95fd092e26 Fix awareness changes. 2022-11-12 12:12:32 -06:00
holychowders
571b07d54a Remove dt and multiplication by 30. 2022-11-06 13:10:17 -06:00
holychowders
641a5c4cda Merge branch 'master' of gitlab.com:veloren/dev/veloren into holychowders/agent_awareness2 2022-10-29 13:21:27 -05:00
holychowders
3d4ad29d1d Flee if attacked even if attacker is not close. 2022-10-28 21:31:49 +00:00
holychowders
3f3f8605af Merge branch 'master' of gitlab.com:veloren/dev/veloren into holychowders/agent_awareness2 2022-10-28 15:16:44 -05:00
holychowders
4426972057 Refer to the fully aware state of an agent as "alert". 2022-10-28 15:03:11 -05:00
Sam
9b4dcbfdde Heavy stance AI 2022-10-27 20:07:04 -04:00
Sam
c97bfdfb94 Defensive stance AI 2022-10-27 20:07:01 -04:00
Sam
7dcb3582e6 Sword AI for offensive abilities 2022-10-27 20:07:01 -04:00
Sam
4ab3abfc07 Balanced stance AI 2022-10-27 20:07:01 -04:00
Timothy Finnegan
1922d69154 Ran Cargo fmt 2022-10-24 19:52:37 -07:00
Timothy Finnegan
5e5e1066eb Added support for multiple timers, conditions, and counters in a single action node. 2022-10-23 18:31:09 -07:00
holychowders
65b6bf62f9 Revert "[REVERT THIS] Show awareness info via agent chat for code reviewers."
This reverts commit ed991b681ae56bcb414d24f773bc540dc390b5fa.
2022-10-21 20:25:55 -05:00
holychowders
1121cb5d3f [REVERT THIS] Show awareness info via agent chat for code reviewers. 2022-10-21 20:25:54 -05:00
holychowders
7502cd664a Have agents update awareness of targets.
This is preliminary and has no visible effect.
2022-10-21 20:25:54 -05:00
Tavo Annus
fcd7447991 Fix npcs untargeting trade partner while in trade 2022-10-07 15:17:49 +03:00
Avi Weinstock
e6576f0cf3 Make the trading AI for pets only accept food. 2022-09-30 15:11:03 -04:00
Avi Weinstock
60f5383f8b Address comments for MR 3633. 2022-09-30 14:51:49 -04:00
Avi Weinstock
c62bc0dd0d Allow pets to be traded with. 2022-09-30 14:51:49 -04:00
Marcel Märtens
cf6a764aa4 update toolchain to 2022-09-23 2022-09-25 15:58:32 +02:00
Samuel Keiffer
59d8d287d9 Merge branch 'seachapel_npc_work' into 'master'
seachapel npc work

See merge request veloren/veloren!3599
2022-09-22 01:04:01 +00:00
flo
a37e1f8d99 seachapel npc work 2022-09-22 01:04:01 +00:00
Joshua Yanovski
57ea753bff Merge branch 'sharp/parallel-ingame' into 'master'
Parallelize ingame messages.

See merge request veloren/veloren!3627
2022-09-21 19:44:40 +00:00
Joshua Yanovski
1c14ec7ee1 Parallelize ingame messages. 2022-09-21 10:25:57 -07:00
Joshua Yanovski
67231aff90 Remove persistence loading error from SkillSet.
This is needed (for now) in order to parallelize ingame_chat, because
one of the handled messages updates this value on the server.  It turns
out that the value is not actually used on the server, only the client,
so this was mostly a matter of threading this back to the correct place.
Additionally, we took the opportunity to modify the UI to not log you
into the game until your character was confirmed to be loaded, which
was a todo item that lets us simplify some error handling logic and
remove stuff from global state.
2022-09-21 09:29:25 -07:00
Sam
c228d9cc3f Addressed comments 2022-09-17 13:10:01 -04:00
Sam
525630c37a Moved some agent code into separate crate to facilitate hot reloading of that agent code. 2022-09-16 22:13:18 -04:00
Joshua Yanovski
cafdcad8ce Merge branch 'sharp/improve-msg' into 'master'
Improve some server system performance

See merge request veloren/veloren!3614
2022-09-15 04:30:31 +00:00
Joshua Yanovski
2c15d0af56 Reduce overhead of messaging systems. 2022-09-14 21:04:53 -07:00
James Melkonian
5d5cb28b59 Fix pet aggro 2022-09-14 19:48:34 +00:00
flo
dc688bccb9 fix_salamander_and_elbst 2022-09-13 17:32:53 +00:00
Joshua Yanovski
986d104faa Update Rust toolchain. 2022-09-08 15:43:53 -07:00
Joshua Yanovski
f5aee1d2a7 Allow mods/admins to log in when server is full.
As a side effect, this moves the initial game server sync message into
the login code, since that's the first place we can check for admin
permissions and we want to avoid sending large messages to users who are
not authenticated (especially if the player cap has been reached;
previously, the player cap check limited the damage that could be done
by unauthenticated players).

Some fallout from this is that we don't synchronize the Player component
anymore, which had some minor effects on voxygen.  This update also
breaks Torvus, since Client::new now expects the username and password
to be provided from the getgo--an accompanying MR will be submitted to
fix it.
2022-09-06 21:42:31 -07:00
juliancoffee
68da12ab6b Reduce traversal_config min dist
* Fix LOS pillar cheesing
2022-09-05 02:17:15 +03:00
Imbris
334937568e Add an entity view distance setting that allows limiting the distance
entities are synced from and displayed in.

NOTE: Syncing entities work at the granularity regions which are
multi-chunk squares but the display of entities in voxygen is limited in
a circle with the radiues of the supplied distance.

Additional details and changes:
* Added `ViewDistances` struct in `common` that contains separate
  terrain and entity view distances (the entity view distance will be
  clamped by the terrain view distance in uses of this).
* View distance requests from the client to the server now use this
  type.
* When requesting the character or spectate state the client now passes
  its desired view distances. This is exposed as a new parameter on
  `Client::request_character`/`Client::request_spectate`. And the client
  no longer needs to send a view distance request after entering these
  states. This also allows us to avoid needing to initialize `Presence`
  with a default view distance value on the server.
* Removed `DerefFlaggedStorage` from `Presence` and `RegionSubscription` since the
  change tracking isn't used for these components.
* Add sliders in voxygen graphics and network tabs for this new setting.
  Show the clamped value as well as the selected value next to the
  slider.
* Rename existing "Entities View Distance" slider (which AFAIK controls
  the distance at which different LOD levels apply to figures) to
  "Entities Detail Distance" so we can use the former name for this new
  slider.
2022-08-25 23:24:43 -04:00
Imbris
c36d6e873f Fix issue with the region subscription system not updating on view
distance changes (until the player crossed a chunk boundary and
triggered the normal update).

This introduces a `ViewDistance` struct that provides an abstraction
around limiting the rate the view distance can be cycled up and down.
This helps avoid unnecessary sending, deleting, and then resending of
synced things like entities (the client will still delete its terrain
locally and re-request it though).

The second part of this fix is storing the last view distance in the
`RegionSubscription` struct and then updating region subscriptions if
this doesn't match the current view distance in the `Presence`
component.
2022-08-25 23:24:43 -04:00
flo
e882e62c08 seachapel 2022-08-24 21:50:53 +00:00
Tormod Gjeitnes Hellen
e306b3bfe3
Have the ambushers say something.
Very unsure about the way I did this...
2022-08-17 23:50:09 +02:00
Tormod G. Hellen
753a51e683
Make selfish bastards ambush people when they're alone. 2022-08-17 23:50:09 +02:00
Samuel Keiffer
9112e2177a Merge branch 'vfoulon80/agent-behavior-tree' into 'master'
Refactor agent's behavior tree

See merge request veloren/veloren!3500
2022-08-11 20:46:14 +00:00
Vincent Foulon
b1baa09815
Address review comments 2022-08-11 21:15:46 +02:00
Joshua Barretto
602de267b1 Perform validation on all kinds of chat message 2022-08-11 11:11:33 +01:00
Joshua Barretto
4e103c433f Simplified and improved alias validation 2022-08-11 11:11:31 +01:00
Joshua Barretto
52bd7b2485 Added automod 2022-08-11 11:09:52 +01:00
IsseW
87821d5c1d force update counter 2022-08-09 19:22:09 +02:00
Isse
0471e78f41 spectate mode :D 2022-08-09 18:43:13 +02:00
Vincent Foulon
c1dcb6e412
Fix missing translation key in interaction 2022-08-07 21:16:31 +02:00
Vincent Foulon
b82da6acdb
Reimplement !3508 2022-08-07 21:11:58 +02:00
Vincent Foulon
62568d2229
Add documentation 2022-08-07 20:54:09 +02:00
Vincent Foulon
3203051fc3
Move interaction-cancelling code in interaction behavior + includes missing fix from !3467 2022-08-07 20:54:08 +02:00
Vincent Foulon
4f53d055de
Reimplement !3467 + fix event being pushed in front of agent inbox 2022-08-07 20:54:07 +02:00
Vincent Foulon
6994b026b1
Remove unused import 2022-08-07 20:54:06 +02:00
Vincent Foulon
faf2b13ac1
Move recv_interactions into BehaviorTree + cleanup functions ^& warnings 2022-08-07 20:54:02 +02:00
Vincent Foulon
d105d7063c
Cleanup prof_span + finish unfinished module rename 2022-08-07 20:50:37 +02:00
Vincent Foulon
6fae4efd45
PoC: Refactor agent's behavior tree 2022-08-07 20:50:24 +02:00
juliancoffee
d000cc90a1 Migrate code to new i18n API 2022-08-06 21:56:01 +03:00
Vincent Foulon
8862258f61 Deny any interaction received during hostile_tree 2022-08-06 18:31:42 +00:00
Forest Anderson
9d67deeeb7 Reverted removal of msg 2022-07-17 13:32:53 -04:00
tygyh
120ee6b6c0 Fix typos 2022-07-15 18:59:37 +02:00
tygyh
cbe4d9d807 Remove unused imports 2022-07-15 16:00:27 +02:00
tygyh
5e5698249b Remove unnecessarily qualified paths 2022-07-15 14:49:46 +02:00
Isse
9edfbaa29d fix agent aggression when not recieving damage from attack 2022-07-13 19:46:48 +02:00
Marcel Märtens
50d85940d8 implement a event channel that posts regular information on events for Participants 2022-07-03 21:21:59 +02:00
James Melkonian
8439f3ef6d Wiring System Documentation and Refactoring 2022-06-29 20:28:09 +00:00
Samantha W
57ab1c5767 Add a client-side mutelist 2022-06-14 20:35:01 +00:00
Joshua Barretto
b555381677 Added server gameplay settings, ability to toggle explosion burns off 2022-06-14 14:24:08 +01:00
N A
3d24ac79e3 make animal NPC's eat food on spot 2022-06-07 07:25:27 +00:00
terrarier2111
45efdb6602 Implement group owned loot 2022-06-04 17:16:12 +00:00
Ben Wallis
d71f2ff682 Fixed animals picking up non-owned non-consumable loot 2022-05-31 15:57:58 +01:00
Sam
5e57eabd11 Code changes and msm 2022-05-30 20:25:31 -04:00
N A
c09f070241 Change animal species to have only one inventory slot 2022-05-29 23:53:00 +00:00
Ben Wallis
34f580dfaa Introduced loot ownership rules to combat loot stealing by players
* Added `LootOwner` component used to indicate that an `ItemDrop` entity is owned by another entity
* A loot winner is now calculated after EXP allocation using the EXP per entity for weighted chance distribution
* Used existing Inventory Full overitem text to show "Owned by {player} for {seconds}secs" when a pickup fails due to a loot ownership check
* Updated agent code to take into account loot ownership when searching for `ItemDrop` targets to pick up
* Added `loot` ECS system to clear expired loot ownerships
2022-05-28 12:06:49 +00:00
StereoJunkie
3015b4a29d Non-humanoid picking up consumables when hungry 2022-05-27 16:57:53 +00:00
N A
1f82dab948 NPC itemdrop picking up 2022-05-19 22:06:44 +00:00
Sam
534c7dc8b9 Simplified item key (no assets) 2022-05-18 16:28:06 -04:00
Sam
08b7bb781f Changed Item to have ItemBase instead of ItemDef. NO ASSETS. 2022-05-16 15:11:10 -04:00
Marcel Märtens
1b76874342 renamings and using unstable sort according to a code review 2022-05-11 21:50:41 +02:00
Marcel Märtens
637e63fbe2 switch from a Component to a Ressource with an Eventbus
Set CHUNK_SITE to 10 which results in a mean of 13ms per Slowjob. Its good if it stays under 30ms so it has less influence on ticks.
Some performance values measured with a AMD Ryzen 1700X:
 - voxygen and server and swarm (25 clients, 10 vd) on one machine.
 - total runtime was 240s
 - CHUNK_GENERATOR total time is 486s with a mean of 40ms
 - CHUNK_SERIALIZER total time is 18.19s with a mean of 13ms, so in total its a order of magnitude lower
   Trancy confirms this, the Serialize backlog is usually handled within 1-2 ticks.
 - terrain::sys total time 1.2s, mean 188us
 - msg::terrain::sys total time 812ms, mean 125us
 - terrain::sync total time 12ms, mean 1,85us
 - chunk_serialize::sys total time 69ms, mean 10us
 - chunk_send::sys total time 50ms, mean 7us

so all in all total time for serializsation is 20.33 of which 89% are spend outside of the ECS
2022-05-11 21:04:17 +02:00
Marcel Märtens
efe284a673 make the client request a few more chunks to compensate for the delay in serialisation 2022-05-11 20:22:24 +02:00
Marcel Märtens
8e47d02f8d add metrics and trigger slowjobs in chunks of 25 2022-05-11 20:22:23 +02:00
Marcel Märtens
9b53693783 switch to a system where chunk_serialize will start a SlowJow that is then consumed by chunk_send 2022-05-11 20:22:21 +02:00
Marcel Märtens
6c756c2440 first implementation of defering serialisation 2022-05-11 20:22:19 +02:00
Joshua Barretto
e02f8aee65 Merge branch 'zesterer/lod-objects' into 'master'
LoD Objects (inc. Trees)

See merge request veloren/veloren!3367
2022-05-11 14:56:12 +00:00
Samuel Keiffer
1bd33bb997 Merge branch 'holychowders/streamline_stealth_coefficient' into 'master'
Distinguish armor and sneaking stealth; Show stealth as percentage in Stats UI.

Closes #1525

See merge request veloren/veloren!3352
2022-05-10 11:41:49 +00:00
Joshua Barretto
f35c98d1a1 Added LoD distance setting 2022-05-10 12:40:06 +01:00
Joshua Barretto
b3126ca687 Initial implementation of LoD trees 2022-05-10 12:38:36 +01:00
IsseW
022fa3d556 Clamp chances for gen bool in agent.rs 2022-05-10 08:44:26 +02:00
Forest Anderson
cea55143ce Change outcomes to eventbus 2022-05-09 19:58:13 +00:00
holychowders
e473c47bcf Distinguish stealth from armor and stealth from sneaking. Also fixes #1525.
- Armor and sneaking have exclusive effects on overall stealth, rather
  than armor taking effect only while sneaking.

Gameplay:
- Agents factor in stealth from armor in all cases, not only when sneaking.
- Max stealth takes place when sneaking (final multiplier of `0.7`) and with stealth from armor up to `0.7` (`0.3` multiplier), resulting in a max distance modifier of about `0.5`, approximately what it was previously.
- Min stealth score from armor is now 0 instead of 2.

Internals:
- Stealth getter accounts for sneaking in final calculation, not just
  armor.
- Prevents potential division by zero.
- Stealth getter returns value that should be multiplied instead of divided.
- Legitimized stealth as a score between 0 and 1.

Notes:
- FIXME: Someone more familiar with the different armor types may want to adjust their stealths.
  - Armor stealths seem to be valued between `0.0` and `1.0`, and I've reinforced this in the code. However, it is possible, particularly for the `Dragonscale` armors, to cumulatively reach a value of `2.0`.
2022-05-06 13:15:46 -05:00
holychowders
9c68fbbeed Fix agents not hearing sounds due to reduced listen_dist, caused by commit a6955e5af.
- `listen_dist` has been restored to normal and the behavior intended by
  the trouble commit has been much more properly encoded.
2022-05-04 21:22:19 -05:00
Marcel
84ab219cf3 Merge branch 'xMAC94x/update-toolchain' into 'master'
update toolchain to `nightly-2022-04-25`

See merge request veloren/veloren!3343
2022-05-03 14:07:49 +00:00
Marcel Märtens
697673bcca update toolchain to nightly-2022-04-25 2022-05-03 15:22:28 +02:00
holychowders
eab010b8c4 Change can_see_entity() parameter ordering to be consistent with other action nodes.
- Moved `agent` and `controller` to front.
2022-05-01 19:18:44 -05:00
holychowders
f2b5ea600e Revert parameter re-ordering of flee() (included in commit 9b6616fc0) to be consistent with other action nodes. 2022-05-01 19:18:44 -05:00
holychowders
a6955e5afb Re-add listen_dist check in choose_target() and add randomness to simulate agents detecting entities directly behind them. 2022-05-01 19:18:43 -05:00
holychowders
17f7353083 Move more expensive perception check below validity check in filter; Reduce number of component fetches. 2022-05-01 19:18:42 -05:00
holychowders
5d78294141 Pass positions and bodies into entities_have_line_of_sight() instead of fetching within. 2022-05-01 19:18:42 -05:00
holychowders
706ec91e69 Fix: Add alignment passivity check in is_enemy(). 2022-05-01 19:18:25 -05:00
holychowders
97e0e39887 Reduce function names and remove unnecessary component fetch from function. 2022-05-01 19:05:28 -05:00
holychowders
455cab0ee7 Address code review. 2022-05-01 18:44:10 -05:00
holychowders
995504be26 Have line-of-sight checks explicitly account for eye-height for entities. 2022-05-01 18:23:27 -05:00
holychowders
dda85e4bc3 Address code review. 2022-05-01 18:23:23 -05:00