Commit Graph

1034 Commits

Author SHA1 Message Date
holychowders
645bbf7b0d Refactor: re-order function signature to make more sense. 2022-05-01 17:30:23 -05:00
holychowders
d3873e357e Agent: Use FOV when scanning for hostile targets and refactor choose_target().
- Refactors `choose_target()`, renaming it and extracting functions with more meaningful names and more correct behavior.
- Adds FOV for agents scanning for hostile targets.
2022-05-01 17:29:45 -05:00
holychowders
914b44c714 Fix villagers seeing cultists and familiar enemies through objects. 2022-05-01 15:06:43 +00:00
Youssef Fahmy
aec866e5ec Balance tweaks 2022-04-23 14:54:01 +00:00
holychowders
cc409fd537 Extract some retargeting logic. 2022-04-11 11:54:09 -05:00
James Melkonian
b590bc50d7 Fix #1516 Add else branch to allow for agent idling when no sound events 2022-04-05 03:40:26 +00:00
Tormod G. Hellen
cb88648cca Give NPCs random Big Five personalities. 2022-04-04 20:17:50 +02:00
holychowders
39d5a73c10 Fix deadwood not attacking if target is at a different elevation than deadwood. 2022-03-27 20:02:38 +00:00
Justin Shipsey
aee1aa7c1d Merge branch 'holychowders/prevent_undesired_movement_on_agent_interaction' into 'master'
Agent Perception: Improve Awareness System

See merge request veloren/veloren!3263
2022-03-26 00:28:18 +00:00
holychowders
a88d8ada0f Comment out unused awareness increment/decrement calls and un-nest conditional for early return. 2022-03-19 12:02:29 -05:00
Manuel Schmidbauer
0037518472 Impl #1357: Agent chase abort
- Adds util funcs to calculate benefit of continue pursue vs letting
target escape
- Hooks util funcs into agent's hostile tree
2022-03-14 18:06:57 +01:00
holychowders
c6bc6b63ee Prevent enemy agents from reacting to sounds from too far away and remove an inconsequential distance check. 2022-03-12 18:13:02 -06:00
holychowders
cc808251e6 Make Enemy agents flee from dangerous sounds instead of follow. 2022-03-12 16:58:06 -06:00
holychowders
3ffb1a7706 Also restrict when Enemy agents respond to sounds and fix potential conditional bug. 2022-03-12 16:58:06 -06:00
holychowders
8d98ade15e Agent perception: Make handling of sounds and awareness more intuitive.
When a sound was received in `idle_tree()`, awareness would be
incremented, causing a call to `handle_elevated_awareness()`, which
handled sounds heard. Instead, just `handle_sounds()` when they are heard and
increment awareness as part of hearing them.

The code more straightforwardly shows the agent first hearing a sound and then
becoming more aware based on that.
2022-03-12 16:58:06 -06:00
holychowders
df91f665d7 Agent Perception: Restrict when idling agents respond to sounds.
- Prevent utterances and other sounds from causing undesired jitters and
  fleeing, such as those caused by greeting villagers.
- Agents will no longer flee from quieter weapon sounds such as melee.
2022-03-12 16:58:06 -06:00
Samuel Keiffer
a411db17bf Merge branch 'tygyh/Refactor-path_toward_target' into 'master'
Tygyh/refactor path toward target

See merge request veloren/veloren!3241
2022-03-08 16:43:37 +00:00
Dr. Dystopia
1810998641 Remove redundant 'pos' variable 2022-03-05 09:54:01 +01:00
Dr. Dystopia
1cb7a083e7 Remove redundant if-statement 2022-03-05 09:53:28 +01:00
Dr. Dystopia
4aab1eea43 Remove redundant 'tgt_pos' variables 2022-03-01 22:54:44 +01:00
Dr. Dystopia
5aa1d3ceaf Rename 'vec3' parameter to 'pos_difference' 2022-03-01 22:47:01 +01:00
Dr. Dystopia
f99a637606 Rename 'dist_to_pos' variable to 'pos_diff' 2022-03-01 22:44:55 +01:00
Dr. Dystopia
50f877bdf6 Rename 'dist_to_pos_xy' variable to 'dist_xy' 2022-03-01 22:42:03 +01:00
Dr. Dystopia
83f46658a9 Fix pathing execution 2022-03-01 22:40:43 +01:00
Dr. Dystopia
0a3de57be6 Rename 'distance_to_target' variable to 'pos_difference' 2022-03-01 22:38:35 +01:00
Dr. Dystopia
4d24ff0027 Rename 'target_position' clojure to 'partial_path_tgt_pos' 2022-03-01 22:33:25 +01:00
InfRandomness
042d258161 Modify message catch-all arms 2022-02-27 23:08:47 +00:00
Imbris
7be5b4c051 Merge branch 'imbris/fix-possesion-comp-sync' into 'master'
Improve possession edge cases

