let W = window.innerWidth; let H = window.innerHeight; const canvas = document.getElementById("canvas"); const context = canvas.getContext("2d"); const maxConfettis = 150; const particles = []; const possibleColors = [ "DodgerBlue", "OliveDrab", "Gold", "Pink", "SlateBlue", "LightBlue", "Gold", "Violet", "PaleGreen", "SteelBlue", "SandyBrown", "Chocolate", "Crimson" ]; function randomFromTo(from, to) { return Math.floor(Math.random() * (to - from + 1) + from); } function confettiParticle() { this.x = Math.random() * W; // x this.y = Math.random() * H - H; // y this.r = randomFromTo(11, 33); // radius this.d = Math.random() * maxConfettis + 11; this.color = possibleColors[Math.floor(Math.random() * possibleColors.length)]; this.tilt = Math.floor(Math.random() * 33) - 11; this.tiltAngleIncremental = Math.random() * 0.07 + 0.05; this.tiltAngle = 0; this.draw = function() { context.beginPath(); context.lineWidth = this.r / 2; context.strokeStyle = this.color; context.moveTo(this.x + this.tilt + this.r / 3, this.y); context.lineTo(this.x + this.tilt, this.y + this.tilt + this.r / 5); return context.stroke(); }; } function Draw() { const results = []; // Magical recursive functional love requestAnimationFrame(Draw); context.clearRect(0, 0, W, window.innerHeight); for (var i = 0; i < maxConfettis; i++) { results.push(particles[i].draw()); } let particle = {}; let remainingFlakes = 0; for (var i = 0; i < maxConfettis; i++) { particle = particles[i]; particle.tiltAngle += particle.tiltAngleIncremental; particle.y += (Math.cos(particle.d) + 3 + particle.r / 2) / 2; particle.tilt = Math.sin(particle.tiltAngle - i / 3) * 15; if (particle.y <= H) remainingFlakes++; // If a confetti has fluttered out of view, // bring it back to above the viewport and let if re-fall. if (particle.x > W + 30 || particle.x < -30 || particle.y > H) { particle.x = Math.random() * W; particle.y = -30; particle.tilt = Math.floor(Math.random() * 10) - 20; } } return results; } window.addEventListener( "resize", function() { W = window.innerWidth; H = window.innerHeight; canvas.width = window.innerWidth; canvas.height = window.innerHeight; }, false ); // Push new confetti objects to `particles[]` for (var i = 0; i < maxConfettis; i++) { particles.push(new confettiParticle()); } // Initialize canvas.width = W; canvas.height = H; Draw();
top of page

The Original "Collecting, Researching & Adventure" Free Company of Mateus:
 

HAPPY 9th ANNIVERSARY!

Server:
Mateus, Crystal Data Center

Timezone: 
Central Standard (CST)
 
Active Times:
Most Active: 3:00 pm (15:00) -1 am (1:00)

Founded 08/18/2016
======================

We accept members of
most ages -- please note however that there are adult themes, such as violence, sex, drugs, and difficult situations.
In-Character Alignment:
We accept ALL alignments. Oh yes. Even evil.
Role-play Hooks:
Adult Themes, Adventure, Aetherology, Alchemy, Archaeology, Artisans, Botany, Bounty Hunting, Business, Crime, Entertainers, Espionage, Exploration, Geology, Investigation, Metalworking, Monster Hunting, Physicians, Plot Driven, Research, Slice-of-Life, Spellsmithing, Story-Focused, Technology, Theology, Treasure Hunting, Voidsent, Zoology
  • Active Daily

  • Lore-Friendly Roleplay 

  • Bar Nights

  • Holiday Events

  • Midcore PvE

  • Hangout Nights for chilling & patch days

  • The first ever TTRPG RP system on Mateus

  • Chill Vibes, Understanding Friends, & Places to Vent

  • Support Systems in and out of game

  • Anti-Clique means nobody gets left out (No secret spots where people can exclude others.)

  • Transparent Staff (if it's important, we let people know instead of making huge decisions behind a curtain.)

  • Midcore Raiding & Content Nights (that aren't just map nights)

  • Built with our own hands: Everything we are, we actually  put the work into.

  • Vacation Mode for IRL Breaks (because you should be able take breaks to take care of yourself.)

COMET of Mateus:

cometlogo.png
Headquarters:
Plot 34, Ward 4 -- The Mist

Check it out! We made the Spring 2022 Edition of "The Scratching Post"!

Big thanks to Zasheida Vigilant for taking the time to interview, and to Blazing Firecats for such a cool publication!

Notice: 
Hatred of any sort will NOT be tolerated. In this house, we punch Nazis.

bottom of page