From e2348ec63fafca35b2529f8f9e3b444d41258adf Mon Sep 17 00:00:00 2001 From: Ari Timonen Date: Mon, 22 Jun 2015 00:32:27 +0300 Subject: [PATCH] Remove logging functionality as legacy --- app/controllers/log_events_controller.rb | 85 -------- app/controllers/log_files_controller.rb | 42 ---- app/controllers/rounds_controller.rb | 26 --- app/models/log.rb | 197 ------------------- app/models/log_event.rb | 25 --- app/models/log_file.rb | 95 --------- app/models/round.rb | 128 ------------ app/models/rounder.rb | 52 ----- app/views/log_events/edit.html.erb | 16 -- app/views/log_events/index.html.erb | 20 -- app/views/log_events/new.html.erb | 15 -- app/views/log_events/show.html.erb | 8 - app/views/rounds/_rounds.html.erb | 23 --- app/views/rounds/index.html.erb | 7 - app/views/rounds/show.html.erb | 150 -------------- db/schema.rb | 134 ++----------- public/images/weapons/acidrocket.gif | Bin 1466 -> 0 bytes public/images/weapons/bilebomb.gif | Bin 830 -> 0 bytes public/images/weapons/bite2gun.gif | Bin 1527 -> 0 bytes public/images/weapons/bitegun.gif | Bin 1514 -> 0 bytes public/images/weapons/bitegun2.gif | Bin 1527 -> 0 bytes public/images/weapons/charge.gif | Bin 2756 -> 0 bytes public/images/weapons/claws.gif | Bin 2391 -> 0 bytes public/images/weapons/devour.gif | Bin 2453 -> 0 bytes public/images/weapons/digest.gif | Bin 2453 -> 0 bytes public/images/weapons/gernades.gif | Bin 1468 -> 0 bytes public/images/weapons/gore.gif | Bin 2391 -> 0 bytes public/images/weapons/grenade.gif | Bin 1468 -> 0 bytes public/images/weapons/handgrenade.gif | Bin 841 -> 0 bytes public/images/weapons/healspray.gif | Bin 2038 -> 0 bytes public/images/weapons/heavymachinegun.gif | Bin 2230 -> 0 bytes public/images/weapons/item_mine.gif | Bin 689 -> 0 bytes public/images/weapons/knife.gif | Bin 1348 -> 0 bytes public/images/weapons/leap.gif | Bin 939 -> 0 bytes public/images/weapons/machinegun.gif | Bin 1542 -> 0 bytes public/images/weapons/mines.gif | Bin 689 -> 0 bytes public/images/weapons/oc.gif | Bin 1712 -> 0 bytes public/images/weapons/offensechamber.gif | Bin 1712 -> 0 bytes public/images/weapons/para.gif | Bin 1156 -> 0 bytes public/images/weapons/pistol.gif | Bin 1368 -> 0 bytes public/images/weapons/sentry.gif | Bin 676 -> 0 bytes public/images/weapons/shotgun.gif | Bin 1634 -> 0 bytes public/images/weapons/siege.gif | Bin 895 -> 0 bytes public/images/weapons/spikes.gif | Bin 684 -> 0 bytes public/images/weapons/spit.gif | Bin 1599 -> 0 bytes public/images/weapons/spitgunspit.gif | Bin 1599 -> 0 bytes public/images/weapons/spore.gif | Bin 1861 -> 0 bytes public/images/weapons/sporegunprojectile.gif | Bin 1861 -> 0 bytes public/images/weapons/swipe.gif | Bin 1407 -> 0 bytes public/images/weapons/welder.gif | Bin 1668 -> 0 bytes public/images/weapons/xeno.gif | Bin 2250 -> 0 bytes script/shell/log_file_update.sh | 10 - 52 files changed, 13 insertions(+), 1020 deletions(-) delete mode 100644 app/controllers/log_events_controller.rb delete mode 100644 app/controllers/log_files_controller.rb delete mode 100644 app/controllers/rounds_controller.rb delete mode 100644 app/models/log.rb delete mode 100644 app/models/log_event.rb delete mode 100644 app/models/log_file.rb delete mode 100644 app/models/round.rb delete mode 100644 app/models/rounder.rb delete mode 100644 app/views/log_events/edit.html.erb delete mode 100644 app/views/log_events/index.html.erb delete mode 100644 app/views/log_events/new.html.erb delete mode 100644 app/views/log_events/show.html.erb delete mode 100644 app/views/rounds/_rounds.html.erb delete mode 100644 app/views/rounds/index.html.erb delete mode 100644 app/views/rounds/show.html.erb delete mode 100644 public/images/weapons/acidrocket.gif delete mode 100644 public/images/weapons/bilebomb.gif delete mode 100644 public/images/weapons/bite2gun.gif delete mode 100644 public/images/weapons/bitegun.gif delete mode 100644 public/images/weapons/bitegun2.gif delete mode 100644 public/images/weapons/charge.gif delete mode 100644 public/images/weapons/claws.gif delete mode 100644 public/images/weapons/devour.gif delete mode 100644 public/images/weapons/digest.gif delete mode 100644 public/images/weapons/gernades.gif delete mode 100644 public/images/weapons/gore.gif delete mode 100644 public/images/weapons/grenade.gif delete mode 100644 public/images/weapons/handgrenade.gif delete mode 100644 public/images/weapons/healspray.gif delete mode 100644 public/images/weapons/heavymachinegun.gif delete mode 100644 public/images/weapons/item_mine.gif delete mode 100644 public/images/weapons/knife.gif delete mode 100644 public/images/weapons/leap.gif delete mode 100644 public/images/weapons/machinegun.gif delete mode 100644 public/images/weapons/mines.gif delete mode 100644 public/images/weapons/oc.gif delete mode 100644 public/images/weapons/offensechamber.gif delete mode 100644 public/images/weapons/para.gif delete mode 100644 public/images/weapons/pistol.gif delete mode 100644 public/images/weapons/sentry.gif delete mode 100644 public/images/weapons/shotgun.gif delete mode 100644 public/images/weapons/siege.gif delete mode 100644 public/images/weapons/spikes.gif delete mode 100644 public/images/weapons/spit.gif delete mode 100644 public/images/weapons/spitgunspit.gif delete mode 100644 public/images/weapons/spore.gif delete mode 100644 public/images/weapons/sporegunprojectile.gif delete mode 100644 public/images/weapons/swipe.gif delete mode 100644 public/images/weapons/welder.gif delete mode 100644 public/images/weapons/xeno.gif delete mode 100644 script/shell/log_file_update.sh diff --git a/app/controllers/log_events_controller.rb b/app/controllers/log_events_controller.rb deleted file mode 100644 index e1064ee..0000000 --- a/app/controllers/log_events_controller.rb +++ /dev/null @@ -1,85 +0,0 @@ -class LogEventsController < ApplicationController - # GET /log_events - # GET /log_events.xml - def index - @log_events = LogEvent.all - - respond_to do |format| - format.html # index.html.erb - format.xml { render xml: @log_events } - end - end - - # GET /log_events/1 - # GET /log_events/1.xml - def show - @log_event = LogEvent.find(params[:id]) - - respond_to do |format| - format.html # show.html.erb - format.xml { render xml: @log_event } - end - end - - # GET /log_events/new - # GET /log_events/new.xml - def new - @log_event = LogEvent.new - - respond_to do |format| - format.html # new.html.erb - format.xml { render xml: @log_event } - end - end - - # GET /log_events/1/edit - def edit - @log_event = LogEvent.find(params[:id]) - end - - # POST /log_events - # POST /log_events.xml - def create - @log_event = LogEvent.new(params[:log_event]) - - respond_to do |format| - if @log_event.save - flash[:notice] = t(:logevent_create) - format.html { redirect_to(@log_event) } - format.xml { render xml: @log_event, :status => :created, :location => @log_event } - else - format.html { render :new } - format.xml { render xml: @log_event.errors, :status => :unprocessable_entity } - end - end - end - - # PUT /log_events/1 - # PUT /log_events/1.xml - def update - @log_event = LogEvent.find(params[:id]) - - respond_to do |format| - if @log_event.update_attributes(params[:log_event]) - flash[:notice] = t(:logevent_update) - format.html { redirect_to(@log_event) } - format.xml { head :ok } - else - format.html { render :edit } - format.xml { render xml: @log_event.errors, :status => :unprocessable_entity } - end - end - end - - # DELETE /log_events/1 - # DELETE /log_events/1.xml - def destroy - @log_event = LogEvent.find(params[:id]) - @log_event.destroy - - respond_to do |format| - format.html { redirect_to(log_events_url) } - format.xml { head :ok } - end - end -end diff --git a/app/controllers/log_files_controller.rb b/app/controllers/log_files_controller.rb deleted file mode 100644 index dda7433..0000000 --- a/app/controllers/log_files_controller.rb +++ /dev/null @@ -1,42 +0,0 @@ -class LogFilesController < ApplicationController - def index - LogFile.process - render text: 'Ok' - end - - def handle - LogFile.find(params[:id]).deal - render text: 'Ok' - end - - def refresh - LogFile.unhandled.each do |lf| - lf.deal - end - end - - def fix - Rounder.find_in_batches(batch_size: 100) do |rounders| - rounders.each do |r| - r.team_id = nil - if r.user and t = Teamer.historic(r.user, r.round.start).first - r.team_id = t.team_id - end - r.save - end - end - end - - def pix - Round.all.each do |r| - r.team1_id = nil - r.team2_id = nil - [1, 2].each do |team| - if s = r.rounders.team(team).stats.first - r["team#{team}_id"] = s["team_id"] - end - end - r.save - end - end -end diff --git a/app/controllers/rounds_controller.rb b/app/controllers/rounds_controller.rb deleted file mode 100644 index b09511b..0000000 --- a/app/controllers/rounds_controller.rb +++ /dev/null @@ -1,26 +0,0 @@ -class RoundsController < ApplicationController - def index - sort = case params['sort'] - when "start" then "start" - when "server" then "server_id" - when "team1" then "team1_id" - when "team2" then "team2_id" - when "map" then "map_name" - when "commander" then "commander_id" - end - - @rounds = Round.basic.paginate \ - order: sort, - page: params[:page], - per_page: 30 - - if params[:ajax] - render partial: 'list', layout: false - return - end - end - - def show - @round = Round.find(params[:id]) - end -end diff --git a/app/models/log.rb b/app/models/log.rb deleted file mode 100644 index 71e0794..0000000 --- a/app/models/log.rb +++ /dev/null @@ -1,197 +0,0 @@ -# == Schema Information -# -# Table name: logs -# -# id :integer not null, primary key -# server_id :integer -# text :text -# domain :integer -# created_at :datetime -# round_id :integer -# details :string(255) -# actor_id :integer -# target_id :integer -# specifics1 :string(255) -# specifics2 :string(255) -# log_file_id :integer -# - -class Log < ActiveRecord::Base - include Extra - attr_accessor :text - - DOMAIN_LOG = 1 - DOMAIN_INFO = 4 - - TEAM_MARINES = 1 - TEAM_ALIENS = 2 - - RE_PLAYER = /".*?<\d*><\w*>"/ - RE_PLAYER_ID = /".*?<\d*><\w*>"/ - RE_PLAYER_ID_NAME_TEAM = /"(.*?)<\d*><([a-z]*)1team>"/ - RE_PLAYER_NAME = /"(.*?)<\d*><[a-z]*1team>"/ - RE_PLAYER_NAME_TEAM = /"(.*?)<\d*><([a-z]*)1team>"/ - - scope :recent, :order => "id DESC", :limit => 5 - scope :ordered, :order => "created_at ASC, id ASC" - scope :with_details, - lambda { |details| {:conditions => ["details LIKE ?", details]} } - scope :unhandled, :conditions => {:details => nil} - scope :stats, - :select => "id, details, COUNT(*) as num", - :group => "details", - :order => "details" - - belongs_to :details, :class_name => "LogEvent" - belongs_to :server - belongs_to :round - belongs_to :server - belongs_to :log_file - belongs_to :actor, :class_name => "Rounder" - belongs_to :target, :class_name => "Rounder" - - def since - (created_at - round.start).to_i - end - - def time - return sprintf("%02d:%02d", since/60, since%60) - end - - def frag - text.match(/^#{RE_PLAYER_NAME_TEAM} killed #{RE_PLAYER_NAME_TEAM} with "([a-z0-9_]*)"$/) - end - - def role - text.match(/^#{RE_PLAYER_NAME} changed role to "([a-z0-9_]*)"$/) - end - - def match_map vars - if m = text.match(/^Started map "([A-Za-z0-9_]*)"/) - vars[:map] = m[1] - self.details = LogEvent.get "map" - self.specifics1 = m[1] - end - end - - def match_start vars - if text.match(/^Game reset complete.$/) - vars[:round] = Round.new - vars[:round].server = server - vars[:round].start = created_at - vars[:round].map_name = vars[:map] - vars[:round].map = Map.with_name(vars[:map]).first - vars[:round].save - vars[:lifeforms] = {} - self.details = LogEvent.get "start" - end - end - - def match_end vars - if m = text.match(/^Team ([1-2]) has lost.$/) - vars[:round].winner = (m[1].to_i == 1 ? 2 : 1) - vars[:round].end = created_at - [1, 2].each do |team| - if s = vars[:round].rounders.team(team).stats.first - vars[:round]["team#{team}_id"] = s["team_id"] - end - end - vars[:round].save - vars[:round] = nil - self.details = LogEvent.get "end" - end - end - - def match_join vars - if m = text.match(/^#{RE_PLAYER_ID_NAME_TEAM} .*$/) and !(self.actor = vars[:round].rounders.match(m[2]).first) - self.actor = Rounder.new - self.actor.round = vars[:round] - self.actor.name = m[1] - self.actor.steamid = m[2] - self.actor.user = User.first(:conditions => {:steamid => m[2]}) or User.historic(m[2]) - self.actor.team = (m[3] == "marine" ? TEAM_MARINES : TEAM_ALIENS) - if self.actor.user and t = Teamer.historic(actor.user, vars[:round].start).first - self.actor.ensl_team = t.team - end - self.actor.kills = 0 - self.actor.deaths = 0 - self.actor.save - self.details = LogEvent.get "join" - end - end - - def match_kill vars - if m = text.match(/^#{RE_PLAYER} killed #{RE_PLAYER_ID} with "([a-z0-9_]*)"$/) - if self.actor - actor.increment :kills - actor.save - end - if self.target = vars[:round].rounders.match(m[1]).first - target.increment :deaths - target.save - end - self.details = LogEvent.get "kill" - self.specifics1 = m[3] - save - end - end - - def match_say vars - if m = text.match(/^#{RE_PLAYER} (say(_team)?) ".*"$/) - self.details = "say" - self.specifics1 = m[1] - end - end - - def match_built vars - if m = text.match(/^#{RE_PLAYER} triggered "structure_built" \(type "([a-z0-9_]*)"\)$/) - self.details = "built_" + m[1] - end - end - - def match_destroyed vars - if m = text.match(/^#{RE_PLAYER} triggered "structure_destroyed" \(type "([a-z0-9_]*)"\)$/) - self.details = "destroyed_" + m[1] - end - end - - def match_research_start vars - if m = text.match(/^#{RE_PLAYER} triggered "research_start" \(type "([a-z0-9_]*)"\)$/) - self.details = m[1] - end - end - - def match_research_cancel vars - if m = text.match(/^#{RE_PLAYER} triggered "research_cancel" \(type "([a-z0-9_]*)"\)$/) - self.details = "research_cancel" - end - end - - def match_role vars - if m = text.match(/^#{RE_PLAYER_ID} changed role to "([a-z0-9_]*)"$/) - if m[2] == "gestate" - self.details = "gestate" - elsif actor - if m[2] == "commander" and !vars[:round].commander - vars[:round].commander = actor - vars[:round].save - end - if !actor.roles - actor.update_attribute :roles, m[2] - elsif !self.actor.roles.include?(m[2]) - actor.update_attribute :roles, actor.roles + ", " + m[2] - end - self.details = ((vars[:lifeforms].include? actor.id and vars[:lifeforms][actor.id] == m[2]) ? "upgrade" : m[2]) - vars[:lifeforms][actor.id] = m[2] - end - end - end - - def self.add server, domain, text - log = new - log.server = server - log.domain = domain - log.text = text - log.save - end -end diff --git a/app/models/log_event.rb b/app/models/log_event.rb deleted file mode 100644 index 65b0b4f..0000000 --- a/app/models/log_event.rb +++ /dev/null @@ -1,25 +0,0 @@ -# == Schema Information -# -# Table name: log_events -# -# id :integer not null, primary key -# name :string(255) -# description :string(255) -# team :integer -# created_at :datetime -# updated_at :datetime -# - -class LogEvent < ActiveRecord::Base - def self.get search, team = nil - if f = first({:conditions => {:name => search}}) - return f - else - f = LogEvent.new - f.name = "get" - f.team = team if team - f.save - return f - end - end -end diff --git a/app/models/log_file.rb b/app/models/log_file.rb deleted file mode 100644 index f430d05..0000000 --- a/app/models/log_file.rb +++ /dev/null @@ -1,95 +0,0 @@ -# encoding: US-ASCII -# == Schema Information -# -# Table name: log_files -# -# id :integer not null, primary key -# name :string(255) -# md5 :string(255) -# size :integer -# server_id :integer -# updated_at :datetime -# - - -require 'digest/md5' - -class LogFile < ActiveRecord::Base - NON_ASCII = /[\x80-\xff]/ - LOGS = File.join(Rails.root, "tmp", "logs") - - attr_accessor :path - belongs_to :server - - has_many :logs - has_many :rounds, :through => :logs - - def after_create - Pathname(path).each_line do |line| - if m = line.gsub(NON_ASCII, "").match(/\d{2}:\d{2}:\d{2}: (.*)/) - log = Log.new - log.server = server - log.domain = Log::DOMAIN_LOG - log.log_file = self - log.text = m[1].strip - next if log.text.match(/^Server cvar/) - next if log.text.match(/^\[ENSL\]/) - next if log.text.match(/STEAM USERID validated/) - next if log.text.match(/^\[META\]/) - l.created_at = DateTime.parse(line.match(/\d{2}\/\d{2}\/\d{4} \- \d{2}:\d{2}:\d{2}:/)[0]) - vars = {} - log.match_map vars or log.match_start vars - if vars[:round] and !log.details - log.match_end vars \ - or log.match_join vars \ - or log.match_kill vars \ - or log.match_say vars \ - or log.match_built vars \ - or log.match_destroyed vars \ - or log.match_research_start vars \ - or log.match_research_cancel vars \ - or log.match_role vars \ - end - if log.details - log.round = vars[:round] if vars[:round] - log.save - end - end - end - rounds.each do |r| - unless r.end - r.destroy - end - end - Log.delete_all(["details IS NULL AND log_file_id = ?", self.id]) - end - - def format path - self.name = File.basename(path) - self.size = File.size(path) - self.md5 = Digest::MD5.hexdigest(File.read(path)) - self.updated_at = File.mtime(path) - self.path = path - end - - def deal - # TODO - end - - def self.process - Dir.glob("#{LOGS}/*").each do |entry| - dir = File.basename(entry).to_i - if File.directory?(entry) and dir > 0 and Server.find(dir) - Dir.glob("#{entry}/*.log").each do |file| - lf = LogFile.new - lf.format file - lf.server_id = dir - - unless LogFile.first(:conditions => {:name => lf.name, :size => lf.size, :server_id => dir.to_i}) - lf.save - end - end - end - end - end -end diff --git a/app/models/round.rb b/app/models/round.rb deleted file mode 100644 index 3263114..0000000 --- a/app/models/round.rb +++ /dev/null @@ -1,128 +0,0 @@ -# == Schema Information -# -# Table name: rounds -# -# id :integer not null, primary key -# server_id :integer -# start :datetime -# end :datetime -# winner :integer -# match_id :integer -# commander_id :integer -# team1_id :integer -# team2_id :integer -# map_name :string(255) -# map_id :integer -# - -class Round < ActiveRecord::Base - scope :basic, :include => [:commander, :map, :server, :team1, :team2], :order => "start DESC" - scope :team_stats, - :select => "team1_id AS team_id, COUNT(*) as rounds, AVG(winner) AS wlr, teams.name", - :joins => "LEFT JOIN teams ON teams.id = team1_id", - :group => "team_id", - :order => "rounds DESC", - :having => "rounds > 10 AND team_id IS NOT NULL", - :limit => 100 - - has_many :rounders, :dependent => :destroy - has_many :logs, :dependent => :destroy - - belongs_to :team1, :class_name => "Team" - belongs_to :team2, :class_name => "Team" - belongs_to :server - belongs_to :match - belongs_to :commander, :class_name => "Rounder" - belongs_to :map - - def length - sprintf("%02d:%02d", (self.end - self.start).to_i/60, (self.end - self.start).to_i%60) - end - - def winner_s - winner == 1 ? "Marines" : "Aliens" - end - - def marine_stats - {"built_resourcetower" => "Marine RTs", - "built_item_genericammo" => "Ammo Packs", - "built_item_health" => "Medpacks"} - end - - def alien_stats - {"built_alienresourcetower" => "Alien RTs", - "lerk" => "Lerks", - "fade" => "Fades", - "onos" => "Onoses"} - end - - def self.marine_events - {"built_resourcetower" => "RT Built", - "built_phasegate" => "PG Built", - "built_team_infportal" => "IP Built", - "built_team_armory" => "Armory Built", - "built_team_observatory" => "Obs Built", - "built_team_armslab" => "ARMS Built", - "built_team_command" => "CC Built", - "built_team_prototypelab" => "Proto Built", - "built_team_turretfactory" => "TF Built", - "built_team_turret" => "Turret Built", - "built_team_siegeturret" => "Siege Built", - "destroyed_resourcetower" => "RT Destroyed", - "destroyed_phasegate" => "PG Destroyed", - "destroyed_team_infportal" => "IP Destroyed", - "destroyed_team_armory" => "Armory Destroyed", - "destroyed_team_observatory" => "Obs Destroyed", - "destroyed_team_armslab" => "ARMS Destroyed", - "destroyed_team_command" => "CC Destroyed", - "destroyed_team_prototypelab" => "Proto Destroyed", - "destroyed_team_turretfactory" => "TF Destroyed", - "destroyed_team_turret" => "Turret Destroyed", - "destroyed_team_siegeturret" => "Siege Destroyed", - "scan" => "Scan", - "research_motiontracking" => "MT Tech", - "research_phasetech" => "PG Tech", - "research_distressbeacon" => "Beacon", - "research_armorl1" => "Armor 1", - "research_armorl2" => "Armor 2", - "research_armorl3" => "Armor 3", - "research_weaponsl1" => "Weapons 1", - "research_weaponsl2" => "Weapons 2", - "research_weaponsl3" => "Weapons 3", - "research_advarmory" => "AA", - "research_electrical" => "Electrify", - "research_advturretfactory" => "A-TFAC", - "research_cancel" => "Research Cancel", - "kill" => "Frag"} - end - - def self.alien_events - {"built_team_hive" => "Hive Built", - "built_movementchamber" => "MC Built", - "built_sensorychamber" => "SC Built", - "built_defensechamber" => "DC Built", - "built_offensechamber" => "OC Built", - "built_alienresourcetower" => "RT Built", - "destroyed_team_hive" => "Hive Destroyed", - "destroyed_movementchamber" => "MC Destroyed", - "destroyed_sensorychamber" => "SC Destroyed", - "destroyed_defensechamber" => "DC Destroyed", - "destroyed_offensechamber" => "OC Destroyed", - "destroyed_alienresourcetower" => "RT Destroyed", - "gorge" => "Gorge up", - "lerk" => "Lerk up", - "fade" => "Fade up", - "onos" => "Onos up", - "kill" => "Frag"} - end - - def self.alien_event event - return alien_events[event] if alien_events.include?(event) - return nil - end - - def self.marine_event event - return marine_events[event] if marine_events.include?(event) - return nil - end -end diff --git a/app/models/rounder.rb b/app/models/rounder.rb deleted file mode 100644 index 0914f5d..0000000 --- a/app/models/rounder.rb +++ /dev/null @@ -1,52 +0,0 @@ -# == Schema Information -# -# Table name: rounders -# -# id :integer not null, primary key -# round_id :integer -# user_id :integer -# team :integer -# roles :string(255) -# kills :integer -# deaths :integer -# name :string(255) -# steamid :string(255) -# team_id :integer -# - -class Rounder < ActiveRecord::Base - attr_accessor :lifeform - - scope :team, lambda { |team| {:conditions => {:team => team}} } - scope :match, lambda { |steamid| {:conditions => {:steamid => steamid}} } - scope :ordered, :order => "kills DESC, deaths ASC" - scope :stats, - :select => "id, team_id, COUNT(*) as num", - :group => "team_id", - :order => "num DESC", - :having => "num > 3" - scope :player_stats, - :select => "id, user_id, SUM(kills)/SUM(deaths) as kpd, COUNT(*) as rounds", - :group => "user_id", - :order => "kpd DESC", - :having => "rounds > 30 AND kpd > 0 AND user_id IS NOT NULL", - :limit => 100 - scope :team_stats, - :select => "id, team_id, SUM(kills)/SUM(deaths) as kpd, COUNT(DISTINCT round_id) as rounds", - :group => "team_id", - :order => "kpd DESC", - :having => "rounds > 30 AND kpd > 0 AND team_id IS NOT NULL", - :limit => 100 - scope :extras, :include => [:round, :user] - scope :within, - lambda { |from, to| - {:conditions => ["created_at > ? AND created_at < ?", from.utc, to.utc]} } - - belongs_to :round - belongs_to :user - belongs_to :ensl_team, :class_name => "Team", :foreign_key => "team_id" - - def to_s - user ? user.username : name - end -end diff --git a/app/views/log_events/edit.html.erb b/app/views/log_events/edit.html.erb deleted file mode 100644 index bd1c0d8..0000000 --- a/app/views/log_events/edit.html.erb +++ /dev/null @@ -1,16 +0,0 @@ -

