Greetings,
Firstly, I am thinking of developing an IF/RPG hybrid (I know, doomed to fail, you think), and have yet to choose a development language, although TADS 3 is looking very cool to my very geeky brain.
Secondly, what a great job has been done on the documentation for TADS 3. A few of the questions listed below I’ve already found answers to, simply by exploring (in a haphazard manner) the various documents in the Author’s Kit. I have indicated which ones have already been answered with (Yes/No!) - no No’s yet!.
Thirdly, the RPG side of this project requires a different way of designing. For instance, I will need to make master object templates, and then populate instances of these objects throughout the game world, often dynamically during run-time. That is just one example of what I mean by “different way of designing”. (Traditional IF, I presume, requires single instances of very detailed objects, whereas an RPG (in my view) would require many instances of an object in various states.) Also, several gamist mechanisms will need to be employed, which serve to simplify reality rather than to exemplify it.
Fourthly, I don’t expect anyone to give me detailed instructions on how to achieve everything listed below (although, I certainly don’t forbid it!). A simple yes/no would be cool, and perhaps a keyword or two (in relation to a positive answer) so I can search the documentation.
- Can I create my own types (classes in TADS)? b[/b]
- Can I dynamically add/remove those types to objects during play?
- Can an over-ridden method in a sub-type defer to (call) the same method of it’s parent?
[list]i.e. In C# I can do a ‘base.SomeMethod’ - Can I check for user-defined types in logic statements?
i.e. if IsOfType(obj, type) - Can I iterate over subsets of objects based on type? b[/b]
- Can I iterate over objects within a certain context? (Like within a given room, container, inventory, etc.)
- Can I check for the existence of properties and methods on an object?
i.e. if HasProperty(obj, property) OR if HasMethod(obj, property) - Can I dynamically create/destroy objects during play?
- Do implicit actions cause actors to take a turn?
i.e. ‘eat apple’
(taking it first) [NPC takes a turn here]
You eat it. [NPC takes another turn here]
- Is there a way to turn off all implicit actions?
- If so, can I store the last [possibly a set] of implicit actions?
I ask this because I’d like to implement the following:
‘eat apple’
You’d have to take it first.
‘do so’
You take the apple.
‘continue’
You eat the apple.
OR
‘eat apple’
You’d have to take it first.
‘do so and continue’
You take and eat the apple.
Optionally, I would like the player to be able to utilize a command such as “/auto actions on” to re-assert implicit actions.
Does something like this exist in the Adv3 library already, or will I be forced to have fun creating it myself? (I require this for turn-based combat, and for other tactical considerations.)
12. Can I dynamically change the scope of rooms/objects via some function/method?
i.e. obj.InScope(false | true) OR SetScope(obj, false | true)
13. Is an object aware of when it comes into and goes out of scope?
i.e.
someobject: someClass
{
[list]InScope () {
}
OutScope () {
}
}[/list:u]
14. Can I redirect a verb on an object to another verb? b[/b]
i.e. ‘undo screws’ → ‘remove screws’ [/list:u]