Skip to content

Commit ab097f2

Browse files
committed
Monster Starting Exp Type Change
1 parent e7c05b3 commit ab097f2

File tree

5 files changed

+29
-21
lines changed

5 files changed

+29
-21
lines changed

Zolian.Server.Base/Common/Generator.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ namespace Darkages.Common;
66
public static class Generator
77
{
88
public static int GenerateDeterminedNumberRange(int min, int max) => Random.Shared.Next(min, max + 1);
9+
public static long GenerateDeterminedLargeNumberRange(long min, long max) => Random.Shared.NextInt64(min, max + 1);
910

1011
public static int GenerateMapLocation(int rowCol) => RandomNumberGenerator.GetInt32(rowCol + 1);
1112

Zolian.Server.Base/GameScripts/Creations/CreateMonster.cs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ private static void AdjustOnArmorType(Monster obj)
413413

414414
private static void MonsterExperience(Monster obj)
415415
{
416-
var levelExperienceRange = new SortedDictionary<int, (int start, int end)>
416+
var levelExperienceRange = new SortedDictionary<long, (long start, long end)>
417417
{
418418
{ 3, (200, 600) },
419419
{ 7, (600, 1500) },
@@ -452,8 +452,8 @@ private static void MonsterExperience(Monster obj)
452452
{ 200, (3500000, 3899999) }
453453
};
454454

455-
const int startLevel = 200;
456-
const int endLevel = 1000;
455+
const long startLevel = 200;
456+
const long endLevel = 1000;
457457
// ToDo: Increment this in the future if higher levels need more experience
458458
var stepSize = 5;
459459

@@ -466,10 +466,17 @@ private static void MonsterExperience(Monster obj)
466466
}
467467

468468
var (start, end) = levelExperienceRange.First(x => obj.Template.Level <= x.Key).Value;
469-
var minXp = (int)(start * 0.9);
470-
var maxXp = (int)(end * 1.1);
469+
var minXp = (long)(start * 0.9);
470+
var maxXp = (long)(end * 1.1);
471471

472-
obj.Experience = (uint)Generator.GenerateDeterminedNumberRange(minXp, maxXp);
472+
obj.Experience = Generator.GenerateDeterminedLargeNumberRange(minXp, maxXp);
473+
}
474+
475+
private static (long, long) IncrementByFivePercent((long, long) prevValues)
476+
{
477+
var newValue1 = (long)(prevValues.Item1 * 1.05);
478+
var newValue2 = (long)(prevValues.Item2 * 1.05);
479+
return (newValue1, newValue2);
473480
}
474481

475482
private static (int, int) IncrementByFivePercent((int, int) prevValues)

Zolian.Server.Base/GameScripts/Formulas/EnemyRewards.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ private void GenerateDrops(Monster monster, Aisling player)
263263

264264
private void GenerateExperience(Aisling player, bool canCrit = false)
265265
{
266-
var exp = (int)_monster.Experience;
266+
var exp = _monster.Experience;
267267

268268
if (canCrit)
269269
{
@@ -347,14 +347,14 @@ private static long LevelRestrictionsOnExpAp(long exp, int difference)
347347
{
348348
// Monster is higher level than player
349349
<= -80 => 1,
350-
<= -50 => (int)(exp * 0.25),
351-
<= -30 => (int)(exp * 0.5),
352-
<= -15 => (int)(exp * 0.75),
350+
<= -50 => (long)(exp * 0.25),
351+
<= -30 => (long)(exp * 0.5),
352+
<= -15 => (long)(exp * 0.75),
353353
// Monster is lower level than player
354354
>= 80 => 1,
355-
>= 50 => (int)(exp * 0.15),
356-
>= 30 => (int)(exp * 0.33),
357-
>= 15 => (int)(exp * 0.66),
355+
>= 50 => (long)(exp * 0.15),
356+
>= 30 => (long)(exp * 0.33),
357+
>= 15 => (long)(exp * 0.66),
358358
_ => exp
359359
};
360360

Zolian.Server.Base/GameScripts/Formulas/RiftRewards.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ private void GenerateDrops(Monster monster, Aisling player)
263263

264264
private void GenerateExperience(Aisling player, bool canCrit = false)
265265
{
266-
var exp = (int)_monster.Experience * 2;
266+
var exp = _monster.Experience * 2;
267267

268268
if (canCrit)
269269
{
@@ -347,14 +347,14 @@ private static long LevelRestrictionsOnExpAp(long exp, int difference)
347347
{
348348
// Monster is higher level than player
349349
<= -80 => 1,
350-
<= -50 => (int)(exp * 0.25),
351-
<= -30 => (int)(exp * 0.5),
352-
<= -15 => (int)(exp * 0.75),
350+
<= -50 => (long)(exp * 0.25),
351+
<= -30 => (long)(exp * 0.5),
352+
<= -15 => (long)(exp * 0.75),
353353
// Monster is lower level than player
354354
>= 80 => 1,
355-
>= 50 => (int)(exp * 0.15),
356-
>= 30 => (int)(exp * 0.33),
357-
>= 15 => (int)(exp * 0.66),
355+
>= 50 => (long)(exp * 0.15),
356+
>= 30 => (long)(exp * 0.33),
357+
>= 15 => (long)(exp * 0.66),
358358
_ => exp
359359
};
360360

Zolian.Server.Base/Sprites/Entity/Monster.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public Monster()
5454
public bool AbilityEnabled { get; set; }
5555
public bool CastEnabled { get; set; }
5656
public bool ObjectUpdateEnabled { get; set; }
57-
public uint Experience { get; set; }
57+
public long Experience { get; set; }
5858
public uint Ability { get; set; }
5959
public string Size { get; set; }
6060
public ushort Image { get; set; }

0 commit comments

Comments
 (0)