Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
//The program does some interesting things if you click and hold as you drag the mouse outside the workspace
//Makes Arcanus look real evil if you go past the top left, or just explode if you go past the bottom right

void setup() {
  //Sets the size of the window
  size(400, 400);
}

void draw() {
  //Resets the framerate to 60fps after clicking
  frameRate(60);
  //Draws the background to refresh the workspace
  background((mouseX+mouseY)/100,(mouseX+mouseY)/33.33,(mouseX+mouseY)/16.6666);
  
  //
  ////
  //////
  //"Particle effect"
  //////
  ////
  //
  
  
  //Makes the stroke thick when the mouse is in the bottom right
  strokeWeight(abs((mouseX+mouseY)/53.33+5));
  //Slightly shifts the blue lighter at the bottom right
  stroke((mouseX+mouseY)/16.666+115,(mouseX+mouseY)/29.6296+196,(mouseX+mouseY)/40+240,(mouseX+mouseY)/8+60);
  
  //Inner section starts as a faded blue then bright blue-white at the bottom right
  fill((mouseX+mouseY)/2.116+66,(mouseX+mouseY)/6.66+189,255,(mouseX+mouseY)/5+100);
  
  //Two rectangles that begin -50 pixels off the window and approach the right at slightly different speeds
  //Tan functions accelerate towards infinity then reset so I used them to make objects that respawn at the side
  //The * inside the backets dictates speed/severity while the * outside it dictates the range (or the how far until the object begins to accelerate)
  rect(tan(frameCount*0.01)*150-50,-50  ,(mouseX+mouseY)/40+10,4000);
  rect(tan(frameCount*0.009)*150-50,-50 ,(mouseX+mouseY)/40+30,4000);
  rect(tan(frameCount*0.008)*150-50,-50  ,(mouseX+mouseY)/40+20,4000);
  
  //The little magic circles floating up in the background
  ellipse(-5, (-1)*tan(frameCount*0.009)*200,(mouseX+mouseY)/30+5,(mouseX+mouseY)/30+5);
  ellipse(43, (-1)*tan(frameCount*0.015)*200,(mouseX+mouseY)/30+5,(mouseX+mouseY)/30+5);
  ellipse(97, (-1)*tan(frameCount*0.01)*200,(mouseX+mouseY)/30+5,(mouseX+mouseY)/30+5);
  ellipse(193, (-1)*tan(frameCount*0.011)*200,(mouseX+mouseY)/30+5,(mouseX+mouseY)/30+5);
  ellipse(266, (-1)*tan(frameCount*0.018)*200,(mouseX+mouseY)/30+5,(mouseX+mouseY)/30+5);
  ellipse(321, (-1)*tan(frameCount*0.012)*200,(mouseX+mouseY)/30+5,(mouseX+mouseY)/30+5);
  ellipse(373, (-1)*tan(frameCount*0.016)*200,(mouseX+mouseY)/30+5,(mouseX+mouseY)/30+5);
  ellipse(413, (-1)*tan(frameCount*0.007)*200,(mouseX+mouseY)/30+5,(mouseX+mouseY)/30+5);
  
  //Removes the stroke after the particles
  noStroke();
  
  //
  ////
  //////
  //Torso Section
  //////
  ////
  //
  
  //Beige (All fills from this point on transition to lighter versions of the colour as the mouse reaches 400,400) 
  //Objects infront of the spell get darker instead (Fingers for example)
  fill((mouseX+mouseY)/28.5714+148,(mouseX+mouseY)/16.3265+130,(mouseX+mouseY)/11.42857+95);
  
  //Shoulders
  ellipse(0, 260+(mouseY/20), 170, 170);
  ellipse(400, 260+(mouseY/20), 170, 170);

  //Dark blue
  fill((mouseX+mouseY)/11.9402+23,(mouseX+mouseY)/11.9402+62,(mouseX+mouseY)/16+119);

  //Body
  curve(20, 1465+(mouseY/40), 30, 340+(mouseY/40), 370, 340+(mouseY/40), 380, 1465+(mouseY/40));
  quad(30, 340+(mouseY/40), 370, 340+(mouseY/40), 360, 400+(mouseY/40), 40, 400+(mouseY/40));

  //Faded light gray blue
  fill(194-(mouseX+mouseY)/100,(mouseX+mouseY)/100+204,(mouseX+mouseY)/80+219);
  
  //Lighter vest stripes
  quad(100, 260+(mouseY/40), 130, 230+(mouseY/40), 130, 430+(mouseY/40), 100, 430+(mouseY/40));
  quad(160, 220+(mouseY/40), 190, 220+(mouseY/40), 190, 430+(mouseY/40), 160, 430+(mouseY/40));
  quad(220, 220+(mouseY/40), 250, 220+(mouseY/40), 250, 430+(mouseY/40), 220, 430+(mouseY/40));
  quad(280, 230+(mouseY/40), 310, 295+(mouseY/40), 310, 430+(mouseY/40), 280, 430+(mouseY/40));
  
  //Dark gray blue
  fill((mouseX+mouseY)/12.6984+89,(mouseX+mouseY)/11.4285+104,(mouseX+mouseY)/12.5+126);

  //Darker vest stripes
  quad(80, 320+(mouseY/40), 100, 260+(mouseY/40), 100, 420+(mouseY/40), 95, 420+(mouseY/40));
  rect(130, 230+(mouseY/40), 30, 350+(mouseY/40));
  rect(190, 220+(mouseY/40), 30, 350+(mouseY/40));
  rect(250, 230+(mouseY/40), 30, 350+(mouseY/40));
  quad(310, 295+(mouseY/40), 320, 320+(mouseY/40), 310, 400+(mouseY/40), 310, 400+(mouseY/40));
  //ect(310,300, 20,350);
  
  //Blue
  fill((mouseX+mouseY)/18.60465+27,(mouseX+mouseY)/22.2222+81,(mouseX+mouseY)/40+161);

  //Lapels
  quad(80,320+(mouseY/40), 110,250+(mouseY/40), 40,300+(pmouseY/20), 100,420+(mouseY/40));
  quad(320,320+(mouseY/40), 290,250+(mouseY/40), 360,300+(pmouseY/20), 300,420+(mouseY/40));

  //White cream colour
  fill(232-(mouseX+mouseY)/88.88888,229-(mouseX+mouseY)/800,(mouseX+mouseY)/100+224);

  //Undershirt
  triangle(200, 300+(mouseY/40), 140, 220+(mouseY/40), 260, 220+(mouseY/40));
  //Shirt collar
  ellipse(200, 225+(mouseY/40), 160, 65+(mouseY/40));

  //Near black
  fill(20);

  //Neck hole (Gets taller/shorter to simulate 3D)
  ellipse(200, 225+(mouseY/40), 120, 35+(mouseY/40));

  //White cream colour
  fill(232-(mouseX+mouseY)/88.88888,229-(mouseX+mouseY)/800,(mouseX+mouseY)/100+224);

  //collar front (Places infront of the neck hole)
  //left
  quad(130, 210+(mouseY/40), 170, 230+(mouseY/40), 190, 250+(mouseY/40), 130, 240+(mouseY/40));
  //right
  quad(270, 210+(mouseY/40), 230, 230+(mouseY/40), 210, 250+(mouseY/40), 270, 240+(mouseY/40));

  //Desaturated gold colour
  fill((mouseX+mouseY)/266.666+198,(mouseX+mouseY)/53.333+189,(mouseX+mouseY)/15.6862+113);

  //Buttons
  ellipse(195, 320+(mouseY/40), 30, 30);
  ellipse(195, 380+(mouseY/40), 30, 30);

  
  //Leftbow
  bezier(100, 261.5+(pmouseY/20), 100, 200+(pmouseY/20), 120, 200+(pmouseY/20), 200, 260+(mouseY/40));
  bezier(100, 260+(pmouseY/20), 100, 320+(pmouseY/20), 120, 320+(pmouseY/20), 200, 260+(mouseY/40));
  //Right bow
  bezier(300, 261.5+(pmouseY/20), 300, 200+(pmouseY/20), 280, 200+(pmouseY/20), 200, 260+(mouseY/40));
  bezier(300, 260+(pmouseY/20), 300, 320+(pmouseY/20), 280, 320+(pmouseY/20), 200, 260+(mouseY/40));
  //Edges bounce slightly due to pmouse
  
  //Slightly brighter gold
  fill((mouseX+mouseY)/266.666+205,(mouseX+mouseY)/53.333+196,(mouseX+mouseY)/15.6862+120);
  
  //Bowtie center
  ellipse(200, 260+(mouseY/40), 40, 40);
  

  //
  ////
  //////
  //Head section
  //////
  ////
  //

  //Same colour used by the shoulders
  fill((mouseX+mouseY)/28.5714+148,(mouseX+mouseY)/16.3265+130,(mouseX+mouseY)/11.42857+95);
  
  //Left spikes
  //Top left hairspike
  quad(40, 0-(mouseY/40), 80, 23-(mouseY/40), 120, 30-(mouseY/40), 120, -20-(mouseY/40));
  //Left middle hairspike
  quad(50, 60-(mouseY/40), 90, 37-(mouseY/40), 100, 33-(mouseY/40), 120, 30-(mouseY/40));
  quad(40, 60-(mouseY/40), 120, 30-(mouseY/40), 140, 80-(mouseY/40), 90, 75-(mouseY/40));
  //Left bottom hairspike
  quad(120, 140-(mouseY/40), 125, 105-(mouseY/40), 140, 80-(mouseY/40), 160, 100-(mouseY/40));
  quad(120, 140-(mouseY/40), 140, 80-(mouseY/40), 180, 100-(mouseY/40), 150, 115-(mouseY/40));

  //Right spikes
  //Top right hairspike
  quad(360, 0-(mouseY/40), 320, 23-(mouseY/40), 280, 30-(mouseY/40), 280, -20-(mouseY/40));
  //Left right hairspike
  quad(350, 60-(mouseY/40), 310, 37-(mouseY/40), 300, 33-(mouseY/40), 280, 30-(mouseY/40));
  quad(360, 60-(mouseY/40), 280, 30-(mouseY/40), 260, 80-(mouseY/40), 310, 75-(mouseY/40));
  //Left right hairspike
  quad(280, 140-(mouseY/40), 275, 105-(mouseY/40), 260, 80-(mouseY/40), 240, 100-(mouseY/40));
  quad(280, 140-(mouseY/40), 260, 80-(mouseY/40), 220, 100-(mouseY/40), 250, 115-(mouseY/40));

  //Gray wood
  fill((mouseX+mouseY)/114.28+179,(mouseX+mouseY)/29.629+179,(mouseX+mouseY)/21.0526+177);
  
  //Face
  curve(20, -1125-(mouseY/40), 110, 0-(mouseY/40), 290, 0-(mouseY/40), 380, -1125-(mouseY/40));
  
  //Dark blue (Same as jacket)
  fill((mouseX+mouseY)/11.9402+23,(mouseX+mouseY)/11.9402+62,(mouseX+mouseY)/16+119);
  
  //Hat brim
  //ABS makes it so the brim lowers when in the top left corner
  //Makes Arcanus look like he's looking down
  ellipse(200,-15-(mouseY/40),  360,abs(60-(pmouseY/15-25)));
  
  //
  ////
  //////
  //spell and Hands section
  //////
  ////
  //
  
  //Slightly darker cream white, darkens slightly instead of brightening
  fill(222-(mouseX+mouseY)/44.444,219-(mouseX+mouseY)/53.3333,214-(mouseX+mouseY)/72.72727);
  
  //Wrist
  //Ends off the workspace so there's no shapes hovering off the edge
  quad(48-mouseX/20,340+mouseY/20,  158-mouseX/20,380+mouseY/20,  208-mouseX/20,440+mouseY/20,  -52-mouseX/20,440+mouseY/20);
  //inverted wrist
  quad(352+mouseX/20,340+mouseY/20,  242+mouseX/20,380+mouseY/20,  192+mouseX/20,440+mouseY/20,  452+mouseX/20,440+mouseY/20);
  
  //Brightest finger as it's behind the spell
  fill((mouseX+mouseY)/114.28+179,(mouseX+mouseY)/29.629+179,(mouseX+mouseY)/21.0526+177);
  
  //Thumb
  ellipse(83-mouseX/20,235+mouseY/20,  30,30 );
  //Inverted thumb 
  ellipse(317+mouseX/20,235+mouseY/20,  30,30 );
  
  //I start using kinesiology terms here
  //Distal = Furthest section
  //Intermediate = Middle section
  //Proximal = Closest section
  //Phalange = Finger bone
  
  //Distal thumb
  quad(68.05708-mouseX/20 , 233.69266+mouseY/20,  98.77212-mouseX/20 , 237.60472+mouseY/20,  93-mouseX/20,290+mouseY/20, 63-mouseX/20,290+mouseY/20);
  //Inverted distal thumb
  quad(331.94292+mouseX/20 , 233.69266+mouseY/20,  301.22788+mouseX/20 , 237.60472+mouseY/20,  307+mouseX/20,290+mouseY/20, 337+mouseX/20,290+mouseY/20);
  
  //Slightly darker segment of the thumb
  fill((mouseX+mouseY)/114.28+159,(mouseX+mouseY)/29.629+159,(mouseX+mouseY)/21.0526+157);
  
  //Thumb
  quad(63-mouseX/20,290+mouseY/20,  93-mouseX/20,290+mouseY/20,  108-mouseX/20,320+mouseY/20,  68-mouseX/20,320+mouseY/20);
  //Inverted thumb
  quad(337+mouseX/20,290+mouseY/20,  307+mouseX/20,290+mouseY/20,  292+mouseX/20,320+mouseY/20,  332+mouseX/20,320+mouseY/20);
  
  //Lighter dark blue (Same as lapels)
  fill((mouseX+mouseY)/18.60465+27,(mouseX+mouseY)/22.2222+81,(mouseX+mouseY)/40+161);
  
  //Palm
  bezier(38-mouseX/20, 351+mouseY/20, 48-mouseX/20, 300+mouseY/20, 178-mouseX/20, 300+mouseY/20, 166-mouseX/20, 390.6+mouseY/20);
  bezier(38-mouseX/20, 350+mouseY/20,  38-mouseX/20, 380+mouseY/20, 138-mouseX/20, 410+mouseY/20, 166-mouseX/20, 390+mouseY/20);
  //Inverted palm 
  bezier(362+mouseX/20, 351+mouseY/20, 352+mouseX/20, 300+mouseY/20, 222+mouseX/20, 300+mouseY/20, 234+mouseX/20, 390.6+mouseY/20);
  bezier(362+mouseX/20, 350+mouseY/20,  362+mouseX/20, 380+mouseY/20, 262+mouseX/20, 410+mouseY/20, 234+mouseX/20, 390+mouseY/20);
  
  //
  ////
  //////
  //Spell
  //////
  ////
  //
  
  //Middle pulse large
  strokeWeight(abs((mouseX+mouseY)/53.33+5));
  stroke((mouseX+mouseY)/16.666+115,(mouseX+mouseY)/29.6296+196,(mouseX+mouseY)/40+240,(mouseX+mouseY)/8+60);
  fill(200,240,mouseX/16+230,(mouseX+mouseY)/8+60);
  ellipse(200,200,(mouseX)/3+50,(mouseY)/3+50);
  ellipse(200,200,(mouseX+mouseY)/3+30,(mouseX+mouseY)/3+30);

  //Middle pulse small
  fill((mouseX+mouseY)/2.116+66,(mouseX+mouseY)/6.66+189,255,(mouseX+mouseY)/5+100);
  ellipse(200,200,(mouseX+mouseY)/8+30,(mouseX+mouseY)/8+30);

  //Mouse pulse
  ellipse((mouseX+200)*0.5,(mouseY+200)*0.5,(mouseX+mouseY)/10+10,(mouseX+mouseY)/10+10);
  //Inverted mouse pulse
  ellipse(mouseX+(400-mouseX*2)*0.7,mouseY+(400-mouseY*2)*0.7,(mouseX+mouseY)/10+20,(mouseX+mouseY)/10+20);
  //Switched X/Y to make it perpendicular
  ellipse((mouseY+200)*0.5,(mouseX+200)*0.5,(mouseX+mouseY)/15+10,(mouseX+mouseY)/15+10);
  //Inverted perpendicular pulse
  ellipse(mouseY+(400-mouseY*2)*0.7,mouseX+(400-mouseX*2)*0.7,(mouseX+mouseY)/15+20,(mouseX+mouseY)/15+20);
  
  //Removes the magic stroke effect
  noStroke();
  
  //Gray wood for fingers (All fingers at this point darken)
  fill(179-(mouseX+mouseY)/28.571,179-(mouseX+mouseY)/29.629,177-(mouseX+mouseY)/32);
  
  //Proximal phalange of second finger
  quad(10.712719-mouseX/20 , 303.60364+mouseY/20,  37.990864-mouseX/20 , 295.5235+mouseY/20,  68-mouseX/20,330+mouseY/20,  38-mouseX/20,350+mouseY/20);
  //Inverted proximal phalange of second finger
  quad(389.287281+mouseX/20 , 303.60364+mouseY/20,  362.009136+mouseX/20 , 295.5235+mouseY/20,  332+mouseX/20,330+mouseY/20,  362+mouseX/20,350+mouseY/20);
  
  //Knuckles
  ellipse(58-mouseX/20,350+mouseY/20,  35,35);
  ellipse(103-mouseX/20,370+mouseY/20,  35,35);
  ellipse(148-mouseX/20,380+mouseY/20,  30,30);
  //Inverted knuckles
  ellipse(342+mouseX/20,350+mouseY/20,  35,35);
  ellipse(297+mouseX/20,370+mouseY/20,  35,35);
  ellipse(252+mouseX/20,380+mouseY/20,  30,30);
  
  //Proximal phalanges
  quad(40.765865-mouseX/20 , 353.03885+mouseY/20,  74.44462-mouseX/20 , 344.01465+mouseY/20,  69.44462-mouseX/20 , 335.98535+mouseY/20, 36.55538-mouseX/20 , 335.98535+mouseY/20);
  quad(107.8697-mouseX/20 , 350.9046+mouseY/20,  123.6066-mouseX/20 , 350.6066+mouseY/20,  108.98535-mouseX/20 , 386.4446+mouseY/20,  99.96116-mouseX/20 , 352.76587+mouseY/20);
  quad(157.8697-mouseX/20 , 360.9046+mouseY/20,  170.5-mouseX/20 , 387.9904+mouseY/20,  153.13031-mouseX/20 , 394.0954+mouseY/20,  142.8697-mouseX/20 , 365.9046+mouseY/20);
  //Inverted proximal phalanges
  quad(359.234135+mouseX/20 , 353.03885+mouseY/20,  325.55538+mouseX/20 , 344.01465+mouseY/20,  330.55538+mouseX/20 , 335.98535+mouseY/20, 363.44462+mouseX/20 , 335.98535+mouseY/20);
  quad(292.1303+mouseX/20 , 350.9046+mouseY/20,  276.3934+mouseX/20 , 375.6066+mouseY/20,  291.01465+mouseX/20 , 386.4446+mouseY/20,  300.03884+mouseX/20 , 352.76587+mouseY/20);
  quad(242.1303+mouseX/20 , 360.9046+mouseY/20,  229.5+mouseX/20 , 387.9904+mouseY/20,  246.86969+mouseX/20 , 394.0954+mouseY/20,  257.1303+mouseX/20 , 365.9046+mouseY/20);  
  
  //Darker segment
  fill(164-(mouseX+mouseY)/8.6956,164-(mouseX+mouseY)/9.0909,162-(mouseX+mouseY)/10.2564);
  
  //Second finger tip
  ellipse(48-mouseX/20,200+mouseY/20,  30,30);
  //Inverted second finger tip
  ellipse(352+mouseX/20,200+mouseY/20,  30,30);
  //Distal second finger phalange
  quad(33.90461-mouseX/20 , 194.86969+mouseY/20,  60.99038-mouseX/20 , 207.5+mouseY/20,  42.09539-mouseX/20 , 255.1303+mouseY/20,  15.0096188-mouseX/20 , 242.5+mouseY/20);
  //Inverted distal second finger phalange
  quad(366.09539+mouseX/20 , 194.86969+mouseY/20,  339.00962+mouseX/20 , 207.5+mouseY/20,  357.90461+mouseX/20 , 255.1303+mouseY/20,  384.9903812+mouseX/20 , 242.5+mouseY/20);
  
  //Darkest section of the fingers
  fill(159-(mouseX+mouseY)/8.6956,159-(mouseX+mouseY)/9.0909,157-(mouseX+mouseY)/10.2564);
  
  //Finger tips
  ellipse(113-mouseX/20, 245+mouseY/20 , 30,30);
  ellipse(143-mouseX/20, 275+mouseY/20,  30,30);
  ellipse(188-mouseX/20, 300+mouseY/20,  22.5,22.5);
  //Inverted finger tips
  ellipse(287+mouseX/20, 245+mouseY/20, 30,30);
  ellipse(257+mouseX/20, 275+mouseY/20,  30,30);
  ellipse(212+mouseX/20, 300+mouseY/20,  22.5,22.5);
  
  //Distal phalanges
  quad(101.50933-mouseX/20 , 235.35818+mouseY/20,  125.28728-mouseX/20 , 253.60365+mouseY/20,  97.31122-mouseX/20 , 291.32062+mouseY/20,  71.551777-mouseX/20 , 271.5547+mouseY/20);
  quad(128.22788-mouseX/20 , 272.39526+mouseY/20,  157.09538-mouseX/20 , 280.1303+mouseY/20,  142.09538-mouseX/20 , 325.1303+mouseY/20,  113.22788-mouseX/20 , 317.39526+mouseY/20);
  quad(176.79282-mouseX/20 , 299.0195+mouseY/20,  199.20718-mouseX/20 , 300.9805+mouseY/20,  197.94292-mouseX/20 , 336.30734+mouseY/20,  168.22789-mouseX/20 , 332.39526+mouseY/20);
  //Inverted distal phalanges
  quad(298.49067+mouseX/20 , 235.35818+mouseY/20,  274.71272+mouseX/20 , 253.60365+mouseY/20,  302.68878+mouseX/20 , 291.32062+mouseY/20,  328.448223+mouseX/20 , 271.5547+mouseY/20);
  quad(271.77212+mouseX/20 , 272.39526+mouseY/20,  242.90462+mouseX/20 , 280.1303+mouseY/20,  257.90462+mouseX/20 , 325.1303+mouseY/20,  286.77212+mouseX/20 , 317.39526+mouseY/20);
  quad(223.20718+mouseX/20 , 299.0195+mouseY/20,  200.79282+mouseX/20 , 300.9805+mouseY/20,  202.05708+mouseX/20 , 336.30734+mouseY/20,  231.77211+mouseX/20 , 332.39526+mouseY/20);

  //Brighter finger sections as they aren't directly in the way of the spell's light
  fill(169-(mouseX+mouseY)/13.1147,169-(mouseX+mouseY)/13.5593,167-(mouseX+mouseY)/15.3846);
  
  //First joints
  ellipse(23-mouseX/20,295+mouseY/20,  30,30);
  ellipse(53-mouseX/20,330+mouseY/20,  35,35);
  ellipse(113-mouseX/20,365+mouseY/20,  30,30);
  ellipse(163-mouseX/20,375+mouseY/20,  30,30);
  //Inverted first joints
  ellipse(377+mouseX/20,295+mouseY/20,  30,30);
  ellipse(347+mouseX/20,330+mouseY/20,  35,35);
  ellipse(287+mouseX/20,365+mouseY/20,  30,30);
  ellipse(237+mouseX/20,375+mouseY/20,  30,30);
  
  //Second joints
  ellipse(28-mouseX/20,250+mouseY/20,  30,30);
  ellipse(84-mouseX/20,282+mouseY/20,  32.5,32.5);
  ellipse(128-mouseX/20,320+mouseY/20,  30,30);
  ellipse(183-mouseX/20,335+mouseY/20,  30,30);
  //Inverted second joints
  ellipse(372+mouseX/20,250+mouseY/20,  30,30);
  ellipse(316+mouseX/20,282+mouseY/20,  32.5,32.5);
  ellipse(272+mouseX/20,320+mouseY/20,  30,30);
  ellipse(217+mouseX/20,335+mouseY/20,  30,30);  
  
  //Intermediate phalanges
  quad(13.0570803-mouseX/20 , 251.30734+mouseY/20,  40.99038-mouseX/20 , 257.5+mouseY/20,  38.0-mouseX/20 , 295.0+mouseY/20,  8.2278843-mouseX/20 , 292.39526+mouseY/20);
  quad(69.44462-mouseX/20 , 335.98535+mouseY/20,  37.844555-mouseX/20 , 321.25+mouseY/20,  68.729996-mouseX/20 , 276.44217+mouseY/20,  95.490486-mouseX/20 , 293.49048+mouseY/20);
  quad(113.0-mouseX/20 , 320.0+mouseY/20,  139.49066-mouseX/20 , 329.6418+mouseY/20,  125.99038-mouseX/20 , 372.5+mouseY/20,  98.22788-mouseX/20 , 362.39526+mouseY/20);
  quad(168.0-mouseX/20 , 335.0+mouseY/20,  195.99039-mouseX/20 , 342.5+mouseY/20,  177.09538-mouseX/20 , 380.1303+mouseY/20,  150.71272-mouseX/20 , 366.39636+mouseY/20);
  //Inverted intermediate phalanges
  quad(386.9429197+mouseX/20 , 251.30734+mouseY/20,  359.00962+mouseX/20 , 257.5+mouseY/20,  362+mouseX/20 , 295.0+mouseY/20,  391.7721157+mouseX/20 , 292.39526+mouseY/20);
  quad(330.55538+mouseX/20 , 335.98535+mouseY/20,  362.155445+mouseX/20 , 321.25+mouseY/20,  331.270004+mouseX/20 , 276.44217+mouseY/20,  304.509514+mouseX/20 , 293.49048+mouseY/20);
  quad(287+mouseX/20 , 320.0+mouseY/20,  260.50934+mouseX/20 , 329.6418+mouseY/20,  274.00962+mouseX/20 , 372.5+mouseY/20,  301.77212+mouseX/20 , 362.39526+mouseY/20);
  quad(232+mouseX/20 , 335.0+mouseY/20,  204.00961+mouseX/20 , 342.5+mouseY/20,  222.90462+mouseX/20 , 380.1303+mouseY/20,  249.28728+mouseX/20 , 366.39636+mouseY/20);
}





