mima-engine 0.1.3__py3-none-any.whl → 0.1.5__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 CHANGED
@@ -1 +1 @@
1
- __version__ = "0.1.3"
1
+ __version__ = "0.1.5"
@@ -10,7 +10,6 @@ import pygame
10
10
  from ..maps.tiled.tiled_map import TiledMap
11
11
  from ..maps.tiled.tiled_template import TiledTemplate
12
12
  from ..maps.tiled.tiled_tileset import TiledTileset
13
- from ..util.colors import WHITE
14
13
 
15
14
  if TYPE_CHECKING:
16
15
  from ..util import RuntimeConfig
@@ -283,7 +282,7 @@ class PygameAssets:
283
282
  if name is None:
284
283
  return None
285
284
  else:
286
- if self.rtc.flags["use_color"]:
285
+ if self.rtc.flags.get("use_color", False):
287
286
  name_color = f"{name}_color"
288
287
  else:
289
288
  name_color = name
mima/objects/creature.py CHANGED
@@ -42,6 +42,7 @@ class Creature(Dynamic):
42
42
  # self.sprite.name = sprite_name
43
43
  # self.sprite.num_frames = 2
44
44
  self.attackable = True
45
+ self.knockable = True
45
46
 
46
47
  self._knock_vx: float = 0.0
47
48
  self._knock_vy: float = 0.0
@@ -198,15 +199,16 @@ class Creature(Dynamic):
198
199
  return False
199
200
 
200
201
  def knock_back(self, vx: float, vy: float, dist: float):
201
- self._knock_vx = vx
202
- self._knock_vy = vy
203
- self._knock_timer = dist
204
- self.invincible_timer = dist + 0.2
205
- # self.solid_vs_dyn = False
206
- self.controllable = False
207
- self.invincible = True
208
- self.sprite.reset()
209
- self.cancel_attack()
202
+ if self.knockable:
203
+ self._knock_vx = vx
204
+ self._knock_vy = vy
205
+ self._knock_timer = dist
206
+ self.invincible_timer = dist + 0.2
207
+ # self.solid_vs_dyn = False
208
+ self.controllable = False
209
+ self.invincible = True
210
+ self.sprite.reset()
211
+ self.cancel_attack()
210
212
 
211
213
  def can_act(self):
212
214
  actable_states = [
mima/view/scene.py CHANGED
@@ -5,17 +5,18 @@ from typing import TYPE_CHECKING, List, Optional
5
5
  from mima.types.nature import Nature
6
6
  from mima.util.constants import TILE_HEIGHT, TILE_WIDTH
7
7
 
8
-
9
8
  from ..collision import (
10
9
  check_object_to_map_collision,
11
10
  check_object_to_object_collision,
12
11
  )
13
12
  from ..types.mode import Mode
13
+ from ..util.colors import BLACK, WHITE, Color
14
14
  from ..util.constants import BIG_FONT_HEIGHT, BIG_FONT_WIDTH
15
15
  from .camera import Camera
16
16
 
17
17
  if TYPE_CHECKING:
18
18
  from mima.objects.loader import ObjectLoader
19
+
19
20
  from ..engine import MimaEngine
20
21
  from ..maps.tilemap import Tilemap
21
22
  from ..objects.dynamic import Dynamic
@@ -72,13 +73,10 @@ class Scene:
72
73
  lines: str,
73
74
  px: float,
74
75
  py: float,
75
- background_color=None,
76
- border_color=None,
76
+ text_color: Optional[Color] = WHITE,
77
+ background_color: Optional[Color] = BLACK,
78
+ border_color: Optional[Color] = WHITE,
77
79
  ):
78
- if background_color is None:
79
- background_color = self.engine.rtc.colors["gb_dark"]
80
- if border_color is None:
81
- border_color = self.engine.rtc.colors["gb_light"]
82
80
 
83
81
  max_line_length = 0
84
82
  num_lines = len(lines)
@@ -102,36 +100,10 @@ class Scene:
102
100
  num_lines * BIG_FONT_HEIGHT + 4,
103
101
  border_color,
104
102
  )
105
- # self.apf.draw_line(
106
- # Vector2D(pos.x - 2, pos.y - 2),
107
- # Vector2D(pos.x - 2, pos.y + num_lines * BIG_FONT_HEIGHT + 1),
108
- # border_color,
109
- # ) # topleft to bottomleft
110
- # self.apf.draw_line(
111
- # Vector2D(pos.x + max_line_length * BIG_FONT_WIDTH + 1, pos.y - 2),
112
- # Vector2D(
113
- # pos.x + max_line_length * BIG_FONT_WIDTH + 1,
114
- # pos.y + num_lines * BIG_FONT_HEIGHT + 1,
115
- # ),
116
- # border_color,
117
- # ) # topright to bottomright
118
- # self.apf.draw_line(
119
- # Vector2D(pos.x - 2, pos.y - 2),
120
- # Vector2D(pos.x + max_line_length * BIG_FONT_WIDTH + 1, pos.y - 2),
121
- # border_color,
122
- # ) # topleft to topright
123
- # self.apf.draw_line(
124
- # Vector2D(pos.x - 2, pos.y + num_lines * BIG_FONT_HEIGHT + 1),
125
- # Vector2D(
126
- # pos.x + max_line_length * BIG_FONT_WIDTH + 1,
127
- # pos.y + num_lines * BGI_FONT_HEIGHT + 1,
128
- # ),
129
- # border_color,
130
- # ) # bottomleft to bottomright
131
103
 
