+ Made yeti boss have a 5% chance to spawn in snow biomes.
+ New yeti entity has ~28.5% chance to drop 1 to 10 exclusive blue cheese, ~57.1% to drop 1 to 3 coal, and ~14.2% chance to drop 1 diamond.
+ Blue cheese heals 60hp over 20 seconds.
+Blue cheese has item_image_manifest and other necessities completed. (Model is current placeholder until Gemu or Hannibal have approved)
+ Adlet-bow armor count - 39 previous being 62
+ Sahagin armor count - 71 previous being 88
+ Haniwa armor count - 96 previous being 91
+ Myrmidon armor count - 152 previous being 161
+ Although an overall decrease in armor there's an increase in poise res, crit power, energy, and other stats.
+ Gave everything staff an ability set in skillset, and linked them all
- Move loot_tables/creature/witch to loot_tables/spots/witch
- Move skillset/spots/general_max and skillset/spots/sceptre_max to
skillset/preset/max/{general,sceptre}
- Remove tabs from dwarf_grave_robber entity config file
* 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
+ 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)
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)
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
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.