//This entire section redraws the hands and the spell and applies the spell's max fill and stroke values to them
//It also adds glowing eyes to Arcanus's face
void mousePressed(){
  
  //Allows the frame to persist enough to spam click it but not enough that it causes too much jittering
  frameRate(15);
  
  //Sets the stroke to the spell kind
  strokeWeight((mouseX+mouseY)/150+5);
  stroke((mouseX+mouseY)/16.666+115,(mouseX+mouseY)/29.6296+196,(mouseX+mouseY)/40+240,(mouseX+mouseY)/8+60);
  
  //Bright white-blue
  fill(245,245,255);
  
  //Thumb
  ellipse(83-mouseX/20,235+mouseY/20,  30,30 );
  //Inverted thumb 
  ellipse(317+mouseX/20,235+mouseY/20,  30,30 );
  
  //Distal thumb
  quad(68.05708-mouseX/20 , 233.69266+mouseY/20,  98.77212-mouseX/20 , 237.60472+mouseY/20,  93-mouseX/20,290+mouseY/20, 63-mouseX/20,290+mouseY/20);
  //Inverted distal thumb
  quad(331.94292+mouseX/20 , 233.69266+mouseY/20,  301.22788+mouseX/20 , 237.60472+mouseY/20,  307+mouseX/20,290+mouseY/20, 337+mouseX/20,290+mouseY/20);
  
  //Thumb
  quad(63-mouseX/20,290+mouseY/20,  93-mouseX/20,290+mouseY/20,  108-mouseX/20,320+mouseY/20,  68-mouseX/20,320+mouseY/20);
  //Inverted thumb
  quad(337+mouseX/20,290+mouseY/20,  307+mouseX/20,290+mouseY/20,  292+mouseX/20,320+mouseY/20,  332+mouseX/20,320+mouseY/20);
  
  //Palm
  bezier(38-mouseX/20, 351+mouseY/20, 48-mouseX/20, 300+mouseY/20, 178-mouseX/20, 300+mouseY/20, 166-mouseX/20, 390.6+mouseY/20);
  bezier(38-mouseX/20, 350+mouseY/20,  38-mouseX/20, 380+mouseY/20, 138-mouseX/20, 410+mouseY/20, 166-mouseX/20, 390+mouseY/20);
  //Inverted palm 
  bezier(362+mouseX/20, 351+mouseY/20, 352+mouseX/20, 300+mouseY/20, 222+mouseX/20, 300+mouseY/20, 234+mouseX/20, 390.6+mouseY/20);
  bezier(362+mouseX/20, 350+mouseY/20,  362+mouseX/20, 380+mouseY/20, 262+mouseX/20, 410+mouseY/20, 234+mouseX/20, 390+mouseY/20);
  
  ////
  //magic
  ////
  
  //Middle pulse large
  fill(200,240,255,(mouseX+mouseY)/8+60);
  ellipse(200,200,(mouseX)/3+50,(mouseY)/3+50);
  ellipse(200,200,(mouseX+mouseY)/3+30,(mouseX+mouseY)/3+30);

  //Middle pulse small
  fill(245,245,255);
  ellipse(200,200,(mouseX+mouseY)/8+30,(mouseX+mouseY)/8+30);

  //Mouse pulse
  ellipse((mouseX+200)*0.5,(mouseY+200)*0.5,(mouseX+mouseY)/10+10,(mouseX+mouseY)/10+10);
  ellipse(mouseX+(400-mouseX*2)*0.7,mouseY+(400-mouseY*2)*0.7,(mouseX+mouseY)/10+20,(mouseX+mouseY)/10+20);
  ellipse((mouseY+200)*0.5,(mouseX+200)*0.5,(mouseX+mouseY)/15+10,(mouseX+mouseY)/15+10);
  ellipse(mouseY+(400-mouseY*2)*0.7,mouseX+(400-mouseX*2)*0.7,(mouseX+mouseY)/15+20,(mouseX+mouseY)/15+20);
  
  ////
  //hands glow
  ////
  
  //Proximal phalange of second finger
  quad(10.712719-mouseX/20 , 303.60364+mouseY/20,  37.990864-mouseX/20 , 295.5235+mouseY/20,  68-mouseX/20,330+mouseY/20,  38-mouseX/20,350+mouseY/20);
  //Inverted proximal phalange of second finger
  quad(389.287281+mouseX/20 , 303.60364+mouseY/20,  362.009136+mouseX/20 , 295.5235+mouseY/20,  332+mouseX/20,330+mouseY/20,  362+mouseX/20,350+mouseY/20);
  
  //Knuckles
  ellipse(58-mouseX/20,350+mouseY/20,  35,35);
  ellipse(103-mouseX/20,370+mouseY/20,  35,35);
  ellipse(148-mouseX/20,380+mouseY/20,  30,30);
  //Inverted knuckles
  ellipse(342+mouseX/20,350+mouseY/20,  35,35);
  ellipse(297+mouseX/20,370+mouseY/20,  35,35);
  ellipse(252+mouseX/20,380+mouseY/20,  30,30);
  
  //Proximal phalanges
  quad(40.765865-mouseX/20 , 353.03885+mouseY/20,  74.44462-mouseX/20 , 344.01465+mouseY/20,  69.44462-mouseX/20 , 335.98535+mouseY/20, 36.55538-mouseX/20 , 335.98535+mouseY/20);
  quad(107.8697-mouseX/20 , 350.9046+mouseY/20,  123.6066-mouseX/20 , 350.6066+mouseY/20,  108.98535-mouseX/20 , 386.4446+mouseY/20,  99.96116-mouseX/20 , 352.76587+mouseY/20);
  quad(157.8697-mouseX/20 , 360.9046+mouseY/20,  170.5-mouseX/20 , 387.9904+mouseY/20,  153.13031-mouseX/20 , 394.0954+mouseY/20,  142.8697-mouseX/20 , 365.9046+mouseY/20);
  //Inverted proximal phalanges
  quad(359.234135+mouseX/20 , 353.03885+mouseY/20,  325.55538+mouseX/20 , 344.01465+mouseY/20,  330.55538+mouseX/20 , 335.98535+mouseY/20, 363.44462+mouseX/20 , 335.98535+mouseY/20);
  quad(292.1303+mouseX/20 , 350.9046+mouseY/20,  276.3934+mouseX/20 , 375.6066+mouseY/20,  291.01465+mouseX/20 , 386.4446+mouseY/20,  300.03884+mouseX/20 , 352.76587+mouseY/20);
  quad(242.1303+mouseX/20 , 360.9046+mouseY/20,  229.5+mouseX/20 , 387.9904+mouseY/20,  246.86969+mouseX/20 , 394.0954+mouseY/20,  257.1303+mouseX/20 , 365.9046+mouseY/20);  

  //Second finger tip
  ellipse(48-mouseX/20,200+mouseY/20,  30,30);
  //Inverted second finger tip
  ellipse(352+mouseX/20,200+mouseY/20,  30,30);
  //Distal second finger phalange
  quad(33.90461-mouseX/20 , 194.86969+mouseY/20,  60.99038-mouseX/20 , 207.5+mouseY/20,  42.09539-mouseX/20 , 255.1303+mouseY/20,  15.0096188-mouseX/20 , 242.5+mouseY/20);
  //Inverted distal second finger phalange
  quad(366.09539+mouseX/20 , 194.86969+mouseY/20,  339.00962+mouseX/20 , 207.5+mouseY/20,  357.90461+mouseX/20 , 255.1303+mouseY/20,  384.9903812+mouseX/20 , 242.5+mouseY/20);

  //Finger tips
  ellipse(113-mouseX/20, 245+mouseY/20 , 30,30);
  ellipse(143-mouseX/20, 275+mouseY/20,  30,30);
  ellipse(188-mouseX/20, 300+mouseY/20,  22.5,22.5);
  //Inverted finger tips
  ellipse(287+mouseX/20, 245+mouseY/20, 30,30);
  ellipse(257+mouseX/20, 275+mouseY/20,  30,30);
  ellipse(212+mouseX/20, 300+mouseY/20,  22.5,22.5);
  
  //Distal phalanges
  quad(101.50933-mouseX/20 , 235.35818+mouseY/20,  125.28728-mouseX/20 , 253.60365+mouseY/20,  97.31122-mouseX/20 , 291.32062+mouseY/20,  71.551777-mouseX/20 , 271.5547+mouseY/20);
  quad(128.22788-mouseX/20 , 272.39526+mouseY/20,  157.09538-mouseX/20 , 280.1303+mouseY/20,  142.09538-mouseX/20 , 325.1303+mouseY/20,  113.22788-mouseX/20 , 317.39526+mouseY/20);
  quad(176.79282-mouseX/20 , 299.0195+mouseY/20,  199.20718-mouseX/20 , 300.9805+mouseY/20,  197.94292-mouseX/20 , 336.30734+mouseY/20,  168.22789-mouseX/20 , 332.39526+mouseY/20);
  //Inverted Distal phalanges
  quad(298.49067+mouseX/20 , 235.35818+mouseY/20,  274.71272+mouseX/20 , 253.60365+mouseY/20,  302.68878+mouseX/20 , 291.32062+mouseY/20,  328.448223+mouseX/20 , 271.5547+mouseY/20);
  quad(271.77212+mouseX/20 , 272.39526+mouseY/20,  242.90462+mouseX/20 , 280.1303+mouseY/20,  257.90462+mouseX/20 , 325.1303+mouseY/20,  286.77212+mouseX/20 , 317.39526+mouseY/20);
  quad(223.20718+mouseX/20 , 299.0195+mouseY/20,  200.79282+mouseX/20 , 300.9805+mouseY/20,  202.05708+mouseX/20 , 336.30734+mouseY/20,  231.77211+mouseX/20 , 332.39526+mouseY/20);

  //First joints
  ellipse(23-mouseX/20,295+mouseY/20,  30,30);
  ellipse(53-mouseX/20,330+mouseY/20,  35,35);
  ellipse(113-mouseX/20,365+mouseY/20,  30,30);
  ellipse(163-mouseX/20,375+mouseY/20,  30,30);
  //Inverted first joints
  ellipse(377+mouseX/20,295+mouseY/20,  30,30);
  ellipse(347+mouseX/20,330+mouseY/20,  35,35);
  ellipse(287+mouseX/20,365+mouseY/20,  30,30);
  ellipse(237+mouseX/20,375+mouseY/20,  30,30);
  
  //Second joints
  ellipse(28-mouseX/20,250+mouseY/20,  30,30);
  ellipse(84-mouseX/20,282+mouseY/20,  32.5,32.5);
  ellipse(128-mouseX/20,320+mouseY/20,  30,30);
  ellipse(183-mouseX/20,335+mouseY/20,  30,30);
  //Inverted second joints
  ellipse(372+mouseX/20,250+mouseY/20,  30,30);
  ellipse(316+mouseX/20,282+mouseY/20,  32.5,32.5);
  ellipse(272+mouseX/20,320+mouseY/20,  30,30);
  ellipse(217+mouseX/20,335+mouseY/20,  30,30);  
  
  //Intermediate phalanges
  quad(13.0570803-mouseX/20 , 251.30734+mouseY/20,  40.99038-mouseX/20 , 257.5+mouseY/20,  38.0-mouseX/20 , 295.0+mouseY/20,  8.2278843-mouseX/20 , 292.39526+mouseY/20);
  quad(69.44462-mouseX/20 , 335.98535+mouseY/20,  37.844555-mouseX/20 , 321.25+mouseY/20,  68.729996-mouseX/20 , 276.44217+mouseY/20,  95.490486-mouseX/20 , 293.49048+mouseY/20);
  quad(113.0-mouseX/20 , 320.0+mouseY/20,  139.49066-mouseX/20 , 329.6418+mouseY/20,  125.99038-mouseX/20 , 372.5+mouseY/20,  98.22788-mouseX/20 , 362.39526+mouseY/20);
  quad(168.0-mouseX/20 , 335.0+mouseY/20,  195.99039-mouseX/20 , 342.5+mouseY/20,  177.09538-mouseX/20 , 380.1303+mouseY/20,  150.71272-mouseX/20 , 366.39636+mouseY/20);
  //Inverted intermediate phalanges
  quad(386.9429197+mouseX/20 , 251.30734+mouseY/20,  359.00962+mouseX/20 , 257.5+mouseY/20,  362+mouseX/20 , 295.0+mouseY/20,  391.7721157+mouseX/20 , 292.39526+mouseY/20);
  quad(330.55538+mouseX/20 , 335.98535+mouseY/20,  362.155445+mouseX/20 , 321.25+mouseY/20,  331.270004+mouseX/20 , 276.44217+mouseY/20,  304.509514+mouseX/20 , 293.49048+mouseY/20);
  quad(287+mouseX/20 , 320.0+mouseY/20,  260.50934+mouseX/20 , 329.6418+mouseY/20,  274.00962+mouseX/20 , 372.5+mouseY/20,  301.77212+mouseX/20 , 362.39526+mouseY/20);
  quad(232+mouseX/20 , 335.0+mouseY/20,  204.00961+mouseX/20 , 342.5+mouseY/20,  222.90462+mouseX/20 , 380.1303+mouseY/20,  249.28728+mouseX/20 , 366.39636+mouseY/20);
  
  //Glowing Eyes
  //Left
  bezier(135, abs(40-(mouseY/20)), 145, abs(30-(mouseY/20)), 175, abs(30-(mouseY/20)), 185, abs(40-(mouseY/20)));
  bezier(135, abs(40-(mouseY/20)), 155, abs(70-(mouseY/20)), 175, abs(70-(mouseY/20)), 185, abs(40-(mouseY/20)));
  //Right
  bezier(265, abs(40-(mouseY/20)), 255, abs(30-(mouseY/20)), 225, abs(30-(mouseY/20)), 215, abs(40-(mouseY/20)));
  bezier(265, abs(40-(mouseY/20)), 245, abs(70-(mouseY/20)), 225, abs(70-(mouseY/20)), 215, abs(40-(mouseY/20)));
  
}