Created
June 6, 2020 20:47
-
-
Save skidvis/f65a0cf1732fe770b13a36d002493204 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using DSharpPlus.CommandsNext; | |
using DSharpPlus.CommandsNext.Attributes; | |
using SixLabors.Fonts; | |
using SixLabors.ImageSharp; | |
using SixLabors.ImageSharp.Processing; | |
using System; | |
using System.Collections.Generic; | |
using System.Threading.Tasks; | |
using SixLabors.ImageSharp.Drawing.Processing; | |
using System.Globalization; | |
namespace SharkBot.Commands | |
{ | |
public class VoqCommands : BaseCommandModule | |
{ | |
[Command("voq")] | |
public async Task Voq(CommandContext ctx) | |
{ | |
Font font = SystemFonts.CreateFont("Arial", 25); | |
var baddies = new List<string>() {"bat", "boar", "dino", "dragon", "ghost", "giant", "liz", "mimic", "shroom", "slime", "snake"}; | |
var toons = new List<string>(){"bowman", "mage", "paladin", "warrior", "warrior2", "wiz"}; | |
var playerName = ctx.Member.Username; | |
var rnd = new Random(); | |
var opponentName = baddies[rnd.Next(baddies.Count)]; | |
var toonName = toons[rnd.Next(toons.Count)]; | |
var background = Image.Load($"images/voq/sets/{rnd.Next(1,24)}.png"); | |
var badge = Image.Load($"images/voq/badges/badge.png"); | |
bool playerHasWon = rnd.Next(2) == 1; | |
var earnedXp = playerHasWon ? 2 : 1; | |
var playerStatus = playerHasWon ? "win" : "lose"; | |
var opponentStatus = playerHasWon ? "lose" : "win"; | |
var fighters = $"{playerName} VS {opponentName}"; | |
var xpText = $"LVL 1 - XP +{earnedXp}"; | |
var imgPlayer = Image.Load($"images/voq/toons/{toonName}-{playerStatus}.png"); | |
var imgOpponent = Image.Load($"images/voq/bad/{opponentName}-{opponentStatus}.png"); | |
var leftPosition= new Point(x:10, y:(background.Height/2 - imgOpponent.Height/2)); | |
var rightPosition= new Point(x:(background.Width - (imgPlayer.Width + 10)), y:(background.Height/2 - imgPlayer.Height/2)); | |
var badgePosition = new Point(x: (background.Width / 2 - badge.Width / 2), y: (background.Height - (badge.Height + 5))); | |
var textPosition = new Point(x: badgePosition.X+10, badgePosition.Y+10); | |
var clone = background.Clone(ipc => | |
{ | |
ipc.DrawImage(imgOpponent, leftPosition, 1); | |
ipc.DrawImage(imgPlayer, rightPosition, 1); | |
ipc.RotateFlip(RotateMode.None, FlipMode.Horizontal); | |
ipc.DrawImage(badge, badgePosition, 1); | |
ipc.DrawText($"{fighters}\n{xpText}\n{playerName} {playerStatus}s", font, Color.Black, textPosition); | |
}); | |
var outputFile = $"images/fights/voq.png"; | |
clone.Save(outputFile); | |
await ctx.Channel.SendFileAsync(outputFile); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment