class DerivedStats {
    /**
     * how many hits you can take, if it reaches 0 you ded!
     */
    get Hitpoints() {
        return this._data.getUint8(0, true);
    }
    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.
     */
    get Stamina() {
        return this._data.getUint8(1, true);
    }
    set Stamina(v) {
        return this._data.setUint8(1, v, true);
    }
    /**
     * being able to observe some objects
     */
    get Perception() {
        return this._data.getUint8(2, true);
    }
    set Perception(v) {
        return this._data.setUint8(2, v, true);
    }
    /**
     * Get better probability rolls for things that matter for rolls
     */
    get Luck() {
        return this._data.getUint8(3, true);
    }
    set Luck(v) {
        return this._data.setUint8(3, v, true);
    }
    /**
     * Probability of being discovered when hiding
     */
    get Stealth() {
        return this._data.getUint8(4, true);
    }
    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.
     */
    get Attractiveness() {
        return this._data.getUint8(5, true);
    }
    set Attractiveness(v) {
        return this._data.setUint8(5, v, true);
    }
    /**
     * same as attractiveness but can change with money
     */
    get Affluence() {
        return this._data.getUint8(6, true);
    }
    set Affluence(v) {
        return this._data.setUint8(6, v, true);
    }
    /**
     * how attuned to the vision of Eru
     */
    get Holyness() {
        return this._data.getInt8(7, true);
    }
    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
     */
    constructor(init = {}, ptr = undefined) {
        this._size = 8;
        this._ptr = ptr.buffer || new ArrayBuffer(this._size);
        this._data = new DataView(this._ptr);
                  
        for (const key of Object.keys(init)) {
          this[key] = init[key];
        }
    }
}

export default DerivedStats