Hi i want to move enum from java to c# but i dont know what todo so im going here to ask you.
here is java code:
@XmlEnum
public enum ItemAttackType {
PHYSICAL(false, SkillElement.NONE),
MAGICAL_EARTH(true, SkillElement.EARTH),
MAGICAL_WATER(true, SkillElement.WATER),
MAGICAL_WIND(true, SkillElement.WIND),
MAGICAL_FIRE(true, SkillElement.FIRE);
private boolean magic;
private SkillElement elem;
private ItemAttackType(boolean magic, SkillElement elem) {
this.magic = magic;
this.elem = elem;
}
public boolean isMagical() {
return magic;
}
public SkillElement getMagicalElement() {
return elem;
}
}
public enum SkillElement {
NONE(0),
FIRE(1),
WATER(2),
WIND(3),
EARTH(4),
LIGHT(5),
DARK(6);
private int element;
private SkillElement(int id) {
this.element = id;
}
public int getElementId() {
return element;
}
}
What I have tried:
i tried code like this but im not sure its work.
public enum ItemAttackType
{
PHYSICAL,
MAGICAL_EARTH,
MAGICAL_WATER,
MAGICAL_WIND,
MAGICAL_FIRE
}
public enum SkillElement
{
NONE=0,
FIRE=1,
WATER=2,
WIND=3,
EARTH=4,
LIGHT=5,
DARK=6
}
public class ItemAttackTypeUtil
{
private static readonly IDictionary<itemattacktype, itemattacktypeutil=""> PLANETS = new Dictionary<itemattacktype, itemattacktypeutil="">();
SkillElement guardRace;
bool isMagic;
static ItemAttackTypeUtil()
{
PLANETS.Add(ItemAttackType.PHYSICAL, new ItemAttackTypeUtil(SkillElement.NONE, false));
PLANETS.Add(ItemAttackType.MAGICAL_EARTH, new ItemAttackTypeUtil(SkillElement.EARTH, true));
PLANETS.Add(ItemAttackType.MAGICAL_WATER, new ItemAttackTypeUtil(SkillElement.WATER, true));
PLANETS.Add(ItemAttackType.MAGICAL_WIND, new ItemAttackTypeUtil(SkillElement.WIND, true));
PLANETS.Add(ItemAttackType.MAGICAL_FIRE, new ItemAttackTypeUtil(SkillElement.FIRE, true));
}
public ItemAttackTypeUtil(SkillElement guardRace, bool isMagic)
{
this.guardRace = guardRace;
this.isMagic = isMagic;
}
public static ItemAttackTypeUtil GetUtil(ItemAttackType tribe)
{
return PLANETS[tribe];
}
}
is its correct? or have another solutions?