summaryrefslogtreecommitdiff
path: root/npc/items/mercenary.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/items/mercenary.txt')
-rw-r--r--npc/items/mercenary.txt46
1 files changed, 46 insertions, 0 deletions
diff --git a/npc/items/mercenary.txt b/npc/items/mercenary.txt
index 15060795d..65ffededd 100644
--- a/npc/items/mercenary.txt
+++ b/npc/items/mercenary.txt
@@ -57,4 +57,50 @@ function script cond_mercboxset {
}
*/
+// Get mercenary ID
+// merc_randid(5★, 4★, 3★, 2★, 1★)
+function script merc_randid {
+ .@s5=getarg(0,0);
+ .@s4=getarg(1,0);
+ .@s3=getarg(2,0);
+ .@s2=getarg(3,0);
+ .@s1=getarg(4,0);
+
+ .@sumup=.@s5+.@s4+.@s3+.@s2+.@s1;
+ /* I wonder if this is needed...?
+ .@s4+=.@s5;
+ .@s3+=.@s4;
+ .@s2+=.@s3;
+ .@s1+=.@s2;
+ */
+
+ // Make the seed. More level and luck increases odds of higher rarity
+ .@seed=max(0, rand(0, .@sumup)-BaseLevel-readparam(bLuk));
+
+ // 5 ★
+ if (.@seed < .@s5) {
+ setarray .@r, 1192, 1191, 1193, 1210;
+ .@n=any_of(.@r);
+ // 4 ★
+ } else if (.@seed < .@s4) {
+ setarray .@r, 1194, 1195, 1209, 1205;
+ .@n=any_of(.@r);
+ // 3 ★
+ } else if (.@seed < .@s3) {
+ setarray .@r, 1196, 1197, 1198, 1208;
+ .@n=any_of(.@r);
+ // 2 ★
+ } else if (.@seed < .@s2) {
+ if (.@mode)
+ setarray .@r, 1200, 1201, 1199, 1207;
+ .@n=any_of(.@r);
+ // 1 ★
+ } else {
+ setarray .@r, 1203, 1204, 1202, 1206;
+ .@n=any_of(.@r);
+ }
+
+ debugmes "Return: %d ([%d, %d, %d])", .@n, .@r[0], .@r[1], .@r[2];
+ return .@n;
+}