Example #1
0
        /// <summary>
        /// create a pack, and some number of things it contains
        /// </summary>
        /// <returns></returns>
        private static DmItemContainer CreateContainer()
        {
            DmItemContainer item = null;

              // pick type of container
              int choices = Enum.GetValues( typeof( DmItemTypeContainer ) ).Length;
              DmItemTypeContainer choice  = (DmItemTypeContainer)rand.Next( choices );

              // create the item of that type
              item = new DmItemContainer( choice );

              // based on the type of container, pick a number of items it contains
              int numItems = 0;
              switch( choice )
              {
            case DmItemTypeContainer.ScrollCase:
              numItems = rand.Next(3)+1;
              for( int i=0; i<numItems; i++ )
              {
            DmItemEquipment tmpItem = new DmItemEquipment( DmItemTypeEquipment.Parchment );
            if( rand.Next( 100 ) > 50 )
            {
              tmpItem.Quality = DmItemQuality.Masterwork;
              tmpItem.Enchantment = PickEnchantmentConsumable();
            }
            item.Contents.Add( tmpItem );
              }
              break;

            case DmItemTypeContainer.SmallSack:
              numItems = rand.Next( 2, 4 );
              item.Contents.Add( DmItemFactory.CreateItem( DmItemType.Money ) );
              item.Contents.Add( DmItemFactory.CreateItem( DmItemType.Food ) );
              for( int i=0; i<numItems; i++ )
            item.Contents.Add( DmItemFactory.CreateItem( DmItemType.Equipment ) );
              break;

            case DmItemTypeContainer.LargeSack:
              numItems = rand.Next( 3, 7 );
              item.Contents.Add( DmItemFactory.CreateItem( DmItemType.Money ) );
              item.Contents.Add( DmItemFactory.CreateItem( DmItemType.Food ) );
              for( int i=0; i<numItems; i++ )
            item.Contents.Add( DmItemFactory.CreateItem( DmItemType.Equipment ) );
              break;

            case DmItemTypeContainer.Backpack:
              numItems = rand.Next( 6, 8 );
              item.Contents.Add( DmItemFactory.CreateItem( DmItemType.Money ) );
              item.Contents.Add( DmItemFactory.CreateItem( DmItemType.Food ) );
              for( int i=0; i<numItems; i++ )
            item.Contents.Add( DmItemFactory.CreateItem( DmItemType.Equipment ) );
              break;

            case DmItemTypeContainer.BasketWicker:
              numItems = rand.Next( 2, 4 );
              for( int i=0; i<numItems; i++ )
            item.Contents.Add( DmItemFactory.CreateItem( DmItemType.Food ) );
              break;

            case DmItemTypeContainer.BucketWooden:
              numItems = rand.Next( 2, 4 );
              for( int i=0; i<numItems; i++ )
            item.Contents.Add( DmItemFactory.CreateItem( DmItemType.Food ) );
              break;

            case DmItemTypeContainer.Chest:
              numItems = rand.Next( 10, 20 );
              item.Contents.Add( DmItemFactory.CreateItem( DmItemType.Money ) );
              item.Contents.Add( DmItemFactory.CreateItem( DmItemType.Food ) );
              for( int i=0; i<numItems; i++ )
            item.Contents.Add( DmItemFactory.CreateItem( DmItemType.Equipment ) );
              break;

            case DmItemTypeContainer.Barrel:
              numItems = rand.Next( 3, 8 );
              for( int i=0; i<numItems; i++ )
            item.Contents.Add( DmItemFactory.CreateItem( DmItemType.Equipment ) );
              break;

            default: // BeltPouch contents by default
              // only money
              item.Contents.Add( DmItemFactory.CreateItem( DmItemType.Money ) );
              break;
              }

              return item;
        }
Example #2
0
        /// <summary>
        /// Create a random equipment item (bedrool, tent, rope, etc).
        /// </summary>
        /// <returns></returns>
        private static DmItemEquipment CreateEquipment()
        {
            DmItemEquipment item = null;

              item = new DmItemEquipment( (DmItemTypeEquipment)(rand.Next( Enum.GetValues( typeof( DmItemTypeEquipment ) ).Length )) );

              // can this chuck of gear be enchanted?  If so, set about a per-item-type random enchant.
              switch( item.Type )
              {
            case DmItemTypeEquipment.Parchment:
              if( rand.Next( 100 ) >= 95 )
              {
            item.Quality = DmItemQuality.Masterwork;
            item.Enchantment = PickEnchantmentConsumable();
              }
              break;
              }

              return item;
        }