feat(D-01): implement GaggingComponent with comprehension and range
This commit is contained in:
@@ -2,11 +2,42 @@ package com.tiedup.remake.v2.bondage.component;
|
|||||||
|
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Component: gagging behavior for data-driven items.
|
||||||
|
*
|
||||||
|
* JSON config: {@code "gagging": {"comprehension": 0.2, "range": 10.0}}
|
||||||
|
*/
|
||||||
public class GaggingComponent implements IItemComponent {
|
public class GaggingComponent implements IItemComponent {
|
||||||
|
|
||||||
private GaggingComponent() {}
|
private final double comprehension;
|
||||||
|
private final double range;
|
||||||
|
|
||||||
|
private GaggingComponent(double comprehension, double range) {
|
||||||
|
this.comprehension = comprehension;
|
||||||
|
this.range = range;
|
||||||
|
}
|
||||||
|
|
||||||
public static IItemComponent fromJson(JsonObject config) {
|
public static IItemComponent fromJson(JsonObject config) {
|
||||||
return new GaggingComponent();
|
double comprehension = 0.2;
|
||||||
|
double range = 10.0;
|
||||||
|
if (config != null) {
|
||||||
|
if (config.has("comprehension")) {
|
||||||
|
comprehension = config.get("comprehension").getAsDouble();
|
||||||
|
}
|
||||||
|
if (config.has("range")) {
|
||||||
|
range = config.get("range").getAsDouble();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new GaggingComponent(comprehension, range);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** How much of the gagged speech is comprehensible (0.0 = nothing, 1.0 = full). */
|
||||||
|
public double getComprehension() {
|
||||||
|
return comprehension;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Maximum range in blocks where muffled speech can be heard. */
|
||||||
|
public double getRange() {
|
||||||
|
return range;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user