This princess will pick a childhood fling/sweet heart/person over everyone else in the kingdom. That is a horrendous leader, why would anyone ever decide to follow her if they know she will pick her favorites at the cost of everything. She wasn't that stupid at first, but the plot needed her to be.
Then again maybe they will just do "that" with "those people" so "that" will happen winning the war with "That thing". The story is fun but having characters say "do that thing" but not telling the audience multiple times per arc is simple writing that in bulk is terrible writing.
Instead of hiding the flood idea from the reader, show a quick layout of the fort and say the river will act as a moat. Don't mention the ditch could be flooded, but an astute reader will see it. Then when you trigger it, you had foreshadowing if people put the parts together.