uploading

This commit is contained in:
UndeadMaelys 2021-02-20 12:10:44 +01:00
commit 3a62e6d095
26 changed files with 392 additions and 0 deletions

28
README.md Normal file
View File

@ -0,0 +1,28 @@
UndeadMaelys' Expansion Packs
0 - Core
MANDATORY for all packs to work.
1 - Weapons
ADDS custom weapons (some with custom mechanics):
1 - Daggers (All tiers)
2 - Curved Sword (All tiers)
3 - Katana (All tiers)
4 - Pike (All tiers)
5 - Warhammmer (All tiers)
6 - Great Sword (All tiers)
7 - Great Curved Sword (All tiers)
8 - Great Axe (All tiers)
9 - Halberd (All tiers)
10 - Great Hammer (All tiers)
MODIFIES minecraft base weapons, the Sword and the Axe.
1 - Sword damage values stay the same.
2 - Axe has modified damage and speed values.
ADDS custom magic staves:
1 - Magic Missile Staff
2 - Fire Blast Staff
3 - Ice Shock Staff
4 - Bone Dancer Staff

View File

@ -0,0 +1,5 @@
{
"values": [
"undeadm-core:tick"
]
}

View File

@ -0,0 +1,4 @@
tellraw @a[scores={me-debugging=1..}] "undeadmaelys-core:assigner/player"
scoreboard players add $count me-core_uid 1
scoreboard players operation @s me-core_uid = $count me-core_uid

View File

@ -0,0 +1,4 @@
tellraw @a[scores={me-debugging=1..}] "undeadmaelys-core:assigners"
scoreboard players set $count me-core_uid 0
execute as @a run function undeadmaelys-core:assigner/player

View File

@ -0,0 +1,47 @@
# for debug
tellraw @a[scores={me-debugging=1..}] "undeadm-core:scoreboards"
# auto init clear (no more init during the game!)
data modify storage undeadm-core:init status set value 1
# try to init other modules
#weapons mod
function undeadm-m1:init
### core module
## core system
# for debug!
scoreboard objectives add me-debugging dummy
## tick counter
scoreboard objectives add me-core_tickC dummy
scoreboard players set $tps me-core_tickC 20
## assigners
scoreboard objectives add me-core_uid dummy
scoreboard players set $count me-core_uid 0
## player input checkers
# check for right click
scoreboard objectives add me-core_rc minecraft.used:minecraft.carrot_on_a_stick
# check for shifting
scoreboard objectives add me-core_shift minecraft.custom:minecraft.sneak_time
## custom entity trackers
# to keep custom entities alive for a specific amount of time: timer
scoreboard objectives add me-core_entityT dummy
# to keep custom entities alive for a specific amount of time: maxtime
scoreboard objectives add me-core_entityMT dummy
# to keep custom entities in check for a specific amount of time: control1
scoreboard objectives add me-core_entityC1 dummy

View File

@ -0,0 +1,4 @@
tellraw @a[scores={me-debugging=1..}] "undeadm-core:assigner/player"
scoreboard players add $count me-core_uid 1
scoreboard players operation @s me-core_uid = $count me-core_uid

View File

@ -0,0 +1,18 @@
tellraw @a[scores={me-debugging=1..}] "undeadm-core:scoreboards"
## custom scoresboard systems
# tickC - tick distributor handling
scoreboard players add $current me-core_tickC 1
execute if score $current me-core_tickC = $tps me-core_tickC run scoreboard players operation $current me-core_tickC -= $tps me-core_tickC
# entity maxtime
execute as @e[tag=EntityTimer] run scoreboard players add @s me-core_entityT 1
execute as @e[tag=EntityTimer] if score @s me-core_entityT >= @s me-core_entityC1 run tag @s add Control1
execute as @e[tag=EntityTimer] if score @s me-core_entityT >= @s me-core_entityPI run tag @s add PostInit
execute as @e[tag=EntityTimer] if score @s me-core_entityT >= @s me-core_entityMT run tag @s add Dying
## clean scoreboards (these represent bool checks)
scoreboard players reset @a me-core_rc
scoreboard players reset @a me-core_shift

View File

@ -0,0 +1,17 @@
tellraw @a[scores={me-debugging=1..}] "undeadm-core:tick"
# self init
execute unless data storage undeadm-core:init {status:1} run function undeadm-core:init
## call other modules & optimization tick distribution
# call weapon hsec every half a sec and for tick every tick
execute if score $current me-core_tickC matches 1 run function undeadm-m1:hsec
execute if score $current me-core_tickC matches 11 run function undeadm-m1:hsec
function undeadm-m1:tick
# manage assigners
execute if score $current me-core_tickC matches 10 run function undeadm-core:assigners
# manage scores
function undeadm-core:scoreboards

