"I already have coded it. I'm an app developer and I created the complete working framework for this game as a project" You had my curiosity, now you have my attention. What are you coding this in, Unity (with/out Playmaker)/Ink/ChoiceScript/GameMaker?
Now, again you've tried to point out how to do the combat and tower part, but you're still missing the issue at hand here. Affordances. A large number of games become respected from their ability to allow players to do things that are not obvious (i.e. hidden affordances). For example, in stealth hybrid games like Deus Ex:Human Revolution - to finish the level without killing a single person or even directly fighting the bosses in the remastered version is an outcome of the designers building those affordances intentionally. The problem in CYoAs is you're forced to tell the player their options, and often be disingenuous in how you conceal these 'hidden' paths/affordances. Say you want to show a negotiation with hostages, but if the player has been travelling around, he can use specific information to change the opinion of the other party, based on a page he may have read. Now when you're showing him his options, one becomes *Use specific information. This becomes a clear affordance, available even if the player did not really read the article in question but just clicked through the link, and now he has a 'better' solution at low cost to him. Managing this stuff is hard. When you're looking at a scene, each visual element sells itself, it hints at its existence, because you as the player can observe and interact with them at your will and agency, and find clever combinations without a prompt. That's just not the case in Text Only content, where you have to call out everything. You have to explicitly mention the tower exists, not let the player's curiousity about it guide them to it.
I'll given another example, Planescape Torment. While there are fixed chapter goals, and fixed text paths (technically), your ability to choose when you reach those paths affects the story. You can choose what content to interact with based on your decisions of where to wander, and what to do there. There are no signs: You have arrived in the underground, you can 1)Search for loot in random crates 2)Talk to the locals (followed by list of locals) 3)Attack the locals 4)etc... The problem here is that by enumerating the affordances clearly, there's hardly any exploration or serendipity. If you're told upfront that killing locals is an option (affordance), then just clicking through to it has nowhere near the impact value of the player pressing A, mousing over an NPC, realizing the attack cursor works, and they can kill an NPC, and then seeing the outcome of that action. Signposting that choice devalues it.
If you want to make a world work with signposted decisions, you'll have to pull and EndMaster, or something along the lines of Trails in the Sky, where you just code in SO MUCH DAMN CONTENT that your eyes bleed proofreading it all. (For reference, google the Curse of Kiseki). Effectively, you have to have so much content that even when it's all signposted, there's enough to explore (and enough different content each time), that the player feels like they're gaining something from the experience and not just 'clicking through'
We laugh at linearity because media has been doing it for millennia, but the other option - non-linearity, such as the fluidity you can have in a D&D setting or an interactive story by a wandering storyteller benefit from the ability of the GM/storyteller to make up the story based on general guidelines. The old classics like the Odyssey and Illiad were not remembered and recounted to the word in the time of the ancients, the teller would memorize various beats (AchillesxHector, the Trojan horse, the sacrifices, when the city fell), and make up the rest of the intermediate content on the fly. The problem with written CYoAs (or modern interactive media), is that you do not have the luxury of generating those paths on the fly. Everything has to be hardcoded, or the system to generate that hardcoding has to be hardcoded itself, which by logic is atleast one or two orders of magnitude a harder task.
So, what I mean to say is that you need to be very clear on what experience you're trying to build, how you're building interactivity in it, and what's a reasonable tradeoff in player agency vs cost to build (time, money, mental health). For more resources, I recommend you go through this thread Useful resources for designing a Storygame. I see enthusiasm and ideas in your core concept, but it'll be hell to realize, you'll have to make very smart choices.