createCard({```

name:"ItsDannyBruh",
rarity:"Rare",
health:2000,
image:"https://gamelab.freeflarum.com/assets/files/2024-01-20/1705781861-434554-image.png",
offx: 1,
offy: 0,
description: "Creator of an addicting game called Barricade. Former clout chaser. Also has 2nd most viewed post on forum.",
hpcol: 255,
moves:[{
title:"Clout",
description:"Use random memes on the internet and clout to distract and attack your enemy",
cost:2,
cooldown:1,
use:function(opp) {
Opp.health -= 500;
Var dice = randomNumber(1, 3);
If (dice == 1 || 3){
opp.status.push(“Dumb”);
}
}
},{
title:"Barricader",
description:"Blocks an attack and deflects their attack back to the opponent",
Cost: 7,
Cooldown: 1,
use:function(opp) {
Opp.health -= 9999;
Var dice = randomNumber(1, 5);
If (dice == 1) {
Self.health = 400;
}
}
},{

    ItsDannyBruh Your card cuts off on the third move. Is there supposed to be another one? I'd suggest putting it between triple tick marks: ``` to put it as code.

      Codemon forgot about that here’s third attack

      Bonker Bananas
      Rapidly throws bananas at opponent for 7 seconds.

      a month later

      createCard({
      name:"Phoenix",
      rarity:"Common",
      health:900,
      image:"https://phoenixcreativearts.co.uk/wp-content/uploads/2021/09/ae064181a2f68f13edc5e5d08276f95d_cropped_optimized.jpg",
      offx: 0,
      offy: 0,
      description: "An inactive and inexperienced coder that enjoys gaming.",
      hpcol: (what does this do),
      moves:[{
      title:"Bad Project",
      description:"Create a horribly made project and have the opponent play it, causing them
      to take 50 damage",
      cost:0,
      cooldown:1,
      use:function(opp) {
      // No special effects. Should I make this have a cost of 1?
      }
      },{
      title:"Grade Bragging",
      description:"Brags about good grades dealing 90 damage and making the enemy feel Stupid for 2 turns, but
      causes this card to become Arrogant for 4 turns.",
      cost:3,
      cooldown:2,
      use:function(opp) {
      // I'm not sure if this is how status effects work, but please correct me on them if this isn't how they work.
      }
      },{
      title:"Anger Outburst",
      description:"Quickly builds anger and takes it out on the opponent, dealing 200 damage no matter
      what and makes the opponent Irritable. does 300 damage if this card is Irritable.",
      cost:8,
      cooldown:5,
      use:function(opp) {
      // Plz nerf this if it is too powerful. This is supposed to always deal the set damage, even if
      the opponent has something to reduce or block the damage (Ex.Ravage takes 200 or 300 even if he has
      Impenetrable Vault, ItsDannyBruh would still take 200 damage with Barrier, but I also would (Barrier's ability).
      }
      }],
      });

      For abilities, I would be immune to Tired, but have a 2x weakness to Inactive.

      i made a small change so i could change my font size programmatically.

      // changed drawCard()
      function drawCard(inst,x,y,wid,hig) {
        var p = inst.parent;
        var card = inst.parent.card;
        var rcol = rarityColors[p.rarity];
        //*
        if (p.rarity == "God") {
          colorMode(HSB);
          rcol = color(frameCount*10 % 360,100,100);
        }
        //*/
        card.clear();
        //
        card.noStroke();
        card.fill("#141e1f");
        card.rect(0,0,500,700,30);
        //
        if (p.isEX) {
          card.image(card.buf1,0,0,500,350);
        } else {
          card.image(card.buf1,50,60,400,280);
          card.strokeWeight(5);
          card.stroke(rcol);
          card.noFill();
          card.rect(50,60,400,280,10);
        }
        //
        if (p.isEX) {
          card.stroke(0);
          card.strokeWeight(2);
          card.fill("rgba(0,0,0,0.6)");
          card.textSize(30);
        } else {
          card.stroke(rcol);
          card.strokeWeight(2);
          var nc = color(rcol);
          nc._array[3] = 0.2;
          card.fill(nc);
          card.textSize(30);
        }
        var w = card.textWidth(p.name)+40;
        card.beginShape();
        card.vertex(25,15);
        card.vertex(15,55);
        card.vertex(w,55);
        card.vertex(10+w,15);
        card.endShape(CLOSE);
        //
        card.noStroke();
        card.fill(rcol);
        card.textSize(20);
        w = card.textWidth(p.rarity)+35;
        card.beginShape();
        card.vertex(23,50);
        card.vertex(15,75);
        card.vertex(w,75);
        card.vertex(8+w,50);
        card.endShape(CLOSE);
        //
        card.textSize(30);
        card.textAlign(LEFT,CENTER);
        card.fill(255);
        card.noStroke();
        card.text(p.name,32.5,35);
        card.textSize(20);
        card.fill(0);
        card.text(p.rarity,29,62.5);
        card.textSize(30);
        card.fill(p.hpcol);
        card.textAlign(RIGHT,CENTER);
        card.text(p.health+" DEF",480,35);
        if (inst.health < p.health) {
          card.fill("red");
          card.text((inst.health-p.health)+" HP",480,65);
        }
        //
        card.fill(255);
        card.textAlign(LEFT,TOP);
        card.textSize(19);
        card.text(p.description,20,355,460);
        for (var i = 0; i < p.moves.length; i++) {
          card.textAlign(LEFT,TOP);
          if (p.moves[i].fontSize) {
            card.textSize(p.moves[i].fontSize);
          }
          card.text(p.moves[i].title+":\n"+p.moves[i].description,26,435+85*i,455,75);
          card.textAlign(RIGHT,TOP);
          card.textSize(19);
          card.text(p.moves[i].cost+" ⚛"/*+" "+p.moves[i].cooldown+"❄"*/,26,435+85*i,455,75);
        }
        ///
        card.strokeWeight(5);
        card.stroke(rcol);
        //card.stroke("#00adbc");
        for (var i = 0; i < p.moves.length; i++) {
          var hover = mouseRect2(x,y,wid,hig,500,700,20,430+85*i,460,75);
          if (hover) card.fill("rgba(255,255,255,0.6)");
          else card.noFill();
          card.rect(20,430+85*i,460,75,10);
        }
        ///
        card.noFill();
        card.stroke(rcol);
        card.strokeWeight(10);
        card.rect(5,5,490,690,20);
        ///
        image(card,x,y,wid,hig);
      }
      
      // my actual card
      createCard({
        name:"Blockyheadman",
        rarity:"Legendary",
        health:5600,
        image:"https://avatars.githubusercontent.com/u/80011716?v=4",
        offx: 0,
        offy: 0,
        description: "A random guy who showed up one day and learned programming from nowhere.",
        hpcol: 255,
        moves:[{
          title:"New Project",
          description:"Start yet another project you won't finish, deals 200 ATK over 3 turns",
          cost:2,
          cooldown:2,
          use:function(opp) {
            // Deal 200 ATK over 3 turns.
          }
        },{
          title:"Long Gone",
          description:"I need a break. Avoid attacks for 2 turns.",
          cost:4,
          cooldown:3,
          use:function(opp) {
            // Wait 2 turns here
          }
        },{
          title:"Try a real game engine",
          description:"Use Godot? But I like CDO. Flip a coin. if heads, convert to using Godot and deal 800 ATK. If tails, keep using CDO and deal 200 ATK to the other player and 100 ATK to yourself.",
          fontSize: 14,
          cost:8,
          cooldown:4,
          use:function(opp,self) {
            // Do the damage here
          }
        }],
      });

      Well, I'm a bit busy at the moment but, I do usually get back to projects.

      7 days later

      I implemented the functions for the moves, but I'm having trouble putting in the "Grade Bragging" ability so that the effects are only in play for a specific amount of turns. Also, I'm not sure whether "Bad Project" should cost 1 energy or not. You can choose which one. Also, I want "Anger Outburst" to always deal damage, even if the opponent has something to reduce or block the damage (ex. Ravage's "Impenetrable Vault", Blockyheadman's "Long Gone", or ItsDannyBruh's "Barricader"). I think everything else is good, so can you put it in? Here's the code:

      name: "Phoenix",
      rarity: "Uncommon",
      health: 900,
      image: "https://phoenixcreativearts.co.uk/wp-content/uploads/2021/09/ae064181a2f68f13edc5e5d08276f95d_cropped_optimized.jpg",
      offx: 0,
      offy: 0,
      description: "An inactive and inexperienced coder that enjoys gaming.",
      hpcol: 255,
      moves: [{
      title: "Bad Project",
      description: "Create a horribly made project and have the opponent play it, causing them to take 50 damage",
      cost: 0,
      cooldown: 1,
      use: function (opp) {
      opp.health -= 50;
      }
      },
      {
      title: "Grade Bragging",
      description: "Brags about good grades dealing 90 damage and making the enemy feel Stupid for 2 turns, but causes this card to become Arrogant for 4 turns.",
      cost: 3,
      cooldown: 2,
      use: function (opp, self) {
      opp.health -= 90;
      opp.status = "Stupid";
      self.status = "Arrogant";
      }
      },
      {
      title: "Anger Outburst",
      description: "Quickly builds anger and takes it out on the opponent, dealing 200 damage no matter what and makes the opponent Irritable. Does 400 damage if this card is Irritable.",
      cost: 8,
      cooldown: 5,
      use: function (opp, self) {
      if (self.status === "Irritable") {
      opp.health -= 400;
      } else {
      opp.health -= 200;
      }
      }
      }
      ],
      });```

        Phoenix
        can you surround the code with ```, it makes it easier to copy

        it makes this

          also, can I have an immunity to Stupid, and Tired, but have a 2x weakness to Arrogant and Irritable?

          My card that will probably be one of the most relatable cards:

          createCard({
            name:"Casual CDO Project",
            rarity:"Common",
            health:1000,
            image:"data:image/png;base64,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",
            offx: 0,
            offy: 0,
            description: "A project on the beautiful website that lets many imaginations free onto simple coding blocks for games and projects, but just worse.",
            hpcol: 255,
            moves:[
              {
                title:"Spam Remixes",
              description:"Spam millions of remixes so people don't get the chance to view any other project dealing 25ATK each.",
              cost:1,
              cooldown:0,
              use:function(opp) {
                opp.health -= 25;
              }
            },{  
              title:"Error",
              description:"Create a project and leave an error it, then best of all publish it to your opponent. 200ATK",
              cost:5,
              cooldown:0,
              use:function(opp) {
                opp.health -= 200;
              }
          
            },
            {
              title:"Special - Remix a chat(400ATK)",
              description:"Remix chats and spam skibidi stuff on opponent but 50% chance that it gets reported and doesn't count.",
              cost:7,
              cooldown:0,
              use:function(self,opp,random) {
                random = randomNumber(1,2);
                if (random===1){
                  opp.health -= 400;
                }
              }
            }],
          });

          Many "projects" can be created intentionally.

          In addition, here is another card using myself. I attempted to make the revive function, but I don't really know how the dead cards would work so if there is an error and you need to fix it please correct it or something:

          createCard({
            name:"Yogurt",
            rarity:"Rare",
            health:2050,
            image:"https://gamelab.freeflarum.com/assets/avatars/9L3rpTlDrbWMCEWa.png",
            offx: 50,
            offy: -0.25,
            description: "Creator of Retro Pong. Yeah that's right...that down bad graphic game but one of the best pong projects on CDO.",
            hpcol: 255,
            moves:[{
              title:"Bad Graphics",
              description:"Give your opponent bad horrifying graphics that they scream in terror.(Randomized 300-500ATK)",
              cost:1,
              cooldown:1,
              use:function(opp) {
                opp.health -= randomNumber(300, 500);
              }
            },{
              title:"Eat a tub of yogurt",
              description:"Eat a nutritious tub of yogurt with bluberries and granola, you gain a third of your current health.",
              cost:3,
              cooldown:1,
              use:function(self) {
                self.health += self.health/3;
              }
            },
            {
              title:"Special - Companiant",
              description:"Help back up a random card and revive him with your magical powers.",
              cost:5,
              cooldown:2,
              use:function(revive) {
                revive = selfDefeated[randomNumber(0,selfDefeated.length)];
                revive.health = 1000;
                removeItem(selfDefeated, selfDefeated.length);
                selfHand.push(revive);
                //change this please because I don't know how the dead cards would work XD
              }
            }],
          });
          a month later

          I don't know what to do lol I clicked the link how do I type the code

            Chat