1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace DiscoBot
{
public class Char
{
string name;
public Dictionary<string, int> eigenschaften = new Dictionary<string, int>();
public List<Talent> talente = new List<Talent>();
public List<Kampf> kampftalente = new List<Kampf>();
public Dictionary<string, string> Proptable = new Dictionary<string, string>();
public Char(String path = "Felis.xml")
{
Load(path);
}
private void Load(string path)
{
XmlTextReader reader = new XmlTextReader(path);
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
switch (reader.Name)
{
case "held":
name = reader.GetAttribute("name");
break;
case "eigenschaft":
eigenschaften.Add(reader.GetAttribute("name"), Convert.ToInt32(reader.GetAttribute("value")) + Convert.ToInt32(reader.GetAttribute("mod")));
break;
case "talentliste":
reader.Read();
while (reader.Name.Equals("talent"))
{
talente.Add(new Talent(reader.GetAttribute("name"), reader.GetAttribute("probe").Remove(0, 2).Trim(')'), Convert.ToInt32(reader.GetAttribute("value"))));
reader.Read();
}
break;
case "kampfwerte":
string atname = reader.GetAttribute("name");
reader.Read();
int at = Convert.ToInt32(reader.GetAttribute("value"));
reader.Read();
int pa = Convert.ToInt32(reader.GetAttribute("value"));
kampftalente.Add(new Kampf(atname, at, pa));
break;
}
}
Proptable.Add("MU", "Mut");
Proptable.Add("KL", "Klugheit");
Proptable.Add("IN", "Intuition");
Proptable.Add("CH", "Charisma");
Proptable.Add("FF", "Fingerfertigkeit");
Proptable.Add("GE", "Gewandtheit");
Proptable.Add("KO", "Konstitution");
Proptable.Add("KK", "Körperkraft");
}
public string TestTalent(string talent)
{
var output = new StringBuilder();
var ttalent = talente.Find(v => v.name.Equals(talent));
var props =ttalent.Test();
int tap = ttalent.value;
for (int i = 0; i <= 2; i++)
{
int temp = dice.Rolld20();
int eigenschaft = eigenschaften[Proptable[props[i]]];
if (eigenschaft < temp)
tap -= temp - eigenschaft ;
output.Append(temp+" ");
}
output.Append("tap: "+ tap);
return output.ToString();
}
}
public class Talent
{
public string name, probe;
public int value;
public Talent(string name, string probe, int value) { this.name = name; this.probe = probe; this.value = value; }
public string[] Test()
{
var temp = probe.Split('/');
foreach (string s in temp)
s.Replace("/", "");
return temp;
}
}
public class Kampf
{
string name;
private int at, pa;
public Kampf(string name, int at, int pa) { this.name = name; this.at = at; this.pa = pa; }
void Test() { }
}
public static class dice
{
static System.Random rnd = new System.Random();
public static int Rolld20()
{
return rnd.Next(1,21) ;
}
}
}
|