CrashOverrideX
Sealing v8.1 Subjectively Aware Standard for Hugging Face. Clean Model & Knowledge release.
a3e5f70 | from settings import * | |
| from support import import_image | |
| from entities import Entity | |
| class AllSprites(pygame.sprite.Group): | |
| def __init__(self): | |
| super().__init__() | |
| self.display_surface = pygame.display.get_surface() | |
| self.offset = vector() | |
| self.shadow_surf = import_image('..', 'graphics', 'other', 'shadow') | |
| self.notice_surf = import_image('..', 'graphics', 'ui', 'notice') | |
| def draw(self, player): | |
| self.offset.x = -(player.rect.centerx - WINDOW_WIDTH / 2) | |
| self.offset.y = -(player.rect.centery - WINDOW_HEIGHT / 2) | |
| bg_sprites = [sprite for sprite in self if sprite.z < WORLD_LAYERS['main']] | |
| main_sprites = sorted([sprite for sprite in self if sprite.z == WORLD_LAYERS['main']], key = lambda sprite: sprite.y_sort) | |
| fg_sprites = [sprite for sprite in self if sprite.z > WORLD_LAYERS['main']] | |
| for layer in (bg_sprites, main_sprites, fg_sprites): | |
| for sprite in layer: | |
| if isinstance(sprite, Entity): | |
| self.display_surface.blit(self.shadow_surf, sprite.rect.topleft + self.offset + vector(40,110)) | |
| self.display_surface.blit(sprite.image, sprite.rect.topleft + self.offset) | |
| if sprite == player and player.noticed: | |
| rect = self.notice_surf.get_frect(midbottom = sprite.rect.midtop) | |
| self.display_surface.blit(self.notice_surf, rect.topleft + self.offset) | |
| class BattleSprites(pygame.sprite.Group): | |
| def __init__(self): | |
| super().__init__() | |
| self.display_surface = pygame.display.get_surface() | |
| def draw(self, current_monster_sprite, side, mode, target_index, player_sprites, opponent_sprites): | |
| # get available positions | |
| sprite_group = opponent_sprites if side == 'opponent' else player_sprites | |
| sprites = {sprite.pos_index: sprite for sprite in sprite_group} | |
| monster_sprite = sprites[list(sprites.keys())[target_index]] if sprites else None | |
| for sprite in sorted(self, key = lambda sprite: sprite.z): | |
| if sprite.z == BATTLE_LAYERS['outline']: | |
| if sprite.monster_sprite == current_monster_sprite and not (mode == 'target' and side == 'player') or\ | |
| sprite.monster_sprite == monster_sprite and sprite.monster_sprite.entity == side and mode and mode == 'target': | |
| self.display_surface.blit(sprite.image, sprite.rect) | |
| else: | |
| self.display_surface.blit(sprite.image, sprite.rect) |