fix: port to Eleventy

This commit is contained in:
Kazhnuz Klappsthul 2023-06-09 17:40:13 +02:00
parent a8f2037293
commit ae4bfbb350
74 changed files with 4309 additions and 20652 deletions

View File

@ -13,9 +13,8 @@ steps:
- name: build
image: node:latest
commands:
- npm install -g gulp
- npm i
- npm run build
- npx @11ty/eleventy
- name: deploy
image: drillster/drone-rsync
@ -23,7 +22,7 @@ steps:
hosts:
from_secret: deploy_host
target: /var/www/vault.kobold.city
source: dist/*
source: _site/*
user:
from_secret: deploy_user
key:

26
.gitignore vendored
View File

@ -1,3 +1,25 @@
dist/
# Generated files
package/generated*
# Ignore installed npm modules
node_modules/
public/
# Ignore build tool output, e.g. code coverage
.nyc_output/
coverage/
# Ignore API documentation
api-docs/
# Ignore folders from source code editors
.vscode
.idea
# Ignore eleventy output when doing manual tests
_site/
package-lock.json
# Ignore test files
.cache
test/stubs-layout-cache/_includes/*.js

11
_data/metadata.js Normal file
View File

@ -0,0 +1,11 @@
module.exports = {
title: "Kazhnuz' Vault",
url: "https://vault.kazhnuz.space/",
language: "fr",
description: "Un site pour mes vieux projets abandonnés",
author: {
name: "Kazhnuz",
email: "kazhnuz@kobold.cafe",
url: "https://kazhnuz.space/"
}
}

View File

@ -0,0 +1,19 @@
---
layout: layouts/parent.njk
---
<main id="skip">
<div id="titlebar">kazhnuzvault.html</div>
<div id="page">
{{ content | safe }}
</div>
</main>
<aside id="more-info">
<div class="card">
<h2 class="visually-hidden">Table of Content</h2>
{{ content | toc | safe }}
</div>
<div id="links">
{% renderFile "./_includes/websites.md" %}
</div>
</aside>

View File

@ -0,0 +1,9 @@
---
layout: layouts/parent.njk
---
<main id="skip">
<div id="titlebar">kazhnuzvault.html</div>
<div id="page">
{{ content | safe }}
</div>
</main>

View File

@ -0,0 +1,36 @@
<!doctype html>
<html lang="{{ metadata.language }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ title or metadata.title }}</title>
<meta name="description" content="{{ description or metadata.description }}">
{#- Atom and JSON feeds included by default #}
<link rel="alternate" href="/feed/feed.xml" type="application/atom+xml" title="{{ metadata.title }}">
<link rel="alternate" href="/feed/feed.json" type="application/json" title="{{ metadata.title }}">
<link rel="icon" type="image/x-icon" href="/favicon.png">
{#- Uncomment this if youd like folks to know that you used Eleventy to build your site! #}
<meta name="generator" content="{{ eleventy.generator }}">
{%- css %}{% include "public/css/index.css" %}{% endcss %}
<style>{% getBundle "css" %}</style>
</head>
<body>
<a href="#skip" class="visually-hidden">Skip to main content</a>
<div class="wrapper">
<nav id="sidebar">
{{ collections.all | eleventyNavigation | eleventyNavigationToHtml({anchorClass: "itemLink",activeAnchorClass: "active",activeListItemClass: "active",activeKey: eleventyNavigation.key, listClass: "nav", listItemClass: "item"}) | safe }}
</nav>
{{ content | safe }}
</div>
<footer><a href="https://creativecommons.org/licenses/by-sa/4.0/"><img src="/img/cc-by-sa.png" /><span class="visually-hidden">Tout le contenu de cette page est sous licence Creatve Common Attribution - Partage à l'identique.</span></a></footer>
<!-- Current page: {{ page.url | htmlBaseUrl }} -->
</body>
</html>

View File

@ -0,0 +1,28 @@
---
layout: layouts/parent.njk
---
{# Only include the syntax highlighter CSS on blog posts #}
{%- css %}{% include "node_modules/prismjs/themes/prism-okaidia.css" %}{% endcss %}
{%- css %}{% include "public/css/prism-diff.css" %}{%- endcss %}
<h1>{{ title }}</h1>
<ul class="post-metadata">
<li><time datetime="{{ page.date | htmlDateString }}">{{ page.date | readableDate }}</time></li>
{%- for tag in tags | filterTagList %}
{%- set tagUrl %}/tags/{{ tag | slugify }}/{% endset %}
<li><a href="{{ tagUrl }}" class="post-tag">{{ tag }}</a>{%- if not loop.last %}, {% endif %}</li>
{%- endfor %}
</ul>
{{ content | safe }}
{%- if collections.posts %}
{%- set previousPost = collections.posts | getPreviousCollectionItem %}
{%- set nextPost = collections.posts | getNextCollectionItem %}
{%- if nextPost or previousPost %}
<ul class="links-nextprev">
{%- if previousPost %}<li>Previous: <a href="{{ previousPost.url }}">{{ previousPost.data.title }}</a></li>{% endif %}
{%- if nextPost %}<li>Next: <a href="{{ nextPost.url }}">{{ nextPost.data.title }}</a></li>{% endif %}
</ul>
{%- endif %}
{%- endif %}

9
_includes/postslist.njk Normal file
View File

@ -0,0 +1,9 @@
{%- css %}.postlist { counter-reset: start-from {{ (postslistCounter or postslist.length) + 1 }} }{% endcss %}
<ol reversed class="postlist">
{% for post in postslist | reverse %}
<li class="postlist-item{% if post.url == url %} postlist-item-active{% endif %}">
<a href="{{ post.url }}" class="postlist-link">{% if post.data.title %}{{ post.data.title }}{% else %}<code>{{ post.url }}</code>{% endif %}</a>
<time class="postlist-date" datetime="{{ post.date | htmlDateString }}">{{ post.date | readableDate("LLLL yyyy") }}</time>
</li>
{% endfor %}
</ol>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 306 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

19
content/404.md Normal file
View File

@ -0,0 +1,19 @@
---
layout: layouts/home.njk
permalink: 404.html
eleventyExcludeFromCollections: true
---
# Content not found.
Go <a href="/">home</a> and try another pages.
<!--
Read more: https://www.11ty.dev/docs/quicktips/not-found/
This will work for both GitHub pages and Netlify:
* https://help.github.com/articles/creating-a-custom-404-page-for-your-github-pages-site/
* https://www.netlify.com/docs/redirects/#custom-404
-->

View File

@ -0,0 +1,3 @@
module.exports = {
eleventyExcludeFromCollections: true
}

27
content/feed/feed.njk Executable file
View File

@ -0,0 +1,27 @@
---
# Metadata comes from _data/metadata.js
permalink: /feed/feed.xml
---
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="{{ metadata.language }}">
<title>{{ metadata.title }}</title>
<subtitle>{{ metadata.description }}</subtitle>
<link href="{{ permalink | htmlBaseUrl(metadata.url) }}" rel="self"/>
<link href="{{ metadata.url | addPathPrefixToFullUrl }}"/>
<updated>{{ collections.posts | getNewestCollectionItemDate | dateToRfc3339 }}</updated>
<id>{{ metadata.url }}</id>
<author>
<name>{{ metadata.author.name }}</name>
<email>{{ metadata.author.email }}</email>
</author>
{%- for post in collections.posts | reverse %}
{% set absolutePostUrl %}{{ post.url | htmlBaseUrl(metadata.url) }}{% endset %}
<entry>
<title>{{ post.data.title }}</title>
<link href="{{ absolutePostUrl }}"/>
<updated>{{ post.date | dateToRfc3339 }}</updated>
<id>{{ absolutePostUrl }}</id>
<content type="html">{{ post.templateContent | transformWithHtmlBase(absolutePostUrl, post.url) }}</content>
</entry>
{%- endfor %}
</feed>

29
content/feed/json.njk Normal file
View File

@ -0,0 +1,29 @@
---
# Metadata comes from _data/metadata.js
permalink: /feed/feed.json
---
{
"version": "https://jsonfeed.org/version/1.1",
"title": "{{ metadata.title }}",
"language": "{{ metadata.language }}",
"home_page_url": "{{ metadata.url | addPathPrefixToFullUrl }}",
"feed_url": "{{ permalink | htmlBaseUrl(metadata.url) }}",
"description": "{{ metadata.description }}",
"author": {
"name": "{{ metadata.author.name }}",
"url": "{{ metadata.author.url }}"
},
"items": [
{%- for post in collections.posts | reverse %}
{%- set absolutePostUrl = post.url | htmlBaseUrl(metadata.url) %}
{
"id": "{{ absolutePostUrl }}",
"url": "{{ absolutePostUrl }}",
"title": "{{ post.data.title }}",
"content_html": {% if post.templateContent %}{{ post.templateContent | transformWithHtmlBase(absolutePostUrl, post.url) | dump | safe }}{% else %}""{% endif %},
"date_published": "{{ post.date | dateToRfc3339 }}"
}
{% if not loop.last %},{% endif %}
{%- endfor %}
]
}

35
content/index.md Normal file
View File

@ -0,0 +1,35 @@
---
layout: layouts/base.njk
eleventyNavigation:
key: Accueil
order: 0
---
# {{ metadata.title }}
Bienvenue dans mon petit grenier ou je met tout mes vieux trucs !
Cette page est une petite page pour organiser un peu tout mon bazar et rendre plus simple à lire les vieux trucs que je voudrait poster. Vous y trouverez à la fois des vieux projets, des vieux concepts d'histoire, et d'autres petits trucs que j'ai fait pour le fun.
Tous ces contenus sont utilisable sous les termes CC BY-SA. (Creative Common Attribution - Partage à l'Identique). Certains de ces trucs reprennent cependant des éléments privateurs (venant de licences de JV, par exemple) en tant que fanfictions. Les aspects opensources ne sont que ceux que j'ai inventés. Tout n'est pas forcément utilisable (certains vieux trucs j'ai du utiliser une vieille VM avec un GM8 cracké pour pouvoir les retester)
Ce site utilise Eleventy
## Ce que vous pourrez trouver ici
- Des vieux concepts de projets
- Peut-être du vieux code
- Des vieux textes et constructions d'univers que j'ai mis de côté.
- En vrai pas grand chose d'intéressant, c'est surtout pour garder mes vieux trucs quelque part si je les reprends.
## Updates and history
- (**2023-06-09**) Relancement du site
- (**2021-01-24**) Lancement initial du site
## Crédits
- Site généré grâce à [Eleventy](11ty.org)
- Icone provenant de la version 2.9 du pack d'icone de GNOME
- Fond d'écran venant originellement de GNOME
- Design inspiré du theme lilac de Windows 95

View File

@ -1,3 +1,55 @@
---
layout: layouts/base.njk
eleventyNavigation:
key: Histoire
parent: Sonic Monado
order: 0
---
# Histoire et thematiques
L'histoire de MOnado Adventure se passe dans la base de Monado Prime, une biosphere artificielle en circuit fermé habitée conçue en partenariat entre les Fédérations Unis, G.U.N. et l'entreprise Rimlight. Cette base est construite sur l'île rocheuse de Fortitude Rock, une île quasi-désert située dans les zones polaires. Présentant de nombreux espaces de vies et biomes artificiels, la base est considérée comme l'example à suivre pour les futurs conquêtes spatiales. La base est autonome sauf en lumière (elle a besoin de la lumière du soleil pour faire pousser les plantes), c'est à dire qu'elle est capable de produire elle même tout ce dont elle a besoin en terme d'eau, nourriture et air.
Sonic, Tails et Amy (équipe de début de jeu) arrivent sur l'île suite à un appel du *Directeur de Monado Prime*, qui est inquiêt de l'arrivée de robot d'Eggman dans certains biomes de l'île. Il a peur que le docteur tente de s'emparer de la base et d'en faire un outil de conquête à la MeteorTech. Il a alors demandé de l'aide aux trois mobiens pour qu'ils se débarrassent de la présence du savant fou dans la biosphère.
Cependant, la base recèle bien des mystères, et Sonic & compagnies comprendront bien vite qu'on ne peut comprendre la menace présente que subit la biosphère, sans découvrir tout son passé...
## Rôles dans l'histoire
L'un des principes de Sonic Monado Adventure est que comme dans Sonic Adventure, chaque personnage à un point de vue différent sur l'intrigue, et a un objectif et un rôle narratif différents. Le rôle de chaque personnage sera
- **Sonic** doit empêcher le plan d'Eggman de porter ses fruits, et évitera les intrigues secondaires. Son histoire portera sur les dégats que fait Eggman, et la capacité de Sonic à l'empêcher.
- **Tails** doit sauver les habitants de la ville. Sonic histoire portera sur la différence entre un héros et un sauveteur, et lui fera gagner en autonomie en le montrant *complémentaire* avec Sonic.
- **Amy** va se pencher sur certains des soutiens qu'Eggman possède dans l'île, et sur la situation du jeune Ankou. Son histoire portera sur le combat contre les injustices existantes, et sur la manipulation.
- **Knuckles** va ignorer totalement la base (la considérant comme juste un nouveau jouet des humains sur leur planète), mais tentera de purifier l'énergie chaotique de l'île. L'histoire se penchera sur le lore des Erebiens.
- **Shadow** va faire des recherches sur l'incident de Monado Prime, et chercher le traitre ayant fourni les "clefs" de l'ex-centrale chaotique à Eggman. Son histoire portera sur le fanatismes et la manière dont on peut projeter nos croyances dans la réalité.
- **Cream** va tenter d'aller retrouver Gemerl, qui a disparu lors de l'attaque d'Eggman. Son histoire montre que cette petite lapine est précieuse et courageuse.
## Inspirations/Références
Ici je compile quelques unes des inspirations que je voulais mettre en avant et réutiliser pour construire mon histoire. Ce sont des lignes directrices qui pouvaient m'aider à miser sur certains aspects de l'histoire.
### Légendes et histoire
- Tout le concept d'Hybris/Phronésis sont inspiré des valeurs grecques. LEmpire Erebiens (dont le coeur du pouvoir est l'Hybris Altar) chute à cause de son intempérance et de leur orgueil, comme les héros grecs. Le passage de la ville de Phronésis à l'autel d'Hybris représentent l'abondon de la prudence/sagesse dans la quête du grandiose (qui est ici moqué). Le jeu est entièrement fondé sur la paranoïa qui prend les personnes en situation de pouvoir.
- Les quatres épreuves de Morrigans sont basé sur les quatre vertues telle que présentées par Platon.
- L'histoire de Monado Prime est inspiré de l'île d'Ys : Gradlon était le roi d'Ys (d'où Ys Gradlon), et Dahut celle qui a laissé le diable entrer dans lîle, la condamnant à sombrer sous les flots. Une légende raconte que le jour ou Paris sombrera sous les flots, lîle dYs remontera, ce qui représente un peu les propos du jeu, puisque les technologies Erebienne sont ramenée par Eggman pour faire sombrer symboliquement les capitales du monde.
- Le nom des bases monado est basé sur les monade de Leibniz, mais en vrai c'est plus pour la classe.
### Sciences
- La base de Monado Prime est inspirée des projets de biospheres comme [Biosphère 2](https://fr.wikipedia.org/wiki/Biosph%C3%A8re_II), [BIOS-3](https://en.wikipedia.org/wiki/BIOS-3) ou [MELiSSA](https://en.wikipedia.org/wiki/MELiSSA).
- Lidée de lenvironnement interdit après une explosion de centrale, avec contamination est assez aisé à deviner, je suppose :p
# Personnages non-jouables
Etant un jeu de style Adventure, le projet contient un certain nombre de personnage secondaire lié à l'intrigue.
@ -98,4 +150,4 @@ Docteure en énergie chaotique arrivée sur Terre pour pouvoir approfondir plus
Sans doute l'une des plus optimiste et des forces principale du projet (par rapport à une Morrigan plus prudente)
Elle est celle qui a convaincu une partie des douze chef d'accepter le projet. Elle est morte lors de l'incident. À cause de cela, elle est considérée comme coupable de toute ce qui s'est passé durant ce projet, et son fils unique Ankou subit les contrecoups de cette réputation.
Elle est celle qui a convaincu une partie des douze chef d'accepter le projet. Elle est morte lors de l'incident. À cause de cela, elle est considérée comme coupable de toute ce qui s'est passé durant ce projet, et son fils unique Ankou subit les contrecoups de cette réputation.

View File

@ -1,10 +1,29 @@
# Gameplay
---
layout: layouts/base.njk
eleventyNavigation:
key: Sonic Monado
order: 1
---
# Sonic Monado Adventure
Ce document est une mise au propre du scénario et de quelques éléments de design général que javais prévu pour mon projet de fangame « Project Millenium » (que j'ai nommé ici Sonic Monado Adventure), qui était un fangame Sonic en 2D, inspiré cependant de lère Adventure (pensez Sonic FGX, ou Sonic Fusion). Ce document contiendra donc tout ce que javais fait niveau scénario, backstory, personnages, etc. Il présentera aussi de manière générale les niveaux qui existaient dans le jeux, soit 7 niveaux de 3 acts, et 2 de 4 acts.
Le projet devait se dérouler entièrement dans la base de Monado Prime, une biosphère artificielle. Les personnages présents étaient Sonic the Hedgehog, Miles « Tails » Prower, Knuckles the Echidna, Shadow the Hedgehog, Amy Rose et Cream the Rabbit.
Le but n'est pas forcément de révolutionner la licence, et le projet n'hésitait pas à être fortement référentiel (par exemple de nombreuses structures du jeu sont inspirée directement de Sonic Adventure ou Sonic Adventure 2), étant un petit plaisir que je me faisais.
## Présentation du projet
Sonic : Monado Adventure était un fangame Sonic the Hedgehog inspiré des Sonic Adventure, mais en deux dimension. Le but était de mélanger avec un Sonic Advance les particularités et les possibilités d'un Sonic Adventure en terme de narration (une histoire construite avec des enjeux, du développement de personnage, ordre des stages dictés par le scénario et non scénario dicté par l'ordre des stages) ainsi que l'aspect plus "RPG" de ces titres (nouvelles capacités à débloquer, HUB world) avec le style générale d'un Sonic Advance.
Le jeux reprenait quelques idées des jeux Rush (notamment de Rush Adventure), tel que les matériaux ou les tableaux de missions, et sinspirait légèrement de quelques tentatives de recréer en 2D des jeux Adventure-like ou de jeux similaires.
## Gameplay
Sonic Monado Adventure aurait du se jouer globalement comme un Sonic Advance, mais avec un bouton d'action supplémentaire pour les actions contextuelles, à la Sonic Adventure 2. Les personnages auraient eut un gameplay similaire à ceux qu'ils avaient dans les Sonic Advances ou Adventures. Le jeu proposera 6 personnages jouables dans l'aventure principale : Sonic, Tails, Knuckles, Amy, Cream, Shadow. Le jeu aurait contenu également des sub-games tels qu'une phase "Sky Chase" (plus proche de celle d'Adventure que de Sonic 2), des jardin des chao et quelques éléments à collectionner et améliorer.
## Base du gameplay
Le gameplay devait être inspiré principalement des Sonic Advance pour le gameplay. Le jeu utilise un moteur 2D avec une physique en 360°, permettant de gérer les pentes et un gameplay à la Sonic. Chaque personnage à le même core gameplay, avec les mêmes statistiques, le spin-jump et le spin dash seuls trois données changeront :
Chaque personnage à le même core gameplay, avec les mêmes statistiques, le spin-jump et le spin dash seuls trois données changeront :
- L'action secondaire (B) - Généralement une attaque
- L'action aérienne (A+A) - Généralement un mouvement aidant au plateforming
@ -33,4 +52,4 @@ Le jeu peux avoir deux type de transition entre les niveaux :
- Soit il sera directement transmis au niveau suivant lorsque le scénario le demande.
Lorsque les six scénario sont fini, et que les 7 Chaos Emerald ont été récupéré dans le scénario de Sonic, le joueur peut sélectionner la Final Story, qui lancera un dernier mini-scénario amenant à un boss final en Super Form.
Lorsque les six scénario sont fini, et que les 7 Chaos Emerald ont été récupéré dans le scénario de Sonic, le joueur peut sélectionner la Final Story, qui lancera un dernier mini-scénario amenant à un boss final en Super Form.

View File

@ -1,3 +1,11 @@
---
layout: layouts/base.njk
eleventyNavigation:
key: Sonic the Hedgehog
parent: Sonic Monado
order: 3
---
# Sonic the Hedgehog
Le hérisson le plus rapide du monde est de retour ! Orgueilleux, fier et inarrêtable, Sonic est toujours lamoureux de la liberté et de la course quil a toujours été. Étonnamment plus malin quil le laisse paraître, le hérisson a été appellé par le dirigeant de la zone avec Tails et Amy afin daider face à une invasion de Badniks.

View File

@ -1,3 +1,11 @@
---
layout: layouts/base.njk
eleventyNavigation:
key: Miles "Tails" Prower
parent: Sonic Monado
order: 4
---
# Miles "Tails" Prower
Tails est arrivé sur Monado Prime pour aider Sonic et Amy à défaire les nouveaux plans d'Eggman. Cependant, lors d'une attaque sur Eggman, il se retrouvera capturé par ce dernier. Le petit renard vivra alors sa propre aventure, sauvant les habitants de la ville tandis que Sonic affronte le dictateur.

View File

@ -1,4 +1,70 @@
# Le Projet Millenium
---
layout: layouts/base.njk
eleventyNavigation:
key: Univers et lore
parent: Sonic Monado
order: 1
---
# Sonic Monado Adventure - Univers et lore
> [!NOTE]
> Tout ce lore n'avait pas pour objectif d'être constamment explicitement dans le jeu. Il servait à nourrir surtout mon écriture, quelques dialogues que je pourrais mettre aux PNJ, et si je le sentais, créer un codex avec toutes ces informations.
Comme Sonic Adventure et Sonic Adventure 2, le projet visait à introduire sa propre histoire tout en étant lié à des éléments déjà existant des jeux précédant, afin de créer de la continuité sans verser dans lhistoire qui nexiste que pour expliquer des trucs des jeux précédant. Cependant, contrairement à SA/SA2, Sonic : Monado Adventure utilise explicitement un monde pour décrire l'univers de Sonic, ici le two-world, afin de l'utiliser pour construire son intrigue et les différents éléments qui vont en faire un jeu.
Le but de cette page est donc de décrire un peu ici les éléments du monde de Sonic utilisés et remixés pour former l'univers de ce jeu.
## Le Two-World
> [!NOTE]
> De nombreux éléments de cette vision du two-world viennent d'une autre version antérieur de mon envie de faire un "Sonic Advance+Adventure" : Sonic Adventure 0. Ce projet avait comme principe d'être une "désadataptation" des premiers épisodes de Sonic X, tentant d'imaginer ce qu'aurait pu être un jeu qui aurait inspiré cette saison 1 pour dans Sonic X (même si en vrai vers la fin ça devenait assez différent). "L'incident de Christmas Island" était le scénario de ce jeu, et le nom de Christmas Island sert pour donner l'idée aux humains que Sonic viendrait de cette île, puisque c'est ici qu'il a été vu pour la première fois.
Sonic : Monado Adventure se base au niveau de son univers sur le concept des deux mondes (à la Sonic X/IDWSonic… et avec un brin de stargate dedans) : Deux "mondes" (ici des planètes d'un même système planétaire), et les personnages peuvent passer de l'un à l'autre. Ces deux mondes sont ceux de la Terre, une planète organisée et peuplée surtout par les humains, et une planète surnommée nommé le "monde des animaux" (Mobius), peuplé surtout par des animaux anthropomorphiques intelligents. Mobius est dans ce lore un peu un équivalent de Mars dans notre système planétaire, et les deux planètes sont assez proche.
Le passage d'un monde à l'autre est conduit par l'existence de *Super Warp Ring*, des immenses anneaux qui ont le pouvoir d'être des passage entre les différentes planètes du système solaire, restent d'une ancienne civilisation. Ils étaient inactif depuis des milliers d'année quand les *expéditions interdimensionnelles* d'il y a 50 ans, puis *l'incident de Christmas Island* sur Terre ont provoqué leur réactivation, et la connexion des deux mondes. Depuis, les deux mondes se connaissent, et doivent coéxister, non sans quelques… réserves, parfois.
### Les quatres grandes civilisations
Les quatres grandes civilisations sont les quatres peuples qui ont atteint la possibilité d'être des civilisations interplanétaires, et qui ont succèssivements réussi à construire des créations hors de leur planète d'origines. Les quatres proviennent de Mobius, mais les humains sont en phase de devenir la *cinquième grande civilisation*, même si leur technologies spatiales manquent encore de capacités
- La **première grande civilisation** (-10 000 ans) est encore peu étudiée, parce qu'une grande partie de leurs créations ont disparu du fait de l'érosions. Ils ont construit de nombreux bâtiments dans tout le système solaire, et sont surnommé les premiers. Les plus grands restes de leur civilisations sur les deux planètes habitées seront insinué comme étant les *temples de gaïa*. Ils sont à l'origine des Warp Rings. Ils sont surnommés les *Premiers* et autres surnoms vagues du genre.
- La **seconde grande civilisation** (-9000 ans) est une civilisation centralisée, qui a surtout vécu sur Mobius. Elle sera insinuée comme étant un équivalent des *Trolls* d'ArchieSonic, mais sans plus de détails.
- La **troisième grande civilisation** (-7500 ans) est la *civilisation d'Erebe*, à l'origine des premières constructions explotant les *veines chaotiques*. Cette civilisation est le coeur du scénario de Knuckles, et Monado Prime est construit sur une faille utilisé par cette civilisation.
- La **quatrième grande civilisation** (-5000 ans) est la civilisation qui est à l'origine d'Angel Island et de robots de guerres nommée les Gizoïd. Il était prévu d'en faire une civilisation qui a réduit en esclavage le peuple des échidnés (le Knuckles Clan tel qu'on le voit dans Adventure sont des descendant d'esclave s'étant révolté durant la chute de cette civilisation, et récupérant les CE pour affronter des descendants de la civilisation).
### Le recontact
Le monde des animaux a été en partie redécouvert durant les grands débuts de la conquête spatiale terrestre, il y a de cela ~75 ans. La découverte des warp rings inactifs, le lancement de futurs projets comme le projet ARK, et l'exploration de Mobius par les premiers humains (dont le jeune professeur Gerald Robotnik, qui étudiera notamment beaucoup la similarité sur Terres de ruines et de représentations sur Mobius présentant des échidnés).
Cependant, le recontact se brisera lors du durcissement de la ligne politique terrestres il y a 50 ans, du à la fois de troubles dans les Federations Unis naissantes, et du shutdown de l'ARK du à des suspiscion envers le professeur Gérald Robotnik et l'incident de l'activation d'un robot antique.
## La Terre
La "Terre" de Sonic Monado Adventure est une terre alternative à la notre, ou les pays sont principalement remplacé par leurs Erzats, et où la forme des continent est légèrement différent.
Cette Terre possède comme principale puissance politique les *Fédérations Unis*, et comme plus grande force militaire les *Guardian Units of Nations* (ou GUN).
### Les Fédérations Unis
Les Fédérations Unis sont la république parlementaire avec un régime présidentiel qui couvre une grande partie de la planète Terre. Plus puissante nation de la planète, elle a subit plusieurs crise depuis le retour du Docteur *Ivo Robotnik* sur Terre lors de l'incident de Christmas Island.
Elles peuvent être vu comme quelque chose entres les Nations-Unis et les États-Unis. Le but de cet état est de garantir un développement tout en respectant les libertés des pays qui en font partie (et qui conserve une certaine indépendance). L'île de Sunlit Island est sous contrôle des Fédérations Unis, avec comme représentant le maire de la ville de *Sunlit Metropolis*.
Leur technologie est majoritairement contemporaire, mais a réussi de grande avancée depuis 50 ans à l'aide des technologies chaotique, en grande partie découvertes par le professeur Gérald
Dans le jeu, les Fédérations Unis, n'ont pas une présence très forte dans le jeu, en tout cas pas directement.
### Les Gardian Units of Nations
Les Gardian Units of Nations (ou G.U.N. parfois orthographié en GUN) sont la principale force militaire des Fédérations Unis, et ont comme rôle de protéger à la fois les Fédérations Unis, et à la fois les pays alliés. Cette armée est dirigé par un Commandant.
L'armée est actuellement en grande partie dédiée à affronter le Dr. Ivo Robotnik, qui vise à conquérir le monde, mais narrive pas à le localiser et à lancer des attaques précises. La capacité à disparaître de ce savant étant déconcertante, et ses moyens encore inconnus. L'inefficacité de GUN à vaincre les menances originaire du monde des animaux est la source d'une méfiance chez certaines personnes.
## Le Projet Millenium
Le projet Millenium est un vaste projet démarré par les fédérations-unis il y a de cela 30 ans, se basant sur les nombreuses recherches effectuées durant le recontact, ayant pour but d'être un projet global pour mettre la civilisation des Fédérations Unis au niveau des quatres grandes civilisations. Il contenait notamment un volet énergitique (provoquant la fondation de Rimlight et des Chaos Central), d'un volet militaire (fondant les satellite militaire Erinye) et d'un projet spatiale (provoquant la fondation des bases Monado).
@ -58,4 +124,4 @@ Certains partisant de la ligne dure des Federations Unis commencèrent à voir d
Dahut, voyant lévolution du projet, commença à prendre peur. Elle tenta de sopposer à Gradlon, mais celui-ci la fit enfermer. Le travail fut maintenu, tandis que le Chaos Core fut encore travaillé par une plus petite équipe, une partie des membres étant dévoué à la stabilité de la veine. Dahut finit par sévader, et forma une machine permettant de saturer lénergie chaotique en la renvoyant en boucle infinie. Elle préférait saboter le projet, et mettre en jeu la vie d'une partie du personnel de la centrale que de laisser Gradlon faire ses plans.
Lors d'un test, elle provoqua donc un sabotage qui provoqua une surtension, détruisant la centrale (qui ne sera remis en état que des années plus tard par Eggman) et contamina une partie des ruines Erebienne. Dahut, Morrigan et Ys Gradlon disparurent dans l'incident. Le reste de la base (grace aux système de protection hermétique) ne fuit pas touché.
Lors d'un test, elle provoqua donc un sabotage qui provoqua une surtension, détruisant la centrale (qui ne sera remis en état que des années plus tard par Eggman) et contamina une partie des ruines Erebienne. Dahut, Morrigan et Ys Gradlon disparurent dans l'incident. Le reste de la base (grace aux système de protection hermétique) ne fuit pas touché.

View File

@ -1,3 +1,11 @@
---
layout: layouts/base.njk
eleventyNavigation:
key: Zones
parent: Sonic Monado
order: 2
---
# Zones
Monado Prime est un système écologique en circuit fermé situé sur l'île désertique de Fortitude Rock. Cette base est composée d'un espace de vie principal, d'usine bactérienne biologique (s'occupant du plus gros de recyclage de l'air et des déchets biologiques), de biomes artificiels, d'un espace numérique autonome, ainsi que de tout un espace de laboratoires et de stations technologique. Il s'agit de la première station (d'où le nom Prime) de type Monado. Le terme monado indique le principe de base d'un écosystème clos : être un monde hermétique, une sorte d'univers fermé, tel les monades de Leibniz.
@ -173,4 +181,4 @@ Dans ce jeu, Eggman aura dans ce jeu deux mecha, un commandé à distance et un
### Boss Final
**APATHY**, bataille contre Eggman.
**APATHY**, bataille contre Eggman.

View File

@ -0,0 +1,14 @@
---
permalink: /sitemap.xml
eleventyExcludeFromCollections: true
---
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
{%- for page in collections.all %}
{% set absoluteUrl %}{{ page.url | htmlBaseUrl(metadata.url) }}{% endset %}
<url>
<loc>{{ absoluteUrl }}</loc>
<lastmod>{{ page.date | htmlDateString }}</lastmod>
</url>
{%- endfor %}
</urlset>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,446 +0,0 @@
/*!
Fork Awesome 1.1.7
License - https://forkaweso.me/Fork-Awesome/license
Copyright 2018 Dave Gandy & Fork Awesome
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
.fas,
.fab,
.far {
display: inline-block;
font: normal normal normal 14px/1 ForkAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.fas.fa-chart-area:before {
content: "\f1fe";
}
.fas.fa-arrows-alt:before {
content: "\f047";
}
.fas.fa-expand-arrows-alt:before {
content: "\f0b2";
}
.fas.fa-arrows-alt-h:before {
content: "\f07e";
}
.fas.fa-arrows-alt-v:before {
content: "\f07d";
}
.fas.fa-calendar-alt:before {
content: "\f073";
}
.fas.fa-circle-notch:before {
content: "\f1ce";
}
.fas.fa-cloud-download-alt:before {
content: "\f0ed";
}
.fas.fa-cloud-upload-alt:before {
content: "\f0ee";
}
.fas.fa-credit-card:before {
content: "\f283";
}
.fas.fa-dollar-sign:before {
content: "\f155";
}
.fas.fa-euro-sign:before {
content: "\f153";
}
.fas.fa-exchange-alt:before {
content: "\f0ec";
}
.fas.fa-external-link-alt:before {
content: "\f08e";
}
.fas.fa-external-link-square-alt:before {
content: "\f14c";
}
.fas.fa-eye-dropper:before {
content: "\f1fb";
}
.fas.fa-pound-sign:before {
content: "\f154";
}
.fas.fa-glass-martini:before {
content: "\f000";
}
.fas.fa-shekel-sign:before {
content: "\f20b";
}
.fas.fa-rupee-sign:before {
content: "\f156";
}
.fas.fa-won-sign:before {
content: "\f159";
}
.fas.fa-level-down-alt:before {
content: "\f149";
}
.fas.fa-level-up-alt:before {
content: "\f148";
}
.fas.fa-chart-line:before {
content: "\f201";
}
.fas.fa-long-arrow-alt-down:before {
content: "\f175";
}
.fas.fa-long-arrow-alt-left:before {
content: "\f177";
}
.fas.fa-long-arrow-alt-right:before {
content: "\f178";
}
.fas.fa-long-arrow-alt-up:before {
content: "\f176";
}
.fas.fa-map-marker-alt:before {
content: "\f041";
}
.fas.fa-mobile-alt:before {
content: "\f10b";
}
.fas.fa-pencil-alt:before {
content: "\f040";
}
.fas.fa-pen-square:before {
content: "\f14b";
}
.fas.fa-chart-pie:before {
content: "\f200";
}
.fas.fa-yen-sign:before {
content: "\f157";
}
.fas.fa-ruble-sign:before {
content: "\f158";
}
.fas.fa-shield-alt:before {
content: "\f132";
}
.fas.fa-sign-in-alt:before {
content: "\f090";
}
.fas.fa-sign-out-alt:before {
content: "\f08b";
}
.fas.fa-sliders-h:before {
content: "\f1de";
}
.fas.fa-tablet-alt:before {
content: "\f10a";
}
.fas.fa-tachometer-alt:before {
content: "\f0e4";
}
.fas.fa-thumbtack:before {
content: "\f08d";
}
.fas.fa-ticket-alt:before {
content: "\f145";
}
.fas.fa-trash-alt:before {
content: "\f1f8";
}
.fas.fa-lira-sign:before {
content: "\f195";
}
.fab.fa-linkedin-in:before {
content: "\fe01";
}
.fab.fa-linkedin:before {
content: "\f08c";
}
.far.fa-address-book:before {
content: "\f2ba";
}
.far.fa-address-card:before {
content: "\f2bc";
}
.far.fa-arrow-alt-circle-down:before {
content: "\f01a";
}
.far.fa-arrow-alt-circle-left:before {
content: "\f190";
}
.far.fa-arrow-alt-circle-right:before {
content: "\f18e";
}
.far.fa-arrow-alt-circle-up:before {
content: "\f01b";
}
.far.fa-bell:before {
content: "\f0f3";
}
.far.fa-bell-slash:before {
content: "\f1f7";
}
.far.fa-bookmark:before {
content: "\f097";
}
.far.fa-building:before {
content: "\f0f7";
}
.far.fa-calendar-check:before {
content: "\f274";
}
.far.fa-calendar-minus:before {
content: "\f272";
}
.far.fa-calendar:before {
content: "\f133";
}
.far.fa-calendar-plus:before {
content: "\f271";
}
.far.fa-calendar-times:before {
content: "\f273";
}
.far.fa-caret-square-down:before {
content: "\f150";
}
.far.fa-caret-square-left:before {
content: "\f191";
}
.far.fa-caret-square-right:before {
content: "\f152";
}
.far.fa-caret-square-up:before {
content: "\f151";
}
.far.fa-check-circle:before {
content: "\f05d";
}
.far.fa-check-square:before {
content: "\f046";
}
.far.fa-circle:before {
content: "\f10c";
}
.far.fa-clock:before {
content: "\f017";
}
.far.fa-comment:before {
content: "\f0e5";
}
.far.fa-comment-dots:before {
content: "\f27b";
}
.far.fa-comments:before {
content: "\f0e6";
}
.far.fa-dot-circle:before {
content: "\f192";
}
.far.fa-id-card:before {
content: "\f2c3";
}
.far.fa-envelope:before {
content: "\f003";
}
.far.fa-envelope-open:before {
content: "\f2b7";
}
.far.fa-file-archive:before {
content: "\f1c6";
}
.far.fa-file-audio:before {
content: "\f1c7";
}
.far.fa-file-code:before {
content: "\f1c9";
}
.far.fa-file-excel:before {
content: "\f1c3";
}
.far.fa-file-image:before {
content: "\f1c5";
}
.far.fa-file-video:before {
content: "\f1c8";
}
.far.fa-copy:before,
.far.fa-file:before {
content: "\f016";
}
.far.fa-file-pdf:before {
content: "\f1c1";
}
.far.fa-file-powerpoint:before {
content: "\f1c4";
}
.far.fa-file-alt:before {
content: "\f0f6";
}
.far.fa-file-word:before {
content: "\f1c2";
}
.far.fa-flag:before {
content: "\f11d";
}
.far.fa-save:before {
content: "\f0c7";
}
.far.fa-folder:before {
content: "\f114";
}
.far.fa-folder-open:before {
content: "\f115";
}
.far.fa-frown:before {
content: "\f119";
}
.far.fa-futbol:before {
content: "\f1e3";
}
.far.fa-hand-rock:before {
content: "\f255";
}
.far.fa-hand-lizard:before {
content: "\f258";
}
.far.fa-hand-point-down:before {
content: "\f0a7";
}
.far.fa-hand-point-left:before {
content: "\f0a5";
}
.far.fa-hand-point-right:before {
content: "\f0a4";
}
.far.fa-hand-point-up:before {
content: "\f0a6";
}
.far.fa-hand-paper:before {
content: "\256";
}
.far.fa-hand-pointer:before {
content: "\f25a";
}
.far.fa-hand-scissors:before {
content: "\f257";
}
.far.fa-hand-spock:before {
content: "\f259";
}
.far.fa-handshake:before {
content: "\f2b5";
}
.far.fa-hdd:before {
content: "\f0a0";
}
.far.fa-heart:before {
content: "\f08a";
}
.far.fa-hospital:before {
content: "\f0f8";
}
.far.fa-hourglass:before {
content: "\f250";
}
.far.fa-id-card:before {
content: "\f2c3";
}
.far.fa-keyboard:before {
content: "\f11c";
}
.far.fa-lemon:before {
content: "\f094";
}
.far.fa-lightbulb:before {
content: "\f0eb";
}
.far.fa-meh:before {
content: "\f11a";
}
.far.fa-minus-square:before {
content: "\f147";
}
.far.fa-money-bill-alt:before {
content: "\f0d6";
}
.far.fa-moon:before {
content: "\f186";
}
.far.fa-newspaper:before {
content: "\f1ea";
}
.far.fa-paper-plane:before {
content: "\f1d9";
}
.far.fa-pause-circle:before {
content: "\f28c";
}
.far.fa-edit:before {
content: "\f044";
}
.far.fa-image:before {
content: "\f03e";
}
.far.fa-play-circle:before {
content: "\f01d";
}
.far.fa-plus-square:before {
content: "\f196";
}
.far.fa-question-circle:before {
content: "\f92c";
}
.far.fa-share-square:before {
content: "\f045";
}
.far.fa-smile:before {
content: "\f118";
}
.far.fa-snowflake:before {
content: "\f2dc";
}
.far.fa-futbol:before {
content: "\f1e3";
}
.far.fa-star-half:before {
content: "\f089";
}
.far.fa-star:before {
content: "\f006";
}
.far.fa-sticky-note:before {
content: "\f24a";
}
.far.fa-stop-circle:before {
content: "\f28e";
}
.far.fa-sun:before {
content: "\f185";
}
.far.fa-thumbs-down:before {
content: "\f088";
}
.far.fa-thumbs-up:before {
content: "\f087";
}
.far.fa-times-circle:before {
content: "\f05c";
}
.far.fa-window-close:before {
content: "\f2d4";
}
.far.fa-trash-alt:before {
content: "\f014";
}
.far.fa-user-circle:before {
content: "\f2be";
}
.far.fa-user:before {
content: "\f2c0";
}

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
{"version":3,"sources":["v5-compat.css"],"names":[],"mappings":";;;;;;;;;;;AAaA,KACA,KAFA,KAGE,QAAA,aACA,KAAA,OAAA,OAAA,OAAA,KAAA,EAAA,YACA,UAAA,QACA,eAAA,KACA,uBAAA,YACA,wBAAA,UAEgB,0BAChB,QAAA,QAEgB,0BAChB,QAAA,QAEuB,iCACvB,QAAA,QAEkB,4BAClB,QAAA,QAEkB,4BAClB,QAAA,QAEkB,4BAClB,QAAA,QAEkB,4BAClB,QAAA,QAEwB,kCACxB,QAAA,QAEsB,gCACtB,QAAA,QAEiB,2BACjB,QAAA,QAEiB,2BACjB,QAAA,QAEe,yBACf,QAAA,QAEkB,4BAClB,QAAA,QAEuB,iCACvB,QAAA,QAE8B,wCAC9B,QAAA,QAEiB,2BACjB,QAAA,QAEgB,0BAChB,QAAA,QAEmB,6BACnB,QAAA,QAEiB,2BACjB,QAAA,QAEgB,0BAChB,QAAA,QAEc,wBACd,QAAA,QAEoB,8BACpB,QAAA,QAEkB,4BAClB,QAAA,QAEgB,0BAChB,QAAA,QAEyB,mCACzB,QAAA,QAEyB,mCACzB,QAAA,QAE0B,oCAC1B,QAAA,QAEuB,iCACvB,QAAA,QAEoB,8BACpB,QAAA,QAEgB,0BAChB,QAAA,QAEgB,0BAChB,QAAA,QAEgB,0BAChB,QAAA,QAEe,yBACf,QAAA,QAEc,wBACd,QAAA,QAEgB,0BAChB,QAAA,QAEgB,0BAChB,QAAA,QAEiB,2BACjB,QAAA,QAEkB,4BAClB,QAAA,QAEe,yBACf,QAAA,QAEgB,0BAChB,QAAA,QAEoB,8BACpB,QAAA,QAEe,yBACf,QAAA,QAEgB,0BAChB,QAAA,QAEe,yBACf,QAAA,QAEe,yBACf,QAAA,QAEiB,2BACjB,QAAA,QAEc,wBACd,QAAA,QAEkB,4BAClB,QAAA,QAEkB,4BAClB,QAAA,QAE2B,qCAC3B,QAAA,QAE2B,qCAC3B,QAAA,QAE4B,sCAC5B,QAAA,QAEyB,mCACzB,QAAA,QAEU,oBACV,QAAA,QAEgB,0BAChB,QAAA,QAEc,wBACd,QAAA,QAEc,wBACd,QAAA,QAEoB,8BACpB,QAAA,QAEoB,8BACpB,QAAA,QAEc,wBACd,QAAA,QAEmB,6BACnB,QAAA,QAEoB,8BACpB,QAAA,QAEuB,iCACvB,QAAA,QAEuB,iCACvB,QAAA,QAEwB,kCACxB,QAAA,QAEqB,+BACrB,QAAA,QAEkB,4BAClB,QAAA,QAEkB,4BAClB,QAAA,QAEY,sBACZ,QAAA,QAEW,qBACX,QAAA,QAEa,uBACb,QAAA,QAEkB,4BAClB,QAAA,QAEc,wBACd,QAAA,QAEgB,0BAChB,QAAA,QAEa,uBACb,QAAA,QAEc,wBACd,QAAA,QAEmB,6BACnB,QAAA,QAEkB,4BAClB,QAAA,QAEgB,0BAChB,QAAA,QAEe,yBACf,QAAA,QAEgB,0BAChB,QAAA,QAEgB,0BAChB,QAAA,QAEgB,0BAChB,QAAA,QAEU,oBACA,oBACV,QAAA,QAEc,wBACd,QAAA,QAEqB,+BACrB,QAAA,QAEc,wBACd,QAAA,QAEe,yBACf,QAAA,QAEU,oBACV,QAAA,QAEU,oBACV,QAAA,QAEY,sBACZ,QAAA,QAEiB,2BACjB,QAAA,QAEW,qBACX,QAAA,QAEY,sBACZ,QAAA,QAEe,yBACf,QAAA,QAEiB,2BACjB,QAAA,QAEqB,+BACrB,QAAA,QAEqB,+BACrB,QAAA,QAEsB,gCACtB,QAAA,QAEmB,6BACnB,QAAA,QAEgB,0BAChB,QAAA,OAEkB,4BAClB,QAAA,QAEmB,6BACnB,QAAA,QAEgB,0BAChB,QAAA,QAEe,yBACf,QAAA,QAES,mBACT,QAAA,QAEW,qBACX,QAAA,QAEc,wBACd,QAAA,QAEe,yBACf,QAAA,QAEa,uBACb,QAAA,QAEc,wBACd,QAAA,QAEW,qBACX,QAAA,QAEe,yBACf,QAAA,QAES,mBACT,QAAA,QAEkB,4BAClB,QAAA,QAEoB,8BACpB,QAAA,QAEU,oBACV,QAAA,QAEe,yBACf,QAAA,QAEiB,2BACjB,QAAA,QAEkB,4BAClB,QAAA,QAEU,oBACV,QAAA,QAEW,qBACX,QAAA,QAEiB,2BACjB,QAAA,QAEiB,2BACjB,QAAA,QAEqB,+BACrB,QAAA,QAEkB,4BAClB,QAAA,QAEW,qBACX,QAAA,QAEe,yBACf,QAAA,QAEY,sBACZ,QAAA,QAEe,yBACf,QAAA,QAEU,oBACV,QAAA,QAEiB,2BACjB,QAAA,QAEiB,2BACjB,QAAA,QAES,mBACT,QAAA,QAEiB,2BACjB,QAAA,QAEe,yBACf,QAAA,QAEkB,4BAClB,QAAA,QAEkB,4BAClB,QAAA,QAEe,yBACf,QAAA,QAEiB,2BACjB,QAAA,QAEU,oBACV,QAAA"}

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 469 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,597 +0,0 @@
/*! Spectre.css Icons v0.5.8 | MIT License | github.com/picturepan2/spectre */
.icon {
box-sizing: border-box;
display: inline-block;
font-size: inherit;
font-style: normal;
height: 1em;
position: relative;
text-indent: -9999px;
vertical-align: middle;
width: 1em;
}
.icon::before,
.icon::after {
content: "";
display: block;
left: 50%;
position: absolute;
top: 50%;
transform: translate(-50%, -50%);
}
.icon.icon-2x {
font-size: 1.6rem;
}
.icon.icon-3x {
font-size: 2.4rem;
}
.icon.icon-4x {
font-size: 3.2rem;
}
.accordion .icon,
.btn .icon,
.toast .icon,
.menu .icon {
vertical-align: -10%;
}
.btn-lg .icon {
vertical-align: -15%;
}
.icon-arrow-down::before,
.icon-arrow-left::before,
.icon-arrow-right::before,
.icon-arrow-up::before,
.icon-downward::before,
.icon-back::before,
.icon-forward::before,
.icon-upward::before {
border: .1rem solid currentColor;
border-bottom: 0;
border-right: 0;
height: .65em;
width: .65em;
}
.icon-arrow-down::before {
transform: translate(-50%, -75%) rotate(225deg);
}
.icon-arrow-left::before {
transform: translate(-25%, -50%) rotate(-45deg);
}
.icon-arrow-right::before {
transform: translate(-75%, -50%) rotate(135deg);
}
.icon-arrow-up::before {
transform: translate(-50%, -25%) rotate(45deg);
}
.icon-back::after,
.icon-forward::after {
background: currentColor;
height: .1rem;
width: .8em;
}
.icon-downward::after,
.icon-upward::after {
background: currentColor;
height: .8em;
width: .1rem;
}
.icon-back::after {
left: 55%;
}
.icon-back::before {
transform: translate(-50%, -50%) rotate(-45deg);
}
.icon-downward::after {
top: 45%;
}
.icon-downward::before {
transform: translate(-50%, -50%) rotate(-135deg);
}
.icon-forward::after {
left: 45%;
}
.icon-forward::before {
transform: translate(-50%, -50%) rotate(135deg);
}
.icon-upward::after {
top: 55%;
}
.icon-upward::before {
transform: translate(-50%, -50%) rotate(45deg);
}
.icon-caret::before {
border-left: .3em solid transparent;
border-right: .3em solid transparent;
border-top: .3em solid currentColor;
height: 0;
transform: translate(-50%, -25%);
width: 0;
}
.icon-menu::before {
background: currentColor;
box-shadow: 0 -.35em, 0 .35em;
height: .1rem;
width: 100%;
}
.icon-apps::before {
background: currentColor;
box-shadow: -.35em -.35em, -.35em 0, -.35em .35em, 0 -.35em, 0 .35em, .35em -.35em, .35em 0, .35em .35em;
height: 3px;
width: 3px;
}
.icon-resize-horiz::before,
.icon-resize-horiz::after,
.icon-resize-vert::before,
.icon-resize-vert::after {
border: .1rem solid currentColor;
border-bottom: 0;
border-right: 0;
height: .45em;
width: .45em;
}
.icon-resize-horiz::before,
.icon-resize-vert::before {
transform: translate(-50%, -90%) rotate(45deg);
}
.icon-resize-horiz::after,
.icon-resize-vert::after {
transform: translate(-50%, -10%) rotate(225deg);
}
.icon-resize-horiz::before {
transform: translate(-90%, -50%) rotate(-45deg);
}
.icon-resize-horiz::after {
transform: translate(-10%, -50%) rotate(135deg);
}
.icon-more-horiz::before,
.icon-more-vert::before {
background: currentColor;
border-radius: 50%;
box-shadow: -.4em 0, .4em 0;
height: 3px;
width: 3px;
}
.icon-more-vert::before {
box-shadow: 0 -.4em, 0 .4em;
}
.icon-plus::before,
.icon-minus::before,
.icon-cross::before {
background: currentColor;
height: .1rem;
width: 100%;
}
.icon-plus::after,
.icon-cross::after {
background: currentColor;
height: 100%;
width: .1rem;
}
.icon-cross::before {
width: 100%;
}
.icon-cross::after {
height: 100%;
}
.icon-cross::before,
.icon-cross::after {
transform: translate(-50%, -50%) rotate(45deg);
}
.icon-check::before {
border: .1rem solid currentColor;
border-right: 0;
border-top: 0;
height: .5em;
transform: translate(-50%, -75%) rotate(-45deg);
width: .9em;
}
.icon-stop {
border: .1rem solid currentColor;
border-radius: 50%;
}
.icon-stop::before {
background: currentColor;
height: .1rem;
transform: translate(-50%, -50%) rotate(45deg);
width: 1em;
}
.icon-shutdown {
border: .1rem solid currentColor;
border-radius: 50%;
border-top-color: transparent;
}
.icon-shutdown::before {
background: currentColor;
content: "";
height: .5em;
top: .1em;
width: .1rem;
}
.icon-refresh::before {
border: .1rem solid currentColor;
border-radius: 50%;
border-right-color: transparent;
height: 1em;
width: 1em;
}
.icon-refresh::after {
border: .2em solid currentColor;
border-left-color: transparent;
border-top-color: transparent;
height: 0;
left: 80%;
top: 20%;
width: 0;
}
.icon-search::before {
border: .1rem solid currentColor;
border-radius: 50%;
height: .75em;
left: 5%;
top: 5%;
transform: translate(0, 0) rotate(45deg);
width: .75em;
}
.icon-search::after {
background: currentColor;
height: .1rem;
left: 80%;
top: 80%;
transform: translate(-50%, -50%) rotate(45deg);
width: .4em;
}
.icon-edit::before {
border: .1rem solid currentColor;
height: .4em;
transform: translate(-40%, -60%) rotate(-45deg);
width: .85em;
}
.icon-edit::after {
border: .15em solid currentColor;
border-right-color: transparent;
border-top-color: transparent;
height: 0;
left: 5%;
top: 95%;
transform: translate(0, -100%);
width: 0;
}
.icon-delete::before {
border: .1rem solid currentColor;
border-bottom-left-radius: .1rem;
border-bottom-right-radius: .1rem;
border-top: 0;
height: .75em;
top: 60%;
width: .75em;
}
.icon-delete::after {
background: currentColor;
box-shadow: -.25em .2em, .25em .2em;
height: .1rem;
top: .05rem;
width: .5em;
}
.icon-share {
border: .1rem solid currentColor;
border-radius: .1rem;
border-right: 0;
border-top: 0;
}
.icon-share::before {
border: .1rem solid currentColor;
border-left: 0;
border-top: 0;
height: .4em;
left: 100%;
top: .25em;
transform: translate(-125%, -50%) rotate(-45deg);
width: .4em;
}
.icon-share::after {
border: .1rem solid currentColor;
border-bottom: 0;
border-radius: 75% 0;
border-right: 0;
height: .5em;
width: .6em;
}
.icon-flag::before {
background: currentColor;
height: 1em;
left: 15%;
width: .1rem;
}
.icon-flag::after {
border: .1rem solid currentColor;
border-bottom-right-radius: .1rem;
border-left: 0;
border-top-right-radius: .1rem;
height: .65em;
left: 60%;
top: 35%;
width: .8em;
}
.icon-bookmark::before {
border: .1rem solid currentColor;
border-bottom: 0;
border-top-left-radius: .1rem;
border-top-right-radius: .1rem;
height: .9em;
width: .8em;
}
.icon-bookmark::after {
border: .1rem solid currentColor;
border-bottom: 0;
border-left: 0;
border-radius: .1rem;
height: .5em;
transform: translate(-50%, 35%) rotate(-45deg) skew(15deg, 15deg);
width: .5em;
}
.icon-download,
.icon-upload {
border-bottom: .1rem solid currentColor;
}
.icon-download::before,
.icon-upload::before {
border: .1rem solid currentColor;
border-bottom: 0;
border-right: 0;
height: .5em;
transform: translate(-50%, -60%) rotate(-135deg);
width: .5em;
}
.icon-download::after,
.icon-upload::after {
background: currentColor;
height: .6em;
top: 40%;
width: .1rem;
}
.icon-upload::before {
transform: translate(-50%, -60%) rotate(45deg);
}
.icon-upload::after {
top: 50%;
}
.icon-copy::before {
border: .1rem solid currentColor;
border-bottom: 0;
border-radius: .1rem;
border-right: 0;
height: .8em;
left: 40%;
top: 35%;
width: .8em;
}
.icon-copy::after {
border: .1rem solid currentColor;
border-radius: .1rem;
height: .8em;
left: 60%;
top: 60%;
width: .8em;
}
.icon-time {
border: .1rem solid currentColor;
border-radius: 50%;
}
.icon-time::before {
background: currentColor;
height: .4em;
transform: translate(-50%, -75%);
width: .1rem;
}
.icon-time::after {
background: currentColor;
height: .3em;
transform: translate(-50%, -75%) rotate(90deg);
transform-origin: 50% 90%;
width: .1rem;
}
.icon-mail::before {
border: .1rem solid currentColor;
border-radius: .1rem;
height: .8em;
width: 1em;
}
.icon-mail::after {
border: .1rem solid currentColor;
border-right: 0;
border-top: 0;
height: .5em;
transform: translate(-50%, -90%) rotate(-45deg) skew(10deg, 10deg);
width: .5em;
}
.icon-people::before {
border: .1rem solid currentColor;
border-radius: 50%;
height: .45em;
top: 25%;
width: .45em;
}
.icon-people::after {
border: .1rem solid currentColor;
border-radius: 50% 50% 0 0;
height: .4em;
top: 75%;
width: .9em;
}
.icon-message {
border: .1rem solid currentColor;
border-bottom: 0;
border-radius: .1rem;
border-right: 0;
}
.icon-message::before {
border: .1rem solid currentColor;
border-bottom-right-radius: .1rem;
border-left: 0;
border-top: 0;
height: .8em;
left: 65%;
top: 40%;
width: .7em;
}
.icon-message::after {
background: currentColor;
border-radius: .1rem;
height: .3em;
left: 10%;
top: 100%;
transform: translate(0, -90%) rotate(45deg);
width: .1rem;
}
.icon-photo {
border: .1rem solid currentColor;
border-radius: .1rem;
}
.icon-photo::before {
border: .1rem solid currentColor;
border-radius: 50%;
height: .25em;
left: 35%;
top: 35%;
width: .25em;
}
.icon-photo::after {
border: .1rem solid currentColor;
border-bottom: 0;
border-left: 0;
height: .5em;
left: 60%;
transform: translate(-50%, 25%) rotate(-45deg);
width: .5em;
}
.icon-link::before,
.icon-link::after {
border: .1rem solid currentColor;
border-radius: 5em 0 0 5em;
border-right: 0;
height: .5em;
width: .75em;
}
.icon-link::before {
transform: translate(-70%, -45%) rotate(-45deg);
}
.icon-link::after {
transform: translate(-30%, -55%) rotate(135deg);
}
.icon-location::before {
border: .1rem solid currentColor;
border-radius: 50% 50% 50% 0;
height: .8em;
transform: translate(-50%, -60%) rotate(-45deg);
width: .8em;
}
.icon-location::after {
border: .1rem solid currentColor;
border-radius: 50%;
height: .2em;
transform: translate(-50%, -80%);
width: .2em;
}
.icon-emoji {
border: .1rem solid currentColor;
border-radius: 50%;
}
.icon-emoji::before {
border-radius: 50%;
box-shadow: -.17em -.1em, .17em -.1em;
height: .15em;
width: .15em;
}
.icon-emoji::after {
border: .1rem solid currentColor;
border-bottom-color: transparent;
border-radius: 50%;
border-right-color: transparent;
height: .5em;
transform: translate(-50%, -40%) rotate(-135deg);
width: .5em;
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

50
eleventy.config.drafts.js Normal file
View File

@ -0,0 +1,50 @@
function eleventyComputedPermalink() {
// When using `addGlobalData` and you *want* to return a function, you must nest functions like this.
// `addGlobalData` acts like a global data file and runs the top level function it receives.
return (data) => {
// Always skip during non-watch/serve builds
if(data.draft && !process.env.BUILD_DRAFTS) {
return false;
}
return data.permalink;
}
};
function eleventyComputedExcludeFromCollections() {
// When using `addGlobalData` and you *want* to return a function, you must nest functions like this.
// `addGlobalData` acts like a global data file and runs the top level function it receives.
return (data) => {
// Always exclude from non-watch/serve builds
if(data.draft && !process.env.BUILD_DRAFTS) {
return true;
}
return data.eleventyExcludeFromCollections;
}
};
module.exports.eleventyComputedPermalink = eleventyComputedPermalink;
module.exports.eleventyComputedExcludeFromCollections = eleventyComputedExcludeFromCollections;
module.exports = eleventyConfig => {
eleventyConfig.addGlobalData("eleventyComputed.permalink", eleventyComputedPermalink);
eleventyConfig.addGlobalData("eleventyComputed.eleventyExcludeFromCollections", eleventyComputedExcludeFromCollections);
let logged = false;
eleventyConfig.on("eleventy.before", ({runMode}) => {
let text = "Excluding";
// Only show drafts in serve/watch modes
if(runMode === "serve" || runMode === "watch") {
process.env.BUILD_DRAFTS = true;
text = "Including";
}
// Only log once.
if(!logged) {
console.log( `[11ty/eleventy-base-blog] ${text} drafts.` );
}
logged = true;
});
}

34
eleventy.config.images.js Normal file
View File

@ -0,0 +1,34 @@
const path = require("path");
const eleventyImage = require("@11ty/eleventy-img");
module.exports = eleventyConfig => {
function relativeToInputPath(inputPath, relativeFilePath) {
let split = inputPath.split("/");
split.pop();
return path.resolve(split.join(path.sep), relativeFilePath);
}
// Eleventy Image shortcode
// https://www.11ty.dev/docs/plugins/image/
eleventyConfig.addAsyncShortcode("image", async function imageShortcode(src, alt, widths, sizes) {
// Full list of formats here: https://www.11ty.dev/docs/plugins/image/#output-formats
// Warning: Avif can be resource-intensive so take care!
let formats = ["avif", "webp", "auto"];
let file = relativeToInputPath(this.page.inputPath, src);
let metadata = await eleventyImage(file, {
widths: widths || ["auto"],
formats,
outputDir: path.join(eleventyConfig.dir.output, "img"), // Advanced usage note: `eleventyConfig.dir` works here because were using addPlugin.
});
// TODO loading=eager and fetchpriority=high
let imageAttributes = {
alt,
sizes,
loading: "lazy",
decoding: "async",
};
return eleventyImage.generateHTML(metadata, imageAttributes);
});
};

146
eleventy.config.js Normal file
View File

@ -0,0 +1,146 @@
const { DateTime } = require("luxon");
const markdownItAnchor = require("markdown-it-anchor");
const pluginRss = require("@11ty/eleventy-plugin-rss");
const pluginSyntaxHighlight = require("@11ty/eleventy-plugin-syntaxhighlight");
const pluginBundle = require("@11ty/eleventy-plugin-bundle");
const pluginNavigation = require("@11ty/eleventy-navigation");
const { EleventyRenderPlugin } = require("@11ty/eleventy");
const { EleventyHtmlBasePlugin } = require("@11ty/eleventy");
const pluginDrafts = require("./eleventy.config.drafts.js");
const pluginImages = require("./eleventy.config.images.js");
const pluginTOC = require('eleventy-plugin-toc');
module.exports = function(eleventyConfig) {
// Copy the contents of the `public` folder to the output folder
// For example, `./public/css/` ends up in `_site/css/`
eleventyConfig.addPassthroughCopy({
"./public/": "/",
"./node_modules/prismjs/themes/prism-okaidia.css": "/css/prism-okaidia.css"
});
// Run Eleventy when these files change:
// https://www.11ty.dev/docs/watch-serve/#add-your-own-watch-targets
// Watch content images for the image pipeline.
eleventyConfig.addWatchTarget("content/**/*.{svg,webp,png,jpeg}");
// App plugins
eleventyConfig.addPlugin(pluginDrafts);
eleventyConfig.addPlugin(pluginImages);
// Official plugins
eleventyConfig.addPlugin(pluginRss);
eleventyConfig.addPlugin(pluginSyntaxHighlight, {
preAttributes: { tabindex: 0 }
});
eleventyConfig.addPlugin(pluginNavigation);
eleventyConfig.addPlugin(EleventyHtmlBasePlugin);
eleventyConfig.addPlugin(EleventyRenderPlugin);
eleventyConfig.addPlugin(pluginBundle);
eleventyConfig.addPlugin(pluginTOC, {
tags: ['h2'],
wrapper: 'div'
});
// Filters
eleventyConfig.addFilter("readableDate", (dateObj, format, zone) => {
// Formatting tokens for Luxon: https://moment.github.io/luxon/#/formatting?id=table-of-tokens
return DateTime.fromJSDate(dateObj, { zone: zone || "utc" }).toFormat(format || "dd LLLL yyyy");
});
eleventyConfig.addFilter('htmlDateString', (dateObj) => {
// dateObj input: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string
return DateTime.fromJSDate(dateObj, {zone: 'utc'}).toFormat('yyyy-LL-dd');
});
// Get the first `n` elements of a collection.
eleventyConfig.addFilter("head", (array, n) => {
if(!Array.isArray(array) || array.length === 0) {
return [];
}
if( n < 0 ) {
return array.slice(n);
}
return array.slice(0, n);
});
// Return the smallest number argument
eleventyConfig.addFilter("min", (...numbers) => {
return Math.min.apply(null, numbers);
});
// Return all the tags used in a collection
eleventyConfig.addFilter("getAllTags", collection => {
let tagSet = new Set();
for(let item of collection) {
(item.data.tags || []).forEach(tag => tagSet.add(tag));
}
return Array.from(tagSet);
});
eleventyConfig.addFilter("filterTagList", function filterTagList(tags) {
return (tags || []).filter(tag => ["all", "nav", "post", "posts"].indexOf(tag) === -1);
});
// Customize Markdown library settings:
eleventyConfig.amendLibrary("md", mdLib => {
mdLib.use(markdownItAnchor, {
permalink: markdownItAnchor.permalink.ariaHidden({
placement: "after",
class: "header-anchor",
symbol: "#",
ariaHidden: false,
}),
level: [1,2,3,4],
slugify: eleventyConfig.getFilter("slugify")
});
});
// Features to make your build faster (when you need them)
// If your passthrough copy gets heavy and cumbersome, add this line
// to emulate the file copy on the dev server. Learn more:
// https://www.11ty.dev/docs/copy/#emulate-passthrough-copy-during-serve
// eleventyConfig.setServerPassthroughCopyBehavior("passthrough");
return {
// Control which files Eleventy will process
// e.g.: *.md, *.njk, *.html, *.liquid
templateFormats: [
"md",
"njk",
"html",
"liquid",
],
// Pre-process *.md files with: (default: `liquid`)
markdownTemplateEngine: "njk",
// Pre-process *.html files with: (default: `liquid`)
htmlTemplateEngine: "njk",
// These are all optional:
dir: {
input: "content", // default: "."
includes: "../_includes", // default: "_includes"
data: "../_data", // default: "_data"
output: "_site"
},
// -----------------------------------------------------------------
// Optional items:
// -----------------------------------------------------------------
// If your site deploys to a subdirectory, change `pathPrefix`.
// Read more: https://www.11ty.dev/docs/config/#deploy-to-a-subdirectory-with-a-path-prefix
// When paired with the HTML <base> plugin https://www.11ty.dev/docs/plugins/html-base/
// it will transform any absolute URLs in your HTML to include this
// folder name and does **not** affect where things go in the output folder.
pathPrefix: "/",
};
};

View File

@ -1,29 +0,0 @@
const { src, dest, parallel } = require('gulp');
const include = require('gulp-include');
function html() {
return src('static/*')
.pipe(include())
.pipe(dest('dist'))
}
function dep() {
return src(['dep/**/*'])
.pipe(dest('dist/dep'));
}
function assets() {
return src(['assets/**/*'])
.pipe(dest('dist'));
}
function rules() {
return src(['vault/**/*'])
.pipe(dest('dist'));
}
exports.html = html;
exports.dep = dep;
exports.assets = assets;
exports.rules = rules;
exports.default = parallel(html, dep, assets, rules);

24
netlify.toml Normal file
View File

@ -0,0 +1,24 @@
[build]
publish = "_site"
command = "npm run build"
[[plugins]]
# Opt-in to the Netlify Lighthouse plugin (choose one):
# 1. Go to your site on https://app.netlify.com and navigate to the Integrations tab, search for the `Lighthouse` plugin
# 2. Or via `npm install -D @netlify/plugin-lighthouse`
# Read more: https://github.com/netlify/netlify-plugin-lighthouse
package = "@netlify/plugin-lighthouse"
# optional, fails build when a category is below a threshold
[plugins.inputs.thresholds]
performance = 1.0
accessibility = 1.0
best-practices = 1.0
seo = 1.0
[plugins.inputs]
output_path = "reports/lighthouse/index.html"

9949
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,20 +1,47 @@
{
"name": "kobold-vault",
"version": "1.0.0",
"description": "Les vieux projets de kobold-city",
"main": "gulpfile.js",
"dependencies": {
"gulp": "^4.0.2",
"gulp-include": "^2.4.1"
},
"scripts": {
"build": "gulp",
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "https://git.kobold.cafe/jdr/vault"
},
"author": "",
"license": "CC BY-SA"
"name": "eleventy-base-blog",
"version": "8.0.0",
"description": "A starter repository for a blog web site using the Eleventy site generator.",
"scripts": {
"build": "npx @11ty/eleventy",
"build-ghpages": "npx @11ty/eleventy --pathprefix=/eleventy-base-blog/",
"start": "npx @11ty/eleventy --serve --quiet",
"debug": "DEBUG=Eleventy* npx @11ty/eleventy",
"debugstart": "DEBUG=Eleventy* npx @11ty/eleventy --serve --quiet",
"benchmark": "DEBUG=Eleventy:Benchmark* npx @11ty/eleventy"
},
"repository": {
"type": "git",
"url": "git://github.com/11ty/eleventy-base-blog.git"
},
"author": {
"name": "Zach Leatherman",
"email": "zachleatherman@gmail.com",
"url": "https://zachleat.com/"
},
"license": "MIT",
"engines": {
"node": ">=14"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/11ty"
},
"bugs": {
"url": "https://github.com/11ty/eleventy-base-blog/issues"
},
"homepage": "https://github.com/11ty/eleventy-base-blog#readme",
"devDependencies": {
"@11ty/eleventy": "^2.0.1",
"@11ty/eleventy-img": "^3.1.0",
"@11ty/eleventy-navigation": "^0.3.5",
"@11ty/eleventy-plugin-bundle": "^1.0.4",
"@11ty/eleventy-plugin-rss": "^1.2.0",
"@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0",
"luxon": "^3.3.0",
"markdown-it-anchor": "^8.6.7"
},
"dependencies": {
"eleventy-plugin-toc": "^1.1.5"
}
}

212
public/css/index.css Normal file
View File

@ -0,0 +1,212 @@
:root {
--color-gray-20: #e0e0e0;
--color-gray-50: #C0C0C0;
--color-gray-90: #333;
/* --text-color is assigned to --color-gray-_ above */
--text-color-link: #f87000;
--text-color-link-active: #f89000;
--text-color-link-visited: #f87000;
--background-color: #fff;
--background-menu: #aea8d9;
--text-color: var(--color-gray-90);
--font-family: -apple-system, system-ui, sans-serif;
--font-family-monospace: Consolas, Menlo, Monaco, Andale Mono WT, Andale Mono, Lucida Console, Lucida Sans Typewriter, DejaVu Sans Mono, Bitstream Vera Sans Mono, Liberation Mono, Nimbus Mono L, Courier New, Courier, monospace;
--font-family-logo: Arial Black, system-ui, sans-serif;
--font-family-title:vipnagorgialla, system-ui, sans-serif;
}
* {
box-sizing: border-box;
}
html,
body {
padding: 0;
margin: 0 auto;
min-height:100%;
font-family: var(--font-family);
color: var(--text-color);
width:1280px;
}
html {
overflow-y: scroll;
background: center top fixed url("/img/back.png");
background-color: rgb(90, 78, 177);
}
/* https://www.a11yproject.com/posts/how-to-hide-content/ */
.visually-hidden {
clip: rect(0 0 0 0);
clip-path: inset(50%);
height: 1px;
overflow: hidden;
position: absolute;
white-space: nowrap;
width: 1px;
}
a[href] {
color: var(--text-color-link);
}
a[href]:visited {
color: var(--text-color-link-visited);
}
a[href]:hover,
a[href]:active {
color: var(--text-color-link-active);
}
blockquote {
opacity: 75%;
border-left: 3px solid currentColor;
padding-left: 12px;
}
/* Direct Links / Markdown Headers */
.header-anchor {
text-decoration: none;
font-style: normal;
font-size: 1em;
margin-left: .1em;
}
a[href].header-anchor,
a[href].header-anchor:visited {
color: transparent;
}
a[href].header-anchor:focus,
a[href].header-anchor:hover {
text-decoration: underline;
}
a[href].header-anchor:focus,
:hover > a[href].header-anchor {
color: #aaa;
}
.wrapper {
display:flex;
}
main,
.card,
#sidebar ul > li,
#links ul > li {
border:2px outset;
border-color: #d8d5ec;
padding:12px;
margin:12px;
}
#sidebar > ul,
#links > ul {
margin:0;
padding:0;
}
main {
background-color: var(--background-menu);
padding: 2px;
}
#titlebar {
background: rgb(90, 78, 177);
background: linear-gradient(90deg, rgba(90, 78, 177, 1) 0%, rgba(182, 143, 203, 1) 100%);
color:white;
text-shadow: 1px 0px 0px rgba(0,0,0,1);
margin:0px 1px;
padding: 0px 4px;
}
main #page {
background-color: var(--background-color);
padding-left: 24px;
padding-right: 24px;
line-height:1.5rem;
flex-grow:1;
border: 2px inset;
border-color: #d8d5ec;
}
.card,
#sidebar ul>li,
#links ul>li {
color:black;
background-color: var(--background-menu);
}
#sidebar ul > li,
#links ul > li {
list-style: none;
font-weight: bold;
}
#more-info ol > li,
#more-info ul > li {
list-style: none;
}
#sidebar ul > li li,
#links ul>li li,
#more-info li {
padding:0px;
margin:0px;
font-weight: normal;
border:0;
box-shadow: none;
}
ul.nav,
#sidebar ul li ul,
#links ul li ul,
#more-info ol {
padding:0;
margin:0;
list-style: none;
}
#sidebar ul li a,
#links ul li a,
#more-info ol li a {
display:block;
width:100%;
text-decoration:none;
color:black!important;
padding:3px;
}
#links ul li > p {
padding: 3px;
margin:0;
}
#sidebar ul li li a,
#links ul li li a {
padding-left:18px;
}
#sidebar ul li a.active,
#more-info ol li a.active {
background-color:rgba(0,0,0,0.1);
}
#sidebar ul li a:hover,
#links ul li a:hover,
#more-info ol li a:hover {
background-color:rgba(0,0,0,0.2);
}
#more-info,
#sidebar {
min-width:240px;
width:240px;
}
footer {
text-align:right;
margin:12px;
}