See merge request veloren/veloren!3233
2022-02-27 20:10:16 +00:00
N A
fc9c3c3be9 worth_choosing refactor 2022-02-27 19:21:21 +00:00
Imbris
e52159f638 Remove original character from game world when possessing to make persistence more robust. 2022-02-27 13:47:13 -05:00
Imbris
10803a9735 Stop using Character presence kind when possessing so that persistence doesn't get messed up. 2022-02-27 13:47:12 -05:00
Imbris
c2ad763b9c Handle removing/inserting SyncFrom::ClientEntity components properly during possession. 2022-02-27 13:47:12 -05:00
Dr. Dystopia
7e70d7648e Dereference 'tgt_pos' variables 2022-02-27 10:36:01 +01:00
Dr. Dystopia
a39d514bae Replace 'tgt_data' parameter with 'tgt_pos' parameter 2022-02-27 10:19:45 +01:00
Imbris
fb2f731ac3 Small fix 2022-02-26 01:05:28 -05:00
Dr. Dystopia
75322ddfc0 Extract 'dist_to_pos' variable 2022-02-25 22:00:42 +01:00
Dr. Dystopia
ee26778118 Extract 'dist_to_pos_xy' variable 2022-02-25 21:57:29 +01:00
Dr. Dystopia
019d619cf6 Extract 'spacing' variable 2022-02-25 21:48:29 +01:00
Dr. Dystopia
15bea26823 Extract 'target_position' clojure 2022-02-25 21:44:43 +01:00
Dr. Dystopia
d921e1e3ea Extract 'pos' variable 2022-02-25 21:40:42 +01:00
Dr. Dystopia
e2d42207a4 Update 'path_toward_target' doc comment 2022-02-25 21:37:01 +01:00
Dr. Dystopia
4aebe19d94 Extract 'distance_to_target' variable 2022-02-25 21:35:50 +01:00
Dr. Dystopia
0dad86e1ca Replace flag parameters with 'Path' enum 2022-02-25 21:35:35 +01:00
Isidor Nielsen
a685a353cb Shared and persistent waypoints 2022-02-20 10:10:18 +00:00
jshipsey
e569ee24c3 fix 2022-02-17 00:58:25 -05:00
Marcel
b09698b8ac Merge branch 'shouvik/prevent_empty_trades' into 'master'
Fixes #1452 - Prevents empty trades

Closes #1452

See merge request veloren/veloren!3202
2022-02-16 21:41:26 +00:00
ShouvikGhosh2048
d72f43190b Fixes #1452 - Prevents empty trades 2022-02-16 21:41:26 +00:00
James Melkonian
c906c9e2dc Fix NPC humanoids not rolling when on fire 2022-02-15 08:28:37 +00:00
Sam
c77270b799 Addressed feedback 2022-02-12 20:52:01 -05:00
jshipsey
2eee43865f chieftain anims 2022-02-11 02:18:48 -05:00
Sam
4991f7ecea Gnarlign site tweaks and chieftain buff 2022-02-11 01:23:09 -05:00
Sam
0031aa6f5f Chieftain AI and attacks 2022-02-10 14:58:35 -05:00
Sam
fcb0f8d8f0 Wood golem attacks and ai 2022-02-10 14:58:32 -05:00
Sam
e044bf5091 Mandragora attacks and ai 2022-02-10 14:58:32 -05:00
Sam
f1801560fa Deadwood ai 2022-02-10 14:58:31 -05:00
Sam
40bb74c42f Gnarling stalker AI 2022-02-10 14:58:28 -05:00
Sam
c15fb2b68f Better mugger AI 2022-02-10 14:58:28 -05:00
Sam
e1f164d099 Initial AI for gnarling logger/mugger. 2022-02-10 14:58:27 -05:00
Tormod G. Hellen
a00121bedf Make entities protect owned bodies. 2022-02-08 22:53:00 +01:00
Tormod G. Hellen
82273f0f36 Make friendly creatures defend each other. 2022-02-08 22:32:25 +01:00
Marcel
72e270368d Merge branch 'aweinstock/resolve-clippy-lints' into 'master'
Globally allow more clippy lints and reconfigure complexity to be less verbose

See merge request veloren/veloren!3052
2022-01-30 22:53:36 +00:00
James Melkonian
44865d99ff Fix guards menacing instead of defending villagers 2022-01-30 13:14:24 -08:00
Avi Weinstock
f3f08936d8 Decrease too-many-arguments-threshold and type-complexity-threshold. 2022-01-30 20:16:21 +01:00
Avi Weinstock
5f8957d8ef Globally allow the clippy lints {new_without_default, many_single_char_names, identity_op, type_complexity, too_many_arguments}. 2022-01-30 20:16:20 +01:00
juliancoffee
ed593cd0cb Adress review №2 2022-01-28 00:02:34 +02:00
juliancoffee
e004fba9da Adress review 2022-01-28 00:02:34 +02:00
juliancoffee
4a4f2f8d8f Loadout Update: Managed Rng
Rewrite EntityInfo api to take Rng from caller.
2022-01-28 00:02:34 +02:00
juliancoffee
d5b927602a Loadout Udpate: NpcData part
Actually implement creating npc with new EntitytInfo by chaning
CreateNpc.loadout to CreateNpc.inventory and cleaning code in
NpcData::from_entity_info.
2022-01-28 00:02:34 +02:00
Dr. Dystopia
b0d6a68e8c Create 'push_initiate_invite' function 2022-01-26 21:23:37 +01:00
Dr. Dystopia
027154a5be Create 'push_invite_response' function 2022-01-26 21:16:29 +01:00
Dr. Dystopia
0516526985 Create 'push_utterance' function 2022-01-26 21:12:19 +01:00
Dr. Dystopia
765e858c19 Create 'push_cancel_input' function 2022-01-26 21:07:36 +01:00
Dr. Dystopia
b2b208687c Create 'push_basic_input' function 2022-01-26 20:09:59 +01:00
Dr. Dystopia
bc0a8c7704 Create 'push_action' function 2022-01-26 19:52:19 +01:00
Dr. Dystopia
f47184df85 Use 'push_event' function in more places 2022-01-26 19:40:18 +01:00
James Melkonian
2671f824d0 Prohibit accidental cliff diving by NPCs 2022-01-25 16:25:40 +00:00
Snowram
a6e396e29a Stunned and jump anims, stats, spawns, more IA work 2022-01-20 00:53:29 +01:00
Snowram
fd3ed89899 More arthropod animations 2022-01-19 19:01:15 +01:00
Snowram
38bbd60fd2 Arthropod basic attack 2022-01-19 19:01:14 +01:00
Snowram
1e6ead4005 Arthropod charge 2022-01-19 19:01:13 +01:00
Snowram
02ed6ffd60 More arthropod work 2022-01-19 19:01:13 +01:00
Snowram
ae71f2e4f0 Adds poisoned debuff (energy change over time) 2022-01-19 19:01:13 +01:00
Snowram
f67bf2a539 Adds arthropod skeleton 2022-01-19 19:01:11 +01:00
Imbris
13d970bf6f Rename SyncFrom::AllEntities to SyncFrom::AnyEntity for more clarity, add more comments for component syncing code, address MR comment 2022-01-19 00:56:42 -05:00
Imbris
7f7dc5ff8a Add ability to plot component update counts each tick in tracy, controlled by the PLOT_UPDATE_COUNTS env var 2022-01-19 00:56:42 -05:00
Imbris
aa122c1a18 Sync some components only from the client's own entity. Vastly reduce the amount of places to modify when adding/removing a component from network syncing. 2022-01-19 00:56:42 -05:00
James Melkonian
ac6f53922f Move agent code into separate files 2022-01-18 03:02:43 +00:00
Joshua Barretto
c9762568d6 Don't block teleportation when mounted 2022-01-17 09:47:29 +00:00
Joshua Barretto
3b7ea72a9c Fixed review comments 2022-01-16 21:13:13 +00:00
Joshua Barretto
043016a433 Don't try to mount unmountable entities, clippy fixes and fmt 2022-01-16 17:53:14 +00:00
Joshua Barretto
504e2a38d5 Added overhead hints, smoother mount movement 2022-01-16 17:53:14 +00:00
Joshua Barretto
2923d3cd2b Made NPCs prefer food when idle 2022-01-16 17:53:13 +00:00
Joshua Barretto
5c37786185 Improved interpolation for riders 2022-01-16 17:53:13 +00:00
Joshua Barretto
6931514ae5 Made teleport commands redirect to mount 2022-01-16 17:53:13 +00:00
Joshua Barretto
537cc38b5e Fixed lantern position when mounting 2022-01-16 17:53:13 +00:00
Joshua Barretto
b3e2d825ed Overhauled mounting to make it more reliable 2022-01-16 17:53:13 +00:00
Sam
4c3771a1a0 Persistence of auxiliary abilities. 2022-01-15 21:42:34 -05:00
Sam
9b6c76bd3b Removed health scaling that bypasses the skill system. 2022-01-15 11:58:28 -05:00
jshipsey
1fac6359de more gnarling weapons 2022-01-13 23:20:56 -05:00
jshipsey
7f928d0bc0 woodengolem, chieftain, icedrake, blowgun 2022-01-13 23:20:52 -05:00
Sam
efbc5f9b75 UI notifying player that their skillset has been invalidated. 2022-01-03 19:55:06 -05:00
Sam
27dd7b4391 Refactored skills code. 2022-01-03 19:55:01 -05:00
Imbris
b255f0ee0f put Client::tick_network function behind feature, remove unnecessary cloning of deleted entity vecs in entity sync, move prepare_send hack that avoids locking during message serialization from send_fallible to send, add job.cpu_status par mode adjustment around parallel section 2021-12-26 12:04:08 -05:00
Imbris
6547a6bf5e Parallelize entity sync loop over regions. 2021-12-25 19:24:12 -05:00
Imbris
bf48bd5346 update toolchain to nightly-2021-12-19 2021-12-23 13:04:24 +01:00
Joshua Barretto
e3203080ed Added Calendar for temporal events based on the real-world calendar 2021-12-20 18:03:52 +00:00
Ben Wallis
9a4e6b81d3 Merge branch 'Character-editting' into 'master'
Character editing

See merge request veloren/veloren!3059
2021-12-20 15:24:43 +00:00
Dr. Dystopia
3a52599e49 Clean up 2021-12-15 21:55:53 +01:00
Dr. Dystopia
408fe1e6b6 Begin creating character editing 2021-12-13 01:13:33 +01:00
holychowders
b40d94dd53 Re-allow and improve fleeing. 2021-12-07 20:18:03 -06:00
Jonathan Berglin
596307c9b7 Remove unused clippy suppressions 2021-12-05 17:59:02 +00:00
Marcel
3fa2dab3aa Merge branch 'xMAC94x/update-toolchain' into 'master'
xMAC94x/update toolchain

See merge request veloren/veloren!3027
2021-11-26 16:52:51 +00:00
James Melkonian
ab99126a7b Floor merchant cost percentages and display as whole numbers 2021-11-25 01:32:20 +00:00
Marcel Märtens
ef40ebe0c8 update toolchain to nightly-2021-11-24 2021-11-24 10:09:22 +01:00
Ben Wallis
022c1417b6 EXP on kill is now shared between damage contributors. A "damage contributor" is either an individual entity, or a group - depending if the attacker is in a group. This means that not only does the "killing blow" no longer get 100% of EXP, but multiple groups and individuals all receive their fair share of EXP on death (assuming they are still within range of the entity when it dies).
Damage from a given individual or group only counts towards a kill for 10 minutes since that individual or group's last damage to the entity - after this period their damage contribution is removed. This avoids the list of damage contributors growing excessively large for an entity that does a lot of combat but never dies.

