diff --git a/Asset/data/asset/functions/effect/0011.defense_water_debuff/_/end.mcfunction b/Asset/data/asset/functions/effect/0011.defense_water_debuff/_/end.mcfunction new file mode 100644 index 0000000000..229a2011fd --- /dev/null +++ b/Asset/data/asset/functions/effect/0011.defense_water_debuff/_/end.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0011.defense_water_debuff/_/end +# +# Effectの効果の終了時に実行されるfunction +# +# @within tag/function asset:effect/end + +execute if data storage asset:context {id:11} run function asset:effect/0011.defense_water_debuff/end/ diff --git a/Asset/data/asset/functions/effect/0011.defense_water_debuff/_/given.mcfunction b/Asset/data/asset/functions/effect/0011.defense_water_debuff/_/given.mcfunction new file mode 100644 index 0000000000..9d1cfb0416 --- /dev/null +++ b/Asset/data/asset/functions/effect/0011.defense_water_debuff/_/given.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0011.defense_water_debuff/_/given +# +# Effectが付与された時に実行されるfunction +# +# @within tag/function asset:effect/given + +execute if data storage asset:context {id:11} run function asset:effect/0011.defense_water_debuff/given/ diff --git a/Asset/data/asset/functions/effect/0011.defense_water_debuff/_/re-given.mcfunction b/Asset/data/asset/functions/effect/0011.defense_water_debuff/_/re-given.mcfunction new file mode 100644 index 0000000000..b370ad861b --- /dev/null +++ b/Asset/data/asset/functions/effect/0011.defense_water_debuff/_/re-given.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0011.defense_water_debuff/_/re-given +# +# Effectが上書きされた時に実行されるfunction +# +# @within tag/function asset:effect/re-given + +execute if data storage asset:context {id:11} run function asset:effect/0011.defense_water_debuff/re-given/ diff --git a/Asset/data/asset/functions/effect/0011.defense_water_debuff/_/register.mcfunction b/Asset/data/asset/functions/effect/0011.defense_water_debuff/_/register.mcfunction new file mode 100644 index 0000000000..a817aebfc1 --- /dev/null +++ b/Asset/data/asset/functions/effect/0011.defense_water_debuff/_/register.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0011.defense_water_debuff/_/register +# +# +# +# @within tag/function asset:effect/register + +execute if data storage asset:context {id:11} run function asset:effect/0011.defense_water_debuff/register diff --git a/Asset/data/asset/functions/effect/0011.defense_water_debuff/_/remove.mcfunction b/Asset/data/asset/functions/effect/0011.defense_water_debuff/_/remove.mcfunction new file mode 100644 index 0000000000..daf2ecbb84 --- /dev/null +++ b/Asset/data/asset/functions/effect/0011.defense_water_debuff/_/remove.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0011.defense_water_debuff/_/remove +# +# Effectが神器や牛乳によって削除された時に実行されるfunction +# +# @within tag/function asset:effect/remove + +execute if data storage asset:context {id:11} run function asset:effect/0011.defense_water_debuff/remove/ diff --git a/Asset/data/asset/functions/effect/0011.defense_water_debuff/end/.mcfunction b/Asset/data/asset/functions/effect/0011.defense_water_debuff/end/.mcfunction new file mode 100644 index 0000000000..5213282270 --- /dev/null +++ b/Asset/data/asset/functions/effect/0011.defense_water_debuff/end/.mcfunction @@ -0,0 +1,8 @@ +#> asset:effect/0011.defense_water_debuff/end/ +# +# Effectの効果が切れた時の処理 +# +# @within function asset:effect/0011.defense_water_debuff/_/end + +# 削除 + function asset:effect/0011.defense_water_debuff/modifier/remove diff --git a/Asset/data/asset/functions/effect/0011.defense_water_debuff/given/.mcfunction b/Asset/data/asset/functions/effect/0011.defense_water_debuff/given/.mcfunction new file mode 100644 index 0000000000..51cf49b260 --- /dev/null +++ b/Asset/data/asset/functions/effect/0011.defense_water_debuff/given/.mcfunction @@ -0,0 +1,8 @@ +#> asset:effect/0011.defense_water_debuff/given/ +# +# Effectが付与された時の処理 +# +# @within function asset:effect/0011.defense_water_debuff/_/given + +# 付与 + function asset:effect/0011.defense_water_debuff/modifier/add diff --git a/Asset/data/asset/functions/effect/0011.defense_water_debuff/modifier/add.mcfunction b/Asset/data/asset/functions/effect/0011.defense_water_debuff/modifier/add.mcfunction new file mode 100644 index 0000000000..70a90a6e7b --- /dev/null +++ b/Asset/data/asset/functions/effect/0011.defense_water_debuff/modifier/add.mcfunction @@ -0,0 +1,14 @@ +#> asset:effect/0011.defense_water_debuff/modifier/add +# +# +# +# @within function +# asset:effect/0011.defense_water_debuff/given/ +# asset:effect/0011.defense_water_debuff/re-given/ + +# 補正を付与する + data modify storage api: Argument.UUID set value [I;1,3,-1,0] + data modify storage api: Argument.UUID[2] set from storage asset:context originID + execute store result storage api: Argument.Amount double -0.10 run data get storage asset:context Stack 1 + data modify storage api: Argument.Operation set value "multiply" + function api:modifier/defense/water/add diff --git a/Asset/data/asset/functions/effect/0011.defense_water_debuff/modifier/remove.mcfunction b/Asset/data/asset/functions/effect/0011.defense_water_debuff/modifier/remove.mcfunction new file mode 100644 index 0000000000..5b0826f8f1 --- /dev/null +++ b/Asset/data/asset/functions/effect/0011.defense_water_debuff/modifier/remove.mcfunction @@ -0,0 +1,13 @@ +#> asset:effect/0011.defense_water_debuff/modifier/remove +# +# +# +# @within function +# asset:effect/0011.defense_water_debuff/end/ +# asset:effect/0011.defense_water_debuff/re-given/ +# asset:effect/0011.defense_water_debuff/remove/ + +# 補正を付与する + data modify storage api: Argument.UUID set value [I;1,3,-1,0] + data modify storage api: Argument.UUID[2] set from storage asset:context originID + function api:modifier/defense/water/remove diff --git a/Asset/data/asset/functions/effect/0011.defense_water_debuff/re-given/.mcfunction b/Asset/data/asset/functions/effect/0011.defense_water_debuff/re-given/.mcfunction new file mode 100644 index 0000000000..54e17fc38e --- /dev/null +++ b/Asset/data/asset/functions/effect/0011.defense_water_debuff/re-given/.mcfunction @@ -0,0 +1,10 @@ +#> asset:effect/0011.defense_water_debuff/re-given/ +# +# Effectが上書きされた時の処理 +# +# @within function asset:effect/0011.defense_water_debuff/_/re-given + +# 削除 + function asset:effect/0011.defense_water_debuff/modifier/remove +# 付与 + function asset:effect/0011.defense_water_debuff/modifier/add diff --git a/Asset/data/asset/functions/effect/0011.defense_water_debuff/register.mcfunction b/Asset/data/asset/functions/effect/0011.defense_water_debuff/register.mcfunction new file mode 100644 index 0000000000..08dd5ef2f1 --- /dev/null +++ b/Asset/data/asset/functions/effect/0011.defense_water_debuff/register.mcfunction @@ -0,0 +1,39 @@ +#> asset:effect/0011.defense_water_debuff/register +# +# Effectのデータを指定 +# +# @within function asset:effect/0011.defense_water_debuff/_/register + +# ExtendsSafe (boolean) (default = false) + data modify storage asset:effect ExtendsSafe set value true +# ID (int) + data modify storage asset:effect ID set value 11 +# 名前 (TextComponentString) + data modify storage asset:effect Name set value '{"text":"水属性被ダメージ上昇"}' +# 説明文 (TextComponentString[]) + data modify storage asset:effect Description set value ['{"text":"水属性被ダメージが上昇する"}'] +# 効果時間 (int) (default = API || error) + # data modify storage asset:effect Duration set value +# スタック (int) (default = API || 1) + # data modify storage asset:effect Stack set value +# 効果時間の操作方法 (default = API || "replace") + # data modify storage asset:effect DurationOperation set value +# スタックの操作方法 (default = API || "replace") + # data modify storage asset:effect StackOperation set value +# 最大効果時間 (int) (default = 2147483647) + # data modify storage asset:effect MaxDuration set value +# 最大スタック (int) (default = 2147483647) + data modify storage asset:effect MaxStack set value 100 +# 悪い効果か否か (boolean) + data modify storage asset:effect IsBadEffect set value true +# 死亡時のエフェクトの処理 (default = "remove") + # data modify storage asset:effect ProcessOnDied set value +# 消すのに必要なレベル (int) (default = 1) + data modify storage asset:effect RequireClearLv set value 1 +# エフェクトをUIに表示するか (boolean) (default = true) + # data modify storage asset:effect Visible set value +# エフェクトのスタックををUIに表示するか (boolean) (default = true) + # data modify storage asset:effect StackVisible set value + +# フィールド + # data modify storage asset:effect Field set value {} diff --git a/Asset/data/asset/functions/effect/0011.defense_water_debuff/remove/.mcfunction b/Asset/data/asset/functions/effect/0011.defense_water_debuff/remove/.mcfunction new file mode 100644 index 0000000000..27b2b3d849 --- /dev/null +++ b/Asset/data/asset/functions/effect/0011.defense_water_debuff/remove/.mcfunction @@ -0,0 +1,8 @@ +#> asset:effect/0011.defense_water_debuff/remove/ +# +# Effectが削除された時の処理 +# +# @within function asset:effect/0011.defense_water_debuff/_/remove + +# 削除 + function asset:effect/0011.defense_water_debuff/modifier/remove diff --git a/Asset/data/asset/functions/effect/0061.defense_water_debuff/_/register.mcfunction b/Asset/data/asset/functions/effect/0061.defense_water_debuff/_/register.mcfunction new file mode 100644 index 0000000000..d87d7590d8 --- /dev/null +++ b/Asset/data/asset/functions/effect/0061.defense_water_debuff/_/register.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0061.defense_water_debuff/_/register +# +# +# +# @within tag/function asset:effect/register + +execute if data storage asset:context {id:61} run function asset:effect/0061.defense_water_debuff/register \ No newline at end of file diff --git a/Asset/data/asset/functions/effect/0061.defense_water_debuff/register.mcfunction b/Asset/data/asset/functions/effect/0061.defense_water_debuff/register.mcfunction new file mode 100644 index 0000000000..b0b54d35a5 --- /dev/null +++ b/Asset/data/asset/functions/effect/0061.defense_water_debuff/register.mcfunction @@ -0,0 +1,13 @@ +#> asset:effect/0061.defense_water_debuff/register +# +# Effectのデータを指定 +# +# @within function asset:effect/0061.defense_water_debuff/_/register + +# 継承 (int) + data modify storage asset:effect Extends append value 11 + function asset:effect/extends +# ID (int) + data modify storage asset:effect ID set value 61 +# 消すのに必要なレベル (int) (default = 1) + data modify storage asset:effect RequireClearLv set value 2 diff --git a/Asset/data/asset/functions/mob/0323.mini_elder_guardian/death/.mcfunction b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/death/.mcfunction new file mode 100644 index 0000000000..5686ec61e0 --- /dev/null +++ b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/death/.mcfunction @@ -0,0 +1,9 @@ +#> asset:mob/0323.mini_elder_guardian/death/ +# +# Mobの死亡時の処理 +# +# @within function asset:mob/alias/323/death + +# サウンド + playsound minecraft:entity.elder_guardian.death hostile @a ~ ~ ~ 1.5 1.4 + playsound minecraft:entity.elder_guardian.death_land hostile @a ~ ~ ~ 1.5 1 diff --git a/Asset/data/asset/functions/mob/0323.mini_elder_guardian/hurt/.mcfunction b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/hurt/.mcfunction new file mode 100644 index 0000000000..ff7d71e3b2 --- /dev/null +++ b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/hurt/.mcfunction @@ -0,0 +1,12 @@ +#> asset:mob/0323.mini_elder_guardian/hurt/ +# +# Mobのダメージ時の処理 +# +# @within function asset:mob/alias/323/hurt + +# サウンド + playsound minecraft:entity.elder_guardian.hurt hostile @a ~ ~ ~ 2 1.4 + +# HurtTime + data modify storage asset:context this.HurtTime set value 20 + data modify entity @s NoAI set value 0b diff --git a/Asset/data/asset/functions/mob/0323.mini_elder_guardian/register.mcfunction b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/register.mcfunction new file mode 100644 index 0000000000..6ccc1615f0 --- /dev/null +++ b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/register.mcfunction @@ -0,0 +1,80 @@ +#> asset:mob/0323.mini_elder_guardian/register +# +# Mobのデータを指定 +# +# @within function asset:mob/alias/323/register + +# 継承(オプション) + data modify storage asset:mob Extends append value 2003 + function asset:mob/extends +# 他のモブに継承されることを許可するか (boolean) (オプション) + data modify storage asset:mob ExtendsSafe set value true +# 継承されることを前提とした、抽象的なモブであるかどうか(boolean) + data modify storage asset:mob IsAbstract set value false +# ID (int) + data modify storage asset:mob ID set value 323 +# Type (string) Wikiを参照 + data modify storage asset:mob Type set value "Enemy" +# 干渉可能か否か (boolean) + data modify storage asset:mob Interferable set value true +# 名前 (TextComponentString) (オプション) + data modify storage asset:mob Name set value '{"text":"ミニエルダーガーディアン","color":"#5e69d9"}' +# Mobの説明文 (TextComponentString[]) (オプション) + data modify storage asset:mob Lore set value ['{"text":"ちっさいエルダーガーディアン。","color":"white"}','{"text":"小さくても火力は高いし、しっかり呪う能力も健在である。","color":"white"}'] +# 武器 + # メインハンド (Compound(Item)) (オプション) + # data modify storage asset:mob Weapon.Mainhand set value + # オフハンド (Compound(Item)) (オプション) + # data modify storage asset:mob Weapon.Offhand set value +# 武器ドロップ率 ([float, float]) (オプション) + # data modify storage asset:mob WeaponDropChances set value +# 防具 + # 頭 (Compound(Item)) (オプション) + data modify storage asset:mob Armor.Head set value {id:"minecraft:stick",Count:1b,tag:{CustomModelData:20619}} + # 胴 (Compound(Item)) (オプション) + # data modify storage asset:mob Armor.Chest set value + # 脚 (Compound(Item)) (オプション) + # data modify storage asset:mob Armor.Legs set value + # 足 (Compound(Item)) (オプション) + # data modify storage asset:mob Armor.Feet set value +# 防具ドロップ率 ([float, float]) (オプション) + # data modify storage asset:mob ArmorDropChances set value +# 体力 (double) (オプション) + data modify storage asset:mob Health set value 1500 +# 攻撃力 (double) (オプション) + # data modify storage asset:mob AttackDamage set value +# 防御力 (double) (オプション) // 被ダメージがある程度大きい場合1ptにつき0.8%カット、小さい場合1ptにつき約4%カット 20pt以上は頭打ち + # data modify storage asset:mob Defense set value +# 特殊防御力 (double) (オプション) // 4pointにつきダメージを大きく減らす + # data modify storage asset:mob SpecialDefense set value +# 移動速度 (double) (オプション) + data modify storage asset:mob Speed set value 0.08 +# 索敵範囲 (double) (オプション) + # data modify storage asset:mob FollowRange set value +# ノックバック耐性 (double) (オプション) + # data modify storage asset:mob KnockBackResist set value +# 属性倍率 // 1.0fで100% 最低でも25%は軽減されずに入る + # 物理倍率 (float) (オプション) + # data modify storage asset:mob Resist.Physical set value + # 魔法倍率 (float) (オプション) + # data modify storage asset:mob Resist.Magic set value + # 火倍率 (float) (オプション) + # data modify storage asset:mob Resist.Fire set value + # 水倍率 (float) (オプション) + data modify storage asset:mob Resist.Water set value 0.7 + # 雷倍率 (float) (オプション) + data modify storage asset:mob Resist.Thunder set value 1.4 +# フィールド + +# ダメージ + data modify storage asset:mob Field.Damage set value 5.5f +# 呪い(採掘速度低下)クールダウン +# 召喚されてからNtick後にデバフを付与したいため、初期値は0とはしない + data modify storage asset:mob Field.CurseCooldown._ set value 160 + data modify storage asset:mob Field.CurseCooldown.Max set value 800 +# 旋回力 + data modify storage asset:mob Field.Rotate set value 3000 +# 疑似HurtTime + data modify storage asset:mob Field.HurtTime set value -1 +# 攻撃モード + data modify storage asset:mob Field.IsAttackMode set value false diff --git a/Asset/data/asset/functions/mob/0323.mini_elder_guardian/summon/.mcfunction b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/summon/.mcfunction new file mode 100644 index 0000000000..608d813efc --- /dev/null +++ b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/summon/.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0323.mini_elder_guardian/summon/ +# +# Object召喚処理の呼び出し時に実行されるfunction +# +# @within asset:mob/alias/323/summon + +# 元となるEntityを召喚する + summon zombie ~ ~ ~ {Silent:1b,IsBaby:0b,NoAI:1b,Tags:["MobInit","ProcessCommonTag","AlwaysInvisible","AlwaysSlowFall"],DeathLootTable:"minecraft:entities/elder_guardian"} diff --git a/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/.mcfunction b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/.mcfunction new file mode 100644 index 0000000000..a4507f7f84 --- /dev/null +++ b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/.mcfunction @@ -0,0 +1,27 @@ +#> asset:mob/0323.mini_elder_guardian/tick/ +# +# Mobのtick時の処理 +# +# @within asset:mob/alias/323/tick + +# 疑似HurtTimeによるのけぞり管理 + execute store result storage asset:context this.HurtTime int 0.9999999999 run data get storage asset:context this.HurtTime + execute if data storage asset:context this{HurtTime:0} run data modify entity @s NoAI set value 1b + execute if data storage asset:context this{HurtTime:0} run data modify storage asset:context this.HurtTime set value -1 + +# 呪い(採掘速度低下) + execute store result storage asset:context this.CurseCooldown._ int 0.9999999999 run data get storage asset:context this.CurseCooldown._ + execute if data storage asset:context this.CurseCooldown{_:0} run function asset:mob/0323.mini_elder_guardian/tick/event/curse/ + execute if data storage asset:context this.CurseCooldown{_:0} run data modify storage asset:context this.CurseCooldown._ set from storage asset:context this.CurseCooldown.Max + +# 付近にプレイヤーがいたら攻撃待機 + execute if entity @p[gamemode=!spectator,distance=..8] run data modify storage asset:context this.IsAttackMode set value true + +# 攻撃モード + execute if data storage asset:context this{IsAttackMode:true} run function asset:mob/0323.mini_elder_guardian/tick/event/attack/ + +# 遠くに離れたら攻撃モード終了 + execute if data storage asset:context this{IsAttackMode:true} unless entity @p[gamemode=!spectator,distance=..15] run function asset:mob/0323.mini_elder_guardian/tick/event/attack/reset + +# 攻撃中でない && HurtTime中ではない、ならsuper.tick + execute if data storage asset:context this{IsAttackMode:false,HurtTime:-1} run function asset:mob/super.tick diff --git a/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/.mcfunction b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/.mcfunction new file mode 100644 index 0000000000..6545a1b13d --- /dev/null +++ b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/.mcfunction @@ -0,0 +1,26 @@ +#> asset:mob/0323.mini_elder_guardian/tick/event/attack/ +# +# +# +# @within function asset:mob/0323.mini_elder_guardian/tick/ + +# Tick加算 + scoreboard players add @s General.Mob.Tick 1 + +# プレイヤーのターゲティング + execute if score @s General.Mob.Tick matches 0..39 anchored eyes facing entity @p[gamemode=!spectator,distance=..64] eyes positioned ^ ^ ^-100 rotated as @s positioned ^ ^ ^-500 facing entity @s eyes positioned as @s anchored feet positioned ^ ^ ^ run tp @s ^ ^ ^ ~ ~ + execute if score @s General.Mob.Tick matches 40.. anchored eyes facing entity @p[gamemode=!spectator,distance=..64] eyes positioned ^ ^ ^-100 rotated as @s positioned ^ ^ ^-1500 facing entity @s eyes positioned as @s anchored feet positioned ^ ^ ^ run tp @s ^ ^ ^ ~ ~ + +# 照射開始動作 + execute if score @s General.Mob.Tick matches 40 run function asset:mob/0323.mini_elder_guardian/tick/event/attack/start + +# レーザー照射 + execute if score @s General.Mob.Tick matches 40..159 anchored eyes positioned ^ ^ ^ run function asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/ + +# 攻撃終了後、ちょっと泳ぐ + execute if score @s General.Mob.Tick matches 160..240 run function asset:mob/call.m {method:"get_speed"} + execute at @s if score @s General.Mob.Tick matches 160..240 run function asset:mob/call.m {method:"rotate"} + execute at @s if score @s General.Mob.Tick matches 160..240 run function asset:mob/call.m {method:"move"} + +# 攻撃動作終了 + execute if score @s General.Mob.Tick matches 240.. run function asset:mob/0323.mini_elder_guardian/tick/event/attack/reset diff --git a/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/laser/.mcfunction b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/laser/.mcfunction new file mode 100644 index 0000000000..89213751e8 --- /dev/null +++ b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/laser/.mcfunction @@ -0,0 +1,17 @@ +#> asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/ +# +# +# +# @within function asset:mob/0323.mini_elder_guardian/tick/event/attack/ + +# 予告の黄色レーザー + execute if score @s General.Mob.Tick matches 40..100 run function asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/yellow + +# 判定発生開始サウンド + execute if score @s General.Mob.Tick matches 100 run playsound minecraft:entity.guardian.attack hostile @a ~ ~ ~ 2 + +# 攻撃の緑レーザー + execute if score @s General.Mob.Tick matches 100..160 run function asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/green + +# レーザーの音 + execute if score @s General.Mob.Tick matches 100..160 run function asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/sound diff --git a/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/laser/damage.mcfunction b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/laser/damage.mcfunction new file mode 100644 index 0000000000..d2a68f9da4 --- /dev/null +++ b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/laser/damage.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/damage +# +# +# +# @within function asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/green + +# ダメージ設定 + data modify storage api: Argument.Damage set from storage asset:context this.Damage + data modify storage api: Argument.AttackType set value "Magic" + data modify storage api: Argument.ElementType set value "Water" + execute as @e[type=zombie,tag=this,distance=..40,sort=nearest,limit=1] run function api:damage/modifier + function api:damage/ + function api:damage/reset diff --git a/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/laser/green.mcfunction b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/laser/green.mcfunction new file mode 100644 index 0000000000..c8fc15e630 --- /dev/null +++ b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/laser/green.mcfunction @@ -0,0 +1,29 @@ +#> asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/green +# +# +# +# @within function +# asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/ +# asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/green + +#> Private +# @private + #declare score_holder $DamageInterval + +# パーティクル + particle dust 0 1 0 0.5 ^ ^ ^ 0 0 0 0 1 force @a[distance=..30] + particle dust 0 1 0 0.5 ^ ^ ^0.5 0 0 0 0 1 force @a[distance=..30] + particle dust 0 1 0 0.5 ^ ^ ^-0.5 0 0 0 0 1 force @a[distance=..30] + particle dust 0 1 0 0.5 ^ ^ ^0.25 0 0 0 0 1 force @a[distance=..30] + particle dust 0 1 0 0.5 ^ ^ ^-0.25 0 0 0 0 1 force @a[distance=..30] + +# 実行時間を移す + scoreboard players operation $DamageInterval Temporary = @s General.Mob.Tick + +# 数Tickごとにダメージ + scoreboard players operation $DamageInterval Temporary %= $5 Const + execute if score $DamageInterval Temporary matches 0 positioned ~-0.5 ~-0.5 ~-0.5 as @p[tag=!PlayerShouldInvulnerable,dx=0] run function asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/damage + scoreboard players reset $DamageInterval Temporary + +# 壁がなかったり、プレイヤーにあたったりしなければ再帰 + execute if entity @s[distance=..15] positioned ~-0.5 ~-0.5 ~-0.5 unless entity @p[gamemode=!spectator,dx=0] positioned ~0.5 ~0.5 ~0.5 positioned ^ ^ ^1 if block ~ ~ ~ #lib:no_collision/ run function asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/green diff --git a/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/laser/sound.mcfunction b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/laser/sound.mcfunction new file mode 100644 index 0000000000..d2dffaf0d4 --- /dev/null +++ b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/laser/sound.mcfunction @@ -0,0 +1,17 @@ +#> asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/sound +# +# +# +# @within function asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/ + +#> Private +# @private + #declare score_holder $SoundInterval + +# 実行時間を移す + scoreboard players operation $SoundInterval Temporary = @s General.Mob.Tick + +# 数Tickごとにサウンド + scoreboard players operation $SoundInterval Temporary %= $15 Const + execute if score $SoundInterval Temporary matches 0 run playsound entity.guardian.attack hostile @a ~ ~ ~ 2 2 + scoreboard players reset $SoundInterval Temporary diff --git a/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/laser/yellow.mcfunction b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/laser/yellow.mcfunction new file mode 100644 index 0000000000..18f5991ddc --- /dev/null +++ b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/laser/yellow.mcfunction @@ -0,0 +1,17 @@ +#> asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/yellow +# +# +# +# @within function +# asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/ +# asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/yellow + +# パーティクル + particle dust 1 1 0 0.4 ^ ^ ^ 0 0 0 0 1 force @a[distance=..30] + particle dust 1 1 0 0.4 ^ ^ ^0.5 0 0 0 0 1 force @a[distance=..30] + particle dust 1 1 0 0.4 ^ ^ ^-0.5 0 0 0 0 1 force @a[distance=..30] + particle dust 1 1 0 0.4 ^ ^ ^0.25 0 0 0 0 1 force @a[distance=..30] + particle dust 1 1 0 0.4 ^ ^ ^-0.25 0 0 0 0 1 force @a[distance=..30] + +# 壁がなかったり、プレイヤーにあたったりしなければ再帰 + execute if entity @s[distance=..15] positioned ~-0.5 ~-0.5 ~-0.5 unless entity @p[gamemode=!spectator,dx=0] positioned ~0.5 ~0.5 ~0.5 positioned ^ ^ ^1 if block ~ ~ ~ #lib:no_collision/ run function asset:mob/0323.mini_elder_guardian/tick/event/attack/laser/yellow diff --git a/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/reset.mcfunction b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/reset.mcfunction new file mode 100644 index 0000000000..8faef837f3 --- /dev/null +++ b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/reset.mcfunction @@ -0,0 +1,13 @@ +#> asset:mob/0323.mini_elder_guardian/tick/event/attack/reset +# +# +# +# @within function +# asset:mob/0323.mini_elder_guardian/tick/ +# asset:mob/0323.mini_elder_guardian/tick/event/attack/ + +# 戦闘モード終了 + data modify storage asset:context this.IsAttackMode set value false + +# スコアリセット + scoreboard players reset @s General.Mob.Tick diff --git a/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/start.mcfunction b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/start.mcfunction new file mode 100644 index 0000000000..dfa5a50356 --- /dev/null +++ b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/attack/start.mcfunction @@ -0,0 +1,11 @@ +#> asset:mob/0323.mini_elder_guardian/tick/event/attack/start +# +# +# +# @within function asset:mob/0323.mini_elder_guardian/tick/event/attack/ + +# サウンド + playsound minecraft:entity.elder_guardian.ambient hostile @a ~ ~ ~ 1.5 1.4 + +# パーティクル + particle electric_spark ^ ^ ^-0.5 0 0 0 0.5 20 diff --git a/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/curse/.mcfunction b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/curse/.mcfunction new file mode 100644 index 0000000000..7f861be250 --- /dev/null +++ b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/curse/.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/0323.mini_elder_guardian/tick/event/curse/ +# +# +# +# @within function asset:mob/0323.mini_elder_guardian/tick/ + +# 範囲内のプレイヤーにデバフを付与する + execute as @a[gamemode=!spectator,distance=..32] run function asset:mob/0323.mini_elder_guardian/tick/event/curse/check diff --git a/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/curse/check.mcfunction b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/curse/check.mcfunction new file mode 100644 index 0000000000..0fefdf753e --- /dev/null +++ b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/curse/check.mcfunction @@ -0,0 +1,10 @@ +#> asset:mob/0323.mini_elder_guardian/tick/event/curse/check +# +# as player +# +# @within function asset:mob/0323.mini_elder_guardian/tick/event/curse/ + +# 自身に採掘速度低下Lv2がなければデバフを付与 + data modify storage api: Argument.ID set value 76 + function api:entity/mob/effect/get/from_id + execute unless data storage api: Return.Effect run function asset:mob/0323.mini_elder_guardian/tick/event/curse/give diff --git a/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/curse/give.mcfunction b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/curse/give.mcfunction new file mode 100644 index 0000000000..2797c06f36 --- /dev/null +++ b/Asset/data/asset/functions/mob/0323.mini_elder_guardian/tick/event/curse/give.mcfunction @@ -0,0 +1,33 @@ +#> asset:mob/0323.mini_elder_guardian/tick/event/curse/give +# +# +# +# @within function asset:mob/0323.mini_elder_guardian/tick/event/curse/check + +# 演出 + execute at @s run particle elder_guardian ~ ~ ~ 0 0 0 0 1 normal @s + execute at @s run playsound entity.elder_guardian.curse hostile @s ~ ~ ~ 1 1 + +# 難易度値取得 + function api:global_vars/get_difficulty + +# 採掘速度低下Lv2 +# Stack = 3 +# Duration = 200 * Difficulty + data modify storage api: Argument.ID set value 76 + data modify storage api: Argument.Stack set value 3 + execute store result storage api: Argument.Duration int 200 run data get storage api: Return.Difficulty + function api:entity/mob/effect/give + function api:entity/mob/effect/reset + +# Blessless限定 + execute unless predicate api:global_vars/difficulty/min/3_blessless run return fail + +# 水耐性低下 +# Stack = (Difficulty - 2) +# Duration = 200 * Difficulty + data modify storage api: Argument.ID set value 61 + execute store result storage api: Argument.Stack int 0.9999999999 run data get storage api: Return.Difficulty 0.9999999999 + execute store result storage api: Argument.Duration int 200 run data get storage api: Return.Difficulty + function api:entity/mob/effect/give + function api:entity/mob/effect/reset diff --git a/Asset/data/asset/functions/mob/0324.mini_elder_guardian/register.mcfunction b/Asset/data/asset/functions/mob/0324.mini_elder_guardian/register.mcfunction new file mode 100644 index 0000000000..6f02189592 --- /dev/null +++ b/Asset/data/asset/functions/mob/0324.mini_elder_guardian/register.mcfunction @@ -0,0 +1,19 @@ +#> asset:mob/0324.mini_elder_guardian/register +# +# Mobのデータを指定 +# +# @within function asset:mob/alias/324/register + +# 継承 + data modify storage asset:mob Extends append value 323 + function asset:mob/extends +# 他のモブに継承されることを許可するか (boolean) (オプション) + # data modify storage asset:mob ExtendsSafe set value +# 継承されることを前提とした、抽象的なモブであるかどうか(boolean) + data modify storage asset:mob IsAbstract set value false +# ID (int) + data modify storage asset:mob ID set value 324 +# 体力 (double) (オプション) + data modify storage asset:mob Health set value 4000 +# フィールド + data modify storage asset:mob Field.Damage set value 12f diff --git a/Asset/data/asset/functions/mob/alias/323/death.mcfunction b/Asset/data/asset/functions/mob/alias/323/death.mcfunction new file mode 100644 index 0000000000..8d09186aca --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/323/death.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/323/death +# +# Mobの死亡時の処理のエイリアス +# +# @within asset_manager:mob/triggers/death/death.m + +# 本来の処理を呼び出す + function asset:mob/0323.mini_elder_guardian/death/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/323/hurt.mcfunction b/Asset/data/asset/functions/mob/alias/323/hurt.mcfunction new file mode 100644 index 0000000000..194d637132 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/323/hurt.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/323/hurt +# +# Mobのダメージ時の処理のエイリアス +# +# @within asset_manager:mob/triggers/hurt/hurt.m + +# 本来の処理を呼び出す + function asset:mob/0323.mini_elder_guardian/hurt/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/323/register.mcfunction b/Asset/data/asset/functions/mob/alias/323/register.mcfunction new file mode 100644 index 0000000000..ff254dbc91 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/323/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/323/register +# +# Mobのデータ指定処理のエイリアス +# +# @within asset_manager:mob/triggers/summon/register.m + +# 元の登録処理を呼び出す + function asset:mob/0323.mini_elder_guardian/register \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/323/summon.mcfunction b/Asset/data/asset/functions/mob/alias/323/summon.mcfunction new file mode 100644 index 0000000000..d8551ecee0 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/323/summon.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/323/summon +# +# Mob召喚処理のエイリアス +# +# @within asset_manager:mob/triggers/summon/summon.m + +# 本来の処理を呼び出す + function asset:mob/0323.mini_elder_guardian/summon/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/323/tick.mcfunction b/Asset/data/asset/functions/mob/alias/323/tick.mcfunction new file mode 100644 index 0000000000..81845fa24d --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/323/tick.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/323/tick +# +# Tick時処理のエイリアス +# +# @within asset_manager:mob/triggers/tick/tick.m + +# 元のTick処理を呼び出す + function asset:mob/0323.mini_elder_guardian/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/mob/alias/324/register.mcfunction b/Asset/data/asset/functions/mob/alias/324/register.mcfunction new file mode 100644 index 0000000000..2d3f215232 --- /dev/null +++ b/Asset/data/asset/functions/mob/alias/324/register.mcfunction @@ -0,0 +1,8 @@ +#> asset:mob/alias/324/register +# +# Mobのデータ指定処理のエイリアス +# +# @within asset_manager:mob/triggers/summon/register.m + +# 元の登録処理を呼び出す + function asset:mob/0324.mini_elder_guardian/register \ No newline at end of file diff --git a/Asset/data/asset/tags/functions/effect/end.json b/Asset/data/asset/tags/functions/effect/end.json index 1a5597bf84..029c4af6d4 100644 --- a/Asset/data/asset/tags/functions/effect/end.json +++ b/Asset/data/asset/tags/functions/effect/end.json @@ -1,5 +1,6 @@ { "values": [ + "asset:effect/0011.defense_water_debuff/_/end", "asset:effect/0348.cool_feeling/_/end", "asset:effect/0356.dolphin_blessing/_/end", "asset:effect/0302.safety_check_complete/_/end", diff --git a/Asset/data/asset/tags/functions/effect/given.json b/Asset/data/asset/tags/functions/effect/given.json index e777db47b0..909c3b15e5 100644 --- a/Asset/data/asset/tags/functions/effect/given.json +++ b/Asset/data/asset/tags/functions/effect/given.json @@ -1,5 +1,6 @@ { "values": [ + "asset:effect/0011.defense_water_debuff/_/given", "asset:effect/0348.cool_feeling/_/given", "asset:effect/0302.safety_check_complete/_/given", "asset:effect/0346.lunatic_time/_/given", diff --git a/Asset/data/asset/tags/functions/effect/re-given.json b/Asset/data/asset/tags/functions/effect/re-given.json index 344d5ff7a5..ba380c2454 100644 --- a/Asset/data/asset/tags/functions/effect/re-given.json +++ b/Asset/data/asset/tags/functions/effect/re-given.json @@ -1,5 +1,6 @@ { "values": [ + "asset:effect/0011.defense_water_debuff/_/re-given", "asset:effect/0348.cool_feeling/_/re-given", "asset:effect/0352.kitsunebi/_/re-given", "asset:effect/0345.topaz_protection/_/re-given", diff --git a/Asset/data/asset/tags/functions/effect/register.json b/Asset/data/asset/tags/functions/effect/register.json index 6b9eed8b15..4e6e5a58cf 100644 --- a/Asset/data/asset/tags/functions/effect/register.json +++ b/Asset/data/asset/tags/functions/effect/register.json @@ -1,5 +1,7 @@ { "values": [ + "asset:effect/0061.defense_water_debuff/_/register", + "asset:effect/0011.defense_water_debuff/_/register", "asset:effect/0348.cool_feeling/_/register", "asset:effect/0356.dolphin_blessing/_/register", "asset:effect/0302.safety_check_complete/_/register", diff --git a/Asset/data/asset/tags/functions/effect/remove.json b/Asset/data/asset/tags/functions/effect/remove.json index ab5facfcfd..593fa0f76a 100644 --- a/Asset/data/asset/tags/functions/effect/remove.json +++ b/Asset/data/asset/tags/functions/effect/remove.json @@ -1,5 +1,6 @@ { "values": [ + "asset:effect/0011.defense_water_debuff/_/remove", "asset:effect/0348.cool_feeling/_/remove", "asset:effect/0356.dolphin_blessing/_/remove", "asset:effect/0302.safety_check_complete/_/remove",