When editing tasks or other forms where you need to select from a dropdown list, you can now type into the list to filter on your selected text. For example, in Task Actions, you can type into the object list to find blue objects:
Or when overriding a task you can quickly find anything green:
This new feature defaults to being on, but if you prefer the lists as they were before, you can turn the feature off in Settings:
In addition to this, the following bugs have been fixed:
%text% reference doesn't work within conversations (ID 19182)
User function restrictions don't work in runner 35 (ID 19156)
The latest version of ADRIFT is now available for download. Aside from the usual host of bug fixes, I've focused a little bit on Events, giving them some love. The enhancements in a little more detail are as follows:
Events can now be Time based in addition to just Turn based. This means that instead of the event start, length and sub-events all being defined in terms of turns, they can be defined in seconds instead. This allows you to create events that trigger completely independently of user input.
Rather than having to independently setting the length of the event in addition to any sub-events, the length will automatically be calculated based upon the sub-events you add, making it quicker to create the event.
When sub-events are moved up or down, they stay selected, making it easier to move them further up or down the list.
Change the Name/Prefix properties of the object from a task (ID 19085)
It is now possible to dynamically change the article, prefix and name of an object, by setting the relevant property of the object in a task action. This can allow you to change how an object is referred to in the game, and removes the need to swap out objects with other objects if their description changes.
In addition to these, the following bugs have been fixed:
Adding exported module folders to the library empties folder (ID 19103)
If you copy a folder with tasks in it those copied tasks retains same keys (ID 19102)
Remove subevent/event control doesn't work (ID 19098)
Enter a < into the Runner command line prevents new lines from printing? (ID 19091)
No popup list for group-of-integer item functions (ID 19089)
LocationTo Item sub-functions not working (ID 19084)
When exporting a module, you can now opt to export only a particular folder, or just the items you currently have selected. This means you can easily create modules for particular parts of your game. There are two ways to do this - either right-click on a folder and select Export folder like so:
Or if you select Export Module from the main menu and if you have items selected, you will be prompted whether you wish to export just the selected items.
Runner Window Size Settings for Individual Adventures (ID 18913)
Last Window Size and position are now stored within a Blorb/EXE, so you can distribute your game with your preferred layout.
Advanced task option - Prevent merging of task outputs (ID 18824)
The default for ADRIFT, is to aggregate the output of tasks. So for example, if you type "get all" and there are two objects in the room, it will state "You pick up the red ball and the green ball" instead of "You pick up the red ball. You pick up the green ball."
You can now change this behaviour on a task by task basis by deselecting the Aggregate output, where possible checkbox on the Advanced tab of tasks.
I have added a new URand (Unique Random) function, which takes the same parameters as the Rand function (i.e. a single value, or a Min and Max values), but which will return Unique values within the range until all values are exhausted.
e.g. URand(1, 5) might return 3 the first time you call it, then 2 the next time, then 5, then 1 then 4. On the next call it will return any random number from the range and uniquely work through them again.
As well as the above enhancements, the following bugs have also been fixed:
Restriction string in PlayerMovement task returns "nothing" (ID 19039)
Copy/paste in the runner causes images vanish (ID 19038)
Locking down/password protect Blorb files (ID 19037)
Again, it has taken me quite a while to get this release out, having squeezed in development as and when I can, but hopefully it will be worth the wait. There are some exciting enhancements, amongst which is the ability to make debugging your games easier and more enjoyable.
ADRIFT 4.0 supported the ability for the game designer to change the background colour. This functionality is now available in ADRIFT 5.0, allowing background colours to be changed at any point within the game. The background will remain this colour until changed again, or set back to the default.
The format is: colour">
Where colour is a named colour (e.g. red, green, blue etc), a hexadecimal colour code (e.g. #FF8800, #123456) or simply "default" to set back to the default colour.
Add default background colour in Developer (ID 19009)
Default colours for the game can now be set in Developer. This allows the author to set the game colours appropriately for the atmosphere of the game. It also allows them to set a suitable background colour for any font colour changes within the game.
To set default colours, go to Options > General > Default Colours
The person playing the game can choose whether to allow these colours, or to use their own preferred colours.
Allow more than one of all reference types (ID 18985)
All reference types now support multiple references per task command. This means you can have %location1% and %location2% in the same command. Same goes for Number, Text, Direction and Item (previously only Object and Character supported multiple references).
Ability to copy-paste restrictions/actions (ID 18844)
Actions and Restrictions can now be copied and pasted within Developer. To access this feature, right-click on any Action or Restriction, where the new options will be available on the menu:
The debugger has been significantly improved, providing visibility and the option to change all property values of each of the item types. To see the properties, select the individual item within the debugger tree view, where they will be listed like so:
The property values can be changed by either selecting a new value from the dropdown, or by over-keying the value currently there. Changes will be reflected immediate within the game currently being played in Runner.
Sorry it has been quite so long since the last release. On a personal level there have been big changes at work, we've embarked upon a renovation project at home, and of course there's the birth of our beautiful baby boy. Anyway, it was about time I got a new release out, so here's a list of what's new:
Retain selections when changing object type
If you change an object from Static to Dynamic (or vice-versa), the location of the object is no longer reset to hidden. So a static object in a single location will default to a dynamic object within that same location, and similarly objects that are parts of characters default to being held by that character. This makes it easier to make changes to object types in the game, and is especially useful if you use the Add Object to Location menu item.
Scroll folders into view when selecting
When you select a folder from the tree view, that folder will automatically scroll into view if it happens to be off screen. This is useful if you have lots of folders open, and lose track of where each one is.
Right click location - Add Player-enters task
There is now a new menu item in the Add Specific Task menu when right-clicking on a Location to run a task whenever the player enters that location. This shortcut will create a System task with that trigger pre-set.
Allow Specific Tasks to be hidden.
The Prevent this task from being inherited checkbox is now available on Specific Tasks (as opposed to just General Tasks) when that Specific Task does not "use up" all its references from its parent task. This allows you to prevent the Specific Task appearing in the dropdown menu when creating other Specific Tasks, thus reducing unnecessary clutter.
"Return to Default" Option for Last Alternative Description
If you have a description that only displays once, you now have a new option that will "reset" the message back to the default description. This effectively allows you to cycle through the descriptions infinitely.
Show file name with save/load
When loading and saving games, the filename is now displayed. This is useful when the command "save" is used, so you are reminded which filename is in use, and also when looking back over transcripts.
Option to check if a character is visible to a character
A new restriction to check whether a character is visible to another character has been added. This takes closed objects into account.
Moving tasks etc. to folder
Items can now be dragged from a folder onto another folder in the tree view, making organisation even easier.
Multi Select Restrictions/Actions (with Shift/Ctrl)
Multiple restrictions and actions can now be selected in the task windows, allowing them all to be moved or deleted in bulk.
The remaining changes are bug fixes, and are as follows:
Can't use %direction% in expression if direction is "Up" (ID 18956)
Using Ctrl-v to paste text into search & replace creates a variable (ID 18949)
Crashdump if PartOf parent put inside container (ID 18944)
task actions ... will kill the developer. (ID 18940)
It has been a little while since the previous release, somewhat hampered by work, computer crashes and relocating the website, but the new release is finally available. This brings some exciting new enhancements, plus a few critical bug fixes. Allow item functions to filter by property value (ID 18857) Item functions have, since 5.0.26, been able to restrict a list (of characters, objects etc) to those having a particular property. This has been taken one step further by allowing to restrict by properties with a particular value. So for example, if you wanted to know how many heavy items the player was carrying, you could use the function %Player%.Held.Weight(Heavy).Count Allow Increase and Decrease variables (ID 18856) Rather than only allowing you to Set variables to a value (which means having to write a function when increasing or decreasing the value of a variable), you can simply select Increase or Decrease from the first dropdown on the Variable Action screen, like so:
Expose Characters in locations (ID 18796) Item functions that resolve to a Location can now access all characters within that location. For example, to list all characters in the same location as the Player you could use: %Player%.Location.Characters.List Allow a separate window layout per game (ID 18795) Each game you play will now store it's window layout separately. This is handy because you may resize the map in one game to be a particular size based on that game layout, but have a completely different layout for a different game. It is also very useful for the Multiple frames enhancement below. Relative Locations (ID 18794) You can now use an Item Function to reference one location from another. For example, to return the name of the location to the north of the player's current location, you could use: %Player%.Location.LocationTo(North).Name Allow List function to list items per row (ID 18788) The List Item Function can now take a parameter "Rows", which will return the list items on individual rows rather than being comma separated. For example: %Player%.Held.List(Rows) %item% (ID 64)
Tasks can now refer to Referenced Items, rather than just Referenced Objects or Referenced Characters. A Referenced Item is either a Location, Object or Character that the player referred to in the command.
For example, you could create an "examine %item%" task, that would match on "examine bird", "examine Hamish" or "examine bedroom". Properties of items (ID 18784) In conjunction with the new Referenced Items, properties can now be assigned to items generally. This can allow more efficient tasks to be written for properties that any item could have, such as odour, colour, sound etc. Referenced Text CONTAINS Keyword (ID 18706) Restrictions can now check to see whether a text variable contains a particular value, like so:
Add Front End For Handling Synonyms (ID 18631) Synonyms have been supported in ADRIFT 5 for some time now. However, there was no way to edit them in Developer. This has now been added.
User Defined Functions allow you to create your own custom functions, with parameters if necessary, that you can use within any text section or expression.
For further info, see http://help.adrift.co/UserDefinedFunctions.html. Multiple text output frames (ID 180) It is now possible to output text into a different text frame from the default. To do this, simply use the new "window" tag. This takes the name of the frame as an attribute, like so: %Player%.Location.Description This will bring up the additional frame, which can be repositioned wherever you want it, like so:
The remaining changes are bug fixes, and are as follows: Bug Fixes
Crash when executing multiple tasks using actions (ID 18853)
Properties for Objects, Locations, Characters and Groups can now be made "Private". This means that the new property will only be listed in the particular item that it has been made private to, thus not cluttering up all the other items with irrelevant properties.
In Settings, you can now specify that key names should be generated based off their item names.
So for example, if you create a character called "Bob", instead of his key being Character1, it will now be Bob. This makes any item functions more intuitive, e.g. you can type Bob.Held.Countinstead of Character1.Held.Countto get the number of items he is carrying.
Yes, ADRIFT finally has built in help. To access help, simply click on the question mark icon in the top-right of Developer, or click on the question mark on any screen to go straight to help for that section.
The help file has detailed help for each section, plus lots of tutorials. It is also still being added to. An online version can be found at http://help.adrift.co.
The menu when you right-click on an object or character has been enhanced to show more relevant tasks. This makes it easier to find the specific task you want, rather than a long list of tasks you would never use.
The remaining changes are bug fixes, and are as follows:
If you type the name of an event key in any text box followed by the dot character, it will now bring up a menu where you can select either Length or Position. These two new functions will return an Integer value of the length of the event (in turns), or the current position of the event from the start.
These can be useful, as you can create restrictions that an event must be before or after a certain position.
I have added a new checkbox on Events, so that if you have a delay at the start of the event (i.e. the event should start off waiting for X turns) and also you have the event set to repeat on completion, you can now select this new checkbox to wait again before the event starts, effectively allowing you to insert a pause between each run of the event.
Similar to the existing Either function, there is now a OneOf function. This function can take any number of parameters, and will return one of the parameters randomly. For example, you could embed the function into a piece of text like so:
The top card is the Queen of <# OneOf("club", "spade", "diamond", "heart") #>s.
Several users have had problems with the DirectX sound interface. As a result, I have added a new interface, using WinMM. This is now the default interface for sound, as it doesn't require additional DLLs (so Runner no longer requires the Microsoft.DirectX files). You can enable or disable individual interfaces in Runner Options > Advanced in case any particular interface causes a problem on your machine.
In addition to this, the debugger will now specify which interface is being used when a sound file is being played.
Expressions can now use the function Replace. This takes three parameters - the first is the piece of text to be altered, the second is the text to find, and the third is the text to replace the found text with. So for example,
Replace("one two three", "two", "TWO") would return "one TWO three".
ADRIFT 5 release 28 is now available for download from the ADRIFT website.
This is somewhat earlier than expected, but I felt it necessary in order to fix some irritating bugs for new users playing packaged games. There are two enhancements in this release; being able to import v4 style ALR files, and the ability to print out the map.