Skip to content

Commit

Permalink
Fix many issues parsing and writing TFS monster abilities (#18)
Browse files Browse the repository at this point in the history
These changes fix issues #6, #8, and #14 (both the melee issue and combat damage type issue)

Other improvements beyond the reported issues

    TFS XML: Fixed parsing of condition causing spells, melee attack name, duration, animations, effects, and area information for all spells
    TFS RevScriptSys: Writing condition causing spells, duration, area information, outfit changing spells, animations, and effects for all, and combat type
    TFSXML->TFS RevScriptSys: Spells from files now in some cases but needs more testing and checking overall
  • Loading branch information
soul4soul authored May 25, 2021
1 parent df43b90 commit 2434da4
Show file tree
Hide file tree
Showing 15 changed files with 890 additions and 827 deletions.
20 changes: 8 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,14 @@ Tibia OT Monster Converter is a tool for converting monster files between the va
- WPF
- Visual Studio 2019

## Status

Parsing and writing of nested loot is not yet supported by any formats. This is a low priority item as cipbia removed nested loot and its no longer commonly found in OT servers.

### Supported Formats

| Format | Input % Complete | Output % Complete | Notes |
| ---------------------------------------------------- | ---------------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| TFS XML | [95%](https://github.com/soul4soul/ot-monster-converter/wiki/TFS-XML-Input-Status) | [0%](https://github.com/soul4soul/ot-monster-converter/wiki/TFS-XML-Output-Status) | - Most common OT Monster format which has been around for over a decade |
| [PyOT](https://bitbucket.org/vapus/pyot/) | [0%](https://github.com/soul4soul/ot-monster-converter/wiki/PyOT-Input-Status) | [90%](https://github.com/soul4soul/ot-monster-converter/wiki/PyOT-Output-Status) | - This format can be consider dead as PyOT development has ceased. Unless development is picked back up support for this format is unlikely to be completed. |
| TFS revscriptsys | [0%](https://github.com/soul4soul/ot-monster-converter/wiki/TFS-revscriptsys-Input-Status) | [95%](https://github.com/soul4soul/ot-monster-converter/wiki/TFS-revscriptsys-Output-Status) | - Very new OT monster format that was theorized many years ago. In the future there is a good chance it will replace TFS XML completely. This is likely the output type that most users of this program will use. |
| [TibiaWiki](https://tibia.fandom.com/wiki/Main_Page) | [80%](https://github.com/soul4soul/ot-monster-converter/wiki/TibiaWiki-Input-Status) | [60%](https://github.com/soul4soul/ot-monster-converter/wiki/TibiaWiki-Output-Status) | - Helpful for keeping monsters up to date with cipbia<br/> - See The [Infobox Creature Template](https://tibia.fandom.com/wiki/Template:Infobox_Creature) for information about TibiaWiki Format <br/> - Monsters created from TibiaWiki will require corpse id, looktype, and spells to be created manually |
## Supported Formats

| Format | Input % Complete | Output % Complete | Notes |
| - | - | - | - |
| TFS XML | [95%](https://github.com/soul4soul/ot-monster-converter/wiki/TFS-XML-Input-Status) | [0%](https://github.com/soul4soul/ot-monster-converter/wiki/TFS-XML-Output-Status) | - Most common OT Monster format which has been around for over a decade |
| [PyOT](https://bitbucket.org/vapus/pyot/) | [0%](https://github.com/soul4soul/ot-monster-converter/wiki/PyOT-Input-Status) | [90%](https://github.com/soul4soul/ot-monster-converter/wiki/PyOT-Output-Status) | - This format can be consider dead as PyOT development has ceased. Unless development is picked back up support for this format is unlikely to be completed. |
| TFS revscriptsys | [0%](https://github.com/soul4soul/ot-monster-converter/wiki/TFS-revscriptsys-Input-Status) | [95%](https://github.com/soul4soul/ot-monster-converter/wiki/TFS-revscriptsys-Output-Status) | - Very new OT monster format that was theorized many years ago. In the future there is a good chance it will replace TFS XML completely. This is likely the output type that most users of this program will use. <br/> - Opentibiabr RevScriptSys format is not completely compatible with TFS RevScriptSys format |
| [TibiaWiki](https://tibia.fandom.com/wiki/Main_Page) | [80%](https://github.com/soul4soul/ot-monster-converter/wiki/TibiaWiki-Input-Status) | [60%](https://github.com/soul4soul/ot-monster-converter/wiki/TibiaWiki-Output-Status) | - Helpful for keeping monsters up to date with cipbia<br/> - See The [Infobox Creature Template](https://tibia.fandom.com/wiki/Template:Infobox_Creature) for information about TibiaWiki Format <br/> - Monsters created from TibiaWiki will require corpse id, looktype, and spells to be created manually |

## Graphical Interface

Expand Down
61 changes: 61 additions & 0 deletions app/MonsterConverterInterface/Enums/Animation.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace MonsterConverterInterface.MonsterTypes
{
public enum Animation
{
None = 0,
Spear,
Bolt,
Arrow,
Fire,
Energy,
PoisonArrow,
BurstArrow,
ThrowingStar,
ThrowingKnife,
SmallStone,
Death,
LargeRock,
Snowball,
PowerBolt,
Poison,
InfernalBolt,
HuntingSpear,
EnchantedSpear,
RedStar,
GreenStar,
RoyalSpear,
SniperArrow,
OnyxArrow,
PiercingBolt,
WhirlwindSword,
WhirlwindAxe,
WhirlwindClub,
EtherealSpear,
Ice,
Earth,
Holy,
SuddenDeath,
FlashArrow,
FlammingArrow,
ShiverArrow,
EnergyBall,
SmallIce,
SmallHoly,
SmallEarth,
EarthArrow,
Explosion,
Cake,
TarsalArrow = 44,
VortexBolt = 45,
PrismaticBolt,
CrystallineArrow,
DrillBolt,
EnvenomedArrow,
GloothSpear,
SimpleArrow
}
}
15 changes: 15 additions & 0 deletions app/MonsterConverterInterface/Enums/Blood.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace MonsterConverterInterface.MonsterTypes
{
public enum Blood
{
blood,
venom,
undead,
fire,
energy
}
}
13 changes: 13 additions & 0 deletions app/MonsterConverterInterface/Enums/ChangeAppearanceType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace MonsterConverterInterface.MonsterTypes
{
public enum ChangeAppearanceType
{
MonsterName,
OutfitId,
Item
}
}
21 changes: 21 additions & 0 deletions app/MonsterConverterInterface/Enums/CombatDamage.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace MonsterConverterInterface.MonsterTypes
{
public enum CombatDamage
{
Physical,
Energy,
Earth,
Fire,
LifeDrain,
ManaDrain,
Healing,
Drown,
Ice,
Holy,
Death
}
}
39 changes: 39 additions & 0 deletions app/MonsterConverterInterface/Enums/ConditionType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace MonsterConverterInterface.MonsterTypes
{
public enum ConditionType
{
None,
Poison,
Fire,
Energy,
Bleeding,
Haste,
Paralyze,
Outfit,
Invisible,
Light,
ManaShield,
InFight,
Drunk,
ExhaustWeapon, // unused
Regeneration,
Soul,
Drown,
Muted,
ChannelMutedTicks,
YellTicks,
Attributes,
Freezing,
Dazzled,
Cursed,
ExhaustCombat, // unused
Exhaust_heal, // unused
Pacified,
SpellCoolDown,
SpellGroupCoolDown
}
}
99 changes: 99 additions & 0 deletions app/MonsterConverterInterface/Enums/Effect.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace MonsterConverterInterface.MonsterTypes
{
public enum Effect
{
None = 0,
DrawBlood,
LoseEnergy,
Poff,
BlockHit,
ExplosionArea,
ExplosionHit,
FireArea,
YellowRings,
GreenRings,
HitArea,
Teleport,
EnergyHit,
MagicBlue,
MagicRed,
MagicGreen,
HitByFire,
HitByPoison,
MortArea,
SoundGreen,
SoundRed,
PoisonArea,
SoundYellow,
SoundPurple,
SoundBlue,
SoundWhite,
Bubbles,
Craps,
GiftWraps,
FireworkYellow,
FireworkRed,
FireworkBlue,
Stun,
Sleep,
WaterCreature,
GroundShaker,
Hearts,
FireAttack,
EnergyArea,
SmallClouds,
HolyDamage,
BigClouds,
IceArea,
IceTornado,
IceAttack,
Stones,
SmallPlants,
Carniphila,
PurpleEnergy,
YellowEnergy,
HolyArea,
BigPlants,
Cake,
GiantIce,
WaterSplash,
PlantAttack,
TutorialArrow,
TutorialSquare,
MirrorHorizontal,
MirrorVertical,
SkullHorizontal,
SkullVertical,
Assassin,
StepsHorizontal,
BloodySteps,
StepsVertical,
YalahariGhost,
Bats,
Smoke,
Insects,
Dragonhead,
OrcShaman,
OrcShamanFire,
Thunder,
Ferumbras,
ConfettiHorizontal,
ConfettiVertical,
// 77-157 are empty
BlackSmoke = 158,
// 159-166 are empty
RedSmoke = 167,
YellowSmoke = 168,
GreenSmoke = 169,
PurpleSmoke = 170,
EarlyThunder = 171,
RagiazBoneCapsule = 172,
CriticalDamage = 173,
// 174 is empty
PlungingFish = 175
}
}
13 changes: 13 additions & 0 deletions app/MonsterConverterInterface/Enums/SoundLevel.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace MonsterConverterInterface.MonsterTypes
{
public enum SoundLevel
{
Whisper,
Say,
Yell
}
}
Loading

0 comments on commit 2434da4

Please sign in to comment.