EXP sharing within groups is unchanged - the difference is simply that the input to this calculation may be less than 100% of the base EXP reward for the kill if other individuals or groups contributed damage.
2021-11-13 20:46:45 +00:00
Sam
040d70c750 Final fixes. 2021-11-11 23:11:17 -05:00
Sam
a288f9ee43 Addressed further review. 2021-11-11 22:37:37 -05:00
Sam
dfcb8c8519 Addressed review feedback. 2021-11-11 18:10:22 -05:00
Sam
b678f7f46e Added some client methods for changing abilities to hook into. 2021-11-11 01:55:32 -05:00
Sam
4309e1ff9b Did voxygen stuff for ability pool. 2021-11-09 21:20:41 -05:00
Marcel
bcba2aae7e Merge branch 'juliancoffee/fix_testserver' into 'master'
Make test-server compile again

See merge request veloren/veloren!2974
2021-10-30 09:27:27 +00:00
Sam
aad2384622 Addressed review, changelog. 2021-10-29 17:57:00 -04:00
Sam
2b447852fd Added min fall off to explosions. 2021-10-29 17:37:02 -04:00
juliancoffee
1dc53dad3a Make test-server compile again 2021-10-29 23:49:37 +03:00
Kemper
034041fd4f Aim fireballs at feet
AI aims fireballs at the target’s feet, for a slight improvement
in splash damage.
2021-10-27 19:50:50 +00:00
ubruntu
e6bfce99bb Use stealth stat on armors 2021-10-24 05:31:49 +00:00
Bryant Deters
b2bd43f4d3 Sneak with weapons drawn 2021-10-18 14:53:55 -05:00
socksonme
8099b516a9 Renamed emit_alarm to emit_scream 2021-10-16 19:11:57 +03:00
socksonme
2b36a957ac small code quality change 2021-10-15 23:23:45 +03:00
socksonme
c631341da9 Refactored SoundKind and UtteranceKind 2021-10-15 22:49:25 +03:00
antoniomuso
761ae8f69d Make merchants send the player a trade request when interacted with 2021-10-09 21:14:01 +02:00
Imbris
8987389e8a Submit chunk requests to the generator within the terrain system right before receiving new chunks, so that duplicate work is not done for chunks that just finished but were not yet added to the terrain. 2021-10-08 16:17:31 -04:00
Joshua Barretto
6d33e0d183 Prevented double-spawning of chunks 2021-10-08 12:20:46 +01:00
Joshua Barretto
8dc8aeace5 Added minimum server-side chunk loading 2021-10-07 14:23:55 +01:00
Imbris
c9d2501336 Revert "Merge branch 'ubruntu/par-entity-sync' into 'master'"
This reverts merge request !2891
2021-10-05 14:42:39 +00:00
Bryant Deters
8b557f0e2e using par_join.for_each as if I know what I'm doing 2021-10-01 18:05:52 -05:00
juliancoffee
7291d32209 Make ItemDrop component with Item again 2021-09-27 20:36:18 +03:00
Sam
27823ce8fa Rtsim now uses entity configs. 2021-09-27 15:09:22 +03:00
Sam
09dd9b4813 Changed ItemDrop to use LootSpec 2021-09-27 15:09:22 +03:00
Marcel
cea927efb6 Merge branch 'xMAC94x/update-toolchain' into 'master'
update toolchain to `nightly-2021-09-24`

See merge request veloren/veloren!2862
2021-09-26 19:25:02 +00:00
Sam
942376f88c Made poise a float at interface of module. 2021-09-25 14:07:47 -04:00
Marcel Märtens
e36eef99c8 apply some clippy fixes that comes with the new toolchain version 2021-09-24 23:18:18 +02:00
Sam
0e5e2b46f2 Changed energy to internally use an integer with a high resolution, and externally to use a float. 2021-09-23 14:11:09 -04:00
Snowram
5838a84568 Consolidates projectile offsets into utils 2021-09-22 03:05:57 +02:00
Snowram
9c2ce83430 Set projectile offsets in states instead of globally 2021-09-22 01:07:09 +02:00
Samuel Keiffer
576f2a6e9f Merge branch 'wolfshaman/fixing_1328_set_waypoint_when_on_ground_and_not_going_down' into 'master'
fixing_1328_set_waypoint_when_on_ground_and_not_going_down

See merge request veloren/veloren!2832
2021-09-21 22:16:08 +00:00
Snowram
7a73e4240b Bird large beam offset hack 2021-09-21 15:31:43 +02:00
juliancoffee
f810af4eec Rename EntityInfo level field to health_scaling 2021-09-17 20:12:42 +03:00
juliancoffee
c069a3523d Fix beam offsets
- Introduce notion of min and max radius for Body instead of old
  `radius()` function (which is renamed to `max_radius()`).
