diff --git a/ag/include/kampf/tausch.php b/ag/include/kampf/tausch.php
index 24462d7..146b272 100644
--- a/ag/include/kampf/tausch.php
+++ b/ag/include/kampf/tausch.php
@@ -8,23 +8,36 @@
if (!function_exists('getKTChance')) {
- function getKTChance($ktuser_luck, $ktvictim_luck) {
- $chance = 50;
- $ktvictim_luck= mt_rand(0, $ktvictim_luck);
- $ktuser_luck = mt_rand(0, $ktuser_luck);
- if($ktvictim_luck < ($ktuser_luck*0.25)) {
- $chance = 75;
- }
- if($ktvictim_luck > ($ktuser_luck*1.75)) {
- $chance = 25;
- }
- return $chance;
+ if(!function_exists('calculateChance')) {
+
+ function calculateChance($char1_luck, $char2_luck) {
+ $max = max($char1_luck, $char2_luck);
+ $min = min($char1_luck, $char2_luck);
+ if($max == 0) {
+ $max = 1;
+ }
+ return (($max - $min) / $max) * 50;
+ }
}
+ function getKTChance($ktuser_luck, $ktvictim_luck) {
+ //bei gleichem glück ist die chance 50%
+ $chance = 50;
+ if($ktuser_luck >= $ktvictim_luck) {
+ //hat der angreifer mehr glück wird der errechnete wert auf die 50% addiert
+ $chance += calculateChance($ktuser_luck, $ktvictim_luck);
+ } else {
+ //hat der verteidiger mehr glück wird der errechnete wert auf die 50% subtrahiert
+ $chance -= calculateChance($ktuser_luck, $ktvictim_luck);
+ }
+ return $chance;
+ }
}
################### Spieler 1
-$chance = getKTChance($k_glueck[0], $k_glueck[1]);
+$char1_luck = mt_rand(0, $k_glueck[0]);
+$char2_luck = mt_rand(0, $k_glueck[1]);
+$chance = round(getKTChance($char1_luck, $char2_luck));
$random = mt_rand(0,100);
if ($technick1['type'] == tausch) {
@@ -56,30 +69,33 @@ if ($technick1['type'] == tausch) {
$k_hp[1] = $k_hp_alt[0];
$k_mp[0] = $k_mp[0] - $technick1['mp'];
- $schaden_1 = "Körpertausch";
+ $schaden_1 = "Chance: ".$chance."%
Körpertausch";
}
} else {
- $k_mp[0] = $k_mp[0] - $technick1['mp'];
- if ($k_mp[0] < 0) {
+ $k_mp[0] = $k_mp[0] - $technick1['mp'];
+ $schaden_1 = "Chance: ".$chance."%
Körpertausch fehlgeschlagen";
+ }
+ if ($k_mp[0] < 0) {
$k_mp[0] = 0;
- }
- $schaden_1 = "Körpertausch fehlgeschlagen";
}
}
else {
$schaden_1 = "Körpertausch fehlgeschlagen";
+ $k_mp[0] = 0;
}
$aktion_AV1[$x] = "nein";
}
################### Spieler 2
-$chance = getKTChance($k_glueck[1], $k_glueck[0]);
+$char1_luck = mt_rand(0, $k_glueck[0]);
+$char2_luck = mt_rand(0, $k_glueck[1]);
+$chance = round(getKTChance($char2_luck, $char1_luck));
$random = mt_rand(0,100);
if ($technick2['type'] == tausch) {
if ($k_mp[1] >= $technick2['mp']) {
if($random <= $chance) { //Trefferchance abhängig vom ausgewürfeltem Glück
-
+ if ($kampf_info['rasse'] != "NPC") {
$k_starke_alt[0] = $k_starke[0];
$k_speed_alt[0] = $k_speed[0];
$k_ver_alt[0] = $k_ver[0];
@@ -105,17 +121,19 @@ if ($technick2['type'] == tausch) {
$k_hp[1] = $k_hp_alt[0];
$k_mp[1] = $k_mp[1] - $technick2['mp'];
- $schaden_2 = "Körpertausch";
- } else {
- $k_mp[1] = $k_mp[1] - $technick2['mp'];
- if ($k_mp[1] < 0) {
- $k_mp[1] = 0;
+ $schaden_2 = "Chance: ".$chance."%
Körpertausch";
}
- $schaden_1 = "Körpertausch fehlgeschlagen";
+ } else {
+ $k_mp[1] = $k_mp[1] - $technick2['mp'];
+ $schaden_2 = "Chance: ".$chance."%
Körpertausch fehlgeschlagen";
+ }
+ if ($k_mp[1] < 0) {
+ $k_mp[1] = 0;
}
}
else {
$schaden_2 = "Körpertausch fehlgeschlagen";
+ $k_mp[1] = 0;
}
$aktion_AV2[$x] = "nein";