Releases: Hitonoriol/MadSand
Releases · Hitonoriol/MadSand
Alpha v0.49.5-rc4
Changelog
- Damage any AbstractEquipment held by player during resource gathering / melee/ranged attack
- Smooth transitions between quest dialogs
- Player run mode adjustments
- Unified dialog keybind system: any dialog bound to a key can be closed by pressing this key again after opening it
- Any in-game dialog can also be closed by pressing ESC
- Refresh in-game tooltip on attack/successful resource gathering
- execAlways keybinds -- can be executed even when the game is unfocused
- Player now moves correctly even when clicking on map objects/npcs during movement
- Build menu crash fix
- You can now fire projectiles not only at NPCs, but at map objects too
- Pause player action execution for correct amount of time when a hostile NPC is in the FOV
- Schedule player's ranged attack with coords instead of MapEntity reference as target
- Speed up hostile NPC animations if they are faster than player
- Refresh mouse tooltip & ranged attack path when NPC is killed by player
Launcher v2.0 (with Java 18)
Launcher & Auto-updater for MadSand
Contains a minimal JVM required to launch the game, so Java is not required to be installed system-wide.
Uses this repo's release section to parse changelogs and jar links.
To launch under Linux, xrandr
is required.
Changelog:
- Ability to download and manage multiple game versions
- Set VM & game launch arguments
- Option to display a debug console window along with the game
Alpha v0.49.5-rc3
Upd
Build menu is still completely broken in this build
Changelog
- Reindex pathfinding graph correctly
- ItemFactory init fix
- player run mode fix
- Skill level impact on resource gathering time is now 5x lower
- Auto-damage (when at 0% hunger or stamina) now stops at 40% HP (TODO: make it dependent on Survival skill(?))
- Keybind buttons in AbilityDialog are now dynamically resized depending on the text
- Utils.panic() -- try/catch wrapper, kills the game if errors are too frequent
Alpha v0.49.5-rc2
Changelog
- Fix single item crafting
- Fix game focus related bugs
- Logging to file is now enabled even in non-debug mode. You can enable additional logging with "debug" launch arg or silence logging completely with "silent" arg
Alpha v0.49.5-rc1
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
Alpha v0.49.4
- Ranged attack: equip a ranged weapon (Currently only 2 of them exist: Wooden bow & Slingshot) and some projectiles and click on any NPC that's farther than 1 tile from you to shoot
- Wooden bow can be crafted from sticks & plant threads
- Stone arrows can be crafted from sharp sticks & small rocks
- Mouse click action cleanup
- Death screen layout adjustments
- Separate action cost for ranged attack
- Chance to miss when using ranged weapons -- depends on distance to target and accuracy stat
- Display chance to miss in the in-game tooltip when hovering over an enemy NPC
- Display projectile damage in tooltip when hovering over a projectile item in inventory or equipment sidebar
- Display NPCs health state always instead of doing it only for known NPCs (which were killed before at least once)
- Craft multiple items at once by choosing the quantity of item to craft via SliderDialog
- Ranged weapons and projectiles can now be crafted at the Fletching Table (can be built from wood, feathers & flint)
- Separate damage animation for map objects
- Base ranged attack will now be calculated for distance to the projectile obstacle, if it exists, instead of using distance to target
- Throwing weapons -- projectiles that can be launched without a ranged weapon (currently only Boomerang)
- NPC aggro animation, heal animation
- Line.rayCast & Line.forEachPoint -- raycast on-the-fly without pre-calculating the line
- Don't close inventory after clicking on non-equippable item
Alpha v0.49.3
- Movement animation speed now depends on Entity's speed stat
Alpha v0.49.2
- NPCs now move instantly (without animation & movement queue) when out of player's view or during the time skip
- NPCs farther than 2.5 * <player's fov> tiles away from player won't be simulated during the time skip
- Other time skip optimizations
- NPCs can now see through objects with "nocollide" flag
- Fix: Errors will now be written to errorlog file when the game is launched without the "debug" argument
Alpha v0.49.1
- Generate bitmap fonts of different sizes instead of font scaling
- Time machine -- can be built from iron & time flux powder, allows player to skip World time & realtime ticks using time flux powder
Alpha v0.49
-
You can now rest until the stamina is fully restored (RMB click on your character -> "Rest fully")
(If any hostile NPC spots player while he's resting, the resting process will be interrupted) -
Unique item UIDs are now long values