J'aime bien !

This commit is contained in:
Tipragot 2023-11-04 03:34:55 +01:00
parent d07f7bcc65
commit 867ae7e457

View file

@ -19,19 +19,19 @@ from plugins.coroutine import wait, Coroutine
class Velocity(int): class Velocity(int):
""" """
Definit un composant qui represente la vitesse de l'entité Composant qui represente la vitesse de l'entité.
""" """
class ShieldPos(Vec2): class ShieldPos(Vec2):
""" """
Definit une ressource qui represente la position du joueur (du bouclier) Ressource qui represente la position du joueur (du bouclier).
""" """
class FightBox: class FightBox:
""" """
Definit une ressource qui represente la limite de la boite de combat Ressource qui represente la limite de la boite de combat.
""" """
def __init__( def __init__(
@ -43,21 +43,19 @@ class FightBox:
class ZoneAttack: class ZoneAttack:
""" """
Composant qui marque une entité comme etant une attaque de zone Composant qui marque une entité comme etant une attaque de zone.
""" """
class Life(int): class Life(int):
""" """
Ressource qui correspond a la vie du joueur Ressource qui correspond a la vie du joueur.
""" """
class Hurt: class Hurt:
""" """
Definit le composant marquant les entitées pouvant infligé des degats Definit le composant marquant les entitées pouvant infliger des degats.
*Parametres -> Degats
""" """
def __init__(self, damage: float) -> None: def __init__(self, damage: float) -> None:
@ -66,7 +64,7 @@ class Hurt:
class Hurtable(Enum): class Hurtable(Enum):
""" """
Definit une ressource qui nous dit si l'on peut se faire toucher Ressource qui nous dit si l'on peut se faire toucher.
""" """
TRUE = 0 TRUE = 0
@ -74,17 +72,19 @@ class Hurtable(Enum):
def __initialize_world(world: World): def __initialize_world(world: World):
world.set(ShieldPos(Vec2(render.WIDTH / 2, 750))) """
world.set(FightBox()) TODO
world.set(Life(100)) """
world.set(Hurtable.TRUE) world.set(
ShieldPos(Vec2(render.WIDTH / 2, 750)), FightBox(), Life(100), Hurtable.TRUE
)
world.new_entity().set(Sprite(world[Assets].get_texture("background"))) world.new_entity().set(Sprite(world[Assets].get_texture("background")))
world.new_entity().set( world.new_entity().set(
Sprite( Sprite(
world[Assets].get_texture("shield"), world[Assets].get_texture("shield"),
world[ShieldPos], Vec2(world[ShieldPos]),
1, 1,
origin=Vec2(0.5), origin=Vec2(0.5),
), ),
@ -94,33 +94,41 @@ def __initialize_world(world: World):
def __move(world: World): def __move(world: World):
"""
TODO
"""
held = world[Held] held = world[Held]
s_pos = world[ShieldPos] s_pos = world[ShieldPos]
for entity in world.query(Sprite, Velocity): for entity in world.query(Sprite, Velocity):
for keys in held: for key in held:
if keys == "up": if key in ("up", "z"):
if s_pos.y - 45.5 - entity[Velocity] > world[FightBox].p1[1]: if s_pos.y - 45.5 - entity[Velocity] > world[FightBox].p1[1]:
s_pos.y -= entity[Velocity] s_pos.y -= entity[Velocity]
if keys == "down": if key in ("down", "s"):
if s_pos.y + 45.5 + entity[Velocity] < world[FightBox].p2[1]: if s_pos.y + 45.5 + entity[Velocity] < world[FightBox].p2[1]:
s_pos.y += entity[Velocity] s_pos.y += entity[Velocity]
if keys == "left": if key in ("left", "q"):
if s_pos.x - 37 - entity[Velocity] > world[FightBox].p1[0]: if s_pos.x - 37 - entity[Velocity] > world[FightBox].p1[0]:
s_pos.x -= entity[Velocity] s_pos.x -= entity[Velocity]
if keys == "right": if key in ("right", "d"):
if s_pos.x + 37 + entity[Velocity] < world[FightBox].p2[0]: if s_pos.x + 37 + entity[Velocity] < world[FightBox].p2[0]:
s_pos.x += entity[Velocity] s_pos.x += entity[Velocity]
entity[smooth.Target] = s_pos
entity.set(smooth.Target(s_pos))
def __set_hurtable_hurt(world: World): def __set_hurtable_hurt(world: World):
"""
TODO
"""
world.set(Hurtable.FALSE) world.set(Hurtable.FALSE)
yield wait(2) yield wait(2)
world.set(Hurtable.TRUE) world.set(Hurtable.TRUE)
def __check_hurt(world: World): def __check_hurt(world: World):
"""
TODO
"""
if world[Hurtable] == Hurtable.TRUE: if world[Hurtable] == Hurtable.TRUE:
for entity in world.query(Hurt, Sprite): for entity in world.query(Hurt, Sprite):
position = entity.get(Sprite).position position = entity.get(Sprite).position
@ -145,26 +153,33 @@ def __check_hurt(world: World):
def __defeat(world: World): def __defeat(world: World):
"""
TODO
"""
if world[Life] <= 0: if world[Life] <= 0:
world[CurrentScene] = __new_game_scene() world[CurrentScene] = __new_game_scene()
def __create_zone_attack(world: World): def __create_zone_attack(world: World):
"""
TODO
"""
double = random.randint(1, 10) double = random.randint(1, 10)
locate = random.randint(0, 2) locate = random.randint(0, 2)
if double != 10: if double != 10:
world.new_entity().set( animation = Animation("zone_attack", 60)
entity = world.new_entity()
entity.set(
Sprite( Sprite(
world[Assets].get_texture("error"), world[Assets].get_texture("error"),
Vec2((locate * 413) + world[FightBox].p1[0], world[FightBox].p1[1]), Vec2((locate * 413) + world[FightBox].p1[0], world[FightBox].p1[1]),
1, 1,
), ),
Hurt(10), Hurt(10),
Animation("zone_attack", 60), animation,
ZoneAttack(), ZoneAttack(),
) )
yield wait(1.75) yield animation.wait()
for entity in world.query(ZoneAttack):
entity.destroy() entity.destroy()
else: else:
locate2 = locate locate2 = locate
@ -190,6 +205,9 @@ def __create_zone_attack(world: World):
def __check_key_pressed(world: World): def __check_key_pressed(world: World):
"""
TODO
"""
pressed = world[Pressed] pressed = world[Pressed]
for keys in pressed: for keys in pressed:
if keys == "a": if keys == "a":