2021-09-17 13:28:34 +03:00
Sam
99981338bb Fixed exp fix mistake and fixed lava, campfire, and bomb damage. 2021-09-15 08:32:44 -04:00
wolfshaman
d321d1aad4 fixing_1328_set_waypoint_when_on_ground_and_not_going_down 2021-09-13 16:51:02 -04:00
Sam
42012fddcb Overhauled health component, making it a float to outer interfaces. 2021-09-09 00:10:17 -04:00
Joshua Barretto
78fce06b47 Allowed players to assist NPCs in fights without problems by tweaking aggro rules 2021-09-08 13:17:53 +01:00
Khalid Ali
cbc6cdfad1 Use unreachable instead of panic 2021-09-05 18:13:20 -05:00
Khalid Ali
a0b78ffd16 Add RepeaterRanged and fix scaling ChargedRange 2021-09-05 18:03:54 -05:00
Khalid Ali
871a1ccbfc Set direction using character state 2021-09-05 17:07:09 -05:00
juliancoffee
43d40c4efc Workaround of bug with global Player component
* Set default value of battle_mode and last_battlemode_change explicitly
if isn't found in battlemode_buffer
2021-09-04 02:29:02 +03:00
juliancoffee
1baa9e9879 Add in-memory persistence for battlemode changes 2021-09-04 01:41:48 +03:00
juliancoffee
fbe745fe1e Cooldowns
- Add last_battlemode_change to Player component
- check on last_battlemode_change in handle_battlemode
- set last_battlemode_change after setting battlemode
- still are not persisted in any way
2021-09-04 01:41:48 +03:00
juliancoffee
f01309dfc2 Add PerPlayer server flag for BattleMode 2021-09-03 17:28:34 +03:00
Joshua Barretto
f9580a576c Fix warning agents not switching aggro on attack 2021-08-24 23:17:52 +01:00
Ben Wallis
9e35f5ec33 Explosions no longer change block colours within the radius of a safe zone. Doubled the radius of the safe zone in the /home town. 2021-08-20 09:00:55 +01:00
juliancoffee
09e8ee2b3f Remove giants 2021-08-16 18:15:01 +03:00
juliancoffee
5941d6731c Refactor supplement evaluation to use NpcData 2021-08-16 17:27:59 +03:00
Joshua Barretto
87851293c2 Improved aggro system to reduce hyper-focused enemies 2021-08-14 11:09:33 +01:00
Joshua Barretto
c2498d81c7 Added feature flag for terrain persistence 2021-08-12 10:48:00 +01:00
Joshua Barretto
738e59965f Added experimental terrain persistence 2021-08-12 10:26:20 +01:00
juliancoffee
f16f8182cd Add FIXME about Staff flamethrower 2021-08-08 00:41:39 +03:00
juliancoffee
a7922336ea Expose beam_offsets to AI 2021-08-08 00:33:43 +03:00
juliancoffee
edd37ad491 Agent code TODO-s 2021-08-05 21:07:45 +03:00
Joshua Barretto
31a49d26a9 Added action timer system for agent code 2021-08-04 14:04:56 +01:00
juliancoffee
44916383c6 continue -> filter_map to handle new players 2021-08-03 16:43:56 +03:00
juliancoffee
d9e2d501cd Prettify server/sys/msg/register.rs 2021-08-03 16:43:56 +03:00
juliancoffee
497a94cd7a Post review refactoring
* inline `target_dodging` into struct declaration as they are named
anyway
* move `avoid_harm` check out of `Attack::apply_attack` so we don't need
to pass whole Player component.
* another cosmetic things
2021-08-03 16:43:55 +03:00
juliancoffee
9300353c98 Use emitter.emit() in server/sys/msg/register 2021-08-03 16:43:55 +03:00
juliancoffee
7d4a8cbfa4 Add battle_mode server setting and player flag 2021-08-03 16:42:58 +03:00
Knightress Paladin
b338abd761 Fix up comments relating to AI logic 2021-08-02 22:38:16 -07:00
Knightress Paladin
8dd2202e1a Restyle logic in Staff AI 2021-08-02 16:22:40 -07:00
Knightress Paladin
a6acdbbfa7 Used adjusted_by_skills to correctly calculate ability values 2021-08-02 16:22:40 -07:00
Knightress Paladin
e87bfae5cd Allowed staff AI to queue shockwave if occupied by animation 2021-08-02 16:22:40 -07:00
Knightress Paladin
38432cc880 Restructured logic for staff AI 2021-08-02 16:22:40 -07:00
Joshua Barretto
45f94b0bce Better Agent API 2021-08-02 13:08:39 +01:00
Ludvig Böklin
400734cc0a Fix gliderwield downhill run jitter 2021-08-01 11:20:46 +00:00
Joshua Barretto
422e1c30f4 Added menacing, made agent code less hacky 2021-07-31 20:33:28 +01:00
Monty Marz
14eb0f9aa2 Remove sceptre, add swords 2021-07-29 22:38:35 +00: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
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
Joshua Barretto
37077b5703 Merge branch 'Resolve-unused-clippy-supressions' into 'master'
Resolve unused clippy supressions

See merge request veloren/veloren!2673
2021-07-24 20:44:06 +00:00
Dr. Dystopia
70d0840e96 Resolve unused '#[allow(clippy::unnecessary_wraps)]' error supressions 2021-07-24 20:14:26 +02:00
Joshua Barretto
6fa3ac610b Merge branch 'aweinstock/fix-waypoint-2' into 'master'
Further improve handling of underground waypoints:

See merge request veloren/veloren!2665
2021-07-24 17:59:58 +00:00
Avi Weinstock
5dd56b724c Rename find_space_opt to try_find_space. 2021-07-24 13:09:10 -04:00
Samuel Keiffer
85b9f70469 Merge branch 'knightresspaladin/fix-circle-charge' into 'master'
Fixed CircleCharge and buffed Rugged Hide droppers

See merge request veloren/veloren!2613
2021-07-23 14:56:36 +00:00
Avi Weinstock
ca10d89068 Further improve handling of underground waypoints:
- Set the waypoint to the valid position after chunk load, so that respawns work.
- Search for the nearest valid surface before falling back to the top of the chunk, so that waypoints inside caves/buildings work.
2021-07-22 23:03:52 -04:00
Marcel
e9f6ae6b37 Merge branch 'xMAC94x/job_metrics' into 'master'
implement slowjob metrics to measuere time in queue and execution time

