/// <summary> /// Create a weapon of the specified type and class /// </summary> /// <param name="iClass"></param> /// <param name="iType"></param> /// <returns></returns> public static DmItemAbstract CreateItem( DmItemTypeWeaponClass iClass, DmItemTypeWeaponType iType ) { return CreateWeapon( iClass, iType ); }
public DmItemWeaponAbstract( object iType, object iClass, object iName ) : base(iName) { itemName = iName; itemClass = iClass; itemSubType = iType; WeaponType = (DmItemTypeWeaponType)iType; WeaponClass = (DmItemTypeWeaponClass)iClass; baseItemType = DmItemType.Weapon; }
/// <summary> /// Create a weapon of the specified type (simple, martial, exotic / melee, ranged) /// </summary> /// <returns></returns> private static DmItemAbstract CreateWeapon( DmItemTypeWeaponClass iClass, DmItemTypeWeaponType iType ) { DmItemAbstract item = null; switch( iClass ) { case DmItemTypeWeaponClass.Simple: switch( iType ) { case DmItemTypeWeaponType.Melee: item = CreateWeaponMeleeSimple(); break; case DmItemTypeWeaponType.Ranged: item = CreateWeaponRangedSimple(); break; case DmItemTypeWeaponType.Ammo: item = CreateWeaponAmmoSimple(); break; } break; case DmItemTypeWeaponClass.Martial: switch( iType ) { case DmItemTypeWeaponType.Melee: item = CreateWeaponMeleeSimple(); break; case DmItemTypeWeaponType.Ranged: item = CreateWeaponRangedSimple(); break; case DmItemTypeWeaponType.Ammo: item = CreateWeaponAmmoMartial(); break; } break; case DmItemTypeWeaponClass.Exotic: switch( iType ) { case DmItemTypeWeaponType.Melee: item = CreateWeaponMeleeSimple(); break; case DmItemTypeWeaponType.Ranged: item = CreateWeaponRangedSimple(); break; case DmItemTypeWeaponType.Ammo: item = CreateWeaponAmmoExotic(); break; } break; } // in case something didn't go right, and item didnt get set if( item == null ) item = CreateWeaponMeleeSimple(); // set quality item.Quality = PickQuality(); // check for enchantments if( item.Quality == DmItemQuality.Masterwork ) if( rand.Next( 100 ) > 50 ) item.Enchantment = PickEnchantmentArmor(); // return the created item return item; }