99 lines
4.1 KiB
Lua
99 lines
4.1 KiB
Lua
local Map = require('Map')
|
|
local Monster = require ('Monster')
|
|
local Event = require('Event')
|
|
local Portal = require('Portal')
|
|
local PortalType = require('PortalType')
|
|
local Dungeon = require('Dungeon')
|
|
local DungeonType = require('DungeonType')
|
|
local Location = require('Location')
|
|
local RaidDrop = require('RaidDrop')
|
|
local Drop = require('Drop')
|
|
local RaidReward = require('RaidReward')
|
|
local RaidBox = require('RaidBox')
|
|
local RaidBoxRarity = require('RaidBoxRarity')
|
|
local MonsterWave = require('MonsterWave')
|
|
|
|
local raidBox = RaidBox.Create()
|
|
.WithVnum(1)
|
|
.WithBoxRarity(RaidBoxRarity.CreateBoxRarity().WithRarity(1).WithChance(1350))
|
|
.WithBoxRarity(RaidBoxRarity.CreateBoxRarity().WithRarity(2).WithChance(1700))
|
|
.WithBoxRarity(RaidBoxRarity.CreateBoxRarity().WithRarity(3).WithChance(2500))
|
|
.WithBoxRarity(RaidBoxRarity.CreateBoxRarity().WithRarity(4).WithChance(2000))
|
|
.WithBoxRarity(RaidBoxRarity.CreateBoxRarity().WithRarity(5).WithChance(1500))
|
|
.WithBoxRarity(RaidBoxRarity.CreateBoxRarity().WithRarity(6).WithChance(750))
|
|
.WithBoxRarity(RaidBoxRarity.CreateBoxRarity().WithRarity(7).WithChance(200))
|
|
|
|
local reward = RaidReward.Create()
|
|
.WithRaidBox(raidBox)
|
|
|
|
local mob_map = Map.Create().WithMapId(135)
|
|
local boss_map = Map.Create().WithMapId(136)
|
|
|
|
local to_tundra_portal = Portal.Create(PortalType.TsNormal).From(mob_map, 39, 175).To(mob_map, 0, 0).AsReturn()
|
|
local to_boss_portal = Portal.Create(PortalType.TsNormal).From(mob_map, 147, 44).To(boss_map, 56, 77).WithDelay(30*60)
|
|
|
|
mob_map.AddPortals({
|
|
to_tundra_portal,
|
|
to_boss_portal,
|
|
});
|
|
|
|
local boss = Monster.CreateWithVnum(563).At(57, 13).AsDungeonBoss().OnHalfHp({
|
|
Event.RemovePortal(to_boss_portal),
|
|
}).OnDeath({
|
|
Event.DungeonRewardEvent(),
|
|
})
|
|
|
|
local drops = RaidDrop.Create(boss)
|
|
.WithGoldRange(20000, 20000)
|
|
.WithGoldStackCount(15)
|
|
.WithDrops({
|
|
Drop.Create(1011, 5), -- Huge Recovery Potion
|
|
Drop.Create(1122, 3), -- Cylloan Spring Water
|
|
Drop.Create(2135, 2), -- Cheese Sticks
|
|
Drop.Create(2136, 2), -- Secret Recipe Fries
|
|
Drop.Create(2514, 2), -- Small Ruby of Completion
|
|
Drop.Create(2514, 3), -- Small Ruby of Completion
|
|
})
|
|
.WithDropsStackCount(35)
|
|
|
|
boss_map.AddMonster(boss)
|
|
|
|
boss_map.AddMonsters({
|
|
Monster.CreateWithVnum(970).At(13, 33), -- Rolling Stone 2
|
|
Monster.CreateWithVnum(970).At(31, 40), -- Rolling Stone 2
|
|
Monster.CreateWithVnum(970).At(34, 54), -- Rolling Stone 2
|
|
Monster.CreateWithVnum(970).At(59, 75), -- Rolling Stone 2
|
|
Monster.CreateWithVnum(970).At(61, 74), -- Rolling Stone 2
|
|
Monster.CreateWithVnum(970).At(62, 64), -- Rolling Stone 2
|
|
Monster.CreateWithVnum(970).At(94, 27), -- Rolling Stone 2
|
|
})
|
|
|
|
boss_map.AddMonsterWaves({
|
|
MonsterWave.CreateWithDelay(60).AsLoop(120).ScaledWithPlayerAmount().WithMonsters({
|
|
Monster.CreateWithVnum(561).AtRandomPosition(), -- Powerful Molda's Warrior
|
|
Monster.CreateWithVnum(561).AtRandomPosition(), -- Powerful Molda's Warrior
|
|
Monster.CreateWithVnum(562).AtRandomPosition(), -- Powerful Molda's Warlock
|
|
Monster.CreateWithVnum(562).AtRandomPosition(), -- Powerful Molda's Warlock
|
|
}),
|
|
|
|
MonsterWave.CreateWithDelay(60).AsLoop(120).WithMonsters({
|
|
Monster.CreateWithVnum(561).AtRandomPosition(), -- Powerful Molda's Warrior
|
|
Monster.CreateWithVnum(561).AtRandomPosition(), -- Powerful Molda's Warrior
|
|
Monster.CreateWithVnum(561).AtRandomPosition(), -- Powerful Molda's Warrior
|
|
Monster.CreateWithVnum(561).AtRandomPosition(), -- Powerful Molda's Warrior
|
|
Monster.CreateWithVnum(562).AtRandomPosition(), -- Powerful Molda's Warlock
|
|
Monster.CreateWithVnum(562).AtRandomPosition(), -- Powerful Molda's Warlock
|
|
Monster.CreateWithVnum(562).AtRandomPosition(), -- Powerful Molda's Warlock
|
|
Monster.CreateWithVnum(562).AtRandomPosition(), -- Powerful Molda's Warlock
|
|
}),
|
|
})
|
|
|
|
boss_map.AfterSlowMotion({
|
|
Event.ThrowRaidDrops(drops),
|
|
})
|
|
|
|
local dungeon = Dungeon.Create(DungeonType.Morcos)
|
|
.WithMaps({mob_map, boss_map})
|
|
.WithSpawn(Location.InMap(mob_map).At(40, 180))
|
|
.WithReward(reward)
|
|
return dungeon
|