Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
6d2302f
バニラ攻撃を完全になかったことに
Lapis-LJA Mar 17, 2026
8be7f75
横並びカボチャ転がし開始時にステップを行い距離をとるように
Lapis-LJA Mar 17, 2026
8b28972
4方向からのカボチャ転がしスキルの大幅ディレクトリ構造整理
Lapis-LJA Mar 17, 2026
15c3170
クイズクリア時に削れるダメージにmodify_healthを使うように
Lapis-LJA Mar 17, 2026
d6daab4
クイズの発生間隔を一定に
Lapis-LJA Mar 17, 2026
1657433
移動速度上昇の処理を削除
Lapis-LJA Mar 17, 2026
ad1c4eb
横並びカボチャ転がしの発生速度を調整
Lapis-LJA Mar 17, 2026
44a70ac
横並びカボチャ転がし開始時に笑うように
Lapis-LJA Mar 17, 2026
6bb1e74
各方向から転がすやつのハード以下の処理のコメント等を調整
Lapis-LJA Mar 17, 2026
38c5702
クイズクリア時にボスバーが更新されていない問題を修正
Lapis-LJA Mar 17, 2026
d0c8bc7
DPSチェックを実装
Lapis-LJA Mar 19, 2026
303f4f5
4方向に出るように
Lapis-LJA Mar 19, 2026
c038f57
召喚されてからの猶予を延長
Lapis-LJA Mar 19, 2026
9341d03
カボチャの雨の無敵化処理をシステム的な無敵に変更
Lapis-LJA Mar 19, 2026
695aaff
lib: Argumentのリセット漏れを修正
Lapis-LJA Mar 20, 2026
3d0c755
DPSチェックカボチャ召喚処理を短縮
Lapis-LJA Mar 20, 2026
5659cee
DPSチェックの音量調整
Lapis-LJA Mar 20, 2026
8740b9f
デバッグコマンドが残っているのを修正
Lapis-LJA Mar 20, 2026
df5d9ad
横並びカボチャ転がしで近くプレイヤーがいなければモーションしないように
Lapis-LJA Mar 20, 2026
42efd4f
デバッグ用処理をコメントアウト
Lapis-LJA Mar 20, 2026
bb643a0
未使用処理を削除
Lapis-LJA Apr 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
#declare tag 1N.GiantPumpkin2
#declare tag 1N.GiantPumpkin2.LeftRotate
#declare tag 1N.Missile
#declare tag 1N.DPSCheck
#declare tag 1N.Random
#declare tag 1N.Random2
#declare tag 1N.Hurt
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@
tp @s ~ ~ ~ facing entity @p[gamemode=!spectator]

# スコアをセットする
scoreboard players set @s General.Mob.Tick -30
scoreboard players set @s General.Mob.Tick -80
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
execute as @e[type=zombie,scores={MobID=224},distance=..128] run function api:mob/remove

# カボチャが召喚するオブジェクトも抹消する
kill @e[type=item_display,scores={ObjectID=2031..2036},distance=..50]
kill @e[type=item_display,scores={ObjectID=2031..2036},distance=..128]
kill @e[type=item_display,scores={ObjectID=2039},distance=..128]

# スポーンマーカーをkill
kill @e[type=marker,tag=1N.SpawnMarker]
kill @e[type=marker,tag=1N.SpawnMarker,distance=..128]
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
# 体力 (double) (オプション)
data modify storage asset:mob Health set value 32000
# 攻撃力 (double) (オプション)
# data modify storage asset:mob AttackDamage set value 1
data modify storage asset:mob AttackDamage set value 0
# 防御力 (double) (オプション) // 被ダメージがある程度大きい場合1ptにつき0.8%カット、小さい場合1ptにつき約4%カット 20pt以上は頭打ち
# data modify storage asset:mob Defense set value 0
# 特殊防御力 (double) (オプション) // 4pointにつきダメージを大きく減らす
Expand All @@ -69,8 +69,15 @@

# フィールド
# 各スキルのダメージ設定
data modify storage asset:mob Field.Damage.Vanilla set value 14.0f
data modify storage asset:mob Field.Damage.Giant.Neutral set value {Beginning:8f,Clash:15f}
data modify storage asset:mob Field.Damage.Giant.Penalty set value {Beginning:8f,Clash:22.5f}
data modify storage asset:mob Field.Damage.Missile set value 8.0f
data modify storage asset:mob Field.Damage.Rain set value 12.0f
data modify storage asset:mob Field.Damage.DPSCheck set value 9999.9f

