diff options
author | TrueDoctor <d-kobert@web.de> | 2018-06-03 23:16:17 +0200 |
---|---|---|
committer | TrueDoctor <d-kobert@web.de> | 2018-06-03 23:16:17 +0200 |
commit | d63ffc58db0f032cf7573b2a8a7720de2d5050ab (patch) | |
tree | d9a656651251bbd1eec233265ef824bf4b0389f0 /DiscoBot/DSA_Game/Characters/NPC.cs | |
parent | 256154e2ab4244e7267ffc21959a4ce65c982783 (diff) |
-General restructuring
-seperated talents and spells
Diffstat (limited to 'DiscoBot/DSA_Game/Characters/NPC.cs')
-rw-r--r-- | DiscoBot/DSA_Game/Characters/NPC.cs | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/DiscoBot/DSA_Game/Characters/NPC.cs b/DiscoBot/DSA_Game/Characters/NPC.cs new file mode 100644 index 0000000..dce4381 --- /dev/null +++ b/DiscoBot/DSA_Game/Characters/NPC.cs @@ -0,0 +1,115 @@ +namespace DiscoBot.Characters +{ + using System; + + using DiscoBot.Auxiliary; + using DiscoBot.DSA_Game.Characters; + + public class Npc : ICharacter + { + private readonly int mean, stDv; + + public Npc(string name, int mean, int stDv) + { + this.mean = mean; + this.stDv = stDv; + this.Name = name; + } + + public string Name { get; set; } + + public int Lebenspunkte { get; set; } + + public string TestTalent(string talent, int tap = 3) + { + for (int i = 0; i <= 2; i++) + { + // foreach property, dice and tap + int temp = Dice.Roll(); + int eigenschaft = (int)Math.Round(RandomMisc.Random(this.stDv, this.mean)); + + if (eigenschaft < temp) + { + tap -= temp - eigenschaft; + } + } + + if (tap >= 0) + { + return $"{this.Name} vollführt {talent} erfolgreich"; + } + + + return $"{this.Name} scheitert an {talent}"; + } + + public string TestEigenschaft(string eigenschaft, int erschwernis = 0) + { + int temp = Dice.Roll(); + int prop = (int)Math.Round(RandomMisc.Random(this.stDv, this.stDv)); + + if (temp + erschwernis < prop) + { + return $"{this.Name} vollführt {eigenschaft} erfolgreich"; + } + + return $"{this.Name} scheitert an {eigenschaft}"; + } + + public string Angriff(string waffe, int erschwernis = 0) + { + int temp = Dice.Roll(); + + if (temp == 1) + { + return $"{this.Name} greift kritisch mit {waffe} an"; + } + + if (temp < erschwernis) + { + return $"{this.Name} greift mit {waffe} an"; + } + + return $"{this.Name} haut mit {waffe} daneben"; + } + + public string Parade(string waffe, int erschwernis = 0) + { + int temp = Dice.Roll(); + + if (temp == 1) + { + return $"{this.Name} pariert mit {waffe} meisterlich"; + } + + if (temp < erschwernis) + { + return $"{this.Name} pariert mit {waffe} an"; + } + + return $"{this.Name} schafft es nicht mit {waffe} zu parieren"; + } + + public string Fernkampf(string waffe, int erschwernis = 0) + { + int temp = Dice.Roll(); + + if (temp == 1) + { + return $"{this.Name} trifft kritisch mit {waffe}"; + } + + if (temp < erschwernis) + { + return $"{this.Name} greift mit {waffe} an"; + } + + return $"{this.Name} schießt mit {waffe} daneben"; + } + + public string TestZauber(string zauber, int erschwernis) + { + return TestTalent(zauber, erschwernis); + } + } +} |