Skip to content

Commit 027d1e0

Browse files
committed
Create LightningBlade.dsc
1 parent d295b94 commit 027d1e0

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

LightningBlade.dsc

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
lightning_blade_data:
2+
type: data
3+
debug: false
4+
# For the sake of the color, Denizen escpaing is used, so &ns is # - see https://meta.denizenscript.com/Docs/Search/escaping%20system
5+
lightning_color: &nsFDD023
6+
maximum_distance: 100
7+
explosion:
8+
power: 2
9+
extra_damage: 20
10+
11+
lightning_blade:
12+
type: item
13+
debug: false
14+
material: diamond_sword
15+
display name: <aqua><bold><italic>Lightning Blade
16+
17+
lightning_blade_handler:
18+
type: world
19+
debug: false
20+
events:
21+
after player right clicks block with:lightning_blade:
22+
- ratelimit <player> 5t
23+
- define config <script[lightning_blade_data].data_key[]>
24+
- define maxDistance <[config.maximum_distance]>
25+
- define target <player.target.within[<[maxDistance]>].location.above.if_null[<player.cursor_on_solid[<[maxDistance]>].if_null[null]>]>
26+
- if <[target]> == null:
27+
- stop
28+
- define loc <player.location.above.face[<[target]>]>
29+
- define distance <[loc].distance[<[target]>]>
30+
- define color <[config.lightning_color].unescaped>
31+
- while <[distance]> > 1:
32+
- define nextSpike <util.random.decimal[0.5].to[2]>
33+
- define distance:-:<[nextSpike]>
34+
- define spikeStart <[loc].forward[<[nextSpike]>]>
35+
- playeffect effect:redstone offset:0,0,0 at:<[loc].points_between[<[spikeStart]>].distance[0.2]> special_data:1|<[color]> visibility:<[maxDistance]>
36+
- define spikeLength <util.random.decimal[1].to[4]>
37+
- define spike <[spikeStart].forward[<[spikeLength].div[2]>].random_offset[2]>
38+
- define distance:-:<[spikeLength]>
39+
- define spikeEnd <[spikeStart].forward[<[spikeLength]>]>
40+
- playeffect effect:redstone offset:0,0,0 at:<[spikeStart].points_between[<[spike]>].distance[0.2]> special_data:1|<[color]> visibility:<[maxDistance]>
41+
- playeffect effect:redstone offset:0,0,0 at:<[spike].points_between[<[spikeEnd]>].distance[0.2]> special_data:1|<[color]> visibility:<[maxDistance]>
42+
- define loc <[spikeEnd]>
43+
- define explosion <[config.explosion]>
44+
- explode <[target]> power:<[explosion.power]> fire source:<player>
45+
- hurt <[explosion.extra_damage]> <[target].find.living_entities.within[<[explosion.power].mul[2]>]> source:<player>

0 commit comments

Comments
 (0)