@Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g); 
            Image off = createImage(WIDTH,HEIGHT);           
            Graphics second = off.getGraphics();
            second.setFont(new Font("Volter (Goldfish)",Font.PLAIN,30));
            backGround.paintIcon(pane,second, backGround.getX(), (int)backGround.getY());
            burnedVillage.paintIcon(pane,second,burnedVillage.getX(),(int)burnedVillage.getY());
            co.paintIcon(pane, second, co.getX(), (int)co.getY());
            if (!this.cinematic){
	           
	            
	            co.move();
	            for (int i=0;i<drops.size();i++) {
	            	WaterDrop e = drops.get(i);
	        		if (e.getY()>HEIGHT) {
	        			drops.remove(e);
	        			break;
	        		} else if ((e.getX()>=co.getX() && e.getX()<=co.getX()+co.getWidth()) && (e.getY()>=co.getY() && e.getY()<=co.getY()+co.getHeight())&& !this.hasWon){
	        			drops.remove(e);
	        			co.hitTributary();
	        			break;
	        		}else {
	        			e.setSpeed(.5*(co.getCharacterType()+1));
	        			e.move();       			
	                    e.paintIcon(pane,second, e.getX(), (int)e.getY());
	        		}           		
	            }
            
	            second.drawString(Integer.toString(co.getTotalTributaries()), 20, 40);
            	second.drawString(Long.toString(((timeOut - curTime)/1000)/60)+":"+((timeOut - curTime)/1000)%60, 680, 40);
            }
            g.drawImage(off, 0,0,this);
        }