// ==UserScript==
// @name Base Zones
// @description made with much love
// @version 0.0.10
// @author Cazka#1820
// @match *://diep.io/*
// @grant none
// @require https://greasyfork.org/scripts/433681-diepapi/code/diepAPI.js?version=1117485
// @namespace https://greasyfork.org/users/541070
// ==/UserScript==
'use strict';
const { Vector } = window.diepAPI.core;
const { scaling, player, game } = window.diepAPI.apis;
const { backgroundOverlay } = window.diepAPI.tools;
const ctx = backgroundOverlay.ctx;
// Bases (width = 67 * 50)
const blue_base = new Vector(-11150 + 1675, -11150 + 1675);
const purple_base = new Vector(11150 - 1675, -11150 + 1675);
const green_base = new Vector(-11150 + 1675, 11150 - 1675);
const red_base = new Vector(11150 - 1675, 11150 - 1675);
// Base Drones
const danger_radius = new Vector(5250, 0);
const attack_radius = new Vector(3800, 0);
function drawZones() {
ctx.save();
ctx.globalAlpha = 0.08;
if (player.gamemode === '4teams') {
let center;
const radius1 = scaling.toCanvasUnits(danger_radius).x;
const radius2 = scaling.toCanvasUnits(attack_radius).x;
//blue
center = scaling.toCanvasPos(blue_base);
ctx.fillStyle = '#006480';
ctx.beginPath();
ctx.arc(center.x, center.y, radius1, 0, 2 * Math.PI);
ctx.fill();
ctx.fillStyle = '#ff6480';
ctx.beginPath();
ctx.arc(center.x, center.y, radius2, 0, 2 * Math.PI);
ctx.fill();
//purple
center = scaling.toCanvasPos(purple_base);
ctx.fillStyle = '#644280';
ctx.beginPath();
ctx.arc(center.x, center.y, radius1, 0, 2 * Math.PI);
ctx.fill();
ctx.fillStyle = '#ff4280';
ctx.beginPath();
ctx.arc(center.x, center.y, radius2, 0, 2 * Math.PI);
ctx.fill();
//green
center = scaling.toCanvasPos(green_base);
ctx.fillStyle = '#00803e';
ctx.beginPath();
ctx.arc(center.x, center.y, radius1, 0, 2 * Math.PI);
ctx.fill();
ctx.fillStyle = '#ff803e';
ctx.beginPath();
ctx.arc(center.x, center.y, radius2, 0, 2 * Math.PI);
ctx.fill();
//red
center = scaling.toCanvasPos(red_base);
ctx.fillStyle = '#963033';
ctx.beginPath();
ctx.arc(center.x, center.y, radius1, 0, 2 * Math.PI);
ctx.fill();
ctx.fillStyle = '#ff3033';
ctx.beginPath();
ctx.arc(center.x, center.y, radius2, 0, 2 * Math.PI);
ctx.fill();
} else if (player.gamemode === 'teams') {
let coords1;
let coords2;
//blue
coords1 = scaling.toCanvasPos(new Vector(-11150, -11150));
coords2 = scaling.toCanvasPos(new Vector(-11150 + 5500, 11150));
ctx.fillStyle = '#006480';
ctx.fillRect(coords1.x, coords1.y, coords2.x - coords1.x, coords2.y - coords1.y);
coords2 = scaling.toCanvasPos(new Vector(-11150 + 4150, 11150));
ctx.fillStyle = '#ff6480';
ctx.fillRect(coords1.x, coords1.y, coords2.x - coords1.x, coords2.y - coords1.y);
//red
coords1 = scaling.toCanvasPos(new Vector(11150, -11150));
coords2 = scaling.toCanvasPos(new Vector(11150 - 5500, 11150));
ctx.fillStyle = '#963033';
ctx.fillRect(coords1.x, coords1.y, coords2.x - coords1.x, coords2.y - coords1.y);
coords2 = scaling.toCanvasPos(new Vector(11150 - 4150, 11150));
ctx.fillStyle = '#ff3033';
ctx.fillRect(coords1.x, coords1.y, coords2.x - coords1.x, coords2.y - coords1.y);
}
//pentagon nest
let coords1;
let coords2;
coords1 = scaling.toCanvasPos(new Vector(-1115, -1115));
coords2 = scaling.toCanvasPos(new Vector(1115, 1115));
ctx.fillStyle = '#8aff69';
ctx.fillRect(coords1.x, coords1.y, coords2.x - coords1.x, coords2.y - coords1.y);
ctx.restore();
}
game.once('ready', () => {
game.on('frame', () => {
drawZones();
});
});