See merge request veloren/veloren!2654
2021-07-22 19:17:30 +00:00
Marcel Märtens
7d93d907f6 implement slowjob metrics to measuere time in queue and execution time 2021-07-22 19:31:21 +02:00
juliancoffee
a03992a236 Wake birds up
* give large rtsim birds their default main tool which allows them to
use AI tactics
* force entities to fly on critical failing velocities to avoid suicide
2021-07-22 18:00:22 +03:00
Knightress Paladin
a97546dbff Removed aimbot from ChargeMelee and cleaned up variable typing 2021-07-18 23:12:55 -07:00
Knightress Paladin
081c6e5362 Fixed CircleCharge and buffed Rugged Hide droppers 2021-07-18 23:12:55 -07:00
Samuel Keiffer
37147e2a83 Merge branch 'juliancoffee/overworld_assetization' into 'master'
Wildlife assetization

See merge request veloren/veloren!2591
2021-07-18 13:43:32 +00:00
Imbris
9c72333741 Revert "Merge branch..."
This reverts merge request !2608
2021-07-17 22:04:59 +00:00
juliancoffee
6654c9e372 Fix bug with ignoring second_tool in EntityInfo 2021-07-17 15:37:30 +03:00
Imbris
eb999b2821 Merge branch 'aweinstock/fix-waypoint' into 'master'
Spawn players aboveground when using `/site` or when their waypoint is underground.

See merge request veloren/veloren!2612
2021-07-16 23:18:33 +00:00
Avi Weinstock
a4d6f0f3c1 Address MR 2612 review comments. 2021-07-16 17:46:48 -04: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
Avi Weinstock
c417e8c5b9 Defer repositioning until after chunks are generated normally, to reduce latency and avoid duplicate work. 2021-07-16 15:42:50 -04:00
Marcel
0492b8dc87 Merge branch 'savalige/ai_spacing' into 'master'
Issue #1153 - Improve combat AI spacing between Agents of the same Alignment

Closes #1153

See merge request veloren/veloren!2451
2021-07-16 16:40:27 +00:00
Avi Weinstock
9e9cbd290b cargo fmt 2021-07-15 15:52:10 -04:00
Knightress Paladin
0ded44d635 Cleaned up chunk-relative block setting math 2021-07-15 12:36:00 -07:00
Knightress Paladin
9864344cfe Implemented setting blocks with the wiring system 2021-07-15 12:36:00 -07:00
Savalige
171113ea74 Added a spacing_radius method to body to make it possible to sett different spacing for different entities 2021-07-15 13:33:51 -04:00
Savalige
1e3cc3442f Made the spacing also take the radius of the entity into account per @zesterer suggestion and added a baias variable to change how much priority should be given to separation vs target(1.0 being only focus on separating and 0.0 being only focus on target) 2021-07-15 13:33:51 -04:00
Savalige
2a5d4fa826 fixing issue #1153 - Improve combat AI spacing between Agents of the same Alignment 2021-07-15 13:33:51 -04:00
Jonathan Berglin
c1c331d59e Resolve all '#[allow(clippy::approx_constant)]' error supressions 2021-07-15 16:56:55 +00:00
juliancoffee
aae3a159b8 Make all Ships constanly flying, not only rtsim 2021-07-14 23:23:35 +03:00
juliancoffee
d42c7be141 Teach AI how to interact in this evil world 2021-07-14 19:26:12 +03:00
juliancoffee
b6460f6c61 Teach AI how to forgive 2021-07-14 19:26:11 +03:00
juliancoffee
325acc9daf Teach AI how to heal again 2021-07-14 19:26:11 +03:00
juliancoffee
06e0303e8a Cleaning 2021-07-14 19:26:11 +03:00
juliancoffee
00a34da48b Teach AI how to leap again
+ adjust hammer and axe AI timings
2021-07-14 19:25:55 +03:00
juliancoffee
56ab92fd05 Teach AI how to glide again 2021-07-14 15:24:15 +03:00
juliancoffee
59e9fc6530 Agent code refactoring
0) extracting code branches to closures
1) make RTSim remember target, even if they can't speak about it
2) make only RTSim Ships constantly flying (and not every flying RTSim)

You can tame RTSim Phoenix, yay
2021-07-14 14:55:50 +03:00
holychowders
f316f1da60 Make Guards Defend Villagers 2021-07-14 07:40:43 +00:00
Marcel Märtens
db8aedd363 fmt after applying clippy fixes after toolchain update 2021-07-12 12:09:27 +02:00
Marcel Märtens
9b3b21f368 fix clippy warnings 2021-07-12 12:09:09 +02:00
Sam
be8b12845a Added buff strength stat to weapons. 2021-07-11 12:50:38 -05: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
Knightress Paladin
d0bb7004ab Added check to prevent sceptre AI from canceling its own ward 2021-07-07 20:01:00 -07:00
Knightress Paladin
65d67ef781 Clean up sceptre ai code before merge 2021-07-07 20:00:35 -07:00
Knightress Paladin
63c5d9f7df Fixed formatting 2021-07-07 20:00:35 -07:00
Knightress Paladin
ba35aaaf90 Add check to see if cultist already has ward buff 2021-07-07 20:00:35 -07:00
Knightress Paladin
35242c71e1 Added sceptre tactic and sceptre cultists 2021-07-07 20:00:01 -07:00
juliancoffee
d4c61ae2f3 (voxygen) Better support for multibuff items
+ change `effect` field in ItemKind::Consumable to `effects`, as it's
set of effects and not single effect.
2021-07-05 10:56:29 +03:00
juliancoffee
303f03dd3a Adjust Yeti difficulty
Frost breath:
    - ori_rate reduced from 0.6 to 0.1
    - time of breath increased from 1 second to 2 seconds
    - buildup increased from 0.4 to 0.8
    - make it more gentle, with less damage per tick, but faster tick rate
    (50 * 1 to 10 * 5)
    - make Frozen debuff strength smoler, 1.5 to 0.5 and make it chance to
    apply debuff.
    - make him use it when closer range (10 and not 15)