View File

@ -0,0 +1,30 @@
{
"replace": false,
"values": [
"minecraft:air",
"minecraft:comparator",
"minecraft:grass",
"minecraft:lever",
"minecraft:redstone_wire",
"minecraft:redstone_torch",
"minecraft:redstone_wall_torch",
"minecraft:repeater",
"minecraft:tall_grass",
"minecraft:wall_torch",
"#minecraft:buttons",
"#minecraft:carpets",
"#minecraft:leaves",
"#minecraft:fire",
"#minecraft:flower_pots",
"#minecraft:flowers",
"#minecraft:tall_flowers",
"minecraft:sweet_berry_bush",
"#minecraft:banners",
"#minecraft:portals",
"#minecraft:rails",
"#minecraft:saplings",
"#minecraft:signs",
"#minecraft:underwater_bonemeals",
"#minecraft:wall_post_override"
]
}

View File

@ -0,0 +1,17 @@
{
"replace": false,
"values": [
"minecraft:drowned",
"minecraft:husk",
"minecraft:phantom",
"minecraft:skeleton",
"minecraft:skeleton_horse",
"minecraft:stray",
"minecraft:wither",
"minecraft:wither_skeleton",
"minecraft:zoglin",
"minecraft:zombie",
"minecraft:zombie_villager",
"minecraft:zombified_piglin"
]
}

View File

@ -0,0 +1,14 @@
# reset cd for owner
execute at @s as @a if score @s me-core_uid = @e[limit=1,sort=nearest,tag=MagicMissile] me-core_uid if score @s me-weap_staffCD > $10 me-weap_staffCD run scoreboard players operation @s me-weap_staffCD = $10 me-weap_staffCD
# magic explosion! (little)
particle minecraft:end_rod ^ ^ ^-0.15 0 0 0 0.1 5
# play dead sound to nearby players
playsound undeadm-m1:entity.magic_missile.die neutral @a ~ ~ ~ 0.5 2
# play dead sound to owner
execute as @a if score @s me-core_uid = @e[limit=1,sort=nearest,tag=MagicMissile] me-core_uid at @s run playsound undeadm-m1:entity.magic_missile.die neutral @a ~ ~ ~ 0.5 2
# die
kill @s

View File

@ -0,0 +1,19 @@
tellraw @a[scores={me-debugging=1..}] "undeadm-m1:spawn/magic_missile"
summon minecraft:armor_stand ^ ^ ^1 {Invisible:1b,Marker:1,Tags:["EntityTimer","FireBlast","Init"]}
# link uid to player
execute at @s as @e[tag=Init] store result score @s me-core_uid run scoreboard players get @p me-core_uid
# init variables
execute as @e[tag=Init] run scoreboard players set @s me-core_entityMT 40
execute as @e[tag=Init] run scoreboard players set @s me-core_entityC1 35
execute as @e[tag=Init] run scoreboard players set @s me-core_entityPI 1
## give projectile data
# get rotation from player (so it aims the same way)
execute as @e[tag=FireBlast,tag=Init] if score @s me-core_uid = @p me-core_uid store result entity @s Rotation[0] float 1 run data get entity @p Rotation[0] 1
execute as @e[tag=FireBlast,tag=Init] if score @s me-core_uid = @p me-core_uid store result entity @s Rotation[1] float 1 run data get entity @p Rotation[1] 1
# stop projectile from getting any more init data
execute as @e[tag=Init] run tag @s remove Init

View File

@ -0,0 +1,10 @@
summon minecraft:falling_block ~ ~ ~ {Motion:[0.075d,0.2d,0.075d],Time: 1,BlockState:{Name: "minecraft:fire"}}
summon minecraft:falling_block ~ ~ ~ {Motion:[-0.075d,0.2d,0.075d],Time: 1,BlockState:{Name: "minecraft:fire"}}
summon minecraft:falling_block ~ ~ ~ {Motion:[-0.075d,0.2d,-0.075d],Time: 1,BlockState:{Name: "minecraft:fire"}}
summon minecraft:falling_block ~ ~ ~ {Motion:[0.075d,0.2d,-0.075d],Time: 1,BlockState:{Name: "minecraft:fire"}}
summon minecraft:falling_block ~ ~ ~ {Motion:[0.075d,0.2d,0d],Time: 1,BlockState:{Name: "minecraft:fire"}}
summon minecraft:falling_block ~ ~ ~ {Motion:[-0.075d,0.2d,0d],Time: 1,BlockState:{Name: "minecraft:fire"}}
summon minecraft:falling_block ~ ~ ~ {Motion:[0d,0.2d,0.075d],Time: 1,BlockState:{Name: "minecraft:fire"}}
summon minecraft:falling_block ~ ~ ~ {Motion:[0d,0.2d,-0.075d],Time: 1,BlockState:{Name: "minecraft:fire"}}
summon minecraft:falling_block ~ ~ ~ {Motion:[0d,0.2d,0d],Time: 1,BlockState:{Name: "minecraft:fire"}}

View File

@ -0,0 +1,22 @@
tellraw @a[scores={me-debugging=1..}] "undeadm-m1:spawn/magic_missile"
summon minecraft:armor_stand ^ ^ ^1 {Invisible:1b,Marker:1,Tags:["EntityTimer","MagicMissile","Init"]}
# link uid to player
execute at @s as @e[tag=Init] store result score @s me-core_uid run scoreboard players get @p me-core_uid
# init variables
execute as @e[tag=Init] run scoreboard players set @s me-core_entityMT 100
execute as @e[tag=Init] run scoreboard players set @s me-core_entityC1 2
# set CD equal to entity max time
execute at @s as @e[tag=Init] if score @s me-core_uid = @p me-core_uid run scoreboard players operation @p me-weap_staffCD = @s me-core_entityMT
execute at @s as @e[tag=Init] if score @s me-core_uid = @p me-core_uid run scoreboard players operation @p me-weap_staffCD += $10 me-weap_staffCD
# flavour!
execute as @e[tag=Init] run playsound undeadm-m1:entity.magic_missile.spawn neutral @a ~ ~ ~
playsound undeadm-m1:entity.magic_missile.die neutral @a ~ ~ ~ 1
# stop projectile from getting any more init data
execute as @e[tag=Init] run tag @s remove Init

View File

@ -0,0 +1,43 @@
tellraw @a[scores={me-debugging=1..}] "undeadm-m1:tick/fire_blast"
## FireBlast CUSTOM ENTITY (VIA ARMOR STAND)
#
# Travels 20 blocks -> 10 bps during 2 seconds
# Collision with collisionable blocks
# Doesn't deal contact damage
# On death by collision, summon falling fires
#
# Particles:
# @tick: campfire_cozy_smoke: ~ ~ ~, 0 0 0, 0.0001, 1
# @death: lava: ^ ^ ^-0.15, 0 0 0, 0.1, 50
#
# Sounds:
# @death: entity.fire_blast.die: neutral, @a
## collision
# if no collison, move
execute if block ^ ^ ^0.5 #undeadm-core:no_collision run tp ^ ^ ^0.5
# if collision, dying
execute unless block ^ ^ ^0.5 #undeadm-core:no_collision run tag @s add Dying
# if it hits an entity, starts dying
execute if entity @s[tag=PostInit] if entity @e[gamemode=!spectator,tag=!FireBlast,dx=0,dy=0,dz=0] run tag @s add Dying
## some particles! (unless dying)
# first particle - cool smoke, makes the trail!
execute unless entity @s[tag=Dying] run particle minecraft:campfire_cosy_smoke ~ ~ ~ 0 0 0 0.001 1
## if dying
# reset owner's wand CD to 10 (only if greater than 10)
execute if entity @s[tag=Dying] as @a if score @s me-core_uid = @e[limit=1,sort=nearest,tag=FireBlast] me-core_uid if score @s me-weap_staffCD > $10 me-weap_staffCD run scoreboard players set @s me-weap_staffCD 10
# fire explosion! (little)
execute if entity @s[tag=Dying] run particle minecraft:lava ^ ^ ^-0.15 0 0 0 0.1 50
# summon fires!
execute if entity @s[tag=Dying] run function undeadm-m1:spawn/fire_blast_death
# play dead sound
execute if entity @s[tag=Dying] run playsound undeadm-m1:entity.fire_blast.die neutral @a
# die
execute if entity @s[tag=Dying] run kill @s

View File

@ -0,0 +1,47 @@
tellraw @a[scores={me-debugging=1..}] "undeadm-m1:tick/magic_missile"
## MagicMissile CUSTOM ENTITY (VIA ARMOR STAND)
#
# Travels 30 blocks -> 6 bps during 5 seconds
# Collision with collisionable blocks
# Deals 6 collision damage (potion effect instant damage)
# Can be redirected by the player using the staff
#
# Particles:
# @tick: end_rod: ~ ~ ~, 0 0 0, 0, 2
# @tick: end_rod: ~ ~ ~, 0.05 0.05 0.05, 0.025, 1
# @death: end_rod: ^ ^ ^-0.15, 0 0 0, 0.1, 5
#
# Sounds:
# @tick (every 5 ticks): entity.magic_missile.tick: neutral, @a
# @tick (every 5 ticks): entity.magic_missile.tick: neutral, @s (owner)
# @summon: entity.magic_missile.spawn: neutral, @a
## collision
# if no collison, move
execute if block ^ ^ ^0.3 #undeadm-core:no_collision run tp ^ ^ ^0.3
# if collision, dying
execute unless block ^ ^ ^0.3 #undeadm-core:no_collision run tag @s add Dying
# if it hits an entity, deals damage & dying
execute if entity @s[tag=Control1] as @e[tag=!MagicMissile,dx=0,dy=0,dz=0] run effect give @s minecraft:instant_damage 1 0
execute if entity @s[tag=Control1] if entity @e[tag=!MagicMissile,dx=0,dy=0,dz=0] unless entity @e[gamemode=!spectator,tag=!MagicMissile,dx=0,dy=0,dz=0] run tag @s add Dying
execute if score $current me-core_tickC matches 1 run playsound undeadm-m1:entity.magic_missile.spawn neutral @a ~ ~ ~
execute if score $current me-core_tickC matches 6 run playsound undeadm-m1:entity.magic_missile.spawn neutral @a ~ ~ ~
execute if score $current me-core_tickC matches 11 run playsound undeadm-m1:entity.magic_missile.spawn neutral @a ~ ~ ~
execute if score $current me-core_tickC matches 16 run playsound undeadm-m1:entity.magic_missile.spawn neutral @a ~ ~ ~
execute if score $current me-core_tickC matches 1 as @a if score @s me-core_uid = @e[limit=1,sort=nearest,tag=MagicMissile] me-core_uid at @s run playsound undeadm-m1:entity.magic_missile.spawn neutral @s ~ ~ ~
execute if score $current me-core_tickC matches 6 as @a if score @s me-core_uid = @e[limit=1,sort=nearest,tag=MagicMissile] me-core_uid at @s run playsound undeadm-m1:entity.magic_missile.spawn neutral @s ~ ~ ~
execute if score $current me-core_tickC matches 11 as @a if score @s me-core_uid = @e[limit=1,sort=nearest,tag=MagicMissile] me-core_uid at @s run playsound undeadm-m1:entity.magic_missile.spawn neutral @s ~ ~ ~
execute if score $current me-core_tickC matches 16 as @a if score @s me-core_uid = @e[limit=1,sort=nearest,tag=MagicMissile] me-core_uid at @s run playsound undeadm-m1:entity.magic_missile.spawn neutral @s ~ ~ ~
## some particles! (unless dying)
# first particle - white points at position: form a straight line
execute unless entity @s[tag=Dying] run particle minecraft:end_rod ~ ~ ~ 0 0 0 0 2
# second particle - white points dispersing a lot more openly than the straight line: creates magic leaking effect
execute unless entity @s[tag=Dying] run particle minecraft:end_rod ~ ~ ~ 0.05 0.05 0.05 0.025 1
## if dying
execute if entity @s[tag=Dying] run function undeadm-m1:entity/die/magic_missile

View File

@ -0,0 +1,6 @@
tellraw @a[scores={me-debugging=1..}] "undeadm-m1:fire_blast_figure"
execute positioned ~ ~0.05 ~0.5 run particle minecraft:flame ^ ^ ^ 0.25 0 0 0 1
execute positioned ~ ~0.05 ~-0.5 run particle minecraft:flame ^ ^ ^ 0.25 0 0 0 1
execute positioned ~0.5 ~0.05 ~ run particle minecraft:flame ^ ^ ^ 0 0 0.25 0 1
execute positioned ~-0.5 ~0.05 ~ run particle minecraft:flame ^ ^ ^ 0 0 0.25 0 1

View File

@ -0,0 +1 @@
give @s minecraft:netherite_sword{CustomModelData:2303,HideFlags:0,AttributeModifiers:[{AttributeName:"generic.attack_damage",Name:"",Slot:"mainhand",Amount:5.5,Operation:0,UUID:[I;1040147046,1075008485,1040819647,1563507848]},{AttributeName:"generic.attack_speed",Name:"",Slot:"mainhand",Amount:-2,Operation:0,UUID:[I;1040147046,1075008485,1040819647,1563507848]}],display:{Name:'{"text":"Netherite Dagger","italic":"false"}'}} 1

View File

