mima-engine 0.2.2__py3-none-any.whl → 0.2.3__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.
- mima/__init__.py +4 -1
- mima/backend/pygame_assets.py +67 -9
- mima/backend/pygame_backend.py +5 -2
- mima/core/__init__.py +0 -0
- mima/{collision.py → core/collision.py} +11 -17
- mima/core/database.py +58 -0
- mima/{engine.py → core/engine.py} +51 -45
- mima/{mode_engine.py → core/mode_engine.py} +8 -12
- mima/{scene_engine.py → core/scene_engine.py} +3 -7
- mima/maps/template.py +31 -1
- mima/maps/tiled/tiled_object.py +1 -1
- mima/maps/tiled/tiled_tileset.py +10 -5
- mima/maps/tilemap.py +4 -10
- mima/maps/tileset.py +5 -4
- mima/objects/animated_sprite.py +79 -68
- mima/objects/creature.py +14 -7
- mima/objects/dynamic.py +3 -1
- mima/objects/effects/colorize_screen.py +9 -1
- mima/objects/effects/light.py +6 -1
- mima/objects/effects/show_sprite.py +17 -6
- mima/objects/effects/walking_on_grass.py +27 -13
- mima/objects/effects/walking_on_water.py +36 -31
- mima/objects/loader.py +6 -9
- mima/objects/projectile.py +15 -5
- mima/objects/sprite.py +8 -1
- mima/objects/world/color_gate.py +10 -15
- mima/objects/world/color_switch.py +18 -28
- mima/objects/world/container.py +31 -36
- mima/objects/world/floor_switch.py +22 -28
- mima/objects/world/gate.py +21 -24
- mima/objects/world/light_source.py +27 -32
- mima/objects/world/logic_gate.py +30 -37
- mima/objects/world/movable.py +106 -89
- mima/objects/world/oneway.py +29 -33
- mima/objects/world/pickup.py +75 -17
- mima/objects/world/switch.py +26 -31
- mima/objects/world/teleport.py +21 -22
- mima/scripts/commands/present_item.py +10 -10
- mima/types/graphic_state.py +1 -0
- mima/usables/item.py +28 -9
- mima/usables/weapon.py +28 -8
- mima/util/runtime_config.py +8 -15
- mima/util/trading_item.py +4 -1
- mima/view/mima_mode.py +19 -54
- {mima_engine-0.2.2.dist-info → mima_engine-0.2.3.dist-info}/METADATA +3 -3
- {mima_engine-0.2.2.dist-info → mima_engine-0.2.3.dist-info}/RECORD +48 -46
- {mima_engine-0.2.2.dist-info → mima_engine-0.2.3.dist-info}/WHEEL +1 -1
- {mima_engine-0.2.2.dist-info → mima_engine-0.2.3.dist-info}/top_level.txt +0 -0
|
@@ -25,18 +25,18 @@ class CommandPresentItem(Command):
|
|
|
25
25
|
self._item_sprite = Projectile(
|
|
26
26
|
self._dynamic.px,
|
|
27
27
|
self._dynamic.py - 1,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
self._dynamic.
|
|
28
|
+
f"Present {item.name}",
|
|
29
|
+
sprite_name=item.sprite_name,
|
|
30
|
+
tilemap=self._dynamic.tilemap,
|
|
31
|
+
duration=3600,
|
|
32
|
+
alignment=self._dynamic.alignment,
|
|
33
33
|
)
|
|
34
34
|
self._item_sprite.layer = 2
|
|
35
|
-
self._item_sprite.sprite.name = item.sprite_name
|
|
36
|
-
self._item_sprite.sprite.ox = item.sprite_ox
|
|
37
|
-
self._item_sprite.sprite.oy = item.sprite_oy
|
|
38
|
-
self._item_sprite.sprite.width = item.sprite_width
|
|
39
|
-
self._item_sprite.sprite.height = item.sprite_height
|
|
35
|
+
# self._item_sprite.sprite.name = item.sprite_name
|
|
36
|
+
# self._item_sprite.sprite.ox = item.sprite_ox
|
|
37
|
+
# self._item_sprite.sprite.oy = item.sprite_oy
|
|
38
|
+
# self._item_sprite.sprite.width = item.sprite_width
|
|
39
|
+
# self._item_sprite.sprite.height = item.sprite_height
|
|
40
40
|
self._item_sprite.solid_vs_dyn = False
|
|
41
41
|
self._item_sprite.solid_vs_map = False
|
|
42
42
|
self._item_sprite.one_hit = False
|
mima/types/graphic_state.py
CHANGED
mima/usables/item.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from typing import TYPE_CHECKING
|
|
3
|
+
from typing import TYPE_CHECKING, Any, Dict
|
|
4
4
|
|
|
5
5
|
from ..util.constants import DEFAULT_SPRITE_HEIGHT, DEFAULT_SPRITE_WIDTH
|
|
6
6
|
|
|
@@ -13,20 +13,39 @@ if TYPE_CHECKING:
|
|
|
13
13
|
class Item:
|
|
14
14
|
engine: MimaEngine
|
|
15
15
|
|
|
16
|
-
def __init__(self
|
|
17
|
-
self.name: str =
|
|
18
|
-
self.description: str =
|
|
19
|
-
self.sprite_name: str =
|
|
20
|
-
self.sprite_ox: int = 0
|
|
21
|
-
self.sprite_oy: int = 0
|
|
22
|
-
self.sprite_width: int = DEFAULT_SPRITE_WIDTH
|
|
23
|
-
self.sprite_height: int = DEFAULT_SPRITE_HEIGHT
|
|
16
|
+
def __init__(self):
|
|
17
|
+
self.name: str = ""
|
|
18
|
+
self.description: str = ""
|
|
19
|
+
self.sprite_name: str = ""
|
|
20
|
+
# self.sprite_ox: int = 0
|
|
21
|
+
# self.sprite_oy: int = 0
|
|
22
|
+
# self.sprite_width: int = DEFAULT_SPRITE_WIDTH
|
|
23
|
+
# self.sprite_height: int = DEFAULT_SPRITE_HEIGHT
|
|
24
24
|
self.key_item: bool = False
|
|
25
25
|
self.equipable: bool = False
|
|
26
26
|
self.price: int = 0
|
|
27
|
+
self.stackable: bool = False
|
|
28
|
+
self.stackable_by_merchant: bool = False
|
|
29
|
+
|
|
30
|
+
def init(self, data: Dict[str, Any]):
|
|
31
|
+
|
|
32
|
+
for key, val in data.items():
|
|
33
|
+
setattr(self, key, val)
|
|
34
|
+
# self.usable_id = data["usable_id"]
|
|
35
|
+
# self.name = data["name"]
|
|
36
|
+
# self.description = data["description"]
|
|
37
|
+
# self.price = data.get("attr_price", 0)
|
|
38
|
+
# self.sprite_name = data.get("sprite_name")
|
|
27
39
|
|
|
28
40
|
def on_interaction(self, obj: Dynamic):
|
|
29
41
|
return False
|
|
30
42
|
|
|
31
43
|
def on_use(self, obj: Creature):
|
|
32
44
|
return False
|
|
45
|
+
|
|
46
|
+
def __str__(self):
|
|
47
|
+
txt = f"{type(self).__name__}({self.name})"
|
|
48
|
+
return txt
|
|
49
|
+
|
|
50
|
+
def __repr__(self):
|
|
51
|
+
return str(self)
|
mima/usables/weapon.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from typing import TYPE_CHECKING, Tuple
|
|
3
|
+
from typing import TYPE_CHECKING, Any, Dict, Tuple
|
|
4
4
|
|
|
5
5
|
from ..types.damage import Damage
|
|
6
6
|
from ..types.direction import Direction
|
|
@@ -11,20 +11,37 @@ if TYPE_CHECKING:
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class Weapon(Item):
|
|
14
|
-
def __init__(self
|
|
15
|
-
super().__init__(
|
|
14
|
+
def __init__(self):
|
|
15
|
+
super().__init__()
|
|
16
16
|
|
|
17
17
|
self.equipable = True
|
|
18
18
|
|
|
19
19
|
self.damage: int = 0
|
|
20
20
|
self.dtype: Damage = Damage.BODY
|
|
21
|
-
self.health_cost:
|
|
22
|
-
self.magic_cost:
|
|
23
|
-
self.stamina_cost:
|
|
21
|
+
self.health_cost: float = 0.0
|
|
22
|
+
self.magic_cost: float = 0.0
|
|
23
|
+
self.stamina_cost: float = 0.0
|
|
24
24
|
self.arrow_cost: int = 0
|
|
25
25
|
self.bomb_cost: int = 0
|
|
26
|
-
self.swing_timer:
|
|
27
|
-
|
|
26
|
+
self.swing_timer: float = 0.2
|
|
27
|
+
|
|
28
|
+
def init(self, data: Dict[str, Any]):
|
|
29
|
+
for key, val in data.items():
|
|
30
|
+
setattr(self, key, val)
|
|
31
|
+
# self.usable_id = data["usable_id"]
|
|
32
|
+
# self.name = data["display_name"]
|
|
33
|
+
# self.description = data["description"]
|
|
34
|
+
# self.sprite_name = data["sprite_name"]
|
|
35
|
+
# self.price = data["attr_price"]
|
|
36
|
+
# self.swing_timer = data["attr_swing_timer"]
|
|
37
|
+
# self.damage = data["attr_damage"]
|
|
38
|
+
# self.dtype = data["attr_dtype"]
|
|
39
|
+
# self.health_cost = data["attr_health_cost"]
|
|
40
|
+
# self.magic_cost = data["attr_magic_cost"]
|
|
41
|
+
# self.stamina_cost = data["attr_stamina_cost"]
|
|
42
|
+
# self.bomb_cost = data["attr_bomb_cost"]
|
|
43
|
+
# self.arrow_cost = data["attr_arrow_cost"]
|
|
44
|
+
# print()
|
|
28
45
|
|
|
29
46
|
def _determine_attack_origin(self, obj: Creature) -> Tuple[float, float]:
|
|
30
47
|
vx = 0.0
|
|
@@ -46,3 +63,6 @@ class Weapon(Item):
|
|
|
46
63
|
|
|
47
64
|
def on_unequip(self, obj: Creature):
|
|
48
65
|
pass
|
|
66
|
+
|
|
67
|
+
def on_interaction(self, target: Creature):
|
|
68
|
+
return True # Add to inventory
|
mima/util/runtime_config.py
CHANGED
|
@@ -106,9 +106,7 @@ class RuntimeConfig:
|
|
|
106
106
|
self._converted: Dict[str, Any] = {}
|
|
107
107
|
|
|
108
108
|
if not config_path:
|
|
109
|
-
config_path = os.path.abspath(
|
|
110
|
-
os.path.join(os.getcwd(), "mima.ini")
|
|
111
|
-
)
|
|
109
|
+
config_path = os.path.abspath(os.path.join(os.getcwd(), "mima.ini"))
|
|
112
110
|
|
|
113
111
|
self._config_path = config_path
|
|
114
112
|
config = configparser.ConfigParser()
|
|
@@ -145,6 +143,9 @@ class RuntimeConfig:
|
|
|
145
143
|
self.small_font_width = SMALL_FONT_WIDTH
|
|
146
144
|
self.small_font_height = SMALL_FONT_HEIGHT
|
|
147
145
|
|
|
146
|
+
## Locale
|
|
147
|
+
self.locale = "en"
|
|
148
|
+
|
|
148
149
|
def _read_config(self, config: configparser.ConfigParser):
|
|
149
150
|
mappings = [
|
|
150
151
|
"keyboard_map_p1",
|
|
@@ -251,14 +252,10 @@ class RuntimeConfig:
|
|
|
251
252
|
if but.value < 12:
|
|
252
253
|
kbmap[but] = []
|
|
253
254
|
elif but.value < 24:
|
|
254
|
-
kbmap[but] = self._loaded["keyboard_map_p1"][
|
|
255
|
-
but.name.split("_")[1]
|
|
256
|
-
]
|
|
255
|
+
kbmap[but] = self._loaded["keyboard_map_p1"][but.name.split("_")[1]]
|
|
257
256
|
|
|
258
257
|
elif but.value < 36:
|
|
259
|
-
kbmap[but] = self._loaded["keyboard_map_p2"][
|
|
260
|
-
but.name.split("_")[1]
|
|
261
|
-
]
|
|
258
|
+
kbmap[but] = self._loaded["keyboard_map_p2"][but.name.split("_")[1]]
|
|
262
259
|
|
|
263
260
|
else:
|
|
264
261
|
kbmap[but] = []
|
|
@@ -271,14 +268,10 @@ class RuntimeConfig:
|
|
|
271
268
|
if but.value < 12:
|
|
272
269
|
jsmap[but] = []
|
|
273
270
|
elif but.value < 24:
|
|
274
|
-
jsmap[but] = self._loaded["joystick_map_p1"][
|
|
275
|
-
but.name.split("_")[1]
|
|
276
|
-
]
|
|
271
|
+
jsmap[but] = self._loaded["joystick_map_p1"][but.name.split("_")[1]]
|
|
277
272
|
|
|
278
273
|
elif but.value < 36:
|
|
279
|
-
jsmap[but] = self._loaded["joystick_map_p2"][
|
|
280
|
-
but.name.split("_")[1]
|
|
281
|
-
]
|
|
274
|
+
jsmap[but] = self._loaded["joystick_map_p2"][but.name.split("_")[1]]
|
|
282
275
|
|
|
283
276
|
else:
|
|
284
277
|
jsmap[but] = []
|
mima/util/trading_item.py
CHANGED
|
@@ -10,11 +10,14 @@ if TYPE_CHECKING:
|
|
|
10
10
|
@dataclass
|
|
11
11
|
class TradingItem:
|
|
12
12
|
item: Item
|
|
13
|
-
price: int
|
|
14
13
|
count: int = 1
|
|
15
14
|
factor: float = 1.0
|
|
16
15
|
available: int = 1
|
|
17
16
|
tid: int = 0
|
|
17
|
+
price: int = 0
|
|
18
|
+
trading_price: int = 0
|
|
19
|
+
stackable: bool = False
|
|
20
|
+
stackable_merchant: bool = False
|
|
18
21
|
|
|
19
22
|
def __eq__(self, other):
|
|
20
23
|
return self.tid == other.tid
|
mima/view/mima_mode.py
CHANGED
|
@@ -4,7 +4,7 @@ import logging
|
|
|
4
4
|
import math
|
|
5
5
|
from typing import TYPE_CHECKING, Dict, List, Optional, Tuple
|
|
6
6
|
|
|
7
|
-
from ..collision import (
|
|
7
|
+
from ..core.collision import (
|
|
8
8
|
_chunk_index,
|
|
9
9
|
add_to_collision_chunk,
|
|
10
10
|
check_object_to_map_collision,
|
|
@@ -90,9 +90,7 @@ 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(
|
|
94
|
-
self, player: Player = Player.P1, player_only: bool = False
|
|
95
|
-
) -> None:
|
|
93
|
+
def unload_map(self, player: Player = Player.P1, player_only: bool = False) -> None:
|
|
96
94
|
p_obj = self.engine.memory.player[player]
|
|
97
95
|
map_name = p_obj.tilemap.name
|
|
98
96
|
|
|
@@ -146,9 +144,7 @@ class MimaMode(MimaView):
|
|
|
146
144
|
# Map not loaded
|
|
147
145
|
self.prepare_object_lists(map_name, player, p_obj)
|
|
148
146
|
|
|
149
|
-
self._loader.populate_dynamics(
|
|
150
|
-
self.maps[player], self.dynamics[map_name]
|
|
151
|
-
)
|
|
147
|
+
self._loader.populate_dynamics(self.maps[player], self.dynamics[map_name])
|
|
152
148
|
|
|
153
149
|
for quest in self.engine.memory.quests:
|
|
154
150
|
quest.populate_dynamics(self.dynamics[map_name], map_name)
|
|
@@ -189,9 +185,7 @@ class MimaMode(MimaView):
|
|
|
189
185
|
chunks_per_row,
|
|
190
186
|
)
|
|
191
187
|
if self.engine.draw_chunk_info:
|
|
192
|
-
self.add_effect(
|
|
193
|
-
DynamicDebugBox(obj, n_frames=-1), map_name
|
|
194
|
-
)
|
|
188
|
+
self.add_effect(DynamicDebugBox(obj, n_frames=-1), map_name)
|
|
195
189
|
|
|
196
190
|
def handle_user_input(self):
|
|
197
191
|
for player, scene in self.scenes.items():
|
|
@@ -221,9 +215,7 @@ class MimaMode(MimaView):
|
|
|
221
215
|
else:
|
|
222
216
|
msg += f"object {obj.name} ({obj.dyn_id})"
|
|
223
217
|
else:
|
|
224
|
-
msg =
|
|
225
|
-
"Trying to interact with a quest that is None"
|
|
226
|
-
)
|
|
218
|
+
msg = "Trying to interact with a quest that is None"
|
|
227
219
|
|
|
228
220
|
LOG.exception(msg)
|
|
229
221
|
raise
|
|
@@ -298,9 +290,7 @@ class MimaMode(MimaView):
|
|
|
298
290
|
tilemap.width + self.chunk_size // 2,
|
|
299
291
|
self.chunk_size,
|
|
300
292
|
):
|
|
301
|
-
chidx = _chunk_index(
|
|
302
|
-
px, py, self.chunk_size, chunks_per_row
|
|
303
|
-
)
|
|
293
|
+
chidx = _chunk_index(px, py, self.chunk_size, chunks_per_row)
|
|
304
294
|
# collision_lists[map_name][chidx] = []
|
|
305
295
|
self.add_effect(
|
|
306
296
|
StaticDebugBox(
|
|
@@ -343,9 +333,7 @@ class MimaMode(MimaView):
|
|
|
343
333
|
# return collision_lists
|
|
344
334
|
|
|
345
335
|
def _determine_target(self, obj, players) -> Dynamic:
|
|
346
|
-
players = [
|
|
347
|
-
p for p in players if not self.engine.get_player(p).occupied
|
|
348
|
-
]
|
|
336
|
+
players = [p for p in players if not self.engine.get_player(p).occupied]
|
|
349
337
|
if not players:
|
|
350
338
|
return None
|
|
351
339
|
dists = [
|
|
@@ -376,12 +364,8 @@ class MimaMode(MimaView):
|
|
|
376
364
|
obj.vz = 0.0
|
|
377
365
|
|
|
378
366
|
def handle_collisions(self, elapsed_time: float) -> None:
|
|
379
|
-
screen_width =
|
|
380
|
-
|
|
381
|
-
)
|
|
382
|
-
screen_height = (
|
|
383
|
-
self.engine.backend.render_height // self.engine.rtc.tile_height
|
|
384
|
-
)
|
|
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
|
|
385
369
|
max_dist = screen_width + screen_height
|
|
386
370
|
|
|
387
371
|
for map_name, players in self.players_on_map.items():
|
|
@@ -423,19 +407,13 @@ class MimaMode(MimaView):
|
|
|
423
407
|
self.engine.memory.quests,
|
|
424
408
|
]
|
|
425
409
|
if self._probe_p2p_collision(obj, other):
|
|
426
|
-
new2_px, new2_py = (
|
|
427
|
-
check_object_to_object_collision(*args)
|
|
428
|
-
)
|
|
410
|
+
new2_px, new2_py = check_object_to_object_collision(*args)
|
|
429
411
|
|
|
430
412
|
if new2_px == new_px and new2_py == new_py:
|
|
431
413
|
# No change = no collision
|
|
432
|
-
self.engine.trigger_player_collision(
|
|
433
|
-
True, obj.player
|
|
434
|
-
)
|
|
414
|
+
self.engine.trigger_player_collision(True, obj.player)
|
|
435
415
|
else:
|
|
436
|
-
new_px, new_py = check_object_to_object_collision(
|
|
437
|
-
*args
|
|
438
|
-
)
|
|
416
|
+
new_px, new_py = check_object_to_object_collision(*args)
|
|
439
417
|
obj.px = new_px
|
|
440
418
|
obj.py = new_py
|
|
441
419
|
|
|
@@ -457,23 +435,17 @@ class MimaMode(MimaView):
|
|
|
457
435
|
vx, vy = vx * 0.707, vy * 0.707
|
|
458
436
|
|
|
459
437
|
obj.real_vx = (
|
|
460
|
-
vx
|
|
461
|
-
if vx == obj.real_vx
|
|
462
|
-
else calculate(obj, vx, obj.real_vx, elapsed_time)
|
|
438
|
+
vx if vx == obj.real_vx else calculate(obj, vx, obj.real_vx, elapsed_time)
|
|
463
439
|
)
|
|
464
440
|
obj.real_vy = (
|
|
465
|
-
vy
|
|
466
|
-
if vy == obj.real_vy
|
|
467
|
-
else calculate(obj, vy, obj.real_vy, elapsed_time)
|
|
441
|
+
vy if vy == obj.real_vy else calculate(obj, vy, obj.real_vy, elapsed_time)
|
|
468
442
|
)
|
|
469
443
|
|
|
470
444
|
new_px = (
|
|
471
|
-
obj.px
|
|
472
|
-
+ obj.real_vx * obj.speed * obj.attributes.speed_mod * elapsed_time
|
|
445
|
+
obj.px + obj.real_vx * obj.speed * obj.attributes.speed_mod * elapsed_time
|
|
473
446
|
)
|
|
474
447
|
new_py = (
|
|
475
|
-
obj.py
|
|
476
|
-
+ obj.real_vy * obj.speed * obj.attributes.speed_mod * elapsed_time
|
|
448
|
+
obj.py + obj.real_vy * obj.speed * obj.attributes.speed_mod * elapsed_time
|
|
477
449
|
)
|
|
478
450
|
|
|
479
451
|
return new_px, new_py
|
|
@@ -503,9 +475,7 @@ class MimaMode(MimaView):
|
|
|
503
475
|
for map_name in self.players_on_map:
|
|
504
476
|
for effect in self.effects[map_name]:
|
|
505
477
|
effect.update(elapsed_time)
|
|
506
|
-
effect.px, effect.py = self.update_position(
|
|
507
|
-
effect, elapsed_time
|
|
508
|
-
)
|
|
478
|
+
effect.px, effect.py = self.update_position(effect, elapsed_time)
|
|
509
479
|
|
|
510
480
|
def update_scenes(self, elapsed_time: float) -> None:
|
|
511
481
|
for player, scene in self.scenes.items():
|
|
@@ -524,17 +494,12 @@ class MimaMode(MimaView):
|
|
|
524
494
|
|
|
525
495
|
def add_dynamic(self, dynamic: Dynamic, map_name: str):
|
|
526
496
|
self.dynamics[map_name].append(dynamic)
|
|
527
|
-
if
|
|
528
|
-
map_name in self.collision_targets
|
|
529
|
-
and not dynamic.moves_on_collision
|
|
530
|
-
):
|
|
497
|
+
if map_name in self.collision_targets and not dynamic.moves_on_collision:
|
|
531
498
|
dynamic.chunks = add_to_collision_chunk(
|
|
532
499
|
self.collision_targets[map_name],
|
|
533
500
|
dynamic,
|
|
534
501
|
self.chunk_size,
|
|
535
|
-
_chunks_per_row(
|
|
536
|
-
self.chunk_size, self.engine.get_map(map_name).width
|
|
537
|
-
),
|
|
502
|
+
_chunks_per_row(self.chunk_size, self.engine.get_map(map_name).width),
|
|
538
503
|
)
|
|
539
504
|
|
|
540
505
|
def add_projectile(self, projectile: Projectile, map_name: str):
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mima-engine
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
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
|
|
7
7
|
Classifier: License :: OSI Approved :: MIT License
|
|
8
8
|
Requires-Python: >=3.8
|
|
9
9
|
Description-Content-Type: text/markdown
|
|
10
|
-
Provides-Extra: ce
|
|
11
|
-
Requires-Dist: pygame-ce; extra == "ce"
|
|
12
10
|
Provides-Extra: pygame
|
|
13
11
|
Requires-Dist: pygame; extra == "pygame"
|
|
12
|
+
Provides-Extra: ce
|
|
13
|
+
Requires-Dist: pygame-ce; extra == "ce"
|
|
14
14
|
|
|
15
15
|
# Mima Engine
|
|
16
16
|
|
|
@@ -1,61 +1,63 @@
|
|
|
1
|
-
mima/__init__.py,sha256=
|
|
2
|
-
mima/collision.py,sha256=-XISlbgGK9QI0Z--vm2KEsFx7QsDPrhIu0mM71AuH38,9251
|
|
3
|
-
mima/engine.py,sha256=xsRtw5TRKDRMLSI342SnxgNdRdX2OZ1FRP4xA55dTls,10459
|
|
4
|
-
mima/mode_engine.py,sha256=Yidqa1lTNGyNHTMpz4ysIjFRdabQj71QeNTuQDx4PSA,2259
|
|
5
|
-
mima/scene_engine.py,sha256=S2I_HWQ29ZYlnKyKaE_uyZ84M7oBC1euexefuPcvuaY,2662
|
|
1
|
+
mima/__init__.py,sha256=FfhHMFAnVC-I1HTjRsXx5yyTgh-3hwQwp8F4lX-uzTs,104
|
|
6
2
|
mima/backend/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
7
|
-
mima/backend/pygame_assets.py,sha256=
|
|
3
|
+
mima/backend/pygame_assets.py,sha256=DoeebQlRqzTtuu_AsZ0kauqGzly0JtrOi66W1WTzUhk,14106
|
|
8
4
|
mima/backend/pygame_audio.py,sha256=gag9bM-UT8DfYpGDYvKBn8jdnwgFU4NklEs2aNwHhRY,2365
|
|
9
|
-
mima/backend/pygame_backend.py,sha256=
|
|
5
|
+
mima/backend/pygame_backend.py,sha256=O7cdu-HPY4W1dWosJtxv_j3bGlqVIc93AhVkTr68GR4,18552
|
|
10
6
|
mima/backend/pygame_camera.py,sha256=5ietEyhDryT3SBChvcY_jdsWRi09gcTg5O5mvg_15mM,2059
|
|
11
7
|
mima/backend/pygame_events.py,sha256=orxC6a3EtWKWbTMyKO-9MMrcemw8qrN7y3S6DyLyX-0,26677
|
|
8
|
+
mima/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
+
mima/core/collision.py,sha256=Quv5EZpYq5-uIn_Q1sxVhKtSclRoQyASXFPO69edJJY,9209
|
|
10
|
+
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/scene_engine.py,sha256=8P_ZuXwPHZFthgHmVtWkIgaXHedeu0eyRdf2P8ACLRA,2586
|
|
12
14
|
mima/maps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
-
mima/maps/template.py,sha256=
|
|
15
|
+
mima/maps/template.py,sha256=0IDxo-g0ZTbCwhIIZadMG5rFvPLNJnm137mz4GVGlw0,2463
|
|
14
16
|
mima/maps/tile.py,sha256=ZIPtpVCrX_dnL8SKwobj_0etMCUrQxRL5d04KnEmwNQ,639
|
|
15
17
|
mima/maps/tile_animation.py,sha256=xoI41BIFd6udW47xHAbfGhuqMVIvAw75vlec1iEhdhE,106
|
|
16
18
|
mima/maps/tile_info.py,sha256=VLAjfPCrLbzTP7p1qk5O3ytc4zFg_52ZyYvAbufC_X8,152
|
|
17
19
|
mima/maps/tile_layer.py,sha256=L8qmXaWnAaS4FUb-poC8Xve_pGvoFmwR_YCLE1tdWww,1592
|
|
18
|
-
mima/maps/tilemap.py,sha256=
|
|
19
|
-
mima/maps/tileset.py,sha256=
|
|
20
|
+
mima/maps/tilemap.py,sha256=LQPt58F9jpbthumC3Ariq5tlSN2aWDzzil8NG3v_HZI,6867
|
|
21
|
+
mima/maps/tileset.py,sha256=ipXEq4J5VyKT3XL2C0oIPqO5yUGs5xGu7OcZLnjEEww,1062
|
|
20
22
|
mima/maps/tileset_info.py,sha256=nJvghbxlxpvYOXaR1A2Joyz3LxPV7usspQcvKM5iyBg,136
|
|
21
23
|
mima/maps/transition_map.py,sha256=B5vrEkDXiEDIR7rjtJfwM8WngLztDnfoni-vEPNfG8U,4909
|
|
22
24
|
mima/maps/tiled/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
25
|
mima/maps/tiled/tiled_layer.py,sha256=JpSoxHGYf-g4fjGcU8J8z3M9RaSvuBd1VHIp9joZy4A,1572
|
|
24
26
|
mima/maps/tiled/tiled_map.py,sha256=eqtgqfxwBA5zEd4Kh4L1uSsaUHYZATNOmBrtpGYas9I,2968
|
|
25
|
-
mima/maps/tiled/tiled_object.py,sha256=
|
|
27
|
+
mima/maps/tiled/tiled_object.py,sha256=TkUNag8ZZyS28yoMScXqEdHq_-jdtG9UdTh78KbvXAk,2770
|
|
26
28
|
mima/maps/tiled/tiled_objectgroup.py,sha256=CDaxhpj65v-jKGdIHbN80VBfd6GbEfALgJnB5cdcKUU,588
|
|
27
29
|
mima/maps/tiled/tiled_template.py,sha256=02JlfGitkorSFztDQ4BrLx7ZnWRctJgV7azK5cGvTNE,1498
|
|
28
30
|
mima/maps/tiled/tiled_tile.py,sha256=CMh0W7KweqP_WZUbcgcYT3xis8hOECBlzaVtRKTYLX8,3172
|
|
29
|
-
mima/maps/tiled/tiled_tileset.py,sha256=
|
|
31
|
+
mima/maps/tiled/tiled_tileset.py,sha256=nJwbvLxGbZzmuruRNrdf7tFxP2EMgQWTpxUi5ElgPy0,1598
|
|
30
32
|
mima/objects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
|
-
mima/objects/animated_sprite.py,sha256=
|
|
33
|
+
mima/objects/animated_sprite.py,sha256=xeg89mZxx2_PpKX_dq1ySkfeZlEbxVymbX2Kf_yOHSw,7210
|
|
32
34
|
mima/objects/attribute_effect.py,sha256=zikOSb6-hD6Ecm4L9EyRocTyJQ7IYC0CJ9DCBxbK4cU,650
|
|
33
35
|
mima/objects/attributes.py,sha256=qqIVjuIXUQDv3qtdoaRDvBnx5oUbjuPdvcGR49fHRwM,3781
|
|
34
|
-
mima/objects/creature.py,sha256=
|
|
35
|
-
mima/objects/dynamic.py,sha256=
|
|
36
|
-
mima/objects/loader.py,sha256=
|
|
37
|
-
mima/objects/projectile.py,sha256=
|
|
38
|
-
mima/objects/sprite.py,sha256=
|
|
36
|
+
mima/objects/creature.py,sha256=Y0J8TXHYHB9A9vSgZEmlFd0EA1cfL-leeCYh1EifcoY,12690
|
|
37
|
+
mima/objects/dynamic.py,sha256=yDh8wjX_FViUWF0lqiLH0q3iuLMaE1qAd4uu6DHB7D4,6434
|
|
38
|
+
mima/objects/loader.py,sha256=GAdXsS5dINwNuHq88nCTHqrorg-BC5Fw8wgDtcMpnoA,4394
|
|
39
|
+
mima/objects/projectile.py,sha256=50aoKz8F8NH0Z5wSSsSm2RhsgbGWQd4PFMTf0Ku-0z4,3214
|
|
40
|
+
mima/objects/sprite.py,sha256=yQ_fFzqchlMYvbmQ8EKoxMrj4Cqq0wLyVAeSuP7GV4M,3959
|
|
39
41
|
mima/objects/effects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
|
-
mima/objects/effects/colorize_screen.py,sha256=
|
|
42
|
+
mima/objects/effects/colorize_screen.py,sha256=k-rt6xRmg3eW_vmmKbhII55-wlVUjlxNVfi4IZpkGaM,1834
|
|
41
43
|
mima/objects/effects/debug_box.py,sha256=Lc9bx8vGU9n0GXEFwrWmtPfcH0KBpMBspb-eNObgCDc,4074
|
|
42
|
-
mima/objects/effects/light.py,sha256=
|
|
43
|
-
mima/objects/effects/show_sprite.py,sha256=
|
|
44
|
-
mima/objects/effects/walking_on_grass.py,sha256=
|
|
45
|
-
mima/objects/effects/walking_on_water.py,sha256=
|
|
44
|
+
mima/objects/effects/light.py,sha256=w0XsxChQYE4YBJ2o0supakwP7Xove7dOod3u5MBEDvA,3131
|
|
45
|
+
mima/objects/effects/show_sprite.py,sha256=kPACkdOn6R6r-ov9QFWvfZd9vJksNcFrKa2Sg_KU8dQ,1216
|
|
46
|
+
mima/objects/effects/walking_on_grass.py,sha256=9qo3Qtv4Ra1kdus4OE48JWEy9Tk-91e1Ti6zKDSa3Ks,2057
|
|
47
|
+
mima/objects/effects/walking_on_water.py,sha256=K2EdzzTfnO2fNEBC7Hr8esY5nirZvHkw8IUNh4wzOs4,1727
|
|
46
48
|
mima/objects/world/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
|
-
mima/objects/world/color_gate.py,sha256=
|
|
48
|
-
mima/objects/world/color_switch.py,sha256=
|
|
49
|
-
mima/objects/world/container.py,sha256=
|
|
50
|
-
mima/objects/world/floor_switch.py,sha256=
|
|
51
|
-
mima/objects/world/gate.py,sha256=
|
|
52
|
-
mima/objects/world/light_source.py,sha256=
|
|
53
|
-
mima/objects/world/logic_gate.py,sha256=
|
|
54
|
-
mima/objects/world/movable.py,sha256=
|
|
55
|
-
mima/objects/world/oneway.py,sha256=
|
|
56
|
-
mima/objects/world/pickup.py,sha256=
|
|
57
|
-
mima/objects/world/switch.py,sha256=
|
|
58
|
-
mima/objects/world/teleport.py,sha256=
|
|
49
|
+
mima/objects/world/color_gate.py,sha256=1VZsQ6M8dPgtuE94yb-HBuAd6g_ZRvkH3F3Qjq7T8Rc,2013
|
|
50
|
+
mima/objects/world/color_switch.py,sha256=3Iw4GPKcT2sxO2oIrmZmroAFZLYx0vU8dMDtIswrW10,3121
|
|
51
|
+
mima/objects/world/container.py,sha256=nBdGByhKuIRsVET36Gb1eAKFZJ0AXRwpE4Y6w00q3t0,6000
|
|
52
|
+
mima/objects/world/floor_switch.py,sha256=Xnm8BOFiEnBmj_h68ZtZcUpeD0Lsl3jHVS9njCsiAus,3285
|
|
53
|
+
mima/objects/world/gate.py,sha256=aaxkTLdfLGrWroWGyjj6cn4QI29ze_to9UKxyNArjY4,5679
|
|
54
|
+
mima/objects/world/light_source.py,sha256=LQ-m8YqLUu7Wb9oZeb-ClrxWbSdr36LQ1fZesLu_5eI,3746
|
|
55
|
+
mima/objects/world/logic_gate.py,sha256=5f3gkU0TJ6y8nnz88bzD3-feDa4gPsCprOT86ZXsKN8,4863
|
|
56
|
+
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
|
|
60
|
+
mima/objects/world/teleport.py,sha256=2HqMkaU6V01AcsfEY_YG-wNrc8iRnsaQyNI-SNXVK4M,10584
|
|
59
61
|
mima/scripts/__init__.py,sha256=yLRT6igjwtSkOFbd0x8PXXFZVt1_xUIuCHhWhywHRuE,75
|
|
60
62
|
mima/scripts/command.py,sha256=rLjUbmvmpHqhaznt9TWkifY5IKtO-AdAGkzKnoKqAGg,881
|
|
61
63
|
mima/scripts/script_processor.py,sha256=IPl6oFlVAnZ2uibc9X4ffyTNwpendk4cMGZMvZDObjc,2072
|
|
@@ -71,7 +73,7 @@ mima/scripts/commands/move_to.py,sha256=FE2efowCpMp5QgDBvIlGju4T0xfa9N1UwjaE2yh3
|
|
|
71
73
|
mima/scripts/commands/oneway_move.py,sha256=1mytQxv6kiSGr_-H7m-DQPKbFKfT2T45i99Ro764vE4,1683
|
|
72
74
|
mima/scripts/commands/parallel.py,sha256=YFDDv6Lgc6uKvr_53II6YUznnlnW8JNhmlWK5FMwDSw,1780
|
|
73
75
|
mima/scripts/commands/play_sound.py,sha256=m4wqWC6O8TUsJIcYrP8bb8ZFjSNK3IpAyBdxLo-e8zo,348
|
|
74
|
-
mima/scripts/commands/present_item.py,sha256=
|
|
76
|
+
mima/scripts/commands/present_item.py,sha256=HfSCncURe6HIc2-omA7xvFbon58wmRaKEwVukZ1FlhM,1865
|
|
75
77
|
mima/scripts/commands/progress_quest.py,sha256=-Nm7basBFdnixKwf42Xrs6iDROx22WGIDHpAZ0itpGU,359
|
|
76
78
|
mima/scripts/commands/quit_game.py,sha256=BmLlh45K46Mx57j1dE2wWhmmmcb0Y-X5mLrFV1HIfhI,219
|
|
77
79
|
mima/scripts/commands/save_game.py,sha256=yhmXIpnhD89otDmltE7mucdEozHc0LfRSZCSZZO915c,392
|
|
@@ -92,7 +94,7 @@ mima/types/blend.py,sha256=0zhU2QjlajZDh3-tvmUCP_gMQsvr_eZPOZ9dqbk3LLU,96
|
|
|
92
94
|
mima/types/damage.py,sha256=8AgvwiNgcENXwc0v0VCuxxA1w45huSTQdR6S1RW4yj8,584
|
|
93
95
|
mima/types/direction.py,sha256=P7EqLZFacMjf8BmQmgNFlXutKtYxlJ6U5ha3JPyFwjI,1116
|
|
94
96
|
mima/types/gate_color.py,sha256=Mby5_s4EoTIrEZ92gKLBAG9vymF3207RK93EfqGtLuk,86
|
|
95
|
-
mima/types/graphic_state.py,sha256=
|
|
97
|
+
mima/types/graphic_state.py,sha256=eucW0exiUwyFfRbNii5MYMuKOgqsbd3BbbzC2yTJrhY,322
|
|
96
98
|
mima/types/keys.py,sha256=OP4P4gsGRbN242CRzuYmzlYC1JnNlZU41p1Z3yLUQz4,935
|
|
97
99
|
mima/types/mode.py,sha256=sxq6ZLKAswrHjnxeIB4AZFfiboFeT-Vh2l0Wcdy-r-Q,120
|
|
98
100
|
mima/types/nature.py,sha256=4tANHg4mzN8O57B-pr0jafikCZkqB83r-pJpDG4CnAw,159
|
|
@@ -105,8 +107,8 @@ mima/types/tile_collision.py,sha256=2O_IfJV1lCtfItjyu3dtm2UY7_JNwCSk9q0JXrQaGmk,
|
|
|
105
107
|
mima/types/weapon_slot.py,sha256=kX5mYKgrgn-CcJ-gUzfvTGOVoxLllPRQ92sRjWYoqCg,87
|
|
106
108
|
mima/types/window.py,sha256=ZdknCL1lvlQDbr-eVXlXObQ_BsZ6PF7cxMGQguhmV44,890
|
|
107
109
|
mima/usables/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
108
|
-
mima/usables/item.py,sha256=
|
|
109
|
-
mima/usables/weapon.py,sha256=
|
|
110
|
+
mima/usables/item.py,sha256=3ZM1gR6Ve-5PgBC8QuXU26rKIe9KXbKp_VCouvi-vUY,1443
|
|
111
|
+
mima/usables/weapon.py,sha256=YzahQ_B9PT2rgd6NjBJY2ISVAE3XO7PPpE2gZumv3q4,2033
|
|
110
112
|
mima/util/__init__.py,sha256=KMuEDnRsGr32gXED12ZyL1za6iKAuk_Tn8S3mTtpYds,42
|
|
111
113
|
mima/util/colors.py,sha256=u4YVTCvSNFBhHaR9dFiMVzvE9fRM1UlW1m8gDa7oDY4,1483
|
|
112
114
|
mima/util/constants.py,sha256=Sy-6vwAXJf86drHy7IxQLDXtuBbcGhuNU0-YKTUNBFM,1353
|
|
@@ -114,15 +116,15 @@ mima/util/functions.py,sha256=GqAgT4-ATZcCvaaUyEOCeXphUu8xJXmVshAbFPJfOWI,1130
|
|
|
114
116
|
mima/util/input_defaults.py,sha256=6S9YlXqtvA5Q1yAFqwicyorCXcy5FEhi3AlyzqpUxAc,2641
|
|
115
117
|
mima/util/logging.py,sha256=p6-C1ozlCs_sCkmykh_B0NgZtvSkcZXXseE6qA6Zwew,1197
|
|
116
118
|
mima/util/property.py,sha256=o6dEWpIOWxwS_lf6MvYZSjkyI5Amo56P2JIDa7AMaRY,107
|
|
117
|
-
mima/util/runtime_config.py,sha256=
|
|
118
|
-
mima/util/trading_item.py,sha256=
|
|
119
|
+
mima/util/runtime_config.py,sha256=MyRA1xHS6O5HdISUEhKFmIPQHPz26vtaBnKdqa_ISDc,9369
|
|
120
|
+
mima/util/trading_item.py,sha256=mToWWNyZKbWVTbeefUUX8kGEPyvJ9-YJQBCjlWlPLLY,466
|
|
119
121
|
mima/view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
120
122
|
mima/view/camera.py,sha256=IZQJF7NxrQ265TRgPnlmSVcNwgsJ3I1ek40u7PQG20g,6260
|
|
121
|
-
mima/view/mima_mode.py,sha256=
|
|
123
|
+
mima/view/mima_mode.py,sha256=wJTb3UMsx5RwvrifPvZIYWeBkPCmUDFWJ6QFCMXLxrg,21328
|
|
122
124
|
mima/view/mima_scene.py,sha256=oGfyM-WLN-eQLILnIbzI0sa160BqsS8dE2UaC2qq2XY,6988
|
|
123
125
|
mima/view/mima_view.py,sha256=tKLcoNWVwldoqgG3jxhI_jMsFAXzod2csXyEbhub2xI,217
|
|
124
126
|
mima/view/mima_window.py,sha256=LllwqhKo1D-MoNAXJaiufTi0AacRo_QnVZX8WYUH4ds,4790
|
|
125
|
-
mima_engine-0.2.
|
|
126
|
-
mima_engine-0.2.
|
|
127
|
-
mima_engine-0.2.
|
|
128
|
-
mima_engine-0.2.
|
|
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,,
|
|
File without changes
|