Ice spikes:
    - increase recovery_duration from 0.3 to 1.0
    - make him slower while doing ice spikes, make ice spikes move
    slower
    - make him use it when closer range (15 and not 20)
Snowball:
    - increase recover_duration from 0.4 to 0.9
Strike:
    - increase buildup_duration fron 0.6 to 0.8
    - increase recover_duration from 0.5 to 1.0
    - increase knockback from 40.0 to 70.0
2021-07-04 03:44:17 +03:00
Ben Wallis
a50ed6b50a Fixed build warnings for server-cli related to non-default plugin feature 2021-06-26 21:56:03 +01:00
Snowram
d7f25627ab Ajustments to new npcs 2021-06-24 19:31:21 +02:00
Sam
68c6a0a495 Balance tweaks for harvester. 2021-06-23 22:38:16 -05:00
Sam
c162827f97 Harvester AI 2021-06-23 22:38:16 -05:00
Sam
763461ebef Ensnaring vines now ensnare you. 2021-06-23 22:38:16 -05:00
juliancoffee
573607c32a Nerf golem laser dmg and ori_rate, make it fire
+ Make laser state duration lower
2021-06-19 10:47:45 +03:00
juliancoffee
36fa8bf4f7 Use Golem Shockwave only after loosing 30% health
+ Make shockwave buildup longer
2021-06-18 22:32:43 +03:00
Joshua Barretto
294b6e394a Renamed command event 2021-06-18 11:31:06 +01:00
Joshua Barretto
96cbf60c3f Made commands a distinct ClientMsg to avoid possible sanitisation problems for clients 2021-06-17 19:55:21 +01:00
DaforLynx
9a5b95bc16 Added npc hurt sfx 2021-06-17 05:49:09 +00:00
jshipsey
0941f03608 buffs to stretch progression 2021-06-16 20:50:46 -04:00
Joshua Barretto
9510869870 Significantly more efficient sound effect processing, more NPC sounds 2021-06-16 17:23:22 +01:00
Joshua Barretto
e3c44ba7fe More voice kinds, more opportunities for sounds 2021-06-16 17:23:22 +01:00
Joshua Barretto
0ef29a6989 VoiceKind for better sound effect specs 2021-06-16 17:23:22 +01:00
Joshua Barretto
559311e1b0 Chasing sounds 2021-06-16 17:23:22 +01:00
Snowram
8351aab25d Addresses comments about roc AI 2021-06-15 09:50:23 +02:00
Snowram
f2c7836161 Makes summon range inclusive 2021-06-15 09:49:13 +02:00
Avi Weinstock
cb0566299a Make tornado (and empty models in general) work on WGPU. 2021-06-15 09:49:13 +02:00
Snowram
3ba0500b90 Tornado summoning attack 2021-06-15 09:49:13 +02:00
Snowram
97ce50e5d4 Add troll variants and roc npcs 2021-06-15 09:49:13 +02:00
juliancoffee
0c9f05b8d1 Load skillsets from assets
Done:
    support loading from assets in skillset_builder.rs
    entity_config field with skillset asset field
    move every SkillSet config to assets
    tests for skillset assets
    tests for assets in entity configs
2021-06-09 15:37:04 +03:00
juliancoffee
c3a120c551 Post refactoring 2021-06-09 15:37:04 +03:00
juliancoffee
5f3eaddb70 Split LodoutBuilder::build_loadout
LoadoutBuilder::build_loadout is a function which has four parameters
and 3 of them are Option<>, and although fourth (body) isn't Option<>,
it's optional too because it is used only in some combinations of
another arguments.

Because these combinations produces quirky code flow, it will be better
to split it to different methods.

So we did following changes to remove it and rewrite code that was using it
to use better methods.

* Introduce LoadoutPreset as new LoadoutConfig, currently it's only used
in Summon ability, because SummonInfo uses Copy and we can't specify
String for specifying asset path for loadout.
Everything else is rewritten to use asset path to create loadouts.

* More builder methods for LoadoutBuilder.
Namely:
    - from_default which is used in server/src/cmd.rs in "/spawn" command.
    - with_default_equipment, with_default_maintool to use default
    loadout for specific body
    - with_preset to use LoadoutPreset

* Add new make_loadout field with `fn (loadout_builder, trading_info) -> loadout_builder`
to EntityInfo which allows to lazily construct loadout without
modifying LoadoutBuilder code

* Fix Merchants not having trade site
We had heuristic that if something has Merchant LoadoutConfig - it's
merchant, which can be false, especially if we create Merchant loadout
lazily
As side note, we do same check for Guards and it fails too.

Too fix it, we introduce new agent::Mark, which explicitly specifies
kind of agent for entity

* `LoadoutBuilder::build_loadout` was written in a such way that depending
on main_tool you will have different loadout. Turns out it was this
way only for Adlets though and this behaviour is reproduced by specifying
different loadouts directly in world code.
2021-06-09 15:37:04 +03:00
Sam
acf7ad27f1 Balance tweaks. 2021-06-05 17:15:04 -05:00
Sam
74b7039219 Yeti AI 2021-06-05 13:25:47 -05:00
Sam
81f7e690fd Snowball attack. 2021-06-04 18:17:15 -05:00
Sam
5bf99eac11 Added totem ability, totem ai, totem ability set, particles for totem abilities, and totem voxel model. 2021-06-03 21:39:15 -05:00
Sam
ac2f097d80 Tidal warrior AI. 2021-06-03 21:39:14 -05:00
Samuel Keiffer
d235e98efe Merge branch 'aweinstock/agent-pid' into 'master'
Implement PID controllers and use them to stabilize Agent airship flight.

