44import calculationEngine .entities .*;
55import calculationEngine .environment .CeItem ;
66import calculationEngine .environment .CeItemTypes ;
7- import calculationEngine .environment .CeLoot ;
87import config .BattleConstants ;
98
109import java .util .Random ;
@@ -58,21 +57,25 @@ public void run() {
5857 tickAmountPlayer1 -= selectedFightEntityPlayer1 .getCeStats ().getSpeed ();
5958 tickAmountPlayer2 -= selectedFightEntityPlayer2 .getCeStats ().getSpeed ();
6059 if (tickAmountPlayer1 <= 0 ) {
61- if (debug ) System .out .println ("[Battle Main Thread]: HP of EP1: " + selectedFightEntityPlayer1 .getCeStats ().getCurrentHitPoints ());
60+ if (debug )
61+ System .out .println ("[Battle Main Thread]: HP of EP1: " + selectedFightEntityPlayer1 .getCeStats ().getCurrentHitPoints ());
6262 if (debug ) System .out .println ("[Battle Main Thread]: PLAYER 1 TURN" );
63- if (debug ) System .out .println ("[Battle Main Thread]: HP of EP2: " + selectedFightEntityPlayer2 .getCeStats ().getCurrentHitPoints ());
63+ if (debug )
64+ System .out .println ("[Battle Main Thread]: HP of EP2: " + selectedFightEntityPlayer2 .getCeStats ().getCurrentHitPoints ());
6465 turnPlayer1 = true ;
6566 tickAmountPlayer1 = maxTickAmount + tickAmountPlayer1 ;
6667 threadSleep ();
6768 }
6869 if (isFightOngoing () && tickAmountPlayer2 <= 0 ) {
69- if (debug ) System .out .println ("[Battle Main Thread]: HP of EP2: " + selectedFightEntityPlayer2 .getCeStats ().getCurrentHitPoints ());
70+ if (debug )
71+ System .out .println ("[Battle Main Thread]: HP of EP2: " + selectedFightEntityPlayer2 .getCeStats ().getCurrentHitPoints ());
7072 if (debug ) System .out .println ("[Battle Main Thread]: PLAYER 2 TURN" );
7173 if (debug ) System .out .println ("[Battle Main Thread]: cePlayer2 is AI: " + cePlayer2 .isAI ());
72- if (debug ) System .out .println ("[Battle Main Thread]: HP of EP1: " + selectedFightEntityPlayer1 .getCeStats ().getCurrentHitPoints ());
74+ if (debug )
75+ System .out .println ("[Battle Main Thread]: HP of EP1: " + selectedFightEntityPlayer1 .getCeStats ().getCurrentHitPoints ());
7376 turnPlayer2 = true ;
7477 tickAmountPlayer2 = maxTickAmount + tickAmountPlayer2 ;
75- if (this .cePlayer2 .isAI ()) this .cePlayer2Ai .useAttack ();
78+ if (this .cePlayer2 .isAI ()) this .cePlayer2Ai .useAttack ();
7679 else threadSleep ();
7780 }
7881 }
@@ -89,7 +92,7 @@ public void setSelectedFightEntityPlayer2(CeEntity entity) {
8992 this .selectedFightEntityPlayer2 = entity ;
9093 }
9194
92- public void endBatte (){
95+ public void endBatte () {
9396 setBattleEnd ();
9497 setActionDone ();
9598 }
@@ -114,15 +117,14 @@ public boolean catchBeast(CeItem item) throws Exception {
114117 boolean caught = false ;
115118 if (turnPlayer1 ) {
116119 turnPlayer1 = false ;
117- if (item .getType () == CeItemTypes .cage ) {
120+ if (item .getType () == CeItemTypes .cage ) {
118121 this .cePlayer1 .getInventory ().useItem (item ); // Currently there is only one Cage option.. will need a system to decide what kind of item it is
119122 caught = CeCatching .isCaught (cePlayer1 , selectedFightEntityPlayer2 , item ); // Replace with Inventory use of Cage
120123 if (caught ) setBattleEnd ();
121124 setActionDone ();
122- }
123- else {
124- setActionDone ();
125- throw new WrongItemException (item , "Cage" );
125+ } else {
126+ setActionDone ();
127+ throw new WrongItemException (item , "Cage" );
126128 }
127129 }
128130 return caught ;
@@ -140,43 +142,52 @@ public void useAttack(CeAttack ceAttack) {
140142 }
141143
142144 private void applyAttack (CeEntity attacker , CeEntity defender , CeAttack ceAttack ) {
143- final int damage = CeDamage .calculateDamage (attacker , defender , ceAttack );
145+ int damage = CeDamage .calculateDamage (attacker , defender , ceAttack );
144146 if (damage != -1 ) {
145- if (debug ) System .out .println ("[Battle Main Thread]: Damage: " + damage );
146- defender .dealDamage (damage );
147- if (defender .getCeStats ().getType () == CeBeastTypes .PlayerStandard ) {
148- if (debug ) System .out .println ("[Battle Main Thread]: Dealing Damage to player" );
149- if (defender .getPlayerNumber () == 1 ) cePlayer1 .dealDamage (damage );
150- else cePlayer2 .dealDamage (damage );
147+ dealDamage (defender , damage );
148+ } else {
149+ if (debug ) System .out .println ("[Battle Main Thread]: Attack missed!" );
150+ }
151+ setActionDone ();
152+ }
153+
154+ private void dealDamage (CeEntity defender , int damage ) {
155+ if (debug ) System .out .println ("[Battle Main Thread]: Damage: " + damage );
156+ defender .dealDamage (damage );
157+ if (defender .getCeStats ().getType () == CeBeastTypes .PlayerStandard ) {
158+ if (debug ) System .out .println ("[Battle Main Thread]: Dealing Damage to player" );
159+ if (defender .getPlayerNumber () == 1 )
160+ cePlayer1 .dealDamage (damage );
161+ else
162+ cePlayer2 .dealDamage (damage );
163+ }
164+ if (defender .getCeStats ().getCurrentHitPoints () <= 0 ) {
165+ defenderDies (defender );
166+ }
167+ }
168+
169+ private void defenderDies (CeEntity defender ) {
170+ defender .setHitPoints (0 );
171+ if (defender .getCeStats ().getType () == CeBeastTypes .PlayerStandard ) {
172+ if (defender .getPlayerNumber () == 1 ) {
173+ cePlayer1 .setHitPoints (0 );
174+ } else {
175+ cePlayer2 .setHitPoints (0 );
151176 }
152- if (defender .getCeStats ().getCurrentHitPoints () <= 0 ) {
153- defender .setHitPoints (0 );
154- if (defender .getCeStats ().getType () == CeBeastTypes .PlayerStandard ) {
155- if (defender .getPlayerNumber () == 1 ) {
156- cePlayer1 .setHitPoints (0 );
157- } else {
158- cePlayer2 .setHitPoints (0 );
159- }
177+ setBattleEnd ();
178+ } else {
179+ if (defender .getPlayerNumber () == 1 ) {
180+ setSelectedFightEntityPlayer1 (cePlayer1 );
181+ this .selectedFightEntityPlayer1 .setPlayerNumber (1 );
182+ } else {
183+ setSelectedFightEntityPlayer2 (cePlayer2 );
184+ this .selectedFightEntityPlayer2 .setPlayerNumber (2 );
185+ if (selectedFightEntityPlayer2 .getCeStats ().getCurrentHitPoints () == 0 ) {
186+ if (debug ) System .out .println ("[Battle Main Thread]: Player2 fight entity HitPoints 0" );
160187 setBattleEnd ();
161- } else {
162- if (defender .getPlayerNumber () == 1 ) {
163- setSelectedFightEntityPlayer1 (cePlayer1 );
164- this .selectedFightEntityPlayer1 .setPlayerNumber (1 );
165- defender = selectedFightEntityPlayer1 ;
166- } else {
167- setSelectedFightEntityPlayer2 (cePlayer2 );
168- this .selectedFightEntityPlayer2 .setPlayerNumber (2 );
169- defender = selectedFightEntityPlayer2 ;
170- if (selectedFightEntityPlayer2 .getCeStats ().getCurrentHitPoints () == 0 ) {
171- if (debug ) System .out .println ("[Battle Main Thread]: Player2 fight entity HitPoints 0" );
172- setBattleEnd ();
173- }
174- }
175-
176188 }
177189 }
178- } else { if (debug ) System .out .println ("[Battle Main Thread]: Attack missed!" );}
179- setActionDone ();
190+ }
180191 }
181192
182193 private void threadSleep () {
0 commit comments