mima-engine 0.2.0__py3-none-any.whl → 0.2.2__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.2.0"
1
+ __version__ = "0.2.2"
@@ -277,16 +277,19 @@ class PygameUserInput:
277
277
  if event.type == pygame.FINGERDOWN:
278
278
  tap = time.time()
279
279
  for key, area in DEFAULT_TOUCHSCREEN_MAP.items():
280
+
280
281
  if (
281
282
  area[0][0] <= event.x < area[1][0]
282
283
  and area[0][1] <= event.y < area[1][1]
283
284
  ):
284
- if key == K.UP:
285
+ if key == K.P1_UP:
285
286
  self._left_finger_tap_pos = finger_pos
286
287
  if tap - self._last_left_tap < DOUBLE_TAP_SPEED:
287
288
  # print("Left Double Tap")
288
- self.set_key(K.SELECT)
289
+ self.set_key(K.P1_SELECT)
289
290
  self._last_left_tap = tap
291
+ elif key == K.P1_L:
292
+ self.set_key(K.P1_L)
290
293
  else:
291
294
  self.set_key(key)
292
295
  self._right_finger_tap_pos = finger_pos
@@ -346,23 +349,23 @@ class PygameUserInput:
346
349
  # print("Left Single Tap")
347
350
  # # self.set_key(K.START)
348
351
 
349
- self.unset_key(K.SELECT)
350
- self.unset_key(K.RIGHT)
351
- self.unset_key(K.LEFT)
352
- self.unset_key(K.UP)
353
- self.unset_key(K.DOWN)
354
- self.unset_key(K.L)
352
+ self.unset_key(K.P1_SELECT)
353
+ self.unset_key(K.P1_RIGHT)
354
+ self.unset_key(K.P1_LEFT)
355
+ self.unset_key(K.P1_UP)
356
+ self.unset_key(K.P1_DOWN)
357
+ self.unset_key(K.P1_L)
355
358
  # print(
356
359
  # f"Left Finger moved {finger_dist} "
357
360
  # f"({release - self._last_left_tap} s)"
358
361
  # )
359
362
  else:
360
- self.unset_key(K.START)
361
- self.unset_key(K.A)
362
- self.unset_key(K.B)
363
- self.unset_key(K.Y)
364
- self.unset_key(K.X)
365
- self.unset_key(K.R)
363
+ self.unset_key(K.P1_START)
364
+ self.unset_key(K.P1_A)
365
+ self.unset_key(K.P1_B)
366
+ self.unset_key(K.P1_Y)
367
+ self.unset_key(K.P1_X)
368
+ self.unset_key(K.P1_R)
366
369
  # print(f"Right Finger Up: {finger_pos}")
367
370
  # if (
368
371
  # SINGLE_TAP_MIN
@@ -396,45 +399,45 @@ class PygameUserInput:
396
399
  if event.type == pygame.FINGERMOTION:
397
400
  if event.x < 0.5:
398
401
  vd = finger_pos - self._left_finger_tap_pos
399
- self.unset_key(K.RIGHT)
400
- self.unset_key(K.LEFT)
401
- self.unset_key(K.UP)
402
- self.unset_key(K.DOWN)
402
+ self.unset_key(K.P1_RIGHT)
403
+ self.unset_key(K.P1_LEFT)
404
+ self.unset_key(K.P1_UP)
405
+ self.unset_key(K.P1_DOWN)
403
406
  if abs(vd.x) > 2 * abs(vd.y):
404
407
  # Horizontal
405
408
  if vd.x > 5.0:
406
- self.set_key(K.RIGHT)
407
- self.unset_key(K.LEFT)
408
- self.unset_key(K.UP)
409
- self.unset_key(K.DOWN)
409
+ self.set_key(K.P1_RIGHT)
410
+ self.unset_key(K.P1_LEFT)
411
+ self.unset_key(K.P1_UP)
412
+ self.unset_key(K.P1_DOWN)
410
413
  elif vd.x < -5.0:
411
- self.set_key(K.LEFT)
412
- self.unset_key(K.RIGHT)
413
- self.unset_key(K.UP)
414
- self.unset_key(K.DOWN)
414
+ self.set_key(K.P1_LEFT)
415
+ self.unset_key(K.P1_RIGHT)
416
+ self.unset_key(K.P1_UP)
417
+ self.unset_key(K.P1_DOWN)
415
418
  elif abs(vd.x) * 2 < abs(vd.y):
416
419
  # Vertical
417
420
  if vd.y > 5.0:
418
- self.unset_key(K.RIGHT)
419
- self.unset_key(K.LEFT)
420
- self.unset_key(K.UP)
421
- self.set_key(K.DOWN)
421
+ self.unset_key(K.P1_RIGHT)
422
+ self.unset_key(K.P1_LEFT)
423
+ self.unset_key(K.P1_UP)
424
+ self.set_key(K.P1_DOWN)
422
425
  elif vd.y < -5.0:
423
- self.unset_key(K.LEFT)
424
- self.unset_key(K.RIGHT)
425
- self.set_key(K.UP)
426
- self.unset_key(K.DOWN)
426
+ self.unset_key(K.P1_LEFT)
427
+ self.unset_key(K.P1_RIGHT)
428
+ self.set_key(K.P1_UP)
429
+ self.unset_key(K.P1_DOWN)
427
430
  elif abs(vd.x) * 1.05 > abs(vd.y) or abs(vd.x) < 1.05 * abs(
428
431
  vd.y
429
432
  ):
430
433
  if vd.x < 0:
431
- self.set_key(K.LEFT)
434
+ self.set_key(K.P1_LEFT)
432
435
  elif vd.x > 0:
433
- self.set_key(K.RIGHT)
436
+ self.set_key(K.P1_RIGHT)
434
437
  if vd.y < 0:
435
- self.set_key(K.UP)
438
+ self.set_key(K.P1_UP)
436
439
  elif vd.y > 0:
437
- self.set_key(K.DOWN)
440
+ self.set_key(K.P1_DOWN)
438
441
  # else:
439
442
  # vd = finger_pos - self._right_finger_tap_pos
440
443
  # self.unset_key(K.A)
mima/objects/creature.py CHANGED
@@ -75,7 +75,7 @@ class Creature(Dynamic):
75
75
  }
76
76
  self._light = None
77
77
 
78
- self.attributes.speed = 5.0
78
+ # self.attributes.speed = 1.0
79
79
  # self.use_acceleration = True
80
80
  # self.use_friction = True
81
81
  # self.attributes.friction = 0.1
@@ -15,28 +15,29 @@ class ColorGate(Gate):
15
15
  self,
16
16
  px: float,
17
17
  py: float,
18
+ name: str = "ColorGate",
19
+ *,
20
+ color: GateColor,
21
+ tilemap=None,
22
+ dyn_id: int = -1,
18
23
  tileset_name: str,
19
24
  image_name: str,
20
25
  sprite_name: str,
21
26
  graphic_state: GraphicState,
22
27
  facing_direction: Direction,
23
- color: GateColor,
24
- tilemap=None,
25
- dyn_id: int = -1,
26
- name: str = "ColorGate",
27
28
  ):
28
29
  super().__init__(
29
30
  px,
30
31
  py,
31
32
  name,
32
- tileset_name,
33
- image_name,
34
- sprite_name,
35
- graphic_state,
36
- facing_direction,
37
- False,
38
- tilemap,
39
- dyn_id,
33
+ tilemap=tilemap,
34
+ dyn_id=dyn_id,
35
+ tileset_name=tileset_name,
36
+ image_name=image_name,
37
+ sprite_name=sprite_name,
38
+ graphic_state=graphic_state,
39
+ facing_direction=facing_direction,
40
+ bombable=False,
40
41
  )
41
42
  self.color = color
42
43
  self.type = ObjectType.COLOR_GATE
@@ -15,24 +15,28 @@ class Gate(Dynamic):
15
15
  self,
16
16
  px: float,
17
17
  py: float,
18
+ name: str = "Gate",
19
+ *,
20
+ tilemap=None,
21
+ dyn_id: int = 0,
18
22
  tileset_name: str,
19
23
  image_name: str,
20
24
  sprite_name: str,
21
25
  graphic_state: GraphicState,
22
26
  facing_direction: Direction,
23
27
  bombable: bool = False,
24
- tilemap=None,
25
- dyn_id: int = 0,
26
- name: str = "Gate",
27
28
  ):
28
- assert graphic_state in [
29
+ if graphic_state not in (
29
30
  GraphicState.OPEN,
30
31
  GraphicState.CLOSED,
31
32
  GraphicState.LOCKED,
32
- ], (
33
- f"graphic_state of Gate {name}{dyn_id} must be either 'open'"
34
- f", 'closed', or 'locked', but it {graphic_state}"
35
- )
33
+ ):
34
+ msg = (
35
+ f"graphic_state of Gate {name}{dyn_id} must be either 'open'"
36
+ f", 'closed', or 'locked', but it {graphic_state}"
37
+ )
38
+
39
+ raise ValueError(msg)
36
40
 
