dmolony-DiskBrowser/src/com/bytezone/diskbrowser/wizardry/ItemV4.java

77 lines
2.7 KiB
Java
Raw Permalink Normal View History

2022-05-28 02:59:25 +00:00
package com.bytezone.diskbrowser.wizardry;
2022-06-04 03:06:20 +00:00
import java.util.List;
import com.bytezone.diskbrowser.utilities.Utility;
2022-05-28 02:59:25 +00:00
// -----------------------------------------------------------------------------------//
2022-05-31 07:44:41 +00:00
public class ItemV4 extends Item
2022-05-28 02:59:25 +00:00
// -----------------------------------------------------------------------------------//
{
2022-05-29 05:16:11 +00:00
2022-05-28 02:59:25 +00:00
// ---------------------------------------------------------------------------------//
ItemV4 (String[] names, byte[] buffer, int id)
// ---------------------------------------------------------------------------------//
{
super (names[1], buffer);
2022-05-29 05:16:11 +00:00
2022-05-31 07:44:41 +00:00
itemId = id;
2022-05-29 05:16:11 +00:00
name = names[1];
2022-05-31 07:44:41 +00:00
genericName = names[0];
2022-06-04 03:06:20 +00:00
type = ObjectType.values ()[buffer[1]];
alignment = Alignment.values ()[buffer[3]];
cursed = Utility.getSignedShort (buffer, 5) == -1;
special = Utility.getSignedShort (buffer, 7);
2022-06-04 03:06:20 +00:00
changeTo = Utility.getShort (buffer, 9); // decay #
changeChance = Utility.getShort (buffer, 11);
price = Utility.getWizLong (buffer, 13);
boltac = Utility.getSignedShort (buffer, 19);
2022-06-04 03:06:20 +00:00
spellPwr = Utility.getShort (buffer, 21);
classUseFlags = Utility.getShort (buffer, 23); // 8 flags
2022-06-04 03:06:20 +00:00
healPts = Utility.getSignedShort (buffer, 25);
flags2 = Utility.getShort (buffer, 27); // 16 flags
flags3 = Utility.getShort (buffer, 29); // 16 flags
armourClass = Utility.getSignedShort (buffer, 31);
wephitmd = Utility.getSignedShort (buffer, 33);
2022-05-31 07:44:41 +00:00
wephpdam = new Dice (buffer, 35);
2022-06-04 03:06:20 +00:00
xtraSwing = Utility.getShort (buffer, 41);
crithitm = Utility.getShort (buffer, 43) == 1; // boolean
flags1 = Utility.getShort (buffer, 45); // 14 flags
2022-06-04 03:06:20 +00:00
}
// ---------------------------------------------------------------------------------//
void link (List<ItemV4> items, List<String> spellNames)
// ---------------------------------------------------------------------------------//
{
if (changeChance > 0)
changeToItem = items.get (changeTo);
if (spellPwr > 0)
spellName = spellNames.get (spellPwr);
2022-05-28 02:59:25 +00:00
}
2022-05-28 08:54:06 +00:00
// ---------------------------------------------------------------------------------//
@Override
public String getText ()
// ---------------------------------------------------------------------------------//
{
2022-05-31 07:44:41 +00:00
StringBuilder text = new StringBuilder (super.getText ());
2022-06-04 03:06:20 +00:00
// text.append ("\n\n");
// text.append (HexFormatter.format (buffer));
2022-05-31 07:44:41 +00:00
return text.toString ();
2022-05-28 08:54:06 +00:00
}
2022-05-29 05:16:11 +00:00
// ---------------------------------------------------------------------------------//
@Override
public String toString ()
// ---------------------------------------------------------------------------------//
{
return name;
}
2022-05-28 02:59:25 +00:00
}