Simple_Combat/
Simple_Combat/cmd/
Simple_Combat/cmd/bmud/
Simple_Combat/lib/core/
module Cmd
  def cmd_attack(args)
    args = args.split(" ")
    args.each do |x|
      x.downcase
    end
    place = get_object(location)
    if place.characters.size < 2
      sendto("They are not here.")
    else
      place.characters(id).each do |x|
        case x.name
          when args[0].proper_name
            atk_r = rand(20)+1
            def_r = rand(20)+1
            dam_r = rand(6)+1
            case args[1]
              when 'head'
                atk_r -= 4
                dam_r += 2
                target = 'head'
              when 'body'
                atk_r += 0
                dam_r -= 0
                target = 'body'
              when 'legs'
                atk_r -= 2
                dam_r += 1
                rand(100)>49? target='left leg' : target='right leg'
              when 'arms'
                atk_r += 2
                dam_r -= 1
                rand(100)>49? target='left arm' : target='right arm'
              else
                atk_r += 0
                dam_r -= 0
                target = 'body'
              end
            case self.attributes['stance']
              when 'relaxed'
                atk_r += 0
                dam_r += 0
              when 'defensive'
                atk_r -= 2
                dam_r -= 0
              when 'evasive'
                atk_r -= 0
                dam_r -= 2
              when 'offensive'
                atk_r += 2
                dam_r += 2
              else
                sendto("There has been a serious bug, please report it.")
              end
            case x.attributes['stance']
              when 'relaxed'
                def_r += 0
              when 'defensive'
                def_r += 2
              when 'evasive'
                def_r += 2
              when 'offensive'
                def_r -= 2
              else
                add_event(id,x.id,:show,"There has been a serious bug, please report it.")
              end
            dam_r<=0? dam_r=1 : dam_r+=0 # A little ugly. If dam_r is equal or less than 0 set it to 1 else do nothing.
            if atk_r > def_r
              add_event(id,x.id,:show,"#{name} hits you in the #{target} for #{dam_r} damage.")
              sendto("You hit #{x.name} in the #{target} for #{dam_r} damage.")
              x.damage('health',dam_r,x.id)
            else
              add_event(id,x.id,:show,"#{name} takes a swing at your #{target} and misses you.")
              sendto("You take a swing at #{x.name}'s #{target} and miss.")
            end
          else
            sendto("They are not here.")
          end
      end
    end
  end
end