diff --git a/SimplexRPGEngine/Engine source/DragonRise3.project.gmx b/SimplexRPGEngine/Engine source/DragonRise3.project.gmx
index 5a8f95de..70db6420 100644
--- a/SimplexRPGEngine/Engine source/DragonRise3.project.gmx
+++ b/SimplexRPGEngine/Engine source/DragonRise3.project.gmx
@@ -825,6 +825,9 @@
+
+
+
diff --git a/SimplexRPGEngine/Engine source/objects/oArmorMetal.object.gmx b/SimplexRPGEngine/Engine source/objects/oArmorMetal.object.gmx
index 398d9c5e..7fd37daa 100644
--- a/SimplexRPGEngine/Engine source/objects/oArmorMetal.object.gmx
+++ b/SimplexRPGEngine/Engine source/objects/oArmorMetal.object.gmx
@@ -37,8 +37,6 @@ scrItemSetBodyCanvas(2, sBodyCanvasArmor2, sBodyCanvasAttackArmor2);
scrItemSetUpFinalize();
-
-
diff --git a/SimplexRPGEngine/Engine source/objects/oRingGolden.object.gmx b/SimplexRPGEngine/Engine source/objects/oRingGolden.object.gmx
index e2980caf..07f39a03 100644
--- a/SimplexRPGEngine/Engine source/objects/oRingGolden.object.gmx
+++ b/SimplexRPGEngine/Engine source/objects/oRingGolden.object.gmx
@@ -31,10 +31,27 @@ scrItemSetUp(0, 0, itemEnum.itemRingGolden);
scrItemSetProperties(false, "Zlatý prsten", "Prsten vypadá spíš jako nepříliš povedená slitina mědi a stříbra potažená vrstvičkou zlata. Nejspíš výrobek levnější třídy z dílny Nicolase Flamela.", materialEnum.materialNone, "ring", 60, rarity_normal, true, "", c_dkgray, 15, 15, 6);
scrItemSetOptions();
-scrItemSetProperty(vlastnost_max_mana, 12);
-scrItemSetProperty(vlastnost_dustojnost, 1);
-scrItemSetProperty(vlastnost_inteligence, 1);
+scrItemSetRarityDistributionBased(30, 20, 0, 0, 0, 50);
+if (scrItemGetRarity() == rarity_junk)
+ {
+ scrItemSetProperty(vlastnost_max_mana, irandom_range(9, 12));
+ scrItemSetProperty(vlastnost_dustojnost, 1);
+ scrItemSetProperty(vlastnost_inteligence, 1);
+ }
+if (scrItemGetRarity() == rarity_normal)
+ {
+ scrItemSetProperty(vlastnost_max_mana, irandom_range(14, 20));
+ scrItemSetProperty(vlastnost_dustojnost, 1);
+ scrItemSetProperty(vlastnost_inteligence, irandom_range(1, 2));
+ }
+if (scrItemGetRarity() == rarity_legendary)
+ {
+ scrItemSetProperty(vlastnost_max_mana, irandom_range(30, 50));
+ scrItemSetProperty(vlastnost_dustojnost, irandom_range(2, 4));
+ scrItemSetProperty(vlastnost_inteligence, irandom_range(3, 5));
+ scrItemSetProperty(vlastnost_stesti, irandom_range(1, 5));
+ }
scrItemSetUpFinalize();
@@ -64,7 +81,7 @@ if (loot = 0)
{
if (inventoryPickUp())
{
-scrLog("+ Zlatý prsten",c_white,sRingEffect2,1,0.5);
+scrLog("+ Zlatý prsten",c_white,sRingEffect2,true,0.5);
audio_play_sound(sndWeaponPickup,0,0);
}
}
diff --git a/SimplexRPGEngine/Engine source/scripts/scrCraftingDraw.gml b/SimplexRPGEngine/Engine source/scripts/scrCraftingDraw.gml
index e93dccb1..27c35c40 100644
--- a/SimplexRPGEngine/Engine source/scripts/scrCraftingDraw.gml
+++ b/SimplexRPGEngine/Engine source/scripts/scrCraftingDraw.gml
@@ -663,7 +663,7 @@ else
}
}
- // --> Occupied by satan <--
+ // --> Occupied by the devil <--
// Crafting details form (item to craft is selected)
if (craftingSelectedIndex == 4 && craftingHelper == 0 && !craftingDetails)
{
diff --git a/SimplexRPGEngine/Engine source/scripts/scrItemGetRarity.gml b/SimplexRPGEngine/Engine source/scripts/scrItemGetRarity.gml
new file mode 100644
index 00000000..ec1f0252
--- /dev/null
+++ b/SimplexRPGEngine/Engine source/scripts/scrItemGetRarity.gml
@@ -0,0 +1,3 @@
+/// scrItemGetRarity()
+
+return(itm_effect);
diff --git a/SimplexRPGEngine/Engine source/scripts/scrItemSetProperty.gml b/SimplexRPGEngine/Engine source/scripts/scrItemSetProperty.gml
index 706af69c..de6b5bdb 100644
--- a/SimplexRPGEngine/Engine source/scripts/scrItemSetProperty.gml
+++ b/SimplexRPGEngine/Engine source/scripts/scrItemSetProperty.gml
@@ -1,10 +1,13 @@
-/// scrItemSetProperty(index, value)
+/// scrItemSetProperty(index, value, pointsValue)
-var i, v;
+var i, v, p;
i = 0;
v = 1;
+p = 1;
if (argument_count > 0) {i = argument[0];}
if (argument_count > 1) {v = argument[1];}
+if (argument_count > 2) {p = argument[2];}
vlastnost[i] = v;
+points += (v * p);
diff --git a/SimplexRPGEngine/Engine source/scripts/scrItemSetRarityDistributionBased.gml b/SimplexRPGEngine/Engine source/scripts/scrItemSetRarityDistributionBased.gml
new file mode 100644
index 00000000..5d6e837f
--- /dev/null
+++ b/SimplexRPGEngine/Engine source/scripts/scrItemSetRarityDistributionBased.gml
@@ -0,0 +1,39 @@
+/// scrItemSetRarityDistributionBased(junk%, normal%, rare%, fine%, mythic%, legendary%)
+
+var j, n, r, f, u, l, z;
+j = 0;
+n = -1;
+r = -1;
+f = -1;
+u = -1;
+l = -1;
+
+if (argument_count > 0) {j = argument[0];}
+if (argument_count > 1) {n = argument[1];}
+if (argument_count > 2) {r = argument[2];}
+if (argument_count > 3) {f = argument[3];}
+if (argument_count > 4) {u = argument[4];}
+if (argument_count > 5) {l = argument[5];}
+
+// kawaii
+jj = j; nn = n; rr = r; ff = f; uu = u; ll = l;
+
+j = jj;
+n = jj + nn;
+r = jj + nn + rr;
+f = jj + nn + rr + ff;
+u = jj + nn + rr + ff + uu;
+l = jj + nn + rr + ff + uu + ll;
+
+z = random(100);
+
+if (z <= j) {itm_effect = rarity_junk;}
+else if (z > j && z <= n) {itm_effect = rarity_normal;}
+else if (z > n && z <= r) {itm_effect = rarity_rare;}
+else if (z > r && z <= f) {itm_effect = rarity_fine;}
+else if (z > f && z <= u) {itm_effect = rarity_mythic;}
+else if (z > u && z <= l) {itm_effect = rarity_legendary;}
+
+itm_info_color = itm_effect;
+
+
diff --git a/SimplexRPGEngine/Engine source/scripts/scrItemSetRarityPointsBased.gml b/SimplexRPGEngine/Engine source/scripts/scrItemSetRarityPointsBased.gml
new file mode 100644
index 00000000..f288e1f9
--- /dev/null
+++ b/SimplexRPGEngine/Engine source/scripts/scrItemSetRarityPointsBased.gml
@@ -0,0 +1,25 @@
+/// scrItemSetRarityPointsBased(junk, normal, rare, fine, mythic, legendary)
+
+var j, n, r, f, u, l;
+j = 0;
+n = -1;
+r = -1;
+f = -1;
+u = -1;
+l = -1;
+
+if (argument_count > 0) {j = argument[0];}
+if (argument_count > 1) {n = argument[1];}
+if (argument_count > 2) {r = argument[2];}
+if (argument_count > 3) {f = argument[3];}
+if (argument_count > 4) {u = argument[4];}
+if (argument_count > 5) {l = argument[5];}
+
+if (l != -1 && points >= l) {itm_effect = rarity_legendary;}
+else if (u != -1 && points >= u) {itm_effect = rarity_mythic;}
+else if (f != -1 && points >= f) {itm_effect = rarity_fine;}
+else if (r != -1 && points >= r) {itm_effect = rarity_rare;}
+else if (n != -1 && points >= n) {itm_effect = rarity_normal;}
+else {itm_effect = rarity_junk;}
+
+itm_info_color = itm_effect;
diff --git a/SimplexRPGEngine/Engine source/scripts/scrItemSetUp.gml b/SimplexRPGEngine/Engine source/scripts/scrItemSetUp.gml
index ff4aa6bb..f66f5e43 100644
--- a/SimplexRPGEngine/Engine source/scripts/scrItemSetUp.gml
+++ b/SimplexRPGEngine/Engine source/scripts/scrItemSetUp.gml
@@ -6,6 +6,7 @@ show_number = 0;
points = 0;
in = false;
canBeQuickUsed = false;
+points = 0;
if (argument_count > 0) {animate = argument[0];}
if (argument_count > 1) {show_number = argument[1];}
diff --git a/SimplexRPGEngine/Engine source/scripts/scrLog.gml b/SimplexRPGEngine/Engine source/scripts/scrLog.gml
index 1fdd6654..8077a0fd 100644
--- a/SimplexRPGEngine/Engine source/scripts/scrLog.gml
+++ b/SimplexRPGEngine/Engine source/scripts/scrLog.gml
@@ -45,6 +45,21 @@ if (override)
color = c_lime;
break;
}
+ case rarity_legendary:
+ {
+ color = c_yellow;
+ break;
+ }
+ case 6553600:
+ {
+ color = 6553600;
+ break;
+ }
+ case 4980889:
+ {
+ color = 4980889;
+ break;
+ }
}
}