Skip to content

Commit fc7eea7

Browse files
author
Allo
committed
resolve merge conflicts
2 parents bc5bc39 + ed59855 commit fc7eea7

13 files changed

Lines changed: 159 additions & 149 deletions

File tree

calculationEngine.iml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,9 @@
1313
<orderEntry type="library" name="Maven: org.json:json:20200518" level="project" />
1414
<orderEntry type="library" name="Maven: junit:junit:4.13.1" level="project" />
1515
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
16+
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.9.0" level="project" />
17+
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.10.20" level="project" />
18+
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.20" level="project" />
19+
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:3.2" level="project" />
1620
</component>
1721
</module>

pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@
1818
<artifactId>junit</artifactId>
1919
<version>4.13.1</version>
2020
</dependency>
21+
<dependency>
22+
<groupId>org.mockito</groupId>
23+
<artifactId>mockito-core</artifactId>
24+
<version>3.9.0</version>
25+
<scope>test</scope>
26+
</dependency>
2127
</dependencies>
2228

2329
<properties>

src/main/java/calculationEngine/battle/CeBattle.java

Lines changed: 55 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import calculationEngine.entities.*;
55
import calculationEngine.environment.CeItem;
66
import calculationEngine.environment.CeItemTypes;
7-
import calculationEngine.environment.CeLoot;
87
import config.BattleConstants;
98

109
import 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() {

src/main/java/calculationEngine/battle/CeCatching.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ private static boolean catchingMisses(CeEntity player, CeEntity beast, CeAttack
4444
int speed = (int) (player.getCeStats().getSpeed() * levelModifier);
4545
int difficulty = baseDifficultly + beast.getCeStats().getSpeed() - (speed + ceAttack.getAccuracy() + cage.getItemBonusStats().getCatchBonus());
4646
debugInfo += "Difficulty: " + difficulty + "\n";
47-
// if difficulty is higher than the roll the attack will miss.
4847
return difficulty > attackRoll;
4948
}
5049
}

src/main/java/calculationEngine/battle/CeDamage.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,17 @@ public static int calculateDamage(CeEntity attacker, CeEntity defender, CeAttack
1515
//roll to d50 to get a quasi normal distribution
1616
int attackRoll = random.nextInt(51) + random.nextInt(51);
1717
debugInfo = "Roll: " + attackRoll + "\n";
18-
// if the attack misses -1 is returned
1918
if (attackMisses(attacker, defender, ceAttack, attackRoll)) {
2019
debugInfo += "Miss\n";
2120
return -1;
2221
}
2322
debugInfo += "Hit\n";
24-
// gets attack and defense power.
2523
int attackPower = calculateAttack(attacker, ceAttack, attackRoll);
2624
int defensePower = calculateDefense(defender, ceAttack);
2725

2826
debugInfo += "Attack: " + attackPower + "\n";
2927
debugInfo += "Defense: " + defensePower + "\n";
3028
if (bDebug) System.out.println(debugInfo);
31-
// returns the damage, if the damage would be smaller than zero it will return zero.
3229
return Math.max((attackPower - defensePower), 0);
3330
}
3431

@@ -41,7 +38,6 @@ private static boolean attackMisses(CeEntity attacker, CeEntity defender, CeAtta
4138
// base difficulty is 50 then add the speed of the defender. After that the speed of the attacker and the accuracy of the attack are subtracted.
4239
int difficulty = 50 + defender.getCeStats().getSpeed() - (attacker.getCeStats().getSpeed() + ceAttack.getAccuracy());
4340
debugInfo += "Difficulty: " + difficulty + "\n";
44-
// if difficulty is higher than the roll the attack will miss.
4541
return difficulty > attackRoll;
4642
}
4743

src/main/java/calculationEngine/entities/CeAttack.java

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,12 @@ public CeAttack(CeAttacks attack) {
2525
scaleStats();
2626
}
2727

