# Description
This datapack is made for the Dungeon map, and works with conjunction with the 'Dungeons' datapack. It's a library datapack, meaning it have generic implementations of things used by other datapacks.
This library depends on:
 - The *Dungeons Resourcepack* for the textures and sounds
 - The datapack *Minecraft-Ray-Collision-Detector*
 - The datapack *YouKnowWhen lib*: const, damage, minecraft

# Electric Ray
Raycast electric rays that damage entities, gives them slowness and have visuall particles through its path.
## How to use
### Facing ray
- Set max bock travel distance: `scoreobard objectives set blocks dgenerics 10`
- Set how much damage it will do (only discharge rays does damage, this damage ignores armor): `scoreboard players add damage_amount dgenerics 600`
- As the source entity of the ray, at @s, run the desired summon function:
    - *predischarge* is only a visual ray
    - *discharge* does damage to all entities without the tag electric_immunity and has visual particles

### Targeted ray
- Add `electric_ray_target` to the entities where the rays should go
- Set max bock travel distance: `scoreobard objectives set blocks dgenerics 10`
- Set how many it should hit: `scoreobard objectives set targets dgenerics 3`
    - It sorted by nearest
    - The rays only does the effects (particles and/or damage) when they reacht he target
- Do the *facing ray* steps

# Visual Charge
During the time indicated, the entity has electric like particles arround it
## How to use it
- Set the duration of the effect: `scoreboard players set duration dgenerics 100`
- As the targets run the function: `function dg:visually_charged/give`

# Wind Push / Explosive Fire
Launch entities from a center point / with visual particles / and damage for explosive fire
## How to use
1. first init to place the center
2. run apply as the entenries in range

# Player launch
Launch player towards a direction using the ykw:launch library
# How to use
1. Settup the flags and values of the lauch lib
2. Execute as the entities that will be launched: `execute at @s facing entity @e[center_from] eyes rotated ~-180 -25 run function launch:forward`