BIN
public/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

Binary file not shown.

BIN
public/img/back.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

BIN
public/img/cc-by-sa.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
public/img/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

View File

@ -1,8 +0,0 @@
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="https://kazhnuz.space">kazhnuz.space</a>
</li><li class="breadcrumb-item" aria-current="page">
<span class="active"><i class="fa fa-vault" aria-hidden="true"></i> Vault</span>
</li>
</ol>
</nav>

View File

@ -1,18 +0,0 @@
<footer>
<div class="footer-collumns">
<div>
<p>Les contenus sont diffusé sous licence Creative Common Attribution - Partage à l'Identique 4.0 - hors mention contraire.</p>
<p>Ces licences vous autorise à partager et copier mes travaux, tant que vous me citiez en source, et que vous autorisez la même chose pour les travaux qui en seraient dérivés. N'hésitez pas à partager ! <i class="text-red fa fa-heart" aria-hidden="true"></i></p>
</div>
<div>
<p>Ce site est propulsé par <a href="https://wordpress.org">Wordpress</a></p>
<p>Le <a href="https://git.kobold.cafe/kazhnuz.space/kspace-wordpress-theme">theme wordpress</a> de ce site est disponible sous licence CC BY-SA et GPL v3. Il utilise <a href="https://picturepan2.github.io/spectre/">Spectre</a> et <a href="https://forkawesome.github.io/Fork-Awesome/">Fork-Awesome</a>.</p>
</div>
<div>
<p>Ce site fait partie de <a href="https://kazhnuz.space">kazhnuz.space</a></p>
<p>Kazhnuz Space et les différents sites/services qui le composent sont fourni "tel-quel", sans garantie. Cependant, toute critique, remarque, etc. est la bienvenue. Pour cela, vous pouvez me contacter à kazhnuz [at] kobold [point] cafe ou sur les réseaux sociaux visible plus haut</p>
</div>
</div>
</footer>

View File

@ -1,16 +0,0 @@
<header id="page-header">
<nav class="toolbar flex-that">
<ul></ul>
<ul>
<li>
<a href="https://kazhnuz.space" class="btn btn-navbar">
Retour au blog
</a>
</li>
</ul>
</nav>
<div class="logo-area">
<h1><a href="https://kazhnuz.space"><img src="img/logo.png" alt="Kazhnuz"/></a></h1>
</div>
</header>

View File

@ -1,13 +0,0 @@
<!-- mon icon -->
<link rel="shortcut icon" href="img/favicon.png">
<!-- dependencies -->
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,400i,600,800&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Amatic+SC&display=swap" rel="stylesheet">
<link rel="stylesheet" href="dep/spectre/css/spectre.min.css">
<link rel="stylesheet" href="dep/fork-awesome/css/fork-awesome.min.css">
<script src="dep/jquery/jquery.js"></script>
<script src="dep/bootstrap/js/bootstrap.min.js"></script>
<!-- style and js -->
<link rel="stylesheet" href="style.css">

View File

@ -1,8 +0,0 @@
<aside class="sidebar">
<div class="card card-primary">
<div class="card-header"><i class="fa fa-gamepad" aria-hidden="true"></i> Sonic</div>
<ul class="card-menu">
<li><a href='/monado-adventure/'>Sonic Monado Adventure</a></li>
</ul>
</div>
</aside>

