From 8b87c3f5ee3eaba969d2c01041b2177808ef896e Mon Sep 17 00:00:00 2001 From: Kerolos Zaki Date: Mon, 12 Feb 2024 05:24:57 +0200 Subject: [PATCH] feat: show health gain in green --- build/dyn_images.d.ts | 4 +- build/dyn_images.js | 6 +-- build/dyn_images_bg.wasm | Bin 137423 -> 135700 bytes deno.json | 2 +- src/lib.rs | 11 ++++-- test/__snapshots__/hp 10 heal 10.png | Bin 0 -> 371 bytes test/__snapshots__/hp 100 heal 10.png | Bin 0 -> 368 bytes test/__snapshots__/hp 50 heal 1.png | Bin 0 -> 373 bytes test/__snapshots__/hp 50 heal 10.png | Bin 0 -> 374 bytes test/test.ts | 55 +++++++++++++++++++++++++- 10 files changed, 66 insertions(+), 12 deletions(-) create mode 100644 test/__snapshots__/hp 10 heal 10.png create mode 100644 test/__snapshots__/hp 100 heal 10.png create mode 100644 test/__snapshots__/hp 50 heal 1.png create mode 100644 test/__snapshots__/hp 50 heal 10.png diff --git a/build/dyn_images.d.ts b/build/dyn_images.d.ts index 6ba25a6..9a87559 100644 --- a/build/dyn_images.d.ts +++ b/build/dyn_images.d.ts @@ -2,7 +2,7 @@ /* eslint-disable */ /** * @param {number} left -* @param {number} damage +* @param {number} diff * @returns {Uint8Array} */ -export function hp(left: number, damage: number): Uint8Array; +export function hp(left: number, diff: number): Uint8Array; diff --git a/build/dyn_images.js b/build/dyn_images.js index 96d8344..cb83aa1 100644 --- a/build/dyn_images.js +++ b/build/dyn_images.js @@ -48,11 +48,11 @@ function getStringFromWasm0(ptr, len) { } /** * @param {number} left -* @param {number} damage +* @param {number} diff * @returns {Uint8Array} */ -export function hp(left, damage) { - const ret = wasm.hp(left, damage); +export function hp(left, diff) { + const ret = wasm.hp(left, diff); return takeObject(ret); } diff --git a/build/dyn_images_bg.wasm b/build/dyn_images_bg.wasm index 3bb447f33fe6c91e428e2e076d4b9b786eb6dd60..c088f9692f683b612a284b8511d40cd96d6ca5f2 100644 GIT binary patch delta 52316 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 Tv_EhW=mS0r@P6!1)@S?=EL!4u delta 52716 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 diff --git a/deno.json b/deno.json index ca01d49..600ba0c 100644 --- a/deno.json +++ b/deno.json @@ -1,7 +1,7 @@ { "tasks": { "build": "wasm-pack build --target deno --out-dir build", - "watch": "cargo watch -w src/lib.rs -s \"deno task build\"" + "dev": "cargo watch -w src/lib.rs -s \"deno task build\"" }, "fmt": { "useTabs": false, diff --git a/src/lib.rs b/src/lib.rs index c118957..c4fb678 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -13,19 +13,22 @@ use wasm_bindgen::prelude::*; const WHITE: image::Rgba = image::Rgba([255, 255, 255, 255]); const GREY: image::Rgba = image::Rgba([163, 163, 163, 255]); const RED: image::Rgba = image::Rgba([222, 38, 38, 255]); +const GREEN: image::Rgba = image::Rgba([43, 181, 64, 255]); // const BLANK: image::Rgba = image::Rgba([0, 0, 0, 0]); #[wasm_bindgen] -pub fn hp(left: u32, damage: u32) -> js_sys::Uint8Array { +pub fn hp(left: u32, diff: i32) -> js_sys::Uint8Array { console_error_panic_hook::set_once(); - let w: u32 = 350 * u32::max(left, 0) / 100; - let d: u32 = 350 * u32::max(damage, 0) / 100; + let w: u32 = 350 * u32::max(if diff > 0 { left - diff as u32 } else { left }, 0) / 100; + let d: u32 = 350 * u32::max(diff.abs() as u32, 0) / 100; let img = image::RgbaImage::from_fn(350, 15, |x, _| { if (0..w).contains(&x) { WHITE - } else if damage > 0 && (w..w + d + 1).contains(&x) { + } else if diff > 0 && (w..w + d + 1).contains(&x) { + GREEN + } else if diff < 0 && (w..w + d + 1).contains(&x) { RED } else { GREY diff --git a/test/__snapshots__/hp 10 heal 10.png b/test/__snapshots__/hp 10 heal 10.png new file mode 100644 index 0000000000000000000000000000000000000000..f4c323dc11e12424c230ef1a61e1cbafbefa2f49 GIT binary patch literal 371 zcmeAS@N?(olHy`uVBq!ia0y~yV2lH@`8n8t``SLA-SKcOC9VZUzIt5vK2@h>jA8X6v3dbM6v3q*y6{|#S6ccDk}jPC9%sv-XD ROu)co@O1TaS?83{1OUc5xhVhu literal 0 HcmV?d00001 diff --git a/test/__snapshots__/hp 100 heal 10.png b/test/__snapshots__/hp 100 heal 10.png new file mode 100644 index 0000000000000000000000000000000000000000..0171c3b59b99ee13c6bb0f310e22801e4d4893e1 GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0y~yV2lH@`8n8tVN&!ALDCe|FthDx*8fDTY9x#RSQIghW`y;M0cS_@{GActTDf~|C|jB ONd`|>KbLh*2~7Zwp1a2Y literal 0 HcmV?d00001 diff --git a/test/__snapshots__/hp 50 heal 1.png b/test/__snapshots__/hp 50 heal 1.png new file mode 100644 index 0000000000000000000000000000000000000000..b1bc483d04376d035ac434cf5f4a16a7d9f804f2 GIT binary patch literal 373 zcmeAS@N?(olHy`uVBq!ia0y~yV2lH@`8n8tkk|4ejfT=cs2Atci_%ft5yRg_6tn~QL9$})26@B$Np6o?5cmY S)mH+8lfl!~&t;ucLK6UG6xTZd literal 0 HcmV?d00001 diff --git a/test/__snapshots__/hp 50 heal 10.png b/test/__snapshots__/hp 50 heal 10.png new file mode 100644 index 0000000000000000000000000000000000000000..4d8ed3f7709ac7b03dcd368d61a4b8a36fa89bdb GIT binary patch literal 374 zcmeAS@N?(olHy`uVBq!ia0y~yV2lH@`8n8t$9|3Pq`y!-i-9=1 VDx=Dh4Z!eZ@O1TaS?83{1OV#?#&`e# literal 0 HcmV?d00001 diff --git a/test/test.ts b/test/test.ts index 56b4f4f..204edc1 100644 --- a/test/test.ts +++ b/test/test.ts @@ -102,7 +102,7 @@ Deno.test('hp 90 damage 10', async (test) => { join(directory, `__snapshots__/${test.name}.png`), ); - const image = hp(90, 10); + const image = hp(90, -10); if (!existsSync(snapShotPath)) { await Deno.writeFile( @@ -119,7 +119,7 @@ Deno.test('hp 83 damage 17', async (test) => { join(directory, `__snapshots__/${test.name}.png`), ); - const image = hp(83, 17); + const image = hp(83, -17); if (!existsSync(snapShotPath)) { await Deno.writeFile( @@ -136,6 +136,40 @@ Deno.test('hp 50 damage 10', async (test) => { join(directory, `__snapshots__/${test.name}.png`), ); + const image = hp(50, -10); + + if (!existsSync(snapShotPath)) { + await Deno.writeFile( + snapShotPath, + image, + ); + } else { + assertEquals(await compare(snapShotPath, image), 0); + } +}); + +Deno.test('hp 10 heal 10', async (test) => { + const snapShotPath = new URL( + join(directory, `__snapshots__/${test.name}.png`), + ); + + const image = hp(10, 10); + + if (!existsSync(snapShotPath)) { + await Deno.writeFile( + snapShotPath, + image, + ); + } else { + assertEquals(await compare(snapShotPath, image), 0); + } +}); + +Deno.test('hp 50 heal 10', async (test) => { + const snapShotPath = new URL( + join(directory, `__snapshots__/${test.name}.png`), + ); + const image = hp(50, 10); if (!existsSync(snapShotPath)) { @@ -147,3 +181,20 @@ Deno.test('hp 50 damage 10', async (test) => { assertEquals(await compare(snapShotPath, image), 0); } }); + +Deno.test('hp 50 heal 1', async (test) => { + const snapShotPath = new URL( + join(directory, `__snapshots__/${test.name}.png`), + ); + + const image = hp(50, 1); + + if (!existsSync(snapShotPath)) { + await Deno.writeFile( + snapShotPath, + image, + ); + } else { + assertEquals(await compare(snapShotPath, image), 0); + } +});