Advertisement
Guest User

Untitled

a guest
Feb 6th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.96 KB | None | 0 0
  1. require("Inspired")
  2. LoadIOW()
  3.  
  4. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  5. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  6. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  7. ---------------------------------------------------------------------------------------------------------------Cass-----------------------------------------------------------------------------------------------------------
  8. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  9. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  10. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  11.  
  12.  
  13.  
  14.  
  15. class "Cassiopeia"
  16.  
  17. function Cassiopeia:__init()
  18.  
  19. self._ = {
  20. combo = {
  21. {
  22. function()
  23. return self.doE and self.EREADY and self.Etarget and self:IsPoisoned(self.Etarget) and self:DoMana("Combo", "E")
  24. end,
  25. function()
  26. self:CastE(self.Etarget)
  27. end
  28. },
  29. {
  30. function()
  31. return self.doQ and self.QREADY and self.Qtarget and self:RePoison(self.Qtarget, "Q") and self:DoMana("Combo", "Q")
  32. end,
  33. function()
  34. self:CastQ(self.Qtarget)
  35. end
  36. },
  37. {
  38. function()
  39. return self.doW and self.WREADY and self.Qtarget and self:RePoison(self.Qtarget, "W") and self:DoMana("Combo", "W")
  40. end,
  41. function()
  42. self:CastW(self.Qtarget)
  43. end
  44. },
  45. {
  46. function()
  47. return self.doR and self.RREADY and self.Rtarget and self:Face(self.Rtarget) and self:DoMana("Combo", "R")
  48. end,
  49. function()
  50. self:CastR(self.Rtarget)
  51. end
  52. }
  53. },
  54. harass = {
  55. {
  56. function()
  57. return self.doQ and self.QREADY and self.Qtarget and self:RePoison(self.Qtarget, "Q") and self:DoMana("Harass", "Q")
  58. end,
  59. function()
  60. self:CastQ(self.Qtarget)
  61. end
  62. },
  63. {
  64. function()
  65. return self.doE and self.EREADY and self.Etarget and self:IsPoisoned(self.Etarget) and self:DoMana("Harass", "E")
  66. end,
  67. function()
  68. self:CastE(self.Etarget)
  69. end
  70. },
  71. {
  72. function()
  73. return self.doW and self.WREADY and self.Wtarget and self:RePoison(self.Qtarget, "W") and self:DoMana("Harass", "W")
  74. end,
  75. function()
  76. self:CastW(self.Qtarget)
  77. end
  78. },
  79. {
  80. function()
  81. return self.doR and self.RREADY and self.Rtarget and self:Face(self.Rtarget) and self:DoMana("Harass", "R")
  82. end,
  83. function()
  84. self:CastR(self.Rtarget)
  85. end
  86. }
  87. },
  88. laneclear = {
  89. {
  90. function()
  91. return self.doQ and self.QREADY and self:DoMana("LaneClear", "Q")
  92. end,
  93. function()
  94. local BestPos, BestHit = GetFarmPosition(850, 80, 300-myHero.team)
  95. if BestPos and BestHit and BestHit > 0 then
  96. CastSkillShot(_Q, BestPos)
  97. end
  98. end
  99. },
  100. {
  101. function()
  102. return self.doW and self.WREADY and self:DoMana("LaneClear", "W")
  103. end,
  104. function()
  105. local BestPos, BestHit = GetFarmPosition(850, 100, 300-myHero.team)
  106. if BestPos and BestHit and BestHit > 0 then
  107. CastSkillShot(_W, BestPos)
  108. end
  109. end
  110. },
  111. {
  112. function()
  113. return self.Config.Keys.LaneClear:Value() and self.doE and self.EREADY and self:DoMana("LaneClear", "E")
  114. end,
  115. function()
  116. for minion in GetMinions{team = 300-myHero.team, distance = 700} do
  117. self:CastE(minion)
  118. end
  119. end
  120. },
  121. },
  122. lasthit = {
  123. {
  124. function()
  125. return self.doQ and self.QREADY and self:DoMana("LastHit", "Q")
  126. end,
  127. function()
  128. local BestPos, BestHit = GetFarmPosition(850, 80, 300-myHero.team)
  129. if BestPos and BestHit and BestHit > 0 then
  130. CastSkillShot(_Q, BestPos)
  131. end
  132. end
  133. },
  134. {
  135. function()
  136. return self.doW and self.WREADY and self:DoMana("LastHit", "W")
  137. end,
  138. function()
  139. local BestPos, BestHit = GetFarmPosition(850, 100, 300-myHero.team)
  140. if BestPos and BestHit and BestHit > 0 then
  141. CastSkillShot(_W, BestPos)
  142. end
  143. end
  144. },
  145. {
  146. function()
  147. return self.Config.Keys.LastHit:Value() and self.doE and self.EREADY and self:DoMana("LastHit", "E")
  148. end,
  149. function()
  150. for minion in GetMinions{team = 300-myHero.team, distance = 700} do
  151. if minion.health < myHero:CalcMagicDamage(minion, self.spellData[_E].dmg()) then
  152. self:CastE(minion)
  153. end
  154. end
  155. end
  156. },
  157. },
  158. auto = {
  159. {
  160. function()
  161. return self.QREADY and self.Config.Misc.Tear.Tearok:Value() and self.manapc > self.Config.Misc.Tear.Tear:Value() and (EnemiesAround(myHero.pos, 1000) == 0 and self.Config.Misc.Tear.Tearen:Value())
  162. end,
  163. function()
  164. local dist = GetDistance(GetMousePos())
  165. local vec = Vector(myHero)+Vector(Vector(GetMousePos())-Vector(myHero)):normalized()*math.random(dist-200, math.min(dist+200, 700))
  166. CastSkillShot(_Q, vec)
  167. end
  168. },
  169. {
  170. function()
  171.  
  172. end,
  173. function()
  174.  
  175. end
  176. }
  177. }
  178. }
  179.  
  180.  
  181. self.spellData = {
  182. [_Q] = {dmg = function () return 40 + 35*GetCastLevel(myHero,_Q) + 0.45 * myHero.ap end, mana = function() return 30 + 10*GetCastLevel(myHero,_Q) end, range = 850},
  183. [_W] = {dmg = function () return 5 + 5*GetCastLevel(myHero,_W) + 0.10 * myHero.ap end, mana = function() return 30 + 10*GetCastLevel(myHero,_Q) end, range = 850},
  184. [_E] = {dmg = function () return 30 + 25*GetCastLevel(myHero,_E) + 0.55 * myHero.ap end, mana = function() return 40 + 10*GetCastLevel(myHero,_Q) end, range = 700},
  185. [_R] = {dmg = function () return 50 + 100*GetCastLevel(myHero,_R) + 0.50 * myHero.ap end, mana = 100, range = 825},
  186. }
  187.  
  188. self.stacks = {}
  189. self.qpoison = {}
  190. self.wpoison = {}
  191. self.lastTick = {}
  192. self.maxTicks = {}
  193. do self.____ = {} self._____ = {} for k, v in pairs(self._) do self.____[k] = 0 self._____[k] = #v end end
  194. Callback.Add("Tick", function() self:Tick() end)
  195. Callback.Add("Draw", function() self:Draw() end)
  196. Callback.Add("UpdateBuff", function (Object,Buff) self:UpdateBuff(Object, Buff) end)
  197. Callback.Add("RemoveBuff", function (Object,Buff) self:RemoveBuff(Object, Buff) end)
  198. Callback.Add("ProcessSpell", function(u,s) self:ProcessSpell(u,s) end)
  199. Callback.Add("Animation", function(u,a) self:Animation(u,a) end)
  200. Callback.Add("ProcessSpellComplete", function(u,s) self:ProcessSpellComplete(u,s) end)
  201.  
  202. self.Config = MenuConfig("PAMcass", "PAM Cassiopeia")
  203. self.Config:Menu("Combo", "Combo")
  204. self.Config.Combo:Boolean("Q", "Use Q", true)
  205. self.Config.Combo:Boolean("W", "Use W", true)
  206. self.Config.Combo:Boolean("E", "Use E", true)
  207. self.Config.Combo:Boolean("R", "Use R", true)
  208. self.Config:Menu("Harass", "Harass")
  209. self.Config.Harass:Boolean("Q", "Use Q", true)
  210. self.Config.Harass:Boolean("W", "Use W", false)
  211. self.Config.Harass:Boolean("E", "Use E", true)
  212. self.Config.Harass:Boolean("R", "Use R", false)
  213. self.Config:Menu("LastHit", "LastHit")
  214. self.Config.LastHit:Boolean("Q", "Use Q", true)
  215. self.Config.LastHit:Boolean("W", "Use W", false)
  216. self.Config.LastHit:Boolean("E", "Use E", true)
  217. self.Config.LastHit:Boolean("R", "Use R", false)
  218. self.Config:Menu("LaneClear", "LaneClear")
  219. self.Config.LaneClear:Boolean("Q", "Use Q", true)
  220. self.Config.LaneClear:Boolean("W", "Use W", true)
  221. self.Config.LaneClear:Boolean("E", "Use E", true)
  222. self.Config.LaneClear:Boolean("nop", "Only on Poisoned Enemies", true)
  223. self.Config.LaneClear:Boolean("R", "Use R", false)
  224. self.Config:Menu("Killsteal", "Killsteal")
  225. self.Config.Killsteal:Boolean("Q", "Use Q", true)
  226. self.Config.Killsteal:Boolean("W", "Use W", false)
  227. self.Config.Killsteal:Boolean("E", "Use E", true)
  228. self.Config.Killsteal:Boolean("R", "Use R", false)
  229. if Ignite then
  230. self.Config.Killsteal:Boolean("I", "Use Ignite", true)
  231. end
  232. self.Config:Menu("Misc", "Misc")
  233. self.Config.Misc:Boolean("Q", "Use Q", true)
  234. self.Config.Misc:Menu("UltSettings", "UltSettings")
  235. self.Config.Misc.UltSettings:Boolean("AutoR", "Auto R", true)
  236. self.Config.Misc.UltSettings:Slider("PARTYPARTY", "Enemies (Fest Host Mange)", 2, 1, 5, 1)
  237. self.Config.Misc:Menu("Tear", "Tear Settings")
  238. self.Config.Misc.Tear:Boolean("Tearok", "Stack Tear", true)
  239. self.Config.Misc.Tear:Boolean("Tearen", "with Enemies close", false)
  240. self.Config.Misc.Tear:Slider("Tear", "have atleast Mana%",70, 0, 100)
  241. self.Config:Menu("Mana", "Mana Settings")
  242. self.Config.Mana:Menu("Combo", "Combo")
  243. self.Config.Mana.Combo:Slider("Q", "Q Mana%", 0, 0, 100)
  244. self.Config.Mana.Combo:Slider("W", "W Mana%", 0, 0, 100)
  245. self.Config.Mana.Combo:Slider("E", "E Mana%", 0, 0, 100)
  246. self.Config.Mana.Combo:Slider("R", "R Mana%", 0, 0, 100)
  247. self.Config.Mana:Menu("Harass", "Harass")
  248. self.Config.Mana.Harass:Slider("Q", "Q Mana%", 20, 0, 100)
  249. self.Config.Mana.Harass:Slider("W", "W Mana%", 40, 0, 100)
  250. self.Config.Mana.Harass:Slider("E", "E Mana%", 20, 0, 100)
  251. self.Config.Mana.Harass:Slider("R", "R Mana%", 50, 0, 100)
  252. self.Config.Mana:Menu("LastHit", "LastHit")
  253. self.Config.Mana.LastHit:Slider("Q", "Q Mana%", 20, 0, 100)
  254. self.Config.Mana.LastHit:Slider("W", "W Mana%", 50, 0, 100)
  255. self.Config.Mana.LastHit:Slider("E", "E Mana%", 10, 0, 100)
  256. self.Config.Mana.LastHit:Slider("R", "R Mana%", 50, 0, 100)
  257. self.Config.Mana:Menu("LaneClear", "LaneClear")
  258. self.Config.Mana.LaneClear:Slider("Q", "Q Mana%", 20, 0, 100)
  259. self.Config.Mana.LaneClear:Slider("W", "W Mana%", 30, 0, 100)
  260. self.Config.Mana.LaneClear:Slider("E", "E Mana%", 10, 0, 100)
  261. self.Config.Mana.LaneClear:Slider("R", "R Mana%", 50, 0, 100)
  262. self.Config.Mana:Menu("Killsteal", "Killsteal")
  263. self.Config.Mana.Killsteal:Slider("Q", "Q Mana%", 0, 0, 100)
  264. self.Config.Mana.Killsteal:Slider("W", "W Mana%", 0, 0, 100)
  265. self.Config.Mana.Killsteal:Slider("E", "E Mana%", 0, 0, 100)
  266. self.Config.Mana.Killsteal:Slider("R", "R Mana%", 0, 0, 100)
  267. self.Config:Menu("Draw", "Draws")
  268. self.Config.Draw:Boolean("DmgDraw", "DmgDraw", true)
  269. for i = 0,3 do
  270. local str = {[0] = "Q", [1] = "W", [2] = "E", [3] = "R"}
  271. self.Config.Draw:Boolean(str[i], "Draw "..str[i], true)
  272. self.Config.Draw:Boolean(str[i].."oom", "Draw if out of Mana"..str[i], false)
  273. self.Config.Draw:Boolean(str[i].."cd", "Draw if not ready"..str[i], false)
  274. self.Config.Draw:ColorPick(str[i].."c", "Draw Color", {255, 25, 155, 175})
  275. end
  276. self.Config:Menu("Keys", "Keys")
  277. self.Config.Keys:KeyBinding("Combo", "Combo", 32)
  278. self.Config.Keys:KeyBinding("Harass", "Harass", string.byte("C"))
  279. self.Config.Keys:KeyBinding("LaneClear", "LaneClear", string.byte("V"))
  280. self.Config.Keys:KeyBinding("LastHit", "LastHit", string.byte("X"))
  281. self.Qts = TargetSelector(900,TARGET_LESS_CAST, DAMAGE_MAGIC, true, false)
  282. self.Ets = TargetSelector(700,TARGET_LESS_CAST, DAMAGE_MAGIC, true, false)
  283. self.Rts = TargetSelector(825,TARGET_LESS_CAST, DAMAGE_MAGIC, true, false)
  284. self.doQ = false
  285. self.doW = false
  286. self.doE = false
  287. self.doR = false
  288. self.currentTime = 0
  289. self.eWind = 0.125
  290. self.qDelay = 0.4
  291. self.wDelay = 0.5
  292. self.colors = { 0xDFFFE258, 0xDF8866F4, 0xDF55F855, 0xDFFF5858 }
  293. end
  294.  
  295. function Cassiopeia:Checks()
  296. self.doQ = (self.Config.Keys.Combo:Value() and self.Config.Combo.Q:Value()) or (self.Config.Keys.Harass:Value() and self.Config.Harass.Q:Value()) or (self.Config.Keys.LaneClear:Value() and self.Config.LaneClear.Q:Value()) or (self.Config.Keys.LastHit:Value() and self.Config.LastHit.Q:Value())
  297. self.doW = (self.Config.Keys.Combo:Value() and self.Config.Combo.W:Value()) or (self.Config.Keys.Harass:Value() and self.Config.Harass.W:Value()) or (self.Config.Keys.LaneClear:Value() and self.Config.LaneClear.W:Value()) or (self.Config.Keys.LastHit:Value() and self.Config.LastHit.W:Value())
  298. self.doE = (self.Config.Keys.Combo:Value() and self.Config.Combo.E:Value()) or (self.Config.Keys.Harass:Value() and self.Config.Harass.E:Value()) or (self.Config.Keys.LaneClear:Value() and self.Config.LaneClear.E:Value()) or (self.Config.Keys.LastHit:Value() and self.Config.LastHit.E:Value())
  299. self.doR = self.Config.Keys.Combo:Value() and self.Config.Combo.R:Value()
  300. self.QREADY = CanUseSpell(myHero,_Q) == READY
  301. self.WREADY = CanUseSpell(myHero,_W) == READY
  302. self.EREADY = CanUseSpell(myHero,_E) == READY
  303. self.RREADY = CanUseSpell(myHero,_R) == READY
  304. if Ignite then
  305. self.IREADY = CanUseSpell(myHero, Ignite) == READY
  306. end
  307. self.Qtarget = self.Qts:GetTarget()
  308. self.Etarget = self.Ets:GetTarget()
  309. self.Rtarget = self.Rts:GetTarget()
  310. self.manapc = GetCurrentMana(myHero)/GetMaxMana(myHero)*100
  311. self.currentTime = GetGameTimer()
  312. end
  313.  
  314. function Cassiopeia:Tick()
  315. print(self.manapc)
  316. self:Checks()
  317. for _, v in pairs({"Combo", "Harass", "LaneClear", "LastHit"}) do
  318. if self.Config.Keys[v]:Value() then
  319. self:Advance(v);break;
  320. end
  321. end
  322. self:Advance("auto")
  323. for i, v in pairs(GetEnemyHeroes()) do
  324. local p = GetMEC(175, 825, v)
  325. if p and EnemiesAround(p, 175) >= self.Config.Misc.UltSettings.PARTYPARTY:Value() then
  326. CastSkillShot(_R, p)
  327. end
  328. end
  329. self:Killsteal()
  330. end
  331.  
  332. function Cassiopeia:Advance(___)
  333. do local __ = ___:lower() local function ______(__) if __[1](_) then __[2](___) end end self.____[__] = self.____[__] + 1 if self.____[__] > self._____[__] then self.____[__] = 1 end ______(self._[__][self.____[__]]) end
  334. end
  335.  
  336. function Cassiopeia:Draw()
  337. DrawCircle(GetOrigin(myHero), 700, 0, 3, GoS.Green)
  338. for i,s in pairs({"Q","W","E","R"}) do
  339. if self.Config.Draw[s]:Value() then
  340. DrawCircle(myHero.pos, self.spellData[i-1].range, 1, 32, self.Config.Draw[s.."c"]:Value())
  341. end
  342. end
  343.  
  344. if self.Config.Draw.DmgDraw:Value() then
  345. for i, enemy in pairs(GetEnemyHeroes()) do
  346. if ValidTarget(enemy) then
  347. local barPos = GetHPBarPos(enemy)
  348. if barPos.x > 0 and barPos.y > 0 then
  349. local sdmg = {}
  350. for slot = 0, 3 do
  351. sdmg[slot] = CanUseSpell(myHero, slot) == 0 and CalcDamage(myHero, enemy, 0, self.spellData[slot].dmg()) or 0
  352. end
  353. local mhp = GetMaxHP(enemy)
  354. local chp = GetCurrentHP(enemy)
  355. local offset = 103 * (chp/mhp)
  356. for __, spell in pairs({"Q", "W", "E", "R"}) do
  357. if sdmg[__-1] > 0 then
  358. local exit
  359. local off = 103*(sdmg[__-1]/mhp)
  360. if off > 103 then
  361. off = 103
  362. exit = 0
  363. end
  364. local _ = 2*__
  365. DrawLine(barPos.x+1+offset-off, barPos.y-1, barPos.x+1+offset, barPos.y-1, 5, self.colors[__])
  366. DrawLine(barPos.x+1+offset-off, barPos.y-1, barPos.x+1+offset-off, barPos.y+10-10*_, 1, self.colors[__])
  367. DrawText(spell, 11, barPos.x+1+offset-off, barPos.y-5-10*_, self.colors[__])
  368. DrawText(""..math.round(sdmg[__-1]), 10, barPos.x+4+offset-off, barPos.y+5-10*_, self.colors[__])
  369. offset = offset - off
  370. if exit then return end
  371. end
  372. end
  373. end
  374. end
  375. end
  376. end
  377. end
  378.  
  379. function Cassiopeia:Killsteal()
  380. local Qdmg = (self.Config.Killsteal.Q:Value() and self.QREADY) and self.spellData[_Q].dmg() or 0
  381. local Wdmg = (self.Config.Killsteal.W:Value() and self.WREADY) and self.spellData[_W].dmg() or 0
  382. local Edmg = (self.Config.Killsteal.E:Value() and self.EREADY) and self.spellData[_E].dmg() or 0
  383. local Rdmg = (self.Config.Killsteal.R:Value() and self.RREADY) and self.spellData[_R].dmg() or 0
  384. for i, enemy in pairs(GetEnemyHeroes()) do
  385. local Admg = CalcDamage(myHero, enemy, 0, Qdmg/3)
  386. local Bdmg = CalcDamage(myHero, enemy, 0, Wdmg)
  387. local Cdmg = CalcDamage(myHero, enemy, 0, Edmg)
  388. local Ddmg = CalcDamage(myHero, enemy, 0, Rdmg)
  389. local enemyhp = GetCurrentHP(enemy) + GetDmgShield(enemy) + GetMagicShield(enemy)
  390. if enemy then
  391. if Ignite and self.IREADY and self.Config.Killsteal.I:Value() and ValidTarget(enemy, 600) then
  392. if enemyhp+20+(GetHPRegen(enemy)*0.5) < Admg*3 + Cdmg + (50+20*myHero.level) then
  393. CastTargetSpell(enemy, Ignite)
  394. self:CastQ(enemy)
  395. DelayAction(function() self:CastE(enemy) end, 0.125)
  396. end
  397. end
  398. if ValidTarget(enemy, 850) then
  399. if enemyhp < Cdmg then
  400. self:CastE(enemy)
  401. elseif enemyhp < Admg + Cdmg and self.QREADY and self.EREADY then
  402. self:CastQ(enemy)
  403. DelayAction(function() self:CastE(enemy) end, 0.125)
  404. elseif enemyhp < Admg + Bdmg and self.WREADY and self.EREADY then
  405. self:CastW(enemy)
  406. DelayAction(function() self:CastE(enemy) end, 0.250)
  407. elseif enemyhp < Admg + Bdmg + Cdmg and self.QREADY and self.WREADY and self.EREADY then
  408. self:CastW(enemy)
  409. DelayAction(function() self:CastQ(enemy) DelayAction(function() self:CastE(enemy) end, 0.125) end, 0.250)
  410. end
  411. elseif ValidTarget(enemy, 850) then
  412. if enemyhp+(GetHPRegen(enemy)*3) < Admg*3 then
  413. self:CastQ(enemy)
  414. end
  415. end
  416. end
  417. end
  418. end
  419.  
  420. function Cassiopeia:ProcessSpellComplete(unit, spell)
  421. if unit.isMe then
  422. end
  423. end
  424.  
  425. function Cassiopeia:ProcessSpell(unit, spell)
  426. if unit.isMe then
  427.  
  428. end
  429. end
  430.  
  431. function Cassiopeia:Animation(unit, animation)
  432.  
  433. end
  434.  
  435. function Cassiopeia:UpdateBuff(Object, Buff)
  436. if Object == self.Qtarget then
  437. --cassiopeianoxiousblastpoison
  438. --cassiopeiamiasmapoison
  439. --cassiopeiatwinfangdebuff -- count
  440. --cassiopeiapretrifyinggazestun
  441. -- print(Buff.Name)
  442. -- print(Buff.Count)
  443. end
  444. if Object and Buff and Object.team ~= myHero.team then
  445. if Buff.Name == "cassiopeiatwinfangdebuff" then
  446. self.stacks[GetNetworkID(Object)] = Buff.Count
  447. elseif Buff.Name == "cassiopeianoxiousblastpoison" then
  448. self.qpoison[GetNetworkID(Object)] = Buff.ExpireTime
  449. elseif Buff.Name == "cassiopeiamiasmapoison" then
  450. self.wpoison[GetNetworkID(Object)] = Buff.ExpireTime
  451. end
  452. end
  453. end
  454.  
  455. function Cassiopeia:RemoveBuff(Object, Buff)
  456. if Object and Buff and Object.team ~= myHero.team then
  457. if Buff.Name == "cassiopeiatwinfangdebuff" then
  458. self.stacks[GetNetworkID(Object)] = 0
  459. end
  460. end
  461. end
  462.  
  463. function Cassiopeia:Face(unit)
  464. return GetDistance(GetPredictionForPlayer(GetOrigin(myHero), unit, GetMoveSpeed(unit), math.huge, 500, 850, 130, false, true).PredPos) < GetDistance(unit)*0.90075
  465. end
  466.  
  467. function Cassiopeia:IsPoisoned(unit)
  468. return (self.qpoison[GetNetworkID(unit)] or self.wpoison[GetNetworkID(unit)] or 0) > self.currentTime + self.eWind
  469. end
  470.  
  471. function Cassiopeia:RePoison(unit, spell)
  472. return (self[spell:lower().."poison"][GetNetworkID(unit)] or 0) < self.currentTime - self[spell:lower().."Delay"]
  473. end
  474.  
  475. function Cassiopeia:DoMana(mode, spell)
  476. return self.Config.Mana[mode][spell]:Value() < self.manapc
  477. end
  478.  
  479. function Cassiopeia:CastQ(unit)
  480. local pred = GetPredictionForPlayer(GetOrigin(myHero), unit, GetMoveSpeed(unit), math.huge, 400, 850, 130, false, true)
  481. if pred.HitChance == 1 then
  482. CastSkillShot(_Q, pred.PredPos)
  483. end
  484. end
  485.  
  486. function Cassiopeia:CastW(unit)
  487. local pred = GetPredictionForPlayer(GetOrigin(myHero), unit, GetMoveSpeed(unit), math.huge, 250, 850, 125, false, true)
  488. if pred.HitChance == 1 then
  489. CastSkillShot(_W, pred.PredPos)
  490. end
  491. end
  492.  
  493. function Cassiopeia:CastE(unit)
  494. CastTargetSpell(unit, _E)
  495. end
  496.  
  497. function Cassiopeia:CastR(unit)
  498. local pred = GetPredictionForPlayer(GetOrigin(myHero), unit, GetMoveSpeed(unit), math.huge, 500, 825, GetDistance(unit)*0.4, false, false)
  499. if pred.HitChance == 1 then
  500. CastSkillShot(_R, pred.PredPos)
  501. end
  502. end
  503.  
  504. Cassiopeia()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement