D2R-MH/Enums.cs

842 lines
25 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace app
{
public static class Enums
{
public enum UnitType
{
Player = 0,
NPC = 1,
GameObject = 2,
Missile = 3,
Item = 4,
Warp = 5, // Room tile ?
Invalid = 6,
NotApplicable = 0xff,
}
public enum UnitVisibility
{
Invalid = 0, // No longer valid
OnScreen = 1, // Displayed on screen
InSight = 2, // Visible to the character
InProximity = 4, // In 2-4 screen range we get notified about
}
public enum Act
{
ActI = 0,
ActII = 1,
ActIII = 2,
ActIV = 3,
ActV = 4,
}
public static readonly Dictionary<string, int> ActLevels = new Dictionary<string, int>
{
{"ActI", 40},
{"ActII", 75},
{"ActIII", 103},
{"ActIV", 109},
{"ActV", 142},
};
/*public enum Diablo2Version
{
Classic = "Classic",
Resurrected = 'Resurrected',
PathOfDiablo = 'PathOfDiablo',
ProjectDiablo2 = 'ProjectDiablo2',
}*/
public enum WarpType
{
Act1WildernessToCaveCliffL = 0,
Act1WildernessToCaveCliffR = 1,
Act1WildernessToCaveFloorL = 2,
Act1WildernessToCaveFloorR = 3,
Act1CaveUp = 4,
Act1CaveDown = 5,
Act1GraveyardToCrypt1 = 6,
Act1GraveyardToCrypt2 = 7,
Act1CryptUp = 8,
Act1CryptDown = 9,
Act1WildernessToTower = 10,
Act1TowerToWilderness = 11,
Act1TowerToCrypt = 12,
Act1JailUp = 13,
Act1JailDown = 14,
Act1CathedralToCatacombs = 15,
Act1CatacombsToCathedral = 16,
Act1CatacombsUp = 17,
Act1CatacombsDown = 18,
Act2TownToSewerTrap = 19,
Act2TownToSewerDock = 20,
Act2SewerDockToTown = 21,
Act2SewerUp = 22,
Act2SewerDown = 23,
Act2TownToHarem = 24,
Act2HaremToTown = 25,
Act2HaremUp1 = 26,
Act2HaremUp2 = 27,
Act2HaremDown1 = 28,
Act2HaremDown2 = 29,
Act2BasementUp1 = 30,
Act2BasementUp2 = 31,
Act2BasementDown = 32,
Act2DesertToTombL1 = 33,
Act2DesertToTombL2 = 34,
Act2DesertToTombR1 = 35,
Act2DesertToTombR2 = 36,
Act2DesertToTombViper = 37,
Act2DesertToTombTal1 = 38,
Act2DesertToTombTal2 = 39,
Act2DesertToTombTal3 = 40,
Act2DesertToTombTal4 = 41,
Act2DesertToTombTal5 = 42,
Act2DesertToTombTal6 = 43,
Act2DesertToTombTal7 = 44,
Act2TombUp = 45,
Act2TombDown = 46,
Act2DesertToLair = 47,
Act2LairUp = 48,
Act2LairDown = 49,
Act2DesertToSewerTrap = 50,
Act3JungleToSpider = 51,
Act3SpiderToJungle = 52,
Act3JungleToDungeonFort = 53,
Act3JungleToDungeonHole = 54,
Act3DungeonUp = 55,
Act3DungeonDown = 56,
Act3KurastToSewer = 57,
Act3SewerUpL = 58,
Act3SewerUpR = 59,
Act3SewerDown = 60,
Act3KurastToTemple = 61,
Act3TempleUpL = 62,
Act3TempleUpR = 63,
Act3TravincalToMephisto = 64,
Act3MephistoUpL = 65,
Act3MephistoUpR = 66,
Act3MephistoDownL = 67,
Act3MephistoDownR = 68,
Act4MesaToLava = 69,
Act4LavaToMesa = 70,
//Expansion,
Act5BarricadeDownWall = 71,
Act5BarricadeDownFloor = 72,
Act5IceCavesUp = 73,
Act5IceCavesDown = 74,
Act5IceCavesDownFloor = 75,
Act5TempleEntrance = 76,
Act5TempleDown = 77,
Act5TempleUp = 78,
Act5MountainTopToIce = 79,
Act5MountainTopToBaal = 80,
Act5BaalTempleUp = 81,
Act5BaalTempleDown = 82,
}
public enum PlayerClass
{
Amazon = 0,
Sorceress = 1,
Necromancer = 2,
Paladin = 3,
Barbarian = 4,
Druid = 5,
Assassin = 6,
}
public enum NpcFlag
{
None = 0,
SuperUnique = 1 << 1,
Champion = 1 << 2,
Unique = 1 << 3,
Minion = 1 << 4,
Possessed = 1 << 5,
Ghostly = 1 << 6,
Multishot = 1 << 7,
}
/** Extra skills NPC's can have */
public enum NpcEnchant
{
RandomName = 1,
None = 0,
Strong = 5,
Fast = 6,
Cursed = 7,
MagicResist = 8,
Fire = 9,
Lightning = 17,
Cold = 18,
ManaBurn = 25,
Teleport = 26,
Spectral = 27,
StoneSkin = 28,
MultiShot = 29,
Aura = 30,
Quest = 22,
Ai = 34,
}
public enum ItemActionType
{
AddToGround = 0,
GroundToCursor = 1, // only sent if item goes to cursor (GS packet 0x0A removes item from ground)
DropToGround = 2,
OnGround = 3,
PutInContainer = 4,
RemoveFromContainer = 5,
Equip = 6,
/**
*Sent for the equipped item when changing from a two handed weapon to a single handed weapon or vice versa.
*The item must be equiped on the "empty" hand or a regular SwapBodyItem will be sent instead.
*Empty hand meaning left hand if currently wearing a two handed weapon or the empty hand if wearing a single hand item.
*The result will be the new item being equipped and the old going to cursor.
*/
IndirectlySwapBodyItem = 7,
UnEquip = 8,
SwapBodyItem = 9,
AddQuantity = 0x0a,
AddToShop = 0x0b,
RemoveFromShop = 0x0c,
SwapInContainer = 0x0d,
PutInBelt = 0x0e,
RemoveFromBelt = 0x0f,
SwapInBelt = 0x10,
/**
*Sent for the secondary hand's item going to inventory when changing from a dual item setup to a two handed weapon.
*/
AutoUnEquip = 0x11,
RemoveFromHireling = 0x12, // sent along with a 9d 08 packet... Also Item on cursor when entering game ?? MiscToCursor??
ItemInSocket = 0x13,
Unknown1 = 0x14,
UpdateStats = 0x15, // put item in socket; for each potion that drops in belt when lower one is removed...
Unknown2 = 0x16,
WeaponSwitch = 0x17,
Unknown3 = 129,
Unknown4 = 130,
}
public enum ItemCategory
{
Helm = 0,
Armor = 1,
/** Most weapons, including Crossbows */
Weapon = 5,
/** Bows (not crossbows), sometimes shield (if equipped in LeftHand?) */
Weapon2 = 6,
/** Shields can some sometimes be Weapon2... */
Shield = 7,
Unknown8 = 8,
/** Class specific items !? */
Special = 10,
Unknown11 = 11,
Unknown12 = 12,
Unknown13 = 13,
Unknown14 = 14,
/** BaseMiscItems and gloves, boots... */
Misc = 16,
}
public enum ItemDestination
{
Unspecified = 0,
Equipment = 1,
Belt = 2,
Ground = 3,
Cursor = 4,
Item = 6,
}
public enum ItemQuality
{
NotApplicable = 0,
Inferior = 1,
Normal = 2,
Superior = 3,
Magic = 4,
Set = 5,
Rare = 6,
Unique = 7,
Crafted = 8,
}
public enum ItemContainer
{
Equipment = 0x00, // Player or Merc Equipment
Ground = 0x01,
Inventory = 0x02,
TraderOffer = 0x04,
ForTrade = 0x06,
Cube = 0x08,
Stash = 0x0a,
Belt = 0x0c,
Item = 0x0e,
ArmorTab = 0x82,
WeaponTab1 = 0x84,
WeaponTab2 = 0x86,
MiscTab = 0x88,
}
public enum Attribute
{
Strength,
Energy,
Dexterity,
Vitality,
StatPointsRemaining,
SkillPointsRemaining,
Life,
LifeMax,
Mana,
ManaMax,
Stam,
StamMax,
CurrentLevel,
Experience,
GoldInPlayer,
GoldInStash,
EnhancedDefense,
EnhancedDamageMax,
EnhancedDamage,
AttackRating,
ChanceToBlock,
MinDamage,
MaxDamage,
SecondMinDamage,
SecMaxDamage,
DamagePercent,
ManaRecovery,
ManaRecoveryBonus,
StaminaRecoveryBonus,
LastExp,
NextExp,
Defense,
DefenseVsMissiles,
DefenseVsHth,
NormalDamageReduction,
MagicDamageReduction,
DamageReduced,
MagicResist,
MaxMagicResist,
FireResist,
MaxFireResist,
LightningResist,
MaxLightningResist,
ColdResist,
MaxColdResist,
PoisonResist,
MaxPoisonResist,
DamageAura,
FireMinDamage,
FireMaxDamage,
LightningMinDamage,
LightningMaxDamage,
MagicMinDamage,
MagicMaxDamage,
ColdMinDamage,
ColdMaxDamage,
ColdLength,
PoisonMinDamage,
PoisonMaxDamage,
PoisonLength,
LifeSteal,
LifeStealMax,
ManaSteal,
ManaStealMax,
StaminaDrainMinDamage,
StaminaDrainMaxDamage,
StunLength,
VelocityPercent,
AttackRate,
OtherAnimRate,
Quantity,
Value,
Durability,
MaxDurability,
HPRegen,
MaxDurabilityPercent,
MaxHPPercent,
MaxManaPercent,
AttackerTakesDamage,
GoldFind,
MagicFind,
Knockback,
TimeDuration,
AddClassSkills,
Unused84,
AddExperience,
HealAfterKill,
ReducePrices,
DoubleHerbDuration,
LightRadius,
LightColor,
RequirementPercent,
LevelRequire,
IncreasedAttackSpeed,
LevelRequirePercent,
LastBlockFrame,
FasterRunWalk,
NonClassSkill,
State,
FasterHitRecovery,
PlayerCount,
PoisonOverrideLength,
FasterBlockRate,
BypassUndead,
BypassDemons,
FasterCastRate,
BypassBeasts,
SingleSkill,
SlainMonstersRestInPeace,
CurseResistance,
PoisonLengthResist,
NormalDamage,
Howl,
Stupidity,
DamageTakenGoesToMana,
IgnoreTargetsAR,
FractionalTargetAC,
PreventMonsterHeal,
HalfFreezeDuration,
AttackRatingPercent,
DamageTargetAC,
DemonDamagePercent,
UndeadDamagePercent,
DemonAttackRating,
UndeadAttackRating,
Throwable,
ElemSkills,
AllSkills,
AttackerTakesLightDamage,
IronMaidenLevel,
LifeTapLevel,
ThornsPercent,
BoneArmor,
BoneArmorMax,
Freeze,
OpenWounds,
CrushingBlow,
KickDamage,
ManaAfterKill,
HealAfterDemonKill,
ExtraBlood,
DeadlyStrike,
AbsorbFirePercent,
AbsorbFire,
AbsorbLightningPercent,
AbsorbLightning,
AbsorbMagicPercent,
AbsorbMagic,
AbsorbColdPercent,
AbsorbCold,
Slow,
Aura,
Indestructible,
CannotBeFrozen,
StaminaDrainPercent,
Reanimate,
Pierce,
MagicAarow,
ExplosiveAarow,
ThrowMinDamage,
ThrowMaxDamage,
SkillHandofAthena,
SkillStaminaPercent,
SkillPassiveStaminaPercent,
SkillConcentration,
SkillEnchant,
SkillPierce,
SkillConviction,
SkillChillingArmor,
SkillFrenzy,
SkillDecrepify,
SkillArmorPercent,
Alignment,
Target0,
Target1,
GoldLost,
ConverisonLevel,
ConverisonMaxHP,
UnitDooverlay,
AttackVsMonType,
DamageVsMonType,
Fade,
ArmorOverridePercent,
Unused183,
Unused184,
Unused185,
Unused186,
Unused187,
AddSkillTab,
Unused189,
Unused190,
Unused191,
Unused192,
Unused193,
NumSockets,
SkillOnAttack,
SkillOnKill,
SkillOnDeath,
SkillOnHit,
SkillOnLevelUp,
Unused200,
SkillOnGetHit,
Unused202,
Unused203,
ItemChargedSkill,
Unused205,
Unused206,
Unused207,
Unused208,
Unused209,
Unused210,
Unused211,
Unused212,
Unused213,
ArmorPerLevel,
ArmorPercentPerLevel,
LifePerLevel,
ManaPerLevel,
MaxDamagePerLevel,
MaxDamagePercentPerLevel,
StrengthPerLevel,
DexterityPerLevel,
EnergyPerLevel,
VitalityPerLevel,
AttackRatingPerLevel,
AttackRatingPercentPerLevel,
ColdDamageMaxPerLevel,
FireDamageMaxPerLevel,
LightningDamageMaxPerLevel,
PoisonDamageMaxPerLevel,
ResistColdPerLevel,
ResistFirePerLevel,
ResistLightningPerLevel,
ResistPoisonPerLevel,
AbsorbColdPerLevel,
AbsorbFirePerLevel,
AbsorbLightningPerLevel,
AbsorbPoisonPerLevel,
ThornsPerLevel,
FindGoldPerLevel,
MagicFindPerLevel,
RegenStaminaPerLevel,
StaminaPerLevel,
DamageDemonPerLevel,
DamageUndeadPerLevel,
AttackRatingDemonPerLevel,
AttackRatingUndeadPerLevel,
CrushingBlowPerLevel,
OpenWoundsPerLevel,
KickDamagePerLevel,
DeadlyStrikePerLevel,
FindGemsPerLevel,
ReplenishDurability,
ReplenishQuantity,
ExtraStack,
FindItem,
SlashDamage,
SlashDamagePercent,
CrushDamage,
CrushDamagePercent,
ThrustDamage,
ThrustDamagePercent,
AbsorbSlash,
AbsorbCrush,
AbsorbThrust,
AbsorbSlashPercent,
AbsorbCrushPercent,
AbsorbThrustPercent,
ArmorByTime,
ArmorPercentByTime,
LifeByTime,
ManaByTime,
MaxDamageByTime,
MaxDamagePercentByTime,
StrengthByTime,
DexterityByTime,
EnergyByTime,
VitalityByTime,
AttackRatingByTime,
AttackRatingPercentByTime,
ColdDamageMaxByTime,
FireDamageMaxByTime,
LightningDamageMaxByTime,
PoisonDamageMaxByTime,
ResistColdByTime,
ResistFireByTime,
ResistLightningByTime,
ResistPoisonByTime,
AbsorbColdByTime,
AbsorbFireByTime,
AbsorbLightningByTime,
AbsorbPoisonByTime,
FindGoldByTime,
MagicFindByTime,
RegenStaminaByTime,
StaminaByTime,
DamageDemonByTime,
DamageUndeadByTime,
AttackRatingDemonByTime,
AttackRatingUndeadByTime,
CrushingBlowByTime,
OpenWoundsByTime,
KickDamageByTime,
DeadlyStrikeByTime,
FindGemsByTime,
PierceCold,
PierceFire,
PierceLightning,
PiercePoison,
DamageVsMonster,
DamagePercentVsMonster,
AttackRatingVsMonster,
AttackRatingPercentVsMonster,
AcVsMonster,
AcPercentVsMonster,
FireLength,
BurningMin,
BurningMax,
ProgressiveDamage,
ProgressiveSteal,
ProgressiveOther,
ProgressiveFire,
ProgressiveCold,
ProgressiveLightning,
ExtraCharges,
ProgressiveAttackRating,
PoisonCount,
DamageFrameRate,
PierceIdx,
FireSkillDamage,
LightningSkillDamage,
ColdSkillDamage,
PoisonSkillDamage,
EnemyFireResist,
EnemyLightningResist,
EnemyColdResist,
EnemyPoisonResist,
PassiveCriticalStrike,
PassiveDodge,
PassiveAvoid,
PassiveEvade,
PassiveWarmth,
PassiveMasteryMeleeAttackRating,
PassiveMasteryMeleeDamage,
PassiveMasteryMeleeCritical,
PassiveMasteryThrowAttackRating,
PassiveMasteryThrowDamage,
PassiveMasteryThrowCritical,
PassiveWeaponBlock,
SummonResist,
ModifierListSkill,
ModifierListLevel,
LastSentHPPercent,
SourceUnitType,
SourceUnitID,
ShortParam1,
QuestItemDifficulty,
PassiveMagicMastery,
PassiveMagicPierce,
SkillCooldown,
SkillMissileDamageScale,
}
public enum Difficulty
{
Normal = 0,
Nightmare = 1,
Hell = 2,
}
public enum GameObjectMode
{
Neutral,
Operating,
Opened,
OnGround,
InCursor,
Dropping,
Special4,
Special5,
}
public enum GameObjectInteraction
{
GeneralObject = 0x00, // Stash, chests, etc.
Well = 0x01,
HealthShrine = 0x02,
Unknown1 = 0x03,
TrappedChest = 0x05,
MonsterChest = 0x08,
ManaShrine = 0x0d,
StaminaShrine = 0x0e,
ExperienceShrine = 0x0f,
FireShrine = 0x13,
Portal = 0x79, // Confirm... Pindle portal at least... red only ?
LockedChest = 0x80,
}
public enum Area
{
Abaddon = 125,
AncientTunnels = 65,
ArcaneSanctuary = 74,
ArreatPlateau = 112,
ArreatSummit = 120,
Barracks = 28,
BlackMarsh = 6,
BloodMoor = 2,
BloodyFoothills = 110,
BurialGrounds = 17,
CanyonOfTheMagi = 46,
CatacombsLevel1 = 34,
CatacombsLevel2 = 35,
CatacombsLevel3 = 36,
CatacombsLevel4 = 37,
Cathedral = 33,
CaveLevel1 = 9,
CaveLevel2 = 13,
ChaosSanctuary = 108,
CityOfTheDamned = 106,
ClawViperTempleLevel1 = 58,
ClawViperTempleLevel2 = 61,
ColdPlains = 3,
Crypt = 18,
CrystallinePassage = 113,
DarkWood = 5,
DenOfEvil = 8,
DisusedFane = 95,
DisusedReliquary = 99,
DrifterCavern = 116,
DryHills = 42,
DuranceOfHateLevel1 = 100,
DuranceOfHateLevel2 = 101,
DuranceOfHateLevel3 = 102,
DurielsLair = 73,
FarOasis = 43,
FlayerDungeonLevel1 = 88,
FlayerDungeonLevel2 = 89,
FlayerDungeonLevel3 = 91,
FlayerJungle = 78,
ForgottenReliquary = 96,
ForgottenSands = 134,
ForgottenTemple = 97,
ForgottenTower = 20,
FrigidHighlands = 111,
FrozenRiver = 114,
FrozenTundra = 117,
FurnaceOfPain = 135,
GlacialTrail = 115,
GreatMarsh = 77,
HallsOfAnguish = 122,
HallsOfPain = 123,
HallsOfTheDeadLevel1 = 56,
HallsOfTheDeadLevel2 = 57,
HallsOfTheDeadLevel3 = 60,
HallsOfVaught = 124,
HaremLevel1 = 50,
HaremLevel2 = 51,
Harrogath = 109,
HoleLevel1 = 11,
HoleLevel2 = 15,
IcyCellar = 119,
InfernalPit = 127,
InnerCloister = 32,
JailLevel1 = 29,
JailLevel2 = 30,
JailLevel3 = 31,
KurastBazaar = 80,
KurastCauseway = 82,
KurastDocks = 75,
LostCity = 44,
LowerKurast = 79,
LutGholein = 40,
MaggotLairLevel1 = 62,
MaggotLairLevel2 = 63,
MaggotLairLevel3 = 64,
MatronsDen = 133,
Mausoleum = 19,
MonasteryGate = 26,
MooMooFarm = 39,
NihlathaksTemple = 121,
None = 0,
OuterCloister = 27,
OuterSteppes = 104,
PalaceCellarLevel1 = 52,
PalaceCellarLevel2 = 53,
PalaceCellarLevel3 = 54,
PitLevel1 = 12,
PitLevel2 = 16,
PitOfAcheron = 126,
PlainsOfDespair = 105,
RiverOfFlame = 107,
RockyWaste = 41,
RogueEncampment = 1,
RuinedFane = 98,
RuinedTemple = 94,
SewersLevel1Act2 = 47,
SewersLevel1Act3 = 92,
SewersLevel2Act2 = 48,
SewersLevel2Act3 = 93,
SewersLevel3Act2 = 49,
SpiderCave = 84,
SpiderCavern = 85,
SpiderForest = 76,
StonyField = 4,
StonyTombLevel1 = 55,
StonyTombLevel2 = 59,
SwampyPitLevel1 = 86,
SwampyPitLevel2 = 87,
SwampyPitLevel3 = 90,
TalRashasTomb1 = 66,
TalRashasTomb2 = 67,
TalRashasTomb3 = 68,
TalRashasTomb4 = 69,
TalRashasTomb5 = 70,
TalRashasTomb6 = 71,
TalRashasTomb7 = 72,
TamoeHighland = 7,
TheAncientsWay = 118,
ThePandemoniumFortress = 103,
TheWorldstoneChamber = 132,
TheWorldStoneKeepLevel1 = 128,
TheWorldStoneKeepLevel2 = 129,
TheWorldStoneKeepLevel3 = 130,
ThroneOfDestruction = 131,
TowerCellarLevel1 = 21,
TowerCellarLevel2 = 22,
TowerCellarLevel3 = 23,
TowerCellarLevel4 = 24,
TowerCellarLevel5 = 25,
Travincal = 83,
Tristram = 38,
UberTristram = 136,
UndergroundPassageLevel1 = 10,
UndergroundPassageLevel2 = 14,
UpperKurast = 81,
ValleyOfSnakes = 45,
MapsAncientTemple = 137,
MapsDesecratedTemple = 138,
MapsFrigidPlateau = 139,
MapsInfernalTrial = 140,
MapsRuinedCitadel = 141
}
}
}