As is widely known, using magic is very difficult, requiring skill in mana management, theoretical knowledge of deities, and an innate aptitude. So, the Central Arcane Magic Control System (CAMCS) was born.
A global system to support the individual in the control of Arcane Magic. Manages the control of mana and mediates communication with the gods in order to facilitate the use of magic by the individual.
Important
Due to the magic invocation process being mediated by the system, the number of available spells is limited, with no freedom to explore the creation of new spells.
- What can individual do?
- How it was possible?
- Steps of each process
- Progress of the system
- How to execute in my world?
From the registration ceremony, the individual is marked with an insignia that defines their aptitude and their strong point. Moreover, but no less importantly, it is through this ceremony that the individual is registered as an user of the system.
Through prayer, the individual can receive more knowledge from the gods, which consequently facilitates the process of mediation and increases the efficiency of magic.
Each achievement that the individual has significantly contributes to their development. Achievements related to the gods somehow carry more weight.
Through achievements or prayers, the individual can receive points offered by the system itself, which can be used to learn new spells or increase their attributes.
With their spells unleashed and enough mana, the individual can cast spells.
Solve the lack of mana after releasing spells. You can increase by a little percent of your max mana in each meditation.
Thanks to the great advances in the field of Magical Science, Arcane Biology, Study of the Global Arcane Network and Ancient Technology, this was made possible. You don't need to worry about understanding how it works behind the scenes, but know that through a safe and efficient process, even those with low or no aptitude will certainly be able to match a low to intermediate level mage.
- Individual starts the ceremony giving his name, soul id and a master code.
- System validates the data and creates the individual entry.
- If individual's soul id already exists, the ceremony fails.
- System generates the individual's insignia.
- Individual receives its insignia.
- Individual sends their prayer.
- System analyzes the prayer and delivers a corresponding reward.
- Individual receives the reward.
- Individual selects the spells that wants to learn.
- System checks if spell is available to learn and if individual can do it.
- If the spell isn't available to learn, the learning process fail.
- If individual don't have the points enough, the learning process fail.
- System decrease the individual points and apply all necessaries side-effects.
- Individual receives the new spell.
- Individual selects the spell that wants to release.
- System checks if individual has mana enough.
- If individual's mana is low, the release spell process fail.
- System gives the condensed knowledge to release.
- Individual release the spell.
- Individual starts the meditation.
- System calculate how many mp individual will receive.
- Individual has mp increased.
Do the registration to the system and receive the insignia.
POST /api/ceremony
| Field | Data Type | Required | Description |
|---|---|---|---|
name |
string |
true |
Display name to the system |
soul |
string |
true |
An unique identifier |
code |
string |
true |
The secret access code |
$ curl -XPOST http://localhost:8080/api/ceremony \
-H "Content-Type: application/json" \
-d '{ "name": "John Doe", "soul": "earth.john.askdjfoi", "code": "strongcode" }'201Ceremony complete successfuly
{
"message": "string",
"access_token": "string"
}400Invalid request data500Fail to complete ceremony
Do the login to the system given credentials of existing individual.
POST /api/ceremony/login
| Field | Data Type | Required | Description |
|---|---|---|---|
soul |
string |
true |
The unique identifier |
code |
string |
true |
The secret access code |
$ curl -XPOST http://localhost:8080/api/ceremony/login \
-H "Content-Type: application/json" \
-d '{ "soul": "earth.john.askdjfoi", "code": "strongcode" }'201Logged successfuly
{
"message": "string",
"access_token": "string"
}400Invalid request data401Individual's soul or code is invalid
Get the currenlty logged individual's profile.
GET /api/individual/profile
$ curl -XGET http://localhost:8080/api/ceremony/profile \
-H "Authorization: Bearer <token>"200The profile
{
"individual": {
"id": "int",
"name": "string",
"soul": "string",
"insignia": "string",
"updated_at": "datetime",
"created_at": "datetime"
},
"metadata": {
"id": "int",
"individual_id": "int",
"sp": "int",
"mp": "int",
"max_mp": "int",
"xp": "int",
"level": "int",
"updated_at": "datetime",
"created_at": "datetime"
}
}400Invalid request data401Unauthorized404Individual with given ID was not found500Failed to grab individual's metadata
Sends a prayer to the gods and receives skill points based in the worth of the prayer.
POST /api/individual/pray
| Field | Data Type | Required | Description |
|---|---|---|---|
prayer |
string |
true |
The individual's prayer |
$ curl -XPOST http://localhost:8080/api/ceremony/pray \
-H "Authorization: Bearer <token>"
-d '{ "prayer": "string" }'200Prayer successfuly complete400Invalid request data401Unauthorized500Failed to grab individual's metadata500Failed to complete prayer
List all spells.
GET /api/spells
$ curl -XGET http://localhost:8080/api/spells \
-H "Authorization: Bearer <token>"200List of Spells
[
{
"id": "int",
"name": "string",
"type": "string",
"code": "string",
"price": "int",
"mana": "int",
"updated_at": "datetime",
"created_at": "datetime",
"available": "boolean",
"learned": "boolean"
},
...
]429Too many requests
Learn a new spell with the right amount of skill points.
POST /api/spells/{id}/learn
| Field | Data Type | Required | Description |
|---|---|---|---|
id |
int |
true |
The ID of spell to learn |
$ curl -XPOST http://localhost:8080/api/spells/1/learn \
-H "Authorization: Bearer <token>"200Spell learned successfuly400Spell isn't available to learn400Trying to learn a spell again400Insufficient skill point401Unauthorized404Spell not found500Failed to grab individual's metadata500Failed to complete learning
Increase the magic points through the meditation.
POST /api/individuals/meditate
$ curl -XPOST http://localhost:8080/api/individuals/meditate \
-H "Authorization: Bearer <token>"| Column | Data Type | Description |
|---|---|---|
id |
PK INT AUTO_INCREMENT |
The individual's id |
name |
VARCHAR(64) |
The individual's name |
soul |
VARCHAR(255) UNIQUE |
The individual's soul |
code |
VARCHAR(255) |
The individual's code |
insignia |
INT |
The individual's insignia |
| Column | Data Type | Description |
|---|---|---|
id |
PK INT AUTO_INCREMENT |
The metadata's id |
individual_id |
FK INT |
The metadata's owner id |
sp |
INT |
Total skill points |
mp |
INT |
Total mana points |
max_mp |
INT |
Max mana points |
xp |
INT |
Total experience points |
level |
INT |
The individual's level |
| Column | Data Type | Description |
|---|---|---|
id |
PK INT AUTO_INCREMENT |
The spell's id |
name |
VARCHAR(64) |
The spell's name |
type |
INT |
The spell's type |
code |
VARCHAR(255) |
The spell's code |
price |
INT |
The spell's price in SP |
mana |
INT |
The spell's mana cost |
| Column | Data Type | Description |
|---|---|---|
id |
PK INT AUTO_INCREMENT |
The achievement's id |
name |
VARCHAR(64) |
The achievement's name |
type |
INT |
The achievement's type |
- Authentication
- Registration Ceremony
- Login
- Individual
- Pray
- Meditate
- Learn Spells
- Release Spells
- Status Attributes
- Receive Achievements On Actions
- Achievements
- Special Effects
- Leveling System
- Gain XP On Actions
- Increase Level Based On XP
- Clone repository from GitHub
$ git clone https://github.com/SadS4ndWiCh/camcs && cd camcs- Install dependencies
$ composer install- Setup enviroment variables
$ mv env .envdatabase.default.hostname =
database.default.database =
database.default.username =
database.default.password =
JWT_SECRET_KEY =- Execute migrations
$ php spark migrate- Run
$ php spark serve