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 { ...@@ -70,9 +70,9 @@ public interface Item {
int getValueInGold(); int getValueInGold();
void setEffects(Set<EffectPojo> effects); void setEffects(Set<Effect> effects);
Set<EffectPojo> getEffects(); Set<Effect> getEffects();
void setItemName(String itemName); void setItemName(String itemName);
......
...@@ -40,7 +40,7 @@ public class ItemBuilder { ...@@ -40,7 +40,7 @@ public class ItemBuilder {
private Equipment equipment; private Equipment equipment;
private Rarity rarity; private Rarity rarity;
private int valueInGold; private int valueInGold;
private Set<EffectPojo> effects; private Set<Effect> effects;
private boolean hasBeenWithPlayer; private boolean hasBeenWithPlayer;
private int maxUses; private int maxUses;
private boolean isDisposable; private boolean isDisposable;
...@@ -65,7 +65,8 @@ public class ItemBuilder { ...@@ -65,7 +65,8 @@ public class ItemBuilder {
this.isDisposable = itemMetadata.isDisposable(); this.isDisposable = itemMetadata.isDisposable();
this.equipment = itemMetadata.getEquipment(); this.equipment = itemMetadata.getEquipment();
this.validTimeOfDays = itemMetadata.getValidTimeOfDays(); 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(); this.itemApplyStats = itemMetadata.getItemApplyStats();
return this; return this;
} }
...@@ -160,7 +161,7 @@ public class ItemBuilder { ...@@ -160,7 +161,7 @@ public class ItemBuilder {
return this; return this;
} }
public ItemBuilder effects(Set<EffectPojo> effects) { public ItemBuilder effects(Set<Effect> effects) {
this.effects = effects; this.effects = effects;
return this; return this;
} }
......
...@@ -40,7 +40,7 @@ public class ItemPojo implements Serializable, Item { ...@@ -40,7 +40,7 @@ public class ItemPojo implements Serializable, Item {
private Equipment equipment; private Equipment equipment;
private Rarity rarity; private Rarity rarity;
private int valueInGold; private int valueInGold;
private Set<EffectPojo> effects; private Set<Effect> effects;
private boolean hasBeenWithPlayer; private boolean hasBeenWithPlayer;
private int maxUses; private int maxUses;
private boolean isDisposable; private boolean isDisposable;
...@@ -49,7 +49,7 @@ public class ItemPojo implements Serializable, Item { ...@@ -49,7 +49,7 @@ public class ItemPojo implements Serializable, Item {
public static final String CORPSE_INTENAL_NAME = "corpse"; 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.itemName = itemName;
this.itemDescription = itemDescription; this.itemDescription = itemDescription;
this.internalItemName = internalItemName; this.internalItemName = internalItemName;
...@@ -191,12 +191,12 @@ public class ItemPojo implements Serializable, Item { ...@@ -191,12 +191,12 @@ public class ItemPojo implements Serializable, Item {
} }
@Override @Override
public void setEffects(Set<EffectPojo> effects) { public void setEffects(Set<Effect> effects) {
this.effects = effects; this.effects = effects;
} }
@Override @Override
public Set<EffectPojo> getEffects() { public Set<Effect> getEffects() {
return effects; return effects;
} }
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
*/ */
package com.syncleus.aethermud.storage.graphdb; package com.syncleus.aethermud.storage.graphdb;
import com.google.common.collect.Sets;
import com.syncleus.aethermud.core.service.TimeTracker; import com.syncleus.aethermud.core.service.TimeTracker;
import com.syncleus.aethermud.items.*; import com.syncleus.aethermud.items.*;
import com.syncleus.aethermud.stats.Stats; import com.syncleus.aethermud.stats.Stats;
...@@ -126,14 +127,6 @@ public abstract class ItemData extends AbstractVertexFrame implements Item { ...@@ -126,14 +127,6 @@ public abstract class ItemData extends AbstractVertexFrame implements Item {
@Property("ValueInGold") @Property("ValueInGold")
public abstract int getValueInGold(); public abstract int getValueInGold();
@Override
@Property("Effects")
public abstract void setEffects(Set<EffectPojo> effects);
@Override
@Property("Effects")
public abstract Set<EffectPojo> getEffects();
@Override @Override
@Property("ItemName") @Property("ItemName")
public abstract void setItemName(String itemName); public abstract void setItemName(String itemName);
...@@ -179,7 +172,56 @@ public abstract class ItemData extends AbstractVertexFrame implements Item { ...@@ -179,7 +172,56 @@ public abstract class ItemData extends AbstractVertexFrame implements Item {
@Property("HasBeenWithPlayer") @Property("HasBeenWithPlayer")
public abstract boolean isHasBeenWithPlayer(); 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 abstract <N extends StatsData> Iterator<? extends N> getAllItemApplyStats(Class<? extends N> type);
public Stats getItemApplyStats() { public Stats getItemApplyStats() {
...@@ -190,10 +232,10 @@ public abstract class ItemData extends AbstractVertexFrame implements Item { ...@@ -190,10 +232,10 @@ public abstract class ItemData extends AbstractVertexFrame implements Item {
return null; return null;
} }
@Adjacency(label = "Stats", direction = Direction.OUT) @Adjacency(label = "ItemApplyStats", direction = Direction.OUT)
public abstract StatsData addStats(StatsData stats); 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 abstract void removeStats(StatsData stats);
public void setItemApplyStats(Stats stats) { public void setItemApplyStats(Stats stats) {
...@@ -212,7 +254,6 @@ public abstract class ItemData extends AbstractVertexFrame implements Item { ...@@ -212,7 +254,6 @@ public abstract class ItemData extends AbstractVertexFrame implements Item {
return; return;
} }
StatsData statsData;
if( stats instanceof StatsData ) { if( stats instanceof StatsData ) {
this.addStats((StatsData) stats); 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