Player state
Player overview
The player manager is inherited from Player and simply extends it. It includes work with authorization ad synchronization with the server. This part focuses on work with the player state.
Player properties:
// ID
gp.player.id
// Score
gp.player.score
// Name
gp.player.name
// Avatar link
gp.player.avatar
// Stub – is the player default or the data in its model differs from the default
gp.player.isStub
// Player fields
gp.player.fields
Methods for work with the player state
// Get the value of the key field
gp.player.get('gold');
// Set the value of the key field to value, the value is cast to the type
gp.player.set('class', 'warrior');
// Add the value to the key field
gp.player.add('gold', 50);
// Toggle the value of the key field
gp.player.toggle('vip');
// Check if the key field is present and not empty (not 0, '', false, null, undefined)
gp.player.has('vip');
// Return the player state as an object
gp.player.toJSON();
// Set the state from the object
gp.player.fromJSON({
name: 'test player',
score: 4522,
gold: 100,
vip: false,
class: 'warrior'
});
// Reset the player state to default
gp.player.reset();
// Remove the player – reset fields and clear ID
gp.player.remove();
Player events
// The player state has changed
gp.player.on('change', () => {})
Player fields
Player fields are set in the panel, they describe the player state and store the following properties:
/**
* Field name translated into current language
* @type {string}
*/
field.name
/**
* Unique field key
* @type {string}
*/
field.key
/**
* Field type
* @type {'stats' | 'data' | 'flag' | 'service' | 'accounts'}
* stats — numeric fields
* data — string fields
* flags — boolean fields
* service – ID, test, active, remote, etc.
* accounts — vkId, yandexId, okId, etc.
*/
field.type
/**
* Important field for the player
* If you need to decide who will be left, you can display these fields
* @type {boolean}
*/
field.important
/**
* Default field value
* @type {string | number | boolean}
*/
field.default
/**
* Possible variants of values for the fields
* If they are not specified, then the field takes any value
* @type {ModelFieldVariant[]}
*/
field.variants
Field variants can also be set in the panel. Variant properties:
/**
* Variant name translated into current language
* @type {string}
*/
field.name
/**
* Unique value of the variant
* @type {string | number | boolean}
*/
field.value
The list of fields is available directly in the player model.
gp.player.fields
Methods for work with fields:
// Get the field by key
gp.player.getField('gold');
// Get the translated field name by key
gp.player.getFieldName('score');
// Get the translated name of the field variant by the key and its value
gp.player.getFieldVariantName('rank', 2);
Stay in Touch
Other documents of this chapter available Here. To get started, welcome to the Tutorials chapter.
GamePush Community Telegram
: @gs_community.
For your suggestions e-mail
: [email protected]
We Wish you Success!