37
41
  super().__init__(px, py, name, tilemap, dyn_id)
38
42
 
@@ -126,6 +130,9 @@ class Gate(Dynamic):
126
130
  Gate(
127
131
  px=px,
128
132
  py=py,
133
+ name=obj.name,
134
+ tilemap=tilemap,
135
+ dyn_id=obj.object_id,
129
136
  tileset_name=obj.get_string("tileset_name"),
130
137
  image_name=obj.get_string("tileset_name"),
131
138
  sprite_name=obj.get_string("sprite_name"),
@@ -136,9 +143,6 @@ class Gate(Dynamic):
136
143
  obj.get_string("facing_direction", "south").upper()
137
144
  ],
138
145
  bombable=obj.get_bool("bombable"),
139
- tilemap=tilemap,
140
- dyn_id=obj.object_id,
141
- name=obj.name,
142
146
  )
143
147
  ]
144
148
 
@@ -3,6 +3,7 @@ from ..command import Command
3
3
 
4
4
  class CommandCloseDialog(Command):
5
5
  def start(self):
6
- self.engine.dialog_active = False
6
+ for player in self.players:
7
+ self.engine.trigger_dialog(False, player)
7
8
  self.engine.exit_dialog_active = False
8
9
  self.completed = True
@@ -147,12 +147,12 @@ DEFAULT_JOYSTICK_MAP = {
147
147
  }
148
148
 
