static public FItem CreateRandomItem(int luck) { Random rand = new Random(); if (itemConfs == null) { // ??? FItem newItem = new FItem(); newItem.item_type = (ItemType)rand.Next(1, 7); var names = namePool[newItem.item_type]; newItem.name = names[rand.Next(0, names.Length - 1)]; newItem.icon_name = newItem.name; newItem.health_value = luck; newItem.speed_value = luck; newItem.damage_value = luck; newItem.intelligence_value = luck; newItem.defence_value = luck; newItem.silver_value = 1 + luck * 5; return(newItem); } else { var itemConf = itemConfs[rand.Next(0, itemConfs.Count - 1)]; return(CreateSpecificItem(itemConf.name, itemConf.icon, itemConf.type, luck)); } }
static public FItem FromDItem(DItem item) { FItem fItem = new FItem(); fItem.item_id = item.item_id; fItem.item_type = item.item_type; fItem.name = item.name; fItem.icon_name = item.icon_name; fItem.health_value = item.health_value; fItem.speed_value = item.speed_value; fItem.damage_value = item.damage_value; fItem.intelligence_value = item.intelligence_value; fItem.defence_value = item.defence_value; fItem.silver_value = item.silver_value; return(fItem); }
static public FItem CreateSpecificItem(string name, string icon, ItemType type, int luck) { FItem newItem = new FItem(); Random rand = new Random(); newItem.name = name; newItem.icon_name = icon; newItem.item_type = type; if (newItem.name == "HealthElixir") { newItem.health_value = 0; newItem.speed_value = 0; newItem.damage_value = 0; newItem.intelligence_value = 0; newItem.defence_value = 0; newItem.silver_value = 10; } else { // base value 10% luck ~ 20% luck double dluck = luck; newItem.health_value = (int)Math.Ceiling(dluck * (rand.Next(100, 200) / 1000d)); newItem.speed_value = (int)Math.Ceiling(dluck * (rand.Next(100, 200) / 1000d)); newItem.damage_value = (int)Math.Ceiling(dluck * (rand.Next(100, 200) / 1000d)); newItem.intelligence_value = (int)Math.Ceiling(dluck * (rand.Next(100, 200) / 1000d)); newItem.defence_value = (int)Math.Ceiling(dluck * (rand.Next(100, 200) / 1000d)); switch (type) { case ItemType.Helmet: // intelligence first newItem.intelligence_value += luck * 9 / 10; newItem.health_value += luck / 10; break; case ItemType.Armour: // defence first newItem.defence_value += luck * 4 / 5; newItem.health_value += luck / 5; break; case ItemType.Shoes: // speed first newItem.speed_value += luck * 4 / 5; newItem.health_value += luck / 5; break; case ItemType.Leftweapon: // damage first newItem.damage_value += luck / 2; newItem.health_value += luck / 2; break; case ItemType.Rightweapon: // damage first newItem.damage_value += luck / 2; newItem.health_value += luck / 2; break; case ItemType.Legging: // speed & defence newItem.speed_value += luck / 3; newItem.defence_value += luck / 3; newItem.health_value += luck / 3; break; } newItem.silver_value = newItem.health_value + newItem.speed_value + newItem.damage_value + newItem.intelligence_value + newItem.defence_value; } return(newItem); }