Skip to content

Releases: Hitonoriol/MadSand

Alpha v0.49.5-rc4

26 May 17:08
Compare
Choose a tag to compare

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)

22 May 23:01
Compare
Choose a tag to compare

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

20 May 00:48
Compare
Choose a tag to compare

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

14 May 19:41
Compare
Choose a tag to compare

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

11 May 19:25
Compare
Choose a tag to compare

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

28 Jan 19:34
Compare
Choose a tag to compare
  • 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

16 Jan 13:07
Compare
Choose a tag to compare
  • Movement animation speed now depends on Entity's speed stat

Alpha v0.49.2

15 Jan 14:46
Compare
Choose a tag to compare
  • 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

14 Jan 13:46
Compare
Choose a tag to compare
  • 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

11 Jan 11:57
Compare
Choose a tag to compare
  • 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