WARNING: There's a special random algorithm inside the engine. It is impossible to use lua or any other random inside the script without breaking a game while running your script.
Changes in 1.5
Bug fixed where some layouts were not working with string expressions
getCardNameStringExpression(selector) added, returning name of the first card in selector, so you can use it to display card name whereever you want as string expression
getFactionCount(selector) added, counting number of distinct factions in selector
Reserve should now be working whenever you have any cards in reserve scroller
skillSacrificePloc exposed. Contains cards sacrificed from skills scroller(abilities etc)
moveToBottomDeckTarget(isHidden, order, playerExpression) added, allowing bottomdecking to any player’s deck
createCardFromIdEffect(id, locExpression) added allowing creating a card using card string id. Like“influence”
createAbilitySlot(t) now accepts t.displayText to be displayed when buffed card is zoomed in
winEndReason, concedeEndReason extra end game reasons exposed over API
appendEffect(effect) added, allowing to send an effect to the end of current effects queue(needed for endturneffect)
.OrBool(boolExpression) added to allow chaining simple bool check along with card bool expressions. selector.where(isChampion().And(isCardStunned().OrBool(yourBookCheckHere)))
player.cards.reserve added. you may put reserve cards there in script init data structure, no extra scripting needed
reservePloc exposed via API
randomStringExpression(expressions) added, allowing to pick one random from the list provided
setPlayerNameExpressionEffect(name, player) added, so you can set player name using string expression
noHeal player slot added, when on player - they can’t be healed
healOverride player slot added. when on player - they get healed for 5 on their turn start instead of discarding a card
healInsteadOfEffect(effect, healAmount) effect added. It heals for healAmount if healOverride is on current player
controllerPid added - current card controller. Different from owner - player the card originated from
isCardWithSlotString(slotKey, stringValue) - checks if card has a slot with a key and certain string value
isCardAffordableExt(extraGold) - same as isCardAffordable, but you may also specify amount if virtual gold added to you actual gold(usable for cases like
hasCardTag(tag) bool card expression added to check if card has given tag
IMPORTANT - set of mandatory player buffs changed. Check updated example scripts and update your scripts correspondingly
transformTarget now properly changes card face on the board
nuUndoEffect renamed to noUndoEffect
createNoStunSlot added
createNoDamageSlot added
onZeroHealthTrigger added
onLeavePlay trigger added
drawToLocation can now directly accept integer
createLayout(t) is now only way to create layouts for all types of items - cards, abilities, choices
deck management fixed and should be more flexible now. you may easily clear hero deck on start now. See example_script_vs_ai_advanced_deck_management.lua for reference
more frames. Frames with faction icon on another side added
Changes in 1.5
Changes in 1.4
Changes in 1.3
Changes in 1.2
Changes in 1.1