Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local CloverFunctions = {
- --{item, value to set on damager, value to check on parent, chance (0 to 1), bonus proc chance per stack (0 to 1)}
- missile1 = {item = Item.find("AtG Missile Mk. 1", "vanilla"), damagerVar = "missile", parentVar = "missile", chance = 0.1, chanceBonus = 0.1},
- missile2 = {item = Item.find("AtG Missile Mk. 2", "vanilla"), damagerVar = "missile_tri", parentVar = "missile_tri", chance = 0.07, chanceBonus = 0.07},
- gloves = {item = Item.find("Boxing Gloves", "vanilla"), damagerVar = "knockback_glove", parentVar = "knockback", chance = 0.06, chanceBonus = 0.05},
- ifrit = {item = Item.find("Ifrit's Horn", "vanilla"), damagerVar = "horn", parentVar = "horn", chance = 0.08, chanceBonus = 0},
- --spark = {item = Item.find("Legendary Spark", "vanilla"), damagerVar = "spark", parentVar = "spark", chance = 0.08, chanceBonus = 0},
- mortar = {item = Item.find("Mortar Tube", "vanilla"), damagerVar = "mortar", parentVar = "mortar", chance = 0.09, chanceBonus = 0},
- plasma = {item = Item.find("Plasma Chain", "vanilla"), damagerVar = "plasma", parentVar = "plasma", chance = 0.05, chanceBonus = 0},
- knife = {item = Item.find("Rusty Knife", "vanilla"), damagerVar = "bleed", parentVar = "bleed", chance = 0.15, chanceBonus = 0.15},
- sticky = {item = Item.find("Sticky Bomb", "vanilla"), damagerVar = "sticky", parentVar = "sticky", chance = 0.08, chanceBonus = 0},
- instakill = {item = Item.find("Telescopic Sight", "vanilla"), damagerVar = "scope", parentVar = "scope", chance = 0.01, chanceBonus = 0.005},
- thallium = {item = Item.find("Thallium", "vanilla"), damagerVar = "thallium", parentVar = "thallium", chance = 0.1, chanceBonus = 0},
- ukulele = {item = Item.find("Ukulele", "vanilla"), damagerVar = "lightning", parentVar = "lightning", chance = 0.2, chanceBonus = 0},
- willOWisp = {item = Item.find("Will-o'-the-wisp", "vanilla"), damagerVar = "missile", parentVar = "", chance = 0, chanceBonus = 0},
- nug = {item = Item.find("Meat Nugget", "vanilla"), damagerVar = "missile", parentVar = "", chance = 0, chanceBonus = 0},
- otherClover = {item = Item.find("56 Leaf Clover", "vanilla"), damagerVar = "missile", parentVar = "", chance = 0, chanceBonus = 0},
- armsRace = {item = Item.find("Arms Race", "vanilla"), damagerVar = "missile", parentVar = "", chance = 0, chanceBonus = 0},
- embryo = {item = Item.find("Beating Embryo", "vanilla"), damagerVar = "missile", parentVar = "", chance = 0, chanceBonus = 0},
- grenade = {item = Item.find("Concussion Grenade", "vanilla"), damagerVar = "missile", parentVar = "", chance = 0, chanceBonus = 0},
- scarf = {item = Item.find("Hermit's Scarf", "vanilla"), damagerVar = "missile", parentVar = "", chance = 0, chanceBonus = 0},
- icecube = {item = Item.find("Permafrost", "vanilla"), damagerVar = "missile", parentVar = "", chance = 0, chanceBonus = 0},
- taser = {item = Item.find("Taser", "vanilla"), damagerVar = "missile", parentVar = "", chance = 0, chanceBonus = 0}
- }
- local clover = Item("57 Leaf Clover")
- clover.pickupText = "Luck is on your side."
- clover.sprite = Sprite.load("Items/clover.png", 1, 16, 16)
- local cloverSound = Sound.find("Use", "vanilla")
- clover:setTier("rare")
- clover:setLog{
- group = "rare",
- description = "All random effects are rolled +1 time(s) for a better outcome.",
- story = "DUDE. HOLY ****",
- destination = "777,\nLucky Drop,\nEarth",
- date = "--/--/2056"
- }
- registercallback("onActorInit", function(actor)
- actor:set("luck", 0)
- end)
- clover:addCallback("pickup", function(player)
- player:set("luck", player:get("luck") + 1)
- end)
- local CloverCheck = function(actor)
- local hasClover = false
- if actor ~= nil then
- if isa(actor, "PlayerInstance") then
- if actor:countItem(clover) > 0 then
- hasClover = true
- end
- end
- end
- return hasClover
- end
- local CloverReRoll = function(damager, damagerVar, parentVar, chance, chanceBonus, itemCount)
- local parent = damager:getParent()
- if CloverCheck(parent) then
- if math.random() <= (chance + (chanceBonus * (itemCount - 1))) then
- cloverSound:play(0.8 + math.random()*0.2)
- if type(parentVar) == "String" then
- damager:set(damagerVar, parent:get(parentVar) or 0)
- else
- damager:set(damagerVar, parentVar)
- end
- end
- end
- end
- registercallback("preHit", function(damager)
- local parent = damager:getParent()
- if CloverCheck(parent) then
- if damager:get("critical") ~= 1 then
- for i = 0, parent:get("luck") or 0 do
- if math.random() * 100 <= parent:get("critical_chance") then
- cloverSound:play(0.8 + math.random()*0.2)
- damager:set("critical", 1)
- damager:set("damage", damager:get("damage") * 2)
- damager:set("damage_fake", damager:get("damage_fake") * 2)
- end
- end
- end
- --On Hit Items--
- for _, itemCheck in pairs(CloverFunctions) do
- if itemCheck.item ~= nil then
- if parent:countItem(itemCheck.item) > 0 then
- if damager:get(itemCheck.damagerVar) ~= itemCheck.parentVar then
- for i = 0, parent:get("luck") or 1 do
- CloverReRoll(damager, itemCheck.damagerVar, itemCheck.parentVar, itemCheck.chance, itemCheck.chanceBonus, parent:countItem(itemCheck.item))
- end
- end
- end
- end
- end
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement