mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-08 05:42:27 +08:00
130 lines
4.3 KiB
Go
130 lines
4.3 KiB
Go
--[[
|
|
雷共鸣石黑河玩法
|
|
|
|
]]--
|
|
|
|
local light_stones_initial={
|
|
[1]=defs.gadget_1,
|
|
[2]=defs.gadget_2,
|
|
[3]=defs.gadget_3,
|
|
[4]=defs.gadget_4,
|
|
[5]=defs.gadget_5
|
|
}
|
|
|
|
local extraTriggers={
|
|
{ config_id = 8000001, name = "GROUP_LOAD", event = EventType.EVENT_GROUP_LOAD, source = "", condition = "", action = "action_group_load", trigger_count = 0 },
|
|
}
|
|
|
|
|
|
function LF_Initialize_Group(triggers, suites)
|
|
for i=1,#extraTriggers do
|
|
table.insert(triggers, extraTriggers[i])
|
|
table.insert(suites[init_config.suite].triggers,extraTriggers[i].name)
|
|
end
|
|
table.insert(variables,{ config_id=50000001,name = "successed", value = 0, no_refresh = true})
|
|
--初始化
|
|
end
|
|
|
|
function action_group_load(context, evt)
|
|
if ScriptLib.GetGroupVariableValue(context,"successed")~=0 then
|
|
for i=1,#light_stones_initial do
|
|
if light_stones_initial[i] ~= 0 then
|
|
ScriptLib.SetGadgetStateByConfigId(context, light_stones_initial[i], GadgetState.GearAction2)
|
|
end
|
|
end
|
|
ScriptLib.AddExtraGroupSuite(context, defs.group_ID, 2)
|
|
return 0
|
|
end
|
|
return 0
|
|
end
|
|
|
|
function Generate_Table(light_stones_initial)
|
|
local outTable={}
|
|
for i=1,#light_stones_initial do
|
|
if light_stones_initial[i]~=0 then
|
|
table.insert(outTable,light_stones_initial[i])
|
|
end
|
|
end
|
|
return outTable
|
|
end
|
|
|
|
function Stone_Behit(context)
|
|
local light_stones=Generate_Table(light_stones_initial)
|
|
ScriptLib.PrintContextLog(context, "target_entity_id="..context.target_entity_id.." source_entity_id="..context.source_entity_id)
|
|
if ScriptLib.GetGroupVariableValue(context,"successed") ~=0 then
|
|
return 0
|
|
end
|
|
for i=1,#light_stones do
|
|
if context.target_entity_id==ScriptLib.GetEntityIdByConfigId(context,light_stones[i]) then
|
|
gadget_level_change(context,light_stones[i])
|
|
--非循环模式
|
|
if defs.loop_mode==0 then
|
|
if i-1>=1 then
|
|
gadget_level_change(context,light_stones[i-1])
|
|
end
|
|
if i+1 <= #light_stones then
|
|
gadget_level_change(context,light_stones[i+1])
|
|
end
|
|
end
|
|
--循环模式
|
|
if defs.loop_mode==1 then
|
|
if i-1<1 then
|
|
gadget_level_change(context,light_stones[#light_stones])
|
|
else
|
|
gadget_level_change(context,light_stones[i-1])
|
|
end
|
|
if i+1 > #light_stones then
|
|
gadget_level_change(context,light_stones[1])
|
|
else
|
|
gadget_level_change(context,light_stones[i+1])
|
|
end
|
|
end
|
|
break
|
|
end
|
|
end
|
|
if check_success(context,light_stones)==true then
|
|
for i=1,#light_stones do
|
|
if GadgetState.Action01 == ScriptLib.GetGadgetStateByConfigId(context, defs.group_ID, light_stones[i]) then
|
|
ScriptLib.SetGadgetStateByConfigId(context, light_stones[i], 9010)
|
|
elseif GadgetState.Action02 == ScriptLib.GetGadgetStateByConfigId(context, defs.group_ID, light_stones[i]) then
|
|
ScriptLib.SetGadgetStateByConfigId(context, light_stones[i], 9020)
|
|
elseif GadgetState.Action03 == ScriptLib.GetGadgetStateByConfigId(context, defs.group_ID, light_stones[i]) then
|
|
ScriptLib.SetGadgetStateByConfigId(context, light_stones[i], 9030)
|
|
end
|
|
end
|
|
ScriptLib.SetGroupVariableValue(context, "successed",1)
|
|
ScriptLib.AddExtraGroupSuite(context, defs.group_ID, 2)
|
|
end
|
|
return 0
|
|
end
|
|
--检测是否达成目标
|
|
function check_success(context,light_stones)
|
|
if #light_stones<=1 then
|
|
return true
|
|
end
|
|
for i=1,#light_stones-1 do
|
|
if ScriptLib.GetGadgetStateByConfigId(context, defs.group_ID, light_stones[i])~=ScriptLib.GetGadgetStateByConfigId(context, defs.group_ID, light_stones[i+1]) then
|
|
return false
|
|
end
|
|
end
|
|
return true
|
|
end
|
|
--处理共鸣石的状态变化
|
|
function gadget_level_change(context,config_id)
|
|
if config_id==nil then
|
|
return 0
|
|
end
|
|
ScriptLib.PrintContextLog(context, "##config_id is "..config_id)
|
|
if GadgetState.Default == ScriptLib.GetGadgetStateByConfigId(context, defs.group_ID, config_id) then
|
|
ScriptLib.SetGadgetStateByConfigId(context, config_id, GadgetState.Action01)
|
|
elseif GadgetState.Action01 == ScriptLib.GetGadgetStateByConfigId(context, defs.group_ID, config_id) then
|
|
ScriptLib.SetGadgetStateByConfigId(context, config_id, GadgetState.Action02)
|
|
elseif GadgetState.Action02 == ScriptLib.GetGadgetStateByConfigId(context, defs.group_ID, config_id) then
|
|
ScriptLib.SetGadgetStateByConfigId(context, config_id, GadgetState.Action03)
|
|
elseif GadgetState.Action03 == ScriptLib.GetGadgetStateByConfigId(context, defs.group_ID, config_id) then
|
|
ScriptLib.SetGadgetStateByConfigId(context, config_id, GadgetState.Action01)
|
|
end
|
|
return 0
|
|
end
|
|
|
|
LF_Initialize_Group(triggers, suites) |