944 lines
34 KiB
C#
944 lines
34 KiB
C#
|
|
using System.Collections;
|
|||
|
|
using UnityEngine;
|
|||
|
|
|
|||
|
|
public class Lottery {
|
|||
|
|
private Hashtable lottery; // Hashtable<ItemSubType, int>. Maps item subtype to relative chance of getting the item.
|
|||
|
|
|
|||
|
|
int sum;
|
|||
|
|
|
|||
|
|
public Lottery(Hashtable _lottery) {
|
|||
|
|
this.lottery = _lottery;
|
|||
|
|
|
|||
|
|
sum = 0;
|
|||
|
|
foreach (DictionaryEntry KV in lottery) {
|
|||
|
|
sum += (int)KV.Value;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static Item generateItem(ItemSubType subType, int minMoney = 1, int maxMoney = 1) {
|
|||
|
|
if (subType == ItemSubType.MONEY) {
|
|||
|
|
Item item = new Item(null, subType);
|
|||
|
|
int amount = Random.Range(minMoney, maxMoney);
|
|||
|
|
if (amount > 999) {
|
|||
|
|
item.subType = ItemSubType.MONEY3;
|
|||
|
|
} else if (amount > 99) {
|
|||
|
|
item.subType = ItemSubType.MONEY2;
|
|||
|
|
}
|
|||
|
|
item.count = amount;
|
|||
|
|
return item;
|
|||
|
|
} else {
|
|||
|
|
return new Item((ItemData)ItemData.itemData[subType], subType, minMoney);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public Item Roll(int minMoney, int maxMoney) {
|
|||
|
|
int ticket = Random.Range(0, sum + 1);
|
|||
|
|
int currentBucket = 0;
|
|||
|
|
foreach (DictionaryEntry KV in lottery) {
|
|||
|
|
if (currentBucket < ticket && ticket < currentBucket + (int)KV.Value) {
|
|||
|
|
// You win!
|
|||
|
|
if (KV.Key == null || (ItemSubType)KV.Key == ItemSubType.NONE) {
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
if ((ItemSubType)KV.Key == ItemSubType.MONEY ||
|
|||
|
|
(ItemSubType)KV.Key == ItemSubType.MONEY2 ||
|
|||
|
|
(ItemSubType)KV.Key == ItemSubType.MONEY3) {
|
|||
|
|
return generateItem((ItemSubType)KV.Key, minMoney, maxMoney);
|
|||
|
|
}
|
|||
|
|
return generateItem((ItemSubType)KV.Key);
|
|||
|
|
}
|
|||
|
|
currentBucket += (int)KV.Value;
|
|||
|
|
}
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public class MonsterInfo {
|
|||
|
|
public string name;
|
|||
|
|
public int level;
|
|||
|
|
public long maxHP;
|
|||
|
|
public int exp;
|
|||
|
|
public int attack;
|
|||
|
|
public float defense;
|
|||
|
|
public float defenseMultiplier;
|
|||
|
|
public int numLotteryRuns;
|
|||
|
|
public int minMoney;
|
|||
|
|
public int maxMoney;
|
|||
|
|
|
|||
|
|
// TODO: Add monster power per skill (bosses have multiple, hard monsters have multiple)
|
|||
|
|
// probably can just be a List<int>
|
|||
|
|
|
|||
|
|
public MonsterInfo(string name,
|
|||
|
|
int level,
|
|||
|
|
long maxHP,
|
|||
|
|
int exp,
|
|||
|
|
int attack,
|
|||
|
|
float defense,
|
|||
|
|
float mul,
|
|||
|
|
int numRuns,
|
|||
|
|
int min,
|
|||
|
|
int max) {
|
|||
|
|
this.name = name;
|
|||
|
|
this.level = level;
|
|||
|
|
this.maxHP = maxHP;
|
|||
|
|
this.exp = exp;
|
|||
|
|
this.attack = attack;
|
|||
|
|
this.defense = defense;
|
|||
|
|
this.defenseMultiplier = mul;
|
|||
|
|
this.numLotteryRuns = numRuns;
|
|||
|
|
this.minMoney = min;
|
|||
|
|
this.maxMoney = max;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public enum MonsterID {
|
|||
|
|
// Dangerous Valley
|
|||
|
|
BROWN_MUSHROOM,
|
|||
|
|
BLUE_MUSHROOM,
|
|||
|
|
RED_MUSHROOM,
|
|||
|
|
SLIME,
|
|||
|
|
RED_FOX,
|
|||
|
|
BROWN_SQUIRREL,
|
|||
|
|
WHITE_FOX,
|
|||
|
|
WHITE_SQUIRREL,
|
|||
|
|
HARPY_F,
|
|||
|
|
HALFLING_ROGUE,
|
|||
|
|
HALFLING_SWORDWIELDER,
|
|||
|
|
HARPY_F_2,
|
|||
|
|
HALFLING_ARCHER,
|
|||
|
|
HALFLING_ROGUE_2,
|
|||
|
|
HARPY_M,
|
|||
|
|
HALFLING_ARCHER_2,
|
|||
|
|
HALFLING_SWORDWIELDER_2,
|
|||
|
|
HARPY_M_2,
|
|||
|
|
HALFLING_ROGUE_3,
|
|||
|
|
HALFLING_ARCHER_3,
|
|||
|
|
HALFLING_SWORDWIELDER_3,
|
|||
|
|
HALFLING_LEADER,
|
|||
|
|
|
|||
|
|
// Dense Forest
|
|||
|
|
POSSESSED_FAIRY,
|
|||
|
|
POSSESSED_FLOWER,
|
|||
|
|
LOST_SOUL,
|
|||
|
|
POSSESSED_FAIRY_2,
|
|||
|
|
POSSESSED_MUSHROOM,
|
|||
|
|
POSSESSED_FAIRY_3,
|
|||
|
|
LOST_SOUL_2,
|
|||
|
|
POSSESSED_FLOWER_2,
|
|||
|
|
VAMPIRE,
|
|||
|
|
POSSESSED_FAIRY_4,
|
|||
|
|
LOST_SOUL_3,
|
|||
|
|
VAMPIRE_2,
|
|||
|
|
LOST_SOUL_4,
|
|||
|
|
LOST_SOUL_5,
|
|||
|
|
HUNTER,
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static readonly Hashtable MonsterInfoMap = new Hashtable() {
|
|||
|
|
{ MonsterID.BROWN_MUSHROOM,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Brown Mushroom",
|
|||
|
|
/*level=*/ 1,
|
|||
|
|
/*hp=*/ 1000,
|
|||
|
|
/*exp=*/ 6,
|
|||
|
|
/*attack=*/ 20,
|
|||
|
|
/*def=*/ 20,
|
|||
|
|
/*defMul=*/ 1f,
|
|||
|
|
/*rolls=*/ 1,
|
|||
|
|
/*minMoney=*/ 0,
|
|||
|
|
/*maxMoney=*/ 0) },
|
|||
|
|
{ MonsterID.BLUE_MUSHROOM,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Red Mushroom",
|
|||
|
|
/*level=*/ 2,
|
|||
|
|
/*hp=*/ 1500,
|
|||
|
|
/*exp=*/ 8,
|
|||
|
|
/*attack=*/ 30,
|
|||
|
|
/*def=*/ 30,
|
|||
|
|
/*defMul=*/ 1f,
|
|||
|
|
/*rolls=*/ 1,
|
|||
|
|
/*minMoney=*/ 0,
|
|||
|
|
/*maxMoney=*/ 0) },
|
|||
|
|
{ MonsterID.RED_MUSHROOM,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Red Mushroom",
|
|||
|
|
/*level=*/ 3,
|
|||
|
|
/*hp=*/ 2000,
|
|||
|
|
/*exp=*/ 8,
|
|||
|
|
/*attack=*/ 30,
|
|||
|
|
/*def=*/ 30,
|
|||
|
|
/*defMul=*/ 1f,
|
|||
|
|
/*rolls=*/ 1,
|
|||
|
|
/*minMoney=*/ 0,
|
|||
|
|
/*maxMoney=*/ 0) },
|
|||
|
|
{ MonsterID.SLIME,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Slime",
|
|||
|
|
/*level=*/ 3,
|
|||
|
|
/*hp=*/ 2500,
|
|||
|
|
/*exp=*/ 15,
|
|||
|
|
/*attack=*/ 35,
|
|||
|
|
/*def=*/ 20,
|
|||
|
|
/*defMul=*/ 1f,
|
|||
|
|
/*rolls=*/ 2,
|
|||
|
|
/*minMoney=*/ 0,
|
|||
|
|
/*maxMoney=*/ 0) },
|
|||
|
|
{ MonsterID.RED_FOX,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Red Fox",
|
|||
|
|
/*level=*/ 5,
|
|||
|
|
/*hp=*/ 5000,
|
|||
|
|
/*exp=*/ 30,
|
|||
|
|
/*attack=*/ 80,
|
|||
|
|
/*def=*/ 50,
|
|||
|
|
/*defMul=*/ 0.98f,
|
|||
|
|
/*rolls=*/ 2,
|
|||
|
|
/*minMoney=*/ 2,
|
|||
|
|
/*maxMoney=*/ 5) },
|
|||
|
|
{ MonsterID.BROWN_SQUIRREL,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Brown Squirrel",
|
|||
|
|
/*level=*/ 6,
|
|||
|
|
/*hp=*/ 6250,
|
|||
|
|
/*exp=*/ 32,
|
|||
|
|
/*attack=*/ 90,
|
|||
|
|
/*def=*/ 55,
|
|||
|
|
/*defMul=*/ 0.98f,
|
|||
|
|
/*rolls=*/ 2,
|
|||
|
|
/*minMoney=*/ 2,
|
|||
|
|
/*maxMoney=*/ 7) },
|
|||
|
|
{ MonsterID.WHITE_FOX,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "White Fox",
|
|||
|
|
/*level=*/ 7,
|
|||
|
|
/*hp=*/ 6800,
|
|||
|
|
/*exp=*/ 34,
|
|||
|
|
/*attack=*/ 100,
|
|||
|
|
/*def=*/ 50,
|
|||
|
|
/*defMul=*/ 0.98f,
|
|||
|
|
/*rolls=*/ 2,
|
|||
|
|
/*minMoney=*/ 2,
|
|||
|
|
/*maxMoney=*/ 5) },
|
|||
|
|
{ MonsterID.WHITE_SQUIRREL,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "White Squirrel",
|
|||
|
|
/*level=*/ 8,
|
|||
|
|
/*hp=*/ 9000,
|
|||
|
|
/*exp=*/ 38,
|
|||
|
|
/*attack=*/ 100,
|
|||
|
|
/*def=*/ 60,
|
|||
|
|
/*defMul=*/ 0.98f,
|
|||
|
|
/*rolls=*/ 2,
|
|||
|
|
/*minMoney=*/ 2,
|
|||
|
|
/*maxMoney=*/ 7) },
|
|||
|
|
{ MonsterID.HARPY_F,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Harpy (F)",
|
|||
|
|
/*level=*/ 8,
|
|||
|
|
/*hp=*/ 5000,
|
|||
|
|
/*exp=*/ 40,
|
|||
|
|
/*attack=*/ 90,
|
|||
|
|
/*def=*/ 60,
|
|||
|
|
/*defMul=*/ 0.96f,
|
|||
|
|
/*rolls=*/ 2,
|
|||
|
|
/*minMoney=*/ 2,
|
|||
|
|
/*maxMoney=*/ 7) },
|
|||
|
|
{ MonsterID.HALFLING_ROGUE,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Halfling Rogue",
|
|||
|
|
/*level=*/ 9,
|
|||
|
|
/*hp=*/ 6500,
|
|||
|
|
/*exp=*/ 60,
|
|||
|
|
/*attack=*/ 150,
|
|||
|
|
/*def=*/ 50,
|
|||
|
|
/*defMul=*/ 0.90f,
|
|||
|
|
/*rolls=*/ 3,
|
|||
|
|
/*minMoney=*/ 8,
|
|||
|
|
/*maxMoney=*/ 15) },
|
|||
|
|
{ MonsterID.HALFLING_SWORDWIELDER,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Halfling Swordwielder",
|
|||
|
|
/*level=*/ 10,
|
|||
|
|
/*hp=*/ 7500,
|
|||
|
|
/*exp=*/ 75,
|
|||
|
|
/*attack=*/ 180,
|
|||
|
|
/*def=*/ 100,
|
|||
|
|
/*defMul=*/ 0.90f,
|
|||
|
|
/*rolls=*/ 3,
|
|||
|
|
/*minMoney=*/ 5,
|
|||
|
|
/*maxMoney=*/ 10) },
|
|||
|
|
{ MonsterID.HARPY_F_2,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Angry Harpy (F)",
|
|||
|
|
/*level=*/ 11,
|
|||
|
|
/*hp=*/ 6000,
|
|||
|
|
/*exp=*/ 65,
|
|||
|
|
/*attack=*/ 130,
|
|||
|
|
/*def=*/ 60,
|
|||
|
|
/*defMul=*/ 0.95f,
|
|||
|
|
/*rolls=*/ 3,
|
|||
|
|
/*minMoney=*/ 3,
|
|||
|
|
/*maxMoney=*/ 10) },
|
|||
|
|
{ MonsterID.HALFLING_ARCHER,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Halfling Archer",
|
|||
|
|
/*level=*/ 12,
|
|||
|
|
/*hp=*/ 7000,
|
|||
|
|
/*exp=*/ 75,
|
|||
|
|
/*attack=*/ 150,
|
|||
|
|
/*def=*/ 80,
|
|||
|
|
/*defMul=*/ 0.90f,
|
|||
|
|
/*rolls=*/ 3,
|
|||
|
|
/*minMoney=*/ 5,
|
|||
|
|
/*maxMoney=*/ 10) },
|
|||
|
|
{ MonsterID.HALFLING_ROGUE_2,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Sneaky Halfling Rogue",
|
|||
|
|
/*level=*/ 13,
|
|||
|
|
/*hp=*/ 7000,
|
|||
|
|
/*exp=*/ 85,
|
|||
|
|
/*attack=*/ 200,
|
|||
|
|
/*def=*/ 100,
|
|||
|
|
/*defMul=*/ 0.90f,
|
|||
|
|
/*rolls=*/ 3,
|
|||
|
|
/*minMoney=*/ 10,
|
|||
|
|
/*maxMoney=*/ 20) },
|
|||
|
|
{ MonsterID.HARPY_M,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Harpy (M)",
|
|||
|
|
/*level=*/ 14,
|
|||
|
|
/*hp=*/ 8000,
|
|||
|
|
/*exp=*/ 95,
|
|||
|
|
/*attack=*/ 250,
|
|||
|
|
/*def=*/ 120,
|
|||
|
|
/*defMul=*/ 0.95f,
|
|||
|
|
/*rolls=*/ 3,
|
|||
|
|
/*minMoney=*/ 5,
|
|||
|
|
/*maxMoney=*/ 15) },
|
|||
|
|
{ MonsterID.HALFLING_ARCHER_2,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Decorated Halfling Archer",
|
|||
|
|
/*level=*/ 15,
|
|||
|
|
/*hp=*/ 10000,
|
|||
|
|
/*exp=*/ 100,
|
|||
|
|
/*attack=*/ 250,
|
|||
|
|
/*def=*/ 150,
|
|||
|
|
/*defMul=*/ 0.90f,
|
|||
|
|
/*rolls=*/ 3,
|
|||
|
|
/*minMoney=*/ 5,
|
|||
|
|
/*maxMoney=*/ 15) },
|
|||
|
|
{ MonsterID.HALFLING_SWORDWIELDER_2,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Burly Halfling Swordwielder",
|
|||
|
|
/*level=*/ 16,
|
|||
|
|
/*hp=*/ 13000,
|
|||
|
|
/*exp=*/ 150,
|
|||
|
|
/*attack=*/ 350,
|
|||
|
|
/*def=*/ 200,
|
|||
|
|
/*defMul=*/ 0.90f,
|
|||
|
|
/*rolls=*/ 3,
|
|||
|
|
/*minMoney=*/ 10,
|
|||
|
|
/*maxMoney=*/ 25) },
|
|||
|
|
{ MonsterID.HARPY_M_2,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Angry Harpy (M)",
|
|||
|
|
/*level=*/ 16,
|
|||
|
|
/*hp=*/ 9000,
|
|||
|
|
/*exp=*/ 115,
|
|||
|
|
/*attack=*/ 300,
|
|||
|
|
/*def=*/ 140,
|
|||
|
|
/*defMul=*/ 0.92f,
|
|||
|
|
/*rolls=*/ 3,
|
|||
|
|
/*minMoney=*/ 10,
|
|||
|
|
/*maxMoney=*/ 25) },
|
|||
|
|
{ MonsterID.HALFLING_ROGUE_3,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Shadowy Halfling Rogue",
|
|||
|
|
/*level=*/ 17,
|
|||
|
|
/*hp=*/ 10000,
|
|||
|
|
/*exp=*/ 165,
|
|||
|
|
/*attack=*/ 300,
|
|||
|
|
/*def=*/ 150,
|
|||
|
|
/*defMul=*/ 0.90f,
|
|||
|
|
/*rolls=*/ 4,
|
|||
|
|
/*minMoney=*/ 20,
|
|||
|
|
/*maxMoney=*/ 40) },
|
|||
|
|
{ MonsterID.HALFLING_ARCHER_3,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Expert Halfling Archer",
|
|||
|
|
/*level=*/ 18,
|
|||
|
|
/*hp=*/ 10500,
|
|||
|
|
/*exp=*/ 200,
|
|||
|
|
/*attack=*/ 400,
|
|||
|
|
/*def=*/ 150,
|
|||
|
|
/*defMul=*/ 0.90f,
|
|||
|
|
/*rolls=*/ 44,
|
|||
|
|
/*minMoney=*/ 10,
|
|||
|
|
/*maxMoney=*/ 25) },
|
|||
|
|
{ MonsterID.HALFLING_SWORDWIELDER_3,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Master Halfling Swordwielder",
|
|||
|
|
/*level=*/ 19,
|
|||
|
|
/*hp=*/ 15000,
|
|||
|
|
/*exp=*/ 250,
|
|||
|
|
/*attack=*/ 500,
|
|||
|
|
/*def=*/ 300,
|
|||
|
|
/*defMul=*/ 0.90f,
|
|||
|
|
/*rolls=*/ 4,
|
|||
|
|
/*minMoney=*/ 15,
|
|||
|
|
/*maxMoney=*/ 40) },
|
|||
|
|
{ MonsterID.HALFLING_LEADER,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Halfling Bandit Leader",
|
|||
|
|
/*level=*/ 20,
|
|||
|
|
/*hp=*/ 500000,
|
|||
|
|
/*exp=*/ 2000,
|
|||
|
|
/*attack=*/ 1000,
|
|||
|
|
/*def=*/ 500,
|
|||
|
|
/*defMul=*/ 0.85f,
|
|||
|
|
/*rolls=*/ 10,
|
|||
|
|
/*minMoney=*/ 50,
|
|||
|
|
/*maxMoney=*/ 100) },
|
|||
|
|
|
|||
|
|
// Dense Forest
|
|||
|
|
{ MonsterID.POSSESSED_FAIRY,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Possessed Fairy",
|
|||
|
|
/*level=*/ 17,
|
|||
|
|
/*hp=*/ 30000,
|
|||
|
|
/*exp=*/ 300,
|
|||
|
|
/*attack=*/ 1000,
|
|||
|
|
/*def=*/ 300,
|
|||
|
|
/*defMul=*/ 0.85f,
|
|||
|
|
/*rolls=*/ 2,
|
|||
|
|
/*minMoney=*/ 20,
|
|||
|
|
/*maxMoney=*/ 40) },
|
|||
|
|
{ MonsterID.POSSESSED_FLOWER,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Possessed Flower",
|
|||
|
|
/*level=*/ 18,
|
|||
|
|
/*hp=*/ 30000,
|
|||
|
|
/*exp=*/ 150,
|
|||
|
|
/*attack=*/ 500,
|
|||
|
|
/*def=*/ 300,
|
|||
|
|
/*defMul=*/ 0.85f,
|
|||
|
|
/*rolls=*/ 2,
|
|||
|
|
/*minMoney=*/ 10,
|
|||
|
|
/*maxMoney=*/ 20) },
|
|||
|
|
{ MonsterID.LOST_SOUL,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Lost Soul",
|
|||
|
|
/*level=*/ 19,
|
|||
|
|
/*hp=*/ 40000,
|
|||
|
|
/*exp=*/ 230,
|
|||
|
|
/*attack=*/ 900,
|
|||
|
|
/*def=*/ 500,
|
|||
|
|
/*defMul=*/ 0.85f,
|
|||
|
|
/*rolls=*/ 2,
|
|||
|
|
/*minMoney=*/ 0,
|
|||
|
|
/*maxMoney=*/ 0) },
|
|||
|
|
{ MonsterID.POSSESSED_FAIRY_2,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Skittish Possessed Fairy",
|
|||
|
|
/*level=*/ 20,
|
|||
|
|
/*hp=*/ 80000,
|
|||
|
|
/*exp=*/ 400,
|
|||
|
|
/*attack=*/ 1500,
|
|||
|
|
/*def=*/ 500,
|
|||
|
|
/*defMul=*/ 0.85f,
|
|||
|
|
/*rolls=*/ 3,
|
|||
|
|
/*minMoney=*/ 20,
|
|||
|
|
/*maxMoney=*/ 50) },
|
|||
|
|
{ MonsterID.POSSESSED_MUSHROOM,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Possessed Mushroom",
|
|||
|
|
/*level=*/ 21,
|
|||
|
|
/*hp=*/ 40000,
|
|||
|
|
/*exp=*/ 200,
|
|||
|
|
/*attack=*/ 700,
|
|||
|
|
/*def=*/ 400,
|
|||
|
|
/*defMul=*/ 0.85f,
|
|||
|
|
/*rolls=*/ 2,
|
|||
|
|
/*minMoney=*/ 10,
|
|||
|
|
/*maxMoney=*/ 25) },
|
|||
|
|
{ MonsterID.POSSESSED_FAIRY_3,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Territorial Possessed Fairy",
|
|||
|
|
/*level=*/ 22,
|
|||
|
|
/*hp=*/ 100000,
|
|||
|
|
/*exp=*/ 550,
|
|||
|
|
/*attack=*/ 2000,
|
|||
|
|
/*def=*/ 600,
|
|||
|
|
/*defMul=*/ 0.85f,
|
|||
|
|
/*rolls=*/ 3,
|
|||
|
|
/*minMoney=*/ 30,
|
|||
|
|
/*maxMoney=*/ 60) },
|
|||
|
|
{ MonsterID.LOST_SOUL_2,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Berating Lost Soul",
|
|||
|
|
/*level=*/ 23,
|
|||
|
|
/*hp=*/ 60000,
|
|||
|
|
/*exp=*/ 300,
|
|||
|
|
/*attack=*/ 1200,
|
|||
|
|
/*def=*/ 500,
|
|||
|
|
/*defMul=*/ 0.85f,
|
|||
|
|
/*rolls=*/ 2,
|
|||
|
|
/*minMoney=*/ 0,
|
|||
|
|
/*maxMoney=*/ 0) },
|
|||
|
|
{ MonsterID.POSSESSED_FLOWER_2,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Poisonous Possessed Flower",
|
|||
|
|
/*level=*/ 24,
|
|||
|
|
/*hp=*/ 70000,
|
|||
|
|
/*exp=*/ 350,
|
|||
|
|
/*attack=*/ 1400,
|
|||
|
|
/*def=*/ 550,
|
|||
|
|
/*defMul=*/ 0.85f,
|
|||
|
|
/*rolls=*/ 2,
|
|||
|
|
/*minMoney=*/ 10,
|
|||
|
|
/*maxMoney=*/ 20) },
|
|||
|
|
{ MonsterID.VAMPIRE,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Possessed Vampire",
|
|||
|
|
/*level=*/ 25,
|
|||
|
|
/*hp=*/ 100000,
|
|||
|
|
/*exp=*/ 500,
|
|||
|
|
/*attack=*/ 1800,
|
|||
|
|
/*def=*/ 800,
|
|||
|
|
/*defMul=*/ 0.85f,
|
|||
|
|
/*rolls=*/ 3,
|
|||
|
|
/*minMoney=*/ 40,
|
|||
|
|
/*maxMoney=*/ 65) },
|
|||
|
|
{ MonsterID.POSSESSED_FAIRY_4,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Furious Possessed Fairy",
|
|||
|
|
/*level=*/ 23,
|
|||
|
|
/*hp=*/ 150000,
|
|||
|
|
/*exp=*/ 800,
|
|||
|
|
/*attack=*/ 3000,
|
|||
|
|
/*def=*/ 1000,
|
|||
|
|
/*defMul=*/ 0.80f,
|
|||
|
|
/*rolls=*/ 4,
|
|||
|
|
/*minMoney=*/ 50,
|
|||
|
|
/*maxMoney=*/ 70) },
|
|||
|
|
{ MonsterID.LOST_SOUL_3,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Fiery Lost Soul",
|
|||
|
|
/*level=*/ 24,
|
|||
|
|
/*hp=*/ 80000,
|
|||
|
|
/*exp=*/ 400,
|
|||
|
|
/*attack=*/ 1800,
|
|||
|
|
/*def=*/ 600,
|
|||
|
|
/*defMul=*/ 0.85f,
|
|||
|
|
/*rolls=*/ 2,
|
|||
|
|
/*minMoney=*/ 0,
|
|||
|
|
/*maxMoney=*/ 0) },
|
|||
|
|
{ MonsterID.VAMPIRE_2,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Bloody Possessed Vampire",
|
|||
|
|
/*level=*/ 25,
|
|||
|
|
/*hp=*/ 120000,
|
|||
|
|
/*exp=*/ 600,
|
|||
|
|
/*attack=*/ 2000,
|
|||
|
|
/*def=*/ 800,
|
|||
|
|
/*defMul=*/ 0.85f,
|
|||
|
|
/*rolls=*/ 3,
|
|||
|
|
/*minMoney=*/ 40,
|
|||
|
|
/*maxMoney=*/ 65) },
|
|||
|
|
{ MonsterID.LOST_SOUL_4,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Fiery Lost Soul",
|
|||
|
|
/*level=*/ 26,
|
|||
|
|
/*hp=*/ 90000,
|
|||
|
|
/*exp=*/ 450,
|
|||
|
|
/*attack=*/ 2000,
|
|||
|
|
/*def=*/ 600,
|
|||
|
|
/*defMul=*/ 0.85f,
|
|||
|
|
/*rolls=*/ 2,
|
|||
|
|
/*minMoney=*/ 0,
|
|||
|
|
/*maxMoney=*/ 0) },
|
|||
|
|
{ MonsterID.LOST_SOUL_5,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Fiery Lost Soul",
|
|||
|
|
/*level=*/ 27,
|
|||
|
|
/*hp=*/ 100000,
|
|||
|
|
/*exp=*/ 500,
|
|||
|
|
/*attack=*/ 2200,
|
|||
|
|
/*def=*/ 600,
|
|||
|
|
/*defMul=*/ 0.85f,
|
|||
|
|
/*rolls=*/ 2,
|
|||
|
|
/*minMoney=*/ 0,
|
|||
|
|
/*maxMoney=*/ 0) },
|
|||
|
|
{ MonsterID.HUNTER,
|
|||
|
|
new MonsterInfo(
|
|||
|
|
/*name=*/ "Hunter",
|
|||
|
|
/*level=*/ 28,
|
|||
|
|
/*hp=*/ 5000000,
|
|||
|
|
/*exp=*/ 5000,
|
|||
|
|
/*attack=*/ 4000,
|
|||
|
|
/*def=*/ 1000,
|
|||
|
|
/*defMul=*/ 0.50f,
|
|||
|
|
/*rolls=*/ 10,
|
|||
|
|
/*minMoney=*/ 100,
|
|||
|
|
/*maxMoney=*/ 150) },
|
|||
|
|
|
|||
|
|
// Grand Star Tower
|
|||
|
|
// Rocky Valley
|
|||
|
|
// Ryothe City Outskirts
|
|||
|
|
// Magician's Academy
|
|||
|
|
// Mountain Foot
|
|||
|
|
// Mountainside
|
|||
|
|
// Dead Horizon
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
public static readonly Hashtable LotteryMap = new Hashtable() {
|
|||
|
|
// Valley
|
|||
|
|
{ MonsterID.BROWN_MUSHROOM, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 50 },
|
|||
|
|
{ ItemSubType.ARCHER_TUNIC, 200 },
|
|||
|
|
{ ItemSubType.ARCHER_GLOVES, 200 },
|
|||
|
|
{ ItemSubType.ARCHER_BOW, 200 },
|
|||
|
|
{ ItemSubType.ARCHER_BOOTS, 200 },
|
|||
|
|
{ ItemSubType.BANDIT_OUTFIT, 200 },
|
|||
|
|
{ ItemSubType.BANDIT_GLOVES, 200 },
|
|||
|
|
{ ItemSubType.BANDIT_BOW, 200 },
|
|||
|
|
{ ItemSubType.BANDIT_BOOTS, 200 },
|
|||
|
|
{ ItemSubType.GREEN_MUSHROOM_SAMPLE, 200 },
|
|||
|
|
{ ItemSubType.SPIRIT_WATER, 50 },
|
|||
|
|
{ ItemSubType.ENHANCE, 10 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.BLUE_MUSHROOM, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 100 },
|
|||
|
|
{ ItemSubType.GREEN_MUSHROOM_SAMPLE, 200 },
|
|||
|
|
{ ItemSubType.SPIRIT_WATER, 50 },
|
|||
|
|
{ ItemSubType.ENHANCE, 10 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.RED_MUSHROOM, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.RED_MUSHROOM_SAMPLE, 200 },
|
|||
|
|
{ ItemSubType.SPIRIT_WATER, 50 },
|
|||
|
|
{ ItemSubType.ENHANCE, 10 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.SLIME, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.BRANCH, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 10 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.RED_FOX, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 700 },
|
|||
|
|
{ ItemSubType.FOX_FUR, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 10 },
|
|||
|
|
{ ItemSubType.ARCHER_TUNIC, 3 },
|
|||
|
|
{ ItemSubType.ARCHER_BOOTS, 6 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.BROWN_SQUIRREL, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 700 },
|
|||
|
|
{ ItemSubType.SQUIRREL_FUR, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 10 },
|
|||
|
|
{ ItemSubType.ARCHER_TUNIC, 3 },
|
|||
|
|
{ ItemSubType.ARCHER_BOOTS, 6 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.WHITE_FOX, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 700 },
|
|||
|
|
{ ItemSubType.FOX_FUR, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 10 },
|
|||
|
|
{ ItemSubType.ARCHER_TUNIC, 3 },
|
|||
|
|
{ ItemSubType.ARCHER_BOOTS, 8 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.WHITE_SQUIRREL, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 700 },
|
|||
|
|
{ ItemSubType.SQUIRREL_FUR, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 10 },
|
|||
|
|
{ ItemSubType.ARCHER_TUNIC, 3 },
|
|||
|
|
{ ItemSubType.ARCHER_BOOTS, 8 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.HARPY_F, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 700 },
|
|||
|
|
{ ItemSubType.HARPY_FEATHER, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 3 },
|
|||
|
|
{ ItemSubType.ARCHER_TUNIC, 6 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.HALFLING_ROGUE, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 700 },
|
|||
|
|
{ ItemSubType.FUZZY_SCARF, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 20 },
|
|||
|
|
{ ItemSubType.BREAD_LOAF, 10 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 10 },
|
|||
|
|
{ ItemSubType.BANDIT_BOOTS, 4 },
|
|||
|
|
{ ItemSubType.BANDIT_OUTFIT, 5 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.HALFLING_SWORDWIELDER, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.SOFT_FABRIC, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 20 },
|
|||
|
|
{ ItemSubType.BREAD_LOAF, 10 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 10 },
|
|||
|
|
{ ItemSubType.BANDIT_BOOTS, 5 },
|
|||
|
|
{ ItemSubType.BANDIT_OUTFIT, 4 },
|
|||
|
|
{ ItemSubType.GODDESS_BOW, 4000 },
|
|||
|
|
{ ItemSubType.GODDESS_DRESS, 4000 },
|
|||
|
|
{ ItemSubType.GODDESS_SANDALS, 4000 },
|
|||
|
|
{ ItemSubType.GODDESS_CUFFS, 4000 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.HARPY_F_2, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 700 },
|
|||
|
|
{ ItemSubType.HARPY_FEATHER, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 25 },
|
|||
|
|
{ ItemSubType.ARCHER_TUNIC, 8 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.HALFLING_ARCHER, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 600 },
|
|||
|
|
{ ItemSubType.BREASTPLATE, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 20 },
|
|||
|
|
{ ItemSubType.BREAD_LOAF, 10 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 10 },
|
|||
|
|
{ ItemSubType.BANDIT_BOOTS, 7 },
|
|||
|
|
{ ItemSubType.BANDIT_OUTFIT, 6 },
|
|||
|
|
{ ItemSubType.BANDIT_BOW, 5 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.HALFLING_ROGUE_2, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 700 },
|
|||
|
|
{ ItemSubType.FUZZY_SCARF, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 30 },
|
|||
|
|
{ ItemSubType.BREAD_LOAF, 15 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 15 },
|
|||
|
|
{ ItemSubType.BANDIT_BOOTS, 7 },
|
|||
|
|
{ ItemSubType.BANDIT_OUTFIT, 4 },
|
|||
|
|
{ ItemSubType.BANDIT_BOW, 1 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.HARPY_M, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 700 },
|
|||
|
|
{ ItemSubType.LARGE_HARPY_FEATHER, 200 },
|
|||
|
|
{ ItemSubType.HARPY_FEATHER, 100 },
|
|||
|
|
{ ItemSubType.ENHANCE, 30 },
|
|||
|
|
{ ItemSubType.BREAD_LOAF, 15 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 15 },
|
|||
|
|
{ ItemSubType.ARCHER_TUNIC, 10 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.HALFLING_ARCHER_2, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 600 },
|
|||
|
|
{ ItemSubType.BREASTPLATE, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 30 },
|
|||
|
|
{ ItemSubType.BREAD_LOAF, 15 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 15 },
|
|||
|
|
{ ItemSubType.BANDIT_BOOTS, 4 },
|
|||
|
|
{ ItemSubType.BANDIT_OUTFIT, 4 },
|
|||
|
|
{ ItemSubType.BANDIT_BOW, 8 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.HALFLING_SWORDWIELDER_2, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.SOFT_FABRIC, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 35 },
|
|||
|
|
{ ItemSubType.BREAD_LOAF, 25 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 25 },
|
|||
|
|
{ ItemSubType.BANDIT_BOOTS, 7 },
|
|||
|
|
{ ItemSubType.BANDIT_OUTFIT, 7 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.HARPY_M_2, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 700 },
|
|||
|
|
{ ItemSubType.LARGE_HARPY_FEATHER, 300 },
|
|||
|
|
{ ItemSubType.HARPY_FEATHER, 100 },
|
|||
|
|
{ ItemSubType.ENHANCE, 40 },
|
|||
|
|
{ ItemSubType.BREAD_LOAF, 15 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 15 },
|
|||
|
|
{ ItemSubType.ARCHER_TUNIC, 10 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.HALFLING_ROGUE_3, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 700 },
|
|||
|
|
{ ItemSubType.FUZZY_SCARF, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 35 },
|
|||
|
|
{ ItemSubType.BREAD_LOAF, 15 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 15 },
|
|||
|
|
{ ItemSubType.BANDIT_BOOTS, 10 },
|
|||
|
|
{ ItemSubType.BANDIT_GLOVES, 2 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.HALFLING_ARCHER_3, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 600 },
|
|||
|
|
{ ItemSubType.BREASTPLATE, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 35 },
|
|||
|
|
{ ItemSubType.BREAD_LOAF, 20 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 20 },
|
|||
|
|
{ ItemSubType.BANDIT_BOW, 10 },
|
|||
|
|
{ ItemSubType.BANDIT_GLOVES, 2 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.HALFLING_SWORDWIELDER_3, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.SOFT_FABRIC, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 35 },
|
|||
|
|
{ ItemSubType.BREAD_LOAF, 25 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 25 },
|
|||
|
|
{ ItemSubType.BANDIT_OUTFIT, 10 },
|
|||
|
|
{ ItemSubType.BANDIT_GLOVES, 2 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.HALFLING_LEADER, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.MONEY, 1000 },
|
|||
|
|
{ ItemSubType.SOFT_FABRIC, 200 },
|
|||
|
|
{ ItemSubType.BREASTPLATE, 200 },
|
|||
|
|
{ ItemSubType.FUZZY_SCARF, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 200 },
|
|||
|
|
{ ItemSubType.BREAD_LOAF, 200 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 200 },
|
|||
|
|
{ ItemSubType.BANDIT_OUTFIT, 200 },
|
|||
|
|
{ ItemSubType.BANDIT_BOOTS, 200 },
|
|||
|
|
{ ItemSubType.BANDIT_BOW, 50 },
|
|||
|
|
{ ItemSubType.BANDIT_GLOVES, 5 },
|
|||
|
|
{ ItemSubType.SPECIAL_FEATHER_PIN, 1 },
|
|||
|
|
}) },
|
|||
|
|
|
|||
|
|
// Dense Forest
|
|||
|
|
{ MonsterID.POSSESSED_FAIRY, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.FAIRY_DUST, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 40 },
|
|||
|
|
{ ItemSubType.APPLE, 25 },
|
|||
|
|
{ ItemSubType.SMALL_SPIRIT, 10 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 5 },
|
|||
|
|
{ ItemSubType.FAIRY_DRESS, 2 },
|
|||
|
|
{ ItemSubType.FAIRY_SANDALS, 2 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.POSSESSED_FLOWER, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.SPIRIT_WATER, 80 },
|
|||
|
|
{ ItemSubType.ENHANCE, 40 },
|
|||
|
|
{ ItemSubType.SMALL_SPIRIT, 10 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.LOST_SOUL, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.SMALL_SPIRIT, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 40 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.POSSESSED_FAIRY_2, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.FAIRY_DUST, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 50 },
|
|||
|
|
{ ItemSubType.APPLE, 30 },
|
|||
|
|
{ ItemSubType.SMALL_SPIRIT, 10 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 5 },
|
|||
|
|
{ ItemSubType.FAIRY_DRESS, 3 },
|
|||
|
|
{ ItemSubType.FAIRY_SANDALS, 3 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.POSSESSED_MUSHROOM, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.SPIRIT_WATER, 80 },
|
|||
|
|
{ ItemSubType.ENHANCE, 50 },
|
|||
|
|
{ ItemSubType.SMALL_SPIRIT, 10 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.POSSESSED_FAIRY_3, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.FAIRY_DUST, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 50 },
|
|||
|
|
{ ItemSubType.APPLE, 35 },
|
|||
|
|
{ ItemSubType.SMALL_SPIRIT, 10 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 5 },
|
|||
|
|
{ ItemSubType.FAIRY_DRESS, 5 },
|
|||
|
|
{ ItemSubType.FAIRY_SANDALS, 5 },
|
|||
|
|
{ ItemSubType.FAIRY_BOW, 3 },
|
|||
|
|
{ ItemSubType.SPECIAL_FAIRY, 1 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.LOST_SOUL_2, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.SMALL_SPIRIT, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 45 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.POSSESSED_FLOWER_2, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.ENHANCE, 50 },
|
|||
|
|
{ ItemSubType.SMALL_SPIRIT, 50 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.VAMPIRE, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.BLOOD_VIAL, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 50 },
|
|||
|
|
{ ItemSubType.SMALL_SPIRIT, 50 },
|
|||
|
|
{ ItemSubType.APPLE, 35 },
|
|||
|
|
{ ItemSubType.BREAD_LOAF, 35 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 5 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.POSSESSED_FAIRY_4, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.FAIRY_DUST, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 70 },
|
|||
|
|
{ ItemSubType.APPLE, 50 },
|
|||
|
|
{ ItemSubType.SMALL_SPIRIT, 10 },
|
|||
|
|
{ ItemSubType.FAIRY_DRESS, 6 },
|
|||
|
|
{ ItemSubType.FAIRY_SANDALS, 6 },
|
|||
|
|
{ ItemSubType.FAIRY_BOW, 3 },
|
|||
|
|
{ ItemSubType.SPECIAL_FAIRY, 1 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.LOST_SOUL_3, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.SMALL_SPIRIT, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 50 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.VAMPIRE_2, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.BLOOD_VIAL, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 60 },
|
|||
|
|
{ ItemSubType.SMALL_SPIRIT, 50 },
|
|||
|
|
{ ItemSubType.APPLE, 40 },
|
|||
|
|
{ ItemSubType.BREAD_LOAF, 40 },
|
|||
|
|
{ ItemSubType.MUSHROOM_SOUP, 20 },
|
|||
|
|
{ ItemSubType.SPECIAL_FAIRY, 1 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.LOST_SOUL_4, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.SMALL_SPIRIT, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 60 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.LOST_SOUL_5, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.NONE, 500 },
|
|||
|
|
{ ItemSubType.MONEY, 500 },
|
|||
|
|
{ ItemSubType.SMALL_SPIRIT, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 60 },
|
|||
|
|
}) },
|
|||
|
|
{ MonsterID.HUNTER, new Lottery(new Hashtable() {
|
|||
|
|
{ ItemSubType.MONEY, 1000 },
|
|||
|
|
{ ItemSubType.SMALL_SPIRIT, 200 },
|
|||
|
|
{ ItemSubType.BLOOD_VIAL, 200 },
|
|||
|
|
{ ItemSubType.FAIRY_DUST, 200 },
|
|||
|
|
{ ItemSubType.ENHANCE, 200 },
|
|||
|
|
{ ItemSubType.FAIRY_DRESS, 200 },
|
|||
|
|
{ ItemSubType.FAIRY_SANDALS, 200 },
|
|||
|
|
{ ItemSubType.FAIRY_BOW, 50 },
|
|||
|
|
{ ItemSubType.SPECIAL_FAIRY_DUST, 2 },
|
|||
|
|
{ ItemSubType.SPECIAL_FAIRY, 1 },
|
|||
|
|
}) },
|
|||
|
|
|
|||
|
|
// Grand Star Tower
|
|||
|
|
// Rocky Valley
|
|||
|
|
// Ryothe City Outskirts
|
|||
|
|
// Magician's Academy
|
|||
|
|
// Mountain Foot
|
|||
|
|
// Mountainside
|
|||
|
|
// Dead Horizon
|
|||
|
|
};
|
|||
|
|
}
|