132
104
  for idx, line in enumerate(lines):
133
105
  self.engine.backend.draw_big_text(
134
- line, px, py + idx * BIG_FONT_HEIGHT
106
+ line, px, py + idx * BIG_FONT_HEIGHT, text_color
135
107
  )
136
108
 
137
109
  def draw_map_and_objects(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mima-engine
3
- Version: 0.1.3
3
+ Version: 0.1.5
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,9 +1,9 @@
1
- mima/__init__.py,sha256=XEqb2aiIn8fzGE68Mph4ck1FtQqsR_am0wRWvrYPffQ,22
1
+ mima/__init__.py,sha256=rPSfWgIeq2YWVPyESOAwCBt8vftsTpIkuLAGDEzyRQc,22
2
2
  mima/collision.py,sha256=roHN_U2H5dhhKwvhgBQLArjodhbNlt3fV9KjPs7nGzw,6872
3
3
  mima/engine.py,sha256=t3nbBNfbLeDnIcv7qlKoU0E4zhH58m7YOOfpPtoeUWw,6106
4
4
  mima/scene_engine.py,sha256=CZOMetEQH2UlT39siaco8EVtOHEnv1JvMlqXF7FMYjs,2678
5
5
  mima/backend/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
6
- mima/backend/pygame_assets.py,sha256=9UMNoZ41C8JuMjyI6TXDZwMH6mYMW0Xij0RdkQzl750,11793
6
+ mima/backend/pygame_assets.py,sha256=dXMhZzU3LNCT1n6KHFBSOGO7CTyBMqu6rwGTcuZN610,11772
7
7
  mima/backend/pygame_audio.py,sha256=HsEF321PecqE6DuFy92HiV5YWsQxAtnid_4Tm-VezGQ,2320
8
8
  mima/backend/pygame_backend.py,sha256=vMBVEMCQBkELyxRKzH2OwNxwJUxc3vLhhrQM0zDWo9M,11747
9
9
  mima/backend/pygame_events.py,sha256=w4zYiBlcbZsx2lPRz6wZ4mEvjpVlzvDTGWgcpoosYCY,16248
@@ -29,7 +29,7 @@ mima/objects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
29
  mima/objects/animated_sprite.py,sha256=4ShQBmVCnLd5e6d0QQme0AvfptjaV7Js4SNYr68THbE,6640
30
30
  mima/objects/attribute_effect.py,sha256=zikOSb6-hD6Ecm4L9EyRocTyJQ7IYC0CJ9DCBxbK4cU,650
31
31
  mima/objects/attributes.py,sha256=Qr2bfyVdSBSqFPlEK5BlpqnslXpjfCTP65_wmxSf9Pg,3705
32
- mima/objects/creature.py,sha256=-8odviRzNPQu9grZgdfOjQ6VkvHD_bSyYI4GG8ZNzbc,11101
32
+ mima/objects/creature.py,sha256=D5yaEo3yKRz4qnH_WNJD_ddjFK1w8XQxBJLzKvvof0A,11194
33
33
  mima/objects/dynamic.py,sha256=-u7YRFOYPFgmaXa5Zd8yeX0Ysy92he9a36wxoeaPaLY,5715
34
34
  mima/objects/loader.py,sha256=FGg4389Y_cSCIjVhW2MaJPOY-LYqLQvhEm7w6bzMBSg,4124
35
35
  mima/objects/projectile.py,sha256=EPOeQlHqIy0tKhFY8WBh5AUc6GQPAWByr_F4ZW1sLXg,2506
@@ -107,8 +107,8 @@ mima/util/property.py,sha256=o6dEWpIOWxwS_lf6MvYZSjkyI5Amo56P2JIDa7AMaRY,107
107
107
  mima/util/runtime_config.py,sha256=6DUvBCMUVV6XHTM0pp3Ppxz5DCO891j8B7sAl9mclH4,3811
108
108
  mima/view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
109
  mima/view/camera.py,sha256=cDg6Sp4XjR3uEyk3pZr5O40EXJZuf8FowhBqxeEZba0,1779
110
- mima/view/scene.py,sha256=rxuiaL-z7K9G9tWnUtkgxCdyxLOPszINTvq2DIFpQlU,12118
111
- mima_engine-0.1.3.dist-info/METADATA,sha256=vHldABJEwy7oZBe8xZFRutGZuZckyO5qih7jDq0Otmw,432
112
- mima_engine-0.1.3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
113
- mima_engine-0.1.3.dist-info/top_level.txt,sha256=5t1cOdQSaPQ0jWDhKDvDXwpV2XZ_a1GSSFAIvEsG0fQ,5
114
- mima_engine-0.1.3.dist-info/RECORD,,
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,,