149
149
  DEFAULT_TOUCHSCREEN_MAP = {
150
- K.UP: [[0, 0], [0.5, 1.0]],
151
- K.L: [[0, 0], [0.0625, 0.1111]],
152
- K.R: [[0.9375, 0], [1.0, 0.1111]],
153
- K.START: [[0.5, 0], [1.0, 0.3]],
154
- K.Y: [[0.5, 0.3], [0.75, 0.5]],
155
- K.X: [[0.75, 0.3], [1.0, 0.5]],
156
- K.B: [[0.5, 0.5], [0.75, 1.0]],
157
- K.A: [[0.75, 0.5], [1.0, 1.0]],
150
+ K.P1_UP: [[0, 0], [0.5, 1.0]],
151
+ K.P1_L: [[0, 0], [0.0625, 0.1111]],
152
+ K.P1_R: [[0.9375, 0], [1.0, 0.1111]],
153
+ K.P1_START: [[0.5, 0], [1.0, 0.3]],
154
+ K.P1_Y: [[0.5, 0.3], [0.75, 0.5]],
155
+ K.P1_X: [[0.75, 0.3], [1.0, 0.5]],
156
+ K.P1_B: [[0.5, 0.5], [0.75, 1.0]],
157
+ K.P1_A: [[0.75, 0.5], [1.0, 1.0]],
158
158
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mima-engine
3
- Version: 0.2.0
3
+ Version: 0.2.2
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,4 +1,4 @@
1
- mima/__init__.py,sha256=Zn1KFblwuFHiDRdRAiRnDBRkbPttWh44jKa5zG2ov0E,22
1
+ mima/__init__.py,sha256=m6kyaNpwBcP1XYcqrelX2oS3PJuOnElOcRdBa9pEb8c,22
2
2
  mima/collision.py,sha256=-XISlbgGK9QI0Z--vm2KEsFx7QsDPrhIu0mM71AuH38,9251
3
3
  mima/engine.py,sha256=xsRtw5TRKDRMLSI342SnxgNdRdX2OZ1FRP4xA55dTls,10459
4
4
  mima/mode_engine.py,sha256=Yidqa1lTNGyNHTMpz4ysIjFRdabQj71QeNTuQDx4PSA,2259
@@ -8,7 +8,7 @@ mima/backend/pygame_assets.py,sha256=TdDmKASk1n6whwh4ONxX41kofVS_iXhsdEzCV5l8NeM
8
8
  mima/backend/pygame_audio.py,sha256=gag9bM-UT8DfYpGDYvKBn8jdnwgFU4NklEs2aNwHhRY,2365
9
9
  mima/backend/pygame_backend.py,sha256=yS_QMkugldd6vzHCoZSF6jtyGp__NkQZbiSiloN4iIs,18470
10
10
  mima/backend/pygame_camera.py,sha256=5ietEyhDryT3SBChvcY_jdsWRi09gcTg5O5mvg_15mM,2059
11
- mima/backend/pygame_events.py,sha256=j825eapDFS0sKJLpRwg4otVXaze7x4qL_jQXlDwCMaM,26477
11
+ mima/backend/pygame_events.py,sha256=orxC6a3EtWKWbTMyKO-9MMrcemw8qrN7y3S6DyLyX-0,26677
12
12
  mima/maps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  mima/maps/template.py,sha256=xBIIzf2o6ATHevfZA5b5XP-o6o71-04u7OAS4847buY,1178
14
14
  mima/maps/tile.py,sha256=ZIPtpVCrX_dnL8SKwobj_0etMCUrQxRL5d04KnEmwNQ,639
@@ -31,7 +31,7 @@ mima/objects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
31
  mima/objects/animated_sprite.py,sha256=RMhd8iALN-CdnmLDS0-WSy0Z0Gie8f2BlZ0nUMFSiA0,6784
32
32
  mima/objects/attribute_effect.py,sha256=zikOSb6-hD6Ecm4L9EyRocTyJQ7IYC0CJ9DCBxbK4cU,650
33
33
  mima/objects/attributes.py,sha256=qqIVjuIXUQDv3qtdoaRDvBnx5oUbjuPdvcGR49fHRwM,3781
34
- mima/objects/creature.py,sha256=0clnIjSRF4D6d9N5fVzUwIOaWWxOPnMAEY1I2YU7SG4,12553
34
+ mima/objects/creature.py,sha256=SbyDRobooNQ6sHiHjjKkaxiBPDPkKIHKYTMHOiTK6TM,12555
35
35
  mima/objects/dynamic.py,sha256=dUKYRczqXob80Vo-YzDVoXfs32gCy3n2ragzi4wWrM8,6362
36
36
  mima/objects/loader.py,sha256=ofJQUeKF6V3R0qPQPNngc4U8FLX8bjGD1mPW__TzQ6A,4374
37
37
  mima/objects/projectile.py,sha256=xsbIcGKru1A2xZ47c8Qfl-8U708go0DPT1KUx-HiQZM,3001
@@ -44,11 +44,11 @@ mima/objects/effects/show_sprite.py,sha256=vR50nWV1LtPrje1NCOllLVMVilI03R9IcpdRC
44
44
  mima/objects/effects/walking_on_grass.py,sha256=kjBNPEapFFWr-_HZX_vgub7QasXvpPJ34rsRQqKxpOQ,1677
45
45
  mima/objects/effects/walking_on_water.py,sha256=9KbeQut852I8O_vwWB5gSf0CnMgoa5tScQijEGLUHR4,1548
46
46
  mima/objects/world/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
- mima/objects/world/color_gate.py,sha256=JPV5tApbHWYFQtdxWd-slCZodw6ucFvkEMT698lEigs,2029
47
+ mima/objects/world/color_gate.py,sha256=FgS98BY10AfVF2a9Eun4nJeuWmr2NNCJCOLjTxirteA,2131
48
48
  mima/objects/world/color_switch.py,sha256=1HN1ZYWAGFuepX4ELREKfsa_1EA4Fx7siPCMxPMEVAk,3400
49
49
  mima/objects/world/container.py,sha256=r6wWoKG_6btGtqlTS_AbxKBJ_-WxSx2ixoDxRHLZleQ,6212
50
50
  mima/objects/world/floor_switch.py,sha256=Tplii1SjbQQq734Sz1d_HMWhWPlsRs-xxk6hvWLiVRg,3453
51
- mima/objects/world/gate.py,sha256=ZUMQ9R25twyt75ao7Te7j1LaZIiAVdpruaEgiK3iweI,5774
51
+ mima/objects/world/gate.py,sha256=B9Enhfe-ICo7yWb9EigFO-2p9L5qyGbdHsdPu_gte7Y,5850
52
52
  mima/objects/world/light_source.py,sha256=0N8wJOnWTeYb-p-N2qD7-opEsdsfBokLvIbRWB0mSxk,4013
53
53
  mima/objects/world/logic_gate.py,sha256=WFwWoF-nQY-1gt1-4hawQkLxWzM1dtKiM2iclchRoe0,5148
54
54
  mima/objects/world/movable.py,sha256=7qxXavKIoKZN3zHTKYsQddfmf6s9U3Qte4dbvfak_KI,12041
@@ -62,7 +62,7 @@ mima/scripts/script_processor.py,sha256=IPl6oFlVAnZ2uibc9X4ffyTNwpendk4cMGZMvZDO
62
62
  mima/scripts/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
63
  mima/scripts/commands/add_quest.py,sha256=r5eCLgAarLJmtMROxLqMTryK5Bfv9wUSqsC8p0RHVkU,387
64
64
  mima/scripts/commands/change_map.py,sha256=I1_sr3iDmXDzupbZIIyt6GkkNq2rv3OF8aB3QqWStno,981
65
- mima/scripts/commands/close_dialog.py,sha256=-yWyEtYA41RsehJ4c-zIXhxIhR25e8GTWN20GuTnT80,207
65
+ mima/scripts/commands/close_dialog.py,sha256=3MBCcUJxIQBbI3kuhJCZS41AaXv6ReWnR6RhwBJ91rk,255
66
66
  mima/scripts/commands/equip_weapon.py,sha256=pKx_i-b48EbrUu0-Ak65W_VH40IuQj_2SfazY-kKztQ,636
67
67
  mima/scripts/commands/give_item.py,sha256=yc6iRTy40TvdEqU6u3q4Bh0JAlHzoFs0ul9Lwt5DQ3c,688
68
68
  mima/scripts/commands/give_resource.py,sha256=J9c0hk__DY4To1BStZ5qmcEOMbAYRefNJT8Kk5WyORE,1805
@@ -111,7 +111,7 @@ mima/util/__init__.py,sha256=KMuEDnRsGr32gXED12ZyL1za6iKAuk_Tn8S3mTtpYds,42
111
111
  mima/util/colors.py,sha256=u4YVTCvSNFBhHaR9dFiMVzvE9fRM1UlW1m8gDa7oDY4,1483
112
112
  mima/util/constants.py,sha256=Sy-6vwAXJf86drHy7IxQLDXtuBbcGhuNU0-YKTUNBFM,1353
113
113
  mima/util/functions.py,sha256=GqAgT4-ATZcCvaaUyEOCeXphUu8xJXmVshAbFPJfOWI,1130
114
- mima/util/input_defaults.py,sha256=XHcoxzo7BPCSUTWK-kKS5OIVjqoBLHRgMWXmPE5VB4U,2617
114
+ mima/util/input_defaults.py,sha256=6S9YlXqtvA5Q1yAFqwicyorCXcy5FEhi3AlyzqpUxAc,2641
115
115
  mima/util/logging.py,sha256=p6-C1ozlCs_sCkmykh_B0NgZtvSkcZXXseE6qA6Zwew,1197
116
116
  mima/util/property.py,sha256=o6dEWpIOWxwS_lf6MvYZSjkyI5Amo56P2JIDa7AMaRY,107
117
117
  mima/util/runtime_config.py,sha256=uRJJ4Tgr6fBv8Oc0w2oBRxWAj0ljTqhy_8Ff1blROVw,9505
@@ -122,7 +122,7 @@ mima/view/mima_mode.py,sha256=fFOcjJzaFK-3OIyqW8nTynKFVNYJcNWOF8hJe2B-t5s,21981
122
122
  mima/view/mima_scene.py,sha256=oGfyM-WLN-eQLILnIbzI0sa160BqsS8dE2UaC2qq2XY,6988
123
123
  mima/view/mima_view.py,sha256=tKLcoNWVwldoqgG3jxhI_jMsFAXzod2csXyEbhub2xI,217
124
124
  mima/view/mima_window.py,sha256=LllwqhKo1D-MoNAXJaiufTi0AacRo_QnVZX8WYUH4ds,4790
125
- mima_engine-0.2.0.dist-info/METADATA,sha256=oscjbQvpywuUoYE9MkygVi5kd5ltZ_LyLWILzyziHNg,487
126
- mima_engine-0.2.0.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
127
- mima_engine-0.2.0.dist-info/top_level.txt,sha256=5t1cOdQSaPQ0jWDhKDvDXwpV2XZ_a1GSSFAIvEsG0fQ,5
128
- mima_engine-0.2.0.dist-info/RECORD,,
125
+ mima_engine-0.2.2.dist-info/METADATA,sha256=sdQq2GGV9rf5MORGh8dXekYkvMWb61aWhqS3KbH3X2c,487
126
+ mima_engine-0.2.2.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
127
+ mima_engine-0.2.2.dist-info/top_level.txt,sha256=5t1cOdQSaPQ0jWDhKDvDXwpV2XZ_a1GSSFAIvEsG0fQ,5
128
+ mima_engine-0.2.2.dist-info/RECORD,,