Skip to content

Releases: Hitonoriol/MadSand

Alpha v0.49.20

10 Jun 22:40
Compare
Choose a tag to compare

Changelog

  • Tweak damage-dealing system
  • Hostile NPCs can now attack any Entity, not just Player
  • Entity / world animations, ability to play multiple animations at the same coordinates
  • Delay entity targets' actions when they're shot at with projectiles
  • Expand previous console input buffer (up to 10 previous commands can now be cycled through using up and down keys when the console is open)
  • --indent TextSubstitutor flag: automatically replaces newlines with newline + tab combination
  • Add option to disable in-game action suggestion button
  • Camera-shaking mechanics
  • Shake camera when player is attacked
  • Floating in-game camera mechanism
  • Enable floating camera when clickAction map cell selection is active
  • Zoom in-game camera via Ctrl + mouse wheel scroll
  • Entity movement generalization
  • Melee attack movement animation
  • Click the resolution button with RMB to switch to the previous entry
  • Make notification duration shorter depending on queue size
  • Pause player when targeted by a projectile
    (this can't be done via the entity time processor because all actions are committed in one pass from fastest to slowest entity, making it so that player won't be delayed when attacked by an entity slower than them)
  • Add damage/heal animated text
  • Fix NPC experience bonus
  • Ctrl+I debug hotkey: add N random items to player's inventory
  • Sort & filter items in inventory UI
  • Fuzzy search items in inventory via ItemSearchPanel
  • Search, sort & filter items in crafting menu
  • CraftItemSearchPanel -- add option to show only items that player has enough resources to craft
  • Add recipes from crafting stations adjacent to player to the crafting menu recipe list if it's been opened from the inventory UI
  • Load worlds asynchronously
  • Show elapsed time when loading worlds
  • Use slightly modified Kenney Pixel UI skin instead of flat colors
  • Use libGDX's AssetManager to load game assets and content asynchronously while displaying a loading screen
  • Use TypingLabel for NPC dialog text
  • Add new hotkey: Shift + F12 - takes a screenshot without the GUI
  • Add new debug hotkey: Shift + V - marks all tiles on map as already visited
  • Add a waypoint to the tutorial quest master upon starting a new game
  • Add paragraph ({p}) tag to text substitutor

Alpha v0.49.19

15 Aug 02:39
Compare
Choose a tag to compare
  • Add "close" button to inventory dialog
  • Min stat value when creating a new character is now 2
  • Fix quest loading bug

Alpha v0.49.18.1

17 Sep 19:37
Compare
Choose a tag to compare