@ -0,0 +1 @@
give @s minecraft:netherite_sword{CustomModelData:0,HideFlags:0,AttributeModifiers:[{AttributeName:"generic.attack_damage",Name:"a",Slot:"mainhand",Amount:7,Operation:0,UUID:[I;1040147046,1075008485,1040819647,1563507848]},{AttributeName:"generic.attack_speed",Name:"b",Slot:"mainhand",Amount:-2.4,Operation:0,UUID:[I;1040147046,1075008485,1040819647,1563507848]}],display:{Name:'{"text":"Netherite Sword","italic":"false"}'}} 1

View File

@ -0,0 +1 @@
give @s minecraft:carrot_on_a_stick{Damage:1,CustomModelData:2201,HideFlags:0,display:{Name:'{"text":"Magic Missile Staff","italic":"false"}'}} 1

View File

@ -0,0 +1,2 @@
tellraw @a[scores={me-debugging=1..}] "undeadm-m1:hsec"

View File

@ -0,0 +1,5 @@
tellraw @a[scores={me-debugging=1..}] "undeadm-m1:init"
scoreboard objectives add me-m1_staffCD dummy
scoreboard players set $0 me-m1_staffCD 0
scoreboard players set $10 me-m1_staffCD 10

View File

@ -0,0 +1,19 @@
tellraw @a[scores={me-debugging=1..}] "undeadm-m1:tick"
# check for magic staff usage! & clear out CD if present.
execute as @a if score @s me-weap_staffCD > $0 me-weap_staffCD run scoreboard players remove @s me-weap_staffCD 1
# call for use of MAGIC MISSILE
execute as @a[nbt={SelectedItem:{id:"minecraft:carrot_on_a_stick",tag:{CustomModelData:2201}}}] if score @s me-core_rc matches 1 at @s positioned ~ ~1.8 ~ positioned ^-0.5 ^ ^0.75 run function undeadm-m1:use/staff_magic_missile
# call for use of FIRE BLAST
execute as @a[nbt={SelectedItem:{id:"minecraft:carrot_on_a_stick",tag:{CustomModelData:2202}}}] if score @s me-core_rc matches 1 at @s positioned ~ ~1.8 ~ positioned ^-0.5 ^ ^0.75 run function undeadm-m1:use/staff_fire_blast
# do MagicMissile as behaviour
execute as @e[tag=MagicMissile] at @s run function undeadm-m1:entity/tick/magic_missile
# do FireBlast as behaviour
execute as @e[tag=FireBlast] at @s run function undeadm-m1:entity/tick/fire_blast
# draw badass fire around the fire blast mager
execute as @a[nbt={SelectedItem:{id:"minecraft:carrot_on_a_stick",tag:{CustomModelData:2202}}}] if entity @s[nbt={OnGround:1b}] at @s run function undeadm-m1:fire_blast_figure

View File

@ -0,0 +1,9 @@
tellraw @a[scores={me-debugging=1..}] "undeadm-m1:use/magic_missile"
## spawn projectile
execute unless score @s me-weap_staffCD > $0 me-weap_staffCD run function undeadm-m1:spawn/fire_blast
# set CD equal to entity max time + 10
execute unless score @s me-weap_staffCD > $0 me-weap_staffCD run execute at @s as @e[tag=FireBlast] if score @s me-core_uid = @p me-core_uid run scoreboard players operation @p me-weap_staffCD = @s me-core_entityMT
execute unless score @s me-weap_staffCD > $0 me-weap_staffCD run scoreboard players operation @s me-weap_staffCD += $10 me-weap_staffCD

View File

@ -0,0 +1,10 @@
tellraw @a[scores={me-debugging=1..}] "undeadm-m1:use/magic_missile"
## spawn projectile
execute unless score @s me-weap_staffCD > $0 me-weap_staffCD run function undeadm-m1:entity/spawn/magic_missile
## give projectile data
# get rotation from player (so it aims the same way)
execute at @s as @e[tag=MagicMissile] if score @s me-core_uid = @p me-core_uid store result entity @s Rotation[0] float 1 run data get entity @p Rotation[0] 1
execute as @e[tag=MagicMissile] if score @s me-core_uid = @p me-core_uid store result entity @s Rotation[1] float 1 run data get entity @p Rotation[1] 1

9
pack.mcmeta Normal file
View File

@ -0,0 +1,9 @@
{
"pack":{
"pack_format":7,
"description":"
UndeadMaelys' Expansion Packs
Core, Module 1 (Weapons), Module 2 (Generation), Module 3 (Enemies), Module 4 (Systems)
"
}
}