View File

@ -1,45 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Kazhnuz' Vault</title>
<!-- meta -->
<meta name="description" content="">
<meta name="author" content="">
<!--=include includes/_links.html -->
</head>
<body>
<div id="wrapper">
<!--=include includes/_headerbar.html -->
<div class="container-blog">
<main style="padding-bottom:3rem;">
<!--=include includes/_breadcrumb.html -->
<article>
<h1 class="page-title">Kazhnuz' Vault</h1>
<div>
<p>Cette page est une petite page pour organiser un peu tout mon
bazar et rendre plus simple à lire les vieux trucs que je voudrait
poster.</p>
<p>Vous y trouverez à la fois des vieux projets, des vieux concepts
d'histoire, et d'autres petits trucs que j'ai fait pour le fun.</p>
<p>Tous ces contenus sont utilisable sous les termes CC BY-SA.
(Creative Common Attribution - Partage à l'Identique). Certains de
ces trucs reprennent cependant des éléments privateurs (venant de
licences de JV, par exemple) en tant que fanfictions. Les aspects
opensources ne sont que ceux que j'ai inventés.</p>
<p>Ce site utilise docsify, un excellent moteur de documentation.</p>
</div>
</article>
</main>
<!--=include includes/_sidebar.html -->
</div>
</div>
<!--=include includes/_footer.html -->
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -1,92 +0,0 @@
ANTICHTON
- Présentation
- Les deux planètes
- **Peuples**
- Les humains
- Les Caith Sith -- Les Manticore
- Les Kobolds -- Les Dragons
- Les Harpies -- Les Gryphons
- les Zytiron -- Les Krakens
- **Politique**
- La Confédération Planétaire de Chton
- Les royaumes d'Antichton
- Les suiveurs des Anciens
- Les forbans spaciaux
- L'Ordre de l'Humanité
- **Géographie**
- La Terre
- Antichton
- Les autres planètes
- **Histoire**
- Epoque des Anciens Peuples
- La grande séparation
- La redécouverte
- Epoque contemporaine
AESTRUS
- Presentation
- La planète Aestrus
- Les espèces d'Aestrus
- **Dieux et Majeur**
- La déesse Hesper
- L'énergie stygienne
- Les 16 éléments
- Les anges
- Politique
- Le Magister
- La fédération des comptoirs
- L'Empire Skelfing
- Les peuples oubliés
- Les Améliorés
- **Géographie**
- Le nord de Cardia
- Le royaume d'Io :: Inspiration Europe
- Duchées de ????? :: Inspiration
- Les terres d'Anvêbres
- Les terres d'Etheriel
- L'ile d'Agonia
- **Histoire**
-
ERRATUM
- Présentation
- Le monde magique
- Les espèces
- **La magie**
- L'éclat
- Les vertues
- Les douzes signes
- Les huits magies
- L'alchimies
- Dieux et demi-dieux
- **Politique**
- L'organisme international des mages
- Liens avec les états réguliers
- Les gardiens
- La classification des dangers
- Frontière et les cultistes
- Les arbitres
- Frontières
- Les cultistes
- Les organisations criminelles
- L'enseignement de la magie
- **Les lieux magiques**
- Les terres de l'Arbitre
- Les ??? des Héraults
- ...
- **Histoire**
- L'ère des dieux
- Les temps anciens
- L'époque nouvelle
- La guerre des vertues
- L'époque moderne
- ...
IMPERIUM-PORCORUM
- (todo)
DIEGESE
- (todo)
NOUVELLE FRONTIERE
- (todo)

View File

@ -1,13 +0,0 @@
# Sonic Monado Adventure - Généralités
Ce document est une mise au propre du scénario et de quelques éléments de design général que javais prévu pour mon projet de fangame « Project Millenium » (que j'ai nommé ici Sonic Monado Adventure), qui était un fangame Sonic en 2D, inspiré cependant de lère Adventure (pensez Sonic FGX, ou Sonic Fusion). Ce document contiendra donc tout ce que javais fait niveau scénario, backstory, personnages, etc. Il présentera aussi de manière générale les niveaux qui existaient dans le jeux, soit 7 niveaux de 3 acts, et 2 de 4 acts.
Le projet devait se dérouler entièrement dans la base de Monado Prime, une biosphère artificielle. Les personnages présents étaient *Sonic the Hedgehog*, *Miles « Tails » Prower*, *Knuckles the Echidna*, *Shadow the Hedgehog*, *Amy Rose* et *Cream the Rabbit*.
Le but n'est pas forcément de révolutionner la licence, et le projet n'hésitait pas à être fortement référentiel (par exemple de nombreuses structures du jeu sont inspirée directement de Sonic Adventure ou Sonic Adventure 2), étant un petit plaisir que je me faisais.
## Présentation du projet
*Sonic : Monado Adventure* était un fangame Sonic the Hedgehog inspiré des Sonic Adventure, mais en deux dimension. Le but était de mélanger avec un *Sonic Advance* les particularités et les possibilités d'un Sonic Adventure en terme de narration (une histoire construite avec des enjeux, du développement de personnage, ordre des stages dictés par le scénario et non scénario dicté par l'ordre des stages) ainsi que l'aspect plus "RPG" de ces titres (nouvelles capacités à débloquer, HUB world) avec le style générale d'un Sonic Advance.
Le jeux reprenait quelques idées des jeux Rush (notamment de Rush Adventure), tel que les matériaux ou les tableaux de missions, et sinspirait légèrement de quelques tentatives de recréer en 2D des jeux Adventure-like ou de jeux similaires.

View File

@ -1 +0,0 @@
- [Retour](https://vault.kobold.city/)

View File

@ -1,19 +0,0 @@
- [Gameplay](bases/gameplay.md)
- [Histoire](bases/histoire.md)
- [Zones](bases/zones.md)
- [Personnages non-jouables](bases/pnj.md)
- **Lore**
- [Univers](lore/univers.md)
- [Projet Millenium](lore/projet-millenium.md)
- **Histoires**
- [Sonic the Hedgehog](stories/sonic.md)
- [Miles "Tails" Prower](stories/tails.md)

View File

@ -1,43 +0,0 @@
# Histoire et thematiques
L'histoire de MOnado Adventure se passe dans la base de Monado Prime, une biosphere artificielle en circuit fermé habitée conçue en partenariat entre les Fédérations Unis, G.U.N. et l'entreprise Rimlight. Cette base est construite sur l'île rocheuse de Fortitude Rock, une île quasi-désert située dans les zones polaires. Présentant de nombreux espaces de vies et biomes artificiels, la base est considérée comme l'example à suivre pour les futurs conquêtes spatiales. La base est autonome sauf en lumière (elle a besoin de la lumière du soleil pour faire pousser les plantes), c'est à dire qu'elle est capable de produire elle même tout ce dont elle a besoin en terme d'eau, nourriture et air.
Sonic, Tails et Amy (équipe de début de jeu) arrivent sur l'île suite à un appel du *Directeur de Monado Prime*, qui est inquiêt de l'arrivée de robot d'Eggman dans certains biomes de l'île. Il a peur que le docteur tente de s'emparer de la base et d'en faire un outil de conquête à la MeteorTech. Il a alors demandé de l'aide aux trois mobiens pour qu'ils se débarrassent de la présence du savant fou dans la biosphère.
Cependant, la base recèle bien des mystères, et Sonic & compagnies comprendront bien vite qu'on ne peut comprendre la menace présente que subit la biosphère, sans découvrir tout son passé...
## Rôles dans l'histoire
L'un des principes de Sonic Monado Adventure est que comme dans Sonic Adventure, chaque personnage à un point de vue différent sur l'intrigue, et a un objectif et un rôle narratif différents. Le rôle de chaque personnage sera
- **Sonic** doit empêcher le plan d'Eggman de porter ses fruits, et évitera les intrigues secondaires. Son histoire portera sur les dégats que fait Eggman, et la capacité de Sonic à l'empêcher.
- **Tails** doit sauver les habitants de la ville. Sonic histoire portera sur la différence entre un héros et un sauveteur, et lui fera gagner en autonomie en le montrant *complémentaire* avec Sonic.
- **Amy** va se pencher sur certains des soutiens qu'Eggman possède dans l'île, et sur la situation du jeune Ankou. Son histoire portera sur le combat contre les injustices existantes, et sur la manipulation.
- **Knuckles** va ignorer totalement la base (la considérant comme juste un nouveau jouet des humains sur leur planète), mais tentera de purifier l'énergie chaotique de l'île. L'histoire se penchera sur le lore des Erebiens.
- **Shadow** va faire des recherches sur l'incident de Monado Prime, et chercher le traitre ayant fourni les "clefs" de l'ex-centrale chaotique à Eggman. Son histoire portera sur le fanatismes et la manière dont on peut projeter nos croyances dans la réalité.
- **Cream** va tenter d'aller retrouver Gemerl, qui a disparu lors de l'attaque d'Eggman. Son histoire montre que cette petite lapine est précieuse et courageuse.
## Inspirations/Références
Ici je compile quelques unes des inspirations que je voulais mettre en avant et réutiliser pour construire mon histoire. Ce sont des lignes directrices qui pouvaient m'aider à miser sur certains aspects de l'histoire.
### Légendes et histoire
- Tout le concept d'Hybris/Phronésis sont inspiré des valeurs grecques. LEmpire Erebiens (dont le coeur du pouvoir est l'Hybris Altar) chute à cause de son intempérance et de leur orgueil, comme les héros grecs. Le passage de la ville de Phronésis à l'autel d'Hybris représentent l'abondon de la prudence/sagesse dans la quête du grandiose (qui est ici moqué). Le jeu est entièrement fondé sur la paranoïa qui prend les personnes en situation de pouvoir.
- Les quatres épreuves de Morrigans sont basé sur les quatre vertues telle que présentées par Platon.
- L'histoire de Monado Prime est inspiré de l'île d'Ys : Gradlon était le roi d'Ys (d'où Ys Gradlon), et Dahut celle qui a laissé le diable entrer dans lîle, la condamnant à sombrer sous les flots. Une légende raconte que le jour ou Paris sombrera sous les flots, lîle dYs remontera, ce qui représente un peu les propos du jeu, puisque les technologies Erebienne sont ramenée par Eggman pour faire sombrer symboliquement les capitales du monde.
- Le nom des bases monado est basé sur les monade de Leibniz, mais en vrai c'est plus pour la classe.
### Sciences
- La base de Monado Prime est inspirée des projets de biospheres comme [Biosphère 2](https://fr.wikipedia.org/wiki/Biosph%C3%A8re_II), [BIOS-3](https://en.wikipedia.org/wiki/BIOS-3) ou [MELiSSA](https://en.wikipedia.org/wiki/MELiSSA).
- Lidée de lenvironnement interdit après une explosion de centrale, avec contamination est assez aisé à deviner, je suppose :p

View File

@ -1,44 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sonic Monado Adventure</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="description" content="Description">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css">
</head>
<body>
<div id="app"></div>
<script>
window.$docsify = {
name: 'Sonic Monado Adventure',
repo: '',
loadSidebar: true,
loadNavbar: true,
subMaxLevel: 2,
// complete configuration parameters
search: {
maxAge: 86400000, // Expiration time, the default one day
paths: [], // or 'auto'
placeholder: 'Chercher',
noData: 'Aucun résultat',
// Headline depth, 1 - 6
depth: 2,
hideOtherSidebarContent: false, // whether or not to hide other sidebar content
},
requestHeaders: {
'cache-control': 'no-cache'
}
}
</script>
<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
<script src="//unpkg.com/docsify/lib/plugins/search.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/docsify-tabs@1"></script>
<script src="https://unpkg.com/docsify-plugin-flexible-alerts"></script>
<script src="//unpkg.com/docsify/lib/plugins/emoji.min.js"></script>
</body>
</html>

View File

@ -1,57 +0,0 @@
# Sonic Monado Adventure - Univers et lore
> [!NOTE]
> Tout ce lore n'avait pas pour objectif d'être constamment explicitement dans le jeu. Il servait à nourrir surtout mon écriture, quelques dialogues que je pourrais mettre aux PNJ, et si je le sentais, créer un codex avec toutes ces informations.
Comme Sonic Adventure et Sonic Adventure 2, le projet visait à introduire sa propre histoire tout en étant lié à des éléments déjà existant des jeux précédant, afin de créer de la continuité sans verser dans lhistoire qui nexiste que pour expliquer des trucs des jeux précédant. Cependant, contrairement à SA/SA2, Sonic : Monado Adventure utilise explicitement un monde pour décrire l'univers de Sonic, ici le two-world, afin de l'utiliser pour construire son intrigue et les différents éléments qui vont en faire un jeu.
Le but de cette page est donc de décrire un peu ici les éléments du monde de Sonic utilisés et remixés pour former l'univers de ce jeu.
## Le Two-World
> [!NOTE]
> De nombreux éléments de cette vision du two-world viennent d'une autre version antérieur de mon envie de faire un "Sonic Advance+Adventure" : Sonic Adventure 0. Ce projet avait comme principe d'être une "désadataptation" des premiers épisodes de Sonic X, tentant d'imaginer ce qu'aurait pu être un jeu qui aurait inspiré cette saison 1 pour dans Sonic X (même si en vrai vers la fin ça devenait assez différent). "L'incident de Christmas Island" était le scénario de ce jeu, et le nom de Christmas Island sert pour donner l'idée aux humains que Sonic viendrait de cette île, puisque c'est ici qu'il a été vu pour la première fois.
Sonic : Monado Adventure se base au niveau de son univers sur le concept des deux mondes (à la Sonic X/IDWSonic… et avec un brin de stargate dedans) : Deux "mondes" (ici des planètes d'un même système planétaire), et les personnages peuvent passer de l'un à l'autre. Ces deux mondes sont ceux de la Terre, une planète organisée et peuplée surtout par les humains, et une planète surnommée nommé le "monde des animaux" (Mobius), peuplé surtout par des animaux anthropomorphiques intelligents. Mobius est dans ce lore un peu un équivalent de Mars dans notre système planétaire, et les deux planètes sont assez proche.
Le passage d'un monde à l'autre est conduit par l'existence de *Super Warp Ring*, des immenses anneaux qui ont le pouvoir d'être des passage entre les différentes planètes du système solaire, restent d'une ancienne civilisation. Ils étaient inactif depuis des milliers d'année quand les *expéditions interdimensionnelles* d'il y a 50 ans, puis *l'incident de Christmas Island* sur Terre ont provoqué leur réactivation, et la connexion des deux mondes. Depuis, les deux mondes se connaissent, et doivent coéxister, non sans quelques… réserves, parfois.
### Les quatres grandes civilisations
Les quatres grandes civilisations sont les quatres peuples qui ont atteint la possibilité d'être des civilisations interplanétaires, et qui ont succèssivements réussi à construire des créations hors de leur planète d'origines. Les quatres proviennent de Mobius, mais les humains sont en phase de devenir la *cinquième grande civilisation*, même si leur technologies spatiales manquent encore de capacités
- La **première grande civilisation** (-10 000 ans) est encore peu étudiée, parce qu'une grande partie de leurs créations ont disparu du fait de l'érosions. Ils ont construit de nombreux bâtiments dans tout le système solaire, et sont surnommé les premiers. Les plus grands restes de leur civilisations sur les deux planètes habitées seront insinué comme étant les *temples de gaïa*. Ils sont à l'origine des Warp Rings. Ils sont surnommés les *Premiers* et autres surnoms vagues du genre.
- La **seconde grande civilisation** (-9000 ans) est une civilisation centralisée, qui a surtout vécu sur Mobius. Elle sera insinuée comme étant un équivalent des *Trolls* d'ArchieSonic, mais sans plus de détails.
- La **troisième grande civilisation** (-7500 ans) est la *civilisation d'Erebe*, à l'origine des premières constructions explotant les *veines chaotiques*. Cette civilisation est le coeur du scénario de Knuckles, et Monado Prime est construit sur une faille utilisé par cette civilisation.
- La **quatrième grande civilisation** (-5000 ans) est la civilisation qui est à l'origine d'Angel Island et de robots de guerres nommée les Gizoïd. Il était prévu d'en faire une civilisation qui a réduit en esclavage le peuple des échidnés (le Knuckles Clan tel qu'on le voit dans Adventure sont des descendant d'esclave s'étant révolté durant la chute de cette civilisation, et récupérant les CE pour affronter des descendants de la civilisation).
### Le recontact
Le monde des animaux a été en partie redécouvert durant les grands débuts de la conquête spatiale terrestre, il y a de cela ~75 ans. La découverte des warp rings inactifs, le lancement de futurs projets comme le projet ARK, et l'exploration de Mobius par les premiers humains (dont le jeune professeur Gerald Robotnik, qui étudiera notamment beaucoup la similarité sur Terres de ruines et de représentations sur Mobius présentant des échidnés).
Cependant, le recontact se brisera lors du durcissement de la ligne politique terrestres il y a 50 ans, du à la fois de troubles dans les Federations Unis naissantes, et du shutdown de l'ARK du à des suspiscion envers le professeur Gérald Robotnik et l'incident de l'activation d'un robot antique.
## La Terre
La "Terre" de Sonic Monado Adventure est une terre alternative à la notre, ou les pays sont principalement remplacé par leurs Erzats, et où la forme des continent est légèrement différent.
Cette Terre possède comme principale puissance politique les *Fédérations Unis*, et comme plus grande force militaire les *Guardian Units of Nations* (ou GUN).
### Les Fédérations Unis
Les Fédérations Unis sont la république parlementaire avec un régime présidentiel qui couvre une grande partie de la planète Terre. Plus puissante nation de la planète, elle a subit plusieurs crise depuis le retour du Docteur *Ivo Robotnik* sur Terre lors de l'incident de Christmas Island.
Elles peuvent être vu comme quelque chose entres les Nations-Unis et les États-Unis. Le but de cet état est de garantir un développement tout en respectant les libertés des pays qui en font partie (et qui conserve une certaine indépendance). L'île de Sunlit Island est sous contrôle des Fédérations Unis, avec comme représentant le maire de la ville de *Sunlit Metropolis*.
Leur technologie est majoritairement contemporaire, mais a réussi de grande avancée depuis 50 ans à l'aide des technologies chaotique, en grande partie découvertes par le professeur Gérald
Dans le jeu, les Fédérations Unis, n'ont pas une présence très forte dans le jeu, en tout cas pas directement.
### Les Gardian Units of Nations
Les Gardian Units of Nations (ou G.U.N. parfois orthographié en GUN) sont la principale force militaire des Fédérations Unis, et ont comme rôle de protéger à la fois les Fédérations Unis, et à la fois les pays alliés. Cette armée est dirigé par un Commandant.
L'armée est actuellement en grande partie dédiée à affronter le Dr. Ivo Robotnik, qui vise à conquérir le monde, mais narrive pas à le localiser et à lancer des attaques précises. La capacité à disparaître de ce savant étant déconcertante, et ses moyens encore inconnus. L'inefficacité de GUN à vaincre les menances originaire du monde des animaux est la source d'une méfiance chez certaines personnes.