(contains a critical game-breaking bug, .jar removed)

  • Dynamically create PlaceableItems from Tile & MapObject Json objects by loading "placeable" property as a PlaceableItem (if present)
  • Generate ItemLists dynamically as well instead of loading them from .json
  • SelectDialog -- selection from scrollable option list
  • Widgets -- factories for quick scene2d widget creation
  • Item Categories and tiers are now loaded from items.json item entries instead of separate file
  • Set some Item Categories & tiers automatically at runtime depending on Item type (for PlaceableItems, CropSeeds, Weapons, Armor, Tools)
  • CombatEquipment items now have chance to have a higher level based on player's luck & item tier distribution
  • Lower tier roll chances
  • WorldGenPreset's lake, cave & dungeon presets now have a default state, which can be overridden by specified JSON on per-biome basis
  • ItemCategories is now a singleton
  • Min & Max rolls for ItemCategoryList now depend on its tier
  • Scale Placeable MapObject/Tile textures to fit in ItemUI button, keeping aspect ratio
  • TextSubstitutor now can perform dynamic substitutions (replace tile/object/item names with their id's, evaluate lua expressions + ability to hook a String supplier to substitute specified string)
  • Item names can now be used in craft recipes instead of id's, using the substitutor syntax ( e.g: @(item: stick)/3:@(item: rock)/5 )
  • rollDungeonEntrance() now actually decides whether to generate a dungeon trapdoor tile or not based on "dungeonProbability" WorldGenPreset field for current biome
  • Enumerable now has name() method to unify fuzzysearch by name

Alpha v0.49.18

10 Aug 11:59
Compare
Choose a tag to compare

Changelog

  • Craft recipe items -- use to learn the recipe stored in them
  • Runtime-ize ScriptConsumables (ScriptConsumable is now a concrete class & its subtypes no longer exist) // Every script consumable base item (e.g. Scroll, Pill, Craft Recipe) is now just an instance of ScriptConsumable with set scriptMapName and nameTemplate. Script consumable now also has a universal static factory create(script map, consumable name) -- usage example: ScriptConsumable.create("scrolls", "Teleportation") will create a new teleportation scroll
  • Non-unlockable crafting recipes: items which recipe strings are prefixed with "X" will be marked as non-unlockable, meaning their recipes can only be unlocked via the corresponding SciptConsumables (can only be bought from traders for now)
  • Lower starting stat sum to 15
  • Lower production rate for Farm Animals
  • Notify player about newly unlocked crafting recipes with a popup dialog with their icons
  • Fix trading bugs / TradeConfirmDialog slider max value is set to max affordable quantity of the item the player is trying to buy/sell
  • NPC lifetime decrease rate now varies depending on the distance from player -- the farther the player is from an NPC the faster it decreases
  • Trader dialog layout adjustment
  • Enumerable interface -- for things that have "id" property and are loaded from a Map, where the key is the id
  • StaticWaypointArrow -- waypoint with constant destination, gets removed when approached
  • Mark dungeon entrance location with a Waypoint on map when using a Dungeon Entrance Search Scroll
  • Max stat lvl is now 35 + New Luck & Accuracy effectiveness formulas & default formula for other stats
  • Player's movement speed now has a bottom limit -- 2 pixels/sec
  • "Identified" flag for AbstractEquipment items // identify items after equipping
  • Display "Cursed" label next to item's name if it's cursed (only when identified)
  • Display equip stat info only when item is identified
  • Map.putLoot(x, y) -- roll item category & then roll tier & put rolled items on the ground + max item stacks added using this method depend on Player's luck stat
  • Intelligence is now used as a coef for bonus EXP when gaining main Level EXP (Intelligence 35 = EXP x3)
  • TradeCategory -> ItemCategory // TODO: Generate category lists at runtime
  • AbstractEquipment "cursed" & "identified" flag rolls now depend on player's luck
  • Chance to add items from a random ItemCategory to dungeon floor based on player's luck
  • New item quantity cap system when rolling from ItemCategoryLists

Alpha v0.49.17.1

07 Aug 06:11
Compare
Choose a tag to compare

Changelog

  • Overlay info panel -- displays auto-updating labels with various info + Generalize RefreshableLabels & TextGenerators
  • Encumbrance (percentage of occupied inventory space) & its impact on Entity's speed -- 100% encumbrance decreases speed by 35%
  • OverlayMouseOverListener now ignores junk InputEvents
  • Overlay cleanup
  • Explicit gc calls during & after world loading and on screen switch & world.enter()

Alpha v0.49.17

05 Aug 14:30
Compare
Choose a tag to compare

Known bugs

None

Changelog

  • Crafting menu layout & behavior adjustments
  • Show tooltips when hovering over CraftButtons
  • Display quantity of item already in the inventory in Craft Button text
  • Display & animate caught fish textures & notification text from gamelog when fishing
  • Now if you click while there's no fish on the hook, the fishing rod'll get damaged

Alpha v0.49.16.2

05 Aug 08:28
Compare
Choose a tag to compare

Known bugs

  • Attempting to fish crashes the game

Changelog

  • Fix GameDialog-related bugs

Alpha v0.49.16.1 (Hotfix)

04 Aug 03:45
Compare
Choose a tag to compare

Known bugs

  • Using Scroll of Teleportation crashes the game
  • Character creation dialog can be closed with ESC, breaking current world

Changelog

  • Fix occasional crash on first in-game tooltip update
  • Update StatProgressBar immediately after setting SkillValue
  • Waypoint dialog layout adjustments
  • Ignore unequip hotkey (F) when holding a cursed item
  • Add padding to GameDialog button text

Alpha v0.49.16.1

05 Aug 07:36
Compare
Choose a tag to compare

Known bugs

  • Input bug -- sometimes keys don't get removed from heldKeys

Changelog

  • Rename GPS waypoints via Right click -> Rename
  • MapEntity.populateContextMenu() -- to add additional contextual options to the right click menu for MapEntity subtypes
  • CharacterCreationDialog & LevelupDialog now ignore keyboard input (& can't be closed with ESC, breaking the game in some cases)
  • Scroll of Teleportation no longer crashes the game
  • World size is now actually limited by WorldMap's xsz & ysz
  • Input dialog can now also be confirmed with Enter key
  • WorldMapSaver cleanup

Alpha v0.49.16

04 Aug 01:35
Compare
Choose a tag to compare

Known bugs (fixed in v0.49.16.1a)

  • Level progressbar in character info window doesn't get updated
  • Cursed items can still be unequipped by pressing "F" key
  • Text of GameDialog buttons should have some horizontal padding when text is wider than min button width
  • Game saver bug: Object Collection from Map.getObjects() gets saved to sector file... This shouldn't happen.

Changelog

Map Waypoints

  • Generalize Waypoint Arrows + custom waypoints -- craft GPS waypoints at the Mechanical workbench, place them on map & interact with them to activate navigation to them
  • Show description & distance to destination above the waypoint arrow
  • WaypointDialog -- show all waypoints in current sector, with ability to toggle visual navigation to them

QoL

  • "New!" label in front of items that have never been obtained before in craft menu

Other changes

  • Gui widget package structure cleanup
  • MapCell -- used to retrieve and store all possible contents of a map cell
  • GameWorldRenderer -> WorldRenderer
  • Player.doAfterMovement()
  • Calculate skill level progress % correctly
  • InputDialog -- will be used to rename map waypoints & for other things that may require user input