Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
2d5b521
完成
Lapis-LJA Oct 10, 2026
a90f97e
ディレクトリ
Lapis-LJA Oct 10, 2026
cd8f8c3
回転
Lapis-LJA Oct 10, 2026
7414513
:recycle: スターライトサークルのネームスペースを神器名に統一
Lapis-LJA Oct 10, 2026
f93261c
レッドシャードに追加
Lapis-LJA Oct 10, 2026
425abfc
transformation調整
Lapis-LJA Oct 11, 2026
2b2bd8b
:bug: スターライトサークルの回転中心と初期角度を修正
Lapis-LJA Oct 11, 2026
ed6f87f
色々調整
Lapis-LJA Oct 11, 2026
29a79df
:sparkles: スターライトサークルに魔弾の回転処理を移植
Lapis-LJA Oct 11, 2026
fa36a86
Merge branch 'dev/lapis_artifact1661' of https://github.com/ProjectTS…
Lapis-LJA Oct 11, 2026
5ccf14d
:sparkles: スターライトサークルを回転しながら出現させる
Lapis-LJA Oct 11, 2026
e0565e6
:twisted_rightwards_arrows: スターライトサークルの召喚方向と位置の調整を統合
Lapis-LJA Oct 11, 2026
0738665
:recycle: スターライトサークルの拡大縮小を回転回数で管理
Lapis-LJA Oct 11, 2026
84261c3
:sparkles: スターライトサークルの回転時間をFieldで設定可能にする
Lapis-LJA Oct 11, 2026
9853b84
回転速度を調整
Lapis-LJA Oct 11, 2026
be7d7e2
:sparkles: スターライトサークルの回転方向を召喚時にランダム化
Lapis-LJA Oct 11, 2026
a3a2a6b
Merge branch 'dev/lapis_artifact1661' of https://github.com/ProjectTS…
Lapis-LJA Oct 11, 2026
3947016
:recycle: スターライトサークルの関数構成とファイル名を整理
Lapis-LJA Oct 11, 2026
e3abcc6
:twisted_rightwards_arrows: スターライトサークルの拡大回転時間の調整を統合
Lapis-LJA Oct 11, 2026
6f095d6
:recycle: スターライトサークルの回転方向のNBT条件を統合
Lapis-LJA Oct 11, 2026
c7f84c7
:recycle: 回転方向の抽選に50%判定predicateを使用
Lapis-LJA Oct 11, 2026
b65c5a0
コメント調整
Lapis-LJA Oct 11, 2026
35e98f3
Loreを調整
Lapis-LJA Oct 11, 2026
f7679be
演出を調整
Lapis-LJA Oct 11, 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
@@ -0,0 +1,7 @@
#> asset:artifact/1661.starlight_circle/give/1.trigger
#
# 神器の取得処理の呼び出し時に実行されるfunction
#
# @within tag/function asset:artifact/give

execute if data storage asset:context {id:1661} run function asset:artifact/1661.starlight_circle/give/2.give
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#> asset:artifact/1661.starlight_circle/give/2.give
#
# 神器の作成部 ここでID等を定義する
#
# @user
# @within function asset:artifact/1661.starlight_circle/give/1.trigger

# 神器の説明や消費MPなどをここで設定する。
# 最後にasset:artifact/common/giveを実行することで入手可能。

# 神器のID (int) スプレッドシートの値を入れる
data modify storage asset:artifact ID set value 1661
# 神器のベースアイテム
data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick"
# 神器の名前 (TextComponentString)
data modify storage asset:artifact Name set value '{"text":"スターライトサークル","color":"#bdd7ff"}'
# 神器の説明文 (TextComponentString[])
data modify storage asset:artifact Lore set value ['{"text":"星の光を宿す魔法を展開し、周囲の敵にダメージを与える","color":"white"}']
# 消費アイテム ({Item: TextComponent, Count: int, Extra?: TextComponent}) (オプション)
# data modify storage asset:artifact ConsumeItem.Item set value '{"translate":"item.minecraft.stick"}'
# data modify storage asset:artifact ConsumeItem.Count set value 1
# data modify storage asset:artifact ConsumeItem.Extra set value
# 使用回数 (int) (オプション)
# data modify storage asset:artifact RemainingCount set value
# 神器を発動できるスロット (string) Wikiを参照
data modify storage asset:artifact Slot set value "mainhand"
# 神器のトリガー (string) Wikiを参照
data modify storage asset:artifact Trigger set value "onClick"
# 神器の発動条件 (TextComponentString) (オプション)
# data modify storage asset:artifact Condition set value
# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション)
data modify storage asset:artifact AttackInfo.Damage set value [200]
# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション)
data modify storage asset:artifact AttackInfo.AttackType set value [Magic]
# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション)
data modify storage asset:artifact AttackInfo.ElementType set value [None]
# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション)
# data modify storage asset:artifact AttackInfo.BypassResist set value
# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション)
data modify storage asset:artifact AttackInfo.IsRangeAttack set value "every"
# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション)
data modify storage asset:artifact AttackInfo.AttackRange set value 5
# MP消費量 (int)
data modify storage asset:artifact MPCost set value 60
# MP必要量 (int) (オプション)
# data modify storage asset:artifact MPRequire set value
# MP回復量 (int)
# data modify storage asset:artifact MPHealWhenHit set value
# 神器のクールダウン (int) (オプション)
# data modify storage asset:artifact LocalCooldown set value
# 種別クールダウン ({Type: string, Duration: int}) (オプション)
data modify storage asset:artifact TypeCooldown.Type set value "shortRange"
data modify storage asset:artifact TypeCooldown.Duration set value 60
# グローバルクールダウン (int) (オプション)
# data modify storage asset:artifact SpecialCooldown set value
# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション)
# data modify storage asset:artifact DisableCooldownMessage set value
# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション)
# data modify storage asset:artifact DisableMPMessage set value
# 破壊時の音を鳴らさないかどうか (boolean) (オプション)
# data modify storage asset:artifact DisableBreakSound set value
# 扱える神 (string[]) Wikiを参照
data modify storage asset:artifact CanUsedGod set value ["Flora", "Nyaptov", "Wi-ki"]
# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション)
# data modify storage asset:artifact CustomNBT set value {}

# 神器の入手用function
function asset:artifact/common/give
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:artifact/1661.starlight_circle/register
#
# 神器プールへの登録処理
#
# @within tag/function asset:artifact/register

data modify storage asset:artifact RarityRegistry[2] append value [1661]
data modify storage asset:artifact RarityRegistryWithColor.Red[2] append value [1661]
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:artifact/1661.starlight_circle/trigger/1.trigger
#
# 指定したイベントタイミングで実行されるfunction
#
# @within tag/function asset:artifact/**

# storage asset:idのmainhandに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する
execute if data storage asset:context id{mainhand:1661} run function asset:artifact/1661.starlight_circle/trigger/2.check_condition
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#> asset:artifact/1661.starlight_circle/trigger/2.check_condition
#
# 神器の発動条件をチェックします
#
# @within function asset:artifact/1661.starlight_circle/trigger/1.trigger

# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く
function asset:artifact/common/check_condition/mainhand
# 他にアイテム等確認する場合はここに書く

# CanUsedタグをチェックして3.main.mcfunctionを実行する
execute if entity @s[tag=CanUsed] run function asset:artifact/1661.starlight_circle/trigger/3.main
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#> asset:artifact/1661.starlight_circle/trigger/3.main
#
# 神器のメイン処理部
#
# @within function asset:artifact/1661.starlight_circle/trigger/2.check_condition

# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う
function asset:artifact/common/use/mainhand

# ここから先は神器側の効果の処理を書く

# 適当に演出
particle end_rod ~ ~0.2 ~ 0 0 0 0.3 30 normal @a
particle enchant ~ ~1.2 ~ 2 1 2 0 100 normal @a
particle dust 0.541 0.78 1 1 ~ ~1.2 ~ 3 1.2 3 0 40 normal @a
playsound block.beacon.power_select player @a ~ ~ ~ 1 1.8
playsound block.beacon.power_select player @a ~ ~ ~ 1 1.9
playsound block.enchantment_table.use player @a ~ ~ ~ 1 1.75

# 演出用Object
data modify storage api: Argument.ID set value 1200
function api:object/summon

# ダメージ範囲
data modify storage lib: Argument.BoundingCylinder.Radius set value 5.0d
data modify storage lib: Argument.BoundingCylinder.Height set value 3.25d
data modify storage lib: Argument.BoundingCylinder.Selector set value "@e[type=#lib:living_without_player,tag=Enemy,tag=!Uninterferable,distance=..10]"
execute positioned ~ ~-2.25 ~ run function lib:bounding_cylinder/

# ダメージ
data modify storage api: Argument.Damage set value 200d
data modify storage api: Argument.AttackType set value "Magic"
data modify storage api: Argument.ElementType set value "None"
function api:damage/modifier
execute positioned ~ ~-0.25 ~ as @e[type=#lib:living_without_player,tag=BoundingCylinder,distance=..15] run function api:damage/
function api:damage/reset

# リセット
tag @e[type=#lib:living_without_player,tag=BoundingCylinder,distance=..15] remove BoundingCylinder
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:object/1200.starlight_circle/init/
#
# Objectのinit時の処理
#
# @within asset:object/alias/1200/init

# 回転方向を50%の確率で反転する
execute if predicate lib:random_pass_per/50 run data modify storage asset:context this.LeftRotate set value true
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#> asset:object/1200.starlight_circle/register
#
# Objectのデータを指定
#
# @within function asset:object/alias/1200/register

# 継承(オプション)
# data modify storage asset:object Extends append value
# function asset:object/extends
# 他のObjectに継承されることを許可するか (boolean) (オプション)
# data modify storage asset:object ExtendsSafe set value
# 継承されることを前提とした、抽象的なObjectであるかどうか(boolean)
data modify storage asset:object IsAbstract set value false
# Tickするかどうか(boolean) (オプション)
# data modify storage asset:object IsTicking set value

# ID (int)
data modify storage asset:object ID set value 1200
# フィールド(オプション)
data modify storage asset:object Field.Spin set value 4
data modify storage asset:object Field.SpinCount set value 4
data modify storage asset:object Field.FirstSpin set value true
data modify storage asset:object Field.LeftRotate set value false
# 表示開始までの待ち時間(tick、1以上)
data modify storage asset:object Field.SpinInterval set value 3
# 最初・通常・最後の90度回転にかける時間(tick、1以上)
data modify storage asset:object Field.ExpandDuration set value 12
data modify storage asset:object Field.SpinDuration set value 16
data modify storage asset:object Field.ShrinkDuration set value 12
# 拡大後のScale
data modify storage asset:object Field.Scale set value [5f,5f,0f]
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#> asset:object/1200.starlight_circle/summon/.m
#
#
#
# @within function asset:object/1200.starlight_circle/summon/

$summon text_display ~ ~ ~ {Tags:["ObjectInit"],Rotation:$(Rotation),background:16711680,text:'[{"text":"0","font":"object/1200"},{"text":"\\u0001","font":"space"}]',brightness:{sky:15,block:15},teleport_duration:1,transformation:{left_rotation:[0.7071f,0.0f,0.0f,-0.7071f],right_rotation:[0f,0f,0f,1f],scale:[0f,0f,0f],translation:[0f,0f,0f]},Passengers:[{id:"text_display",Rotation:$(Rotation),background:16711680,text:'[{"text":"0","font":"object/1200"},{"text":"\\u0001","font":"space"}]',brightness:{sky:15,block:15},teleport_duration:1,transformation:{left_rotation:[0.7071f,0.0f,0.0f,0.7071f],right_rotation:[0f,0f,0f,1f],scale:[0f,0f,0f],translation:[0f,0f,0f]}}]}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#> asset:object/1200.starlight_circle/summon/
#
# Object召喚処理の呼び出し時に実行されるfunction
#
# @within asset:object/alias/1200/summon

# 元となるEntityを召喚する
execute as 0-0-0-0-0 in minecraft:overworld positioned as @s run tp @s ~ ~ ~ ~180 0
data modify storage asset:temp Args.Rotation set from entity 0-0-0-0-0 Rotation
function asset:object/1200.starlight_circle/summon/.m with storage asset:temp Args
data remove storage asset:temp Args
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#> asset:object/1200.starlight_circle/tick/
#
# Objectのtick時の処理
#
# @within asset:object/alias/1200/tick

# 次の回転または消滅までの待ち時間を進める
execute store result storage asset:context this.SpinInterval int 0.9999999999 run data get storage asset:context this.SpinInterval

# 回転させる
execute unless data storage asset:context this{SpinCount:0} if data storage asset:context this{SpinInterval:0} run function asset:object/1200.starlight_circle/tick/spin/

# 縮小が完了したら消滅させる
execute if data storage asset:context this{SpinCount:0,SpinInterval:0} run function asset:object/1200.starlight_circle/tick/kill
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#> asset:object/1200.starlight_circle/tick/kill
#
#
#
# @within function asset:object/1200.starlight_circle/tick/

# kill
execute on passengers run kill @s
kill @s
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#> asset:object/1200.starlight_circle/tick/spin/
#
# 親とPassengerを90度回転させ、最初に拡大、最後に縮小する
#
# @within function asset:object/1200.starlight_circle/tick/

# 残り回転回数と回転段階を進める
execute store result storage asset:context this.SpinCount int 0.9999999999 run data get storage asset:context this.SpinCount
execute store result storage asset:context this.Spin int 0.9999999999 run data get storage asset:context this.Spin

# 回転段階に応じた補間時間を設定する
data modify storage asset:context this.SpinInterval set from storage asset:context this.SpinDuration
execute if data storage asset:context this{FirstSpin:true} run data modify storage asset:context this.SpinInterval set from storage asset:context this.ExpandDuration
execute if data storage asset:context this{SpinCount:0} run data modify storage asset:context this.SpinInterval set from storage asset:context this.ShrinkDuration

# 親とPassengerに回転を適用する
function asset:object/1200.starlight_circle/tick/spin/apply
execute on passengers run function asset:object/1200.starlight_circle/tick/spin/apply

# 最初の回転に合わせて拡大する
execute if data storage asset:context this{FirstSpin:true} run function asset:object/1200.starlight_circle/tick/spin/expand
execute if data storage asset:context this{FirstSpin:true} on passengers run function asset:object/1200.starlight_circle/tick/spin/expand
data modify storage asset:context this.FirstSpin set value false

# 最後の回転に合わせて縮小する
execute if data storage asset:context this{SpinCount:0} run function asset:object/1200.starlight_circle/tick/spin/shrink
execute if data storage asset:context this{SpinCount:0} on passengers run function asset:object/1200.starlight_circle/tick/spin/shrink

# 回転段階をリセットする
execute if data storage asset:context this{Spin:0} run data modify storage asset:context this.Spin set value 4
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#> asset:object/1200.starlight_circle/tick/spin/apply
#
# 回転段階に対応する角度へ補間する
#
# @within function asset:object/1200.starlight_circle/tick/spin/

# 回転を補間する
data modify entity @s start_interpolation set value 0
data modify entity @s interpolation_duration set from storage asset:context this.SpinInterval

# 回転させる LeftRotateによって回転方向を変える
execute if data storage asset:context this{Spin:3,LeftRotate: true} run data modify entity @s transformation.right_rotation set value [0.0f,0.0f,-0.7071f,0.7071f]
execute if data storage asset:context this{Spin:3,LeftRotate:false} run data modify entity @s transformation.right_rotation set value [0.0f,0.0f,0.7071f,0.7071f]
execute if data storage asset:context this{Spin:2} run data modify entity @s transformation.right_rotation set value [0.0f,0.0f,1.0f,0.0f]
execute if data storage asset:context this{Spin:1,LeftRotate: true} run data modify entity @s transformation.right_rotation set value [0.0f,0.0f,0.7071f,0.7071f]
execute if data storage asset:context this{Spin:1,LeftRotate:false} run data modify entity @s transformation.right_rotation set value [0.0f,0.0f,-0.7071f,0.7071f]
execute if data storage asset:context this{Spin:0} run data modify entity @s transformation.right_rotation set value [0.0f,0.0f,0.0f,1.0f]
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:object/1200.starlight_circle/tick/spin/expand
#
# 最初の回転に合わせて拡大する
#
# @within function asset:object/1200.starlight_circle/tick/spin/

# 指定のScaleに拡大する
data modify entity @s transformation.scale set from storage asset:context this.Scale
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:object/1200.starlight_circle/tick/spin/shrink
#
# 最後の回転に合わせて縮小する
#
# @within function asset:object/1200.starlight_circle/tick/spin/

# 縮小する
data modify entity @s transformation.scale set value [0f,0f,0f]
8 changes: 8 additions & 0 deletions Asset/data/asset/functions/object/alias/1200/init.mcfunction
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:object/alias/1200/init
#
# Init処理のエイリアス
#
# @within asset_manager:object/init/init.m

# 元のInit処理を呼び出す
function asset:object/1200.starlight_circle/init/
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:object/alias/1200/register
#
# Objectのデータ指定処理のエイリアス
#
# @within asset_manager:object/summon/register.m

# 元の登録処理を呼び出す
function asset:object/1200.starlight_circle/register
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:object/alias/1200/summon
#
# Object召喚処理のエイリアス
#
# @within asset_manager:object/summon/summon.m

# 元の召喚処理を呼び出す
function asset:object/1200.starlight_circle/summon/
8 changes: 8 additions & 0 deletions Asset/data/asset/functions/object/alias/1200/tick.mcfunction
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#> asset:object/alias/1200/tick
#
# Tick時処理のエイリアス
#
# @within asset_manager:object/tick/tick.m

# 元のTick処理を呼び出す
function asset:object/1200.starlight_circle/tick/
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"values": [
"asset:artifact/1661.starlight_circle/trigger/1.trigger",
"asset:artifact/1555.shift_change/trigger/1.trigger",
"asset:artifact/1636.mana_controller/trigger/1.trigger",
"asset:artifact/1606.dimension_knife/click/1.trigger",
Expand Down Expand Up @@ -180,4 +181,4 @@
"asset:artifact/2001.staff_of_the_willless/trigger/1.trigger",
"asset:artifact/0019.scripture/trigger/1.trigger"
]
}
}
3 changes: 2 additions & 1 deletion Asset/data/asset/tags/functions/artifact/give.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"values": [
"asset:artifact/1661.starlight_circle/give/1.trigger",
"asset:artifact/1392.yellow_refraction_prism/give/1.trigger",
"asset:artifact/1421.toaster/give/1.trigger",
"asset:artifact/1555.shift_change/give/1.trigger",
Expand Down Expand Up @@ -559,4 +560,4 @@
"asset:artifact/0735.collision_plate/give/1.trigger",
"asset:artifact/0745.blade_of_whirlwind/give/1.trigger"
]
}
}
3 changes: 2 additions & 1 deletion Asset/data/asset/tags/functions/artifact/register.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"values": [
"asset:artifact/1661.starlight_circle/register",
"asset:artifact/1421.toaster/register",
"asset:artifact/1555.shift_change/register",
"asset:artifact/1466.insulator_helmet/register",
Expand Down Expand Up @@ -330,4 +331,4 @@
"asset:artifact/1027.fire_of_rebirth/register",
"asset:artifact/1111.rod_o_redeem/register"
]
}
}
Loading