# Odd question about quality changes

I want to have a quality change that is conditional on another quality (that is, the change is made to Quality A if and only if Quality B is at a given level). Any ideas on how to do that that do not involve squaring and/or potential divide-by-zero errors?
edited by sidhe3141 on 9/22/2013

I’ve tried to work that out too and I could be wrong, but I don’t think it is possible within the branches. It is If/Than statement, which I don’t think storynexus supports. At least not in a straightforward way. However, depending on what you are trying to accomplish they might be a roundabout way of doing it.

Sometimes I think designing and building a storynexus game requires just as much if not more problem solving than playing a finished one.
edited by ferguson4848 on 9/22/2013

All I can come up with is something like

<qualityChange>*([q:QualityB]-<Value> )/([q:QualityB].-<Value> )

Anyone know what happens if SN hits a divide-by-zero error?
edited by sidhe3141 on 9/22/2013

Another possibility: is there a way to clamp part of an expression to within a fixed range?

The method is to have two separate branches which hide or show based on the level of the first quality.

Quality A must be at 10 before Quality B increments:

Storylet branch one requires Quality A <= 9 and uncheck "visible when quality fails. The result branch increments Quality A by 1 (or whatever it needs to do).

Storylet branch two requires Quality A >= 10 and uncheck "visible when quality fails. The result branch increments Quality B.

The player will only see the branch that they qualify for, and cannot hit the result that increments quality B until quality A is 10 or more.

Let me know if I’ve misunderstood. :)

[quote=sidhe3141]Anyone know what happens if SN hits a divide-by-zero error?[/quote]Storynexus explodes, and you get taken away by Mr Eaten.

Or such was my conjecture. But testing revealed the existence of safeguards: one cannot divide by a quality level, but division by n + quality level is permitted. Division by n - quality level is also barred, but not division by n * quality level. No quality change is applied or reported when n * quality level is zero, and when it is greater than zero, the behaviour is bugged. But non-explosive.

(My other conjecture/episode of wishful thinking: Failbetter Games is proud to support non-standard analysis as well as non-binary gender. You now have aleph zero Blue Tigers…)
edited by Flyte on 9/22/2013

[quote=Hanon Ondricek]The method is to have two separate branches which hide or show based on the level of the first quality.

Quality A must be at 10 before Quality B increments:

Storylet branch one requires Quality A <= 9 and uncheck &quotvisible when quality fails. The result branch increments Quality A by 1 (or whatever it needs to do).

Storylet branch two requires Quality A >= 10 and uncheck &quotvisible when quality fails. The result branch increments Quality B.

The player will only see the branch that they qualify for, and cannot hit the result that increments quality B until quality A is 10 or more.

Let me know if I’ve misunderstood. :)[/quote]
I think that would work. It would take a while without a &quotClone Branch&quot option, though.

Thankfully, my design is such that I’m only making it conditional on one quality. Exponential runtime is bad enough; changes conditional on multiple qualities would be exponential coding time.
edited by sidhe3141 on 9/23/2013

It’s not so hard to do unless you have a lot of cards. In that case I make a template card and clone the whole thing with branches a bunch of times.

[li]
Now that is a great idea for many different situations!