コード例 #1
0
 def apply_player_collision(self, game_state: GameState, projectile: Projectile):
     deal_damage_to_player(game_state, 1, DamageType.MAGIC, None)
     game_state.player_state.gain_buff_effect(get_buff_effect(BuffType.ENEMY_GOBLIN_WARLOCK_BURNT), Millis(5000))
     game_state.game_world.visual_effects.append(
         VisualCircle((180, 50, 50), game_state.game_world.player_entity.get_center_position(),
                      25, 50, Millis(100), 0))
     projectile.has_collided_and_should_be_removed = True
コード例 #2
0
 def apply_wall_collision(self, game_state: GameState,
                          projectile: Projectile):
     game_state.game_world.visual_effects.append(
         VisualCircle(self._color,
                      projectile.world_entity.get_center_position(), 13, 26,
                      Millis(100), 0))
     projectile.has_collided_and_should_be_removed = True
コード例 #3
0
 def apply_player_collision(self, game_state: GameState, projectile: Projectile):
     damage = random.randint(self._min_damage, self._max_damage)
     deal_damage_to_player(game_state, damage, DamageType.MAGIC, None)
     game_state.game_world.visual_effects.append(
         VisualCircle(self._color, game_state.game_world.player_entity.get_center_position(),
                      25, 35, Millis(100), 0))
     projectile.has_collided_and_should_be_removed = True
コード例 #4
0
 def apply_player_summon_collision(self, npc: NonPlayerCharacter,
                                   game_state: GameState,
                                   projectile: Projectile):
     damage = random.randint(self._min_damage, self._max_damage)
     deal_npc_damage_to_npc(game_state, npc, damage)
     game_state.game_world.visual_effects.append(
         VisualCircle(self._color, npc.world_entity.get_center_position(),
                      25, 35, Millis(100), 0))
     projectile.has_collided_and_should_be_removed = True
コード例 #5
0
 def apply_player_summon_collision(self, npc: NonPlayerCharacter,
                                   game_state: GameState,
                                   projectile: Projectile):
     deal_npc_damage_to_npc(game_state, npc, 1)
     npc.gain_buff_effect(
         get_buff_effect(BuffType.ENEMY_GOBLIN_WARLOCK_BURNT), Millis(5000))
     game_state.visual_effects.append(
         VisualCircle((180, 50, 50), npc.world_entity.get_center_position(),
                      25, 50, Millis(100), 0))
     projectile.has_collided_and_should_be_removed = True
コード例 #6
0
 def apply_enemy_collision(self, npc: NonPlayerCharacter, game_state: GameState, projectile: Projectile):
     damage_was_dealt = deal_player_damage_to_enemy(game_state, npc, 1, DamageType.MAGIC)
     if damage_was_dealt:
         npc.gain_buff_effect(get_buff_effect(BUFF_TYPE), DEBUFF_DURATION)
         victim_center_pos = npc.world_entity.get_center_position()
         visual_effect_pos = (victim_center_pos[0] - ENTANGLING_ROOTS_SIZE[0] // 2,
                              victim_center_pos[1] - ENTANGLING_ROOTS_SIZE[1] // 2)
         debuff_visual_effect = VisualSprite(Sprite.DECORATION_ENTANGLING_ROOTS_EFFECT, visual_effect_pos,
                                             DEBUFF_DURATION, npc.world_entity)
         game_state.game_world.visual_effects.append(debuff_visual_effect)
         play_sound(SoundId.ABILITY_ENTANGLING_ROOTS_HIT)
     projectile.has_collided_and_should_be_removed = True
コード例 #7
0
 def apply_enemy_collision(self, npc: NonPlayerCharacter,
                           game_state: GameState, projectile: Projectile):
     damage_amount: float = MIN_DMG + random.random() * (MAX_DMG - MIN_DMG)
     deal_player_damage_to_enemy(game_state, npc, damage_amount,
                                 DamageType.MAGIC)
     _create_visual_splash(npc.world_entity.get_center_position(),
                           game_state)
     has_burn_upgrade = game_state.player_state.has_upgrade(
         HeroUpgradeId.ABILITY_FIREBALL_BURN)
     if has_burn_upgrade:
         npc.gain_buff_effect(get_buff_effect(BUFF_TYPE),
                              FIREBALL_TALENT_BURN_DURATION)
     play_sound(SoundId.ABILITY_FIREBALL_HIT)
     projectile.has_collided_and_should_be_removed = True
コード例 #8
0
 def apply_wall_collision(self, game_state: GameState,
                          projectile: Projectile):
     _create_visual_splash(projectile.world_entity.get_center_position(),
                           game_state)
     play_sound(SoundId.ABILITY_FIREBALL_HIT)
     projectile.has_collided_and_should_be_removed = True