Alpha v0.49.5-rc1
Hitonoriol
released this
11 May 19:25
·
205 commits
to master
since this release
UPD
Ok. Known bugs:
- Player sometimes can't start gathering resources after LMB click on an object when not looking at it (fixed? in 18e3876)
- Weird crafting bug (not again) -- "cancel" button sometimes(!) confirms crafting operation instead of cancelling (fixed in dd79a00)
- Game doesn't resume focus after clicking on interaction button with RMB (to attack a neutral creature) (fixed in 18e3876)
Changelog
- Objects built via Build Menu now drop all ingredients when destroyed
- Placeable objects drop their corresponding item when destroyed
- Render loot at 85% of tile size instead of 100%
- Roll ResourceObject loot depending on how much full damage (hp, not harvestHp) has been done to the object
-
Ranged attack
-
NPC ranged attack logic:
- Approach player if he's farther than <MAX_DST>;
- Shoot (if able too) or approach player when he's closer than <MAX_DST> but farther than <OPTIMAL_DST>
- Shoot and don't move if player's <OPTIMAL_DST> or less tiles away
- Use melee attack if player is 1 tile away
- NPCs with ranged attack won't shoot if other NPCs are in the way
- Abilities -- Passive & Active
- Ability dialog -- use active abilities & view passive ones
- Store scroll scripts separately from items. Every scroll is just a "base scroll" with randomly picked script and name.
- Scroll of teleportation -- teleport player to a random unoccupied tile
- stackability of items is now decided using .equals() instead of just checking if item is a subtype of equipment -- so that other types of items can be non-stackable or stack only by some rule (e.g. scrolls -- all of them have the same item id, but different names & onUse scripts, so <Scroll>.equals() also takes scroll's name into account)
- Cursed equipment -- can't be unequipped
- LootTable deserializer + reuse LootTables from pre-defined list in Globals by using "$" prefix -- for example, $table_name
- ConditionalEffects -- a map with Item predicates and effect lambdas. Used to refresh procedural changes to textures.
- Currently implemented procedural FX:
- If equipment piece is cursed (7.5% chance currently), it'll be colorized in red
- 5% chance to have inverted color
- 20% chance to have a randomly colorized texture
- Unequip items on drop
- Close loot dialog when the last item is picked up, loot drop fix, grab bag fix
- ClickAction -- one-time BiConsumer that consumes click position (for one-shot skills, etc)
- Display path from player to cursor when in ClickAction mode (currently can be triggered by pressing Y -- click anywhere on the map to teleport)
- Pathfinding fixes
- Pathfinding graph now refreshes as intended on world load
- Draw projectile trajectory for player/NPC ranged attack
- Highlight projectile path when hovering over targets with ranged weapon equipped
- Drop projectile item on the ground on miss + use coords instead of target reference when shooting a projectile
- Pills -- consumables that are used to gain and levelup Abilities
- maxCurPathLen -- specify max length for path to mouse cursor in map cell selection mode
- Blink ability -- teleport for 10 stamina
- Ability dialog adjustments
- postGenScript -- executed after all generation steps have been completed for current location
- Low-kick and Blink abilities are affected by their levels:
- Low-kick -- +2% damage per level
- Blink -- +1 cell teleport range per level
- Each ability levelup requires x2 more pills than the previous level
- Stack ScriptedConsumables of the same type
- Colorize scripted consumables differently depending on their type
- Don't spend subtick time when turning using arrow keys
- skipTutorials flag
- AutoCheckBox - refresh specified boolean values automatically on checkbox value change
- Settings menu adjustments
- Attack neutral NPCs by clicking on interaction button with RMB
- Player now can't interact with hostile NPCs (take a quest/trade/...)
- Healing notification in game log
- Game context menu adjustments + "Attack" option now uses ranged attack if player has ranged weapon & projectiles equipped
- Action button adjustments
- Run ability -- add path to mouse cursor to player's mvmt queue & consume [<path_length> * ability cost] stamina (basically lua-wrapped feature from previous commit)
- Graph node indexing optimization (sorta) + crash fixes
- KeyDialog -- dialog for choosing a key for keybindings
- Ability hotkey binds + Hotbar that displays all binds
- HotbarAssignable interface -- implemented by Items & ActiveAbilities
- Key selection dialog adjustments
- Settings menu crash fix
- Save prefs on exit
- Inventory/trading tests & fixes