Since creatures are chemistry, a kind of alchemy can be applied to them.
Alchemy in Panacea being a man-made set of abstractions for chemical processes - much like what programming languages are to machine code. In fact, learning to see beyond alchemy and getting in touch with the "low level" is an integral part of the plot.
/-3.9(?0+2|1*2)
/-3.9(>-2.-1)
/-3.9(/.2/.4)
/.2-3/.4
/.-1/.4
/.4That's what a simple (
) attack might look like. The syntax isn't set in stone, as I'll likely end up using words rather than symbols, but for now let's just take apart what's there. It's confusing and I love it that way.
/-3.9(?0+2|1*2)/-3.9 is the
"output" or
"return value" of a potion, being applied to the contents of the parenthesis. The
/ always refers to body chemistry, namely health. The
-3 measures the numeric effect (negative values for damage, of course) and the
9 after the period is the index of the targeted value. Additionally, there may be special effects, but this one's a basic damage potion with just those two parameters.
And what's in the parenthesis? The question mark is a sign of user input, followed by the user's active movement pattern. That input must be processed before the potion can be applied, and the "return value" of the movement pattern is some position. The notation
2|1 describes the movement of a chess knight, with the addition of a zero allowing you to stand still, or to target yourself.
*2 marks the depth, meaning you're able to target any of the tiles a knight could reach in 2 moves.
(As you might start to smell at this point, I'm looking into tactical combat. It leads to pretty geometric patterns, suits the intended pacing and character of combat, and even makes sense in the context of a plot event about consciousness transfers.)
/-3.9(>-2.-1)So, okay. The user prepares to throw a potion 2 tiles to the left and 1 up. If there's a creature there, we should get some of its data. Otherwise 0 is returned and the potion is wasted on an empty tile.
/-3.9(/.2/.4)A
/. is a basic type of health
container, and the number after that measures its content. Once all containers reach 0, the creature dies. In line with my philosophy of "no cannon fodder enemies", one-hit kills require talent and typically some kind of combo effects.
9 was the index value, but it overflows with a 6-character string. In the case of the health data, we simply roll over, and there doesn't even seem to be side effects in this case. We hit the number 2 in the first container and thus are able to decrement it. Any non-number would mean missing the shot.
This is one of the interesting quirks of the system. The strongest potion isn't always the best since there are other factors to consider, like indexes and special effects. And that's just what I like to see.
Because the forward slash explicitly defines the used potion to affect health, you only receive the string of health data from the target. Otherwise you would receive all of its accessible data (movement patterns, current potion effects...) in return and be able to manipulate those.
It's all arithmetic from here.
/.2-3/.4
/.-1/.4
/.4The first container evaluates to -1 and disappears. With special containers representing body parts, this could alter attributes like the movement string, rewarding you for destroying the containers in a certain order. And inversely, destroying a container too early might have unpleasant side effects like making the creature go berserk.