28-
//ToDo: to be decided if needed
29-
public CeAttack(String name, int damage, int accuracy, int criticalChance, CeBeastTypes type, int executions, int level) {
30-
this.name = name;
31-
this.damage = damage;
32-
this.accuracy = accuracy;
33-
this.criticalChance = criticalChance;
34-
this.type = type;
35-
this.level = level;
36-
this.executions = executions;
37-
}
38-
3928
private int calculateRandomLevel() {
4029
final int[] probabilityDistribution = EntityConstants.ATTACK_PROB_DISTRIBUTION;
4130
Random random = new Random();
4231
return probabilityDistribution[random.nextInt(probabilityDistribution.length)];
4332
}
44-
45-
33+
4634
public void levelUp() {
4735
if (this.level < maxLevel) {
4836
this.level++;

src/main/java/calculationEngine/entities/CeEntity.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,12 @@
88
import java.util.Random;
99

1010
public class CeEntity {
11-
// |--------------------------------------------------------------------------|
12-
// | This class is the parent class for every littleBeast. |
13-
// | Every Beast will inherit the props and funcs of this class and |
14-
// | extend them. |
15-
// |--------------------------------------------------------------------------|
16-
17-
// properties
1811
private List<CeAttack> ceAttacks;
1912

2013
// development logic isn't implemented yet -> has to be decided if we want to use this.
2114
private CeBeasts evolution; // Development beast
2215
private final int evolutionLvl; // level at which development will take place
2316

24-
// stats
2517
private CeStats ceStats;
2618

2719
private final boolean wild;

src/main/java/calculationEngine/entities/CeInventory.java

Lines changed: 52 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import calculationEngine.battle.WrongItemException;
44
import calculationEngine.environment.CeItem;
5-
import calculationEngine.environment.CeItemTypes;
5+
6+
import static calculationEngine.environment.CeItemTypes.*;
7+
import static calculationEngine.environment.CeItemTypes.armorShoulder;
68

79
public class CeInventory {
810

@@ -17,12 +19,13 @@ public class CeInventory {
1719
CeSlot[] slots = new CeSlot[maxItemSlots];
1820

1921
public void loadSaveInventory(CeItem armorShoulder, CeItem armorShoes, CeItem armorLegs, CeItem armorChest, CeItem armorHead, CeItem weapon, CeSlot[] slots) {
20-
this.equippedArmorChest = armorChest;
2122
this.slots = slots;
22-
this.equippedArmorHead = armorHead;
23-
this.equippedArmorLegs = armorLegs;
24-
this.equippedArmorShoes = armorShoes;
2523
this.equippedArmorShoulder = armorShoulder;
24+
this.equippedArmorShoes = armorShoes;
25+
this.equippedArmorLegs = armorLegs;
26+
this.equippedArmorChest = armorChest;
27+
this.equippedArmorHead = armorHead;
28+
this.equippedWeapon = weapon;
2629
}
2730

2831
public CeInventory() {
@@ -79,55 +82,81 @@ public void useItem(CeItem item) throws ItemNotInInventoryException {
7982
}
8083
}
8184

82-
public void setEquippedArmorShoulder(CeItem equippedArmorShoulder) throws WrongItemException {
83-
if (this.equippedArmorShoulder != null)
85+
public void setEquippedItem(CeItem equippedItem) throws WrongItemException {
86+
switch (equippedItem.getType()){
87+
case armorShoulder:
88+
setEquippedArmorShoulder(equippedItem);
89+
break;
90+
case armorShoes:
91+
setEquippedArmorShoes(equippedItem);
92+
break;
93+
case armorLegs:
94+
setEquippedArmorLegs(equippedItem);
95+
break;
96+
case armorChest:
97+
setEquippedArmorChest(equippedItem);
98+
break;
99+
case armorHead:
100+
setEquippedArmorHead(equippedItem);
101+
break;
102+
case weapon:
103+
setEquippedWeapon(equippedItem);
104+
break;
105+
default:
106+
throw new IllegalStateException("Unexpected value: " + equippedItem.getType());
107+
}
108+
109+
}
110+
111+
private void setEquippedArmorShoulder(CeItem equippedArmorShoulder) throws WrongItemException {
112+
if(this.equippedArmorShoulder != null)
84113
this.equippedArmorShoulder.unequip();
85-
if (equippedArmorShoulder.getType() == CeItemTypes.armorShoulder) {
114+
if(equippedArmorShoulder.getType() == armorShoulder){
86115
this.equippedArmorShoulder = equippedArmorShoulder;
87116
this.equippedArmorShoulder.equip();
88117
} else throw new WrongItemException(equippedArmorShoulder, "Armor type shoulderArmor");
89118
}
90119

91-
public void setEquippedArmorShoes(CeItem equippedArmorShoes) throws WrongItemException {
92-
if (this.equippedArmorShoes != null)
120+
private void setEquippedArmorShoes(CeItem equippedArmorShoes) throws WrongItemException {
121+
if(this.equippedArmorShoes != null)
93122
this.equippedArmorShoes.unequip();
94-
if (equippedArmorShoes.getType() == CeItemTypes.armorShoes) {
123+
if(equippedArmorShoes.getType() == armorShoes){
95124
this.equippedArmorShoes = equippedArmorShoes;
96125
this.equippedArmorShoes.equip();
97126
} else throw new WrongItemException(equippedArmorShoes, "Armor type armorShoes");
98127
}
99128

100-
public void setEquippedArmorLegs(CeItem equippedArmorLegs) throws WrongItemException {
101-
if (this.equippedArmorLegs != null)
129+
private void setEquippedArmorLegs(CeItem equippedArmorLegs) throws WrongItemException {
130+
if(this.equippedArmorLegs != null)
102131
this.equippedArmorLegs.unequip();
103-
if (equippedArmorLegs.getType() == CeItemTypes.armorLegs) {
132+
if(equippedArmorLegs.getType() == armorLegs){
104133
this.equippedArmorLegs = equippedArmorLegs;
105134
this.equippedArmorLegs.equip();
106135
} else throw new WrongItemException(equippedArmorLegs, "Armor type ArmorLegs");
107136
}
108137

109-
public void setEquippedArmorChest(CeItem equippedArmorChest) throws WrongItemException {
110-
if (this.equippedArmorChest != null)
138+
private void setEquippedArmorChest(CeItem equippedArmorChest) throws WrongItemException {
139+
if(this.equippedArmorChest != null)
111140
this.equippedArmorChest.unequip();
112-
if (equippedArmorChest.getType() == CeItemTypes.armorChest) {
141+
if(equippedArmorChest.getType() == armorChest){
113142
this.equippedArmorChest = equippedArmorChest;
114143
this.equippedArmorChest.equip();
115144
} else throw new WrongItemException(equippedArmorChest, "Armor type ArmorChest");
116145
}
117146

118-
public void setEquippedArmorHead(CeItem equippedArmorHead) throws WrongItemException {
119-
if (this.equippedArmorHead != null)
147+
private void setEquippedArmorHead(CeItem equippedArmorHead) throws WrongItemException {
148+
if(this.equippedArmorHead != null)
120149
this.equippedArmorHead.unequip();
121-
if (equippedArmorHead.getType() == CeItemTypes.armorHead) {
150+
if(equippedArmorHead.getType() == armorHead){
122151
this.equippedArmorHead = equippedArmorHead;
123152
this.equippedArmorHead.equip();
124153
} else throw new WrongItemException(equippedArmorHead, "Armor type armorHead");
125154
}
126155

127-
public void setEquippedWeapon(CeItem equippedWeapon) throws WrongItemException {
128-
if (this.equippedWeapon != null)
156+
private void setEquippedWeapon(CeItem equippedWeapon) throws WrongItemException {
157+
if(this.equippedWeapon != null)
129158
this.equippedWeapon.unequip();
130-
if (equippedWeapon.getType() == CeItemTypes.weapon) {
159+
if(equippedWeapon.getType() == weapon){
131160
this.equippedWeapon = equippedWeapon;
132161
this.equippedWeapon.equip();
133162
} else throw new WrongItemException(equippedWeapon, "Armor type weapon");

0 commit comments

Comments
 (0)