Editing log_event

- -<%= form_for(@log_event) do |f| %> - <%= f.error_messages %> - -

- <%= f.label :name %>
- <%= f.text_field :name %> -

-

- <%= f.submit 'Update' %> -

-<% end %> - -<%= link_to 'Show', @log_event %> | -<%= link_to 'Back', log_events_path %> \ No newline at end of file diff --git a/app/views/log_events/index.html.erb b/app/views/log_events/index.html.erb deleted file mode 100644 index 5619d98..0000000 --- a/app/views/log_events/index.html.erb +++ /dev/null @@ -1,20 +0,0 @@ -

Listing log_events

- - - - - - - <% @log_events.each do |log_event| %> - - - - - - - <% end %> -
Name
<%=h log_event.name %><%= link_to 'Show', log_event %><%= link_to 'Edit', edit_log_event_path(log_event) %><%= link_to 'Destroy', log_event, :confirm => 'Are you sure?', :method => :delete %>
- -
- -<%= link_to 'New log_event', new_log_event_path %> diff --git a/app/views/log_events/new.html.erb b/app/views/log_events/new.html.erb deleted file mode 100644 index d2e38e1..0000000 --- a/app/views/log_events/new.html.erb +++ /dev/null @@ -1,15 +0,0 @@ -

New log_event

