Compare commits
4 Commits
adb0a49711
...
d69376c110
Author | SHA1 | Date | |
---|---|---|---|
d69376c110 | |||
315c7d2891 | |||
|
57d384e98c | ||
df8acbeefa |
23
build.gradle
23
build.gradle
@ -2,6 +2,7 @@ plugins {
|
||||
id 'java'
|
||||
id 'idea'
|
||||
id "org.sonarqube" version "3.2.0"
|
||||
id 'jacoco'
|
||||
}
|
||||
|
||||
repositories {
|
||||
@ -17,6 +18,28 @@ test {
|
||||
maxParallelForks = 1
|
||||
}
|
||||
|
||||
jacocoTestReport {
|
||||
reports {
|
||||
html.enabled true
|
||||
xml.enabled true
|
||||
xml.destination file("${buildDir}/reports/jacoco.xml")
|
||||
}
|
||||
}
|
||||
|
||||
plugins.withType(JacocoPlugin) {
|
||||
tasks["test"].finalizedBy 'jacocoTestReport'
|
||||
}
|
||||
|
||||
sonarqube {
|
||||
properties {
|
||||
property "sonar.java.coveragePlugin", "jacoco"
|
||||
property "sonar.host.url", "https://sonarqube.yandrik.dev"
|
||||
property "sonar.coverage.jacoco.xmlReportPath", "${buildDir}/reports/jacoco.xml"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
dependencies {
|
||||
implementation 'com.fasterxml.jackson.core:jackson-core:2.12.4'
|
||||
implementation 'com.fasterxml.jackson.core:jackson-annotations:2.12.4'
|
||||
|
@ -452,6 +452,15 @@ public class GameLogic {
|
||||
.withOriginField(data.originField)
|
||||
.withTargetField(data.targetField)
|
||||
.buildCharacterEvent());
|
||||
for(Entity entity: state.entities.findByPosition(data.targetField)) {
|
||||
if(entity instanceof InfinityStone) {
|
||||
result.add(new EventBuilder(EventType.DestroyedEntityEvent)
|
||||
.withTargetField(data.targetField)
|
||||
.withTargetEntity(entity.id)
|
||||
.buildEntityEvent());
|
||||
break; //we should only have one entity per field anyways
|
||||
}
|
||||
}
|
||||
}
|
||||
case MindStone -> {
|
||||
EntityType target = data.originEntity.type == EntityType.P1 ? EntityType.P2 : EntityType.P1;
|
||||
@ -490,11 +499,15 @@ public class GameLogic {
|
||||
case PowerStone -> {
|
||||
Character origin = (Character)state.entities.findEntity(data.originEntity);
|
||||
int dmg = (int)Math.round(origin.hp.getMax() * 0.1);
|
||||
if(origin.hp.getValue() != 1 && dmg > 0) {
|
||||
//this is ugly ... but also easy to understand
|
||||
int hp1 = origin.hp.getValue();
|
||||
int hp2 = Math.max(1, origin.hp.getValue() - dmg);
|
||||
int actualDmg = hp1 - hp2;
|
||||
if(actualDmg > 0) {
|
||||
result.add(new EventBuilder(EventType.TakenDamageEvent)
|
||||
.withTargetEntity(data.originEntity)
|
||||
.withTargetField(data.originField)
|
||||
.withAmount(dmg)
|
||||
.withAmount(actualDmg)
|
||||
.buildEntityEvent());
|
||||
}
|
||||
result.add(new EventBuilder(EventType.TakenDamageEvent)
|
||||
|
@ -120,15 +120,27 @@ class MessageValidationUtilityTest {
|
||||
var characterConfig = new CharacterConfig();
|
||||
|
||||
assertThat(ValidationUtility.validate(characterConfig).get())
|
||||
.isEqualTo("characters must not be empty");
|
||||
.isIn("characters mus not be empty", "characters darf nicht leer sein");
|
||||
// .isEqualTo("characters must not be empty");
|
||||
|
||||
characterConfig.characters = new CharacterProperties[] {racoon, quicksilver, hulk, loki, silversurfer};
|
||||
|
||||
assertThat(ValidationUtility.validate(characterConfig).get())
|
||||
.contains("characters has less than 24 characters",
|
||||
"characters[4].rangedDamage must be greater than 0",
|
||||
"characters[4].name must not be empty",
|
||||
"characters[4].meleeDamage must be greater than 0");
|
||||
var results = ValidationUtility.validate(characterConfig).get();
|
||||
assertThat(results.contains("characters has less than 24 characters") ||
|
||||
results.contains("characters hat weniger als 24 characters"))
|
||||
.isTrue();
|
||||
|
||||
assertThat(results.contains("characters[4].rangedDamage must be greater than 0") ||
|
||||
results.contains("characters[4].rangedDamage muss größer als 0 sein"))
|
||||
.isTrue();
|
||||
|
||||
assertThat(results.contains("characters[4].name must not be empty") ||
|
||||
results.contains("characters[4].name darf nicht leer sein"))
|
||||
.isTrue();
|
||||
|
||||
assertThat(results.contains("characters[4].meleeDamage must be greater than 0") ||
|
||||
results.contains("characters[4].meleeDamage muss größer als 0 sein"))
|
||||
.isTrue();
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user