Skip to content

Commit

Permalink
rotten blood: include monsters, accesses and npcs.
Browse files Browse the repository at this point in the history
  • Loading branch information
elsongabriel committed Jun 10, 2024
1 parent 4af13ee commit 02ec08e
Show file tree
Hide file tree
Showing 35 changed files with 3,312 additions and 0 deletions.
5 changes: 5 additions & 0 deletions data-otservbr-global/lib/core/storages.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2797,6 +2797,11 @@ Storage = {
},
},
},
U13_20 = { -- update 13.20 - Reserved Storages 47952 - 47970
RottenBlood = {
AccessDoor = 47952,
},
},
},
-- Reserved storage from 63951 - 63999
ThaisExhibition = {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
local mType = Game.createMonsterType("Ayana the crimson curse")
local monster = {}

monster.description = "Ayana the crimson curse"
monster.experience = 12400
monster.outfit = {
lookType = 1647,
lookHead = 132,
lookBody = 132,
lookLegs = 57,
lookFeet = 76,
lookAddons = 0,
lookMount = 0,
}

monster.health = 17000
monster.maxHealth = 17000
monster.race = "undead"
monster.corpse = 44039
monster.speed = 180
monster.manaCost = 0

monster.changeTarget = {
interval = 4000,
chance = 10,
}

monster.bosstiary = {
bossRaceId = 2404,
bossRace = RARITY_NEMESIS,
}
monster.strategiesTarget = {
nearest = 80,
health = 10,
damage = 10,
}

monster.flags = {
summonable = false,
attackable = true,
hostile = true,
convinceable = false,
pushable = false,
rewardBoss = false,
illusionable = false,
canPushItems = true,
canPushCreatures = true,
staticAttackChance = 90,
targetDistance = 1,
runHealth = 800,
healthHidden = false,
isBlockable = false,
canWalkOnEnergy = false,
canWalkOnFire = true,
canWalkOnPoison = true,
}

monster.light = {
level = 0,
color = 0,
}

monster.voices = {}

monster.loot = {
{ name = "gold coin", chance = 100000, maxCount = 197 },
{ name = "platinum coin", chance = 100000, maxCount = 5 },
{ name = "amulet of loss", chance = 120 },
{ name = "gold ring", chance = 1870 },
{ name = "hailstorm rod", chance = 10000 },
{ name = "garlic necklace", chance = 2050 },
{ name = "blank rune", chance = 26250, maxCount = 2 },
{ name = "golden sickle", chance = 350 },
{ name = "skull staff", chance = 1520 },
{ name = "scythe", chance = 3000 },
{ name = "bunch of wheat", chance = 50000 },
{ name = "soul orb", chance = 23720 },
{ id = 6299, chance = 1410 },
{ id = 43916, chance = 4000 },
{ id = 43729, chance = 22000, maxCount = 3 },
{ id = 43738, chance = 9000 },
{ id = 43849, chance = 10000 },
{ id = 43857, chance = 7000 },
{ name = "demonic essence", chance = 28000 },
{ name = "assassin star", chance = 5900, maxCount = 10 },
{ name = "great mana potion", chance = 31360, maxCount = 3 },
{ id = 281, chance = 4450 },
{ id = 282, chance = 4450 },
{ name = "seeds", chance = 4300 },
{ name = "terra mantle", chance = 1050 },
{ name = "terra legs", chance = 2500 },
{ name = "ultimate health potion", chance = 14720, maxCount = 2 },
{ name = "gold ingot", chance = 5270 },
{ name = "bundle of cursed straw", chance = 15000 },
}

monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 75, attack = 100 },
{ name = "combat", interval = 1000, chance = 8, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -500, radius = 9, effect = CONST_ME_MORTAREA, target = false },
{ name = "speed", interval = 1000, chance = 12, speedChange = -250, radius = 6, effect = CONST_ME_POISONAREA, target = false, duration = 60000 },
{ name = "strength", interval = 1000, chance = 10, minDamage = -300, maxDamage = -750, radius = 5, effect = CONST_ME_HITAREA, target = false },
{ name = "combat", interval = 3000, chance = 13, type = COMBAT_FIREDAMAGE, minDamage = -300, maxDamage = -500, range = 7, radius = 7, shootEffect = CONST_ANI_FIRE, effect = 244, target = true },
{ name = "combat", interval = 3000, chance = 8, type = COMBAT_HOLYDAMAGE, minDamage = -300, maxDamage = -450, radius = 10, effect = 246, target = false },
}

monster.defenses = {
defense = 110,
armor = 110,
}

monster.elements = {
{ type = COMBAT_PHYSICALDAMAGE, percent = 90 },
{ type = COMBAT_ENERGYDAMAGE, percent = -10 },
{ type = COMBAT_EARTHDAMAGE, percent = -10 },
{ type = COMBAT_FIREDAMAGE, percent = 0 },
{ type = COMBAT_LIFEDRAIN, percent = 0 },
{ type = COMBAT_MANADRAIN, percent = 0 },
{ type = COMBAT_DROWNDAMAGE, percent = 0 },
{ type = COMBAT_ICEDAMAGE, percent = -10 },
{ type = COMBAT_HOLYDAMAGE, percent = 90 },
{ type = COMBAT_DEATHDAMAGE, percent = 90 },
}

monster.immunities = {
{ type = "paralyze", condition = true },
{ type = "outfit", condition = false },
{ type = "invisible", condition = true },
{ type = "bleed", condition = false },
}

mType:register(monster)
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
local mType = Game.createMonsterType("Bloated Man-Maggot")
local monster = {}

monster.description = "a Bloated Man-Maggot"
monster.experience = 21570
monster.outfit = {
lookType = 1654,
lookHead = 0,
lookBody = 0,
lookLegs = 0,
lookFeet = 0,
lookAddons = 0,
lookMount = 0,
}

monster.health = 31700
monster.maxHealth = 31700
monster.race = "undead"
monster.corpse = 43816
monster.speed = 150
monster.manaCost = 0

monster.changeTarget = {
interval = 4000,
chance = 10,
}

monster.strategiesTarget = {
nearest = 80,
health = 10,
damage = 10,
}

monster.raceId = 2392
monster.Bestiary = {
class = "Vermin",
race = BESTY_RACE_VERMIN,
toKill = 5000,
FirstUnlock = 25,
SecondUnlock = 3394,
CharmsPoints = 100,
Stars = 5,
Occurrence = 0,
Locations = "Sanctuary.",
}

monster.flags = {
summonable = false,
attackable = true,
hostile = true,
convinceable = false,
pushable = false,
rewardBoss = false,
illusionable = false,
canPushItems = true,
canPushCreatures = true,
staticAttackChance = 90,
targetDistance = 1,
runHealth = 800,
healthHidden = false,
isBlockable = false,
canWalkOnEnergy = false,
canWalkOnFire = true,
canWalkOnPoison = true,
}

monster.light = {
level = 0,
color = 0,
}

monster.voices = {}

monster.loot = {
{ name = "crystal coin", chance = 70540 },
{ name = "platinum coin", chance = 90540, maxCount = 32 },
{ name = "ultimate health potion", chance = 72220, maxCount = 7 },
{ name = "gold ingot", chance = 34920 },
{ name = "glacier kilt", chance = 12920 },
{ name = "northwind rod", chance = 11920 },
{ name = "wand of voodoo", chance = 14000 },
{ name = "glacial rod", chance = 13450 },
{ name = "green crystal fragment", chance = 22920 },
{ name = "onyx chip", chance = 20000 },
{ name = "rainbow quartz", chance = 13660, maxCount = 2 },
{ name = "skullcracker armor", chance = 1680 },
}

monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -600 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -550, maxDamage = -1100, length = 5, spread = 3, effect = CONST_ME_GROUNDSHAKER, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -400, maxDamage = -1000, radius = 7, effect = CONST_ME_BIGCLOUDS, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_ICEDAMAGE, minDamage = -550, maxDamage = -1000, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_ICEATTACK, target = true },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_ICEDAMAGE, minDamage = -300, maxDamage = -700, range = 7, radius = 5, shootEffect = CONST_ANI_ICE, effect = CONST_ME_ICEAREA, target = true },
}

monster.defenses = {
defense = 104,
armor = 104,
}

monster.elements = {
{ type = COMBAT_PHYSICALDAMAGE, percent = 55 },
{ type = COMBAT_ENERGYDAMAGE, percent = -10 },
{ type = COMBAT_EARTHDAMAGE, percent = 60 },
{ type = COMBAT_FIREDAMAGE, percent = 85 },
{ type = COMBAT_LIFEDRAIN, percent = 0 },
{ type = COMBAT_MANADRAIN, percent = 0 },
{ type = COMBAT_DROWNDAMAGE, percent = 0 },
{ type = COMBAT_ICEDAMAGE, percent = -10 },
{ type = COMBAT_HOLYDAMAGE, percent = -10 },
{ type = COMBAT_DEATHDAMAGE, percent = 95 },
}

monster.immunities = {
{ type = "paralyze", condition = true },
{ type = "outfit", condition = false },
{ type = "invisible", condition = true },
{ type = "bleed", condition = false },
}

mType:register(monster)
120 changes: 120 additions & 0 deletions data-otservbr-global/monster/quests/rotten_blood/converter.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
local mType = Game.createMonsterType("Converter")
local monster = {}

monster.description = "a Converter"
monster.experience = 21425
monster.outfit = {
lookType = 1623,
lookHead = 0,
lookBody = 0,
lookLegs = 0,
lookFeet = 0,
lookAddons = 0,
lookMount = 0,
}

monster.raceId = 2379
monster.Bestiary = {
class = "Elemental",
race = BESTY_RACE_ELEMENTAL,
toKill = 5000,
FirstUnlock = 25,
SecondUnlock = 3394,
CharmsPoints = 100,
Stars = 5,
Occurrence = 0,
Locations = "Sanctuary.",
}

monster.health = 29600
monster.maxHealth = 29600
monster.race = "undead"
monster.corpse = 43567
monster.speed = 250
monster.manaCost = 0

monster.changeTarget = {
interval = 4000,
chance = 10,
}

monster.strategiesTarget = {
nearest = 80,
health = 10,
damage = 10,
}

monster.flags = {
summonable = false,
attackable = true,
hostile = true,
convinceable = false,
pushable = false,
rewardBoss = false,
illusionable = false,
canPushItems = true,
canPushCreatures = true,
staticAttackChance = 90,
targetDistance = 1,
runHealth = 800,
healthHidden = false,
isBlockable = false,
canWalkOnEnergy = false,
canWalkOnFire = true,
canWalkOnPoison = true,
}

monster.light = {
level = 0,
color = 0,
}

monster.voices = {}

monster.loot = {
{ name = "crystal coin", chance = 5230, maxCount = 1 },
{ name = "darklight obsidian axe", chance = 6963, maxCount = 1 },
{ name = "darklight matter", chance = 6927, maxCount = 1 },
{ name = "darklight core", chance = 10715, maxCount = 1 },
{ name = "wand of starstorm", chance = 8797, maxCount = 1 },
{ name = "blue gem", chance = 9372, maxCount = 1 },
{ name = "ultimate health potion", chance = 9851, maxCount = 5 },
{ name = "focus cape", chance = 6945, maxCount = 1 },
{ name = "white gem", chance = 14533, maxCount = 1 },
}

monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -950 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = -450, maxDamage = -700, range = 7, radius = 4, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = true },
{ name = "combat", interval = 2000, chance = 18, type = COMBAT_FIREDAMAGE, minDamage = -450, maxDamage = -900, radius = 3, effect = CONST_ME_FIREAREA, target = false },
{ name = "combat", interval = 2000, chance = 22, type = COMBAT_DEATHDAMAGE, minDamage = -450, maxDamage = -900, radius = 4, effect = CONST_ME_EXPLOSIONHIT, target = false },
{ name = "combat", interval = 2000, chance = 24, type = COMBAT_FIREDAMAGE, minDamage = -450, maxDamage = -1000, radius = 4, effect = CONST_ME_EXPLOSIONAREA, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -700, maxDamage = -1150, length = 8, effect = CONST_ME_EXPLOSIONHIT, target = false },
}

monster.defenses = {
defense = 100,
armor = 100,
}

monster.elements = {
{ type = COMBAT_PHYSICALDAMAGE, percent = -10 },
{ type = COMBAT_ENERGYDAMAGE, percent = -9 },
{ type = COMBAT_EARTHDAMAGE, percent = 90 },
{ type = COMBAT_FIREDAMAGE, percent = 75 },
{ type = COMBAT_LIFEDRAIN, percent = 0 },
{ type = COMBAT_MANADRAIN, percent = 0 },
{ type = COMBAT_DROWNDAMAGE, percent = 0 },
{ type = COMBAT_ICEDAMAGE, percent = 90 },
{ type = COMBAT_HOLYDAMAGE, percent = 65 },
{ type = COMBAT_DEATHDAMAGE, percent = -9 },
}

monster.immunities = {
{ type = "paralyze", condition = true },
{ type = "outfit", condition = false },
{ type = "invisible", condition = true },
{ type = "bleed", condition = false },
}

mType:register(monster)
Loading

0 comments on commit 02ec08e

Please sign in to comment.