-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstorage.js
116 lines (97 loc) · 3.9 KB
/
storage.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
function storeCharacter(character) {
const characters = getCharacters();
const characterIndex = characters.findIndex(storedcharacter => storedcharacter.characterId === parseInt(character.characterId));
if (characterIndex != -1) {
characters[characterIndex] = character;
} else {
characters.push(character);
}
storeCharacters(characters);
}
function storeCharacters(characters) {
localStorage.setItem('characterList', JSON.stringify(characters));
}
function getCharacters() {
const characters = localStorage.getItem('characterList');
return characters ? JSON.parse(characters) : [];
}
function getStoredCharacter(characterId) {
const characters = getCharacters();
const foundCharacter = characters.find(character => character.characterId === parseInt(characterId));
return foundCharacter;
}
function storeQuest(quest, heroes) {
const status = quest.querySelector('select').value;
if (!localStorage.getItem('storedQuests')) {
storedQuests = [];
const id = quest.id;
const storedQuest = {id, status, heroes};
storedQuests.push(storedQuest);
} else {
storedQuests = JSON.parse(localStorage.getItem('storedQuests'));
const storedQuest = storedQuests.find(storedQuest => storedQuest.id === quest.id);
if (storedQuest) {
storedQuest.status = status;
storedQuest.heroes = heroes;
} else {
const id = quest.id;
const storedQuest = {id, status, heroes};
storedQuests.push(storedQuest);
}
}
localStorage.setItem('storedQuests', JSON.stringify(storedQuests));
}
function getStoredQuests() {
const storedQuests = localStorage.getItem('storedQuests');
return storedQuests ? JSON.parse(storedQuests) : [];
}
function deleteQuest(quest) {
const storedQuests = getStoredQuests();
const index = storedQuests.findIndex(storedQuest => storedQuest.id === quest.id);
storedQuests.splice(index, 1);
localStorage.setItem('storedQuests', JSON.stringify(storedQuests));
}
function getStoredQuest(quest) {
const storedQuests = getStoredQuests();
const questId = `quest-${quest.id}-sheet`;
if (storedQuests) {
const foundQuest = storedQuests.find(storedQuest => storedQuest.id === questId);
return foundQuest;
} else {
return undefined;
}
}
function removeStoredCharacterWeapon(characterId, weaponName) {
const characters = getCharacters();
const characterIndex = characters.findIndex(character => character.characterId === parseInt(characterId));
if (characterIndex !== -1) {
const character = characters[characterIndex];
const characterWeapons = character.weapons || [];
const weaponIndex = characterWeapons.indexOf(weaponName);
if (weaponIndex !== -1) {
characterWeapons.splice(weaponIndex, 1);
storeCharacters(characters);
}
}
}
function removeItemFromEquippedItems(characterId, item) {
const characters = getCharacters();
const characterIndex = characters.findIndex(character => character.characterId === parseInt(characterId));
if (characterIndex != -1) {
const character = characters[characterIndex];
const itemToRemoveIndex = character.equippedItems.findIndex(equippedItem => equippedItem.id === item.id);
if(itemToRemoveIndex != -1) {
character.equippedItems.splice(itemToRemoveIndex, 1);
storeCharacters(characters);
}
}
}
function storeEquippedItemToCharacter(characterId, item) {
const characters = getCharacters();
const characterIndex = characters.findIndex(character => character.characterId === parseInt(characterId));
if (characterIndex != -1) {
const character = characters[characterIndex];
character.equippedItems.push(item);
storeCharacters(characters);
}
}