Advertisement
Guest User

modmain

a guest
Jan 25th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.38 KB | None | 0 0
  1. local require = GLOBAL.require
  2. local STRINGS = GLOBAL.STRINGS
  3. local SpawnPrefab = GLOBAL.SpawnPrefab
  4. local unpack = GLOBAL.unpack
  5.  
  6. PrefabFiles = {
  7.     "skeleton_saddle",
  8.     "winged_saddle",
  9.     "lunar_saddle",
  10.     "sun_saddle",
  11.     "saddle_fx",
  12.     "stafflight",
  13. }
  14.  
  15. Assets =
  16. {
  17.     Asset( "ATLAS", "images/skeleton_saddle.xml" ),
  18.     Asset( "ATLAS", "images/winged_saddle.xml" ),
  19.     Asset( "ATLAS", "images/lunar_saddle.xml" ),
  20.     Asset( "ATLAS", "images/sun_saddle.xml" )
  21. }
  22.  
  23. local SaddleOffset =
  24. {
  25.     saddle_fx_sun = { -50, -180, 0 },
  26.     saddle_fx_moon = { -50, -300, 0 },
  27. }
  28.  
  29. local function opalstaff(prefab)   
  30. prefab:AddTag("lunar")end
  31. local function yellowstaff(prefab) 
  32. prefab:AddTag("sun")end
  33.  
  34. AddComponentPostInit("spellcater", function(self)
  35.     if not GLOBAL.TheWorld.ismastersim then return end
  36.    
  37. CASTSPELL_ACTION = AddAction("CASTSPELL", "Casting", function(act)
  38.     if act.doer:HasTag("player") and act.doer:HasTag("lunar") and act.target.components.saddler then
  39.         local function OnLunarChanged(inst)
  40.         local fx = SpawnPrefab("saddle_fx_moon")
  41.  
  42.         inst.saddle_fx = fx
  43.         inst.saddle_fx.entity:SetParent(inst.entity)
  44.        
  45.         inst.saddle_fx.Follower:FollowSymbol(inst.GUID, "swap_saddle", unpack(SaddleOffset[inst.saddle_fx.prefab]))
  46.         end
  47.         act.target.components.saddler:Casting(true)
  48.         return true
  49.     else
  50.         return false
  51.     end
  52. end)
  53.  
  54. CASTSPELL_ACTION = AddAction("CASTSPELL", "Casting", function(act)
  55.     if act.doer:HasTag("player") and act.doer:HasTag("sun") and act.target.components.saddler then
  56.         local function OnSunChanged(inst)
  57.         local fx = SpawnPrefab("saddle_fx_sun")
  58.         inst.saddle_fx = fx
  59.         inst.saddle_fx.entity:SetParent(inst.entity)
  60.         inst.saddle_fx.Follower:FollowSymbol(inst.GUID, "swap_saddle", unpack(SaddleOffset[inst.saddle_fx.prefab]))
  61.         end
  62.         act.target.components.saddler:Casting(true)
  63.     else
  64.         return false
  65.     end
  66. end)
  67.  
  68. CASTSPELL_ACTION.priority = 10
  69.  
  70. AddComponentAction("SCENE", "saddler", function(inst, doer, actions, right)
  71.     if inst.prefab and inst.components.saddler then
  72.         table.insert(actions, GLOBAL.ACTIONS.CASTSPELL)
  73.     end
  74. end)
  75.  
  76. AddStategraphActionHandler("wilson", GLOBAL.ActionHandler(GLOBAL.ACTIONS.CASTSPELL, "dolongaction"))
  77. AddStategraphActionHandler("wilson_client", GLOBAL.ActionHandler(GLOBAL.ACTIONS.CASTSPELL, "dolongaction"))
  78.  
  79.     local function OnSaddleChanged(inst, data)
  80.         local saddle = data.saddle
  81.        
  82.         if inst.saddle_fx then inst.saddle_fx:Remove() end
  83.        
  84.         if not saddle then return end
  85.        
  86.         if saddle.prefab == "sun_saddle" then
  87.             OnSunChanged(inst)
  88.         elseif saddle.prefab == "lunar_saddle" then
  89.             OnLunarChanged(inst)
  90.         end
  91.     end
  92.  
  93.     self.inst:ListenForEvent("saddlechanged", OnSaddleChanged)
  94. end)
  95.  
  96. AddComponentPostInit("rider", function(self)
  97.     if not GLOBAL.TheWorld.ismastersim then return end
  98.    
  99.     self.inst:ListenForEvent("mounted", function(inst, data)
  100.         local target = data.target
  101.        
  102.         if target and target.saddle_fx then
  103.             inst.saddle_fx = target.saddle_fx
  104.             inst.saddle_fx.entity:SetParent(inst.entity)
  105.             inst.saddle_fx.Follower:FollowSymbol(inst.GUID, "swap_saddle", unpack(SaddleOffset[inst.saddle_fx.prefab]))
  106.            
  107.             target.saddle_fx = nil
  108.         end
  109.     end)
  110.  
  111.     self.inst:ListenForEvent("dismounted", function(inst, data)
  112.         local target = data.target
  113.        
  114.         if target and inst.saddle_fx then
  115.             target.saddle_fx = inst.saddle_fx
  116.             target.saddle_fx.entity:SetParent(target.entity)
  117.             target.saddle_fx.Follower:FollowSymbol(target.GUID, "swap_saddle", unpack(SaddleOffset[inst.saddle_fx.prefab]))
  118.         end
  119.        
  120.         inst.saddle_fx = nil
  121.     end)
  122. end)
  123.  
  124. GLOBAL.STRINGS.NAMES.SKELETON_SADDLE = "Bone Saddle"
  125. GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SKELETON_SADDLE = "this beastly ride will help me in my fights"
  126.  
  127. GLOBAL.STRINGS.NAMES.WINGED_SADDLE = "Winged Saddle"
  128. GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.WINGED_SADDLE = "wigfrids helmet..?..!"
  129.  
  130. GLOBAL.STRINGS.NAMES.LUNAR_SADDLE = "Lunar Saddle"
  131. GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.LUNAR_SADDLE = "Can craddle a Polar Star.."
  132.  
  133. GLOBAL.STRINGS.NAMES.SUN_SADDLE = "Solar Saddle"
  134. GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SUN_SADDLE = "Can craddle a Dwarf Star.."
  135.  
  136. GLOBAL.STRINGS.NAMES.SADDLE_FX_SUN = "Dwarf Star"
  137. GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SADDLE_FX_SUN = "Burning fiercely󰀈!"
  138.  
  139. GLOBAL.STRINGS.NAMES.SADDLE_FX_MOON = "Polar Light"
  140. GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.SADDLE_FX_MOON = "How radiant󰀧!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement