-- TODO: Use safe sandboxed environment
--require 'Scripts/safe_load.lua'

specialAttacks = ShopGroup:create("SpecialAttacks")
specialAttacks:setName("SpecialAttacks")
specialAttacks:setDescription("SpecialAttacksDescription")

stack = ShopStack:create("Typhoon")
stack:setName("TyphoonName")
stack:setDescription("TyphoonDescription")
stack:setShopImagePath("Images/UI/Gym/icon_skill_fistnado.png")
sound = SoundComponent:create("Typhoon")
stack:addComponent("SoundComponent", sound)
upgrade = UpgradeComponent:create()
upgrade:setName("TyphoonVariable")
stack:addComponent("UpgradeComponent", upgrade)
specialComponent = SpecialComponent:create()
specialComponent:setAnimationKey("special_icon_fistnado")
stack:addComponent("SpecialComponent", specialComponent)
specialAttacks:getShopObjects():addObject(stack)

item = ShopItem:create("Typhoon0")
item:addAnimationFile("hero1_typhoon_animation")
earn = EarnComponent:create()
earn:setRequirement(NeighbourhoodRequirement:create("Neighbourhood2"))
item:addComponent("EarnComponent", earn)
buy = BuyComponent:create(0)
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("3")
item:addComponent("UpgradeComponent", upgrade)
typhoonTrigger = ActiveTrigger:create("Special")
typhoonTrigger:addEffect(Typhoon:create(1.0, 3.0))
typhoonTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(typhoonTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("Typhoon1")
item:addAnimationFile("hero1_typhoon_animation")
buy = BuyComponent:create(100)
buy:setRequirement(InventoryRequirement:create("Typhoon0", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("4")
item:addComponent("UpgradeComponent", upgrade)
typhoonTrigger = ActiveTrigger:create("Special")
typhoonTrigger:addEffect(Typhoon:create(1.0, 4.0))
typhoonTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(typhoonTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("Typhoon2")
item:addAnimationFile("hero1_typhoon_animation")
buy = BuyComponent:create(200)
buy:setRequirement(InventoryRequirement:create("Typhoon1", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("5")
item:addComponent("UpgradeComponent", upgrade)
typhoonTrigger = ActiveTrigger:create("Special")
typhoonTrigger:addEffect(Typhoon:create(1.0, 5.0))
typhoonTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(typhoonTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("Typhoon3")
item:addAnimationFile("hero1_typhoon_animation")
buy = BuyComponent:create(300)
buy:setRequirement(InventoryRequirement:create("Typhoon2", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("6")
item:addComponent("UpgradeComponent", upgrade)
typhoonTrigger = ActiveTrigger:create("Special")
typhoonTrigger:addEffect(Typhoon:create(1.0, 6.0))
typhoonTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(typhoonTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("Typhoon4")
item:addAnimationFile("hero1_typhoon_animation")
buy = BuyComponent:create(400)
buy:setRequirement(InventoryRequirement:create("Typhoon3", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("7")
item:addComponent("UpgradeComponent", upgrade)
typhoonTrigger = ActiveTrigger:create("Special")
typhoonTrigger:addEffect(Typhoon:create(1.0, 7.0))
typhoonTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(typhoonTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("Typhoon5")
item:addAnimationFile("hero1_typhoon_animation")
buy = BuyComponent:create(500)
buy:setRequirement(InventoryRequirement:create("Typhoon4", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("8")
item:addComponent("UpgradeComponent", upgrade)
typhoonTrigger = ActiveTrigger:create("Special")
typhoonTrigger:addEffect(Typhoon:create(1.0, 8.0))
typhoonTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(typhoonTrigger)
stack:getShopItems():addObject(item)

stack = ShopStack:create("OrbitalPunch")
stack:setName("OrbitalPunchName")
stack:setDescription("OrbitalPunchDescription")
stack:setShopImagePath("Images/UI/Gym/icon_skill_orbital.png")
sound = SoundComponent:create("OrbitalPunch")
stack:addComponent("SoundComponent", sound)
upgrade = UpgradeComponent:create()
upgrade:setName("OrbitalPunchVariable")
stack:addComponent("UpgradeComponent", upgrade)
specialComponent = SpecialComponent:create()
specialComponent:setAnimationKey("special_icon_orbital")
stack:addComponent("SpecialComponent", specialComponent)
specialAttacks:getShopObjects():addObject(stack)

item = ShopItem:create("OrbitalPunch0")
item:addAnimationFile("hero1_orbital_animation")
earn = EarnComponent:create()
earn:setRequirement(NeighbourhoodRequirement:create("Neighbourhood4"))
item:addComponent("EarnComponent", earn)
buy = BuyComponent:create(0)
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("100")
item:addComponent("UpgradeComponent", upgrade)
orbitalPunchTrigger = ActiveTrigger:create("Special")
orbitalPunchTrigger:addEffect(OrbitalPunch:create(100, 1.0))
orbitalPunchTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(orbitalPunchTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("OrbitalPunch1")
item:addAnimationFile("hero1_orbital_animation")
buy = BuyComponent:create(100)
buy:setRequirement(InventoryRequirement:create("OrbitalPunch0", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("160")
item:addComponent("UpgradeComponent", upgrade)
orbitalPunchTrigger = ActiveTrigger:create("Special")
orbitalPunchTrigger:addEffect(OrbitalPunch:create(160, 1.0))
orbitalPunchTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(orbitalPunchTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("OrbitalPunch2")
item:addAnimationFile("hero1_orbital_animation")
buy = BuyComponent:create(200)
buy:setRequirement(InventoryRequirement:create("OrbitalPunch1", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("220")
item:addComponent("UpgradeComponent", upgrade)
orbitalPunchTrigger = ActiveTrigger:create("Special")
orbitalPunchTrigger:addEffect(OrbitalPunch:create(220, 1.0))
orbitalPunchTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(orbitalPunchTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("OrbitalPunch3")
item:addAnimationFile("hero1_orbital_animation")
buy = BuyComponent:create(300)
buy:setRequirement(InventoryRequirement:create("OrbitalPunch2", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("280")
item:addComponent("UpgradeComponent", upgrade)
orbitalPunchTrigger = ActiveTrigger:create("Special")
orbitalPunchTrigger:addEffect(OrbitalPunch:create(280, 1.0))
orbitalPunchTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(orbitalPunchTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("OrbitalPunch4")
item:addAnimationFile("hero1_orbital_animation")
buy = BuyComponent:create(400)
buy:setRequirement(InventoryRequirement:create("OrbitalPunch3", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("340")
item:addComponent("UpgradeComponent", upgrade)
orbitalPunchTrigger = ActiveTrigger:create("Special")
orbitalPunchTrigger:addEffect(OrbitalPunch:create(340, 1.0))
orbitalPunchTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(orbitalPunchTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("OrbitalPunch5")
item:addAnimationFile("hero1_orbital_animation")
buy = BuyComponent:create(500)
buy:setRequirement(InventoryRequirement:create("OrbitalPunch4", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("400")
item:addComponent("UpgradeComponent", upgrade)
orbitalPunchTrigger = ActiveTrigger:create("Special")
orbitalPunchTrigger:addEffect(OrbitalPunch:create(400, 1.0))
orbitalPunchTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(orbitalPunchTrigger)
stack:getShopItems():addObject(item)

stack = ShopStack:create("EaglePunch")
stack:setName("EaglePunchName")
stack:setDescription("EaglePunchDescription")
stack:setShopImagePath("Images/UI/Gym/icon_skill_eagle.png")
sound = SoundComponent:create("EaglePunch")
stack:addComponent("SoundComponent", sound)
upgrade = UpgradeComponent:create()
upgrade:setName("EaglePunchVariable")
stack:addComponent("UpgradeComponent", upgrade)
specialComponent = SpecialComponent:create()
specialComponent:setAnimationKey("special_icon_eagle")
stack:addComponent("SpecialComponent", specialComponent)
specialAttacks:getShopObjects():addObject(stack)

item = ShopItem:create("EaglePunch0")
item:addAnimationFile("hero1_eagle_animation")
earn = EarnComponent:create()
earn:setRequirement(NeighbourhoodRequirement:create("Neighbourhood6"))
item:addComponent("EarnComponent", earn)
buy = BuyComponent:create(0)
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("50")
item:addComponent("UpgradeComponent", upgrade)
eaglePunchTrigger = ActiveTrigger:create("Special")
eaglePunchTrigger:addEffect(EaglePunch:create(50))
eaglePunchTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(eaglePunchTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("EaglePunch1")
item:addAnimationFile("hero1_eagle_animation")
buy = BuyComponent:create(100)
buy:setRequirement(InventoryRequirement:create("EaglePunch0", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("70")
item:addComponent("UpgradeComponent", upgrade)
eaglePunchTrigger = ActiveTrigger:create("Special")
eaglePunchTrigger:addEffect(EaglePunch:create(70))
eaglePunchTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(eaglePunchTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("EaglePunch2")
item:addAnimationFile("hero1_eagle_animation")
buy = BuyComponent:create(200)
buy:setRequirement(InventoryRequirement:create("EaglePunch1", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("90")
item:addComponent("UpgradeComponent", upgrade)
eaglePunchTrigger = ActiveTrigger:create("Special")
eaglePunchTrigger:addEffect(EaglePunch:create(90))
eaglePunchTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(eaglePunchTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("EaglePunch3")
item:addAnimationFile("hero1_eagle_animation")
buy = BuyComponent:create(300)
buy:setRequirement(InventoryRequirement:create("EaglePunch2", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("110")
item:addComponent("UpgradeComponent", upgrade)
eaglePunchTrigger = ActiveTrigger:create("Special")
eaglePunchTrigger:addEffect(EaglePunch:create(110))
eaglePunchTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(eaglePunchTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("EaglePunch4")
item:addAnimationFile("hero1_eagle_animation")
buy = BuyComponent:create(400)
buy:setRequirement(InventoryRequirement:create("EaglePunch3", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("130")
item:addComponent("UpgradeComponent", upgrade)
eaglePunchTrigger = ActiveTrigger:create("Special")
eaglePunchTrigger:addEffect(EaglePunch:create(130))
eaglePunchTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(eaglePunchTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("EaglePunch5")
item:addAnimationFile("hero1_eagle_animation")
buy = BuyComponent:create(500)
buy:setRequirement(InventoryRequirement:create("EaglePunch4", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("150")
item:addComponent("UpgradeComponent", upgrade)
eaglePunchTrigger = ActiveTrigger:create("Special")
eaglePunchTrigger:addEffect(EaglePunch:create(150))
eaglePunchTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(eaglePunchTrigger)
stack:getShopItems():addObject(item)

stack = ShopStack:create("FistOfTheHeavens")
stack:setName("FistOfTheHeavensName")
stack:setDescription("FistOfTheHeavensDescription")
stack:setShopImagePath("Images/UI/Gym/icon_skill_heavens.png")
sound = SoundComponent:create("FistOfTheHeavens")
stack:addComponent("SoundComponent", sound)
upgrade = UpgradeComponent:create()
upgrade:setName("FistOfTheHeavensVariable")
stack:addComponent("UpgradeComponent", upgrade)
specialComponent = SpecialComponent:create()
specialComponent:setAnimationKey("special_icon_fist")
stack:addComponent("SpecialComponent", specialComponent)
specialAttacks:getShopObjects():addObject(stack)

item = ShopItem:create("FistOfTheHeavens0")
item:addAnimationFile("hero1_cast_animation")
earn = EarnComponent:create()
earn:setRequirement(NeighbourhoodRequirement:create("Neighbourhood8"))
item:addComponent("EarnComponent", earn)
buy = BuyComponent:create(0)
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("25")
item:addComponent("UpgradeComponent", upgrade)
fistOfTheHeavensTrigger = ActiveTrigger:create("Special")
fistOfTheHeavensTrigger:addEffect(FistOfTheHeavens:create(25))
fistOfTheHeavensTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(fistOfTheHeavensTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("FistOfTheHeavens1")
item:addAnimationFile("hero1_cast_animation")
buy = BuyComponent:create(100)
buy:setRequirement(InventoryRequirement:create("FistOfTheHeavens0", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("35")
item:addComponent("UpgradeComponent", upgrade)
fistOfTheHeavensTrigger = ActiveTrigger:create("Special")
fistOfTheHeavensTrigger:addEffect(FistOfTheHeavens:create(35))
fistOfTheHeavensTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(fistOfTheHeavensTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("FistOfTheHeavens2")
item:addAnimationFile("hero1_cast_animation")
buy = BuyComponent:create(200)
buy:setRequirement(InventoryRequirement:create("FistOfTheHeavens1", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("45")
item:addComponent("UpgradeComponent", upgrade)
fistOfTheHeavensTrigger = ActiveTrigger:create("Special")
fistOfTheHeavensTrigger:addEffect(FistOfTheHeavens:create(45))
fistOfTheHeavensTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(fistOfTheHeavensTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("FistOfTheHeavens3")
item:addAnimationFile("hero1_cast_animation")
buy = BuyComponent:create(300)
buy:setRequirement(InventoryRequirement:create("FistOfTheHeavens2", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("55")
item:addComponent("UpgradeComponent", upgrade)
fistOfTheHeavensTrigger = ActiveTrigger:create("Special")
fistOfTheHeavensTrigger:addEffect(FistOfTheHeavens:create(55))
fistOfTheHeavensTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(fistOfTheHeavensTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("FistOfTheHeavens4")
item:addAnimationFile("hero1_cast_animation")
buy = BuyComponent:create(400)
buy:setRequirement(InventoryRequirement:create("FistOfTheHeavens3", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("65")
item:addComponent("UpgradeComponent", upgrade)
fistOfTheHeavensTrigger = ActiveTrigger:create("Special")
fistOfTheHeavensTrigger:addEffect(FistOfTheHeavens:create(65))
fistOfTheHeavensTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(fistOfTheHeavensTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("FistOfTheHeavens5")
item:addAnimationFile("hero1_cast_animation")
buy = BuyComponent:create(500)
buy:setRequirement(InventoryRequirement:create("FistOfTheHeavens4", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("75")
item:addComponent("UpgradeComponent", upgrade)
fistOfTheHeavensTrigger = ActiveTrigger:create("Special")
fistOfTheHeavensTrigger:addEffect(FistOfTheHeavens:create(75))
fistOfTheHeavensTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(fistOfTheHeavensTrigger)
stack:getShopItems():addObject(item)

stack = ShopStack:create("PoultryRain")
stack:setName("PoultryRainName")
stack:setDescription("PoultryRainDescription")
stack:setShopImagePath("Images/UI/Gym/icon_skill_poultry.png")
sound = SoundComponent:create("PoultryRain")
stack:addComponent("SoundComponent", sound)
upgrade = UpgradeComponent:create()
upgrade:setName("PoultryRainVariable")
stack:addComponent("UpgradeComponent", upgrade)
specialComponent = SpecialComponent:create()
specialComponent:setAnimationKey("special_poultry")
stack:addComponent("SpecialComponent", specialComponent)
specialAttacks:getShopObjects():addObject(stack)

item = ShopItem:create("PoultryRain0")
item:addAnimationFile("hero1_cast_animation")
item:addAnimationFile("boomer_poultry_animation")
item:addAnimationFile("boomer_explode")
earn = EarnComponent:create()
earn:setRequirement(NeighbourhoodRequirement:create("Neighbourhood10"))
item:addComponent("EarnComponent", earn)
buy = BuyComponent:create(0)
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("10")
item:addComponent("UpgradeComponent", upgrade)
poultryRainTrigger = ActiveTrigger:create("Special")
poultryRainTrigger:addEffect(PoultryRain:create(25, 10, 5.0))
poultryRainTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(poultryRainTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("PoultryRain1")
item:addAnimationFile("hero1_cast_animation")
item:addAnimationFile("boomer_poultry_animation")
item:addAnimationFile("boomer_explode")
buy = BuyComponent:create(100)
buy:setRequirement(InventoryRequirement:create("PoultryRain0", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("15")
item:addComponent("UpgradeComponent", upgrade)
poultryRainTrigger = ActiveTrigger:create("Special")
poultryRainTrigger:addEffect(PoultryRain:create(25, 15, 6.0))
poultryRainTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(poultryRainTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("PoultryRain2")
item:addAnimationFile("hero1_cast_animation")
item:addAnimationFile("boomer_poultry_animation")
item:addAnimationFile("boomer_explode")
buy = BuyComponent:create(200)
buy:setRequirement(InventoryRequirement:create("PoultryRain1", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("20")
item:addComponent("UpgradeComponent", upgrade)
poultryRainTrigger = ActiveTrigger:create("Special")
poultryRainTrigger:addEffect(PoultryRain:create(25, 20, 7.0))
poultryRainTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(poultryRainTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("PoultryRain3")
item:addAnimationFile("hero1_cast_animation")
item:addAnimationFile("boomer_poultry_animation")
item:addAnimationFile("boomer_explode")
buy = BuyComponent:create(300)
buy:setRequirement(InventoryRequirement:create("PoultryRain2", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("25")
item:addComponent("UpgradeComponent", upgrade)
poultryRainTrigger = ActiveTrigger:create("Special")
poultryRainTrigger:addEffect(PoultryRain:create(25, 25, 8.0))
poultryRainTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(poultryRainTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("PoultryRain4")
item:addAnimationFile("hero1_cast_animation")
item:addAnimationFile("boomer_poultry_animation")
item:addAnimationFile("boomer_explode")
buy = BuyComponent:create(400)
buy:setRequirement(InventoryRequirement:create("PoultryRain3", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("30")
item:addComponent("UpgradeComponent", upgrade)
poultryRainTrigger = ActiveTrigger:create("Special")
poultryRainTrigger:addEffect(PoultryRain:create(25, 30, 9.0))
poultryRainTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(poultryRainTrigger)
stack:getShopItems():addObject(item)

item = ShopItem:create("PoultryRain5")
item:addAnimationFile("hero1_cast_animation")
item:addAnimationFile("boomer_poultry_animation")
item:addAnimationFile("boomer_explode")
buy = BuyComponent:create(500)
buy:setRequirement(InventoryRequirement:create("PoultryRain4", 1))
item:addComponent("BuyComponent", buy)
upgrade = UpgradeComponent:create()
upgrade:setValue("35")
item:addComponent("UpgradeComponent", upgrade)
poultryRainTrigger = ActiveTrigger:create("Special")
poultryRainTrigger:addEffect(PoultryRain:create(25, 35, 10.0))
poultryRainTrigger:setRequirement(ComboSpecialCountRequirement:create(20))
item:getTriggerDispatcher():addActiveTrigger(poultryRainTrigger)
stack:getShopItems():addObject(item)

return specialAttacks
