Search in sources :

Example 1 with Percentage

use of pl.themolka.arcade.util.Percentage in project Arcade2 by ShootGame.

the class DamageRuleParser method parsePrimitive.

@Override
protected ParserResult<DamageRule.Config> parsePrimitive(Node node, String name, String value) throws ParserException {
    String id = this.parseOptionalId(node);
    Ref<Filter.Config<?>> entityFilter = this.entityFilterParser.parse(node.property("entity-filter", "filter")).orDefault(Ref.empty());
    Ref<Filter.Config<?>> playerFilter = this.playerFilterParser.parse(node.property("player-filter", "filter")).orDefault(Ref.empty());
    boolean notDenied = this.denyParser.parse(node).orDefault(true);
    double damage = notDenied ? this.damageParser.parse(node).orFail() : DamageRule.Config.DENY_DAMAGE;
    Percentage multiplier = this.multiplierParser.parse(node.property("multiplier", "multiply")).orDefault(Percentage.DONE);
    return ParserResult.fine(node, name, value, new DamageRule.Config() {

        public String id() {
            return id;
        }

        public double damage() {
            return damage;
        }

        public Ref<Filter.Config<?>> entityFilter() {
            return entityFilter;
        }

        public Percentage multiplier() {
            return multiplier;
        }

        public Ref<Filter.Config<?>> playerFilter() {
            return playerFilter;
        }
    });
}
Also used : Ref(pl.themolka.arcade.config.Ref) Percentage(pl.themolka.arcade.util.Percentage) Filter(pl.themolka.arcade.filter.Filter)

Aggregations

Ref (pl.themolka.arcade.config.Ref)1 Filter (pl.themolka.arcade.filter.Filter)1 Percentage (pl.themolka.arcade.util.Percentage)1