package matteroverdrive.data.quest.logic;
import cpw.mods.fml.common.eventhandler.Event;
import matteroverdrive.api.quest.IQuestReward;
import matteroverdrive.api.quest.QuestStack;
import net.minecraft.entity.player.EntityPlayer;
import java.util.List;
import java.util.Random;
/**
* Created by Simeon on 12/31/2015.
*/
public class QuestLogicSingleEvent extends AbstractQuestLogic
{
Class<? extends Event> event;
public QuestLogicSingleEvent(Class<? extends Event> event)
{
this.event = event;
}
@Override
public String modifyInfo(QuestStack questStack, String info)
{
return info;
}
@Override
public boolean isObjectiveCompleted(QuestStack questStack, EntityPlayer entityPlayer, int objectiveIndex)
{
return hasEventFired(questStack);
}
@Override
public String modifyObjective(QuestStack questStack, EntityPlayer entityPlayer, String objective, int objectiveIndex)
{
return objective;
}
@Override
public void initQuestStack(Random random, QuestStack questStack)
{
}
@Override
public boolean onEvent(QuestStack questStack, Event event, EntityPlayer entityPlayer)
{
if (!hasEventFired(questStack) && this.event.isInstance(event))
{
if (autoComplete)
{
questStack.markComplited(entityPlayer,false);
}
setEventFired(questStack);
return true;
}
return false;
}
@Override
public void onTaken(QuestStack questStack, EntityPlayer entityPlayer)
{
}
@Override
public void onCompleted(QuestStack questStack, EntityPlayer entityPlayer)
{
}
@Override
public void modifyRewards(QuestStack questStack, EntityPlayer entityPlayer, List<IQuestReward> rewards)
{
}
public boolean hasEventFired(QuestStack questStack)
{
if (hasTag(questStack))
{
return getTag(questStack).getBoolean("e");
}
return false;
}
public void setEventFired(QuestStack questStack)
{
initTag(questStack);
getTag(questStack).setBoolean("e",true);
}
}