Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file modified gradlew
100644 → 100755
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,15 @@ public Data(int ticks, int need) {
}

public void tickSpellCooldowns(int ticks) {
getAllSpellsOnCooldown().forEach(x -> tickDownCooldown(x, ticks));
map.values().removeIf(data -> {
data.ticks -= ticks;
return data.ticks < 1;
});
}

public void tickDownCooldown(String id, int ticks) {

if (map.containsKey(id)) {
Data data = map.get(id);
Data data = map.get(id);
if (data != null) {
data.ticks -= ticks;

if (data.ticks < 1) {
Expand All @@ -43,13 +45,10 @@ public void tickDownCooldown(String id, int ticks) {
}

public void onTicksPass(int ticks) {
if (map.isEmpty()) {
return;
}
new HashMap<>(map).entrySet()
.forEach(x -> {
tickDownCooldown(x.getKey(), ticks);
});
map.values().removeIf(data -> {
data.ticks -= ticks;
return data.ticks < 1;
});
}

public List<String> getAllSpellsOnCooldown() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import com.robertx22.mine_and_slash.saveclasses.gearitem.gear_bases.StatRequirement;
import com.robertx22.mine_and_slash.tags.TagList;
import com.robertx22.mine_and_slash.tags.all.SlotTags;
import com.robertx22.mine_and_slash.tags.imp.SlotTag;
import com.robertx22.mine_and_slash.uncommon.enumclasses.PlayStyle;
import com.robertx22.mine_and_slash.uncommon.enumclasses.WeaponTypes;
import com.robertx22.mine_and_slash.uncommon.interfaces.IAutoLocName;
Expand Down Expand Up @@ -45,7 +46,7 @@ public final class BaseGearType implements IAutoLocName, JsonExileRegistry<BaseG
public List<StatMod> base_stats = new ArrayList<>();

public String weapon_type = WeaponTypes.none.id;
public TagList tags = new TagList();
public TagList<SlotTag> tags = new TagList<>();

public List<ItemChance> possible_items = new ArrayList<>();

Expand Down Expand Up @@ -94,7 +95,7 @@ public WeaponTypes weaponType() {
return ExileDB.WeaponTypes().get(weapon_type);
}

public TagList getTags() {
public TagList<SlotTag> getTags() {
return tags;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,9 @@ public List<ItemStack> getAllDrops(Player p, int lvl, int recipelvl, float dropC

List<ChancedDrop> ALLDROPS = new ArrayList<>();

if (tiered_drops.containsKey(tier)) {
ALLDROPS.addAll(tiered_drops.get(tier));
List<ChancedDrop> tieredDrop = tiered_drops.get(tier);
if (tieredDrop != null) {
ALLDROPS.addAll(tieredDrop);
}
ALLDROPS.addAll(chance_drops);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,33 +11,39 @@
import net.minecraft.data.recipes.ShapelessRecipeBuilder;
import net.minecraft.world.item.Item;

import java.util.EnumMap;
import java.util.HashMap;
import java.util.Map;

public class ProfessionMatItems {

public static HashMap<String, HashMap<SkillItemTier, RegObj<Item>>> TIERED_MAIN_MATS = new HashMap<>();
public static Map<String, Map<SkillItemTier, RegObj<Item>>> TIERED_MAIN_MATS = new HashMap<>();


public static void init() {


for (String prof : Professions.ALL) {
TIERED_MAIN_MATS.put(prof, new HashMap<>());
TIERED_MAIN_MATS.put(prof, new EnumMap<>(SkillItemTier.class));
}

var mining = TIERED_MAIN_MATS.get(Professions.MINING);
var farming = TIERED_MAIN_MATS.get(Professions.FARMING);
var husbandry = TIERED_MAIN_MATS.get(Professions.HUSBANDRY);
var fishing = TIERED_MAIN_MATS.get(Professions.FISHING);

for (SkillItemTier tier : SkillItemTier.values()) {

TIERED_MAIN_MATS.get(Professions.MINING).put(tier, Def.item("material/mining/" + tier.tier, () -> new ProfTierMatItem(Professions.MINING, tier, "Ore")));
TIERED_MAIN_MATS.get(Professions.FARMING).put(tier, Def.item("material/farming/" + tier.tier, () -> new ProfTierMatItem(Professions.FARMING, tier, "Produce")));
TIERED_MAIN_MATS.get(Professions.HUSBANDRY).put(tier, Def.item("material/meat/" + tier.tier, () -> new ProfTierMatItem(Professions.HUSBANDRY, tier, "Raw Meat")));
TIERED_MAIN_MATS.get(Professions.FISHING).put(tier, Def.item("material/fishing/" + tier.tier, () -> new ProfTierMatItem(Professions.FISHING, tier, "Raw Fish")));
mining.put(tier, Def.item("material/mining/" + tier.tier, () -> new ProfTierMatItem(Professions.MINING, tier, "Ore")));
farming.put(tier, Def.item("material/farming/" + tier.tier, () -> new ProfTierMatItem(Professions.FARMING, tier, "Produce")));
husbandry.put(tier, Def.item("material/meat/" + tier.tier, () -> new ProfTierMatItem(Professions.HUSBANDRY, tier, "Raw Meat")));
fishing.put(tier, Def.item("material/fishing/" + tier.tier, () -> new ProfTierMatItem(Professions.FISHING, tier, "Raw Fish")));
}

}

public static void addDownRankRecipes() {
for (Map.Entry<String, HashMap<SkillItemTier, RegObj<Item>>> en : TIERED_MAIN_MATS.entrySet()) {
for (Map.Entry<String, Map<SkillItemTier, RegObj<Item>>> en : TIERED_MAIN_MATS.entrySet()) {
for (Map.Entry<SkillItemTier, RegObj<Item>> e : en.getValue().entrySet()) {

if (e.getKey().tier != SkillItemTier.TIER0.tier) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ public Builder blockTag(SkillItemTier tier, int exp, TagKey<Block>... blocks) {
return this;
}

public Builder dropTiered(HashMap<SkillItemTier, RegObj<Item>> map, float chancemulti) {
public Builder dropTiered(Map<SkillItemTier, RegObj<Item>> map, float chancemulti) {
for (Map.Entry<SkillItemTier, RegObj<Item>> en : map.entrySet()) {
Item item = en.getValue().get();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,10 +116,10 @@ public void tryActivate(SpellCtx ctx) {
EffectCondition pred = EffectCondition.MAP.get(entityPredicate.type);

if (pred != null) {
selected = selected.stream().filter(targetEntity -> {
selected.removeIf(targetEntity -> {
SpellCtx chainedCtx = SpellCtx.onEntityHit(ctx, targetEntity);
return pred.can(chainedCtx, entityPredicate);
}).collect(Collectors.toList());
return !pred.can(chainedCtx, entityPredicate);
});
}
}
list.addAll(selected);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,18 +44,12 @@ public void tryActivate(Collection<LivingEntity> targets, SpellCtx ctx, MapHolde
} else if (action == GiveOrTake.REMOVE_NEGATIVE) {
int count = data.getOrDefault(COUNT, 1D).intValue();

for (int i = 0; i < count; i++) {

List<MobEffectInstance> opt = t.getActiveEffects()
.stream()
.filter(x -> x.getEffect().getCategory() == MobEffectCategory.HARMFUL)
.collect(Collectors.toList());

if (!opt.isEmpty()) {
t.removeEffect(opt.get(0).getEffect());
}
}

List<MobEffectInstance> effectsToRemove = t.getActiveEffects()
.stream()
.filter(x -> x.getEffect().getCategory() == MobEffectCategory.HARMFUL)
.limit(count)
.toList();
effectsToRemove.forEach(effect -> t.removeEffect(effect.getEffect()));
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ public void tryActivate(Collection<LivingEntity> targets, SpellCtx ctx, MapHolde
//SimpleParticleType particle = data.getParticle();

float radius = data.get(RADIUS).floatValue();

radius *= ctx.calculatedSpellData.data.getNumber(EventData.AREA_MULTI, 1F).number;

float height = data.getOrDefault(HEIGHT, 0D).floatValue();
int amount = data.get(PARTICLE_COUNT).intValue();
amount *= ctx.calculatedSpellData.data.getNumber(EventData.AREA_MULTI, 1F).number;

float areaMulti = ctx.calculatedSpellData.data.getNumber(EventData.AREA_MULTI, 1F).number;
radius *= areaMulti;
amount = (int) (amount * areaMulti);


ParticleMotion motion = null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@
import com.robertx22.mine_and_slash.config.forge.ServerContainer;
import com.robertx22.mine_and_slash.database.data.spells.summons.entity.SummonEntity;
import com.robertx22.mine_and_slash.uncommon.datasaving.Load;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.NeutralMob;
import net.minecraft.world.entity.OwnableEntity;
import net.minecraft.world.entity.*;
import net.minecraft.world.entity.player.Player;

import java.util.List;
Expand All @@ -17,13 +14,6 @@ public enum AllyOrEnemy {


summonShouldAttack() {
@Override
public <T extends LivingEntity> List<T> getMatchingEntities(List<T> list, Entity caster) {
return list.stream()
.filter(x -> is(caster, x))
.collect(Collectors.toList());
}

@Override
public boolean is(Entity caster, LivingEntity target) {

Expand Down Expand Up @@ -63,27 +53,18 @@ public boolean includesCaster() {


allies() {
@Override
public <T extends LivingEntity> List<T> getMatchingEntities(List<T> list, Entity caster) {
return list.stream().filter(x -> is(caster, x)).collect(Collectors.toList());
}

@Override
public boolean is(Entity caster, LivingEntity target) {
return enemies.is(caster, target) == false;
return !enemies.is(caster, target);
}

@Override
public boolean includesCaster() {
return true;
}
},
allies_not_self() {
@Override
public <T extends LivingEntity> List<T> getMatchingEntities(List<T> list, Entity caster) {
return list.stream().filter(x -> is(caster, x)).collect(Collectors.toList());
}

allies_not_self() {
@Override
public boolean is(Entity caster, LivingEntity target) {
return allies.is(caster, target);
Expand All @@ -94,14 +75,8 @@ public boolean includesCaster() {
return false;
}
},
pets() {
@Override
public <T extends LivingEntity> List<T> getMatchingEntities(List<T> list, Entity caster) {
return list.stream()
.filter(x -> is(caster, x))
.collect(Collectors.toList());
}

pets() {
@Override
public boolean is(Entity caster, LivingEntity target) {
if (caster instanceof Player p) {
Expand All @@ -117,14 +92,8 @@ public boolean includesCaster() {
return false;
}
},
casters_summons() {
@Override
public <T extends LivingEntity> List<T> getMatchingEntities(List<T> list, Entity caster) {
return list.stream()
.filter(x -> is(caster, x))
.collect(Collectors.toList());
}

casters_summons() {
@Override
public boolean is(Entity caster, LivingEntity target) {
if (caster instanceof Player p) {
Expand All @@ -142,23 +111,20 @@ public boolean includesCaster() {
return false;
}
},

enemies {
@Override
public boolean is(Entity caster, LivingEntity target) {

if (caster instanceof Player p) {
if (EntityFinder.isTamedByAlly(p, target)) {
if (caster instanceof Player casterPlayer) {
if (EntityFinder.isTamedByAlly(casterPlayer, target)) {
return false;
}
if (target instanceof Player) {
if (target instanceof Player targetPlayer) {
if (!caster.level().getServer().isPvpAllowed()) {
return false;
}
if (target == caster || TeamUtils.areOnSameTeam((Player) caster, (Player) target, false)) {
return false;
} else {
return true;
}
return target != caster && !TeamUtils.areOnSameTeam(casterPlayer, targetPlayer, false);
}

} else {
Expand All @@ -177,27 +143,21 @@ public boolean is(Entity caster, LivingEntity target) {
return true;
}

@Override
public <T extends LivingEntity> List<T> getMatchingEntities(List<T> list, Entity caster) {
return list.stream()
.filter(x -> is(caster, x))
.collect(Collectors.toList());
}

@Override
public boolean includesCaster() {
return false;
}
},

non_ai_enemies {
@Override
public boolean is(Entity caster, LivingEntity target) {

if (caster instanceof Player p) {
if (EntityFinder.isTamedByAlly(p, target)) {
if (caster instanceof Player casterPlayer) {
if (EntityFinder.isTamedByAlly(casterPlayer, target)) {
return false;
}
if (target.serializeNBT().contains("NoAI")) {
if (target instanceof Mob mob && mob.isNoAi()) {
return false;
}
// Check for villagers and other NPCs
Expand All @@ -208,15 +168,11 @@ public boolean is(Entity caster, LivingEntity target) {
if (target instanceof net.minecraft.world.entity.npc.AbstractVillager) {
return false;
}*/
if (target instanceof Player) {
if (target instanceof Player targetPlayer) {
if (!caster.level().getServer().isPvpAllowed()) {
return false;
}
if (target == caster || TeamUtils.areOnSameTeam((Player) caster, (Player) target, false)) {
return false;
} else {
return true;
}
return target != caster && !TeamUtils.areOnSameTeam(casterPlayer, targetPlayer, false);
}

} else {
Expand All @@ -235,13 +191,6 @@ public boolean is(Entity caster, LivingEntity target) {
return true;
}

@Override
public <T extends LivingEntity> List<T> getMatchingEntities(List<T> list, Entity caster) {
return list.stream()
.filter(x -> is(caster, x))
.collect(Collectors.toList());
}

@Override
public boolean includesCaster() {
return false;
Expand All @@ -264,8 +213,15 @@ public boolean includesCaster() {
}
};

public abstract <T extends LivingEntity> List<T> getMatchingEntities(List<T> list, Entity caster);
public <T extends LivingEntity> List<T> getMatchingEntities(List<T> list, Entity caster) {
return list.stream()
.filter(x -> is(caster, x))
.collect(Collectors.toList());
}

/**
* @return whether {@code target} is an appropriate target for this target type for the caster {@code caster}
*/
public abstract boolean is(Entity caster, LivingEntity target);

public abstract boolean includesCaster();
Expand Down
Loading