Spawn also items
This commit is contained in:
		@@ -44,6 +44,8 @@ TexturePack.ASCII_PACK = TexturePack(
 | 
			
		||||
    FLOOR='.',
 | 
			
		||||
    PLAYER='@',
 | 
			
		||||
    HEDGEHOG='*',
 | 
			
		||||
    HEART='❤',
 | 
			
		||||
    BOMB='o',
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
TexturePack.SQUIRREL_PACK = TexturePack(
 | 
			
		||||
@@ -58,4 +60,6 @@ TexturePack.SQUIRREL_PACK = TexturePack(
 | 
			
		||||
    FLOOR='██',
 | 
			
		||||
    PLAYER='🐿 ️',
 | 
			
		||||
    HEDGEHOG='🦔',
 | 
			
		||||
    HEART='💜',
 | 
			
		||||
    BOMB='💣',
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
@@ -16,6 +16,10 @@ class Item(Entity):
 | 
			
		||||
        self.held = True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Heart(Item):
 | 
			
		||||
    name = "heart"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Bomb(Item):
 | 
			
		||||
    name = "bomb"
 | 
			
		||||
    damage: int = 5
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,8 @@ class Player(FightingEntity):
 | 
			
		||||
            self.max_xp = self.level * 10
 | 
			
		||||
            self.health = self.maxhealth
 | 
			
		||||
            # TODO Remove it, that's only fun
 | 
			
		||||
            self.map.spawn_random_entities(randint(self.level, self.level * 5))
 | 
			
		||||
            self.map.spawn_random_entities(randint(3 * self.level,
 | 
			
		||||
                                                   10 * self.level))
 | 
			
		||||
 | 
			
		||||
    def add_xp(self, xp: int) -> None:
 | 
			
		||||
        """
 | 
			
		||||
 
 | 
			
		||||
@@ -52,7 +52,7 @@ class Game:
 | 
			
		||||
        self.player = Player()
 | 
			
		||||
        self.map.add_entity(self.player)
 | 
			
		||||
        self.player.move(1, 14)
 | 
			
		||||
        self.map.spawn_random_entities(randint(1, 5))
 | 
			
		||||
        self.map.spawn_random_entities(randint(3, 10))
 | 
			
		||||
 | 
			
		||||
    @staticmethod
 | 
			
		||||
    def load_game(filename: str) -> None:
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
#!/usr/bin/env python
 | 
			
		||||
from enum import Enum, auto
 | 
			
		||||
from math import sqrt
 | 
			
		||||
from random import randint
 | 
			
		||||
from random import choice, randint
 | 
			
		||||
from typing import List
 | 
			
		||||
 | 
			
		||||
from dungeonbattle.display.texturepack import TexturePack
 | 
			
		||||
@@ -97,10 +97,9 @@ class Map:
 | 
			
		||||
                tile = self.tiles[y][x]
 | 
			
		||||
                if tile.can_walk():
 | 
			
		||||
                    break
 | 
			
		||||
            from dungeonbattle.entities.monsters import Hedgehog
 | 
			
		||||
            hedgehog = Hedgehog()
 | 
			
		||||
            hedgehog.move(y, x)
 | 
			
		||||
            self.add_entity(hedgehog)
 | 
			
		||||
            entity = choice(Entity.get_all_entity_classes())()
 | 
			
		||||
            entity.move(y, x)
 | 
			
		||||
            self.add_entity(entity)
 | 
			
		||||
 | 
			
		||||
    def tick(self) -> None:
 | 
			
		||||
        """
 | 
			
		||||
@@ -193,6 +192,12 @@ class Entity:
 | 
			
		||||
        """
 | 
			
		||||
        return sqrt(self.distance_squared(other))
 | 
			
		||||
 | 
			
		||||
    @staticmethod
 | 
			
		||||
    def get_all_entity_classes():
 | 
			
		||||
        from dungeonbattle.entities.items import Heart, Bomb
 | 
			
		||||
        from dungeonbattle.entities.monsters import Hedgehog
 | 
			
		||||
        return [Hedgehog, Heart, Bomb]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class FightingEntity(Entity):
 | 
			
		||||
    maxhealth: int
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user