ID:1523557
 
(See the best response by Kaiochao.)
skill
proc/use()

Every /skill has use() proc which is called whenever the skill is used. To create a new /skill you need to make a child and set up its use() proc.


var/skill/active/action

skill/active

Player can perform only one active skill at a time.
Thus whenever use() of an active skill is called it will happen only if player isn't in performing another action, which could be achieved like this:
skill/active/name/use()
if(action) return // <- I want to get rid of this
// code


Ideal would be to just write actual commands that the skill does, but I can't find a way to achieve that without extra commands. (whether mentioned above or calling ..())

Question: Is that possible?/How could I achieve that?
Best response
You could perform the checks where you're calling use(). If you're using proper polymorphism, you'll only have one or two places you're calling use().
Yes, now that I think about it, I only need to call it once.
Thanks for the catch!