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