# クイズの間隔
data modify storage asset:mob Field.QuizInterval._ set value 3
data modify storage asset:mob Field.QuizInterval.Max set value 4

# DPSチェックまでの猶予
data modify storage asset:mob Field.DPSCheck set value 14400
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
# @within asset:mob/alias/59/summon

# 元となるMobを召喚する
summon zombie ~ ~ ~ {DeathTime:19s,Silent:1b,Tags:["MobInit","ProcessCommonTag","AlwaysInvisible","AntiBurn","AntiVoid"],DeathLootTable:"empty"}
summon zombie ~ ~ ~ {DeathTime:19s,Silent:1b,Tags:["MobInit","ProcessCommonTag","AlwaysInvisible","AntiBurn","AntiVoid","AntiFallDamage"],DeathLootTable:"empty"}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
# クイズの時以外のみ表示する
execute if entity @s[tag=!1N.DisableParticle] run particle falling_dust blue_terracotta ~ ~0.5 ~ 0.35 0 0.35 0 2 normal @a

# Blessless以上の場合のみDPSチェックのカウントダウンを進める
execute if predicate api:global_vars/difficulty/min/3_blessless store result storage asset:context this.DPSCheck int 0.9999999999 run data get storage asset:context this.DPSCheck

# スキル選択
execute if entity @s[scores={General.Mob.Tick=0}] run function asset:mob/0059.jack_o_lantern/tick/skill_select

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:mob/0059.jack_o_lantern/tick/skill/common/invulnerable/end
#
#
#
# @within function asset:mob/0059.jack_o_lantern/tick/skill/**

data modify entity @s Invulnerable set value 0b
tag @s remove Uninterferable
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:mob/0059.jack_o_lantern/tick/skill/common/invulnerable/start
#
#
#
# @within function asset:mob/0059.jack_o_lantern/tick/skill/**

data modify entity @s Invulnerable set value 1b
tag @s add Uninterferable
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#> asset:mob/0059.jack_o_lantern/tick/skill/dps_check/
#
#
#
# @within function asset:mob/0059.jack_o_lantern/tick/skill_branch

# 1tick目にやること
execute if score @s General.Mob.Tick matches 0 run function asset:mob/0059.jack_o_lantern/tick/skill/dps_check/first_tick

# 確率で笑う
execute if predicate lib:random_pass_per/1 if predicate lib:random_pass_per/30 run playsound entity.witch.celebrate hostile @a ~ ~ ~ 1 2 0

# 常に最寄りのプレイヤーを見る
execute at @s facing entity @p[gamemode=!spectator,distance=..64] feet rotated ~ 0 run tp @s ~ ~ ~ ~ ~

# 終了
execute if score @s General.Mob.Tick matches 400.. run function asset:mob/0059.jack_o_lantern/tick/skill/reset
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#> asset:mob/0059.jack_o_lantern/tick/skill/dps_check/first_tick
#
#
#
# @within function asset:mob/0059.jack_o_lantern/tick/skill/dps_check/

# 中央に戻る
execute positioned as @e[type=marker,tag=1N.SpawnMarker,distance=..64,limit=1] run tp @s ~ ~ ~

# 演出
execute at @s run playsound entity.witch.celebrate hostile @a ~ ~ ~ 1 2 0

# カボチャ召喚
execute at @s rotated 000 0 positioned ^ ^ ^-33 run function asset:mob/0059.jack_o_lantern/tick/skill/dps_check/summon
execute at @s rotated 090 0 positioned ^ ^ ^-33 run function asset:mob/0059.jack_o_lantern/tick/skill/dps_check/summon
execute at @s rotated 180 0 positioned ^ ^ ^-33 run function asset:mob/0059.jack_o_lantern/tick/skill/dps_check/summon
execute at @s rotated 270 0 positioned ^ ^ ^-33 run function asset:mob/0059.jack_o_lantern/tick/skill/dps_check/summon

# NoAI化
data modify entity @s NoAI set value 1b
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#> asset:mob/0059.jack_o_lantern/tick/skill/dps_check/summon
#
#
#
# @within function asset:mob/0059.jack_o_lantern/tick/skill/dps_check/first_tick

data modify storage api: Argument.ID set value 2039
data modify storage api: Argument.FieldOverride.Damage set from storage asset:context this.Damage.DPSCheck
execute store result storage api: Argument.FieldOverride.MobUUID int 1 run scoreboard players get @s MobUUID
function api:object/summon
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,38 @@

