// Ryzom - MMORPG Framework // Copyright (C) 2010 Winch Gate Property Limited // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #ifndef RY_MAGIC_FX_H #define RY_MAGIC_FX_H #include "nel/misc/types_nl.h" #include "damage_types.h" #include "effect_families.h" namespace MAGICFX { // enum TSpellMode { Bomb = 0, Chain, Spray, SpellModeCount, UnknownSpellMode = SpellModeCount, }; // enum TSpellType { Off = 0, Cur, Mix, SpellTypeCount, UnknownSpellType = SpellTypeCount, }; // TODO: this enum is also used for attack, so could name it in a more general way enum TSpellCastStage { CastBegin = 0, CastLoop, CastEnd, CastFail, SpellCastStageCount, UnknownSpellCastStage = SpellCastStageCount, }; // const std::string& toString(TSpellMode mode); const std::string& toString(TSpellType mode); const std::string& toString(TSpellCastStage mode); TSpellMode toSpellMode(const std::string &str); // the number of possible powers for a spell // TODO : this is also used for melee, range, so name it in a more general way in another namespace (NUM_ATTACK_POWER ?) const uint NUM_SPELL_POWER = 5; // projectile speed in meters per second const float PROJECTILE_SPEED = 20.f; /** the value of each enum should match the value in spells.spell_list * and in links.id_to_string_array */ enum TMagicFx { // offensif Piercing = 0, // ok Blunt = 1, // ok Slashing = 2, // ok Cold = 3, // ok Rot = 4, // ok Acid = 5, // ok Fire = 6, // ok Shockwave = 7, // ok Electric = 8, // ok Poison = 9, // ok Curse = 10, // Sickness = 11, // Hatred = 12, // Mezz = 13, // ok Root = 14, // ok Fear = 18, // ok // curatif HealHP = 15, HealSap = 16, HealSta = 17, Stun = 19, SlowAttack = 20, SlowMove = 21, Blind = 22, Madness = 23, // range weapon (reuse magic system for now) RangeWeaponFirst = 128, RangeWeaponGattling = RangeWeaponFirst, RangeWeaponMissile = 129, // Unknown, }; TMagicFx toMagicFx( DMGTYPE::EDamageType type ,bool Link); TMagicFx toMagicFx( EFFECT_FAMILIES::TEffectFamily effect); TMagicFx healtoMagicFx( sint32 healHp, sint32 healSap, sint32 healSta, bool link ); // enum for the auras fxs enum TAuraFX { NoAura = 0, Divinity = 1, SpeedMove = 2, AuraSap = 3, AuraSta = 4, AuraHp = 5, ProtectionMelee = 6, ProtectionRange = 7, ProtectionMagic = 8, WarCry = 9, FireWall = 10, WaterWall = 11, ThornWall = 12, LightningWall = 13, OtherFireWall = 14, TeleportKami = 15, // No effect aura TeleportKara = 16, // No effect aura }; } #endif // RY_MAGIC_FX_H /* End of magic_fx.h */