- -<%= form_for(@log_event) do |f| %> - <%= f.error_messages %> - -

- <%= f.label :name %>
- <%= f.text_field :name %> -

-

- <%= f.submit 'Create' %> -

-<% end %> - -<%= link_to 'Back', log_events_path %> \ No newline at end of file diff --git a/app/views/log_events/show.html.erb b/app/views/log_events/show.html.erb deleted file mode 100644 index 9c64c19..0000000 --- a/app/views/log_events/show.html.erb +++ /dev/null @@ -1,8 +0,0 @@ -

- Name: - <%=h @log_event.name %> -

- - -<%= link_to 'Edit', edit_log_event_path(@log_event) %> | -<%= link_to 'Back', log_events_path %> \ No newline at end of file diff --git a/app/views/rounds/_rounds.html.erb b/app/views/rounds/_rounds.html.erb deleted file mode 100644 index a807b82..0000000 --- a/app/views/rounds/_rounds.html.erb +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - <% rounds.each do |round| %> - - - - - - - - - <% end %> -
<%= sort_link "Date", :start %><%= sort_link "Server", :server %><%= sort_link "Team 1", :team1 %><%= sort_link "Team 2", :team2 %><%= sort_link "Map", :map %><%= sort_link "commander", :commander %>
<%= link_to (shorttime round.start), round %><%= namelink round.server %><%= namelink round.team1 if round.team1 %><%= namelink round.team2 if round.team2 %><%= round.map.nil? ? h(round.map_name) : namelink(round.map) %><%= (round.commander.nil? or round.commander.user.nil?) ? h(round.commander) : namelink(round.commander.user) %>
- -<%= will_paginate rounds %> diff --git a/app/views/rounds/index.html.erb b/app/views/rounds/index.html.erb deleted file mode 100644 index e3ce175..0000000 --- a/app/views/rounds/index.html.erb +++ /dev/null @@ -1,7 +0,0 @@ -

- ENSL Round Archive -

- -
- <%= render :partial => "rounds", :object => @rounds %> -
diff --git a/app/views/rounds/show.html.erb b/app/views/rounds/show.html.erb deleted file mode 100644 index 0d74984..0000000 --- a/app/views/rounds/show.html.erb +++ /dev/null @@ -1,150 +0,0 @@ -
-

- <%= namelink @round.server %> : <%= longtime @round.start %> -

-
- -
-

- General Info and Statistics -

- -
- <%= cascade @round, ["winner_s", "length", "commander", "map_name"] %> -
- -
- <% @round.logs.stats.each do |s| %> - <% next unless @round.marine_stats.include? s.details %> - <%= @round.marine_stats[s.details] %>: <%= s.num %>
- <% end %> -
-
- <% @round.logs.stats.each do |s| %> - <% next unless @round.alien_stats.include? s.details %> - <%= @round.alien_stats[s.details] %>: <%= s.num %>
- <% end %> -
-
- -<% {Log::TEAM_MARINES => "Marines", Log::TEAM_ALIENS => "Aliens"}.each do |team, name| %> -
-

- <%= name %> -

- - - - - - - - - - - <% @round.rounders.team(team).ordered.each do |rounder| %> - - - - - - - - - <% end %> -
NameENSLTeamRolesKillsDeaths
<%= h rounder.name %><%= namelink rounder.user if rounder.user %><%= namelink rounder.ensl_team if rounder.ensl_team %><%= h rounder.roles %><%= rounder.kills %><%= rounder.deaths %>
-
-<% end %> - -
-

- Round Timeline -

- -
-
-

- Aliens -

- - <% alien_total = 0 %> - <% consecutives = 0 %> - <% @round.logs.each do |log| %> - <% next unless e = Round.alien_event(log.details) %> - <% next if log.details == "kill" and (m = log.frag)[2] != "alien" %> - <% add = log.since*8 - alien_total %> - <% consecutives = add < 0 ? (consecutives + 1) : 0 %> - <% left = 145 - (add < 0 ? 105*consecutives : 0) %> - - <% if log.details == "kill" %> -
- - <%= Verification.uncrap(m[1])[0, 7] %> - - <%= image_tag 'weapons/' + m[5] + '.gif', :width => 22, :height => 14 %> - - <%= Verification.uncrap(m[3])[0, 7] %> - -
- <% else %> -
- <% if ["onos", "fade", "lerk", "gorge"].include? log.details %> - <%= Verification.uncrap(log.role[1])[0, 7] %> <%= log.role[2] %>s - <% else %> - <%= h e %> - <% end %> -
- <% end %> - - <% add = add + 15 %> - <% alien_total = alien_total + (add > 0 ? add : 0) %> - <% end %> -
- -
- -
-

- Marines -

- - <% marine_total = 0 %> - <% consecutives = 0 %> - <% @round.logs.each do |log| %> - <% next unless e = Round.marine_event(log.details) %> - <% next if log.details == "kill" and (m = log.frag)[2] != "marine" %> - <% add = log.since*8 - marine_total %> - <% consecutives = add < 0 ? (consecutives + 1) : 0 %> - <% left = 3 + (add < 0 ? 105*consecutives : 0) %> - - <% if log.details == "kill" %> -
- - <%= Verification.uncrap(m[1])[0, 7] %> - - <%= image_tag 'weapons/' + m[5] + '.gif', :width => 30, :height => 14 %> - - <%= Verification.uncrap(m[3])[0, 7] %> - -
- <% else %> -
- <%= h e %> -
- <% end %> - - <% add = add + 15 %> - <% marine_total = marine_total + (add > 0 ? add : 0) %> - <% end %> -
- - <% total = marine_total > alien_total ? marine_total : alien_total %> - -
-
- -
diff --git a/db/schema.rb b/db/schema.rb index e0aad41..fb40af1 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,21 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20150518162749) do - - create_table "admin_requests", :force => true do |t| - t.string "addr" - t.string "pwd" - t.integer "server_id" - t.string "player" - t.integer "user_id" - t.string "msg" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "admin_requests", ["server_id"], :name => "index_admin_requests_on_server_id" - add_index "admin_requests", ["user_id"], :name => "index_admin_requests_on_user_id" +ActiveRecord::Schema.define(:version => 20150621212615) do create_table "article_versions", :force => true do |t| t.integer "article_id" @@ -214,16 +200,6 @@ ActiveRecord::Schema.define(:version => 20150518162749) do add_index "data_files", ["directory_id"], :name => "index_data_files_on_directory_id" add_index "data_files", ["related_id"], :name => "index_data_files_on_related_id" - create_table "deleteds", :force => true do |t| - t.integer "deletable_id" - t.string "deletable_type" - t.integer "user_id" - t.text "reason" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "related_id" - end - create_table "directories", :force => true do |t| t.string "name" t.string "description" @@ -236,21 +212,6 @@ ActiveRecord::Schema.define(:version => 20150518162749) do add_index "directories", ["parent_id"], :name => "index_directories_on_parent_id" - create_table "firms", :force => true do |t| - t.string "name" - t.string "y_code" - t.string "email" - t.string "website" - t.string "phone" - t.string "address" - t.integer "zipcode" - t.string "town" - t.integer "owner" - t.string "opentime" - t.datetime "created_at" - t.datetime "updated_at" - end - create_table "forumers", :force => true do |t| t.integer "forum_id" t.integer "group_id" @@ -379,44 +340,6 @@ ActiveRecord::Schema.define(:version => 20150518162749) do add_index "locks", ["lockable_id", "lockable_type"], :name => "index_locks_on_lockable_id_and_lockable_type" - create_table "log_events", :force => true do |t| - t.string "name" - t.string "description" - t.integer "team" - t.datetime "created_at" - t.datetime "updated_at" - end - - create_table "log_files", :force => true do |t| - t.string "name" - t.string "md5" - t.integer "size" - t.integer "server_id" - t.datetime "updated_at" - end - - add_index "log_files", ["server_id"], :name => "index_log_files_on_server_id" - - create_table "logs", :force => true do |t| - t.integer "server_id" - t.text "text" - t.integer "domain" - t.datetime "created_at" - t.integer "round_id" - t.string "details" - t.integer "actor_id" - t.integer "target_id" - t.string "specifics1" - t.string "specifics2" - t.integer "log_file_id" - end - - add_index "logs", ["actor_id"], :name => "index_logs_on_actor_id" - add_index "logs", ["log_file_id"], :name => "index_logs_on_log_file_id" - add_index "logs", ["round_id"], :name => "index_logs_on_round_id" - add_index "logs", ["server_id"], :name => "index_logs_on_server_id" - add_index "logs", ["target_id"], :name => "index_logs_on_target_id" - create_table "maps", :force => true do |t| t.string "name" t.string "download" @@ -518,13 +441,6 @@ ActiveRecord::Schema.define(:version => 20150518162749) do add_index "movies", ["status"], :name => "index_movies_on_status" add_index "movies", ["user_id"], :name => "index_movies_on_user_id" - create_table "nodes", :force => true do |t| - t.string "name" - t.integer "foreign_key" - t.datetime "created_at" - t.datetime "updated_at" - end - create_table "options", :force => true do |t| t.string "option" t.integer "poll_id" @@ -667,42 +583,6 @@ ActiveRecord::Schema.define(:version => 20150518162749) do add_index "readings", ["user_id", "readable_id", "readable_type"], :name => "index_readings_on_user_id_and_readable_id_and_readable_type" add_index "readings", ["user_id"], :name => "index_readings_on_user_id" - create_table "rounders", :force => true do |t| - t.integer "round_id" - t.integer "user_id" - t.integer "team" - t.string "roles" - t.integer "kills" - t.integer "deaths" - t.string "name" - t.string "steamid" - t.integer "team_id" - end - - add_index "rounders", ["round_id"], :name => "index_rounders_on_round_id" - add_index "rounders", ["team_id"], :name => "index_rounders_on_team_id" - add_index "rounders", ["user_id"], :name => "index_rounders_on_user_id" - - create_table "rounds", :force => true do |t| - t.integer "server_id" - t.datetime "start" - t.datetime "end" - t.integer "winner" - t.integer "match_id" - t.integer "commander_id" - t.integer "team1_id" - t.integer "team2_id" - t.string "map_name" - t.integer "map_id" - end - - add_index "rounds", ["commander_id"], :name => "index_rounds_on_commander_id" - add_index "rounds", ["map_id"], :name => "index_rounds_on_map_id" - add_index "rounds", ["match_id"], :name => "index_rounds_on_match_id" - add_index "rounds", ["server_id"], :name => "index_rounds_on_server_id" - add_index "rounds", ["team1_id"], :name => "index_rounds_on_team1_id" - add_index "rounds", ["team2_id"], :name => "index_rounds_on_team2_id" - create_table "server_versions", :force => true do |t| t.integer "server_id" t.integer "version" @@ -758,6 +638,18 @@ ActiveRecord::Schema.define(:version => 20150518162749) do add_index "sessions", ["session_id"], :name => "index_sessions_on_session_id" add_index "sessions", ["updated_at"], :name => "index_sessions_on_updated_at" + create_table "shoutmsg_archive", :force => true do |t| + t.integer "user_id" + t.string "text" + t.datetime "created_at" + t.datetime "updated_at" + t.string "shoutable_type" + t.integer "shoutable_id" + end + + add_index "shoutmsg_archive", ["shoutable_type", "shoutable_id"], :name => "index_shoutmsgs_on_shoutable_type_and_shoutable_id" + add_index "shoutmsg_archive", ["user_id"], :name => "index_shoutmsgs_on_user_id" + create_table "shoutmsgs", :force => true do |t| t.integer "user_id" t.string "text" diff --git a/public/images/weapons/acidrocket.gif b/public/images/weapons/acidrocket.gif deleted file mode 100644 index 0fb434f4573079fdaf569bacfe2fac0dfef82fc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1466 zcmeH{Yfn=L0EXYThtoqT^ps+`h|DcjI6gKi&Yvgq(1><8@4^9$bOd5TNk z&@Qv-kb>XOV0J7P2o7QhkOU|au_Sn0@F~Q{B7p}%9E5x%#zQnq0_F%HrjaZ}Y9i7^ zn45(3B+M5hLkvkWq$!Z4LY{^NX;7qN;XEkkA!|NV8Bj}*Ek%wL8X0nB$WtI+fu#$f zRbsgcg^RFKjiPL<%7Jb%^com)Va$ao4<-3nvlQk6lxb1E3~QI8Vma0oVnY!si%_)+ z)eLHM*rZ3T0dE#Yk3&%P*E!g=cn$~02 z2JEiHo+>m~p`{voYtXt8`!?Y~E!>;o*#fT>J{u0&(OHMCI&^Qvp=~(44S{-mP>-Vx zIM#sPMx1yLr=2*n69Y{+yBp`5aiIklTX5-peAJ4M_u-TMxavaCg==lN?!o6?e9?|u zKHNTtFAw6YPK3HJ+>P)dL=I!*2u1_=<|w}F#ognGp1}8gxOWocr|`pR-2V_i4`SjR ze!YOHAw0f}CztWZ6+FFynX7nq6|Zjm&wqMA`ci1vS!ZjivrG2WH*J>`my}gN`hsBb z@CxeJdb}0|)Jw3abW?C(*h7g_wPV4-NCzz|?Ke3e62g`J-}X5(Jsx)gP1Q<1%Zw1Q zNh!A-wyq=UO5b*8gd06;*gG`z_#H*3#MJd8|K!kwUQf|tFcr3TX6deh2RC&xV>>^? z*zX@)eMDjI`Dc34c)YRO7r(?s_rXXW6>OfQ9-iwES(T&c=#Swh4vX`R0L?9rWc&9=su#K}L;clB!4 zJf)w@l!wkR9b@I4Nuyu)n#GqFKbUDF11ZHToL*5$%5#6RI?p*a*E6B>%L2^Bu@qHn zz#};@)e+#z8Hq)Z8jZ3OtH+@e7HesCsz=F=nb$C7D^aw_r3R{y`PAH#E3~BV$c4?8+=M#Ma1lY=LP!8c9y` zGclBeaj*mlYT>9TKWGh;sn>%n?f{ce!{k_M_T@cJ;69wj9 z!qg%=9U^mPnrR}<3^ylE>2mYD5-q~~oWC5A1lWVR*-kn<;>9MoS%Lv;B0ElP{Y{@# zJriOPkhsY;m+0Y`G`l85!CM#U)uxa;wdmF!ZxZnZemJ1#$|vwVHw%RV4;hZ%}ngV)GZWx zXc=SBa+4^apu-U_%QW82g2)!4nJ$YlW{GhRVwUKGF+AwYbbI&9??3oz>h_eDb$SuG zewzC!6ezbKC`l4f320PkRp`{{H5jxQb(oT|=&>5udY=)y35OZcLaG(#R?=*w+sJhA zkON7?l|ptZIZn1Y$xSCO19t}bnG{NFcd^4oQ8u1z9?79NmtA?3xG8m0{xB5G$7!jg^$8AmX{+L(k3)XichgbL(Ha8v1RHp^k?tmrH_`Jn zp%zZH@=_aT57Kvt@L~Gfi5x-hAlganD8m6pju8)%2r|*lWH(dCdG#c(J?FuMM^>MzL;M+-VO!3_` zKhARdb$(vpmqj*~`1hm#=elR{_XIjafi9^x7EFnDM=CeZZV%HeRt8*SqaQBt5Te8EmPr`gBj4!X}t>!!4y;DI$TBY0K9~7zt zU3INB5Y-g6`Iy-Q@IzI!@ z_5Ql{lt1@|v&es}#HrX4-tT^Ly2TP1RO^hZVtzdCifB@I9Qe}fS@=!9n;6Yd##b)C H=cVF5#B1#` diff --git a/public/images/weapons/bite2gun.gif b/public/images/weapons/bite2gun.gif deleted file mode 100644 index 8e7fb7995ac7c5f01cf0ec9093f3f2201b6fd1a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1527 zcmeH{YfqC00EJKQFTFr-^a4eAOQqmY0YQrbwzSxyMFCM!PzwVu16{?6uuW|%mm+0? ziw+fBy&+o|g3(Aaw@@w>&6X9%GP1Fx>gF^tOG#M9zTof|><{eZ`2{EEImX-#n)I>+ z$neJ%EQUq}odyOSOgadH;1b}4Ae4c-97a~H0NHG**ERi5u zf*2`C8Diy7MPO+J;uKIvAwCKTORy{&%So&tkra#MSfr?s8i%wvtX5-9JT&oGyA12z zL1rSdmSg=2=vE>-3HoFhl3`p0Qz~-PuxT~SYmleG=5%aXi~O}HSck$46lG#t7Pe<$ z$9fcNu~UbVY?SJ;TaUdtu;if3h;k#|HK8IGl^d~dBMz8x(2V!;P_-G=n{j9htOYny zh?=c9x)rt}9NUK4?Kr*z^~LyLCr*^$WGNhb&|pDR8Jf${Qh_s-aPLFgetf(i9S3o~ z8l8u6@qJvf;_?x6*Wk)gcx<>Ygk3^m~^ z7ap|W>lS=-2E(oJx-rs*v9s{C%^N3om=|>I=N?!=GOwcpI~~@#fzD{C5N7fo0kvrA3BAN zH%NS|$6HZAEPx`GnFc)G(}YMuALeVFO*}F~g8+rj4&`PvOblK(g2UCCwYm{1TVQb) z+a1|XhFn`$6tH-GXSp(EevllcF@&n=dFxX>iy5-PJ<Crm7r%y}LMNrq@eg=^lU8)e^=@0zd-dveZ*r2`8?&*)>^ zC|hKCFXcY1Q@X+4Rd;pN=O)DV89(K@vpIaZYls+B){HA!4erj7XH9OQ`ta+Qv*o7= zMahLZQ%6|?Cm~&Fv$j1q-hwbcz`yD}O=ro>ee(lUPG{PB^TORs(Tgnvw|{HQD+5hy zZ{=hw(vS9xGw7m>nLx60fPmBXgvP3x49`(^XQbqCIQ$qdbLCWUgqNW4+leCopn=Uy zvP0dSNO3az|C-EIqfVoxB`nUJ2){867TM)@n9*ldhKqBykH%fJJ@Mro8Pc(2nHgi? zrpqQH^i^FNLf(JO(Gu7FfKni;A0~a_ytLUUDQ|a5uDX?5crEsF7a`!(&&)DpykGsk zsEU-SkfrCvcU)D?^qO)tJ5{CYs@6{W*|xweL!Z?p3sG2ydRU4>wKYt`$-BB{Hm`nw zNfso{v0}U9%NvFLZL@|*Z;R{dL+~DvtY|`;>LN|h+N1aMcKE_YLlUaeN>3gan~7n+ z;Mlj`g6K9^l3ntVr+^{U&zXKAR`!A#Sv@hBP*S7vb_m*GF{tgu)Nx*Nd*EkbdIQC! zYP>OMlymPDBpPc~!GwHF3e%U84`Z6!C-tEc1os-HD!yK<2@H(!R!#GF wQl%!XgF#N^(?TLk`3|GF)UKn26!+et^M-trRF0uXOEdgE(|(`7c<$@|1sjAYQUCw| diff --git a/public/images/weapons/bitegun.gif b/public/images/weapons/bitegun.gif deleted file mode 100644 index b6c159dbb5f9e0e6a371e4c61e741b7480d22efc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1514 zcmeIx{ZrBh0LSqUUqHSfD)<1Xh+h&BO_vlJmerRB6-^7xo)#6NHeFWc+_I;|7p1gW zp;1}rqFP&Z)mZa3ciZkj$*|oT?z~-lx@)a%?XKEg;)M5kV?OY9i8- zke&>AG87VINsx)M$K`lp4267e1%S1kf0wrEhqA&~EEEK6xoP&iL=rvfB zhsATTBp*u)V3-GEAxv7BwWwGCiw>1VSYC|kg{aYEMG00ef^`vU7o)Be^-HjNDb_5- z+GSWr!)C%p6E>N#xeWF)I4aO+L30(hRH3CBt<`wB25l>_Z6$VCv9k^xtFUV=y4GU% zI_z1GeJ^7F2E1+qvkBds(PPIU2l|?DxEcLhaP%d3S~1Xy<6Gg~iW6-Z+K$sZ;M<9j z4!rpa{GB-WD$c)#3%hW!3zzre>V8~5fPfP>TzKDw(QbUugAd*K=pa7s#ixA;zJX9b zCXOO}43i#21~D~=+sE;l7oVTNos;@7M77U6B9xpC3>@6`MMm8#P3Kl81h@38dEcCQh1VSK`YwULe4MrEKrV*fw9EM+D^ZS``l2R4hWDIM( zo14tb6ZHlOEW-J3Ch9i_3+b;#QE(tW^`c45iGz8&~Ju=xRd>Xbkmit+;!s?-xe39ieP0Y2PVL9o+ z$?b^BRE_r%=h>TXD$;k`c~0pnvS<g757-LsMAG*~``jZdE|&=epS`(=crF-a1F8 z*|gC^Sq^sr*wNG^DB5k&;52~d#j@|*^RqcI+&w9Uy&TgL?lK5zrGhw-)KBDet z*_|re(a2BgJ!E}%w(k-k9r%kCOg_>pi>T{J)wsXGy3R!n72fBOmLO%3*K|F$sBPoZ zkvUCI2ErMmy0Id2wvQZaHpskUzM_288Wxmvg-k-n%;DZtgNB)uc8ZL*s1~`SGQ&M4 zcAw&GE4-Q6Vz)Cg=8@B!y2h+Mn9(}MkePYyk0&G@m=lqt&)$ou&$M;$leo2Bnh^S< z?AYQ+`-HgOOR*D|&)VH0oxRp2kmXbKes)+nrP!ninHu>)@7L@UooIv|zmGP=Wc7GL ZgmO6G5)?o2kN0D22DeN87;dDo_+MwXcrX9} diff --git a/public/images/weapons/bitegun2.gif b/public/images/weapons/bitegun2.gif deleted file mode 100644 index 8e7fb7995ac7c5f01cf0ec9093f3f2201b6fd1a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1527 zcmeH{YfqC00EJKQFTFr-^a4eAOQqmY0YQrbwzSxyMFCM!PzwVu16{?6uuW|%mm+0? ziw+fBy&+o|g3(Aaw@@w>&6X9%GP1Fx>gF^tOG#M9zTof|><{eZ`2{EEImX-#n)I>+ z$neJ%EQUq}odyOSOgadH;1b}4Ae4c-97a~H0NHG**ERi5u zf*2`C8Diy7MPO+J;uKIvAwCKTORy{&%So&tkra#MSfr?s8i%wvtX5-9JT&oGyA12z zL1rSdmSg=2=vE>-3HoFhl3`p0Qz~-PuxT~SYmleG=5%aXi~O}HSck$46lG#t7Pe<$ z$9fcNu~UbVY?SJ;TaUdtu;if3h;k#|HK8IGl^d~dBMz8x(2V!;P_-G=n{j9htOYny zh?=c9x)rt}9NUK4?Kr*z^~LyLCr*^$WGNhb&|pDR8Jf${Qh_s-aPLFgetf(i9S3o~ z8l8u6@qJvf;_?x6*Wk)gcx<>Ygk3^m~^ z7ap|W>lS=-2E(oJx-rs*v9s{C%^N3om=|>I=N?!=GOwcpI~~@#fzD{C5N7fo0kvrA3BAN zH%NS|$6HZAEPx`GnFc)G(}YMuALeVFO*}F~g8+rj4&`PvOblK(g2UCCwYm{1TVQb) z+a1|XhFn`$6tH-GXSp(EevllcF@&n=dFxX>iy5-PJ<Crm7r%y}LMNrq@eg=^lU8)e^=@0zd-dveZ*r2`8?&*)>^ zC|hKCFXcY1Q@X+4Rd;pN=O)DV89(K@vpIaZYls+B){HA!4erj7XH9OQ`ta+Qv*o7= zMahLZQ%6|?Cm~&Fv$j1q-hwbcz`yD}O=ro>ee(lUPG{PB^TORs(Tgnvw|{HQD+5hy zZ{=hw(vS9xGw7m>nLx60fPmBXgvP3x49`(^XQbqCIQ$qdbLCWUgqNW4+leCopn=Uy zvP0dSNO3az|C-EIqfVoxB`nUJ2){867TM)@n9*ldhKqBykH%fJJ@Mro8Pc(2nHgi? zrpqQH^i^FNLf(JO(Gu7FfKni;A0~a_ytLUUDQ|a5uDX?5crEsF7a`!(&&)DpykGsk zsEU-SkfrCvcU)D?^qO)tJ5{CYs@6{W*|xweL!Z?p3sG2ydRU4>wKYt`$-BB{Hm`nw zNfso{v0}U9%NvFLZL@|*Z;R{dL+~DvtY|`;>LN|h+N1aMcKE_YLlUaeN>3gan~7n+ z;Mlj`g6K9^l3ntVr+^{U&zXKAR`!A#Sv@hBP*S7vb_m*GF{tgu)Nx*Nd*EkbdIQC! zYP>OMlymPDBpPc~!GwHF3e%U84`Z6!C-tEc1os-HD!yK<2@H(!R!#GF wQl%!XgF#N^(?TLk`3|GF)UKn26!+et^M-trRF0uXOEdgE(|(`7c<$@|1sjAYQUCw| diff --git a/public/images/weapons/charge.gif b/public/images/weapons/charge.gif deleted file mode 100644 index 035cc34f2350e25addd4b3e5da6fa04de5627354..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2756 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 diff --git a/public/images/weapons/devour.gif b/public/images/weapons/devour.gif deleted file mode 100644 index 394be8ed208d4ae7824276074568cb3265a40bb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2453 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 diff --git a/public/images/weapons/grenade.gif b/public/images/weapons/grenade.gif deleted file mode 100644 index 083b5e42537e9035022bbb5e7505e127b6e33fe3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1468 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 diff --git a/public/images/weapons/heavymachinegun.gif b/public/images/weapons/heavymachinegun.gif deleted file mode 100644 index b1b1243ee0fede2a732556211545bbc28893e221..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2230 zcmd_p{ZrG20mt!Ao*xK#Bs_!w-*0#@AP)%&MxdG}AOVDkSP@YJLIqSB5R{>{Bm@Da z7!(yNDxp+4%eCOSD>}PNcoLnnvBe$s?2fqIi8rs~2e-q!9oxEpW3NBqefQ2a=V&%p zR6>T=6ZjtrC{$4CpfNyag2@4k3swL)f#C4L6(B$eo*01=@PojYLKp&JC`4fpheIMq zPz0or2qq9hB1D1EXvktAi$nN2$m0=_fXMZTOhi-?$P|z&DAb7FfS8SlO+(x!tkXcb z8OjXAXCmPPtlxsftw_=#S&tM0RM}AHK%I+J6E>K!F&}9KNZ*D{MbKEF*^Z1I$SgtT zPGo(E4|ZY8Zfq@sb`P}W(CvkO9}HF)D`2cd_5tKnA-5W)gD}^?T#LLqp zqhT0FN6>T=&9`v;Hd?+y%NSa}#))rmVjQ2`!Ku6W^tWjH7WPRv?!j>%&IfRQhmPN) z(}PYgx~9-QjWe@2JBPCm(KC@`r>a?|*bx1B9XD4!p9Pj?Dgb+A!rrvui(vm%=K;^8@hGP&%a8Rjo21&-xZwy!rM z?)sS7?(39=6}65SANe1NqV-ixF^%(P_qy~`Ro#>sRsbJL_L!A2-L1@d`sBp{)Ak5$ z{b}OGJs&4Vd*RZ9;ifui)Q4@WEeQ;%JJ8tkAgGpnH7AKRSlZr*+0U*-4D$mY>kNPF zAq}lc&akt)Kc()^bTX!v6PB7kI65z^Ja~22*JVi)boTj}l-`@66ZPQ$m6@J_KmesxQ$M4M^Le4JHuI~)fj_o zSNtr+shCDR_wbNCJ0$19cB5D`;GGtxFRDyY?K9)Fh%ZMcvcp?epUuk2hCX&^5&E*F z<|;BfD6Pt4XUYb&4sP1NtTV#WMK@ivN8ZpOEz0uKgUSjfoPxdm>aOTIjnq|>NtX00XoR*}&BxqdKppeE-Th_LRRq#lr?9eLN z$sy&tXC);)qU@0Jlj^zPvbWwjDzDmS;BH!KGk&Y3lT*Q!T6->sY#X1}W-SsvVTsD` z4Eo?5aZ#Ij(moeFaE&r2+)q5CFbh)ec^M%_p^j?uP&#C`nZ7PE{jS9*Dj4dU6I)9B zvq3xFjn4|Uj_QokiusA`p!zOdM_A>cUuTGtFHC7wRtiHv2nio``!805K;vsO2oAf{ zMrWx-&5-Up>?cC@Xe(yo_83#mifhhS+2UPQ7CTch;IngLYb;bwc};6}jUJg3xa;BI-l^rIwc!Q*8FmwLcV?)PNSct(QCU}mjosbZVU zOW`S9p6}Riyb_z$9;))PLnL{6y%2P0Az8VimD}tTo|DEQOoCD0?;IuC%}H%uzGB)D z5#;CWU#3Z&v$0AOB{024FCDj}kXn*msB-wKtj_qJO5s|w$rz`Y;FOfS61qa^i6s@R z^g(xEjm5;TAE!3Wdf4hx3ftGm{&t>tuA*SN5ZhpDy zwv6pfNu2TuDhbEuq7invbvk&`Lr-?qFw&qG++1q+naP0Ye#fn0B0*7lnv*Hi3mihH za`l%ORhO634+v+5XcF&dFSFiL!)L6t)FrprHq;&ol9|+^NJYajA2rGYmT|fGviw>1juEP>m@u&%7RH8Ax0^KU156g$z)uUu+h5qZleQnP p509{0F=afNS8|T$4lE)l{41hNq{{!ERlCJ;& diff --git a/public/images/weapons/item_mine.gif b/public/images/weapons/item_mine.gif deleted file mode 100644 index 076d125894db599347ab931b367ae5a861a88a82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 689 zcmci9%TLk)00;1|hJ-p1HNy}YKSMzLnUJO+`9KnRh>!{rWohDkwH|6gvCLA@Rs1C&^P+~>tNhs=}Y=FuJbqh4D(6&R@ z0o^(1&!g%B43}W+MD=A<+fn0y=?W~@VC_Zy08YDcW(bWQG>xL^25dLcb_eZ~=(q>_ z6F6qj^AtVLaCHu@H*hatcnKrR@CGsV4!%`Ptl{`)?Na2;fLCme;nJH6<4x&{W_L&GB;FTXa=JLdBxE9-KEE}5A% zet*gp4W=yDD9AU-6*bfTX}YLbQf^7qX`j!JvzVlzh|5>MUiMHVaaC*?SxH-2b*IVo z9B~0_-}?=xz+6gCiHwNf+@$Vd#0ZI`jJWSxKem7V`n^pVqa+_pkny;T;jKs03r<>+ z=+uz0g4dO842A+2c-*z2w*2|n;Ovb_d8p@xJ}o80W{O=C_OfGr%y_NMav-~}Kk^X$ zn?5t%1L&3mEPnNqW%R&{d5?y%KjY=w86s*hYPR(i HH4^fF)32~u diff --git a/public/images/weapons/knife.gif b/public/images/weapons/knife.gif deleted file mode 100644 index 4bc36aa3e9f4260c01f584851eaf6851781d6f5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1348 zcmeIx{ZrEg0LSsq*yhHA@EwmaHrOUO9)-c6Ay3;FY{Pg)K|*8>bkG$8c~U_)o;Dcb zFnq{J$3v8WH9aW0;|B(taAlp8c~n-jIx3|*xa+#>>Zs#?=*M1v!u#$mS7wWnRT*I7 z=OOGOQ{m|gA^_e&@L|E9g8&|wVPNh@5Fe}vup<#1h2Us}#DE(MZX9?5>`OqX5PT8B zlM#Lp5h;jFLsUAVGY})e0V!fL5tju)HUx6SE0Cas@DLJTLQ*bX%!jBD2aAzXf|SEZ zJ%Y4Sq#s2_Im9nRTmi{3NGp+91(^!66Ub5{yBhKuC{97CfwC4kbvX12^6HVNMScSc z8c}c>Ma?K`L2)Ze+Hm*`O50J|fwJ=`*P&dGiY`=iqp}y31{^m+)en^k>WfehqGkvu zFGDko+N-F$j@RBo{VixMXc$Gq7*0>1X%fxvpyf7Nr_eTywi%p#59i*;IV(Eu;ruKv z%t7}d^z-Qa2;B=XETV52{SKJ!!?c2dRSbTN!B24M0WPm$_zPV55?3GN+B)9+79-zb z9&@dFrzpG0K*zntAGqt2CGF$ux!AWiY zW&LRJ{(*ovwcQ-3-q_2|ZvC1ws#E9j;*J(W4#`ot6V+(gd*hZrryB5u)bCr-2S(~$a!^yDW+_$HANvkO9Lrgf<3jlMOcogNx$X7&MAtv*n=E z82cu0c$(Fv5S>7B(3N&|Dg97~b#dMGL;Imr?(D*};_B+;&VJ~wv-J1g_xcas4p+1J z3BM64tPSH)+j$Udhma4k0Fqn~LhKNM6oZmr=OYB(Si=wh4X* z0uJ;z5p*HsM!y@+doa+7Auqx{L=NNScEp~-NC#f&#L1^I+JzL0j31{0mmAm z$l+))*m}DBM+Ac1ANGwqCju7eQY)4Oc46XTW5{_ZL-Sd5Z&)% zI3V^p@0%0%zLeLvv(6D8td#JYWq3S0W={(Y!zt-pfDqvU+0f->0is-H`GBdlZo9s_<4v)50bQtHqcy4OVWXirvb0JhI)n3e{ za&nccecyhriE~8?<%#gBmH)?IYq{U0mub7eg#&l+>iQ3gF)kG?agsO5&~1(?dTCWU zO-hr=-^&0|8M4=j1jgqgl3UpXPkMTs5h)NKpClS^cdGhE=DF#rGn diff --git a/public/images/weapons/machinegun.gif b/public/images/weapons/machinegun.gif deleted file mode 100644 index 4b9c79644817bdcfccc7caea43db508929982884..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1542 zcmd_pi&N4E00;0d`~U#~L42jCKNUiW6fDzHOVAWwMQZ8H8kiPVnwpiHwLnQJduXZU zW%cv1&0H;Qb$gtUCCaN)wm6&yY|0&v~nDg@6Rd@%$b5O_l94WSQ2i{S1Du>>Ce@C<+# z3GX0y2g4@>zB2eOhMydgF!(DFumk~01TIBT1cFouRwHB?q{|_T!s2MiV-UI$p{o!U z3q?GZtcG$8mTC~LMMNT0YoShtIt7tBEK9}mbVOxfMJA%xBSw#y4Oo?p*c`-eMBFCC z=VJ9cSd)*00%*1%(SRf)k_wSrgp^|Fb|BS+)DooaMEWkI??z@B*6qQ%a;&d_z7qPq z$l8aj{m4FmoN8=*54i`CdkA?SAm5C93kvE`V8xar*jkUR4S3fE<1rW;vF!x5okVdn zwx7n1GcdKFqzyaIVOKj!&!e;hWf!pL6883>>Lcv?82c~dKp(0i#$LgO0fujwYY!1(%?9nT6)qVA0Fu}u_3Y6+Ggz^9kc3A%jQrIlgdKe_!NbaRis zdH&X9o3f}(KV&xAnS9aULOJKN;`Bw~$S)FVM%H?tbz>{H&z-hFq)zLl)X!#^-jtzh zviOqCof~@IRGBKH7Z#?4byq*+)O8suSY+MH*#;kCdWhyCvzkT)ilJtDe)J8^h#w(w z4AB(5l|q(!cO*NwMU^)xJC#76lwG7=SUuxr9CmSzvZ6s&V;&gw+1}C2L<(h)iq`yN zCWO&(>RbHCLA{k1^{b&s8_|(87Py&=c6hb1zhgFn?s!_A#Q-JiGLi#^<}oJIpX}P<`lX|lHTk>mNi*e4!`51 zmcdmDhnYS_O&Ug6Kh?yRn5bdq`c~BP)Iw*n)Jh5af-_nMk^|i4NG(gMYszB?Jo;!Z z{s&cB&XS2HyI{}b@@&msr-}x-(_u*{otf2159=Z)h>U87R!6>mUdxkDm}~pxA|pdw zAhB3j{x-ePGneetCVDn$G%f+Qo8f6k^ETL90uN^l54%oM6U<`0et!Iq$Q$EAmGs5@ sZSK+8an`2Z#y{^ce^VWGt2vIBcZqgKy@xKEKg7(AS^CP!VKNZ=AD@k-O8@`> diff --git a/public/images/weapons/mines.gif b/public/images/weapons/mines.gif deleted file mode 100644 index 076d125894db599347ab931b367ae5a861a88a82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 689 zcmci9%TLk)00;1|hJ-p1HNy}YKSMzLnUJO+`9KnRh>!{rWohDkwH|6gvCLA@Rs1C&^P+~>tNhs=}Y=FuJbqh4D(6&R@ z0o^(1&!g%B43}W+MD=A<+fn0y=?W~@VC_Zy08YDcW(bWQG>xL^25dLcb_eZ~=(q>_ z6F6qj^AtVLaCHu@H*hatcnKrR@CGsV4!%`Ptl{`)?Na2;fLCme;nJH6<4x&{W_L&GB;FTXa=JLdBxE9-KEE}5A% zet*gp4W=yDD9AU-6*bfTX}YLbQf^7qX`j!JvzVlzh|5>MUiMHVaaC*?SxH-2b*IVo z9B~0_-}?=xz+6gCiHwNf+@$Vd#0ZI`jJWSxKem7V`n^pVqa+_pkny;T;jKs03r<>+ z=+uz0g4dO842A+2c-*z2w*2|n;Ovb_d8p@xJ}o80W{O=C_OfGr%y_NMav-~}Kk^X$ zn?5t%1L&3mEPnNqW%R&{d5?y%KjY=w86s*hYPR(i HH4^fF)32~u diff --git a/public/images/weapons/oc.gif b/public/images/weapons/oc.gif deleted file mode 100644 index 306e056b595f4440c625a0b74dba94f420a2990e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1712 zcmds&i&N4E0LQ<;?}vzh_y`}FL7Mm=hdr&VctohZz|e3}frG@$6`DOPYd?{UkP5R} z@6^)Ftf*{9x32BKIb z#UVK!W8;yM0P!fKjzU@@(nmug#5fT$MUW;TD+%M1F);;`QZQMJDXGX##k6!x&%g`` zW{$(GOvpciLJDOTW@kY)9_k6mn}oTOF>eayXJf%sESv_-G-#)zAP2e`D4dC+nOHmv zdKrr4SfYSIiKR*`n~miv7*#N-QKH5txiII!l8+Vnu+Br-Jgi)R@&)*GAy#W()1q<_ z)+|Dm4r>dst_bTFqgs!R#i;oho0njV0iPK_Ek*4z)Gdd@hc1fg_bTx(3ZvXjzNabvV8rZ5z;Djg!?l zwF#$d(6t$7x8Uq&I7h)t;es6(?dYz<7Y_L9ak(B}I&oz?zS@qjUGO)ccL(}*qJI~z z?!q+>uJ6W;-T1Z%-|fNod-20Q{J0Od_T#4m7(9sEhj8aGem;V`$MEYh+-t^fE%?0^ z!Q;4p0*~79_#}opFmwt}I`OmP8HKIHKs6tLcc#!ATbHp@}l$uSTVqq)vZRB0-`tydcat1V+TFu5== zRjDs%l(VBwDDCX_kulfp!irjxBH-L1qmQ`%RBp?y-zy8`$0^P_fBDXbzX-*1+tyioXu-kuP~wR}PO6AT>Ds$`+62~}aocW$~v$dp0wlBMfOr8DD zWLMg%?gB*RL{yP!?Rr~(bhg1uk6);(U~rRz!(?2cr)ayZYG3}LgTk2?wH>-cTlXh!^&m$Xpv`Cw&<=2(E9D=^OHo$&7V_zKIu+pzBYVYp8Td%*zKAJVA4FzcJ=afFQ%G{BqWOo$D$? zE2K{teEOk$w=%(bP$SvJ0fB&ZG{{fGmZQTF> diff --git a/public/images/weapons/offensechamber.gif b/public/images/weapons/offensechamber.gif deleted file mode 100644 index 306e056b595f4440c625a0b74dba94f420a2990e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1712 zcmds&i&N4E0LQ<;?}vzh_y`}FL7Mm=hdr&VctohZz|e3}frG@$6`DOPYd?{UkP5R} z@6^)Ftf*{9x32BKIb z#UVK!W8;yM0P!fKjzU@@(nmug#5fT$MUW;TD+%M1F);;`QZQMJDXGX##k6!x&%g`` zW{$(GOvpciLJDOTW@kY)9_k6mn}oTOF>eayXJf%sESv_-G-#)zAP2e`D4dC+nOHmv zdKrr4SfYSIiKR*`n~miv7*#N-QKH5txiII!l8+Vnu+Br-Jgi)R@&)*GAy#W()1q<_ z)+|Dm4r>dst_bTFqgs!R#i;oho0njV0iPK_Ek*4z)Gdd@hc1fg_bTx(3ZvXjzNabvV8rZ5z;Djg!?l zwF#$d(6t$7x8Uq&I7h)t;es6(?dYz<7Y_L9ak(B}I&oz?zS@qjUGO)ccL(}*qJI~z z?!q+>uJ6W;-T1Z%-|fNod-20Q{J0Od_T#4m7(9sEhj8aGem;V`$MEYh+-t^fE%?0^ z!Q;4p0*~79_#}opFmwt}I`OmP8HKIHKs6tLcc#!ATbHp@}l$uSTVqq)vZRB0-`tydcat1V+TFu5== zRjDs%l(VBwDDCX_kulfp!irjxBH-L1qmQ`%RBp?y-zy8`$0^P_fBDXbzX-*1+tyioXu-kuP~wR}PO6AT>Ds$`+62~}aocW$~v$dp0wlBMfOr8DD zWLMg%?gB*RL{yP!?Rr~(bhg1uk6);(U~rRz!(?2cr)ayZYG3}LgTk2?wH>-cTlXh!^&m$Xpv`Cw&<=2(E9D=^OHo$&7V_zKIu+pzBYVYp8Td%*zKAJVA4FzcJ=afFQ%G{BqWOo$D$? zE2K{teEOk$w=%(bP$SvJ0fB&ZG{{fGmZQTF> diff --git a/public/images/weapons/para.gif b/public/images/weapons/para.gif deleted file mode 100644 index 7b0e128fdcc4c3c3c9a574524e54ec13ac74ead1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1156 zcmb8s|5K6&0LSqUUxj?Y2PAz&$%iijB`T05f+7eA6p9d~WnUzZP?ow| z<+i(hxoelXt$7!?Z6%f z_Byf8g-#dtyV2!Aw--HIa9|61edzPym1gv}AkurxZ5RyU*mk_O z14C^XZo^1BUf+r19XPQY@qI{i;$#@7_TzLn&h%ii2h#`f=0Tk8!`l(ejo{-ET!|qS z!zk+|R|G(v{BFB-Q@L*3jJ=8bYOS`?zt&soCW~{**(7oh&35A^17{=p?gh-H= zFCoR#RLMG-^1M4{^;kDI~N%tk*f6+%u9D#eEiob^ENQdCobI`FVmY4c?)@il!fB&bxO{ zrD^-#TWsEt#NPM^KVRhfSPgby}?2HItf)-<9ZgWoGTl1C#F>_oaN^PddVa652EGS=fJaQaW&`PtJNeRb=S8 zKgt+yOe7lx=1|p=t7%g7xMRM3%Hho~@A+UMS z^zyi1%LHQV-@muTM}gt8E-BB+a@DS_4kZ7DL#peu*I0>&yB zt8usnS+&TjgQ*@lXK|zv<|dfWA@>4~UPN9C@>-GKhWtw?xQr8T;iL_P9Vm35=n9IR zIMoTuHI!XP*$q^_&kI?!d-kijx8C?Dd?X$3d0{de)=HPgOs~%kSqH6)&i@5PQdcT0{YxFOpe+2{I z;?^_VevY?)!0=BP{u%dIG4d-$*D(G&CN}WFpP2j`Gh3AZ{dWcUTTD$;g~eJ?&bwG` zt>Wp8CNub(L;?-}AYuEC?NLD40)fIcOu4-slwfh8ufa_XjYxMen5Eh)!Lf%2c&b%3 znH8JU(`OqQG2UcRs#d;v*c~jk@KmK6l-zq6ZL}{{8%sIdL@V(LA^G&m(@_*`s75QZ z_hd9J&q<_05>G>s?m)IarW5t;6B-Or>z6=)9 z@5+kZ{=ae;O>B9Q&lWfHv4tiw4H`BD&hAjYtcN$p8DORRm*`Z{(e{m9dhqngc`&(_%U*l?5Y$odWv}uT_Ny{>#NK>=jID;zvRv< z?yeJhOKgLMcf>#Qc$f8k<^Mt2*LGbS_Xozu#2Xg_6QaxG^&$P0C8(Lja~@-xG@CRO6y;;pSA6{zGC4XNox34duh)4zeXpdg zrJ-++{HB!J)<4=ZWk8twxuI3)>^swoUE9Lx-C&a-TY3LRU8j8N4o*fEG`T%fAGZ^h z;;Dk^#As0LwhB2Z!^)lcElHtF`y^a&ho6W-dcF0_=$g@-s@e+tcJySHg&*wrR)Zk; OerX@Az5c%3j_n^T^@`&F diff --git a/public/images/weapons/shotgun.gif b/public/images/weapons/shotgun.gif deleted file mode 100644 index bdfcd82d33b4eed0f218b8e44729f936700ee8f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1634 zcmeIx=}(gf0LSrPAD)&LN^fXU=mAv9C5IdZ1bP8Q1{M`jF53Zeh*}gQV~8zhMZ_Yg zEW@lgGBamPt1M%SGcAX6n=fD^1~+3sjk3L}W^dicgfa-j zAPUC@IW}y<#z=%jAv7A|7>HvbiGwU2vIK-BB76%Xk|9sQrZhw_E$99G%3mD>!}?ZC{}68rrYpLnlt$K<5-rehJH0 zuuh}vYxI1J-rMN+;M6Pz<}r8|LqFo|JzThti^~{$fKQ&#|MwpikgapIN9s(ib+yvt zjjavR{DL9_WN%1{AO1${yF1>E0{S{A^boz%;pwLHqbu(^CuaLO;oHXV8cvVMQ=59c zDpyUufRQq0+M)gaOn5~5l=bHG0efgpdBm;9B`c@sP$-%gHMxUq$&IB|;@JRStbOEo zVbtZaLQ;E{E!@X_gOTcXQ48@@Kf)occ|b*l zJ!GFXIomevr4Y18F3DjgM0j{XyFY7g@wrmun=PqbS(x}Ve<-NQqOk6&FAhs5hNUyw z?}j9qq-+cfhlXYqY%;vgG0|+Y7q5=gh}BrI0KBEipk=(Nzqu@svGTix)d!mFn9Ta6T1 z`+~HKJ*;?1FQ&R2GbGF7A_A(F6FSa8g<8{A%6viPuD9Qk^|E5doI2itx2tOu`f@@y zzf85NV=xDyB26|+H#emLV5C#bR!y}1!2&fWZg`fJ?v`qNm6hn`$k$wCc$>|Y$FCqC z>t%;vocGf>aaEN(F6|27DRF0iTAQ@%CacOZqTM@gA_KSDy)(?{R`bWIf;BTuTzD%{ zAKt87^w|^ZNYqUczj@Wn%<*r07%~0s#v=N8>l`yh&+Vc$1^0OTv+Top0rz=-Xw?~2 zMk-&w^y-N2=L|s}Q|@#MwHeFi_;WEoCPeO0{frK+}sH_ThyU?^$Yif+u|QT z=^%b>O%qTUNtOj|9QD{=XY9VwUdv2pr||ZDcIYk#aj;K#{SkZf%8KU6C|hS`oUgzB L=GnMbz(M9esMew- diff --git a/public/images/weapons/siege.gif b/public/images/weapons/siege.gif deleted file mode 100644 index c7d7ff616262bec565d2255e5f78d2951a380546..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 895 zcmZwE?^DtT0LSqU@I^pH1OX8Qzlb6V@?-wUL?uLiiYSSu28a$dTWw~{(N>H6BB|Id zb-U}@R#a~Dsuk^4-fp)$wQhO0C+)7??NK*(J=k{ZZhNv@PukY=z3=@Wyqs=F)7}vi zNPHW|f6-`Q(7`0Y&H*O}Tn-9y!OH_bA4Oag6+py;xDdsBln5X#f=q}~ArxYii9r@a zDS@g46;f16p)N(092z;Q6{snLjzp~zdL@i1m{h1&qd|?vD(umqNrUDZn6+rt!J>!N zfOaEnCUlr!e+AAuxa#3P!B>ZtR#qtyukQ8e=)|Jt{gtw6^W<^AMX&9*3dP2T zNRO*C)L&712?dvD9flf3eXV7%uB&%K=?>{jW!#3=HhYHw-pJ6fHxT}MuDG&FESG4t z<`4*09*0Fp`A_CWq`b6}%OU7Anp7>!URW-l)9Ji*Y%n}W{V|=@co-6+I?sH&L84n=KQ@!?>Usggd`R* zB)|(lSkH@e5?msO%x*Cgvm8p%;d)zj^c;)lVHYN?50~js2%ih0?)hAyG58J2X$)p@ zGGjs-@nF<`(kK_g9I0o(R9k-&ubk3zF%zUn19RO!kv3RZsuPmXz7T ze_hxpr!v)tZ$8z1@tsxp%-8)?(z4Jg%g+3q8La!1qiTvhwmU@DFSk;H#mC2-{-nE{ YDGxpJJE(Mv@*#g9>D*1_GwCq@3#T*qq5uE@ diff --git a/public/images/weapons/spikes.gif b/public/images/weapons/spikes.gif deleted file mode 100644 index dc5e988dbbb41795a251c598f151b7b4f3b37440..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 684 zcmcK1TThY!0Eh8E_=cQBKoogFd=W4_CZ@V}Zv; zJO{!!Bpk#;Vmy-g5DOp?f=qx^1epl(Bv4`~B~X!2lSr50XbLnb$dDtOLaqXNN@$hH zSD`Q+MH=WeFlNG(g_3NP=HNswELvE#D9=Y_0jhOy=uvAxoe}j$G?>s-iWW24t>`F6 zmkr%E^i;xG1(zLX?Qqw?Q;TzTINyN5CJdc|w;5MjG28~^fcjna;AWtE<&e}o>BHdFs1K-eQ{+j5?uU&$(_ z@~_@$8KIX2=p2q}$EmQy@~N`#qOHC6i@oMi#=em8@p@L%O7dkbKSI!G8d`K`#m(h4 VKH}BvZI0tf=SC={TIZo)`Uhd;p-un* diff --git a/public/images/weapons/spit.gif b/public/images/weapons/spit.gif deleted file mode 100644 index c978d56d37a53205f18940b702690435ddce69a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1599 zcmeH`i&N7D0LQ<3xc&BE{s!B4v)|Z+0RzWF1QFfF<_5}ZqL6}aDk7l>*3X?&a|sL>A1Wu57WP(f1uBO{({fl$C$q=E8Cg_ z34R^IGiWp{V1mU2hXpPhd;&on2)J0tgOHElAcQoSU^QZk5nD~zmXGZPs9l2>3sF~uokiGHjQUbEn9;Zvd)C5M zhL_i2?|L+qqq!XWDzN_rv~0kEjW}3|LzS>sp>-3So6%-LyA|ElI8u#cH8@^_o?5tS z@md{D>_p#g^zX*Wm+*Q$PBmb#5pEmK?!~z#ywQyF`*7hEyw!qB2XOfyE+4`bJ3Mw= zbKq?Ut~>Eg8{R#P(RRGoj`ut9K^H#kg7*k~M=^E`N(A^ko-l&9j+t#fg=y1K&mdmae=1$_x+ zpAL61I;O-~)hUVtcD-SY!RxaqAIaFgiCgb|)iqvI9GOyFxB=f->W0-G^DE$`T0pnB4G88)jRX98p4<$1*c!;C-tq z7zlI0IIyVb78$E}Fs&$PpHrFj@r9xeBKYXRM;iJ9j#yn`8fb1{`N**O42uTd-X%r- z?oz+f99MigBe~l-!IMOUNa9L70WFgdm(&#eFgm+R+VMnYlJ-@cod}WJNS%SDq6QfPrP>Y}*`wj)yJ_sGrYABs8C{`v z2G!b2S&^@hKXt}B0%tm-&67PoVqU7K_Fm%JG4ap>l!nf_;Ck4~UDcdw2udbXjWHc6 z`efv0rAx<7`(5qi3G#1x86=TOv7;@doW;9y-{De^sK+=dC~X&&>r=;BNptWE6rEl= z|MK189@dt@6QKXBRco0-_4ZZ^pHh<>^ktM6NyKf2V6omcPH^q@BqL8Xn-`SjzR{=S zJkStwTZPOo9Qr8W<7b92{o-u5hT$z<*rt(`6qq}uM>P&2x@5|$6J)liopjM~#b4YX PS|0!L_(yxFh(yl6i0w6P diff --git a/public/images/weapons/spitgunspit.gif b/public/images/weapons/spitgunspit.gif deleted file mode 100644 index c978d56d37a53205f18940b702690435ddce69a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1599 zcmeH`i&N7D0LQ<3xc&BE{s!B4v)|Z+0RzWF1QFfF<_5}ZqL6}aDk7l>*3X?&a|sL>A1Wu57WP(f1uBO{({fl$C$q=E8Cg_ z34R^IGiWp{V1mU2hXpPhd;&on2)J0tgOHElAcQoSU^QZk5nD~zmXGZPs9l2>3sF~uokiGHjQUbEn9;Zvd)C5M zhL_i2?|L+qqq!XWDzN_rv~0kEjW}3|LzS>sp>-3So6%-LyA|ElI8u#cH8@^_o?5tS z@md{D>_p#g^zX*Wm+*Q$PBmb#5pEmK?!~z#ywQyF`*7hEyw!qB2XOfyE+4`bJ3Mw= zbKq?Ut~>Eg8{R#P(RRGoj`ut9K^H#kg7*k~M=^E`N(A^ko-l&9j+t#fg=y1K&mdmae=1$_x+ zpAL61I;O-~)hUVtcD-SY!RxaqAIaFgiCgb|)iqvI9GOyFxB=f->W0-G^DE$`T0pnB4G88)jRX98p4<$1*c!;C-tq z7zlI0IIyVb78$E}Fs&$PpHrFj@r9xeBKYXRM;iJ9j#yn`8fb1{`N**O42uTd-X%r- z?oz+f99MigBe~l-!IMOUNa9L70WFgdm(&#eFgm+R+VMnYlJ-@cod}WJNS%SDq6QfPrP>Y}*`wj)yJ_sGrYABs8C{`v z2G!b2S&^@hKXt}B0%tm-&67PoVqU7K_Fm%JG4ap>l!nf_;Ck4~UDcdw2udbXjWHc6 z`efv0rAx<7`(5qi3G#1x86=TOv7;@doW;9y-{De^sK+=dC~X&&>r=;BNptWE6rEl= z|MK189@dt@6QKXBRco0-_4ZZ^pHh<>^ktM6NyKf2V6omcPH^q@BqL8Xn-`SjzR{=S zJkStwTZPOo9Qr8W<7b92{o-u5hT$z<*rt(`6qq}uM>P&2x@5|$6J)liopjM~#b4YX PS|0!L_(yxFh(yl6i0w6P diff --git a/public/images/weapons/spore.gif b/public/images/weapons/spore.gif deleted file mode 100644 index 653cc1ec83a2e444855114253b3cfba43414a776..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1861 zcmeH`>rY#U0Y`tfuODC=Uvq72g9G2JD}Tv>QdB{p_WD+13d#n1?nrXdnXzyv8NJytFTXp{W>((;NW*~s1}Fo(5#2? zyD%AGu7{-_ExTcT4z>og?ZJ_~=-7wO{Wy96U5&6eqWd6vn$UX)eTQ-EF#4O}VDW+x zCrlVH<3%%0T5zfb&K9_=7_{Og8;062+>X=j80o;74t%c@qen4z6lc5eiXG$Kc(n%; z&*Qb{G1-gP`|!pwobQLbA5#vz`2wboW99_DKY$AZ@Vp4`N%&78;KZy8bAz}vgv-OY zGK|n^y!|q+zKrl0%%8#aQ7nw&oiW@zhsASv_Z9qb9Phn~TNC)vYluuD`Z{jEfjj5% z6E}W3g`Z8~=WpSIX)Mp+!wdMxgO~>&`>^82F9Z11MZ{skCJh)*sd8A9e7KD&m` zujA1T{PqU2H}Sjo@cUc%!;kUweLP#n)<^i}7ytKvDZp&Y%@f0}$>AaT{F%uS+S=A> z2lExd$;UUS{dSLUM}cS?9Ff)*izNLbs%9V)V?45|hW$&KP4F%&ZM2sXJ)(-$y30h2 zb@~K(`hX~pP7?VA1>_iAzIL_R@pY}Kmq;3U0#dC$5Ki)iVy!J>xYIr_&ND1}>QgCJ zSTTvIt--m{wuR5>vxXHm%ct}St;2JhUqBVxo%KTxm+JJEP;CCs?N?Uz%n;Ep7{0jr zt$)@UT_!=eP@=VGW6{-FA-`xSlVg0VLRq<6&9StWEX@6wf;N=coD%94+ zyPO^x-n{DIP_l;~6iLb&9pky2iE4T?9ZgFbM!pafRT@^jVtqQ{lNjPz6L~7QC71S$ zaMH3P8>EjXQybX!ig>~#t+umCzQ&eg3C1~ZrM(a5Tcm>$Ur;IO%bN0;P{b$J#k1zZ z;{hWfITla0mW@ifeLSg!PV$NdoJK)KWZWd$IUP3gi^3o@)1uvNv_--^DDLZskvw|Y z?h}@T5+<4B6OL8h{O|0l_D08->#7EKHbGF+kyTm$k}EAeykR$qY6qUC#QP#!!is<* zN>KjrJ&w6xY||@L^cqac?QvYoQ06AigOaOk&${xtyLK-jjYkOODE>A_9(a;9iFU;j zDQQE(8Bn`A7)xPqR?Zigs}~YiWXpH`W$!e6xvuOA&97-^?rvG+rpE~{gikgt%5#aR zfNF7XU6e8&GL>)fxYiY9K~kV~EGIl%@jq^E5GBuI>$^fBBcYmD`4eB=ypi?GjZ5Jg z_i6OlG^{(CVLD@pBws5s&e0>eO_O{^F)>F8GAnjM`>fw9)NdqwVyn|-)!3dmQ$k(s zt(2%-sDP?_N9AkDp!CLkT3y{N$!l_6YQ9cY^ABr<=l01UeowID@{8y6~Vtp zSNWuP!I;N7J&JoI>+C+`X-`K9g+`K1z@PEH8RHQA!4Wh33e(pI-U z%wwK8FH-u+D@n3%Cqt0?;;cn+=f2UVn%ZzZAgg<=3oPG)6m=qGIB!(lJ)Wmy!@Oyl z*d62KHRcwJ?Jn7c%}1o0<*NSp13J%>5NuanBLZyQ%Bq*VZ3vJyCr>rP^0bCe#rN%W r`xGmhV0mPS=5bw#BedbZ>T5eK&tGKumGp|YAvf9Faofh_;^2P(RHUEB diff --git a/public/images/weapons/sporegunprojectile.gif b/public/images/weapons/sporegunprojectile.gif deleted file mode 100644 index 653cc1ec83a2e444855114253b3cfba43414a776..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1861 zcmeH`>rY#U0Y`tfuODC=Uvq72g9G2JD}Tv>QdB{p_WD+13d#n1?nrXdnXzyv8NJytFTXp{W>((;NW*~s1}Fo(5#2? zyD%AGu7{-_ExTcT4z>og?ZJ_~=-7wO{Wy96U5&6eqWd6vn$UX)eTQ-EF#4O}VDW+x zCrlVH<3%%0T5zfb&K9_=7_{Og8;062+>X=j80o;74t%c@qen4z6lc5eiXG$Kc(n%; z&*Qb{G1-gP`|!pwobQLbA5#vz`2wboW99_DKY$AZ@Vp4`N%&78;KZy8bAz}vgv-OY zGK|n^y!|q+zKrl0%%8#aQ7nw&oiW@zhsASv_Z9qb9Phn~TNC)vYluuD`Z{jEfjj5% z6E}W3g`Z8~=WpSIX)Mp+!wdMxgO~>&`>^82F9Z11MZ{skCJh)*sd8A9e7KD&m` zujA1T{PqU2H}Sjo@cUc%!;kUweLP#n)<^i}7ytKvDZp&Y%@f0}$>AaT{F%uS+S=A> z2lExd$;UUS{dSLUM}cS?9Ff)*izNLbs%9V)V?45|hW$&KP4F%&ZM2sXJ)(-$y30h2 zb@~K(`hX~pP7?VA1>_iAzIL_R@pY}Kmq;3U0#dC$5Ki)iVy!J>xYIr_&ND1}>QgCJ zSTTvIt--m{wuR5>vxXHm%ct}St;2JhUqBVxo%KTxm+JJEP;CCs?N?Uz%n;Ep7{0jr zt$)@UT_!=eP@=VGW6{-FA-`xSlVg0VLRq<6&9StWEX@6wf;N=coD%94+ zyPO^x-n{DIP_l;~6iLb&9pky2iE4T?9ZgFbM!pafRT@^jVtqQ{lNjPz6L~7QC71S$ zaMH3P8>EjXQybX!ig>~#t+umCzQ&eg3C1~ZrM(a5Tcm>$Ur;IO%bN0;P{b$J#k1zZ z;{hWfITla0mW@ifeLSg!PV$NdoJK)KWZWd$IUP3gi^3o@)1uvNv_--^DDLZskvw|Y z?h}@T5+<4B6OL8h{O|0l_D08->#7EKHbGF+kyTm$k}EAeykR$qY6qUC#QP#!!is<* zN>KjrJ&w6xY||@L^cqac?QvYoQ06AigOaOk&${xtyLK-jjYkOODE>A_9(a;9iFU;j zDQQE(8Bn`A7)xPqR?Zigs}~YiWXpH`W$!e6xvuOA&97-^?rvG+rpE~{gikgt%5#aR zfNF7XU6e8&GL>)fxYiY9K~kV~EGIl%@jq^E5GBuI>$^fBBcYmD`4eB=ypi?GjZ5Jg z_i6OlG^{(CVLD@pBws5s&e0>eO_O{^F)>F8GAnjM`>fw9)NdqwVyn|-)!3dmQ$k(s zt(2%-sDP?_N9AkDp!CLkT3y{N$!l_6YQ9cY^ABr<=l01UeowID@{8y6~Vtp zSNWuP!I;N7J&JoI>+C+`X-`K9g+`K1z@PEH8RHQA!4Wh33e(pI-U z%wwK8FH-u+D@n3%Cqt0?;;cn+=f2UVn%ZzZAgg<=3oPG)6m=qGIB!(lJ)Wmy!@Oyl z*d62KHRcwJ?Jn7c%}1o0<*NSp13J%>5NuanBLZyQ%Bq*VZ3vJyCr>rP^0bCe#rN%W r`xGmhV0mPS=5bw#BedbZ>T5eK&tGKumGp|YAvf9Faofh_;^2P(RHUEB diff --git a/public/images/weapons/swipe.gif b/public/images/weapons/swipe.gif deleted file mode 100644 index 5c53f531f7728c6732256239374dad08d507da77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1407 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 diff --git a/script/shell/log_file_update.sh b/script/shell/log_file_update.sh deleted file mode 100644 index 5ff20b8..0000000 --- a/script/shell/log_file_update.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -LIMIT=5985 -a=4268 - -while [ "$a" -le $LIMIT ] -do - wget -O /dev/null http://www.ensl.org/log_files/handle/"$a" - let "a+=1" -done