# 最初に鈍足を自身に付与し、プレイヤーの方を向く
execute if entity @s[scores={General.Mob.Tick=0}] run function asset:mob/0059.jack_o_lantern/tick/skill/giant_pumpkin1/first_tick
execute if entity @s[scores={General.Mob.Tick=0..19}] facing entity @p[gamemode=!spectator] eyes rotated ~ 0 run tp @s ~ ~ ~ ~ ~

# NoAIになるまでRotation[0]固定
execute if entity @s[scores={General.Mob.Tick=1..2}] run data modify entity @s Rotation[0] set from storage asset:context this.SavedRotation0

# 着地するまで絶対にスコアを1で固定する
execute if entity @s[scores={General.Mob.Tick=2}] if data entity @s {OnGround:0b} run scoreboard players set @s General.Mob.Tick 1

# 着地後はNoAIになる
execute if entity @s[scores={General.Mob.Tick=2}] run data modify entity @s NoAI set value 1b

# 前方に巨大カボチャを召喚

# パターン1 中央スタート
execute if entity @s[tag=1N.GiantPumpkin1.Center,scores={General.Mob.Tick=20}] rotated ~ 0 positioned ^ ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Center,scores={General.Mob.Tick=30}] rotated ~ 0 positioned ^3 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Center,scores={General.Mob.Tick=30}] rotated ~ 0 positioned ^-3 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Center,scores={General.Mob.Tick=40}] rotated ~ 0 positioned ^6 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Center,scores={General.Mob.Tick=40}] rotated ~ 0 positioned ^-6 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Center,scores={General.Mob.Tick=10}] rotated ~ 0 positioned ^ ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Center,scores={General.Mob.Tick=20}] rotated ~ 0 positioned ^3 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Center,scores={General.Mob.Tick=20}] rotated ~ 0 positioned ^-3 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Center,scores={General.Mob.Tick=30}] rotated ~ 0 positioned ^6 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Center,scores={General.Mob.Tick=30}] rotated ~ 0 positioned ^-6 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral

# パターン2 左スタート
execute if entity @s[tag=1N.GiantPumpkin1.Left,scores={General.Mob.Tick=20}] rotated ~ 0 positioned ^6 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Left,scores={General.Mob.Tick=25}] rotated ~ 0 positioned ^3 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Left,scores={General.Mob.Tick=30}] rotated ~ 0 positioned ^0 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Left,scores={General.Mob.Tick=35}] rotated ~ 0 positioned ^-3 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Left,scores={General.Mob.Tick=40}] rotated ~ 0 positioned ^-6 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Left,scores={General.Mob.Tick=10}] rotated ~ 0 positioned ^6 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Left,scores={General.Mob.Tick=15}] rotated ~ 0 positioned ^3 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Left,scores={General.Mob.Tick=20}] rotated ~ 0 positioned ^0 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Left,scores={General.Mob.Tick=25}] rotated ~ 0 positioned ^-3 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Left,scores={General.Mob.Tick=30}] rotated ~ 0 positioned ^-6 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral

# パターン3 右スタート
execute if entity @s[tag=1N.GiantPumpkin1.Right,scores={General.Mob.Tick=20}] rotated ~ 0 positioned ^-6 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Right,scores={General.Mob.Tick=25}] rotated ~ 0 positioned ^-3 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Right,scores={General.Mob.Tick=30}] rotated ~ 0 positioned ^0 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Right,scores={General.Mob.Tick=35}] rotated ~ 0 positioned ^3 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Right,scores={General.Mob.Tick=40}] rotated ~ 0 positioned ^6 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Right,scores={General.Mob.Tick=10}] rotated ~ 0 positioned ^-6 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Right,scores={General.Mob.Tick=15}] rotated ~ 0 positioned ^-3 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Right,scores={General.Mob.Tick=20}] rotated ~ 0 positioned ^0 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Right,scores={General.Mob.Tick=25}] rotated ~ 0 positioned ^3 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral
execute if entity @s[tag=1N.GiantPumpkin1.Right,scores={General.Mob.Tick=30}] rotated ~ 0 positioned ^6 ^ ^3.5 run function asset:mob/0059.jack_o_lantern/tick/skill/common/giant_pumpkin/neutral

# リセット
execute if entity @s[scores={General.Mob.Tick=50..}] run function asset:mob/0059.jack_o_lantern/tick/skill/reset
execute if entity @s[scores={General.Mob.Tick=70..}] run function asset:mob/0059.jack_o_lantern/tick/skill/reset
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#> asset:mob/0059.jack_o_lantern/tick/skill/giant_pumpkin1/check_no_wall_behind
#
# 後ろに壁がないなら成功とするif function
#
# @within function asset:mob/0059.jack_o_lantern/tick/skill/giant_pumpkin1/motion

# 後ろnブロックが壁なら0を返す
execute unless block ^ ^ ^-1 #lib:no_collision/ run return 0
execute unless block ^ ^ ^-2 #lib:no_collision/ run return 0
execute unless block ^ ^ ^-3 #lib:no_collision/ run return 0
execute unless block ^ ^ ^-4 #lib:no_collision/ run return 0
execute unless block ^ ^ ^-5 #lib:no_collision/ run return 0
execute unless block ^ ^ ^-6 #lib:no_collision/ run return 0
execute unless block ^ ^ ^-7 #lib:no_collision/ run return 0

# 成功
return 1
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,14 @@
#
# @within function asset:mob/0059.jack_o_lantern/tick/skill/giant_pumpkin1/

# NoAIにする
data modify entity @s NoAI set value 1b
# 演出
playsound entity.witch.celebrate hostile @a ~ ~ ~ 1 2 0

# プレイヤーが近くにいればmotion
execute if entity @p[gamemode=!spectator,distance=..10] run function asset:mob/0059.jack_o_lantern/tick/skill/giant_pumpkin1/motion

# いなければ@pの方向のRotationを保存しておく
execute unless entity @p[gamemode=!spectator,distance=..10] facing entity @p[gamemode=!spectator,distance=..64] feet run function asset:mob/0059.jack_o_lantern/tick/skill/giant_pumpkin1/save_rotation

# 攻撃パターン設定
execute store result score $Random Temporary run random value 0..2
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#> asset:mob/0059.jack_o_lantern/tick/skill/giant_pumpkin1/motion
#
#
#
# @within function asset:mob/0059.jack_o_lantern/tick/skill/giant_pumpkin1/first_tick

# 自身の後ろが壁か?
execute if function asset:mob/0059.jack_o_lantern/tick/skill/giant_pumpkin1/check_no_wall_behind run data modify storage asset:temp NoBlockBihind set value true

# 後ろが壁でなければバックステップ
execute if data storage asset:temp {NoBlockBihind:true} run data modify storage lib: Argument.VectorMagnitude set value 2.5
execute if data storage asset:temp {NoBlockBihind:true} facing entity @p[gamemode=!spectator,distance=..50] feet rotated ~180 -11.25 run function lib:motion/

# 壁なら前へステップ
execute unless data storage asset:temp {NoBlockBihind:true} run data modify storage lib: Argument.VectorMagnitude set value 3.0
execute unless data storage asset:temp {NoBlockBihind:true} facing entity @p[gamemode=!spectator,distance=..50] feet rotated ~ -11.25 run function lib:motion/

# この時のrotationを記録しておく
execute if data storage asset:temp {NoBlockBihind:true} facing entity @p[gamemode=!spectator,distance=..50] feet run function asset:mob/0059.jack_o_lantern/tick/skill/giant_pumpkin1/save_rotation
execute unless data storage asset:temp {NoBlockBihind:true} facing entity @p[gamemode=!spectator,distance=..50] feet rotated ~180 ~ run function asset:mob/0059.jack_o_lantern/tick/skill/giant_pumpkin1/save_rotation

# リセット
data remove storage lib: Argument
data remove storage asset:temp NoBlockBihind
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#> asset:mob/0059.jack_o_lantern/tick/skill/giant_pumpkin1/save_rotation
#
#
#
# @within function
# asset:mob/0059.jack_o_lantern/tick/skill/giant_pumpkin1/first_tick
# asset:mob/0059.jack_o_lantern/tick/skill/giant_pumpkin1/motion

#> Private
# @private
#declare tag RotationMarker

summon marker ~ ~ ~ {Tags:["RotationMarker"]}
execute as @e[type=marker,tag=RotationMarker,distance=..0.01] run tp @s ~ ~ ~ ~ ~
data modify storage asset:context this.SavedRotation0 set from entity @e[type=marker,tag=RotationMarker,distance=..0.01,limit=1] Rotation[0]
kill @e[type=marker,tag=RotationMarker,distance=..0.01]
Loading
Loading