175 lines
4.6 KiB
Java
175 lines
4.6 KiB
Java
/*
|
|
* This file is part of the L2J Mobius project.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU 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
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
package com.l2jmobius.gameserver.model;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
public final class Elementals
|
|
{
|
|
private static final Map<Integer, ElementalItems> TABLE = new HashMap<>();
|
|
|
|
static
|
|
{
|
|
for (ElementalItems item : ElementalItems.values())
|
|
{
|
|
TABLE.put(item._itemId, item);
|
|
}
|
|
}
|
|
|
|
protected static final byte NONE = -1;
|
|
protected static final byte FIRE = 0;
|
|
protected static final byte WATER = 1;
|
|
protected static final byte WIND = 2;
|
|
protected static final byte EARTH = 3;
|
|
protected static final byte HOLY = 4;
|
|
protected static final byte DARK = 5;
|
|
|
|
public static final int FIRST_WEAPON_BONUS = 20;
|
|
public static final int NEXT_WEAPON_BONUS = 5;
|
|
public static final int ARMOR_BONUS = 6;
|
|
|
|
public static final int[] WEAPON_VALUES =
|
|
{
|
|
0, // Level 1
|
|
25, // Level 2
|
|
75, // Level 3
|
|
150, // Level 4
|
|
175, // Level 5
|
|
225, // Level 6
|
|
300, // Level 7
|
|
325, // Level 8
|
|
375, // Level 9
|
|
450, // Level 10
|
|
475, // Level 11
|
|
525, // Level 12
|
|
600, // Level 13
|
|
Integer.MAX_VALUE
|
|
// TODO: Higher stones
|
|
};
|
|
|
|
public static final int[] ARMOR_VALUES =
|
|
{
|
|
0, // Level 1
|
|
12, // Level 2
|
|
30, // Level 3
|
|
60, // Level 4
|
|
72, // Level 5
|
|
90, // Level 6
|
|
120, // Level 7
|
|
132, // Level 8
|
|
150, // Level 9
|
|
180, // Level 10
|
|
192, // Level 11
|
|
210, // Level 12
|
|
240, // Level 13
|
|
Integer.MAX_VALUE
|
|
// TODO: Higher stones
|
|
};
|
|
|
|
public enum ElementalItemType
|
|
{
|
|
Stone(3),
|
|
Roughore(3),
|
|
Crystal(6),
|
|
Jewel(9),
|
|
Energy(12);
|
|
|
|
public int _maxLevel;
|
|
|
|
ElementalItemType(int maxLvl)
|
|
{
|
|
_maxLevel = maxLvl;
|
|
}
|
|
}
|
|
|
|
public enum ElementalItems
|
|
{
|
|
fireStone(FIRE, 9546, ElementalItemType.Stone),
|
|
waterStone(WATER, 9547, ElementalItemType.Stone),
|
|
windStone(WIND, 9549, ElementalItemType.Stone),
|
|
earthStone(EARTH, 9548, ElementalItemType.Stone),
|
|
divineStone(HOLY, 9551, ElementalItemType.Stone),
|
|
darkStone(DARK, 9550, ElementalItemType.Stone),
|
|
|
|
fireRoughtore(FIRE, 10521, ElementalItemType.Roughore),
|
|
waterRoughtore(WATER, 10522, ElementalItemType.Roughore),
|
|
windRoughtore(WIND, 10524, ElementalItemType.Roughore),
|
|
earthRoughtore(EARTH, 10523, ElementalItemType.Roughore),
|
|
divineRoughtore(HOLY, 10526, ElementalItemType.Roughore),
|
|
darkRoughtore(DARK, 10525, ElementalItemType.Roughore),
|
|
|
|
fireCrystal(FIRE, 9552, ElementalItemType.Crystal),
|
|
waterCrystal(WATER, 9553, ElementalItemType.Crystal),
|
|
windCrystal(WIND, 9555, ElementalItemType.Crystal),
|
|
earthCrystal(EARTH, 9554, ElementalItemType.Crystal),
|
|
divineCrystal(HOLY, 9557, ElementalItemType.Crystal),
|
|
darkCrystal(DARK, 9556, ElementalItemType.Crystal),
|
|
|
|
fireJewel(FIRE, 9558, ElementalItemType.Jewel),
|
|
waterJewel(WATER, 9559, ElementalItemType.Jewel),
|
|
windJewel(WIND, 9561, ElementalItemType.Jewel),
|
|
earthJewel(EARTH, 9560, ElementalItemType.Jewel),
|
|
divineJewel(HOLY, 9563, ElementalItemType.Jewel),
|
|
darkJewel(DARK, 9562, ElementalItemType.Jewel),
|
|
|
|
// not yet supported by client (Freya pts)
|
|
fireEnergy(FIRE, 9564, ElementalItemType.Energy),
|
|
waterEnergy(WATER, 9565, ElementalItemType.Energy),
|
|
windEnergy(WIND, 9567, ElementalItemType.Energy),
|
|
earthEnergy(EARTH, 9566, ElementalItemType.Energy),
|
|
divineEnergy(HOLY, 9569, ElementalItemType.Energy),
|
|
darkEnergy(DARK, 9568, ElementalItemType.Energy);
|
|
|
|
public byte _element;
|
|
public int _itemId;
|
|
public ElementalItemType _type;
|
|
|
|
ElementalItems(byte element, int itemId, ElementalItemType type)
|
|
{
|
|
_element = element;
|
|
_itemId = itemId;
|
|
_type = type;
|
|
}
|
|
}
|
|
|
|
public static byte getItemElement(int itemId)
|
|
{
|
|
final ElementalItems item = TABLE.get(itemId);
|
|
if (item != null)
|
|
{
|
|
return item._element;
|
|
}
|
|
return NONE;
|
|
}
|
|
|
|
public static ElementalItems getItemElemental(int itemId)
|
|
{
|
|
return TABLE.get(itemId);
|
|
}
|
|
|
|
public static int getMaxElementLevel(int itemId)
|
|
{
|
|
final ElementalItems item = TABLE.get(itemId);
|
|
if (item != null)
|
|
{
|
|
return item._type._maxLevel;
|
|
}
|
|
return -1;
|
|
}
|
|
}
|