Commit Graph

128 Commits

Author SHA1 Message Date
Monty Marz
1278020c88 dwarf grave 2021-08-28 14:53:30 +01:00
Joshua Barretto
76ba3496a1 sync 2021-08-28 14:53:30 +01:00
Joshua Barretto
bbcd842208 Test spot entity spawning 2021-08-28 14:53:30 +01:00
Knightress Paladin
998c56c524 Removed extra Warlock skills and made sceptre cultists rarer 2021-08-02 16:22:40 -07:00
Knightress Paladin
38432cc880 Restructured logic for staff AI 2021-08-02 16:22:40 -07: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
juliancoffee
23a020f602 Add Automatic NameKind to EntityConfig
+ add animal entities for wildlife spawns
2021-07-17 15:37:31 +03:00
juliancoffee
d04364b1f1 Replace EntityConfig main/second_tool with hands
+ Check equip_slot can hold item in LoadoutBuilder
2021-07-17 15:37:31 +03:00
juliancoffee
1d2ea717ab Move builder assets in EntityConfig to meta field 2021-07-17 15:37:31 +03:00
juliancoffee
6403ee0634 Merge None-loot in EntityConfig to LootKind 2021-07-17 15:37:31 +03:00
juliancoffee
7401d74aa6 Add wildlife assetization support
+ add asset tests
+ migrate tundra animals
+ migrate taiga animals
+ declare temperate zone (animals yet to be created)
+ declare jungle zone (animals yet to be created)
+ declare tropical zone (animals yet to be created)
+ declare desert zone (animals yet to be created)
+ declare water (river inhabitants) zones (animals yet to be created)
2021-07-17 15:37:30 +03:00
juliancoffee
d920f911a2 Add Exact body field for EntityConfig
Add Alignment field to EntityConfig

+ Migrate to specifying alignment and body in entity assets
+ Make Body required field (with Uninit if you want to specify it later)
2021-07-17 15:37:30 +03:00
Knightress Paladin
65d67ef781 Clean up sceptre ai code before merge 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
Snowram
379e755006 Increases base damage of husk attack, rename some cultist weapons 2021-06-25 21:18:28 +02:00
Snowram
ef6d6563ea Ajust new npcs from feedback 2021-06-25 03:26:32 +02:00
Snowram
d7f25627ab Ajustments to new npcs 2021-06-24 19:31:21 +02:00
Snowram
8760b69345 Husk brute animations 2021-06-24 19:31:19 +02:00
Snowram
58b95d12d4 Adds alpaca and llama npcs 2021-06-24 19:30:15 +02:00
Snowram
fef0f407d3 Removes warlord and warlock armours 2021-06-24 19:30:11 +02:00
juliancoffee
057aa7fecf Move loot tables to entityconfigs
* Moved all entities in dungeons to assets
2021-06-09 15:37:04 +03:00
juliancoffee
a4cc1e24ee Move body to EntityConfig assets
* currently works only for random and random_with, uses FromStr for
NpcKind
2021-06-09 15:37:04 +03:00
juliancoffee
229b253a17 remove Mindflayer skillset 2021-06-09 15:37:04 +03: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
f5bf991eb0 Start to load EntityInfo from assets in dungeons
* All enemies in dungeons are now specify loadout_config, name and
main_tool in assets
* Add more variance to the enemies names
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
juliancoffee
e832fa86f1 Add entity template and make 'loadouts' singular 2021-06-09 15:37:03 +03:00