Ejemplo n.º 1
0
    def __init__(self, danger_level=0, generation_type=LevelGen.Dungeon, tiles=None,
                 locations=(), custom_creatures=(), creature_spawning=True):
        # Generation
        self.danger_level = danger_level
        self.generation_type = generation_type
        self.custom_creatures = list(custom_creatures)
        self.creature_spawning = creature_spawning
        self.creature_spawn_count = 99

        # Normal usage
        if tiles is None:
            self.tiles = Array2D(default_level_dimensions)
        else:
            self.tiles = tiles

        self.locations = OneToOneMapping(locations)
        self.visible_change = Event()
        self.turn_scheduler = TurnScheduler()
        self.creatures = {}
        self.items = {}

        if self.generation_type.value > LevelGen.ExtendExisting.value:
            self.rows, self.cols = self.tiles.dimensions
        else:
            self.rows, self.cols = default_level_dimensions

        self.is_finalized = False
Ejemplo n.º 2
0
def test_turn_scheduler():
    ts = TurnScheduler()
    ts.add("D", 2)
    ts.add("C", 1)
    ts.add("B", 1)
    ts.add("X", 1)
    ts.add("A", 0)
    ts.remove("X")

    assert ts.advance_time() == ("A", 0)
    ts.addpop("A", 20)
    assert ts.advance_time() == ("B", 1)
    ts.addpop("B", 0)
    assert ts.advance_time() == ("B", 0)
    ts.addpop("B", 0)
    assert ts.advance_time() == ("B", 0)
    ts.addpop("B", 19)
    assert ts.advance_time() == ("C", 0)
    ts.addpop("C", 19)
    assert ts.advance_time() == ("D", 1)
    ts.addpop("D", 18)

    ts.add("E", 18)

    assert ts.advance_time() == ("E", 18)
    ts.addpop("E", 1)
    assert ts.advance_time() == ("D", 0)
    ts.addpop("D", 1)
    assert ts.advance_time() == ("C", 0)
    ts.addpop("C", 1)
    assert ts.advance_time() == ("B", 0)
    ts.addpop("B", 1)
    assert ts.advance_time() == ("A", 0)
    ts.addpop("A", 1)