Neue einheit_alive mit Multiplikator und anpassen der einheit_attack
This commit is contained in:
parent
8f64a538ae
commit
36151d6271
19
logik.pl
19
logik.pl
@ -90,11 +90,10 @@ einheit_attack(Xattack, Yattack, Xdefend, Ydefend) :-
|
|||||||
einheit_active(Player, TypeAttack, Xattack, Yattack, _),
|
einheit_active(Player, TypeAttack, Xattack, Yattack, _),
|
||||||
einheit_active(PlayerDefend, TypeDefend, Xdefend, Ydefend, HP),
|
einheit_active(PlayerDefend, TypeDefend, Xdefend, Ydefend, HP),
|
||||||
einheit(TypeAttack, AP, _, _, _),
|
einheit(TypeAttack, AP, _, _, _),
|
||||||
einheit(TypeDefend, _, _, Mult, _),
|
einheit(TypeDefend, _, _, MultDef, _),
|
||||||
HPwithMult is HP * Mult,
|
|
||||||
(
|
(
|
||||||
(% Entweder die Einheit überlebt
|
(% Entweder die Einheit überlebt
|
||||||
einheit_alive(AP, HPwithMult, HPnew),
|
einheit_alive(AP, HP, HPnew, MultDef),
|
||||||
retract( einheit_active(PlayerDefend, TypeDefend,
|
retract( einheit_active(PlayerDefend, TypeDefend,
|
||||||
Xdefend, Ydefend, HP) ),
|
Xdefend, Ydefend, HP) ),
|
||||||
assert( einheit_active(PlayerDefend, TypeDefend,
|
assert( einheit_active(PlayerDefend, TypeDefend,
|
||||||
@ -107,13 +106,25 @@ einheit_attack(Xattack, Yattack, Xdefend, Ydefend) :-
|
|||||||
),
|
),
|
||||||
!.
|
!.
|
||||||
|
|
||||||
|
% DEPRECATED, nur noch hier falls später für debug gebraucht
|
||||||
% Prüft ob eine Einheit den Angriff überlebt und gibt die neue
|
% Prüft ob eine Einheit den Angriff überlebt und gibt die neue
|
||||||
% Defense/HP aus falls dem so ist
|
% Defense/HP aus falls dem so ist
|
||||||
einheit_alive(AP, HP, HPnew) :-
|
einheit_alive(AP, HP, HPnew) :-
|
||||||
HPnew is HP - AP,
|
HPnew is HP - AP,
|
||||||
HPnew > 0.
|
HPnew > 0.
|
||||||
|
|
||||||
|
einheit_alive(AP, HP, HPnew, HPmult) :-
|
||||||
|
% berechnen der differenz nach anwenden des multplikators
|
||||||
|
HPwm is HP * HPmult,
|
||||||
|
PwmDiff is HPwm - AP,
|
||||||
|
|
||||||
|
% berechnen des Reduktionsverhältnis von HP
|
||||||
|
Pratio is PwmDiff / HPwm,
|
||||||
|
|
||||||
|
% berechnen der neuen HP und prüfen ob einheit alive
|
||||||
|
HPnew is HP * Pratio,
|
||||||
|
HPnew > 0.
|
||||||
|
|
||||||
|
|
||||||
% Entfernt eine Einheit vom Spielfeld an Position X, Y
|
% Entfernt eine Einheit vom Spielfeld an Position X, Y
|
||||||
einheit_delete(X, Y) :-
|
einheit_delete(X, Y) :-
|
||||||
|
Loading…
x
Reference in New Issue
Block a user