albibong 1.0.7__py3-none-any.whl → 1.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- albibong/__init__.py +58 -0
- albibong/classes/dungeon.py +39 -32
- albibong/classes/event_handler/__init__.py +10 -0
- albibong/classes/event_handler/handle_event_character_equipment_changed.py +2 -10
- albibong/classes/event_handler/handle_event_party.py +6 -13
- albibong/classes/event_handler/handle_operation_change_cluster.py +17 -22
- albibong/classes/event_handler/handle_operation_farmable_harvest.py +17 -0
- albibong/classes/event_handler/handle_operation_join.py +2 -25
- albibong/classes/event_handler/world_data_utils.py +68 -25
- albibong/classes/item.py +19 -4
- albibong/classes/location.py +136 -5
- albibong/gui_dist/assets/index-C4r00CBk.js +168 -0
- albibong/gui_dist/assets/index-DKbORdbN.css +1 -0
- albibong/gui_dist/index.html +2 -2
- albibong/models/__init__.py +0 -0
- albibong/models/models.py +12 -0
- albibong/requirements.txt +1 -0
- albibong/resources/items_by_unique_name.json +55282 -0
- albibong/resources/maps.json +259 -259
- albibong/threads/websocket_server.py +64 -41
- {albibong-1.0.7.dist-info → albibong-1.1.0.dist-info}/METADATA +2 -1
- {albibong-1.0.7.dist-info → albibong-1.1.0.dist-info}/RECORD +26 -24
- albibong/gui_dist/assets/index-DZvgNqlG.css +0 -1
- albibong/gui_dist/assets/index-Dt6hyZiS.css +0 -1
- albibong/gui_dist/assets/index-E7pha23k.js +0 -161
- albibong/gui_dist/assets/index-WIuC9Mnh.js +0 -161
- /albibong/resources/{items.json → items_by_id.json} +0 -0
- {albibong-1.0.7.dist-info → albibong-1.1.0.dist-info}/WHEEL +0 -0
- {albibong-1.0.7.dist-info → albibong-1.1.0.dist-info}/entry_points.txt +0 -0
- {albibong-1.0.7.dist-info → albibong-1.1.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
-
from datetime import timedelta
|
|
3
2
|
import json
|
|
4
3
|
import os
|
|
5
4
|
import queue
|
|
6
5
|
import threading
|
|
6
|
+
from datetime import datetime, timedelta
|
|
7
7
|
|
|
8
8
|
import websockets
|
|
9
9
|
|
|
10
10
|
from albibong.classes.dungeon import Dungeon
|
|
11
|
+
from albibong.classes.location import Island
|
|
11
12
|
from albibong.classes.logger import Logger
|
|
12
13
|
|
|
13
14
|
logger = Logger(__name__, stdout=True, log_to_file=False)
|
|
14
15
|
logger_file = Logger(__name__)
|
|
15
16
|
|
|
16
|
-
home_dir = os.path.expanduser("~")
|
|
17
|
-
FILENAME = f"{home_dir}/Albibong/list_dungeon.json"
|
|
18
|
-
|
|
19
17
|
|
|
20
18
|
class WebsocketServer(threading.Thread):
|
|
21
19
|
def __init__(self, name, in_queue) -> None:
|
|
@@ -32,7 +30,6 @@ class WebsocketServer(threading.Thread):
|
|
|
32
30
|
try:
|
|
33
31
|
world_data = get_world_data()
|
|
34
32
|
me = world_data.me
|
|
35
|
-
# if me.id != None:
|
|
36
33
|
event_init_world = {
|
|
37
34
|
"type": "init_world",
|
|
38
35
|
"payload": {
|
|
@@ -49,33 +46,32 @@ class WebsocketServer(threading.Thread):
|
|
|
49
46
|
else "not initialized"
|
|
50
47
|
),
|
|
51
48
|
"dungeon": (
|
|
52
|
-
|
|
49
|
+
world_data.current_dungeon.name
|
|
53
50
|
if world_data.current_dungeon
|
|
54
|
-
else
|
|
51
|
+
else "not initialized"
|
|
55
52
|
),
|
|
56
53
|
"isDPSMeterRunning": world_data.is_dps_meter_running,
|
|
57
54
|
},
|
|
58
55
|
},
|
|
59
56
|
}
|
|
60
|
-
# logger.info(f"initializing character: {event}")
|
|
61
57
|
await websocket.send(json.dumps(event_init_world))
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
"type": "update_dungeon",
|
|
67
|
-
"payload": {"list_dungeon": list_dungeon},
|
|
68
|
-
}
|
|
69
|
-
except:
|
|
70
|
-
event_init_dungeon_list = {
|
|
71
|
-
"type": "update_dungeon",
|
|
72
|
-
"payload": {"list_dungeon": []},
|
|
73
|
-
}
|
|
58
|
+
event_init_dungeon_list = {
|
|
59
|
+
"type": "update_dungeon",
|
|
60
|
+
"payload": {"list_dungeon": Dungeon.get_all_dungeon()},
|
|
61
|
+
}
|
|
74
62
|
await websocket.send(json.dumps(event_init_dungeon_list))
|
|
75
|
-
|
|
63
|
+
event_init_island_list = {
|
|
64
|
+
"type": "update_island",
|
|
65
|
+
"payload": {"list_island": Island.get_all_island()},
|
|
66
|
+
}
|
|
67
|
+
await websocket.send(json.dumps(event_init_island_list))
|
|
68
|
+
total_harvest_reply = {
|
|
69
|
+
"type": "update_total_harvest_by_date",
|
|
70
|
+
"payload": Island.get_total_harvest_by_date(),
|
|
71
|
+
}
|
|
72
|
+
await websocket.send(json.dumps(total_harvest_reply))
|
|
76
73
|
async for message in websocket:
|
|
77
74
|
event = json.loads(message)
|
|
78
|
-
# print(event)
|
|
79
75
|
if event["type"] == "update_is_dps_meter_running":
|
|
80
76
|
world_data.is_dps_meter_running = event["payload"]["value"]
|
|
81
77
|
reply = {
|
|
@@ -92,7 +88,7 @@ class WebsocketServer(threading.Thread):
|
|
|
92
88
|
char.healing_dealt = 0
|
|
93
89
|
char.total_combat_duration = timedelta(0, 0)
|
|
94
90
|
reply = {
|
|
95
|
-
"type": "
|
|
91
|
+
"type": "update_damage_meter",
|
|
96
92
|
"payload": {
|
|
97
93
|
"party_members": world_data.serialize_party_members()
|
|
98
94
|
},
|
|
@@ -127,29 +123,56 @@ class WebsocketServer(threading.Thread):
|
|
|
127
123
|
await websocket.send(json.dumps(re_spec))
|
|
128
124
|
await websocket.send(json.dumps(silver))
|
|
129
125
|
elif event["type"] == "refresh_dungeon_list":
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
"type": "update_dungeon",
|
|
135
|
-
"payload": {"list_dungeon": list_dungeon},
|
|
136
|
-
}
|
|
137
|
-
except:
|
|
138
|
-
reply = {
|
|
139
|
-
"type": "update_dungeon",
|
|
140
|
-
"payload": {"list_dungeon": []},
|
|
141
|
-
}
|
|
126
|
+
reply = {
|
|
127
|
+
"type": "update_dungeon",
|
|
128
|
+
"payload": {"list_dungeon": Dungeon.get_all_dungeon()},
|
|
129
|
+
}
|
|
142
130
|
await websocket.send(json.dumps(reply))
|
|
143
|
-
elif event["type"] == "
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
131
|
+
elif event["type"] == "update_dungeon_tier":
|
|
132
|
+
id = event["payload"]["id"]
|
|
133
|
+
value = event["payload"]["value"]
|
|
134
|
+
dungeon: Dungeon = Dungeon.update(tier=value).where(
|
|
135
|
+
Dungeon.id == id
|
|
136
|
+
)
|
|
137
|
+
dungeon.execute()
|
|
138
|
+
reply = {
|
|
139
|
+
"type": "update_dungeon",
|
|
140
|
+
"payload": {"list_dungeon": Dungeon.get_all_dungeon()},
|
|
141
|
+
}
|
|
142
|
+
await websocket.send(json.dumps(reply))
|
|
143
|
+
elif event["type"] == "update_dungeon_name":
|
|
144
|
+
id = event["payload"]["id"]
|
|
145
|
+
value = event["payload"]["value"]
|
|
146
|
+
dungeon: Dungeon = Dungeon.update(name=value).where(
|
|
147
|
+
Dungeon.id == id
|
|
148
|
+
)
|
|
149
|
+
dungeon.execute()
|
|
148
150
|
reply = {
|
|
149
151
|
"type": "update_dungeon",
|
|
150
|
-
"payload": {"list_dungeon":
|
|
152
|
+
"payload": {"list_dungeon": Dungeon.get_all_dungeon()},
|
|
151
153
|
}
|
|
152
154
|
await websocket.send(json.dumps(reply))
|
|
155
|
+
elif event["type"] == "refresh_island_list":
|
|
156
|
+
refresh_island_reply = {
|
|
157
|
+
"type": "update_island",
|
|
158
|
+
"payload": {"list_island": Island.get_all_island()},
|
|
159
|
+
}
|
|
160
|
+
total_harvest_reply = {
|
|
161
|
+
"type": "update_total_harvest_by_date",
|
|
162
|
+
"payload": Island.get_total_harvest_by_date(),
|
|
163
|
+
}
|
|
164
|
+
await websocket.send(json.dumps(refresh_island_reply))
|
|
165
|
+
await websocket.send(json.dumps(total_harvest_reply))
|
|
166
|
+
elif event["type"] == "update_total_harvested_date_range":
|
|
167
|
+
date = event["payload"]["date"]
|
|
168
|
+
format = "%Y-%m-%d"
|
|
169
|
+
total_harvest_reply = {
|
|
170
|
+
"type": "update_total_harvest_by_date",
|
|
171
|
+
"payload": Island.get_total_harvest_by_date(
|
|
172
|
+
date=datetime.strptime(date, format)
|
|
173
|
+
),
|
|
174
|
+
}
|
|
175
|
+
await websocket.send(json.dumps(total_harvest_reply))
|
|
153
176
|
|
|
154
177
|
event = {}
|
|
155
178
|
send_event(event)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: albibong
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 1.1.0
|
|
4
4
|
Summary: A cross-platform Albion Online damage, fame, and dungeon tracker
|
|
5
5
|
Project-URL: Homepage, https://github.com/imjangkar/albibong
|
|
6
6
|
Project-URL: Issues, https://github.com/imjangkar/albibong/issues
|
|
@@ -10,6 +10,7 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
12
|
Requires-Python: >=3.10
|
|
13
|
+
Requires-Dist: peewee==3.17.6
|
|
13
14
|
Requires-Dist: pywebview==5.1
|
|
14
15
|
Requires-Dist: scapy==2.5.0
|
|
15
16
|
Requires-Dist: websockets==12.0
|
|
@@ -1,41 +1,42 @@
|
|
|
1
|
-
albibong/__init__.py,sha256=
|
|
1
|
+
albibong/__init__.py,sha256=c72O9jkaUoT8THK0n5AesWiceNynfjy8_1DHgGeRdxk,4341
|
|
2
2
|
albibong/__main__.py,sha256=c_p0e0PEZwwTNFl0f0-bzcNKwfrV94ZKpq4Od_1OfOQ,149
|
|
3
|
-
albibong/requirements.txt,sha256=
|
|
3
|
+
albibong/requirements.txt,sha256=APRaJ65RM4p9TciHYCpaXvFyKhOHubAuyif_p5fyTQg,59
|
|
4
4
|
albibong/assets/boom_small.mp3,sha256=XEeYaifS3kBu7jxJo4j8cwGjher8Ml0CpMvu3YNk4y0,16722
|
|
5
5
|
albibong/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
6
|
albibong/classes/character.py,sha256=epYuMsu_zREPJkICDHyZEsqXhtON9qOufc89bXDoVvc,3486
|
|
7
7
|
albibong/classes/coords.py,sha256=wjCO7YnKXzH9IsJ9YFObbpMYfVFT5o38RndWjQhjVEg,189
|
|
8
|
-
albibong/classes/dungeon.py,sha256=
|
|
9
|
-
albibong/classes/item.py,sha256=
|
|
10
|
-
albibong/classes/location.py,sha256=
|
|
8
|
+
albibong/classes/dungeon.py,sha256=AT8sEqGCRoVcBNYvMVvfVFVW77OYtp1MahFFZvMmu3U,1900
|
|
9
|
+
albibong/classes/item.py,sha256=tjAqXAexrqjrFaRAMPQfccmsMnI0FGafoEurJq_iAdc,1612
|
|
10
|
+
albibong/classes/location.py,sha256=VrzHuDkWDDJgNrNyuHDOcb_sg3P44j-lQStegP8Rjqo,4321
|
|
11
11
|
albibong/classes/logger.py,sha256=5DQoUqrvA2wf28XdRm2xwC4RBhIpP4d70PqRohRKNwM,4442
|
|
12
12
|
albibong/classes/packet_handler.py,sha256=1DpAZf5sMWO06qnjP62zxn3e9mU50_c5o1y6EUnxW68,1792
|
|
13
13
|
albibong/classes/utils.py,sha256=07fb06ZHNNtpjjTeGnCFOkGf7A4OWiithS1OEfjb9H0,146
|
|
14
14
|
albibong/classes/world_data.py,sha256=mUhgXNzS0GjNGSxIDzhw55KDB8rKt661zeAotE4WBds,3466
|
|
15
|
-
albibong/classes/event_handler/__init__.py,sha256=
|
|
16
|
-
albibong/classes/event_handler/handle_event_character_equipment_changed.py,sha256=
|
|
15
|
+
albibong/classes/event_handler/__init__.py,sha256=4EyPwvLeeua5lySV9WkYfH_iciOpnuq9_Bo_L11JRfI,4919
|
|
16
|
+
albibong/classes/event_handler/handle_event_character_equipment_changed.py,sha256=QT6SfYfRLUipWWgyd1uOYXPnrA4jR-T9mkLzKbqCdwE,783
|
|
17
17
|
albibong/classes/event_handler/handle_event_health.py,sha256=0RPvv0C-nklmKsp3UflN9qhpAkcLtd5bmmoN3cf-WM4,1078
|
|
18
18
|
albibong/classes/event_handler/handle_event_in_combat_state_update.py,sha256=sWDu5RdupNAT5ESCY1RJ7rMAKq1b4HwYM272UFHI9h8,517
|
|
19
19
|
albibong/classes/event_handler/handle_event_new_character.py,sha256=t9bdwe1-k2TVWAQ_HuBEmx2HO4-lgPoZJR0qKGcS6Vw,1507
|
|
20
20
|
albibong/classes/event_handler/handle_event_other_grabbed_loot.py,sha256=SQA9oHwxm4jxpDOIIN6R_KFK-U5kkQhNFSqmAO0hj50,529
|
|
21
|
-
albibong/classes/event_handler/handle_event_party.py,sha256=
|
|
21
|
+
albibong/classes/event_handler/handle_event_party.py,sha256=LNdgsi4hxzESD7gPut88RBTnV1JbEbLIT_amAy9BvXM,1094
|
|
22
22
|
albibong/classes/event_handler/handle_event_update_fame.py,sha256=fnreRc3NWISKdHePeQfSDiNsNpd_TgdyQOCjdFbVaSg,253
|
|
23
23
|
albibong/classes/event_handler/handle_event_update_re_spec_points.py,sha256=tUa8iMiOsRZX2FIZ5ySqEgO4gNZvtAqDBsqUo91BgWg,320
|
|
24
|
-
albibong/classes/event_handler/handle_operation_change_cluster.py,sha256=
|
|
25
|
-
albibong/classes/event_handler/
|
|
24
|
+
albibong/classes/event_handler/handle_operation_change_cluster.py,sha256=Pc9E27JL1oJwc3iKgTsFlGWUz6iRVHtySN59jV8gLo0,1644
|
|
25
|
+
albibong/classes/event_handler/handle_operation_farmable_harvest.py,sha256=PH0UONCmjdoTdlcYa70x2oKC5j7PXmrrsRS8pl9clZM,680
|
|
26
|
+
albibong/classes/event_handler/handle_operation_join.py,sha256=V37XhLyToHci6ZoBTudZgI_DgdWxJZahLaZ1ZgKgcDM,2312
|
|
26
27
|
albibong/classes/event_handler/handle_operation_move.py,sha256=vg_wTPQ4nA4-xyw9axtFmKkVCUoCkUq3RV74wFLbc_4,200
|
|
27
|
-
albibong/classes/event_handler/world_data_utils.py,sha256=
|
|
28
|
+
albibong/classes/event_handler/world_data_utils.py,sha256=qGfKH9YGe_xWN8cCjSkhJ3zGcw6O8BuYIilK-kR2qUw,5513
|
|
28
29
|
albibong/gui_dist/Albibong.png,sha256=vFWgJSosXfnSCy_U7Uu9hCYDCHiYtcmR1lpPA0XQRhY,38093
|
|
29
30
|
albibong/gui_dist/No Equipment.png,sha256=HdVR3WJ0ktF5v606QyURdHscjOgCqiXJnqI8k8IlSgE,131
|
|
30
31
|
albibong/gui_dist/fame.png,sha256=X2tUCmgR5TkGLUVvFB2lInH_RrXkC1pSLqpw_ply-rE,6015
|
|
31
|
-
albibong/gui_dist/index.html,sha256=
|
|
32
|
+
albibong/gui_dist/index.html,sha256=5gLx1Sb9TUnCufEXdKAeq6xDkhdDT5_EiAKY_lzej-I,477
|
|
32
33
|
albibong/gui_dist/re_spec.png,sha256=1KTzGT1u1wjmNk9svS5ZOV7zCDIEmiFy0USh6A_vhPA,6230
|
|
33
34
|
albibong/gui_dist/silver.png,sha256=tqXvZdf9zr0YoOQZoR2vG8NRffl4xvz0LY5XgwIrYD8,11533
|
|
34
35
|
albibong/gui_dist/vite.svg,sha256=SnSK_UQ5GLsWWRyDTEAdrjPoeGGrXbrQgRw6O0qSFPs,1497
|
|
35
|
-
albibong/gui_dist/assets/index-
|
|
36
|
-
albibong/gui_dist/assets/index-
|
|
37
|
-
albibong/
|
|
38
|
-
albibong/
|
|
36
|
+
albibong/gui_dist/assets/index-C4r00CBk.js,sha256=ZTo4BK2mM6Ho5VGX1nU9yl5gKKH22bJ8OMgMR1eyxvA,653266
|
|
37
|
+
albibong/gui_dist/assets/index-DKbORdbN.css,sha256=3mA_HToM0FzqFGXQD-KlMEskfkjWH3Aexah6w6slvMA,2741
|
|
38
|
+
albibong/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
|
+
albibong/models/models.py,sha256=CjQqahTEKx4MsCmD8CkQFhBA6n_rwFzkajIoYK2fCiQ,204
|
|
39
40
|
albibong/photon_packet_parser/__init__.py,sha256=Y_XwBGLl0ufhLr7d6phhfA6qL1RrG6mJ3qAC5lNKM_c,301
|
|
40
41
|
albibong/photon_packet_parser/command_type.py,sha256=-LSdpsQgViDygDJsjaoCUuLbBkK4-pmQuM8ESHG1BNk,137
|
|
41
42
|
albibong/photon_packet_parser/crc_calculator.py,sha256=rnhmknjiZBaSXBwS2cJacwLlnXaT74u9yEmvLknIh2o,402
|
|
@@ -51,16 +52,17 @@ albibong/photon_packet_parser/segmented_packet.py,sha256=pftqyVO0D7ZX8m1ZL2w2Xt_
|
|
|
51
52
|
albibong/resources/EventCode.py,sha256=WSKFXuaABz3FBugHmlTSHAvMaNfa4JaRQo5xqdcn3aI,19349
|
|
52
53
|
albibong/resources/OperationCode.py,sha256=9l5xdNhVCs4i-zaAPYC9BXPDBavX1D7VdpESmFQtKyE,16509
|
|
53
54
|
albibong/resources/event_code.json,sha256=vIHnrH1T0qaGM4t4qYyoknAYEjiSO543RNu4zhYWOGs,20483
|
|
54
|
-
albibong/resources/
|
|
55
|
-
albibong/resources/
|
|
55
|
+
albibong/resources/items_by_id.json,sha256=UoU4OSbB09DyxOpia2Ye1Hm4HR_4QlYqvhL_DKn6eQ8,1400109
|
|
56
|
+
albibong/resources/items_by_unique_name.json,sha256=VLixfNoc6RbMjfdBna2IdtG2PAwBbaYzsHSC8b96qp8,1635865
|
|
57
|
+
albibong/resources/maps.json,sha256=jEXIhIlPYO8fXk9xHOVpFKxw4_KUb72TBICvJy4-gBE,129753
|
|
56
58
|
albibong/resources/operation_code.json,sha256=zV9kgHtZ_fs1Pm7ntQxNbjfZbdiHRdUIhEkKAIJPLhU,17457
|
|
57
59
|
albibong/threads/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
58
60
|
albibong/threads/http_server.py,sha256=Tqy7P8pXvIQywmFdiFy4TNKxR4LadJP0t4OsQE3oHDI,1940
|
|
59
61
|
albibong/threads/packet_handler_thread.py,sha256=bqgYQUeCaTtnWgx4bGoqw-cWQcXRJohIse2hwCbVLmo,949
|
|
60
62
|
albibong/threads/sniffer_thread.py,sha256=mvz4YeEnZwNbbIUAKicue5QX0vt_KoJ6p81UuwkRQe0,767
|
|
61
|
-
albibong/threads/websocket_server.py,sha256=
|
|
62
|
-
albibong-1.0.
|
|
63
|
-
albibong-1.0.
|
|
64
|
-
albibong-1.0.
|
|
65
|
-
albibong-1.0.
|
|
66
|
-
albibong-1.0.
|
|
63
|
+
albibong/threads/websocket_server.py,sha256=23_DGv7PPVxhv0uWMLuykYdws9pgpVgo8dS8yrKSIes,9015
|
|
64
|
+
albibong-1.1.0.dist-info/METADATA,sha256=yj99hwDc-hmMrHE3pQnfyW_9v1aLLKefHmto8u7aAGk,611
|
|
65
|
+
albibong-1.1.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
|
66
|
+
albibong-1.1.0.dist-info/entry_points.txt,sha256=pLvUeo6eUwvsDQXsxdP9mRdSPufUlrz_9mFxsov0nm0,43
|
|
67
|
+
albibong-1.1.0.dist-info/licenses/LICENSE,sha256=7EI8xVBu6h_7_JlVw-yPhhOZlpY9hP8wal7kHtqKT_E,1074
|
|
68
|
+
albibong-1.1.0.dist-info/RECORD,,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*{box-sizing:border-box}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}p{margin:0}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}#root,body{margin:auto;display:flex;flex-direction:column;justify-content:start;align-items:center;min-width:320px;min-height:100vh;color:#fff;width:100%}h1{font-size:2em;line-height:1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}._dmgBar_zdqdf_1{background:linear-gradient(135deg,#ff6486,#6486ff);height:6px;border-radius:8px;margin-bottom:2px}._healBar_zdqdf_8{background:linear-gradient(135deg,#64ffde,#64ff90);height:2px;border-radius:4px}._dpsContainer_zdqdf_14{display:flex;flex-direction:column;justify-content:flex-start;width:100%;gap:4px;box-sizing:content-box;padding:16px}._dpsRow_zdqdf_24{display:flex;flex-direction:row;justify-content:space-between;align-items:center}._dpsNumber_zdqdf_31{width:128px;text-align:right}._hidden_zdqdf_36{display:none}._player_zdqdf_40{flex-grow:1}._checkboxColor_zdqdf_44{accent-color:#64d3ff}._dungeonContainer_3nxyx_1{border-radius:1rem;width:100%;padding:2rem;display:flex;flex-direction:column;gap:1rem}._tag_3nxyx_12{background-color:#64d3ff;padding:0 1rem;border-radius:1rem;color:#0f3c4e;font-weight:700}._stickToTop_3nxyx_20{z-index:10;position:sticky;top:64px;left:0;width:100%;padding:24px 0}._container_pkz1i_1{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;gap:1.5rem}._snackbar_pkz1i_10{position:fixed;right:64px}._stats_pkz1i_15{display:flex;flex-direction:row;align-items:center;gap:.5rem}._options_pkz1i_22{display:flex;flex-direction:row;align-items:center;gap:2rem}._row_pkz1i_29{display:flex;width:100%;justify-content:space-between}._hidden_pkz1i_35{display:none}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*{box-sizing:border-box}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}p{margin:0}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}#root,body{margin:auto;display:flex;flex-direction:column;justify-content:start;align-items:center;min-width:320px;min-height:100vh;color:#fff;width:100%}h1{font-size:2em;line-height:1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}._dmgBar_uvx94_1{background:linear-gradient(135deg,#ff6486,#6486ff);height:6px;border-radius:8px;margin-bottom:2px}._healBar_uvx94_8{background:linear-gradient(135deg,#64ffde,#64ff90);height:2px;border-radius:4px}._dpsContainer_uvx94_14{display:flex;flex-direction:column;justify-content:flex-start;width:100%;gap:4px;box-sizing:content-box;padding:16px}._dpsRow_uvx94_24{display:flex;flex-direction:row;justify-content:space-between;align-items:center}._dpsNumber_uvx94_31{width:128px;text-align:right}._dpsButton_uvx94_36{display:flex;flex-grow:1;gap:1rem}._hidden_uvx94_42{display:none}._player_uvx94_46{flex-grow:1}._checkboxColor_uvx94_50{accent-color:#64d3ff}._dungeonContainer_3nxyx_1{border-radius:1rem;width:100%;padding:2rem;display:flex;flex-direction:column;gap:1rem}._tag_3nxyx_12{background-color:#64d3ff;padding:0 1rem;border-radius:1rem;color:#0f3c4e;font-weight:700}._stickToTop_3nxyx_20{z-index:10;position:sticky;top:64px;left:0;width:100%;padding:24px 0}._container_pkz1i_1{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;gap:1.5rem}._snackbar_pkz1i_10{position:fixed;right:64px}._stats_pkz1i_15{display:flex;flex-direction:row;align-items:center;gap:.5rem}._options_pkz1i_22{display:flex;flex-direction:row;align-items:center;gap:2rem}._row_pkz1i_29{display:flex;width:100%;justify-content:space-between}._hidden_pkz1i_35{display:none}
|