Au nord de Kinchū, une longue bande de terre brisée rompt la monotonie rurale des environs. La Ceinture de Tsure semble à première vue n’être qu’une vaste étendue abandonnée, marquée par des broussailles, de rares talus et des champs en jachère. Mais pour qui connaît l’histoire, chaque aspérité du sol est un rappel d’un passé d’une extrême violence. Cette zone fut jadis le théâtre des ultimes affrontements entre l’armée impériale et les shinobi cannibales du Nord, aujourd’hui disparus mais jadis redoutés pour leurs rites inhumains et leur résistance fanatique.
Les cicatrices du conflit sont encore visibles : tranchées effondrées, cratères de projectiles, restes de fortifications, et fragments d’armes ou d’armures rouillés. À la saison des pluies, le sol remonte parfois à la surface des ossements blanchis, des lames brisées ou des talismans souillés.
De nos jours, la Ceinture de Tsure est devenue un terrain d'entraînement militaire officiel, fermé au public. Les forces du Tennō y mènent des exercices réguliers, allant de simples parcours d'obstacles à des simulations de combat grandeur nature. Le paysage est désormais balisé par des tentes kaki, des miradors temporaires, et des zones balistiques interdites. Les généraux aiment à dire que « cette terre a déjà tout vu — elle ne ment jamais ».
Les villages en périphérie vivent sous une tension diffuse : fierté d’être proches du cœur militaire de Kinchū, mais aussi peur silencieuse des disparitions inexpliquées. Quelques jeunes, en quête d’un avenir, se portent volontaires pour aider sur place comme aides de camp ou mécaniciens. Mais certains ne reviennent jamais, et leurs noms ne figurent dans aucun registre officiel.
On raconte encore, dans certaines chaumières, que les chants de guerre des anciens shinobi du Nord résonnent parfois entre les collines, portés par le vent — comme une malédiction qui refuserait de mourir.
SELECT DATEDIFF(CURRENT_DATE, msg.dateMessage) howManyDays,
lastMessage.participants, lieu.lblLieu, sousForum.nomSousForum,
sousForum.description, topic.idTopic, topic.nomTopic, topic.descriptionTopic,
topic.annee, topic.saison, msg.idComptePrin,
msg.idMessage, msg.dateMessage, msg.idUtilisateur, LEFT(msg.texteMessage, 400) as texteMessage,
msg.idForum, lastMessage.nbMessages, perso.nomPerso, perso.villagePerso, (SELECT urlAva FROM s_miniAvatars WHERE idPnj=0 AND idPersonnage=msg.idUtilisateur
ORDER BY avaPrincipal DESC, idAva ASC LIMIT 0,1) as miniAva
FROM (
SELECT MAX(idMessage) idMessage, MAX(dateMessage) dateMessage, COUNT(idMessage) as nbMessages,
JSON_ARRAYAGG(
DISTINCT JSON_OBJECT(
'idUtilisateur', t_message.idUtilisateur,
'nomPerso', s_personnage.nomPerso,
'villagePerso', s_personnage.villagePerso,
'miniAva', (SELECT urlAva FROM s_miniAvatars WHERE idPnj=0 AND idPersonnage=t_message.idUtilisateur
ORDER BY avaPrincipal DESC, idAva ASC LIMIT 0,1)
)
) AS participants
FROM t_message
LEFT JOIN s_personnage ON t_message.idUtilisateur=s_personnage.idUtilisateur
GROUP BY idTopic ) as lastMessage
LEFT JOIN t_message msg ON lastMessage.idMessage = msg.idMessage
AND lastMessage.dateMessage = msg.dateMessage
LEFT JOIN s_personnage perso ON msg.idUtilisateur=perso.idUtilisateur
LEFT JOIN t_topic topic ON msg.idTopic=topic.idTopic LEFT JOIN t_sousforumlieu lieu ON topic.idLieu=lieu.idLieu
LEFT JOIN t_sousforum sousForum ON msg.idSousForum=sousForum.idSousForum WHERE msg.idSousForum=:idSousforum AND 'gore' NOT IN (SELECT idType FROM t_topicType WHERE idTopic=msg.idTopic) ORDER BY msg.idMessage DESC
C'est calme ici...