-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #52 from samsmithnz/feature/AddedExperienceLevels
added more experience logic
- Loading branch information
Showing
9 changed files
with
290 additions
and
73 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
namespace Battle.Logic.Characters | ||
{ | ||
public static class Experience | ||
{ | ||
//Experience | ||
// 0xp for miss | ||
// 10xp for hit | ||
// 100xp for kill | ||
|
||
//Rank Enemy Unknown | ||
//1. Rookie 0 | ||
//2. Squaddie 100 | ||
//3. Corporal 500 | ||
//4. Sergeant 1000 | ||
//5. Lieutenant 1500 | ||
//6. Captain 2000 | ||
//7. Major 2500 | ||
//8. Colonel 3000 | ||
private const int Level2ExperienceNeeded = 100; | ||
private const int Level3ExperienceNeeded = 500; | ||
private const int Level4ExperienceNeeded = 1000; | ||
private const int Level5ExperienceNeeded = 1500; | ||
private const int Level6ExperienceNeeded = 2000; | ||
private const int Level7ExperienceNeeded = 2500; | ||
private const int Level8ExperienceNeeded = 3000; | ||
|
||
private const int SuccessfulAction = 10; | ||
private const int KillXP = 100; | ||
|
||
public static int GetExperience(bool successfulAction, bool successfulKill = false) | ||
{ | ||
//hit | ||
if (successfulAction == true) | ||
{ | ||
if (successfulKill == true) | ||
{ | ||
return KillXP; | ||
} | ||
else | ||
{ | ||
return SuccessfulAction; | ||
} | ||
} | ||
else | ||
{ | ||
return 0; | ||
} | ||
} | ||
|
||
public static bool CheckIfReadyToLevelUp(int level, int experience) | ||
{ | ||
bool result = false; | ||
switch (level) | ||
{ | ||
case 1: | ||
if (experience >= Level2ExperienceNeeded) | ||
{ | ||
result = true; | ||
} | ||
break; | ||
case 2: | ||
if (experience >= Level3ExperienceNeeded) | ||
{ | ||
result = true; | ||
} | ||
break; | ||
case 3: | ||
if (experience >= Level4ExperienceNeeded) | ||
{ | ||
result = true; | ||
} | ||
break; | ||
case 4: | ||
if (experience >= Level5ExperienceNeeded) | ||
{ | ||
result = true; | ||
} | ||
break; | ||
case 5: | ||
if (experience >= Level6ExperienceNeeded) | ||
{ | ||
result = true; | ||
} | ||
break; | ||
case 6: | ||
if (experience >= Level7ExperienceNeeded) | ||
{ | ||
result = true; | ||
} | ||
break; | ||
case 7: | ||
if (experience >= Level8ExperienceNeeded) | ||
{ | ||
result = true; | ||
} | ||
break; | ||
|
||
} | ||
return result; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
namespace Battle.Logic.Map | ||
{ | ||
public class MapItem | ||
{ | ||
public string Name { get; set; } | ||
public int HitPoints { get; set; } | ||
public bool IsBurnable { get; set; } | ||
public bool IsExplosive { get; set; } | ||
} | ||
} |
134 changes: 134 additions & 0 deletions
134
src/Battle.Tests/Characters/CharacterExperienceTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,134 @@ | ||
using Battle.Logic.AbilitiesAndEffects; | ||
using Battle.Logic.Characters; | ||
using Microsoft.VisualStudio.TestTools.UnitTesting; | ||
using System.Collections.Generic; | ||
using System.Numerics; | ||
|
||
namespace Battle.Tests.Characters | ||
{ | ||
[TestClass] | ||
[TestCategory("L0")] | ||
public class CharacterExperienceTests | ||
{ | ||
[TestMethod] | ||
public void CharacterFredLevel1To2XPTest() | ||
{ | ||
//Arrange | ||
Character fred = CharacterPool.CreateFredHero(); | ||
fred.Experience = 100; | ||
fred.Level = 1; | ||
|
||
//Act | ||
bool readyToLevelUp = Experience.CheckIfReadyToLevelUp(fred.Level, fred.Experience); | ||
|
||
//Assert | ||
Assert.AreEqual(true, readyToLevelUp); | ||
} | ||
|
||
[TestMethod] | ||
public void CharacterFredLevel2To3XPTest() | ||
{ | ||
//Arrange | ||
Character fred = CharacterPool.CreateFredHero(); | ||
fred.Experience = 500; | ||
fred.Level = 2; | ||
|
||
//Act | ||
bool readyToLevelUp = Experience.CheckIfReadyToLevelUp(fred.Level, fred.Experience); | ||
|
||
//Assert | ||
Assert.AreEqual(true, readyToLevelUp); | ||
} | ||
|
||
[TestMethod] | ||
public void CharacterFredLevel3To4XPTest() | ||
{ | ||
//Arrange | ||
Character fred = CharacterPool.CreateFredHero(); | ||
fred.Experience = 1000; | ||
fred.Level = 3; | ||
|
||
//Act | ||
bool readyToLevelUp = Experience.CheckIfReadyToLevelUp(fred.Level, fred.Experience); | ||
|
||
//Assert | ||
Assert.AreEqual(true, readyToLevelUp); | ||
} | ||
|
||
[TestMethod] | ||
public void CharacterFredLevel4To5XPTest() | ||
{ | ||
//Arrange | ||
Character fred = CharacterPool.CreateFredHero(); | ||
fred.Experience = 1500; | ||
fred.Level = 4; | ||
|
||
//Act | ||
bool readyToLevelUp = Experience.CheckIfReadyToLevelUp(fred.Level, fred.Experience); | ||
|
||
//Assert | ||
Assert.AreEqual(true, readyToLevelUp); | ||
} | ||
|
||
[TestMethod] | ||
public void CharacterFredLevel5To6XPTest() | ||
{ | ||
//Arrange | ||
Character fred = CharacterPool.CreateFredHero(); | ||
fred.Experience = 2000; | ||
fred.Level = 5; | ||
|
||
//Act | ||
bool readyToLevelUp = Experience.CheckIfReadyToLevelUp(fred.Level, fred.Experience); | ||
|
||
//Assert | ||
Assert.AreEqual(true, readyToLevelUp); | ||
} | ||
|
||
[TestMethod] | ||
public void CharacterFredLevel6To7XPTest() | ||
{ | ||
//Arrange | ||
Character fred = CharacterPool.CreateFredHero(); | ||
fred.Experience = 2500; | ||
fred.Level = 6; | ||
|
||
//Act | ||
bool readyToLevelUp = Experience.CheckIfReadyToLevelUp(fred.Level, fred.Experience); | ||
|
||
//Assert | ||
Assert.AreEqual(true, readyToLevelUp); | ||
} | ||
|
||
[TestMethod] | ||
public void CharacterFredLevel7To8XPFailTest() | ||
{ | ||
//Arrange | ||
Character fred = CharacterPool.CreateFredHero(); | ||
fred.Experience = 3000-1; | ||
fred.Level = 7; | ||
|
||
//Act | ||
bool readyToLevelUp = Experience.CheckIfReadyToLevelUp(fred.Level, fred.Experience); | ||
|
||
//Assert | ||
Assert.AreEqual(false, readyToLevelUp); | ||
} | ||
|
||
[TestMethod] | ||
public void CharacterFredLevel7To8XPTest() | ||
{ | ||
//Arrange | ||
Character fred = CharacterPool.CreateFredHero(); | ||
fred.Experience = 3000; | ||
fred.Level = 7; | ||
|
||
//Act | ||
bool readyToLevelUp = Experience.CheckIfReadyToLevelUp(fred.Level, fred.Experience); | ||
|
||
//Assert | ||
Assert.AreEqual(true, readyToLevelUp); | ||
} | ||
|
||
} | ||
} |
Oops, something went wrong.