mima-engine 0.2.3__py3-none-any.whl → 0.2.4__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.

Potentially problematic release.


This version of mima-engine might be problematic. Click here for more details.

@@ -156,3 +156,15 @@ DEFAULT_TOUCHSCREEN_MAP = {
156
156
  K.P1_B: [[0.5, 0.5], [0.75, 1.0]],
157
157
  K.P1_A: [[0.75, 0.5], [1.0, 1.0]],
158
158
  }
159
+
160
+ ALT_TOUCHSCREEN_MAP = {
161
+ K.P1_UP: {"pos": [0.1, 0.2], "size": [0.4, 0.7]},
162
+ K.P1_A: {"pos": [0.83, 0.84], "size": [0.12, 0.12]},
163
+ K.P1_B: {"pos": [0.70, 0.84], "size": [0.12, 0.12]},
164
+ K.P1_X: {"pos": [0.76, 0.69], "size": [0.12, 0.12]},
165
+ K.P1_Y: {"pos": [0.63, 0.69], "size": [0.12, 0.12]},
166
+ K.P1_START: {"pos": [0.39, 0.02], "size": [0.1, 0.1]},
167
+ K.P1_SELECT: {"pos": [0.51, 0.02], "size": [0.1, 0.1]},
168
+ K.P1_L: {"pos": [0.01, 0.3], "size": [0.05, 0.4]},
169
+ K.P1_R: {"pos": [0.94, 0.3], "size": [0.05, 0.4]},
170
+ }
mima/view/mima_mode.py CHANGED
@@ -90,7 +90,9 @@ class MimaMode(MimaView):
90
90
  def get_camera_name(self, player: Player = Player.P1):
91
91
  return self.scenes[player].camera.name
92
92
 
93
- def unload_map(self, player: Player = Player.P1, player_only: bool = False) -> None:
93
+ def unload_map(
94
+ self, player: Player = Player.P1, player_only: bool = False
95
+ ) -> None:
94
96
  p_obj = self.engine.memory.player[player]
95
97
  map_name = p_obj.tilemap.name
96
98
 
@@ -139,12 +141,15 @@ class MimaMode(MimaView):
139
141
  ) -> None:
140
142
  p_obj = self.engine.get_player(player)
141
143
  p_obj.stop_shining()
144
+ p_obj.on_exit_map()
142
145
 
143
146
  if map_name not in self.players_on_map:
144
147
  # Map not loaded
145
148
  self.prepare_object_lists(map_name, player, p_obj)
146
149
 
147
- self._loader.populate_dynamics(self.maps[player], self.dynamics[map_name])
150
+ self._loader.populate_dynamics(
151
+ self.maps[player], self.dynamics[map_name]
152
+ )
148
153
 
149
154
  for quest in self.engine.memory.quests:
150
155
  quest.populate_dynamics(self.dynamics[map_name], map_name)
@@ -161,6 +166,7 @@ class MimaMode(MimaView):
161
166
  p_obj.tilemap = self.maps[player]
162
167
  p_obj.px = px
163
168
  p_obj.py = py
169
+ p_obj.on_enter_map()
164
170
  self.engine.memory.last_spawn_px[player] = px
165
171
  self.engine.memory.last_spawn_py[player] = py
166
172
 
@@ -185,7 +191,9 @@ class MimaMode(MimaView):
185
191
  chunks_per_row,
186
192
  )
187
193
  if self.engine.draw_chunk_info:
188
- self.add_effect(DynamicDebugBox(obj, n_frames=-1), map_name)
194
+ self.add_effect(
195
+ DynamicDebugBox(obj, n_frames=-1), map_name
196
+ )
189
197
 
190
198
  def handle_user_input(self):
191
199
  for player, scene in self.scenes.items():
@@ -215,7 +223,9 @@ class MimaMode(MimaView):
215
223
  else:
216
224
  msg += f"object {obj.name} ({obj.dyn_id})"
217
225
  else:
218
- msg = "Trying to interact with a quest that is None"
226
+ msg = (
227
+ "Trying to interact with a quest that is None"
228
+ )
219
229
 
220
230
  LOG.exception(msg)
221
231
  raise
@@ -290,7 +300,9 @@ class MimaMode(MimaView):
290
300
  tilemap.width + self.chunk_size // 2,
291
301
  self.chunk_size,
292
302
  ):
293
- chidx = _chunk_index(px, py, self.chunk_size, chunks_per_row)
303
+ chidx = _chunk_index(
304
+ px, py, self.chunk_size, chunks_per_row
305
+ )
294
306
  # collision_lists[map_name][chidx] = []
295
307
  self.add_effect(
296
308
  StaticDebugBox(
@@ -333,7 +345,9 @@ class MimaMode(MimaView):
333
345
  # return collision_lists
334
346
 
335
347
  def _determine_target(self, obj, players) -> Dynamic:
336
- players = [p for p in players if not self.engine.get_player(p).occupied]
348
+ players = [
349
+ p for p in players if not self.engine.get_player(p).occupied
350
+ ]
337
351
  if not players:
338
352
  return None
339
353
  dists = [
@@ -354,7 +368,10 @@ class MimaMode(MimaView):
354
368
  return target # , skip
355
369
 
356
370
  def _update_velocity_z(self, obj: Dynamic, elapsed_time: float) -> None:
357
- obj.vz -= obj.attributes.gravity_vz * elapsed_time
371
+ if obj.pz > 0.0:
372
+ obj.vz -= obj.attributes.gravity_vz * elapsed_time
373
+ # else:
374
+ # obj.vz = 0.0
358
375
 
359
376
  def _update_position_z(self, obj: Dynamic, elapsed_time: float) -> None:
360
377
  if obj.gravity:
@@ -364,11 +381,16 @@ class MimaMode(MimaView):
364
381
  obj.vz = 0.0
365
382
 
366
383
  def handle_collisions(self, elapsed_time: float) -> None:
367
- screen_width = self.engine.backend.render_width // self.engine.rtc.tile_width
368
- screen_height = self.engine.backend.render_height // self.engine.rtc.tile_height
384
+ screen_width = (
385
+ self.engine.backend.render_width // self.engine.rtc.tile_width
386
+ )
387
+ screen_height = (
388
+ self.engine.backend.render_height // self.engine.rtc.tile_height
389
+ )
369
390
  max_dist = screen_width + screen_height
370
391
 
371
392
  for map_name, players in self.players_on_map.items():
393
+ # print(f"Collisions for {map_name}: {self.colliders[map_name]}")
372
394
  for obj in self.colliders[map_name]:
373
395
  if obj.occupied:
374
396
  continue
@@ -407,13 +429,19 @@ class MimaMode(MimaView):
407
429
  self.engine.memory.quests,
408
430
  ]
409
431
  if self._probe_p2p_collision(obj, other):
410
- new2_px, new2_py = check_object_to_object_collision(*args)
432
+ new2_px, new2_py = (
433
+ check_object_to_object_collision(*args)
434
+ )
411
435
 
412
436
  if new2_px == new_px and new2_py == new_py:
413
437
  # No change = no collision
414
- self.engine.trigger_player_collision(True, obj.player)
438
+ self.engine.trigger_player_collision(
439
+ True, obj.player
440
+ )
415
441
  else:
416
- new_px, new_py = check_object_to_object_collision(*args)
442
+ new_px, new_py = check_object_to_object_collision(
443
+ *args
444
+ )
417
445
  obj.px = new_px
418
446
  obj.py = new_py
419
447
 
@@ -435,17 +463,23 @@ class MimaMode(MimaView):
435
463
  vx, vy = vx * 0.707, vy * 0.707
436
464
 
437
465
  obj.real_vx = (
438
- vx if vx == obj.real_vx else calculate(obj, vx, obj.real_vx, elapsed_time)
466
+ vx
467
+ if vx == obj.real_vx
468
+ else calculate(obj, vx, obj.real_vx, elapsed_time)
439
469
  )
440
470
  obj.real_vy = (
441
- vy if vy == obj.real_vy else calculate(obj, vy, obj.real_vy, elapsed_time)
471
+ vy
472
+ if vy == obj.real_vy
473
+ else calculate(obj, vy, obj.real_vy, elapsed_time)
442
474
  )
443
475
 
444
476
  new_px = (
445
- obj.px + obj.real_vx * obj.speed * obj.attributes.speed_mod * elapsed_time
477
+ obj.px
478
+ + obj.real_vx * obj.speed * obj.attributes.speed_mod * elapsed_time
446
479
  )
447
480
  new_py = (
448
- obj.py + obj.real_vy * obj.speed * obj.attributes.speed_mod * elapsed_time
481
+ obj.py
482
+ + obj.real_vy * obj.speed * obj.attributes.speed_mod * elapsed_time
449
483
  )
450
484
 
451
485
  return new_px, new_py
@@ -475,7 +509,9 @@ class MimaMode(MimaView):
475
509
  for map_name in self.players_on_map:
476
510
  for effect in self.effects[map_name]:
477
511
  effect.update(elapsed_time)
478
- effect.px, effect.py = self.update_position(effect, elapsed_time)
512
+ effect.px, effect.py = self.update_position(
513
+ effect, elapsed_time
514
+ )
479
515
 
480
516
  def update_scenes(self, elapsed_time: float) -> None:
481
517
  for player, scene in self.scenes.items():
@@ -494,12 +530,17 @@ class MimaMode(MimaView):
494
530
 
495
531
  def add_dynamic(self, dynamic: Dynamic, map_name: str):
496
532
  self.dynamics[map_name].append(dynamic)
497
- if map_name in self.collision_targets and not dynamic.moves_on_collision:
533
+ if (
534
+ map_name in self.collision_targets
535
+ and not dynamic.moves_on_collision
536
+ ):
498
537
  dynamic.chunks = add_to_collision_chunk(
499
538
  self.collision_targets[map_name],
500
539
  dynamic,
501
540
  self.chunk_size,
502
- _chunks_per_row(self.chunk_size, self.engine.get_map(map_name).width),
541
+ _chunks_per_row(
542
+ self.chunk_size, self.engine.get_map(map_name).width
543
+ ),
503
544
  )
504
545
 
505
546
  def add_projectile(self, projectile: Projectile, map_name: str):
mima/view/mima_scene.py CHANGED
@@ -39,8 +39,10 @@ class MimaScene(MimaView):
39
39
  self._camera_name: str = (
40
40
  camera_name if camera_name is not None else f"C_{player.name}"
41
41
  )
42
+ self._controls_camera_name: str = f"{self._camera_name}_CONTROLS"
42
43
 
43
44
  self.camera: Camera
45
+ self.controls_camera: Camera
44
46
  self._dialog_px: float
45
47
  self._dialog_py: float
46
48
  self._dialog_width: float = DIALOG_WIDTH
@@ -85,6 +87,9 @@ class MimaScene(MimaView):
85
87
  self._dialog_py = height - 4
86
88
 
87
89
  self.camera = Camera(self._camera_name, width, height)
90
+ # self.controls_camera = Camera(
91
+ # self._controls_camera_name, width, height
92
+ # )
88
93
  if position == Position.CENTER:
89
94
  # print(f"Camera setup finished: {width}, {height}")
90
95
  return
@@ -181,6 +186,7 @@ class MimaScene(MimaView):
181
186
  self.skip_draw_ui = False
182
187
  return
183
188
  self._current_window.draw_ui()
189
+ self._current_window.draw_controls()
184
190
 
185
191
  def draw_camera_border(self):
186
192
  self.camera.draw_borders()
mima/view/mima_window.py CHANGED
@@ -6,6 +6,8 @@ from ..types.direction import Direction
6
6
  from ..types.keys import Key as K
7
7
  from ..types.player import Player
8
8
  from ..types.window import Window
9
+ from ..util.colors import TRANS_CYAN, TRANS_LIGHT_RED
10
+ from ..util.constants import BIG_FONT_HEIGHT, BIG_FONT_WIDTH
9
11
  from ..util.functions import wrap_text
10
12
  from .mima_view import MimaView
11
13
 
@@ -92,6 +94,16 @@ class MimaWindow(MimaView):
92
94
  obj.draw_self(
93
95
  self.camera.ox, self.camera.oy, self.camera.name
94
96
  )
97
+ if self.engine.draw_dyn_ids:
98
+ self.engine.backend.draw_small_text(
99
+ f"{obj.dyn_id}",
100
+ (obj.px - self.camera.ox)
101
+ * self.engine.rtc.tile_width,
102
+ (obj.py - self.camera.oy) * obj.sprite.height
103
+ + obj.sprite.height,
104
+ self.engine.rtc.color_red,
105
+ self.camera.name,
106
+ )
95
107
 
96
108
  def draw_effect_layers(
97
109
  self, effects: List[Dynamic], layers: List[int]
@@ -116,6 +128,85 @@ class MimaWindow(MimaView):
116
128
  def draw_ui(self) -> None:
117
129
  pass
118
130
 
131
+ def draw_controls(self) -> None:
132
+ if not self.engine.show_touch_controls:
133
+ return
134
+
135
+ state = self.engine.keys.get_touch_state()
136
+ if not state:
137
+ return
138
+
139
+ data_move = state[K.UP]
140
+ if data_move["active"]:
141
+ radius = self.engine.rtc.tile_width
142
+ self.engine.backend.draw_circle(
143
+ int(data_move["rsx"] * self.camera.pwidth),
144
+ int(data_move["rsy"] * self.camera.pheight),
145
+ radius,
146
+ TRANS_LIGHT_RED,
147
+ self.camera.name,
148
+ draw_to_ui=True,
149
+ )
150
+ self.engine.backend.fill_circle(
151
+ int(data_move["rpx"] * self.camera.pwidth),
152
+ int(data_move["rpy"] * self.camera.pheight),
153
+ radius,
154
+ TRANS_LIGHT_RED,
155
+ self.camera.name,
156
+ draw_to_ui=True,
157
+ )
158
+
159
+ for idx in range(4, 12):
160
+ key = K(idx)
161
+ data = state.get(key, {})
162
+ if not data:
163
+ continue
164
+ # print(data_a)
165
+
166
+ ppx = int(data["rpx"] * self.camera.pwidth)
167
+ ppy = int(data["rpy"] * self.camera.pheight)
168
+ pwidth = int(data["rwidth"] * self.camera.pwidth)
169
+ pheight = int(data["rheight"] * self.camera.pheight)
170
+ if data["active"]:
171
+ self.engine.backend.fill_rect(
172
+ ppx,
173
+ ppy,
174
+ pwidth,
175
+ pheight,
176
+ TRANS_LIGHT_RED,
177
+ self.camera.name,
178
+ draw_to_ui=True,
179
+ )
180
+ else:
181
+ self.engine.backend.draw_rect(
182
+ ppx,
183
+ ppy,
184
+ pwidth,
185
+ pheight,
186
+ TRANS_LIGHT_RED,
187
+ self.camera.name,
188
+ draw_to_ui=True,
189
+ )
190
+ text = key.name
191
+ text_width = len(text) * BIG_FONT_WIDTH
192
+ self.engine.backend.draw_big_text(
193
+ text,
194
+ int(ppx + pwidth / 2 - text_width / 2),
195
+ int(ppy + pheight / 2 - BIG_FONT_HEIGHT / 2),
196
+ TRANS_LIGHT_RED,
197
+ self.camera.name,
198
+ draw_to_ui=True,
199
+ )
200
+
201
+ # self.engine.backend.fill_circle(
202
+ # int(data_a["px"] * self.camera.pwidth),
203
+ # int(data_a["py"] * self.camera.pheight),
204
+ # int(data_a["width"] * self.camera.pwidth / 2),
205
+ # color,
206
+ # self.camera.name,
207
+ # draw_to_ui=True,
208
+ # )
209
+
119
210
  def set_camera(self, camera: Camera):
120
211
  self.camera = camera
121
212
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: mima-engine
3
- Version: 0.2.3
3
+ Version: 0.2.4
4
4
  Summary: A game engine based on pygame.
5
5
  Author-email: Stephan Balduin <stephan.balduin@mailbox.org>
6
6
  Classifier: Programming Language :: Python :: 3
@@ -1,15 +1,17 @@
1
- mima/__init__.py,sha256=FfhHMFAnVC-I1HTjRsXx5yyTgh-3hwQwp8F4lX-uzTs,104
1
+ mima/__init__.py,sha256=On5KCpZrZvHIrKef6xic2bILyeRhNozoRoEvC1MvHEs,104
2
2
  mima/backend/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
3
3
  mima/backend/pygame_assets.py,sha256=DoeebQlRqzTtuu_AsZ0kauqGzly0JtrOi66W1WTzUhk,14106
4
4
  mima/backend/pygame_audio.py,sha256=gag9bM-UT8DfYpGDYvKBn8jdnwgFU4NklEs2aNwHhRY,2365
5
5
  mima/backend/pygame_backend.py,sha256=O7cdu-HPY4W1dWosJtxv_j3bGlqVIc93AhVkTr68GR4,18552
6
6
  mima/backend/pygame_camera.py,sha256=5ietEyhDryT3SBChvcY_jdsWRi09gcTg5O5mvg_15mM,2059
7
- mima/backend/pygame_events.py,sha256=orxC6a3EtWKWbTMyKO-9MMrcemw8qrN7y3S6DyLyX-0,26677
7
+ mima/backend/pygame_events.py,sha256=dLn3T2cw-RWIcKAUjcQRh0-ZgY43Ps3Y47ZfxCpw4B0,27669
8
+ mima/backend/touch_control_scheme_a.py,sha256=lI8xCVH-KDuLwoH4Vq-0JuQm1cDI3I2g1rkoR5lY8DY,4745
9
+ mima/backend/touch_control_scheme_b.py,sha256=L_WiwGFTjCtL_YcL8SH2bToHe-RiXoqAj6VrpgAKOb0,5294
8
10
  mima/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- mima/core/collision.py,sha256=Quv5EZpYq5-uIn_Q1sxVhKtSclRoQyASXFPO69edJJY,9209
11
+ mima/core/collision.py,sha256=CMItVHkjt6Bl8rr7Wnwa_QkynMNVTpDmJEF8dZzJSJk,9897
10
12
  mima/core/database.py,sha256=lo_LlhONPwZxuW8fdm_Oeg8Ofe4Qr8pwbAeYx477HxM,2007
11
- mima/core/engine.py,sha256=D-b-_pONz7fOxH7ySMsx40hCYwy5j-cT0r-PFtTcY1k,11125
12
- mima/core/mode_engine.py,sha256=4nW0ohWSavN9yUvaRhaZzhKVcEsRwfK1yzqgmd0wAmU,2221
13
+ mima/core/engine.py,sha256=00o2SMHnXKAc6RR7bgm4TJcV8WhYwA4lr46j46-ncLs,11290
14
+ mima/core/mode_engine.py,sha256=4dSjLRxjaoj3wP1k13X3-YqT2PbmXZ1fBwzmVHYt2Eg,2305
13
15
  mima/core/scene_engine.py,sha256=8P_ZuXwPHZFthgHmVtWkIgaXHedeu0eyRdf2P8ACLRA,2586
14
16
  mima/maps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
17
  mima/maps/template.py,sha256=0IDxo-g0ZTbCwhIIZadMG5rFvPLNJnm137mz4GVGlw0,2463
@@ -33,14 +35,14 @@ mima/objects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
35
  mima/objects/animated_sprite.py,sha256=xeg89mZxx2_PpKX_dq1ySkfeZlEbxVymbX2Kf_yOHSw,7210
34
36
  mima/objects/attribute_effect.py,sha256=zikOSb6-hD6Ecm4L9EyRocTyJQ7IYC0CJ9DCBxbK4cU,650
35
37
  mima/objects/attributes.py,sha256=qqIVjuIXUQDv3qtdoaRDvBnx5oUbjuPdvcGR49fHRwM,3781
36
- mima/objects/creature.py,sha256=Y0J8TXHYHB9A9vSgZEmlFd0EA1cfL-leeCYh1EifcoY,12690
38
+ mima/objects/creature.py,sha256=ZXBSmGStk7FepSmUzwFl2sonIhAJaIPT-htKH5WeJkw,12773
37
39
  mima/objects/dynamic.py,sha256=yDh8wjX_FViUWF0lqiLH0q3iuLMaE1qAd4uu6DHB7D4,6434
38
40
  mima/objects/loader.py,sha256=GAdXsS5dINwNuHq88nCTHqrorg-BC5Fw8wgDtcMpnoA,4394
39
41
  mima/objects/projectile.py,sha256=50aoKz8F8NH0Z5wSSsSm2RhsgbGWQd4PFMTf0Ku-0z4,3214
40
42
  mima/objects/sprite.py,sha256=yQ_fFzqchlMYvbmQ8EKoxMrj4Cqq0wLyVAeSuP7GV4M,3959
41
43
  mima/objects/effects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
44
  mima/objects/effects/colorize_screen.py,sha256=k-rt6xRmg3eW_vmmKbhII55-wlVUjlxNVfi4IZpkGaM,1834
43
- mima/objects/effects/debug_box.py,sha256=Lc9bx8vGU9n0GXEFwrWmtPfcH0KBpMBspb-eNObgCDc,4074
45
+ mima/objects/effects/debug_box.py,sha256=LkkhgT7hnhQVeDMZcnH8xt7gCabvjKfv3sH_ezeSe7k,4216
44
46
  mima/objects/effects/light.py,sha256=w0XsxChQYE4YBJ2o0supakwP7Xove7dOod3u5MBEDvA,3131
45
47
  mima/objects/effects/show_sprite.py,sha256=kPACkdOn6R6r-ov9QFWvfZd9vJksNcFrKa2Sg_KU8dQ,1216
46
48
  mima/objects/effects/walking_on_grass.py,sha256=9qo3Qtv4Ra1kdus4OE48JWEy9Tk-91e1Ti6zKDSa3Ks,2057
@@ -48,15 +50,15 @@ mima/objects/effects/walking_on_water.py,sha256=K2EdzzTfnO2fNEBC7Hr8esY5nirZvHkw
48
50
  mima/objects/world/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
51
  mima/objects/world/color_gate.py,sha256=1VZsQ6M8dPgtuE94yb-HBuAd6g_ZRvkH3F3Qjq7T8Rc,2013
50
52
  mima/objects/world/color_switch.py,sha256=3Iw4GPKcT2sxO2oIrmZmroAFZLYx0vU8dMDtIswrW10,3121
51
- mima/objects/world/container.py,sha256=nBdGByhKuIRsVET36Gb1eAKFZJ0AXRwpE4Y6w00q3t0,6000
53
+ mima/objects/world/container.py,sha256=_VGknwotxMflTOdKMUmMFHJ079utKeD0QgWmxhZJ5Zg,6000
52
54
  mima/objects/world/floor_switch.py,sha256=Xnm8BOFiEnBmj_h68ZtZcUpeD0Lsl3jHVS9njCsiAus,3285
53
55
  mima/objects/world/gate.py,sha256=aaxkTLdfLGrWroWGyjj6cn4QI29ze_to9UKxyNArjY4,5679
54
56
  mima/objects/world/light_source.py,sha256=LQ-m8YqLUu7Wb9oZeb-ClrxWbSdr36LQ1fZesLu_5eI,3746
55
57
  mima/objects/world/logic_gate.py,sha256=5f3gkU0TJ6y8nnz88bzD3-feDa4gPsCprOT86ZXsKN8,4863
56
58
  mima/objects/world/movable.py,sha256=IdB0QSCaivs36YeDrJwsDIgL2rXaY_YL7IPDl5wNfH8,12578
57
- mima/objects/world/oneway.py,sha256=dgeIFZ-wVR5-9eJwNO1meh2S7DjQB2OqJqBGz7c9ddM,5401
58
- mima/objects/world/pickup.py,sha256=NY8ElHFYX33H2OZKSgJiXQ_BSB9i9Ks9i9pqvPxFRhQ,4708
59
- mima/objects/world/switch.py,sha256=Z_3_1xF-SJgd3cS8AoDr7yrbD4n-weVBe4m3bcytM7M,5540
59
+ mima/objects/world/oneway.py,sha256=vNvqgyRX4TbpPBQ_PPrOVdMir5vPonIMikjdUGzc40Y,6412
60
+ mima/objects/world/pickup.py,sha256=6qbPvT79H4bBKqEB88xm-ifp0PRa6XoeC5RwmkbJvRE,4859
61
+ mima/objects/world/switch.py,sha256=PMcAwJ772T8AbHWReVfGnIgTUIBrFiHhobooZQTP7So,6162
60
62
  mima/objects/world/teleport.py,sha256=2HqMkaU6V01AcsfEY_YG-wNrc8iRnsaQyNI-SNXVK4M,10584
61
63
  mima/scripts/__init__.py,sha256=yLRT6igjwtSkOFbd0x8PXXFZVt1_xUIuCHhWhywHRuE,75
62
64
  mima/scripts/command.py,sha256=rLjUbmvmpHqhaznt9TWkifY5IKtO-AdAGkzKnoKqAGg,881
@@ -70,7 +72,7 @@ mima/scripts/commands/give_item.py,sha256=yc6iRTy40TvdEqU6u3q4Bh0JAlHzoFs0ul9Lwt
70
72
  mima/scripts/commands/give_resource.py,sha256=J9c0hk__DY4To1BStZ5qmcEOMbAYRefNJT8Kk5WyORE,1805
71
73
  mima/scripts/commands/move_map.py,sha256=NY0LDex2_lcXz-6HR58eTYC4VQkiOvywxUQ5IdSY0iw,4907
72
74
  mima/scripts/commands/move_to.py,sha256=FE2efowCpMp5QgDBvIlGju4T0xfa9N1UwjaE2yh3v4Q,1420
73
- mima/scripts/commands/oneway_move.py,sha256=1mytQxv6kiSGr_-H7m-DQPKbFKfT2T45i99Ro764vE4,1683
75
+ mima/scripts/commands/oneway_move.py,sha256=UeSnwFgwFHr3qK2d6Pb-ZS_TEFGinZIdly76_Hg-Ap0,1745
74
76
  mima/scripts/commands/parallel.py,sha256=YFDDv6Lgc6uKvr_53II6YUznnlnW8JNhmlWK5FMwDSw,1780
75
77
  mima/scripts/commands/play_sound.py,sha256=m4wqWC6O8TUsJIcYrP8bb8ZFjSNK3IpAyBdxLo-e8zo,348
76
78
  mima/scripts/commands/present_item.py,sha256=HfSCncURe6HIc2-omA7xvFbon58wmRaKEwVukZ1FlhM,1865
@@ -111,20 +113,20 @@ mima/usables/item.py,sha256=3ZM1gR6Ve-5PgBC8QuXU26rKIe9KXbKp_VCouvi-vUY,1443
111
113
  mima/usables/weapon.py,sha256=YzahQ_B9PT2rgd6NjBJY2ISVAE3XO7PPpE2gZumv3q4,2033
112
114
  mima/util/__init__.py,sha256=KMuEDnRsGr32gXED12ZyL1za6iKAuk_Tn8S3mTtpYds,42
113
115
  mima/util/colors.py,sha256=u4YVTCvSNFBhHaR9dFiMVzvE9fRM1UlW1m8gDa7oDY4,1483
114
- mima/util/constants.py,sha256=Sy-6vwAXJf86drHy7IxQLDXtuBbcGhuNU0-YKTUNBFM,1353
116
+ mima/util/constants.py,sha256=n3zRWTICePM20OyxzcKeDE1DxP6pGq_BhlKao36MX9Q,1353
115
117
  mima/util/functions.py,sha256=GqAgT4-ATZcCvaaUyEOCeXphUu8xJXmVshAbFPJfOWI,1130
116
- mima/util/input_defaults.py,sha256=6S9YlXqtvA5Q1yAFqwicyorCXcy5FEhi3AlyzqpUxAc,2641
118
+ mima/util/input_defaults.py,sha256=dIfcp9nQSVcO3U4tCB0R5cXwcKUQ7rpztnB1Feud1e4,3179
117
119
  mima/util/logging.py,sha256=p6-C1ozlCs_sCkmykh_B0NgZtvSkcZXXseE6qA6Zwew,1197
118
120
  mima/util/property.py,sha256=o6dEWpIOWxwS_lf6MvYZSjkyI5Amo56P2JIDa7AMaRY,107
119
121
  mima/util/runtime_config.py,sha256=MyRA1xHS6O5HdISUEhKFmIPQHPz26vtaBnKdqa_ISDc,9369
120
122
  mima/util/trading_item.py,sha256=mToWWNyZKbWVTbeefUUX8kGEPyvJ9-YJQBCjlWlPLLY,466
121
123
  mima/view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
124
  mima/view/camera.py,sha256=IZQJF7NxrQ265TRgPnlmSVcNwgsJ3I1ek40u7PQG20g,6260
123
- mima/view/mima_mode.py,sha256=wJTb3UMsx5RwvrifPvZIYWeBkPCmUDFWJ6QFCMXLxrg,21328
124
- mima/view/mima_scene.py,sha256=oGfyM-WLN-eQLILnIbzI0sa160BqsS8dE2UaC2qq2XY,6988
125
+ mima/view/mima_mode.py,sha256=W92hAKBvvC_yM_6SpXZmpY8WHKiYgqYuULlxGeMbipA,22189
126
+ mima/view/mima_scene.py,sha256=0dDeuObUfgtWhaZRbiKLpTukhJ-74TU4gm111VF9FHQ,7253
125
127
  mima/view/mima_view.py,sha256=tKLcoNWVwldoqgG3jxhI_jMsFAXzod2csXyEbhub2xI,217
126
- mima/view/mima_window.py,sha256=LllwqhKo1D-MoNAXJaiufTi0AacRo_QnVZX8WYUH4ds,4790
127
- mima_engine-0.2.3.dist-info/METADATA,sha256=GIWbMyJ0CCwRdm0NUVMqDdpnjdZzKkeYyX1knlBtDI4,487
128
- mima_engine-0.2.3.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
129
- mima_engine-0.2.3.dist-info/top_level.txt,sha256=5t1cOdQSaPQ0jWDhKDvDXwpV2XZ_a1GSSFAIvEsG0fQ,5
130
- mima_engine-0.2.3.dist-info/RECORD,,
128
+ mima/view/mima_window.py,sha256=tUdMDBZoB2zV66NhVuOb7pvQjehg_zPQtmdN9M8PIcc,8105
129
+ mima_engine-0.2.4.dist-info/METADATA,sha256=JFCicOEm9npW4U02-hMM9EUWpiyIFd3CysgYL9gxjQs,487
130
+ mima_engine-0.2.4.dist-info/WHEEL,sha256=wXxTzcEDnjrTwFYjLPcsW_7_XihufBwmpiBeiXNBGEA,91
131
+ mima_engine-0.2.4.dist-info/top_level.txt,sha256=5t1cOdQSaPQ0jWDhKDvDXwpV2XZ_a1GSSFAIvEsG0fQ,5
132
+ mima_engine-0.2.4.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (80.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5