<commit_before>
import _ from 'lodash';
import { Hands } from '../../../definitions/equipment';
import Attacks from '../../attacks/_all';
import Materials from '../../../constants/materials';
import { material, rarity, twoHanded, ranged } from '../../../constants/decorators';

const allArrows = ['orcisharrow', 'arrow', 'elvenarrow'];

@rarity(35)
@material(Materials.Wood)
@twoHanded
@ranged({ ammo: allArrows, damageBoost: '1d1' })
export class OrcishBow extends Hands {
  constructor(opts = {}) {
    _.extend(opts, {
      glyph: { fg: '#f00' },
      attacks: [Attacks.Ranged({ roll: '1d1' })] // if it can't shoot arrows, it'll bash for 1d1
    });
    super(opts);
  }
}

@rarity(25)
@material(Materials.Wood)
@twoHanded
@ranged({ ammo: allArrows, damageBoost: '1d2' })
export class Bow extends Hands {
  constructor(opts = {}) {
    _.extend(opts, {
      glyph: { fg: '#f00' },
      attacks: [Attacks.Ranged({ roll: '1d2' })] // if it can't shoot arrows, it'll bash for 1d2
    });
    super(opts);
  }
}

@rarity(15)<commit_msg>added a sling<commit_after>
import _ from 'lodash';
import { Hands } from '../../../definitions/equipment';
import Attacks from '../../attacks/_all';
import Materials from '../../../constants/materials';
import { material, rarity, twoHanded, ranged } from '../../../constants/decorators';

const allArrows = ['orcisharrow', 'arrow', 'elvenarrow'];

@rarity(35)
@material(Materials.Wood)
@twoHanded
@ranged({ ammo: allArrows, damageBoost: '1d1' })
export class OrcishBow extends Hands {
  constructor(opts = {}) {
    _.extend(opts, {
      glyph: { fg: '#f00' },
      attacks: [Attacks.Ranged({ roll: '1d1' })] // if it can't shoot arrows, it'll bash for 1d1
    });
    super(opts);
  }
}

@rarity(25)
@material(Materials.Wood)
@twoHanded
@ranged({ ammo: ['rock', 'flint stone'], damageBoost: '1d2' })
export class Sling extends Hands {
  constructor(opts = {}) {
    _.extend(opts, {
      glyph: { fg: '#f00' },
      attacks: [Attacks.Ranged({ roll: '1d1' })] // if it can't shoot arrows, it'll bash for 1d2
    });
    super(opts);
  }
}

@rarity(25)
@material(Materials.Wood)
@twoHanded
@ranged({ ammo: allArrows, damageBoost: '1d2' })
export class Bow extends Hands {
  constructor(opts = {}) {
    _.extend(opts, {
      glyph: { fg: '#f00' },
      attacks: [Attacks.Ranged({ roll: '1d2' })] // if it can't shoot arrows, it'll bash for 1d2
    });
    super(opts);
  }
}

@rarity(15)
{'fraction_non_alphanumeric': 0.1915330867242088, 'fraction_numerical': 0.02219482120838471, 'mean_word_length': 3.457875457875458, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3509077', 'n_tokens_mistral': 930, 'n_tokens_neox': 877, 'n_words': 221}