 class @Attachment.EvasionItem extends @VolatileAttachment
   name: "EvasionItemAttachment"
 
-  constructor: (attributes={}) ->
-    super()
+  initialize: (attributes) =>
     @ratio = attributes.ratio || 0.9
 
   editEvasion: (accuracy) =>

    throw new Error("Passed a non-existent Attachment.")  if !attachmentClass?
    attachment = @get(attachmentClass)
    if !attachment?
      attachment = new attachmentClass(options)
      for attribute, value of attributes
        attachment[attribute] = value
      @attachments.push(attachment)

class @Attachment.Attract extends @VolatileAttachment
  name: "AttractAttachment"

  initialize: (attributes) =>
    {source} = attributes
    if @pokemon.hasItem("Destiny Knot") && !source.has(Attachment.Attract)
      source.attach(Attachment.Attract, {source})
      @pokemon.removeItem()

  beforeMove: (battle, move, user, targets) =>
