Skip to content
Snippets Groups Projects
Unverified Commit 628f73fe authored by Jeffrey Phillips Freeman's avatar Jeffrey Phillips Freeman :boom:
Browse files

fix: fixed item effects (I think).

parent 4a484a4d
No related branches found
No related tags found
No related merge requests found
......@@ -70,9 +70,9 @@ public interface Item {
int getValueInGold();
void setEffects(Set<EffectPojo> effects);
void setEffects(Set<Effect> effects);
Set<EffectPojo> getEffects();
Set<Effect> getEffects();
void setItemName(String itemName);
......
......@@ -40,7 +40,7 @@ public class ItemBuilder {
private Equipment equipment;
private Rarity rarity;
private int valueInGold;
private Set<EffectPojo> effects;
private Set<Effect> effects;
private boolean hasBeenWithPlayer;
private int maxUses;
private boolean isDisposable;
......@@ -65,7 +65,8 @@ public class ItemBuilder {
this.isDisposable = itemMetadata.isDisposable();
this.equipment = itemMetadata.getEquipment();
this.validTimeOfDays = itemMetadata.getValidTimeOfDays();
this.effects = itemMetadata.getEffects();
Set<EffectPojo> effects = itemMetadata.getEffects();
this.effects = (effects != null ? Sets.newHashSet(itemMetadata.getEffects()) : null );
this.itemApplyStats = itemMetadata.getItemApplyStats();
return this;
}
......@@ -160,7 +161,7 @@ public class ItemBuilder {
return this;
}
public ItemBuilder effects(Set<EffectPojo> effects) {
public ItemBuilder effects(Set<Effect> effects) {
this.effects = effects;
return this;
}
......
......@@ -40,7 +40,7 @@ public class ItemPojo implements Serializable, Item {
private Equipment equipment;
private Rarity rarity;
private int valueInGold;
private Set<EffectPojo> effects;
private Set<Effect> effects;
private boolean hasBeenWithPlayer;
private int maxUses;
private boolean isDisposable;
......@@ -49,7 +49,7 @@ public class ItemPojo implements Serializable, Item {
public static final String CORPSE_INTENAL_NAME = "corpse";
protected ItemPojo(String itemName, String itemDescription, String internalItemName, List<String> itemTriggers, String restingName, String itemId, int numberOfUses, boolean isWithPlayer, Loot loot, int itemHalfLifeTicks, Equipment equipment, Rarity rarity, int valueInGold, Set<EffectPojo> effects, boolean hasBeenWithPlayer, int maxUses, boolean isDisposable, Set<TimeTracker.TimeOfDay> validTimeOfDays, Stats itemApplyStats) {
protected ItemPojo(String itemName, String itemDescription, String internalItemName, List<String> itemTriggers, String restingName, String itemId, int numberOfUses, boolean isWithPlayer, Loot loot, int itemHalfLifeTicks, Equipment equipment, Rarity rarity, int valueInGold, Set<Effect> effects, boolean hasBeenWithPlayer, int maxUses, boolean isDisposable, Set<TimeTracker.TimeOfDay> validTimeOfDays, Stats itemApplyStats) {
this.itemName = itemName;
this.itemDescription = itemDescription;
this.internalItemName = internalItemName;
......@@ -191,12 +191,12 @@ public class ItemPojo implements Serializable, Item {
}
@Override
public void setEffects(Set<EffectPojo> effects) {
public void setEffects(Set<Effect> effects) {
this.effects = effects;
}
@Override
public Set<EffectPojo> getEffects() {
public Set<Effect> getEffects() {
return effects;
}
......
......@@ -15,6 +15,7 @@
*/
package com.syncleus.aethermud.storage.graphdb;
import com.google.common.collect.Sets;
import com.syncleus.aethermud.core.service.TimeTracker;
import com.syncleus.aethermud.items.*;
import com.syncleus.aethermud.stats.Stats;
......@@ -126,14 +127,6 @@ public abstract class ItemData extends AbstractVertexFrame implements Item {
@Property("ValueInGold")
public abstract int getValueInGold();
@Override
@Property("Effects")
public abstract void setEffects(Set<EffectPojo> effects);
@Override
@Property("Effects")
public abstract Set<EffectPojo> getEffects();
@Override
@Property("ItemName")
public abstract void setItemName(String itemName);
......@@ -179,7 +172,56 @@ public abstract class ItemData extends AbstractVertexFrame implements Item {
@Property("HasBeenWithPlayer")
public abstract boolean isHasBeenWithPlayer();
@Adjacency(label = "Stats", direction = Direction.OUT)
@Adjacency(label = "Effects", direction = Direction.OUT)
public abstract EffectData addEffect(EffectData effects);
@Adjacency(label = "Effects", direction = Direction.OUT)
public abstract void removeEffect(EffectData stats);
@Adjacency(label = "Effects", direction = Direction.OUT)
public abstract <N extends EffectData> Iterator<? extends N> getEffects(Class<? extends N> type);
@Override
public Set<Effect> getEffects() {
return Sets.newHashSet(this.getEffects(EffectData.class));
}
@Override
public void setEffects(Set<Effect> effects) {
Iterator<? extends EffectData> existingAll = this.getEffects(EffectData.class);
if( existingAll != null ) {
while( existingAll.hasNext() ) {
EffectData existing = existingAll.next();
this.removeEffect(existing);
existing.remove();
}
}
if( effects == null || effects.size() == 0 ) {
return;
}
for( Effect effect : effects ) {
if (effect instanceof EffectData) {
this.addEffect((EffectData) effect);
} else {
try {
PropertyUtils.copyProperties(this.createEffect(), effect);
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
throw new IllegalStateException("Could not copy properties");
}
}
}
}
public EffectData createEffect() {
final EffectData effect = this.getGraph().addFramedVertex(EffectData.class);
this.addEffect(effect);
return effect;
}
@Adjacency(label = "ItemApplyStats", direction = Direction.OUT)
public abstract <N extends StatsData> Iterator<? extends N> getAllItemApplyStats(Class<? extends N> type);
public Stats getItemApplyStats() {
......@@ -190,10 +232,10 @@ public abstract class ItemData extends AbstractVertexFrame implements Item {
return null;
}
@Adjacency(label = "Stats", direction = Direction.OUT)
@Adjacency(label = "ItemApplyStats", direction = Direction.OUT)
public abstract StatsData addStats(StatsData stats);
@Adjacency(label = "Stats", direction = Direction.OUT)
@Adjacency(label = "ItemApplyStats", direction = Direction.OUT)
public abstract void removeStats(StatsData stats);
public void setItemApplyStats(Stats stats) {
......@@ -212,7 +254,6 @@ public abstract class ItemData extends AbstractVertexFrame implements Item {
return;
}
StatsData statsData;
if( stats instanceof StatsData ) {
this.addStats((StatsData) stats);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment