From 63bac190342f13355dcfa0099678ca91098adef3 Mon Sep 17 00:00:00 2001
From: Majesty <32709570+majestyotbr@users.noreply.github.com>
Date: Thu, 29 Aug 2024 09:00:26 -0300
Subject: [PATCH] fix: data-canary errors and warnings (#2844)
---
data-canary/monster/magicals/guzzlemaw.lua | 71 +++++++++---------
.../spells/monster/fury_skill_reducer.lua | 27 +++++++
data-canary/world/canary-house.xml | 2 +-
data-canary/world/canary-zones.xml | 2 +
data-canary/world/canary.otbm | Bin 19718929 -> 19718948 bytes
5 files changed, 65 insertions(+), 37 deletions(-)
create mode 100644 data-canary/scripts/spells/monster/fury_skill_reducer.lua
create mode 100644 data-canary/world/canary-zones.xml
diff --git a/data-canary/monster/magicals/guzzlemaw.lua b/data-canary/monster/magicals/guzzlemaw.lua
index 8e38d459779..391a85118bc 100644
--- a/data-canary/monster/magicals/guzzlemaw.lua
+++ b/data-canary/monster/magicals/guzzlemaw.lua
@@ -23,8 +23,7 @@ monster.Bestiary = {
CharmsPoints = 50,
Stars = 4,
Occurrence = 0,
- Locations = "Guzzlemaw Valley, and a single spawn in a tower in Upper Roshamuul \z
- (south of the Depot and west of the entrance to Roshamuul Prison).",
+ Locations = "Guzzlemaw Valley, and a single spawn in a tower in Upper Roshamuul (south of the Depot and west of the entrance to Roshamuul Prison).",
}
monster.health = 6400
@@ -64,7 +63,6 @@ monster.flags = {
canWalkOnEnergy = true,
canWalkOnFire = true,
canWalkOnPoison = true,
- pet = false,
}
monster.light = {
@@ -78,63 +76,64 @@ monster.voices = {
}
monster.loot = {
- { id = 3031, chance = 100000, maxCount = 100 }, -- gold coin
- { id = 3035, chance = 100000, maxCount = 7 }, -- platinum coin
- { id = 3104, chance = 10700 }, -- banana skin
- { id = 3110, chance = 10500 }, -- piece of iron
- { id = 3111, chance = 9500 }, -- fishbone
+ { name = "gold coin", chance = 100000, maxCount = 100 },
+ { name = "platinum coin", chance = 100000, maxCount = 7 },
+ { name = "banana skin", chance = 10700 },
+ { name = "piece of iron", chance = 10500 },
+ { name = "fishbone", chance = 9500 },
{ id = 3114, chance = 10400 }, -- skull
{ id = 3115, chance = 9200 }, -- bone
{ id = 3116, chance = 4500 }, -- big bone
- { id = 3265, chance = 2700 }, -- two handed sword
+ { name = "two handed sword", chance = 2700 },
{ id = 3578, chance = 7000, maxCount = 3 }, -- fish
- { id = 3582, chance = 10000 }, -- ham
- { id = 5880, chance = 3000 }, -- iron ore
- { id = 5895, chance = 5000 }, -- fish fin
- { id = 5925, chance = 5700 }, -- hardened bone
+ { name = "ham", chance = 10000 },
+ { name = "iron ore", chance = 3000 },
+ { name = "fish fin", chance = 5000 },
+ { name = "hardened bone", chance = 5700 },
{ id = 5951, chance = 9400 }, -- fish tail
- { id = 7404, chance = 1000 }, -- assassin dagger
- { id = 7407, chance = 2000 }, -- haunted blade
- { id = 7418, chance = 380 }, -- nightmare blade
- { id = 238, chance = 17000, maxCount = 3 }, -- great mana potion
- { id = 239, chance = 18500, maxCount = 2 }, -- great health potion
- { id = 10389, chance = 1200 }, -- sai
- { id = 16120, chance = 3000 }, -- violet crystal shard
- { id = 16123, chance = 12000, maxCount = 2 }, -- brown crystal splinter
- { id = 16126, chance = 7600 }, -- red crystal fragment
+ { name = "assassin dagger", chance = 1000 },
+ { name = "haunted blade", chance = 2000 },
+ { name = "nightmare blade", chance = 380 },
+ { name = "great mana potion", chance = 17000, maxCount = 3 },
+ { name = "great health potion", chance = 18500, maxCount = 2 },
+ { name = "sai", chance = 1200 },
+ { name = "violet crystal shard", chance = 3000 },
+ { name = "brown crystal splinter", chance = 12000, maxCount = 2 },
+ { name = "red crystal fragment", chance = 7600 },
{ id = 16279, chance = 12000 }, -- crystal rubbish
- { id = 20062, chance = 920 }, -- cluster of solace
- { id = 20198, chance = 15000 }, -- frazzle tongue
- { id = 20199, chance = 14000 }, -- frazzle skin
+ { name = "cluster of solace", chance = 8920 },
+ { name = "frazzle tongue", chance = 15000 },
+ { name = "frazzle skin", chance = 14000 },
}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -499 },
-- bleed
- { name = "condition", type = CONDITION_BLEEDING, interval = 2000, chance = 10, minDamage = -500, maxDamage = -1000, radius = 3, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -900, length = 8, spread = 3, effect = CONST_ME_EXPLOSIONAREA, target = false },
+ { name = "condition", type = CONDITION_BLEEDING, interval = 2000, chance = 10, minDamage = -500, maxDamage = -1000, radius = 3, effect = CONST_ME_DRAWBLOOD, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -900, length = 8, spread = 0, effect = CONST_ME_EXPLOSIONAREA, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -500, radius = 2, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_STONES, target = true },
- { name = "speed", interval = 2000, chance = 15, speedChange = -100, radius = 6, effect = CONST_ME_MAGIC_RED, target = false, duration = 15000 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -800, length = 8, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "speed", interval = 2000, chance = 15, speedChange = -800, radius = 6, effect = CONST_ME_MAGIC_RED, target = false, duration = 15000 },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -800, length = 8, spread = 0, effect = CONST_ME_MAGIC_RED, target = false },
}
monster.defenses = {
defense = 50,
- armor = 50,
+ armor = 74,
+ mitigation = 2.31,
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_HEALING, minDamage = 250, maxDamage = 425, effect = CONST_ME_HITBYPOISON, target = false },
}
monster.elements = {
- { type = COMBAT_PHYSICALDAMAGE, percent = 10 },
- { type = COMBAT_ENERGYDAMAGE, percent = 5 },
- { type = COMBAT_EARTHDAMAGE, percent = 15 },
- { type = COMBAT_FIREDAMAGE, percent = 5 },
+ { type = COMBAT_PHYSICALDAMAGE, percent = 5 },
+ { type = COMBAT_ENERGYDAMAGE, percent = 15 },
+ { type = COMBAT_EARTHDAMAGE, percent = 20 },
+ { type = COMBAT_FIREDAMAGE, percent = 10 },
{ type = COMBAT_LIFEDRAIN, percent = 0 },
{ type = COMBAT_MANADRAIN, percent = 0 },
{ type = COMBAT_DROWNDAMAGE, percent = 0 },
{ type = COMBAT_ICEDAMAGE, percent = 5 },
- { type = COMBAT_HOLYDAMAGE, percent = 0 },
- { type = COMBAT_DEATHDAMAGE, percent = 5 },
+ { type = COMBAT_HOLYDAMAGE, percent = -5 },
+ { type = COMBAT_DEATHDAMAGE, percent = 10 },
}
monster.immunities = {
diff --git a/data-canary/scripts/spells/monster/fury_skill_reducer.lua b/data-canary/scripts/spells/monster/fury_skill_reducer.lua
new file mode 100644
index 00000000000..1e8acd0ae7a
--- /dev/null
+++ b/data-canary/scripts/spells/monster/fury_skill_reducer.lua
@@ -0,0 +1,27 @@
+local combat = {}
+
+for i = 65, 80 do
+ combat[i] = Combat()
+ combat[i]:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SOUND_YELLOW)
+
+ local condition = Condition(CONDITION_ATTRIBUTES)
+ condition:setParameter(CONDITION_PARAM_TICKS, 5000)
+ condition:setParameter(CONDITION_PARAM_SKILL_DEFENSEPERCENT, i)
+
+ local area = createCombatArea(AREA_CIRCLE3X3)
+ combat[i]:setArea(area)
+ combat[i]:addCondition(condition)
+end
+
+local spell = Spell("instant")
+
+function spell.onCastSpell(creature, var)
+ return combat[math.random(65, 80)]:execute(creature, var)
+end
+
+spell:name("fury skill reducer")
+spell:words("###2")
+spell:isAggressive(true)
+spell:blockWalls(true)
+spell:needLearn(true)
+spell:register()
diff --git a/data-canary/world/canary-house.xml b/data-canary/world/canary-house.xml
index adaa1a1c8f2..43d8e80d11e 100644
--- a/data-canary/world/canary-house.xml
+++ b/data-canary/world/canary-house.xml
@@ -1,4 +1,4 @@
-
+
diff --git a/data-canary/world/canary-zones.xml b/data-canary/world/canary-zones.xml
new file mode 100644
index 00000000000..a9224bd3c2d
--- /dev/null
+++ b/data-canary/world/canary-zones.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/data-canary/world/canary.otbm b/data-canary/world/canary.otbm
index 280d57a9194069ec839bb8cab86c1ffbb960ccf8..8f787811a5395efb0e0cbbb2ac7f34ec12b9e0be 100644
GIT binary patch
delta 1798
zcmYk)c~}%>9KdmAVRu|tg_VI_L6l1ogtE-+rnJKp)3nm=$Sfkm)XcO?p&E}&t#qmA
zpbVnI4AUV?L~x-}3%e{jtVFb$?m|)7_50gpdG?Rb_j!Kv&g{E8`>tu)WM7YsHYM5}
z6EP#dD1Yw4oJF&XX3i_ID7r-v7DOTnR@k7T7wqT_2l}8d`XL%IaH2nAp&<_OhDC85
z$Wy%uexI#TGt7yuW~&-$4NhC9x(;fpB{=C71unQT00~IMKqO%h1|u0MNJSdbF$6=A
zfnmr*7KS4mIXDHUVgydZ=@^MKFbZd4G|s}=I0xtAJe-dUkc$g(5yoIFF2*Ie6qjKf
zF2{JIqF}W`iMRrjjKY%1<$1O}n%to~TPEX5Ou;5N*}?YIL4xD$oA%W$^LS~A+US2p+RrRv=%!ff1wIhc!i
zxEJ$r9~R(#EW{!_fCupq9>ybBj3p>W2_D5`c-$ye^(l^=!-;HqNU}PP%yIbrK5NHu
zd$r=Tt#!+AE!d0C@HxJ~m-q_%@HM_cE55~d_#QuCKYqkd__;Ev^+0v-
z7&m#+^tKe+?!b{Y#_MhCQo9%Q_Nq1rLI+J@`2=Q4#SGn(9&N&BfvOO!9Q>
zFh_>27$X|Y1|>9kIvdU6o}qZBxx8lxU(w6FCVs~s_!EEOZ~TLQ@gM$22aezOqKeV*Ummvhd}-iMVF|eaA9Ee3f^v3`UgcE}h2N&Xzpn6U2jy&5oS2$!1B&y*_?q-WI
znJsF|6!%`2F-2LFx*|6`@FEdO7>r~L!BC_i6=_I^55q7V85n^~WML$-F$yPOG;(kv
zPQnu^10U?y(B
zjkpOn;}#U*R@{c$RbT6@x#O(?dAv5I%613t#9g=>vvCjZ#eJBA`|$uC#6x%(kKj=h
z<1svrComT!D8-YQhxuxiO(}4US`^Ps_a~8klG%=MIAl3=%wBB@S<5{#96lN{-bSuVUwVCe&jywqPq7unmm}pb5?R2p{7UY{w3?;8T2t
zRO*
z>t0ZTm7Um&pRo`7@e6)cgO$H^&gl88Jq~TdD&t*d+WpIFwXB{&ZL8Jt96giYS0Ax7
zwO-4OGX9Ze*!@elXiD#pxm7Fc9ax#{w>M~GoceLfu!lKM(R~v7xMKXHcjd>cGaIxO
zrrzzbjao_XP~I4Ep~w}bCZOSW{DA{Fh(GZc{>DG}7l&{dM-aqO9K&&RA%yUPnt*8`
zBvBHxBwAvTSS2<|jKnVKD{)9-CH*A*B?BY_B~Hm8Nu0zbiI*fu+!Bw(D@l|jNd`-j
oB|{`bB`K0rNtz^G;*$)M43}g`Mo2OxS(1^a%{75+)12i007O(&kpKVy