Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local require = GLOBAL.require
- local STRINGS = GLOBAL.STRINGS
- local SpawnPrefab = GLOBAL.SpawnPrefab
- local unpack = GLOBAL.unpack
- PrefabFiles = {
- "skeleton_saddle",
- "winged_saddle",
- "lunar_saddle",
- "sun_saddle",
- "saddle_fx",
- "stafflight",
- }
- Assets =
- {
- Asset( "ATLAS", "images/skeleton_saddle.xml" ),
- Asset( "ATLAS", "images/winged_saddle.xml" ),
- Asset( "ATLAS", "images/lunar_saddle.xml" ),
- Asset( "ATLAS", "images/sun_saddle.xml" )
- }
- local SaddleOffset =
- {
- saddle_fx_sun = { -50, -180, 0 },
- saddle_fx_moon = { -50, -300, 0 },
- }
- local function opalstaff(prefab)
- prefab:AddTag("lunar")end
- local function yellowstaff(prefab)
- prefab:AddTag("sun")end
- AddComponentPostInit("spellcater", function(self)
- if not GLOBAL.TheWorld.ismastersim then return end
- CASTSPELL_ACTION = AddAction("CASTSPELL", "Casting", function(act)
- if act.doer:HasTag("player") and act.doer:HasTag("lunar") and act.target.components.saddler then
- local function OnLunarChanged(inst)
- local fx = SpawnPrefab("saddle_fx_moon")
- inst.saddle_fx = fx
- inst.saddle_fx.entity:SetParent(inst.entity)
- inst.saddle_fx.Follower:FollowSymbol(inst.GUID, "swap_saddle", unpack(SaddleOffset[inst.saddle_fx.prefab]))
- end
- act.target.components.saddler:Casting(true)
- return true
- else
- return false
- end
- end)
- CASTSPELL_ACTION = AddAction("CASTSPELL", "Casting", function(act)
- if act.doer:HasTag("player") and act.doer:HasTag("sun") and act.target.components.saddler then
- local function OnSunChanged(inst)
- local fx = SpawnPrefab("saddle_fx_sun")
- inst.saddle_fx = fx
- inst.saddle_fx.entity:SetParent(inst.entity)
- inst.saddle_fx.Follower:FollowSymbol(inst.GUID, "swap_saddle", unpack(SaddleOffset[inst.saddle_fx.prefab]))
- end
- act.target.components.saddler:Casting(true)
- else
- return false
- end
- end)
- CASTSPELL_ACTION.priority = 10
- AddComponentAction("SCENE", "saddler", function(inst, doer, actions, right)
- if inst.prefab and inst.components.saddler then
- table.insert(actions, GLOBAL.ACTIONS.CASTSPELL)
- end
- end)
- AddStategraphActionHandler("wilson", GLOBAL.ActionHandler(GLOBAL.ACTIONS.CASTSPELL, "dolongaction"))
- AddStategraphActionHandler("wilson_client", GLOBAL.ActionHandler(GLOBAL.ACTIONS.CASTSPELL, "dolongaction"))
- local function OnSaddleChanged(inst, data)
- local saddle = data.saddle
- if inst.saddle_fx then inst.saddle_fx:Remove() end
- if not saddle then return end
- if saddle.prefab == "sun_saddle" then
- OnSunChanged(inst)
- elseif saddle.prefab == "lunar_saddle" then
- OnLunarChanged(inst)
- end
- end
- self.inst:ListenForEvent("saddlechanged", OnSaddleChanged)
- end)
- AddComponentPostInit("rider", function(self)
- if not GLOBAL.TheWorld.ismastersim then return end
- self.inst:ListenForEvent("mounted", function(inst, data)
- local target = data.target
- if target and target.saddle_fx then
- inst.saddle_fx = target.saddle_fx
- inst.saddle_fx.entity:SetParent(inst.entity)
- inst.saddle_fx.Follower:FollowSymbol(inst.GUID, "swap_saddle", unpack(SaddleOffset[inst.saddle_fx.prefab]))
- target.saddle_fx = nil
- end
- end)
- self.inst:ListenForEvent("dismounted", function(inst, data)
- local target = data.target
- if target and inst.saddle_fx then
- target.saddle_fx = inst.saddle_fx
- target.saddle_fx.entity:SetParent(target.entity)
- target.saddle_fx.Follower:FollowSymbol(target.GUID, "swap_saddle", unpack(SaddleOffset[inst.saddle_fx.prefab]))
- end
- inst.saddle_fx = nil
- end)
- end)
- GLOBAL.STRINGS.NAMES.SKELETON_SADDLE = "Bone Saddle"
- GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SKELETON_SADDLE = "this beastly ride will help me in my fights"
- GLOBAL.STRINGS.NAMES.WINGED_SADDLE = "Winged Saddle"
- GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.WINGED_SADDLE = "wigfrids helmet..?..!"
- GLOBAL.STRINGS.NAMES.LUNAR_SADDLE = "Lunar Saddle"
- GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.LUNAR_SADDLE = "Can craddle a Polar Star.."
- GLOBAL.STRINGS.NAMES.SUN_SADDLE = "Solar Saddle"
- GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SUN_SADDLE = "Can craddle a Dwarf Star.."
- GLOBAL.STRINGS.NAMES.SADDLE_FX_SUN = "Dwarf Star"
- GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SADDLE_FX_SUN = "Burning fiercely!"
- GLOBAL.STRINGS.NAMES.SADDLE_FX_MOON = "Polar Light"
- GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SADDLE_FX_MOON = "How radiant!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement