Więc niech będzie ADeDek. Premie do ataku dzielą się na atak: wręcz i dystansowy. Na razie powiedzmy, że obie premie wynoszą 5(je też się oblicza dodając różne modyfikatory). Obrażenia zależne są od używanej broni. Szansa trafienia krytycznego również zależy od używanej broni. Załóżmy, że jest to krótki miecz - 1k6, krytyk-19-20 x2, tzn. gdy wypadnie 19 lub 20 liczba obrazeń się podwaja.
atakw=5;
atakd=5;
kpwroga=15;
maxobrazen=6;
atak=round(random(20))
if atak = 1
{krytyczne pudło} //jakiś skrypt, np. broń wypada z ręki or sth
else
{
if atak>=19 //sprawdzanie krytyka
{
atak+=atakw; //przy ataku wręcz
if atak>=kpwroga
{
hpwroga=hpwroga-2*round(random(6)) //"zdrowie" wroga maleje o 1-6 pkt obrazen
}
}
else //zwykłe trafienie
{
atak+=atakw; //przy ataku wręcz
if atak>=kpwroga
{
hpwroga=hpwroga-round(random(6)) //"zdrowie" wroga maleje o 1-6 pkt obrazen
}
}
}
Napewno się gdzieś pomyliłem. ADeDek jest tak skomplikowany, że czasem normalnie można się pogubić a co dopiero algorytm napisać. Oczywiście nie jest on zoptymalizowany i zrobiony tylko w przypadku ataku krótkim mieczem. Pominąłem też conajmniej 2 zasady:
1. W przypadku ataku wręcz do sumy obrażeń dodaje się modyfikator z siły.
2. Przy wylosowaniu liczby odpowiadającej trafieniu krytycznemu dopiero występuje szansa na takowe. Żeby trafić krytycznie trzeba uzyskać wysoki wynik także za drugim rzutem (bezsens, prawie uniemożliwiający krytyka).