Seems fine to me.
Distinctive enough to see it means something else.
And clever enough to give new ideas.
To avoid it being not used in case of multiple required techs there could be something like:
a) Single tech is always a requirement of any tech with <- and if more than one in previous brackets -> must used in that case before (at least one of them need to have ->).
b) Single tech is always a requirement of any tech with <- and in case of multiple techs in brackets before first is treated like a requirement, additional ones have to have ->
c) Single tech is always a requirement of any tech with <- and in case of multiple techs in brackets before all are treated like a requirement, unless at least one have ->
d) No matter if single or multiple - requirements passed to another level of techs need to have ->
So e.g. for a) that works:
Code: Select all
UNIT_ARCHER->[TECH_UPGRADE_UNIT_CROSSBOWMAN]->UNIT_CROSSBOWMAN->[<-TECH_UPGRADE_UNIT_ARCHER_E]->UNIT_ARCHER_E;
That won't:
Code: Select all
UNIT_ORC_SHAMAN->[TECH_ORC_UPGRADE_UNIT_WARRIOR_ELITE+TECH_ORC_UPGRADE_UNIT_SHAMAN_ELITE]->UNIT_ORC_SHAMAN_ELITE->[TECH_ORC_UPGRADE_UNIT_WARRIOR_MASTER+<-TECH_ORC_UPGRADE_UNIT_SHAMAN_MASTER]->UNIT_ORC_SHAMAN_MASTER;
But this is OK:
Code: Select all
UNIT_ORC_SHAMAN->[TECH_ORC_UPGRADE_UNIT_WARRIOR_ELITE+->TECH_ORC_UPGRADE_UNIT_SHAMAN_ELITE]->UNIT_ORC_SHAMAN_ELITE->[TECH_ORC_UPGRADE_UNIT_WARRIOR_MASTER+<-TECH_ORC_UPGRADE_UNIT_SHAMAN_MASTER]->UNIT_ORC_SHAMAN_MASTER;