See merge request veloren/veloren!2356
2021-06-02 23:15:08 +00:00
Imbris
23eca4c3f6 Re-disable incremental just for common-systems, small fix in plugin
crate, more new clippy fixes
2021-05-31 20:44:57 -04:00
Avi Weinstock
e09ae8ad83 Address MR 2356 comments. 2021-05-30 13:36:25 -04:00
Avi Weinstock
8b20175b6e Implement PID controllers and use them to stabilize Agent airship flight. 2021-05-30 13:36:25 -04:00
Sam
01f82314dc Fixed a few oddities with the AI 2021-05-26 21:34:21 -05:00
Sam
b826d5cb2b Fixed exp splitting in inactive equip slots. 2021-05-26 21:13:16 -05:00
Sam
42c8c08145 Fixed bow AI 2021-05-26 20:53:29 -05:00
Justin Shipsey
d7c7f6bf5d Merge branch 'sam/rework-bow' into 'master'
Bow Rework

See merge request veloren/veloren!2310
2021-05-26 04:44:09 +00:00
Avi Weinstock
624f8796bd Fix mindflayer tactic to make it shoot purple fireballs again. 2021-05-22 20:35:21 -04:00
Sam
1014ac45bf Made new skills for reworked bow.
Created migration to reset bow skills.
2021-05-22 12:33:21 -05:00
Samuel Keiffer
a0599ac046 Merge branch 'sam/extra-equip-slots' into 'master'
Added Extra Loadout Slots

See merge request veloren/veloren!2295
2021-05-21 20:28:53 +00:00
James Melkonian
27885e00b2 Allow NPCs to path towards far away enemies 2021-05-21 03:14:45 +00:00
James Melkonian
b076fb7baa Small cockatrice AI fixes 2021-05-17 22:46:50 +00:00
Sam
9173dca03f Added equip slots for other weapons. 2021-05-15 15:16:37 -05:00
holychowders
d5f3ba77d4 Make NPCs Aware of Sound - See Issue #913 2021-05-15 19:36:27 +00:00
James Melkonian
f76b61ac17 Make merchants /tell instead of /say 2021-05-11 17:26:22 +00:00
Sam
7f6c6c5603 Fixed offsets for laser and rocket attacks of clay golem. 2021-05-10 18:54:04 -05:00
Sam
0d53e790fd Made golem laser spawn based off of orientation rather than look_dir. Additional balance tweaks. 2021-05-10 18:54:00 -05:00
Sam
fca56be4c0 Balance tweaks 2021-05-10 18:53:52 -05:00
Sam
58e5b1fdf5 AI tweaks. 2021-05-10 18:53:49 -05:00
Snowram
47a2bf7de8 Adds haniwa sentry object 2021-05-10 18:53:48 -05:00
Sam
c67c56d194 Dungeon placement. Tweaks to melee. 2021-05-10 18:53:47 -05:00
Sam
9f8aeb91c0 Added armor, more ai tweaks. 2021-05-10 18:53:46 -05:00
Sam
1c8db241e2 Golem AI 2021-05-10 18:53:43 -05:00
Joshua Yanovski
0cf0f59fa7 Merge branch 'sharp/modtools' into 'master'
Added non-admin moderators and timed bans.

See merge request veloren/veloren!2276
2021-05-10 04:54:06 +00: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
Avi Weinstock
abcb6f34a3 Remove the dependency of the new mindflayer AI on action_state.timer. 2021-05-09 21:16:57 -04:00
Avi Weinstock
1ae105125d Change agent's condition field back to a bool (from bitflags) and add a separate int_counter field. 2021-05-09 18:09:53 -04:00
Avi Weinstock
1dfcdce1c0 Add a purple fireball to mindflayer and have it shoot it a few times before teleporting, and fix mindflayer AI's husk summons. 2021-05-09 18:09:31 -04:00
Samuel Keiffer
a2999ce96f Merge branch 'aweinstock/damage-types' into 'master'
Add `DamageKind`, and make piercing damage partially ignore damage resistence.

See merge request veloren/veloren!2262
2021-05-06 22:22:49 +00:00
Avi Weinstock
e4cda4309e Add DamageKind, and make piercing damage partially ignore damage resistence.
- Tweak bow/staff M1 stats.
2021-05-06 17:39:06 -04:00
James Melkonian
346eb48a27 Move weapon tactics to functions and take target body into attack radius consideration 2021-05-06 21:17:05 +00:00
Daniel Mizerski
3197bcd12a (Wiring) Logic - make wiring turing complete 2021-05-06 19:53:12 +02:00
Marcel
91f76d3b00 Merge branch 'xMAC94x/fixDisconnectMetrics' into 'master'
instead of manually trying to sync disconnect metrics we now pass a Reason to...

See merge request veloren/veloren!2259
2021-05-06 11:32:37 +00:00
Marcel Märtens
8196fd8b35 instead of manually trying to sync disconnect metrics we now pass a Reason to the handle_disconnect.
There we make sure that the disconnect only happens once and decrease the respective Metrics.
Also added more reasons
2021-05-06 11:43:10 +02:00
Daniel Mizerski
b34704ea3f (Wiring) OnDeath 2021-05-05 19:08:18 +02:00
Daniel Mizerski
a2a0329440 (Wiring) Switch to using maybes 2021-05-05 16:59:17 +02:00