Code Sketch
biixxx
Category: Programming
cleari()
originBottomLeft()
// ============================================================
// THE STRANGER MISSION - VERY VERY HARD CORE EDITION
// INDIAN FORCE SPECIAL OP | DANGEROUS ANIME MONSTER BATTLES
// ============================================================
var screen = 0
var selectedAvatar = 0 // 1: Yoiii, 2: Bixuu, 3: Sniper, 4: DJ Alok
var playerX = 150.0
var playerHealth = 100
var currentLevel = 1
var targetsDestroyed = 0
var battleMessage = "WARNING: Monsters are extremely aggressive!"
// ============================================================
// COLORS
// ============================================================
val BLACK = Color(0, 0, 0)
val WHITE = Color(255, 255, 255)
val RED = Color(220, 40, 40)
val GREEN = Color(0, 170, 70)
val BLUE = Color(40, 100, 210)
val LIGHTBLUE = Color(155, 220, 255)
val DARKBLUE = Color(25, 45, 80)
val GREY = Color(150, 150, 150)
val DARKGREY = Color(65, 65, 65)
val YELLOW = Color(255, 215, 50)
val CREAM = Color(250, 242, 220)
val ORANGE = Color(255, 120, 0)
val CYAN = Color(0, 220, 220)
val PURPLE = Color(140, 50, 180)
// ============================================================
// BUTTON HELPER
// ============================================================
def button(
c: CanvasDraw,
x: Double,
y: Double,
w: Double,
h: Double,
label: String,
color: Color) {
c.fill(color)
c.stroke(BLACK)
c.strokeWeight(2)
c.rect(x, y, w, h)
c.fill(WHITE)
c.text(label, x + 10, y + 15)
}
// ============================================================
// HEADER HELPER
// ============================================================
def header(c: CanvasDraw, title: String) {
c.fill(DARKBLUE)
c.rect(0, cheight - 75, cwidth, 75)
c.fill(WHITE)
c.text(title, 35, cheight - 48)
}
// ============================================================
// SCREEN 0: SECRET MISSION LETTER (ENGLISH)
// ============================================================
def secretLetterScreen(c: CanvasDraw) {
c.fill(CREAM)
c.rect(0, 0, cwidth, cheight)
header(c, "INDIAN FORCE - TOP SECRET MISSION (HARD MODE)")
c.fill(WHITE)
c.stroke(BLACK)
c.strokeWeight(3)
c.rect(100, 130, 800, 390)
c.fill(BLACK)
c.text("FROM: INDIAN FORCE COMMAND", 140, 465)
c.text("SUBJECT: THE STRANGER MISSION", 140, 425)
c.text("You have been assigned 'The Stranger Mission'.", 140, 365)
c.text("This mission was secretly created by the Indian Force.", 140, 325)
c.text("Warning: Anime monsters will counter-attack fiercely when hit!", 140, 285)
c.text("Survive all 3 brutal levels to complete the mission.", 140, 245)
c.text("Use On-Screen Buttons to Fight!", 140, 185)
button(c, 350, 50, 300, 60, "PROCEED TO AVATARS", RED)
}
// ============================================================
// SCREEN 1: AVATAR SELECTION
// ============================================================
def avatarSelectionScreen(c: CanvasDraw) {
c.fill(DARKBLUE)
c.rect(0, 0, cwidth, cheight)
header(c, "SELECT YOUR HERO FOR HARD SURVIVAL")
button(c, 70, 260, 190, 120, "1. Yoiii\n(Fire Power ?)", ORANGE)
button(c, 280, 260, 190, 120, "2. Bixuu\n(Water Power ?)", BLUE)
button(c, 490, 260, 190, 120, "3. Sniper\n(Air Power ??)", CYAN)
button(c, 700, 260, 190, 120, "4. DJ ALOK\n(Electric ?)", YELLOW)
c.fill(WHITE)
c.text("Select your Hero carefully! Monsters are very powerful.", 250, 420)
}
// ============================================================
// SCREEN 2, 3, 4: GAME LEVELS (1, 2, 3)
// ============================================================
def gameLevelScreen(c: CanvasDraw) {
c.fill(LIGHTBLUE)
c.rect(0, 0, cwidth, cheight)
// Ground
c.fill(GREEN)
c.rect(0, 0, cwidth, 140)
header(c, "LEVEL " + currentLevel + " - EXTREME BATTLE ZONE")
// Health Bar & Stats
c.fill(WHITE)
c.stroke(BLACK)
c.strokeWeight(2)
c.rect(30, cheight - 130, 240, 40)
c.fill(RED)
c.rect(35, cheight - 122, playerHealth * 2.1, 24)
c.fill(BLACK)
c.text("HEALTH: " + playerHealth + "%", 45, cheight - 105)
c.text("Hits: " + targetsDestroyed, 290, cheight - 105)
// Avatar Details & Colors
var avatarColor = RED
var avatarName = "Hero"
if (selectedAvatar == 1) { avatarColor = ORANGE; avatarName = "YOIII (Fire)"; }
else if (selectedAvatar == 2) { avatarColor = BLUE; avatarName = "BIXUU (Water)"; }
else if (selectedAvatar == 3) { avatarColor = CYAN; avatarName = "SNIPER (Air)"; }
else if (selectedAvatar == 4) { avatarColor = YELLOW; avatarName = "DJ ALOK (Electric)"; }
// Draw Player Avatar
c.fill(avatarColor)
c.stroke(BLACK)
c.strokeWeight(3)
c.rect(playerX, 140, 50, 70)
c.fill(WHITE)
c.ellipse(playerX + 25, 230, 35, 35)
// Explicitly Show Avatar Name on Screen
c.fill(BLACK)
c.text(">>> " + avatarName + " <<<", playerX - 25, 265)
// Draw Anime Monsters (Level 1: 1, Level 2: 2, Level 3: 3)
var monsterCount = 1
if (currentLevel == 2) monsterCount = 2
else if (currentLevel == 3) monsterCount = 3
var i = 0
while (i < monsterCount) {
var mx = 580.0 + (i * 110)
c.fill(PURPLE)
c.stroke(BLACK)
c.rect(mx, 140 + (i * 10), 55, 80)
c.fill(RED)
c.ellipse(mx + 27, 240 + (i * 10), 40, 40)
c.fill(WHITE)
c.text("Monster " + (i + 1), mx + 2, 170)
i = i + 1
}
// Battle Action Message
c.fill(DARKBLUE)
c.text(battleMessage, 240, cheight - 40)
// Required targets for current level
var targetGoal = 10
if (currentLevel == 2) targetGoal = 15
else if (currentLevel == 3) targetGoal = 20
// Action Control Buttons
button(c, 20, 15, 95, 45, "< LEFT", BLUE)
button(c, 125, 15, 95, 45, "RIGHT >", BLUE)
button(c, 230, 15, 130, 45, "ATTACK ??", RED)
button(c, 370, 15, 150, 45, "SUPER POWER ?", YELLOW)
// Level Progression Check
if (targetsDestroyed >= targetGoal) {
if (currentLevel < 3) {
currentLevel = currentLevel + 1
targetsDestroyed = 0
playerHealth = 100 // Heal slightly on level up
battleMessage = "Level Cleared! Next Level Unlocked!"
} else {
screen = 5 // Victory & Thank you letter
}
}
// Game Over Check
if (playerHealth <= 0) {
screen = 6 // Game Over Screen
}
}
// ============================================================
// SCREEN 5: THANK YOU LETTER (VICTORY)
// ============================================================
def finalThankYouScreen(c: CanvasDraw) {
c.fill(DARKBLUE)
c.rect(0, 0, cwidth, cheight)
c.fill(WHITE)
c.stroke(BLACK)
c.strokeWeight(3)
c.rect(100, 90, 800, 440)
c.fill(BLACK)
c.text("OFFICIAL THANK YOU LETTER - THE STRANGER MISSION", 170, 480)
c.text("Dear Hero,", 130, 420)
c.text("You survived the brutal attacks and defeated all anime monsters.", 130, 370)
c.text("The Indian Force salutes your extreme courage and power usage.", 130, 320)
c.text("Thank you for successfully completing the hardest mission!", 130, 270)
c.text("Mission Status: HARD MODE VICTORY 100%", 130, 210)
button(c, 360, 25, 280, 50, "PLAY AGAIN", GREEN)
}
// ============================================================
// SCREEN 6: GAME OVER SCREEN
// ============================================================
def gameOverScreen(c: CanvasDraw) {
c.fill(BLACK)
c.rect(0, 0, cwidth, cheight)
c.fill(RED)
c.text("GAME OVER! MONSTERS DESTROYED YOU!", 250, 350)
c.fill(WHITE)
c.text("Your health dropped to 0% in Hard Mode! Try again!", 250, 290)
button(c, 360, 150, 280, 50, "RETRY MISSION", GREEN)
}
// ============================================================
// MAIN ANIMATION LOOP
// ============================================================
animateWithCanvasDraw { c =>
if (screen == 0) {
secretLetterScreen(c)
} else if (screen == 1) {
avatarSelectionScreen(c)
} else if (screen == 2 || screen == 3 || screen == 4) {
gameLevelScreen(c)
} else if (screen == 5) {
finalThankYouScreen(c)
} else if (screen == 6) {
gameOverScreen(c)
}
}
// ============================================================
// MOUSE CONTROLS (Interactive Gameplay)
// ============================================================
onMouseClick { (x, y) =>
if (screen == 0) {
if (x > 350 && x < 650 && y > 50 && y < 110) {
screen = 1
}
} else if (screen == 1) {
// Select Avatar 1 (Yoiii)
if (x > 70 && x < 260 && y > 260 && y < 380) {
selectedAvatar = 1; currentLevel = 1; targetsDestroyed = 0; playerHealth = 100; screen = 2;
}
// Select Avatar 2 (Bixuu)
else if (x > 280 && x < 470 && y > 260 && y < 380) {
selectedAvatar = 2; currentLevel = 1; targetsDestroyed = 0; playerHealth = 100; screen = 2;
}
// Select Avatar 3 (Sniper)
else if (x > 490 && x < 680 && y > 260 && y < 380) {
selectedAvatar = 3; currentLevel = 1; targetsDestroyed = 0; playerHealth = 100; screen = 2;
}
// Select Avatar 4 (DJ Alok)
else if (x > 700 && x < 890 && y > 260 && y < 380) {
selectedAvatar = 4; currentLevel = 1; targetsDestroyed = 0; playerHealth = 100; screen = 2;
}
} else if (screen == 2 || screen == 3 || screen == 4) {
// LEFT button
if (x > 20 && x < 115 && y > 15 && y < 60) {
if (playerX > 20) { playerX = playerX - 25; }
battleMessage = "Dodged left! Watch out for monster attacks!"
}
// RIGHT button
else if (x > 125 && x < 220 && y > 15 && y < 60) {
playerX = playerX + 25;
battleMessage = "Moved right towards monsters!"
}
// ATTACK button (Very Hard: Monster retaliates heavily with -20 Health)
else if (x > 230 && x < 360 && y > 15 && y < 60) {
targetsDestroyed = targetsDestroyed + 1;
playerHealth = playerHealth - 20;
battleMessage = "You attacked! Anime Monster counter-attacked (-20 Health!)"
}
// SUPER POWER button (Deals 3 hits, but monster still hurts you by -10 Health)
else if (x > 370 && x < 520 && y > 15 && y < 60) {
targetsDestroyed = targetsDestroyed + 3;
playerHealth = playerHealth - 10;
battleMessage = "SUPER POWER USED! Monster retaliated with dark energy (-10 Health!)"
}
} else if (screen == 5 || screen == 6) {
// Restart / Play Again button
if (x > 360 && x < 640 && (y > 25 && y < 75 || y > 150 && y < 200)) {
screen = 0
selectedAvatar = 0
playerX = 150.0
targetsDestroyed = 0
currentLevel = 1
playerHealth = 100
battleMessage = "Extreme Battle Started!"
}
}
}