update schema
This commit is contained in:
parent
60a550834e
commit
b1940f30df
|
@ -1,89 +1,137 @@
|
|||
/**
|
||||
* @typedef {Object} DerivedStats Derived user stats
|
||||
* @property {Uint8} u8 how many hits you can take, if it reaches 0 you ded!
|
||||
* @property {Uint8} u8 How many strenuous actions you can take, i.e. swinging a hammer, attacking, fishing, etc.
|
||||
* @property {Uint8} u8 being able to observe some objects
|
||||
* @property {Uint8} u8 Get better probability rolls for things that matter for rolls
|
||||
* @property {Uint8} u8 Probability of being discovered when hiding
|
||||
* @property {Uint8} u8 based on your character you make in the creator. more attractive will have better outcomes with aristocracy and more 'ugly' will have better outcomes with working class.
|
||||
* @property {Uint8} u8 same as attractiveness but can change with money
|
||||
* @property {Int8} i8 how attuned to the vision of Eru
|
||||
*/
|
||||
class DerivedStats {
|
||||
/**
|
||||
* how many hits you can take, if it reaches 0 you ded!
|
||||
* @return {Uint8} gets the value of Hitpoints
|
||||
*/
|
||||
get Hitpoints() {
|
||||
return this._data.getUint8(0, true);
|
||||
}
|
||||
/**
|
||||
* how many hits you can take, if it reaches 0 you ded!
|
||||
* @param {Uint8} sets the value of Hitpoints
|
||||
*/
|
||||
set Hitpoints(v) {
|
||||
return this._data.setUint8(0, v, true);
|
||||
}
|
||||
/**
|
||||
* How many strenuous actions you can take, i.e. swinging a hammer, attacking, fishing, etc.
|
||||
* @return {Uint8} gets the value of Stamina
|
||||
*/
|
||||
get Stamina() {
|
||||
return this._data.getUint8(1, true);
|
||||
}
|
||||
/**
|
||||
* How many strenuous actions you can take, i.e. swinging a hammer, attacking, fishing, etc.
|
||||
* @param {Uint8} sets the value of Stamina
|
||||
*/
|
||||
set Stamina(v) {
|
||||
return this._data.setUint8(1, v, true);
|
||||
}
|
||||
/**
|
||||
* being able to observe some objects
|
||||
* @return {Uint8} gets the value of Perception
|
||||
*/
|
||||
get Perception() {
|
||||
return this._data.getUint8(2, true);
|
||||
}
|
||||
/**
|
||||
* being able to observe some objects
|
||||
* @param {Uint8} sets the value of Perception
|
||||
*/
|
||||
set Perception(v) {
|
||||
return this._data.setUint8(2, v, true);
|
||||
}
|
||||
/**
|
||||
* Get better probability rolls for things that matter for rolls
|
||||
* @return {Uint8} gets the value of Luck
|
||||
*/
|
||||
get Luck() {
|
||||
return this._data.getUint8(3, true);
|
||||
}
|
||||
/**
|
||||
* Get better probability rolls for things that matter for rolls
|
||||
* @param {Uint8} sets the value of Luck
|
||||
*/
|
||||
set Luck(v) {
|
||||
return this._data.setUint8(3, v, true);
|
||||
}
|
||||
/**
|
||||
* Probability of being discovered when hiding
|
||||
* @return {Uint8} gets the value of Stealth
|
||||
*/
|
||||
get Stealth() {
|
||||
return this._data.getUint8(4, true);
|
||||
}
|
||||
/**
|
||||
* Probability of being discovered when hiding
|
||||
* @param {Uint8} sets the value of Stealth
|
||||
*/
|
||||
set Stealth(v) {
|
||||
return this._data.setUint8(4, v, true);
|
||||
}
|
||||
/**
|
||||
* based on your character you make in the creator. more attractive will have better outcomes with aristocracy and more 'ugly' will have better outcomes with working class.
|
||||
* @return {Uint8} gets the value of Attractiveness
|
||||
*/
|
||||
get Attractiveness() {
|
||||
return this._data.getUint8(5, true);
|
||||
}
|
||||
/**
|
||||
* based on your character you make in the creator. more attractive will have better outcomes with aristocracy and more 'ugly' will have better outcomes with working class.
|
||||
* @param {Uint8} sets the value of Attractiveness
|
||||
*/
|
||||
set Attractiveness(v) {
|
||||
return this._data.setUint8(5, v, true);
|
||||
}
|
||||
/**
|
||||
* same as attractiveness but can change with money
|
||||
* @return {Uint8} gets the value of Affluence
|
||||
*/
|
||||
get Affluence() {
|
||||
return this._data.getUint8(6, true);
|
||||
}
|
||||
/**
|
||||
* same as attractiveness but can change with money
|
||||
* @param {Uint8} sets the value of Affluence
|
||||
*/
|
||||
set Affluence(v) {
|
||||
return this._data.setUint8(6, v, true);
|
||||
}
|
||||
/**
|
||||
* how attuned to the vision of Eru
|
||||
* @return {Int8} gets the value of Holyness
|
||||
*/
|
||||
get Holyness() {
|
||||
return this._data.getInt8(7, true);
|
||||
}
|
||||
/**
|
||||
* how attuned to the vision of Eru
|
||||
* @param {Int8} sets the value of Holyness
|
||||
*/
|
||||
set Holyness(v) {
|
||||
return this._data.setInt8(7, v, true);
|
||||
}
|
||||
/**
|
||||
* get the struct representation of the object
|
||||
*/
|
||||
get bytes() {
|
||||
return new Uint8Array(this._ptr);
|
||||
}
|
||||
/**
|
||||
* constructor
|
||||
* Constructs a new DerivedStats
|
||||
*
|
||||
* @param {{Hitpoints: Uint8, Stamina: Uint8, Perception: Uint8, Luck: Uint8, Stealth: Uint8, Attractiveness: Uint8, Affluence: Uint8, Holyness: Int8, }} init The arguments to construct the object.
|
||||
* @param {Uint8Array} ptr The pointer to the C struct.
|
||||
*/
|
||||
constructor(init = {}, ptr = undefined) {
|
||||
this._size = 8;
|
||||
this._ptr = ptr.buffer || new ArrayBuffer(this._size);
|
||||
this._data = new DataView(this._ptr);
|
||||
this._ptr = ptr || new Uint8Array(this._size);
|
||||
this._data = new DataView(this._ptr.buffer);
|
||||
|
||||
for (const key of Object.keys(init)) {
|
||||
this[key] = init[key];
|
||||
|
|
|
@ -2,65 +2,100 @@ import Vector3 from "./Vector3"
|
|||
import Stats from "./Stats"
|
||||
import DerivedStats from "./DerivedStats"
|
||||
import Skills from "./Skills"
|
||||
/**
|
||||
* @typedef {Object} Entity Something that can exist in 3D space
|
||||
* @property {string} Name Name of the entity
|
||||
* @property {Vector3} Vector3 Vector3 of the entity in space
|
||||
* @property {Stats} Stats Base stats
|
||||
* @property {DerivedStats} DerivedStats Stats that are derived from skills and base stats
|
||||
* @property {Skills} Skills Stuff that your character can do
|
||||
*/
|
||||
class Entity {
|
||||
/**
|
||||
* Name of the entity
|
||||
* @return {string} gets the value of Name
|
||||
*/
|
||||
get Name() {
|
||||
return this._decoder.decode(new Uint8Array(this._ptr.slice(0, 24)));
|
||||
}
|
||||
/**
|
||||
* Name of the entity
|
||||
* @param {string} v sets the value of Name
|
||||
*/
|
||||
set Name(v) {
|
||||
this._data.set(this._encoder.encode(v), 0);
|
||||
if (v.length > 24) {
|
||||
throw new Error("input is larger than buffer size of 24");
|
||||
}
|
||||
const tmp = new Uint8Array(new ArrayBuffer(24));
|
||||
tmp.set(this._encoder.encode(v))
|
||||
this._ptr.set(tmp.buffer, 0);
|
||||
}
|
||||
/**
|
||||
* Vector3 of the entity in space
|
||||
* @return {Vector3} gets the value of Vector3
|
||||
*/
|
||||
get Vector3() {
|
||||
return new Vector3({}, new Uint8Array(this._ptr.slice(24, 36)));
|
||||
}
|
||||
/**
|
||||
* Vector3 of the entity in space
|
||||
* @param {Vector3} sets the value of Vector3
|
||||
*/
|
||||
set Vector3(v) {
|
||||
this._data.set(v.bytes(), 24);
|
||||
this._ptr.set(v._ptr, 24);
|
||||
}
|
||||
/**
|
||||
* Base stats
|
||||
* @return {Stats} gets the value of Stats
|
||||
*/
|
||||
get Stats() {
|
||||
return new Stats({}, new Uint8Array(this._ptr.slice(36, 41)));
|
||||
}
|
||||
/**
|
||||
* Base stats
|
||||
* @param {Stats} sets the value of Stats
|
||||
*/
|
||||
set Stats(v) {
|
||||
this._data.set(v.bytes(), 36);
|
||||
this._ptr.set(v._ptr, 36);
|
||||
}
|
||||
/**
|
||||
* Stats that are derived from skills and base stats
|
||||
* @return {DerivedStats} gets the value of DerivedStats
|
||||
*/
|
||||
get DerivedStats() {
|
||||
return new DerivedStats({}, new Uint8Array(this._ptr.slice(41, 49)));
|
||||
}
|
||||
/**
|
||||
* Stats that are derived from skills and base stats
|
||||
* @param {DerivedStats} sets the value of DerivedStats
|
||||
*/
|
||||
set DerivedStats(v) {
|
||||
this._data.set(v.bytes(), 41);
|
||||
this._ptr.set(v._ptr, 41);
|
||||
}
|
||||
/**
|
||||
* Stuff that your character can do
|
||||
* @return {Skills} gets the value of Skills
|
||||
*/
|
||||
get Skills() {
|
||||
return new Skills({}, new Uint8Array(this._ptr.slice(49, 65)));
|
||||
}
|
||||
set Skills(v) {
|
||||
this._data.set(v.bytes(), 49);
|
||||
}
|
||||
/**
|
||||
* get the struct representation of the object
|
||||
/**
|
||||
* Stuff that your character can do
|
||||
* @param {Skills} sets the value of Skills
|
||||
*/
|
||||
get bytes() {
|
||||
return new Uint8Array(this._ptr);
|
||||
set Skills(v) {
|
||||
this._ptr.set(v._ptr, 49);
|
||||
}
|
||||
/**
|
||||
* constructor
|
||||
* Constructs a new Entity
|
||||
*
|
||||
* @param {{Name: string, Vector3: Vector3, Stats: Stats, DerivedStats: DerivedStats, Skills: Skills, }} init The arguments to construct the object.
|
||||
* @param {Uint8Array} ptr The pointer to the C struct.
|
||||
*/
|
||||
constructor(init = {}, ptr = undefined) {
|
||||
this._size = 65;
|
||||
this._ptr = ptr.buffer || new ArrayBuffer(this._size);
|
||||
this._data = new DataView(this._ptr);
|
||||
this._ptr = ptr || new Uint8Array(this._size);
|
||||
this._data = new DataView(this._ptr.buffer);
|
||||
|
||||
this._encoder = new TextEncoder();
|
||||
this._decoder = new TextDecoder();
|
||||
|
|
|
@ -1,35 +1,52 @@
|
|||
/**
|
||||
* @typedef {Object} Item Item
|
||||
* @property {string} Name Name of the item
|
||||
* @property {Int32} i32 Default starting value of the item
|
||||
*/
|
||||
class Item {
|
||||
/**
|
||||
* Name of the item
|
||||
* @return {string} gets the value of Name
|
||||
*/
|
||||
get Name() {
|
||||
return this._decoder.decode(new Uint8Array(this._ptr.slice(0, 24)));
|
||||
}
|
||||
/**
|
||||
* Name of the item
|
||||
* @param {string} v sets the value of Name
|
||||
*/
|
||||
set Name(v) {
|
||||
this._data.set(this._encoder.encode(v), 0);
|
||||
if (v.length > 24) {
|
||||
throw new Error("input is larger than buffer size of 24");
|
||||
}
|
||||
const tmp = new Uint8Array(new ArrayBuffer(24));
|
||||
tmp.set(this._encoder.encode(v))
|
||||
this._ptr.set(tmp.buffer, 0);
|
||||
}
|
||||
/**
|
||||
* Default starting value of the item
|
||||
* @return {Int32} gets the value of BaseValue
|
||||
*/
|
||||
get BaseValue() {
|
||||
return this._data.getInt32(24, true);
|
||||
}
|
||||
/**
|
||||
* Default starting value of the item
|
||||
* @param {Int32} sets the value of BaseValue
|
||||
*/
|
||||
set BaseValue(v) {
|
||||
return this._data.setInt32(24, v, true);
|
||||
}
|
||||
/**
|
||||
* get the struct representation of the object
|
||||
*/
|
||||
get bytes() {
|
||||
return new Uint8Array(this._ptr);
|
||||
}
|
||||
/**
|
||||
* constructor
|
||||
* Constructs a new Item
|
||||
*
|
||||
* @param {{Name: string, BaseValue: Int32, }} init The arguments to construct the object.
|
||||
* @param {Uint8Array} ptr The pointer to the C struct.
|
||||
*/
|
||||
constructor(init = {}, ptr = undefined) {
|
||||
this._size = 28;
|
||||
this._ptr = ptr.buffer || new ArrayBuffer(this._size);
|
||||
this._data = new DataView(this._ptr);
|
||||
this._ptr = ptr || new Uint8Array(this._size);
|
||||
this._data = new DataView(this._ptr.buffer);
|
||||
|
||||
this._encoder = new TextEncoder();
|
||||
this._decoder = new TextDecoder();
|
||||
|
|
|
@ -1,26 +1,37 @@
|
|||
/**
|
||||
* @typedef {Object} Phenomenon Kinda like an action, cant remember
|
||||
* @property {string} Name Name of the phenomenon
|
||||
*/
|
||||
class Phenomenon {
|
||||
/**
|
||||
* Name of the phenomenon
|
||||
* @return {string} gets the value of Name
|
||||
*/
|
||||
get Name() {
|
||||
return this._decoder.decode(new Uint8Array(this._ptr.slice(0, 64)));
|
||||
}
|
||||
/**
|
||||
* Name of the phenomenon
|
||||
* @param {string} v sets the value of Name
|
||||
*/
|
||||
set Name(v) {
|
||||
this._data.set(this._encoder.encode(v), 0);
|
||||
}
|
||||
/**
|
||||
* get the struct representation of the object
|
||||
*/
|
||||
get bytes() {
|
||||
return new Uint8Array(this._ptr);
|
||||
if (v.length > 64) {
|
||||
throw new Error("input is larger than buffer size of 64");
|
||||
}
|
||||
const tmp = new Uint8Array(new ArrayBuffer(64));
|
||||
tmp.set(this._encoder.encode(v))
|
||||
this._ptr.set(tmp.buffer, 0);
|
||||
}
|
||||
/**
|
||||
* constructor
|
||||
* Constructs a new Phenomenon
|
||||
*
|
||||
* @param {{Name: string, }} init The arguments to construct the object.
|
||||
* @param {Uint8Array} ptr The pointer to the C struct.
|
||||
*/
|
||||
constructor(init = {}, ptr = undefined) {
|
||||
this._size = 64;
|
||||
this._ptr = ptr.buffer || new ArrayBuffer(this._size);
|
||||
this._data = new DataView(this._ptr);
|
||||
this._ptr = ptr || new Uint8Array(this._size);
|
||||
this._data = new DataView(this._ptr.buffer);
|
||||
|
||||
this._encoder = new TextEncoder();
|
||||
this._decoder = new TextDecoder();
|
||||
|
|
|
@ -1,161 +1,257 @@
|
|||
/**
|
||||
* @typedef {Object} Skills User skills
|
||||
* @property {Uint8} u8 Crafting, visual arts, etc.
|
||||
* @property {Uint8} u8 cooking, baking, brewing,
|
||||
* @property {Uint8} u8 using guns/cannons, bows, etc.
|
||||
* @property {Uint8} u8 using swords, hammers, pole-arms etc.
|
||||
* @property {Uint8} u8 being able to contort, move, dodge, etc.
|
||||
* @property {Uint8} u8 skullduggery, lock-picking, deceiving, slight of hand
|
||||
* @property {Uint8} u8 creating and using contraptions, building houses
|
||||
* @property {Uint8} u8 obvious, but in this you can also use automatic stuff
|
||||
* @property {Uint8} u8 ability to read/write a specific language
|
||||
* @property {Uint8} u8 healing hp, getting rid of diseases, etc.
|
||||
* @property {Uint8} u8 Creating potions, creating alloys, creating chemicals, component based 'magic'
|
||||
* @property {Uint8} u8 collecting fish
|
||||
* @property {Uint8} u8 collecting ore
|
||||
* @property {Uint8} u8 woodcutting, fire-making, hunting, collecting herbs, etc.
|
||||
* @property {Uint8} u8 growing plants, herbs, etc.
|
||||
* @property {Uint8} u8 will give more information when examining some objects
|
||||
*/
|
||||
class Skills {
|
||||
/**
|
||||
* Crafting, visual arts, etc.
|
||||
* @return {Uint8} gets the value of Artisan
|
||||
*/
|
||||
get Artisan() {
|
||||
return this._data.getUint8(0, true);
|
||||
}
|
||||
/**
|
||||
* Crafting, visual arts, etc.
|
||||
* @param {Uint8} sets the value of Artisan
|
||||
*/
|
||||
set Artisan(v) {
|
||||
return this._data.setUint8(0, v, true);
|
||||
}
|
||||
/**
|
||||
* cooking, baking, brewing,
|
||||
* @return {Uint8} gets the value of Culinary
|
||||
*/
|
||||
get Culinary() {
|
||||
return this._data.getUint8(1, true);
|
||||
}
|
||||
/**
|
||||
* cooking, baking, brewing,
|
||||
* @param {Uint8} sets the value of Culinary
|
||||
*/
|
||||
set Culinary(v) {
|
||||
return this._data.setUint8(1, v, true);
|
||||
}
|
||||
/**
|
||||
* using guns/cannons, bows, etc.
|
||||
* @return {Uint8} gets the value of Ranged
|
||||
*/
|
||||
get Ranged() {
|
||||
return this._data.getUint8(2, true);
|
||||
}
|
||||
/**
|
||||
* using guns/cannons, bows, etc.
|
||||
* @param {Uint8} sets the value of Ranged
|
||||
*/
|
||||
set Ranged(v) {
|
||||
return this._data.setUint8(2, v, true);
|
||||
}
|
||||
/**
|
||||
* using swords, hammers, pole-arms etc.
|
||||
* @return {Uint8} gets the value of Melee
|
||||
*/
|
||||
get Melee() {
|
||||
return this._data.getUint8(3, true);
|
||||
}
|
||||
/**
|
||||
* using swords, hammers, pole-arms etc.
|
||||
* @param {Uint8} sets the value of Melee
|
||||
*/
|
||||
set Melee(v) {
|
||||
return this._data.setUint8(3, v, true);
|
||||
}
|
||||
/**
|
||||
* being able to contort, move, dodge, etc.
|
||||
* @return {Uint8} gets the value of Acrobatics
|
||||
*/
|
||||
get Acrobatics() {
|
||||
return this._data.getUint8(4, true);
|
||||
}
|
||||
/**
|
||||
* being able to contort, move, dodge, etc.
|
||||
* @param {Uint8} sets the value of Acrobatics
|
||||
*/
|
||||
set Acrobatics(v) {
|
||||
return this._data.setUint8(4, v, true);
|
||||
}
|
||||
/**
|
||||
* skullduggery, lock-picking, deceiving, slight of hand
|
||||
* @return {Uint8} gets the value of Prestidigitation
|
||||
*/
|
||||
get Prestidigitation() {
|
||||
return this._data.getUint8(5, true);
|
||||
}
|
||||
/**
|
||||
* skullduggery, lock-picking, deceiving, slight of hand
|
||||
* @param {Uint8} sets the value of Prestidigitation
|
||||
*/
|
||||
set Prestidigitation(v) {
|
||||
return this._data.setUint8(5, v, true);
|
||||
}
|
||||
/**
|
||||
* creating and using contraptions, building houses
|
||||
* @return {Uint8} gets the value of Engineering
|
||||
*/
|
||||
get Engineering() {
|
||||
return this._data.getUint8(6, true);
|
||||
}
|
||||
/**
|
||||
* creating and using contraptions, building houses
|
||||
* @param {Uint8} sets the value of Engineering
|
||||
*/
|
||||
set Engineering(v) {
|
||||
return this._data.setUint8(6, v, true);
|
||||
}
|
||||
/**
|
||||
* obvious, but in this you can also use automatic stuff
|
||||
* @return {Uint8} gets the value of Metalworking
|
||||
*/
|
||||
get Metalworking() {
|
||||
return this._data.getUint8(7, true);
|
||||
}
|
||||
/**
|
||||
* obvious, but in this you can also use automatic stuff
|
||||
* @param {Uint8} sets the value of Metalworking
|
||||
*/
|
||||
set Metalworking(v) {
|
||||
return this._data.setUint8(7, v, true);
|
||||
}
|
||||
/**
|
||||
* ability to read/write a specific language
|
||||
* @return {Uint8} gets the value of Language
|
||||
*/
|
||||
get Language() {
|
||||
return this._data.getUint8(8, true);
|
||||
}
|
||||
/**
|
||||
* ability to read/write a specific language
|
||||
* @param {Uint8} sets the value of Language
|
||||
*/
|
||||
set Language(v) {
|
||||
return this._data.setUint8(8, v, true);
|
||||
}
|
||||
/**
|
||||
* healing hp, getting rid of diseases, etc.
|
||||
* @return {Uint8} gets the value of Medicine
|
||||
*/
|
||||
get Medicine() {
|
||||
return this._data.getUint8(9, true);
|
||||
}
|
||||
/**
|
||||
* healing hp, getting rid of diseases, etc.
|
||||
* @param {Uint8} sets the value of Medicine
|
||||
*/
|
||||
set Medicine(v) {
|
||||
return this._data.setUint8(9, v, true);
|
||||
}
|
||||
/**
|
||||
* Creating potions, creating alloys, creating chemicals, component based 'magic'
|
||||
* @return {Uint8} gets the value of Alchemy
|
||||
*/
|
||||
get Alchemy() {
|
||||
return this._data.getUint8(10, true);
|
||||
}
|
||||
/**
|
||||
* Creating potions, creating alloys, creating chemicals, component based 'magic'
|
||||
* @param {Uint8} sets the value of Alchemy
|
||||
*/
|
||||
set Alchemy(v) {
|
||||
return this._data.setUint8(10, v, true);
|
||||
}
|
||||
/**
|
||||
* collecting fish
|
||||
* @return {Uint8} gets the value of Fishing
|
||||
*/
|
||||
get Fishing() {
|
||||
return this._data.getUint8(11, true);
|
||||
}
|
||||
/**
|
||||
* collecting fish
|
||||
* @param {Uint8} sets the value of Fishing
|
||||
*/
|
||||
set Fishing(v) {
|
||||
return this._data.setUint8(11, v, true);
|
||||
}
|
||||
/**
|
||||
* collecting ore
|
||||
* @return {Uint8} gets the value of Mining
|
||||
*/
|
||||
get Mining() {
|
||||
return this._data.getUint8(12, true);
|
||||
}
|
||||
/**
|
||||
* collecting ore
|
||||
* @param {Uint8} sets the value of Mining
|
||||
*/
|
||||
set Mining(v) {
|
||||
return this._data.setUint8(12, v, true);
|
||||
}
|
||||
/**
|
||||
* woodcutting, fire-making, hunting, collecting herbs, etc.
|
||||
* @return {Uint8} gets the value of Survival
|
||||
*/
|
||||
get Survival() {
|
||||
return this._data.getUint8(13, true);
|
||||
}
|
||||
/**
|
||||
* woodcutting, fire-making, hunting, collecting herbs, etc.
|
||||
* @param {Uint8} sets the value of Survival
|
||||
*/
|
||||
set Survival(v) {
|
||||
return this._data.setUint8(13, v, true);
|
||||
}
|
||||
/**
|
||||
* growing plants, herbs, etc.
|
||||
* @return {Uint8} gets the value of Gardening
|
||||
*/
|
||||
get Gardening() {
|
||||
return this._data.getUint8(14, true);
|
||||
}
|
||||
/**
|
||||
* growing plants, herbs, etc.
|
||||
* @param {Uint8} sets the value of Gardening
|
||||
*/
|
||||
set Gardening(v) {
|
||||
return this._data.setUint8(14, v, true);
|
||||
}
|
||||
/**
|
||||
* will give more information when examining some objects
|
||||
* @return {Uint8} gets the value of History
|
||||
*/
|
||||
get History() {
|
||||
return this._data.getUint8(15, true);
|
||||
}
|
||||
/**
|
||||
* will give more information when examining some objects
|
||||
* @param {Uint8} sets the value of History
|
||||
*/
|
||||
set History(v) {
|
||||
return this._data.setUint8(15, v, true);
|
||||
}
|
||||
/**
|
||||
* get the struct representation of the object
|
||||
*/
|
||||
get bytes() {
|
||||
return new Uint8Array(this._ptr);
|
||||
}
|
||||
/**
|
||||
* constructor
|
||||
* Constructs a new Skills
|
||||
*
|
||||
* @param {{Artisan: Uint8, Culinary: Uint8, Ranged: Uint8, Melee: Uint8, Acrobatics: Uint8, Prestidigitation: Uint8, Engineering: Uint8, Metalworking: Uint8, Language: Uint8, Medicine: Uint8, Alchemy: Uint8, Fishing: Uint8, Mining: Uint8, Survival: Uint8, Gardening: Uint8, History: Uint8, }} init The arguments to construct the object.
|
||||
* @param {Uint8Array} ptr The pointer to the C struct.
|
||||
*/
|
||||
constructor(init = {}, ptr = undefined) {
|
||||
this._size = 16;
|
||||
this._ptr = ptr.buffer || new ArrayBuffer(this._size);
|
||||
this._data = new DataView(this._ptr);
|
||||
this._ptr = ptr || new Uint8Array(this._size);
|
||||
this._data = new DataView(this._ptr.buffer);
|
||||
|
||||
for (const key of Object.keys(init)) {
|
||||
this[key] = init[key];
|
||||
|
|
|
@ -1,62 +1,92 @@
|
|||
/**
|
||||
* @typedef {Object} Stats User stats
|
||||
* @property {Uint8} u8 Physical attack damage + Equipment Load
|
||||
* @property {Uint8} u8 HP + Dmg mitigation for physical damage, how much stamina you have
|
||||
* @property {Uint8} u8 Use/build steampunk gadgets + be able to read specific logical papers
|
||||
* @property {Uint8} u8 Number of magic / special attack / skills you can remember at one time.
|
||||
* @property {Uint8} u8 how good you can talk, persuade, etc.
|
||||
*/
|
||||
class Stats {
|
||||
/**
|
||||
* Physical attack damage + Equipment Load
|
||||
* @return {Uint8} gets the value of Strength
|
||||
*/
|
||||
get Strength() {
|
||||
return this._data.getUint8(0, true);
|
||||
}
|
||||
/**
|
||||
* Physical attack damage + Equipment Load
|
||||
* @param {Uint8} sets the value of Strength
|
||||
*/
|
||||
set Strength(v) {
|
||||
return this._data.setUint8(0, v, true);
|
||||
}
|
||||
/**
|
||||
* HP + Dmg mitigation for physical damage, how much stamina you have
|
||||
* @return {Uint8} gets the value of Endurance
|
||||
*/
|
||||
get Endurance() {
|
||||
return this._data.getUint8(1, true);
|
||||
}
|
||||
/**
|
||||
* HP + Dmg mitigation for physical damage, how much stamina you have
|
||||
* @param {Uint8} sets the value of Endurance
|
||||
*/
|
||||
set Endurance(v) {
|
||||
return this._data.setUint8(1, v, true);
|
||||
}
|
||||
/**
|
||||
* Use/build steampunk gadgets + be able to read specific logical papers
|
||||
* @return {Uint8} gets the value of Intelligence
|
||||
*/
|
||||
get Intelligence() {
|
||||
return this._data.getUint8(2, true);
|
||||
}
|
||||
/**
|
||||
* Use/build steampunk gadgets + be able to read specific logical papers
|
||||
* @param {Uint8} sets the value of Intelligence
|
||||
*/
|
||||
set Intelligence(v) {
|
||||
return this._data.setUint8(2, v, true);
|
||||
}
|
||||
/**
|
||||
* Number of magic / special attack / skills you can remember at one time.
|
||||
* @return {Uint8} gets the value of Wisdom
|
||||
*/
|
||||
get Wisdom() {
|
||||
return this._data.getUint8(3, true);
|
||||
}
|
||||
/**
|
||||
* Number of magic / special attack / skills you can remember at one time.
|
||||
* @param {Uint8} sets the value of Wisdom
|
||||
*/
|
||||
set Wisdom(v) {
|
||||
return this._data.setUint8(3, v, true);
|
||||
}
|
||||
/**
|
||||
* how good you can talk, persuade, etc.
|
||||
* @return {Uint8} gets the value of Charisma
|
||||
*/
|
||||
get Charisma() {
|
||||
return this._data.getUint8(4, true);
|
||||
}
|
||||
/**
|
||||
* how good you can talk, persuade, etc.
|
||||
* @param {Uint8} sets the value of Charisma
|
||||
*/
|
||||
set Charisma(v) {
|
||||
return this._data.setUint8(4, v, true);
|
||||
}
|
||||
/**
|
||||
* get the struct representation of the object
|
||||
*/
|
||||
get bytes() {
|
||||
return new Uint8Array(this._ptr);
|
||||
}
|
||||
/**
|
||||
* constructor
|
||||
* Constructs a new Stats
|
||||
*
|
||||
* @param {{Strength: Uint8, Endurance: Uint8, Intelligence: Uint8, Wisdom: Uint8, Charisma: Uint8, }} init The arguments to construct the object.
|
||||
* @param {Uint8Array} ptr The pointer to the C struct.
|
||||
*/
|
||||
constructor(init = {}, ptr = undefined) {
|
||||
this._size = 5;
|
||||
this._ptr = ptr.buffer || new ArrayBuffer(this._size);
|
||||
this._data = new DataView(this._ptr);
|
||||
this._ptr = ptr || new Uint8Array(this._size);
|
||||
this._data = new DataView(this._ptr.buffer);
|
||||
|
||||
for (const key of Object.keys(init)) {
|
||||
this[key] = init[key];
|
||||
|
|
|
@ -1,44 +1,62 @@
|
|||
/**
|
||||
* @typedef {Object} Vector3 A representation of a position in 3D space
|
||||
* @property {Float32} f32 x coordinate
|
||||
* @property {Float32} f32 y coordinate
|
||||
* @property {Float32} f32 z coordinate
|
||||
*/
|
||||
class Vector3 {
|
||||
/**
|
||||
* x coordinate
|
||||
* @return {Float32} gets the value of x
|
||||
*/
|
||||
get x() {
|
||||
return this._data.getFloat32(0, true);
|
||||
}
|
||||
/**
|
||||
* x coordinate
|
||||
* @param {Float32} sets the value of x
|
||||
*/
|
||||
set x(v) {
|
||||
return this._data.setFloat32(0, v, true);
|
||||
}
|
||||
/**
|
||||
* y coordinate
|
||||
* @return {Float32} gets the value of y
|
||||
*/
|
||||
get y() {
|
||||
return this._data.getFloat32(4, true);
|
||||
}
|
||||
/**
|
||||
* y coordinate
|
||||
* @param {Float32} sets the value of y
|
||||
*/
|
||||
set y(v) {
|
||||
return this._data.setFloat32(4, v, true);
|
||||
}
|
||||
/**
|
||||
* z coordinate
|
||||
* @return {Float32} gets the value of z
|
||||
*/
|
||||
get z() {
|
||||
return this._data.getFloat32(8, true);
|
||||
}
|
||||
/**
|
||||
* z coordinate
|
||||
* @param {Float32} sets the value of z
|
||||
*/
|
||||
set z(v) {
|
||||
return this._data.setFloat32(8, v, true);
|
||||
}
|
||||
/**
|
||||
* get the struct representation of the object
|
||||
*/
|
||||
get bytes() {
|
||||
return new Uint8Array(this._ptr);
|
||||
}
|
||||
/**
|
||||
* constructor
|
||||
* Constructs a new Vector3
|
||||
*
|
||||
* @param {{x: Float32, y: Float32, z: Float32, }} init The arguments to construct the object.
|
||||
* @param {Uint8Array} ptr The pointer to the C struct.
|
||||
*/
|
||||
constructor(init = {}, ptr = undefined) {
|
||||
this._size = 12;
|
||||
this._ptr = ptr.buffer || new ArrayBuffer(this._size);
|
||||
this._data = new DataView(this._ptr);
|
||||
this._ptr = ptr || new Uint8Array(this._size);
|
||||
this._data = new DataView(this._ptr.buffer);
|
||||
|
||||
for (const key of Object.keys(init)) {
|
||||
this[key] = init[key];
|
||||
|
|
|
@ -1,219 +1,240 @@
|
|||
{
|
||||
"Vector3": {
|
||||
"x": {
|
||||
"type": "f32",
|
||||
"kind": "scalar",
|
||||
"comment": "x coordinate"
|
||||
},
|
||||
"y": {
|
||||
"type": "f32",
|
||||
"kind": "scalar",
|
||||
"comment": "y coordinate"
|
||||
},
|
||||
"z": {
|
||||
"type": "f32",
|
||||
"kind": "scalar",
|
||||
"comment": "z coordinate"
|
||||
"comment": "A representation of a position in 3D space",
|
||||
"members": {
|
||||
"x": {
|
||||
"type": "f32",
|
||||
"kind": "scalar",
|
||||
"comment": "x coordinate"
|
||||
},
|
||||
"y": {
|
||||
"type": "f32",
|
||||
"kind": "scalar",
|
||||
"comment": "y coordinate"
|
||||
},
|
||||
"z": {
|
||||
"type": "f32",
|
||||
"kind": "scalar",
|
||||
"comment": "z coordinate"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Stats": {
|
||||
"Strength": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "Physical attack damage + Equipment Load"
|
||||
},
|
||||
"Endurance": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "HP + Dmg mitigation for physical damage, how much stamina you have"
|
||||
},
|
||||
"Intelligence": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "Use/build steampunk gadgets + be able to read specific logical papers"
|
||||
},
|
||||
"Wisdom": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "Number of magic / special attack / skills you can remember at one time."
|
||||
},
|
||||
"Charisma": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "how good you can talk, persuade, etc."
|
||||
"comment": "User stats",
|
||||
"members": {
|
||||
"Strength": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "Physical attack damage + Equipment Load"
|
||||
},
|
||||
"Endurance": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "HP + Dmg mitigation for physical damage, how much stamina you have"
|
||||
},
|
||||
"Intelligence": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "Use/build steampunk gadgets + be able to read specific logical papers"
|
||||
},
|
||||
"Wisdom": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "Number of magic / special attack / skills you can remember at one time."
|
||||
},
|
||||
"Charisma": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "how good you can talk, persuade, etc."
|
||||
}
|
||||
}
|
||||
},
|
||||
"Skills": {
|
||||
"Artisan": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "Crafting, visual arts, etc."
|
||||
},
|
||||
"Culinary": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "cooking, baking, brewing, "
|
||||
},
|
||||
"Ranged": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "using guns/cannons, bows, etc."
|
||||
},
|
||||
"Melee": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "using swords, hammers, pole-arms etc."
|
||||
},
|
||||
"Acrobatics": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "being able to contort, move, dodge, etc."
|
||||
},
|
||||
"Prestidigitation": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "skullduggery, lock-picking, deceiving, slight of hand"
|
||||
},
|
||||
"Engineering": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": " creating and using contraptions, building houses"
|
||||
},
|
||||
"Metalworking": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "obvious, but in this you can also use automatic stuff"
|
||||
},
|
||||
"Language": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "ability to read/write a specific language"
|
||||
},
|
||||
"Medicine": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "healing hp, getting rid of diseases, etc."
|
||||
},
|
||||
"Alchemy": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "Creating potions, creating alloys, creating chemicals, component based 'magic'"
|
||||
},
|
||||
"Fishing": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "collecting fish"
|
||||
},
|
||||
"Mining": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "collecting ore"
|
||||
},
|
||||
"Survival": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "woodcutting, fire-making, hunting, collecting herbs, etc."
|
||||
},
|
||||
"Gardening": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "growing plants, herbs, etc."
|
||||
},
|
||||
"History": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "will give more information when examining some objects"
|
||||
"comment": "User skills",
|
||||
"members": {
|
||||
"Artisan": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "Crafting, visual arts, etc."
|
||||
},
|
||||
"Culinary": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "cooking, baking, brewing, "
|
||||
},
|
||||
"Ranged": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "using guns/cannons, bows, etc."
|
||||
},
|
||||
"Melee": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "using swords, hammers, pole-arms etc."
|
||||
},
|
||||
"Acrobatics": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "being able to contort, move, dodge, etc."
|
||||
},
|
||||
"Prestidigitation": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "skullduggery, lock-picking, deceiving, slight of hand"
|
||||
},
|
||||
"Engineering": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": " creating and using contraptions, building houses"
|
||||
},
|
||||
"Metalworking": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "obvious, but in this you can also use automatic stuff"
|
||||
},
|
||||
"Language": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "ability to read/write a specific language"
|
||||
},
|
||||
"Medicine": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "healing hp, getting rid of diseases, etc."
|
||||
},
|
||||
"Alchemy": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "Creating potions, creating alloys, creating chemicals, component based 'magic'"
|
||||
},
|
||||
"Fishing": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "collecting fish"
|
||||
},
|
||||
"Mining": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "collecting ore"
|
||||
},
|
||||
"Survival": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "woodcutting, fire-making, hunting, collecting herbs, etc."
|
||||
},
|
||||
"Gardening": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "growing plants, herbs, etc."
|
||||
},
|
||||
"History": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "will give more information when examining some objects"
|
||||
}
|
||||
}
|
||||
},
|
||||
"DerivedStats": {
|
||||
"Hitpoints": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "how many hits you can take, if it reaches 0 you ded!"
|
||||
},
|
||||
"Stamina": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "How many strenuous actions you can take, i.e. swinging a hammer, attacking, fishing, etc."
|
||||
},
|
||||
"Perception": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "being able to observe some objects"
|
||||
},
|
||||
"Luck": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "Get better probability rolls for things that matter for rolls"
|
||||
},
|
||||
"Stealth": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "Probability of being discovered when hiding"
|
||||
},
|
||||
"Attractiveness": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "based on your character you make in the creator. more attractive will have better outcomes with aristocracy and more 'ugly' will have better outcomes with working class."
|
||||
},
|
||||
"Affluence": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "same as attractiveness but can change with money"
|
||||
},
|
||||
"Holyness": {
|
||||
"type": "i8",
|
||||
"kind": "scalar",
|
||||
"comment": "how attuned to the vision of Eru"
|
||||
"comment": "Derived user stats",
|
||||
"members": {
|
||||
"Hitpoints": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "how many hits you can take, if it reaches 0 you ded!"
|
||||
},
|
||||
"Stamina": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "How many strenuous actions you can take, i.e. swinging a hammer, attacking, fishing, etc."
|
||||
},
|
||||
"Perception": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "being able to observe some objects"
|
||||
},
|
||||
"Luck": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "Get better probability rolls for things that matter for rolls"
|
||||
},
|
||||
"Stealth": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "Probability of being discovered when hiding"
|
||||
},
|
||||
"Attractiveness": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "based on your character you make in the creator. more attractive will have better outcomes with aristocracy and more 'ugly' will have better outcomes with working class."
|
||||
},
|
||||
"Affluence": {
|
||||
"type": "u8",
|
||||
"kind": "scalar",
|
||||
"comment": "same as attractiveness but can change with money"
|
||||
},
|
||||
"Holyness": {
|
||||
"type": "i8",
|
||||
"kind": "scalar",
|
||||
"comment": "how attuned to the vision of Eru"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Entity": {
|
||||
"Name": {
|
||||
"type": "string",
|
||||
"kind": "string",
|
||||
"size": "24",
|
||||
"comment": "Name of the entity"
|
||||
},
|
||||
"Vector3": {
|
||||
"type": "Vector3",
|
||||
"kind": "struct",
|
||||
"comment": "Vector3 of the entity in space"
|
||||
},
|
||||
"Stats": {
|
||||
"type": "Stats",
|
||||
"kind": "struct",
|
||||
"comment": "Base stats"
|
||||
},
|
||||
"DerivedStats": {
|
||||
"type": "DerivedStats",
|
||||
"kind": "struct",
|
||||
"comment": "Stats that are derived from skills and base stats"
|
||||
},
|
||||
"Skills": {
|
||||
"type": "Skills",
|
||||
"kind": "struct",
|
||||
"comment": "Stuff that your character can do"
|
||||
"comment": "Something that can exist in 3D space",
|
||||
"members": {
|
||||
"Name": {
|
||||
"type": "string",
|
||||
"kind": "string",
|
||||
"size": "24",
|
||||
"comment": "Name of the entity"
|
||||
},
|
||||
"Vector3": {
|
||||
"type": "Vector3",
|
||||
"kind": "struct",
|
||||
"comment": "Vector3 of the entity in space"
|
||||
},
|
||||
"Stats": {
|
||||
"type": "Stats",
|
||||
"kind": "struct",
|
||||
"comment": "Base stats"
|
||||
},
|
||||
"DerivedStats": {
|
||||
"type": "DerivedStats",
|
||||
"kind": "struct",
|
||||
"comment": "Stats that are derived from skills and base stats"
|
||||
},
|
||||
"Skills": {
|
||||
"type": "Skills",
|
||||
"kind": "struct",
|
||||
"comment": "Stuff that your character can do"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Item": {
|
||||
"Name": {
|
||||
"type": "string",
|
||||
"kind": "string",
|
||||
"size": "24",
|
||||
"comment": "Name of the item"
|
||||
},
|
||||
"BaseValue": {
|
||||
"type": "i32",
|
||||
"kind": "scalar",
|
||||
"comment": "Default starting value of the item"
|
||||
"comment": "Item",
|
||||
"members": {
|
||||
"Name": {
|
||||
"type": "string",
|
||||
"kind": "string",
|
||||
"size": "24",
|
||||
"comment": "Name of the item"
|
||||
},
|
||||
"BaseValue": {
|
||||
"type": "i32",
|
||||
"kind": "scalar",
|
||||
"comment": "Default starting value of the item"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Phenomenon": {
|
||||
"Name": {
|
||||
"type": "string",
|
||||
"kind": "string",
|
||||
"size": "64",
|
||||
"comment": "Name of the phenomenon"
|
||||
"comment": "Kinda like an action, cant remember",
|
||||
"members": {
|
||||
"Name": {
|
||||
"type": "string",
|
||||
"kind": "string",
|
||||
"size": "64",
|
||||
"comment": "Name of the phenomenon"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
"Vector3": {
|
||||
"type": "struct",
|
||||
"comment": "A representation of a position in 3D space",
|
||||
"members": {
|
||||
"x": {
|
||||
|
@ -20,6 +21,7 @@
|
|||
}
|
||||
},
|
||||
"Login": {
|
||||
"type": "struct",
|
||||
"comment": "The login object",
|
||||
"members": {
|
||||
"Email": {
|
||||
|
@ -37,6 +39,7 @@
|
|||
}
|
||||
},
|
||||
"User": {
|
||||
"type": "struct",
|
||||
"comment": "The user object",
|
||||
"members": {
|
||||
"Name": {
|
||||
|
@ -58,6 +61,7 @@
|
|||
}
|
||||
},
|
||||
"LoginRequest": {
|
||||
"type": "request",
|
||||
"comment": "a request for a login",
|
||||
"members": {
|
||||
"Login": {
|
||||
|
@ -68,6 +72,7 @@
|
|||
}
|
||||
},
|
||||
"LoginResponse": {
|
||||
"type": "response",
|
||||
"comment": "the response from a login request",
|
||||
"members": {
|
||||
"success": {
|
||||
|
|
Loading…
Reference in New Issue