Allow script arrays to hold any value type, add script engine tests, archive old rpg code

Remove the per-array type category so arrays can mix types like structs.
Add 13 passing and 125 expected-failure duskscript test fixtures with a
table-driven runner. Also includes the in-progress entity/physics and
archive moves from the working tree.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
This commit is contained in:
YourWishesandClaude Sonnet 5.5 committed 2026-10-14 23:25:26 -05:00
1 parent 5c259e46e2
commit f6b884bf7f
710 files changed
+6172 -27594

No files matched your search

+83
View File
@@ -0,0 +1,83 @@
assert(abs(-5) == 5);
assert(abs(5) == 5);
assert(abs(0) == 0);
assert(abs(-2.5) == 2.5);
assert(sign(-9) == -1);
assert(sign(9) == 1);
assert(sign(0) == 0);
assert(sign(-0.1) == -1);
assert(min(1, 2) == 1);
assert(min(2, 1) == 1);
assert(min(-1, 1) == -1);
assert(min(3, 3) == 3);
assert(max(1, 2) == 2);
assert(max(2, 1) == 2);
assert(max(-1, -2) == -1);
assert(clamp(5, 0, 10) == 5);
assert(clamp(-5, 0, 10) == 0);
assert(clamp(50, 0, 10) == 10);
assert(clamp(0, 0, 10) == 0);
assert(clamp(10, 0, 10) == 10);
assert(pow(2, 0) == 1);
assert(pow(2, 1) == 2);
assert(pow(2, 10) == 1024);
assert(pow(3, 3) == 27);
assert(pow(-2, 3) == -8);
assert(pow(0, 0) == 1);
assert(pow(1.5, 2) == 2.25);
assert(pow(2, -1) == 0.5);
assert(floor(3.7) == 3);
assert(floor(3) == 3);
assert(floor(-3.2) == -4);
assert(ceil(3.2) == 4);
assert(ceil(3) == 3);
assert(ceil(-3.7) == -3);
assert(round(3.4) == 3);
assert(round(3.6) == 4);
assert(round(-3.4) == -3);
assert(round(-3.6) == -4);
assert(round(2.5) == 3);
assert(sqrt(16) == 4);
assert(sqrt(0) == 0);
assert(sqrt(2.25) == 1.5);
assert(abs(sin(0)) < 0.0001);
assert(abs(cos(0) - 1) < 0.0001);
assert(abs(tan(0)) < 0.0001);
assert(abs(sin(PI / 2) - 1) < 0.0001);
assert(abs(cos(PI) + 1) < 0.0001);
assert(abs(atan2(1, 1) - PI / 4) < 0.0001);
assert(abs(PI - 3.14159) < 0.0001);
// Random numbers stay in range
for(var i = 0; i < 200; i++) {
var r = rand(5, 10);
assert(r >= 5 && r < 10);
assert(r == floor(r));
var f = randf(0, 1);
assert(f >= 0 && f <= 1);
}
assert(rand(3, 4) == 3);
// The same seed gives the same numbers
randseed(1234);
var seedA = [rand(0, 1000), rand(0, 1000), rand(0, 1000)];
randseed(1234);
var seedB = [rand(0, 1000), rand(0, 1000), rand(0, 1000)];
assert(deepequal(seedA, seedB));
randseed(0);
var zeroSeeded = rand(0, 1000);
assert(zeroSeeded >= 0 && zeroSeeded < 1000);
// Shuffle keeps every element
var deck = [1, 2, 3, 4, 5, 6, 7, 8];
shuffle(deck);
assert(len(deck) == 8);
var sum = 0;
foreach(var card : deck) sum += card;
assert(sum == 36);