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

109 lines
3.8 KiB
Java
Raw Normal View History

2020-02-11 07:29:55 +00:00
package com.bytezone.diskbrowser.wizardry;
import java.util.ArrayList;
import java.util.List;
import com.bytezone.diskbrowser.applefile.AbstractFile;
// -----------------------------------------------------------------------------------//
2022-05-31 07:44:41 +00:00
public abstract class Monster extends AbstractFile
2020-02-11 07:29:55 +00:00
// -----------------------------------------------------------------------------------//
{
2022-05-31 07:44:41 +00:00
public static final String[] monsterClass = { "Fighter", "Mage", "Priest", "Thief", "Midget",
"Giant", "Mythical", "Dragon", "Animal", "Were", "Undead", "Demon", "Insect", "Enchanted" };
protected final String[] breathValues =
{ "None", "Fire", "Frost", "Poison", "Level drain", "Stoning", "Magic" };
public int monsterID;
public String genericName;
public String genericNamePlural;
public String namePlural;
public Dice groupSize;
public Dice hitPoints;
int type;
public int armourClass;
public int recsn;
List<Dice> damage = new ArrayList<> ();
2022-05-31 07:44:41 +00:00
public int mageSpellLevel;
public int priestSpellLevel;
2020-02-11 07:29:55 +00:00
int levelDrain;
2022-03-28 03:55:49 +00:00
int healPts;
int breathe;
int unaffect;
2020-02-11 07:29:55 +00:00
int resistance;
int abilities;
2022-03-31 02:04:23 +00:00
2020-02-11 07:29:55 +00:00
// ---------------------------------------------------------------------------------//
2022-05-31 07:44:41 +00:00
Monster (String name, byte[] buffer)
2020-02-11 07:29:55 +00:00
// ---------------------------------------------------------------------------------//
{
super (name, buffer);
2022-04-06 08:05:37 +00:00
}
2020-02-11 07:29:55 +00:00
// ---------------------------------------------------------------------------------//
@Override
public String getText ()
// ---------------------------------------------------------------------------------//
{
StringBuilder text = new StringBuilder ();
2022-05-31 07:44:41 +00:00
text.append (String.format ("ID .............. %d%n%n", monsterID));
text.append (String.format ("Name ............ %s%n", name));
text.append (String.format ("Name plural ..... %s%n", namePlural));
text.append (String.format ("Generic name .... %s%n", genericName));
text.append (String.format ("Generic name pl . %s%n%n", genericNamePlural));
2020-02-11 07:29:55 +00:00
2022-05-31 07:44:41 +00:00
text.append (String.format ("Type ............ %2d %s%n", type, monsterClass[type]));
text.append (String.format ("Armour class .... %d%n", armourClass));
text.append (String.format ("Group size ...... %s%n", groupSize));
text.append (String.format ("Hit points ...... %s%n%n", hitPoints));
2020-02-11 07:29:55 +00:00
2022-05-31 07:44:41 +00:00
text.append (String.format ("# damage ........ %d%n", recsn));
text.append (String.format ("Damage .......... %s%n%n", getDamage ()));
2020-02-11 07:29:55 +00:00
2022-05-31 07:44:41 +00:00
text.append (String.format ("Mage level ...... %d%n", mageSpellLevel));
text.append (String.format ("Priest level .... %d%n%n", priestSpellLevel));
2020-02-11 07:29:55 +00:00
2022-05-31 07:44:41 +00:00
text.append (String.format ("Level drain ..... %d%n", levelDrain));
text.append (String.format ("Heal pts ........ %d%n", healPts));
text.append (String.format ("Breathe ......... %d %s%n", breathe, breathValues[breathe]));
text.append (String.format ("Magic resist .... %d%% %n%n", unaffect));
2020-02-11 07:29:55 +00:00
2022-05-31 07:44:41 +00:00
text.append (
String.format ("Resistance ...... %s%n", String.format ("%3d %<02X", resistance)));
text.append (String.format ("Abilities ....... %s%n", String.format ("%3d %<02X", abilities)));
2020-02-11 07:29:55 +00:00
return text.toString ();
}
// ---------------------------------------------------------------------------------//
public String getDamage ()
// ---------------------------------------------------------------------------------//
{
StringBuilder text = new StringBuilder ();
2022-03-28 03:55:49 +00:00
2020-02-11 07:29:55 +00:00
for (Dice d : damage)
text.append (d + ", ");
2022-03-28 03:55:49 +00:00
2022-03-31 02:04:23 +00:00
if (text.length () > 0)
{
text.deleteCharAt (text.length () - 1);
text.deleteCharAt (text.length () - 1);
}
2022-03-28 03:55:49 +00:00
2020-02-11 07:29:55 +00:00
return text.toString ();
}
2022-06-09 06:14:52 +00:00
// ---------------------------------------------------------------------------------//
@Override
public String toString ()
// ---------------------------------------------------------------------------------//
{
return name;
}
2022-05-31 07:44:41 +00:00
}