pneuma-pygame/entities/components/combat.py

47 lines
1.4 KiB
Python
Raw Normal View History

from effects.weapon_effects import Weapon
from effects.magic_effects import MagicPlayer
from configs.game.weapon_config import weapon_data
from configs.game.spell_config import magic_data
class CombatHandler:
2023-10-04 02:37:28 +00:00
def __init__(self, animation_player):
self.animation_player = animation_player
# Setup Combat
2023-10-04 02:37:28 +00:00
self.magic_player = MagicPlayer(animation_player)
self.current_attack = None
# Spell and Weapon Rotation
self.weapon_index = 0
self.weapon = list(weapon_data.keys())[self.weapon_index]
self.magic_index = 0
self.magic = list(magic_data.keys())[self.magic_index]
# Damage Timer
self.vulnerable = True
self.hurt_time = None
self.invulnerability_duration = 300
def create_attack_sprite(self, player):
self.current_attack = Weapon(
player, [player.visible_sprites, player.attack_sprites])
def delete_attack_sprite(self):
if self.current_attack:
self.current_attack.kill()
self.current_attack = None
def create_magic_sprite(self, player, style, strength, cost):
if style == 'heal':
self.magic_player.heal(player, strength, cost, [
player.visible_sprites])
if style == 'flame':
self.magic_player.flame(
player, cost, [player.visible_sprites, player.attack_sprites])