mima-engine 0.1.5__py3-none-any.whl → 0.2.1__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 +1 -1
- mima/backend/pygame_assets.py +14 -8
- mima/backend/pygame_audio.py +5 -2
- mima/backend/pygame_backend.py +255 -57
- mima/backend/pygame_camera.py +63 -0
- mima/backend/pygame_events.py +369 -120
- mima/collision.py +182 -111
- mima/engine.py +155 -15
- mima/maps/tiled/tiled_map.py +3 -3
- mima/maps/tiled/tiled_tileset.py +1 -0
- mima/maps/tilemap.py +78 -15
- mima/maps/tileset.py +8 -2
- mima/maps/transition_map.py +6 -8
- mima/mode_engine.py +80 -0
- mima/objects/animated_sprite.py +23 -15
- mima/objects/attributes.py +3 -0
- mima/objects/creature.py +54 -17
- mima/objects/dynamic.py +30 -8
- mima/objects/effects/colorize_screen.py +22 -6
- mima/objects/effects/debug_box.py +124 -0
- mima/objects/effects/light.py +21 -30
- mima/objects/effects/show_sprite.py +39 -0
- mima/objects/effects/walking_on_grass.py +25 -7
- mima/objects/effects/walking_on_water.py +17 -6
- mima/objects/loader.py +24 -13
- mima/objects/projectile.py +21 -6
- mima/objects/sprite.py +7 -8
- mima/objects/world/color_gate.py +5 -2
- mima/objects/world/color_switch.py +12 -6
- mima/objects/world/container.py +17 -8
- mima/objects/world/floor_switch.py +8 -4
- mima/objects/world/gate.py +8 -5
- mima/objects/world/light_source.py +11 -9
- mima/objects/world/logic_gate.py +8 -7
- mima/objects/world/movable.py +72 -28
- mima/objects/world/oneway.py +14 -9
- mima/objects/world/pickup.py +10 -5
- mima/objects/world/switch.py +28 -25
- mima/objects/world/teleport.py +76 -55
- mima/scene_engine.py +19 -20
- mima/scripts/command.py +16 -2
- mima/scripts/commands/change_map.py +23 -4
- mima/scripts/commands/equip_weapon.py +23 -0
- mima/scripts/commands/give_item.py +5 -3
- mima/scripts/commands/move_map.py +9 -9
- mima/scripts/commands/parallel.py +16 -3
- mima/scripts/commands/present_item.py +7 -5
- mima/scripts/commands/screen_fade.py +30 -12
- mima/scripts/commands/serial.py +30 -7
- mima/scripts/commands/set_spawn_map.py +6 -3
- mima/scripts/commands/show_choices.py +16 -7
- mima/scripts/commands/show_dialog.py +110 -3
- mima/scripts/script_processor.py +41 -20
- mima/states/game_state.py +2 -0
- mima/states/memory.py +28 -0
- mima/states/quest.py +2 -3
- mima/types/keys.py +48 -0
- mima/types/mode.py +4 -10
- mima/types/player.py +9 -0
- mima/types/position.py +13 -0
- mima/types/tile_collision.py +11 -0
- mima/types/window.py +44 -0
- mima/usables/item.py +1 -0
- mima/util/colors.py +5 -0
- mima/util/constants.py +6 -0
- mima/util/functions.py +27 -0
- mima/util/input_defaults.py +109 -0
- mima/util/runtime_config.py +234 -30
- mima/util/trading_item.py +20 -0
- mima/view/camera.py +160 -19
- mima/view/mima_mode.py +612 -0
- mima/view/mima_scene.py +225 -0
- mima/view/mima_view.py +12 -0
- mima/view/mima_window.py +153 -0
- {mima_engine-0.1.5.dist-info → mima_engine-0.2.1.dist-info}/METADATA +4 -2
- mima_engine-0.2.1.dist-info/RECORD +128 -0
- {mima_engine-0.1.5.dist-info → mima_engine-0.2.1.dist-info}/WHEEL +1 -1
- mima/view/scene.py +0 -322
- mima_engine-0.1.5.dist-info/RECORD +0 -114
- {mima_engine-0.1.5.dist-info → mima_engine-0.2.1.dist-info}/top_level.txt +0 -0
mima/view/scene.py
DELETED
|
@@ -1,322 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import TYPE_CHECKING, List, Optional
|
|
4
|
-
|
|
5
|
-
from mima.types.nature import Nature
|
|
6
|
-
from mima.util.constants import TILE_HEIGHT, TILE_WIDTH
|
|
7
|
-
|
|
8
|
-
from ..collision import (
|
|
9
|
-
check_object_to_map_collision,
|
|
10
|
-
check_object_to_object_collision,
|
|
11
|
-
)
|
|
12
|
-
from ..types.mode import Mode
|
|
13
|
-
from ..util.colors import BLACK, WHITE, Color
|
|
14
|
-
from ..util.constants import BIG_FONT_HEIGHT, BIG_FONT_WIDTH
|
|
15
|
-
from .camera import Camera
|
|
16
|
-
|
|
17
|
-
if TYPE_CHECKING:
|
|
18
|
-
from mima.objects.loader import ObjectLoader
|
|
19
|
-
|
|
20
|
-
from ..engine import MimaEngine
|
|
21
|
-
from ..maps.tilemap import Tilemap
|
|
22
|
-
from ..objects.dynamic import Dynamic
|
|
23
|
-
from ..objects.projectile import Projectile
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
class Scene:
|
|
27
|
-
engine: MimaEngine
|
|
28
|
-
|
|
29
|
-
def __init__(self):
|
|
30
|
-
self.tilemap: Tilemap
|
|
31
|
-
self.dynamics: List[Dynamic] = []
|
|
32
|
-
self.projectiles: List[Projectile] = []
|
|
33
|
-
self.effects: List[Projectile] = []
|
|
34
|
-
self.dialog_to_show: Optional[List[str]] = None
|
|
35
|
-
self.camera: Camera = Camera(0, 0)
|
|
36
|
-
self.loader: ObjectLoader
|
|
37
|
-
self.autosave: bool = False
|
|
38
|
-
|
|
39
|
-
def update(self, elapsed_time):
|
|
40
|
-
pass
|
|
41
|
-
|
|
42
|
-
def add_dynamic(self, dynamic: Dynamic):
|
|
43
|
-
self.dynamics.append(dynamic)
|
|
44
|
-
|
|
45
|
-
def add_projectile(self, projectile: Projectile):
|
|
46
|
-
self.projectiles.append(projectile)
|
|
47
|
-
|
|
48
|
-
def add_effect(self, effect: Projectile):
|
|
49
|
-
self.effects.append(effect)
|
|
50
|
-
|
|
51
|
-
def change_map(self, map_name: str, spawn_px: float, spawn_py: float):
|
|
52
|
-
pass
|
|
53
|
-
|
|
54
|
-
def delete_map_dynamics(self):
|
|
55
|
-
self.dynamics = [obj for obj in self.dynamics if obj.persistent]
|
|
56
|
-
if not self.dynamics:
|
|
57
|
-
self.dynamics = [self.engine.player]
|
|
58
|
-
for p in self.projectiles:
|
|
59
|
-
if not p.persistent:
|
|
60
|
-
p.cancel()
|
|
61
|
-
for e in self.effects:
|
|
62
|
-
if not e.persistent:
|
|
63
|
-
e.cancel()
|
|
64
|
-
self.projectiles = [p for p in self.projectiles if p.persistent]
|
|
65
|
-
self.effects = [e for e in self.effects if e.persistent]
|
|
66
|
-
|
|
67
|
-
def show_dialog(self, lines: List[str]):
|
|
68
|
-
self.dialog_to_show = lines
|
|
69
|
-
self.engine.dialog_active = True
|
|
70
|
-
|
|
71
|
-
def display_dialog(
|
|
72
|
-
self,
|
|
73
|
-
lines: str,
|
|
74
|
-
px: float,
|
|
75
|
-
py: float,
|
|
76
|
-
text_color: Optional[Color] = WHITE,
|
|
77
|
-
background_color: Optional[Color] = BLACK,
|
|
78
|
-
border_color: Optional[Color] = WHITE,
|
|
79
|
-
):
|
|
80
|
-
|
|
81
|
-
max_line_length = 0
|
|
82
|
-
num_lines = len(lines)
|
|
83
|
-
|
|
84
|
-
for line in lines:
|
|
85
|
-
if len(line) > max_line_length:
|
|
86
|
-
max_line_length = len(line)
|
|
87
|
-
|
|
88
|
-
self.engine.backend.fill_rect(
|
|
89
|
-
px - 1,
|
|
90
|
-
py - 1,
|
|
91
|
-
max_line_length * BIG_FONT_WIDTH + 2,
|
|
92
|
-
num_lines * BIG_FONT_HEIGHT + 2,
|
|
93
|
-
background_color,
|
|
94
|
-
)
|
|
95
|
-
|
|
96
|
-
self.engine.backend.draw_rect(
|
|
97
|
-
px - 2,
|
|
98
|
-
py - 2,
|
|
99
|
-
max_line_length * BIG_FONT_WIDTH + 4,
|
|
100
|
-
num_lines * BIG_FONT_HEIGHT + 4,
|
|
101
|
-
border_color,
|
|
102
|
-
)
|
|
103
|
-
|
|
104
|
-
for idx, line in enumerate(lines):
|
|
105
|
-
self.engine.backend.draw_big_text(
|
|
106
|
-
line, px, py + idx * BIG_FONT_HEIGHT, text_color
|
|
107
|
-
)
|
|
108
|
-
|
|
109
|
-
def draw_map_and_objects(self):
|
|
110
|
-
# First, background layers of the map
|
|
111
|
-
self.draw_map_layers([-1, 0])
|
|
112
|
-
|
|
113
|
-
# Second, dynamics and projectiles
|
|
114
|
-
self.draw_objects_y_sorted()
|
|
115
|
-
# for obj in self.dynamics + self.projectiles:
|
|
116
|
-
# obj.draw_self(self.camera.ox, self.camera.oy)
|
|
117
|
-
|
|
118
|
-
# Third, effects
|
|
119
|
-
for effect in self.effects:
|
|
120
|
-
if effect.layer == 0:
|
|
121
|
-
effect.draw_self(self.camera.ox, self.camera.oy)
|
|
122
|
-
|
|
123
|
-
# Fourth, all the foreground layers of the map
|
|
124
|
-
self.draw_map_layers([1, 2])
|
|
125
|
-
|
|
126
|
-
# Fifth, there might be foreground effects
|
|
127
|
-
for effect in self.effects:
|
|
128
|
-
if effect.layer >= 1:
|
|
129
|
-
effect.draw_self(self.camera.ox, self.camera.oy)
|
|
130
|
-
|
|
131
|
-
def draw_map_layers(self, layers: List[int]):
|
|
132
|
-
for pos in layers:
|
|
133
|
-
self.tilemap.draw_self(
|
|
134
|
-
self.camera.ox,
|
|
135
|
-
self.camera.oy,
|
|
136
|
-
self.camera.visible_tiles_sx,
|
|
137
|
-
self.camera.visible_tiles_sy,
|
|
138
|
-
self.camera.visible_tiles_ex,
|
|
139
|
-
self.camera.visible_tiles_ey,
|
|
140
|
-
pos,
|
|
141
|
-
)
|
|
142
|
-
|
|
143
|
-
def draw_objects_y_sorted(self):
|
|
144
|
-
y_sorted = sorted(
|
|
145
|
-
self.dynamics + self.projectiles, key=lambda obj: obj.py
|
|
146
|
-
)
|
|
147
|
-
for layer in range(3):
|
|
148
|
-
for obj in y_sorted:
|
|
149
|
-
if not obj.redundant and obj.visible:
|
|
150
|
-
if obj.layer == layer:
|
|
151
|
-
obj.draw_self(self.camera.ox, self.camera.oy)
|
|
152
|
-
|
|
153
|
-
# if self.engine.draw_debug:
|
|
154
|
-
# color = CYAN
|
|
155
|
-
# if obj.type == ObjectType.PROJECTILE:
|
|
156
|
-
# color = RED
|
|
157
|
-
# color.alpha = 128
|
|
158
|
-
# self.engine.backend.fill_rect(
|
|
159
|
-
# (obj.px + obj.hitbox_px - self.camera.ox)
|
|
160
|
-
# * TILE_WIDTH,
|
|
161
|
-
# (obj.py + obj.hitbox_py - self.camera.oy)
|
|
162
|
-
# * TILE_HEIGHT,
|
|
163
|
-
# obj.hitbox_width * TILE_WIDTH,
|
|
164
|
-
# obj.hitbox_height * TILE_HEIGHT,
|
|
165
|
-
# color,
|
|
166
|
-
# )
|
|
167
|
-
# elif (
|
|
168
|
-
# not obj.redundant and self.engine.draw_bounding_rectangles
|
|
169
|
-
# ):
|
|
170
|
-
# self.engine.backend.fill_rect(
|
|
171
|
-
# (obj.px + obj.hitbox_px - self.camera.ox)
|
|
172
|
-
# * obj.sprite.width,
|
|
173
|
-
# (obj.py + obj.hitbox_py - self.camera.oy)
|
|
174
|
-
# * obj.sprite.height,
|
|
175
|
-
# obj.hitbox_width * TILE_WIDTH,
|
|
176
|
-
# obj.hitbox_height * TILE_HEIGHT,
|
|
177
|
-
# CYAN,
|
|
178
|
-
# )
|
|
179
|
-
|
|
180
|
-
def delete_redundant_objects(self):
|
|
181
|
-
if self.engine.player.redundant:
|
|
182
|
-
self.engine.scene_stack.append(Mode.GAME_OVER)
|
|
183
|
-
# self.engine.session_seconds = self.engine.total_seconds
|
|
184
|
-
|
|
185
|
-
# Find and erase redundant dynamics
|
|
186
|
-
d2rm = [d for d in self.dynamics if d.redundant]
|
|
187
|
-
for dyn in d2rm:
|
|
188
|
-
for quest in self.engine.quests:
|
|
189
|
-
quest.on_interaction(self.dynamics, dyn, Nature.KILLED)
|
|
190
|
-
dyn.on_death()
|
|
191
|
-
self.dynamics.remove(dyn)
|
|
192
|
-
|
|
193
|
-
# Find and erase redundant projectiles
|
|
194
|
-
p2rm = [p for p in self.projectiles if p.redundant]
|
|
195
|
-
for pro in p2rm:
|
|
196
|
-
pro.on_death()
|
|
197
|
-
self.projectiles.remove(pro)
|
|
198
|
-
|
|
199
|
-
# Find and erase redundant effects
|
|
200
|
-
e2rm = [e for e in self.effects if e.redundant]
|
|
201
|
-
for eff in e2rm:
|
|
202
|
-
eff.on_death()
|
|
203
|
-
self.effects.remove(eff)
|
|
204
|
-
|
|
205
|
-
# Find and erase completed quests
|
|
206
|
-
q2rm = [q for q in self.engine.quests if q.completed]
|
|
207
|
-
for quest in q2rm:
|
|
208
|
-
self.engine.quests.remove(quest)
|
|
209
|
-
|
|
210
|
-
def handle_user_input(self):
|
|
211
|
-
pass
|
|
212
|
-
|
|
213
|
-
def handle_collisions(self, elapsed_time: float):
|
|
214
|
-
screen_width = self.engine.backend.render_width // TILE_WIDTH
|
|
215
|
-
screen_height = self.engine.backend.render_height // TILE_HEIGHT
|
|
216
|
-
|
|
217
|
-
# Filter for onscreen/offscreen objects
|
|
218
|
-
dynamics = [
|
|
219
|
-
obj
|
|
220
|
-
for obj in self.dynamics
|
|
221
|
-
if (
|
|
222
|
-
not obj.offscreen_collision_skippable
|
|
223
|
-
or (
|
|
224
|
-
abs(self.engine.player.px - obj.px) < screen_width
|
|
225
|
-
and abs(self.engine.player.py - obj.py) < screen_height
|
|
226
|
-
)
|
|
227
|
-
)
|
|
228
|
-
]
|
|
229
|
-
projectiles = [
|
|
230
|
-
obj
|
|
231
|
-
for obj in self.projectiles
|
|
232
|
-
if (
|
|
233
|
-
not obj.offscreen_collision_skippable
|
|
234
|
-
or (
|
|
235
|
-
abs(self.engine.player.px - obj.px) < screen_width
|
|
236
|
-
and abs(self.engine.player.py - obj.py) < screen_height
|
|
237
|
-
)
|
|
238
|
-
)
|
|
239
|
-
]
|
|
240
|
-
for obj in dynamics + projectiles:
|
|
241
|
-
if obj.onscreen_collision_skippable:
|
|
242
|
-
# self.skipped_collision_checks += 1
|
|
243
|
-
continue
|
|
244
|
-
|
|
245
|
-
new_px, new_py = self.update_position(obj, elapsed_time)
|
|
246
|
-
|
|
247
|
-
new_px, new_py = check_object_to_map_collision(
|
|
248
|
-
elapsed_time, obj, self.tilemap, new_px, new_py
|
|
249
|
-
)
|
|
250
|
-
|
|
251
|
-
if self.check_tile_properties(obj, new_px, new_py):
|
|
252
|
-
# If true, something happened to the object
|
|
253
|
-
continue
|
|
254
|
-
|
|
255
|
-
for other in dynamics:
|
|
256
|
-
if other == obj:
|
|
257
|
-
continue
|
|
258
|
-
|
|
259
|
-
new_px, new_py = check_object_to_object_collision(
|
|
260
|
-
self.engine, self, obj, new_px, new_py, other
|
|
261
|
-
)
|
|
262
|
-
obj.px = new_px
|
|
263
|
-
obj.py = new_py
|
|
264
|
-
|
|
265
|
-
def update_dynamics(self, elapsed_time: float):
|
|
266
|
-
screen_width = self.engine.backend.render_width // TILE_WIDTH
|
|
267
|
-
screen_height = self.engine.backend.render_height // TILE_HEIGHT
|
|
268
|
-
|
|
269
|
-
for obj in self.dynamics + self.projectiles:
|
|
270
|
-
if (
|
|
271
|
-
obj.update_skippable
|
|
272
|
-
and abs(self.engine.player.px - obj.px) > screen_width
|
|
273
|
-
):
|
|
274
|
-
continue
|
|
275
|
-
if (
|
|
276
|
-
obj.update_skippable
|
|
277
|
-
and abs(self.engine.player.py - obj.py) > screen_height
|
|
278
|
-
):
|
|
279
|
-
continue
|
|
280
|
-
|
|
281
|
-
obj.vz -= obj.attributes.gravity_vz * elapsed_time
|
|
282
|
-
obj.update(elapsed_time, self.engine.player)
|
|
283
|
-
|
|
284
|
-
if obj.gravity:
|
|
285
|
-
obj.pz = obj.pz + obj.vz * elapsed_time
|
|
286
|
-
if obj.pz <= 0.0:
|
|
287
|
-
obj.pz = 0.0
|
|
288
|
-
obj.vz = 0.0
|
|
289
|
-
|
|
290
|
-
def update_position(self, obj: Dynamic, elapsed_time: float):
|
|
291
|
-
vx, vy = min(1, max(-1, obj.vx)), min(1, max(-1, obj.vy))
|
|
292
|
-
|
|
293
|
-
# Diagonal movement
|
|
294
|
-
if obj.vx != 0 and obj.vy != 0:
|
|
295
|
-
vx, vy = vx * 0.707, vy * 0.707
|
|
296
|
-
|
|
297
|
-
def calculate(v, real_v):
|
|
298
|
-
if v == 0 and obj.use_friction:
|
|
299
|
-
mod = obj.attributes.friction
|
|
300
|
-
elif v != 0 and obj.use_acceleration:
|
|
301
|
-
mod = obj.attributes.acceleration
|
|
302
|
-
else:
|
|
303
|
-
return v
|
|
304
|
-
|
|
305
|
-
dif = v - real_v
|
|
306
|
-
if abs(dif) < 0.01:
|
|
307
|
-
return v
|
|
308
|
-
return real_v + (v - real_v) * mod * elapsed_time
|
|
309
|
-
|
|
310
|
-
obj.real_vx = vx if vx == obj.real_vx else calculate(vx, obj.real_vx)
|
|
311
|
-
obj.real_vy = vy if vy == obj.real_vy else calculate(vy, obj.real_vy)
|
|
312
|
-
|
|
313
|
-
new_px = (
|
|
314
|
-
obj.px
|
|
315
|
-
+ obj.real_vx * obj.speed * obj.attributes.speed_mod * elapsed_time
|
|
316
|
-
)
|
|
317
|
-
new_py = (
|
|
318
|
-
obj.py
|
|
319
|
-
+ obj.real_vy * obj.speed * obj.attributes.speed_mod * elapsed_time
|
|
320
|
-
)
|
|
321
|
-
|
|
322
|
-
return new_px, new_py
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
mima/__init__.py,sha256=rPSfWgIeq2YWVPyESOAwCBt8vftsTpIkuLAGDEzyRQc,22
|
|
2
|
-
mima/collision.py,sha256=roHN_U2H5dhhKwvhgBQLArjodhbNlt3fV9KjPs7nGzw,6872
|
|
3
|
-
mima/engine.py,sha256=t3nbBNfbLeDnIcv7qlKoU0E4zhH58m7YOOfpPtoeUWw,6106
|
|
4
|
-
mima/scene_engine.py,sha256=CZOMetEQH2UlT39siaco8EVtOHEnv1JvMlqXF7FMYjs,2678
|
|
5
|
-
mima/backend/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
6
|
-
mima/backend/pygame_assets.py,sha256=dXMhZzU3LNCT1n6KHFBSOGO7CTyBMqu6rwGTcuZN610,11772
|
|
7
|
-
mima/backend/pygame_audio.py,sha256=HsEF321PecqE6DuFy92HiV5YWsQxAtnid_4Tm-VezGQ,2320
|
|
8
|
-
mima/backend/pygame_backend.py,sha256=vMBVEMCQBkELyxRKzH2OwNxwJUxc3vLhhrQM0zDWo9M,11747
|
|
9
|
-
mima/backend/pygame_events.py,sha256=w4zYiBlcbZsx2lPRz6wZ4mEvjpVlzvDTGWgcpoosYCY,16248
|
|
10
|
-
mima/maps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
mima/maps/template.py,sha256=xBIIzf2o6ATHevfZA5b5XP-o6o71-04u7OAS4847buY,1178
|
|
12
|
-
mima/maps/tile.py,sha256=ZIPtpVCrX_dnL8SKwobj_0etMCUrQxRL5d04KnEmwNQ,639
|
|
13
|
-
mima/maps/tile_animation.py,sha256=xoI41BIFd6udW47xHAbfGhuqMVIvAw75vlec1iEhdhE,106
|
|
14
|
-
mima/maps/tile_info.py,sha256=VLAjfPCrLbzTP7p1qk5O3ytc4zFg_52ZyYvAbufC_X8,152
|
|
15
|
-
mima/maps/tile_layer.py,sha256=L8qmXaWnAaS4FUb-poC8Xve_pGvoFmwR_YCLE1tdWww,1592
|
|
16
|
-
mima/maps/tilemap.py,sha256=kfkYXotfmckz_4n17Msnl5rkzK7NKSvSTaX_we15ibo,5026
|
|
17
|
-
mima/maps/tileset.py,sha256=nAGF7XQv27kTYlWAyiAXYmRpLRzpOBgAvEHsLwtxH8M,819
|
|
18
|
-
mima/maps/tileset_info.py,sha256=nJvghbxlxpvYOXaR1A2Joyz3LxPV7usspQcvKM5iyBg,136
|
|
19
|
-
mima/maps/transition_map.py,sha256=wnuwSKXJyVZGm-6IocAUcskykq_CWGjEOgXtJVpavjc,5021
|
|
20
|
-
mima/maps/tiled/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
-
mima/maps/tiled/tiled_layer.py,sha256=JpSoxHGYf-g4fjGcU8J8z3M9RaSvuBd1VHIp9joZy4A,1572
|
|
22
|
-
mima/maps/tiled/tiled_map.py,sha256=X65-XeAjONo_fw7EKAcBTpBSc4nzABFcvQVrT1Oypms,2966
|
|
23
|
-
mima/maps/tiled/tiled_object.py,sha256=ubfvPY2VSfy7tOhakHbfBbD4wa6X3fpSJ8ugGUzvGuI,2782
|
|
24
|
-
mima/maps/tiled/tiled_objectgroup.py,sha256=CDaxhpj65v-jKGdIHbN80VBfd6GbEfALgJnB5cdcKUU,588
|
|
25
|
-
mima/maps/tiled/tiled_template.py,sha256=02JlfGitkorSFztDQ4BrLx7ZnWRctJgV7azK5cGvTNE,1498
|
|
26
|
-
mima/maps/tiled/tiled_tile.py,sha256=CMh0W7KweqP_WZUbcgcYT3xis8hOECBlzaVtRKTYLX8,3172
|
|
27
|
-
mima/maps/tiled/tiled_tileset.py,sha256=8AzYboKpoXyrDU2jzp2hv3LIrH2baEhuPul0HH4eSeY,1428
|
|
28
|
-
mima/objects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
|
-
mima/objects/animated_sprite.py,sha256=4ShQBmVCnLd5e6d0QQme0AvfptjaV7Js4SNYr68THbE,6640
|
|
30
|
-
mima/objects/attribute_effect.py,sha256=zikOSb6-hD6Ecm4L9EyRocTyJQ7IYC0CJ9DCBxbK4cU,650
|
|
31
|
-
mima/objects/attributes.py,sha256=Qr2bfyVdSBSqFPlEK5BlpqnslXpjfCTP65_wmxSf9Pg,3705
|
|
32
|
-
mima/objects/creature.py,sha256=D5yaEo3yKRz4qnH_WNJD_ddjFK1w8XQxBJLzKvvof0A,11194
|
|
33
|
-
mima/objects/dynamic.py,sha256=-u7YRFOYPFgmaXa5Zd8yeX0Ysy92he9a36wxoeaPaLY,5715
|
|
34
|
-
mima/objects/loader.py,sha256=FGg4389Y_cSCIjVhW2MaJPOY-LYqLQvhEm7w6bzMBSg,4124
|
|
35
|
-
mima/objects/projectile.py,sha256=EPOeQlHqIy0tKhFY8WBh5AUc6GQPAWByr_F4ZW1sLXg,2506
|
|
36
|
-
mima/objects/sprite.py,sha256=P-wvynPEwyappReLucrymBoIKpuzkJP5PaLwbSjHORE,3711
|
|
37
|
-
mima/objects/effects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
|
-
mima/objects/effects/colorize_screen.py,sha256=9cWXFBnchm86M9us1Y97psWIcDiQ3KTtHgMkXmsOyvU,1266
|
|
39
|
-
mima/objects/effects/light.py,sha256=2SAM60S5IfOyny4Zm6duOOFYoyhi-bfnCnmra__11w0,3739
|
|
40
|
-
mima/objects/effects/walking_on_grass.py,sha256=Wia5xteG-lhW4IWLRsNw3zQiwt1gQxytJljZwnTlSp0,1228
|
|
41
|
-
mima/objects/effects/walking_on_water.py,sha256=vfs6vOlhoT2RFfPrAvEgQ7TqBnL2PwD1b4993j6p7I4,1335
|
|
42
|
-
mima/objects/world/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
43
|
-
mima/objects/world/color_gate.py,sha256=Xs6Ek2H23hpR5pLAIkl2P9hq8t4_xdciuoayB61xIaM,1948
|
|
44
|
-
mima/objects/world/color_switch.py,sha256=B-D1oVGuUuKQxuoVmTorPQXMjMmiaY8ME97tZzeJJdo,3207
|
|
45
|
-
mima/objects/world/container.py,sha256=0d3AfAuFJ07Ts3UbsyYo51sLeDKTkxHD6Z9F4pHNUIA,6001
|
|
46
|
-
mima/objects/world/floor_switch.py,sha256=_hyliGLaK-c8EFXLIXGmPS0Xpn4ZUfeApgAZC0bXS74,3358
|
|
47
|
-
mima/objects/world/gate.py,sha256=RQi8FTtgWAcNWYaIm4QULfLIXte5VoCsH90FhdWM81A,5626
|
|
48
|
-
mima/objects/world/light_source.py,sha256=mYEH7XfgltYGlPM2w_srr7X22dzsrTt30_mI4MAhGEU,3896
|
|
49
|
-
mima/objects/world/logic_gate.py,sha256=jzLyHWOEK0cwBgrc_On8R3St-pDyz6RxshGMHmnyFIY,5048
|
|
50
|
-
mima/objects/world/movable.py,sha256=ZM9Kl3zXJjXXawl3l9iluQqZHpIBbuC-dTzCABLg47Y,10944
|
|
51
|
-
mima/objects/world/oneway.py,sha256=T6iinejyvj8b1dKFRCTQiXL_ZHugO04z_bIOR0x6ozY,5423
|
|
52
|
-
mima/objects/world/pickup.py,sha256=6iA7qAD-aSFdlTuxWnPPz7nuh5OfTHOZ_FQGpkzhIOM,3058
|
|
53
|
-
mima/objects/world/switch.py,sha256=QTrMo2BRMH9tE8dwhpUJ5tclkctjbhk-siiZGKk3tWY,5559
|
|
54
|
-
mima/objects/world/teleport.py,sha256=R3ZZvx80BhKg5J_8Up_VQ6rrhzWa3urcKEP5Ja_dhm4,10336
|
|
55
|
-
mima/scripts/__init__.py,sha256=yLRT6igjwtSkOFbd0x8PXXFZVt1_xUIuCHhWhywHRuE,75
|
|
56
|
-
mima/scripts/command.py,sha256=UnbIsVtW66KajCiH9Pgkkzzu1xVwWDg157lWxTYqWFI,434
|
|
57
|
-
mima/scripts/script_processor.py,sha256=ks7_PD-KQF1azcU8GTEtC5D0Yo3alHToQLWt5GsA70k,1177
|
|
58
|
-
mima/scripts/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
59
|
-
mima/scripts/commands/add_quest.py,sha256=r5eCLgAarLJmtMROxLqMTryK5Bfv9wUSqsC8p0RHVkU,387
|
|
60
|
-
mima/scripts/commands/change_map.py,sha256=tQPbz-dsxR2RpIVLOZp2GQmCmpTKVjgra2lp_-Wkrac,449
|
|
61
|
-
mima/scripts/commands/close_dialog.py,sha256=-yWyEtYA41RsehJ4c-zIXhxIhR25e8GTWN20GuTnT80,207
|
|
62
|
-
mima/scripts/commands/give_item.py,sha256=HJhX5b7A3Fmqij08858UfU2kHeqwJ3bdOwVh_fO3kWU,561
|
|
63
|
-
mima/scripts/commands/give_resource.py,sha256=J9c0hk__DY4To1BStZ5qmcEOMbAYRefNJT8Kk5WyORE,1805
|
|
64
|
-
mima/scripts/commands/move_map.py,sha256=dMdw19yaB3Os6nj5cg7gcAe6PSRj9yKUW0psA25BKB8,4756
|
|
65
|
-
mima/scripts/commands/move_to.py,sha256=FE2efowCpMp5QgDBvIlGju4T0xfa9N1UwjaE2yh3v4Q,1420
|
|
66
|
-
mima/scripts/commands/oneway_move.py,sha256=1mytQxv6kiSGr_-H7m-DQPKbFKfT2T45i99Ro764vE4,1683
|
|
67
|
-
mima/scripts/commands/parallel.py,sha256=RbWVOJLRtnl_wPE8lVr5MXQScYB8CNypFtpv5_QFLT0,1489
|
|
68
|
-
mima/scripts/commands/play_sound.py,sha256=m4wqWC6O8TUsJIcYrP8bb8ZFjSNK3IpAyBdxLo-e8zo,348
|
|
69
|
-
mima/scripts/commands/present_item.py,sha256=bGwHjd9h1ApPuR0f7g55IS4-4-qibaQb0BOnmSKPs5U,1648
|
|
70
|
-
mima/scripts/commands/progress_quest.py,sha256=-Nm7basBFdnixKwf42Xrs6iDROx22WGIDHpAZ0itpGU,359
|
|
71
|
-
mima/scripts/commands/quit_game.py,sha256=BmLlh45K46Mx57j1dE2wWhmmmcb0Y-X5mLrFV1HIfhI,219
|
|
72
|
-
mima/scripts/commands/save_game.py,sha256=yhmXIpnhD89otDmltE7mucdEozHc0LfRSZCSZZO915c,392
|
|
73
|
-
mima/scripts/commands/screen_fade.py,sha256=IrRXSvDa_h_zwl9fSonY4KUlExnPIFv1VR1qnupntBw,1729
|
|
74
|
-
mima/scripts/commands/serial.py,sha256=VwKwWLrmeV9mKf0rbPkU2KZvy3dRxJ6IeSugOhQgHbw,1548
|
|
75
|
-
mima/scripts/commands/set_facing_direction.py,sha256=M_AFJQWgd0nYG7ZPq6BBOmjF4n0jcnBdvyxLboucjZk,567
|
|
76
|
-
mima/scripts/commands/set_spawn_map.py,sha256=eeWIzyuDPDIC3e_Hpyi_CuPhDnbWEXrWSNlSoqKvKZQ,434
|
|
77
|
-
mima/scripts/commands/show_choices.py,sha256=X7YJdNMPyLWykuG_CDkw9C05VG20Za68yjPXbzQXN3E,1382
|
|
78
|
-
mima/scripts/commands/show_dialog.py,sha256=EmfLMweEBjBXZyBZWSD-BMVscfJffaK31hH2bHPVZcU,278
|
|
79
|
-
mima/scripts/commands/take_coins.py,sha256=37jChQBQKFaIBx6-Bvx3xNPlqSq87pvnMtnSWQWU1iI,573
|
|
80
|
-
mima/states/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
81
|
-
mima/states/game_state.py,sha256=-HFshSVKdj59NnKmOkYu9TBQ6SgmAS8KIJ2fDM3KLXo,5013
|
|
82
|
-
mima/states/quest.py,sha256=SoDRIvQdt62-Rx4vcE2I9lgymlKatWqLNdi6qyFLdpA,2365
|
|
83
|
-
mima/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
84
|
-
mima/types/alignment.py,sha256=Oz5nhU2MXClOZyKX47A3wyajyD2HG0DWK3-41uBhnv4,89
|
|
85
|
-
mima/types/blend.py,sha256=0zhU2QjlajZDh3-tvmUCP_gMQsvr_eZPOZ9dqbk3LLU,96
|
|
86
|
-
mima/types/damage.py,sha256=8AgvwiNgcENXwc0v0VCuxxA1w45huSTQdR6S1RW4yj8,584
|
|
87
|
-
mima/types/direction.py,sha256=P7EqLZFacMjf8BmQmgNFlXutKtYxlJ6U5ha3JPyFwjI,1116
|
|
88
|
-
mima/types/gate_color.py,sha256=Mby5_s4EoTIrEZ92gKLBAG9vymF3207RK93EfqGtLuk,86
|
|
89
|
-
mima/types/graphic_state.py,sha256=6pUumsqyvPIVIJrOH4TRfgrHWDlTkNYU1g6Joc9Cx_U,308
|
|
90
|
-
mima/types/keys.py,sha256=kupW0ELZOlIk6jDF76751h_aw9RGKtlS3qmwtzEEMsY,183
|
|
91
|
-
mima/types/mode.py,sha256=rX_eKNJdon60BkUn2DUMyr9wEnsEwmJzI0kf8rPzYLk,233
|
|
92
|
-
mima/types/nature.py,sha256=4tANHg4mzN8O57B-pr0jafikCZkqB83r-pJpDG4CnAw,159
|
|
93
|
-
mima/types/object.py,sha256=D21AAm-GCtxQQM0n741T17MeQPVsVSOHQFtC84VGZoQ,377
|
|
94
|
-
mima/types/start.py,sha256=maeU5GQ9tE8q28vrA7aBGWqmi6mPW4aZTC_Qh7R_zp0,80
|
|
95
|
-
mima/types/terrain.py,sha256=vMITb4PnoEMAWc8VF-g7NeQ5453yLM93q9dcF_5RSfI,130
|
|
96
|
-
mima/types/weapon_slot.py,sha256=kX5mYKgrgn-CcJ-gUzfvTGOVoxLllPRQ92sRjWYoqCg,87
|
|
97
|
-
mima/usables/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
98
|
-
mima/usables/item.py,sha256=avfN9ZNvHfE0CRUP_8ZgkuoxS31n0t2APubLT8EGXf0,883
|
|
99
|
-
mima/usables/weapon.py,sha256=U0h6AZAA3bC8QapFqPcHFZdRKiwIf07xPtgPXUn1Z90,1269
|
|
100
|
-
mima/util/__init__.py,sha256=KMuEDnRsGr32gXED12ZyL1za6iKAuk_Tn8S3mTtpYds,42
|
|
101
|
-
mima/util/colors.py,sha256=5ewsAKG-RBjXb7L0aAxwOxrbGXMUak6I5NCzo-1cYi8,1268
|
|
102
|
-
mima/util/constants.py,sha256=yBb5bamRB-hRaNZYj-tc6Q2glaALcw8R0YdZJtUDLcw,1233
|
|
103
|
-
mima/util/functions.py,sha256=QCy6Q88qVFUx1nV9DEq4uTruzJzJMee5wsnn7LrwD0g,524
|
|
104
|
-
mima/util/input_defaults.py,sha256=0UMEA4ltPCLRo5foOTSRRRMb8YucEJazw2_rqw7d-x0,759
|
|
105
|
-
mima/util/logging.py,sha256=p6-C1ozlCs_sCkmykh_B0NgZtvSkcZXXseE6qA6Zwew,1197
|
|
106
|
-
mima/util/property.py,sha256=o6dEWpIOWxwS_lf6MvYZSjkyI5Amo56P2JIDa7AMaRY,107
|
|
107
|
-
mima/util/runtime_config.py,sha256=6DUvBCMUVV6XHTM0pp3Ppxz5DCO891j8B7sAl9mclH4,3811
|
|
108
|
-
mima/view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
109
|
-
mima/view/camera.py,sha256=cDg6Sp4XjR3uEyk3pZr5O40EXJZuf8FowhBqxeEZba0,1779
|
|
110
|
-
mima/view/scene.py,sha256=tIhCV0LX6tRO5yHtPg9W-6dO78xbulz7qgCT2nOJTbk,10946
|
|
111
|
-
mima_engine-0.1.5.dist-info/METADATA,sha256=5AB-vlQ8chkvlSj_K0TGZCqwt4S0ouLxd-1nSod2pUo,432
|
|
112
|
-
mima_engine-0.1.5.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
113
|
-
mima_engine-0.1.5.dist-info/top_level.txt,sha256=5t1cOdQSaPQ0jWDhKDvDXwpV2XZ_a1GSSFAIvEsG0fQ,5
|
|
114
|
-
mima_engine-0.1.5.dist-info/RECORD,,
|
|
File without changes
|