/// /// interface WeaponOptions extends ClothingOptions { leftHand : boolean; rightHand : boolean; attribute? : Attribute; attackCost? : number; attributeDamageFactor? : number; attributeForceFactor? : number; accuracy? : number; } class Weapon extends Clothing implements Weaponized { private attribute : Attribute; private attributeDamageFactor : number; private attackCost : number; private attributeForceFactor : number; private accuracy : number; constructor (t : WeaponOptions) { super(t); if (t.leftHand) { this.slots.push(Humanoid.SLOT_LEFTHAND); } if (t.rightHand) { this.slots.push(Humanoid.SLOT_RIGHTHAND); } this.attackCost = t.attackCost == undefined ? 1 : t.attackCost; this.attributeDamageFactor = t.attributeDamageFactor == undefined ? 1 : t.attributeDamageFactor; this.attributeForceFactor = t.attributeForceFactor == undefined ? 1 : t.attributeForceFactor; this.accuracy = t.accuracy == undefined ? 0 : t.accuracy; this.attribute = t.attribute; } /** * Implements Weaponized */ public getAttribute () { return this.attribute; } public getAttributeDamageFactor () { return this.attributeDamageFactor; } public getAttributeForceFactor () { return this.attributeForceFactor; } public getAccuracy () { return this.accuracy; } public getCost () { return this.attackCost; } }