Copy interface IQuestCoreV3 {
// Events
event ExpeditionCanceled ( uint256 indexed expeditionId, address indexed player, uint256 feeRefunded, uint16 petTreats, uint32 staminaPotions);
event ExpeditionClaimStarted ( uint256 indexed expeditionId, address indexed player, tuple( uint40 lastClaimedAt, uint24 iterationsToProcess, uint24 remainingIterations, uint16 escrowedPetTreats, uint32 escrowedStaminaPotions, uint16 globalSettings, uint40 iterationTime, uint40 claimStartBlock, uint24 feePerStamina) expedition);
event ExpeditionCompleted ( uint256 indexed expeditionId, address indexed player);
event ExpeditionExtended ( uint256 indexed expeditionId, address indexed player, uint256 additionalIterations, uint256 additionalFee, uint256 additionalTreats);
event ExpeditionInProgressHeroUpdate ( uint256 indexed expeditionId, address indexed player, uint256 indexed heroId, uint32 currentXP, uint16 currentProfessionSkill, uint8 profession);
event ExpeditionIterationProcessed ( uint256 indexed expeditionId, uint256 indexed questId, address indexed player, uint256 [] heroIds, uint256 iterationsProcessed, uint256 totalFee, uint40 lastClaimedAt, uint16 staminaPotions, uint16 petTreats);
event ExpeditionStarted ( uint256 indexed expeditionId, address indexed player, uint256 indexed heroId, tuple( uint40 lastClaimedAt, uint24 iterationsToProcess, uint24 remainingIterations, uint16 escrowedPetTreats, uint32 escrowedStaminaPotions, uint16 globalSettings, uint40 iterationTime, uint40 claimStartBlock, uint24 feePerStamina) expedition , uint256 fee , uint8 foodType);
event FeeAddressAdded ( address indexed feeAddress, uint256 indexed feePercent);
event FeeDeferred ( address indexed source, address indexed from, address indexed to, address token, uint256 amount, uint64 timestamp);
event FeeDisbursed ( address indexed source, address indexed from, address indexed to, address token, uint256 amount, uint64 timestamp);
event FeeLockedBurned ( address indexed source, address indexed from, address indexed to, address token, uint256 amount, uint64 timestamp);
event PetBonusReceived ( uint256 indexed questId, address indexed player, uint256 heroId, uint256 petId);
event PetBonusReceivedExpedition ( uint256 indexed questId, address indexed player, uint256 heroId);
event PetFed ( address indexed fedBy, uint256 petId, uint8 foodType, uint256 hungryAt);
event QuestCanceled ( uint256 indexed questId, address indexed player, uint256 indexed heroId, tuple( uint256 id, uint256 questInstanceId, uint8 level, uint256 [] heroes, address player, uint256 startBlock, uint256 startAtTime, uint256 completeAtTime, uint8 attempts, uint8 status, uint8 questType) quest);
event QuestCompleted ( uint256 indexed questId, address indexed player, uint256 indexed heroId, tuple( uint256 id, uint256 questInstanceId, uint8 level, uint256 [] heroes, address player, uint256 startBlock, uint256 startAtTime, uint256 completeAtTime, uint8 attempts, uint8 status, uint8 questType) quest);
event QuestSkillUp ( uint256 indexed questId, address indexed player, uint256 heroId, uint8 profession, uint16 skillUp);
event QuestStaminaSpent ( uint256 indexed questId, address indexed player, uint256 heroId, uint256 staminaFullAt, uint256 staminaSpent);
event QuestStarted ( uint256 indexed questId, address indexed player, uint256 indexed heroId, tuple( uint256 id, uint256 questInstanceId, uint8 level, uint256 [] heroes, address player, uint256 startBlock, uint256 startAtTime, uint256 completeAtTime, uint8 attempts, uint8 status, uint8 questType) quest , uint256 startAtTime , uint256 completeAtTime);
event QuestXP ( uint256 indexed questId, address indexed player, uint256 heroId, uint64 xpEarned);
event RewardMinted ( uint256 indexed questId, address indexed player, uint256 heroId, address indexed reward, uint256 amount, uint256 data);
event TokenBonusAwarded ( uint256 indexed questId, address indexed player, uint256 heroId, uint256 amount);
event TrainingAttemptDone ( bool success, uint256 attempt, uint256 indexed heroId);
event TrainingSuccessRatio ( uint256 winCount, uint256 attempts, uint256 indexed heroId);
// State-Changing Functions - Quests
function clearActiveQuests ( uint256 _questInstanceId );
function clearActiveQuestsAndHeroes ();
function clearActiveQuestsAndHeroesWithOffset ( uint256 _offset , uint256 _amount );
function clearActiveQuestsByType ( uint256 _questInstanceId , uint8 _level , uint8 _type );
function cancelQuest ( uint256 _heroId );
function completeQuest ( uint256 _heroId );
function multiCompleteQuest ( uint256 [] _heroIds );
function multiStartQuest ( uint256 [][] _heroIds , uint256 [] _questInstanceId , uint8 [] _attempts , uint8 [] _level , uint8 [] _type );
function startQuest ( uint256 [] _heroIds , uint256 _questInstanceId , uint8 _attempts , uint8 _level , uint8 _type );
// State-Changing Functinos - Expeditions
function cancelExpedition ( uint256 _expeditionId );
function extendExpedition ( uint256 _expeditionId , uint24 _additionalIterations ) payable ;
function multiCancelExpedition ( uint256 [] _expeditionIds );
function multiProcessExpeditionClaim ( uint256 [] _expeditionIds );
function multiProcessExpeditionClaimWithCustomIterationCap ( uint256 [] _expeditionIds , uint24 [] _requestedIterations );
function multiStartExpeditionClaim ( uint256 [] _expeditionIds );
function processExpeditionClaim ( uint256 _expeditionId );
function processExpeditionClaimWithCustomIterationCap ( uint256 _expeditionId , uint24 _requestedIterations );
function startExpedition (tuple( uint256 [] heroIds , uint256 questInstanceId , uint8 attempts , uint8 level , uint8 questType , uint24 iterations , uint16 staminaPotions , uint8 petFoodType) _inputs ) payable ;
function startExpeditionClaim ( uint256 _expeditionId );
// View Functions - Quests/General
function getAccountActiveQuests ( address _account ) view returns (tuple( uint256 id , uint256 questInstanceId , uint8 level , uint256 [] heroes , address player , uint256 startBlock , uint256 startAtTime , uint256 completeAtTime , uint8 attempts , uint8 status , uint8 questType)[]);
function getCurrentStamina ( uint256 _heroId ) view returns ( uint256 );
function getCurrentStaminaForMultiple ( uint256 [] _heroIds ) view returns ( uint256 []);
function getFormattedQuestAddress ( uint8 _format , uint8 _instanceId , uint8 _level , uint8 _type ) pure returns ( address );
function getHeroQuest ( uint256 heroId) view returns (tuple( uint256 id , uint256 questInstanceId , uint8 level , uint256 [] heroes , address player , uint256 startBlock , uint256 startAtTime , uint256 completeAtTime , uint8 attempts , uint8 status , uint8 questType));
function getQuestInstanceIds () view returns ( uint256 []);
function heroToQuest ( uint256 _heroId ) view returns ( uint256 );
function quests ( uint256 _id ) view returns (tuple( uint256 id , uint256 questInstanceId , uint8 level , uint256 [] heroes , address player , uint256 startBlock , uint256 startAtTime , uint256 completeAtTime , uint8 attempts , uint8 status , uint8 questType));
function timePerStamina () view returns ( uint256 );
// View Functions - Expeditions
function getRequiredFeeForExtension ( uint256 _expeditionId , uint24 _additionalIterations ) view returns ( uint256 );
function getRequiredTreatsForExtension ( uint256 _expeditionId , uint24 _additionalIterations ) view returns ( uint256 );
function getAccountExpeditionIds ( address _playerAddress ) view returns ( uint256 []);
function getAccountExpeditionIdsWithOffset ( uint256 _offset , uint256 _amount , address _playerAddress ) view returns ( uint256 []);
function getAccountExpeditions ( address _playerAddress ) view returns (tuple( uint40 lastClaimedAt , uint24 iterationsToProcess , uint24 remainingIterations , uint16 escrowedPetTreats , uint32 escrowedStaminaPotions , uint16 globalSettings , uint40 iterationTime , uint40 claimStartBlock , uint24 feePerStamina)[]);
function getAccountExpeditionsCounts ( address _playerAddress ) view returns ( uint256 );
function getAccountExpeditionsWithAssociatedQuests(address _playerAddress) view returns (tuple(uint256 expeditionId, tuple(uint40 lastClaimedAt, uint24 iterationsToProcess, uint24 remainingIterations, uint16 escrowedPetTreats, uint32 escrowedStaminaPotions, uint16 globalSettings, uint40 iterationTime, uint40 claimStartBlock, uint24 feePerStamina) expedition, tuple(uint256 id, uint256 questInstanceId, uint8 level, uint256[] heroes, address player, uint256 startBlock, uint256 startAtTime, uint256 completeAtTime, uint8 attempts, uint8 status, uint8 questType) quest, uint256 escrowedFee, uint8 foodType)[]);
function getAccountExpeditionsWithAssociatedQuestsWithOffset(uint256 _offset, uint256 _amount, address _playerAddress) view returns (tuple(uint256 expeditionId, tuple(uint40 lastClaimedAt, uint24 iterationsToProcess, uint24 remainingIterations, uint16 escrowedPetTreats, uint32 escrowedStaminaPotions, uint16 globalSettings, uint40 iterationTime, uint40 claimStartBlock, uint24 feePerStamina) expedition, tuple(uint256 id, uint256 questInstanceId, uint8 level, uint256[] heroes, address player, uint256 startBlock, uint256 startAtTime, uint256 completeAtTime, uint8 attempts, uint8 status, uint8 questType) quest, uint256 escrowedFee, uint8 foodType)[]);
function getAccountExpeditionsWithOffset ( uint256 _offset , uint256 _amount , address _playerAddress ) view returns (tuple( uint40 lastClaimedAt , uint24 iterationsToProcess , uint24 remainingIterations , uint16 escrowedPetTreats , uint32 escrowedStaminaPotions , uint16 globalSettings , uint40 iterationTime , uint40 claimStartBlock , uint24 feePerStamina)[]);
function getEstimatedExpeditionCompletionTime ( uint256 _expeditionId ) view returns ( uint64 );
function getExpedition ( uint256 _id ) view returns (tuple( uint40 lastClaimedAt , uint24 iterationsToProcess , uint24 remainingIterations , uint16 escrowedPetTreats , uint32 escrowedStaminaPotions , uint16 globalSettings , uint40 iterationTime , uint40 claimStartBlock , uint24 feePerStamina));
function getExpeditionEscrowedFee ( uint256 _expeditionId ) view returns ( uint256 );
function getExpeditionGardeningPoolCounts ( address _account , uint8 _questType ) view returns (tuple( uint8 questLength , uint8 count));
function getExpeditionTokenMiningCounts ( address _account ) view returns (tuple( uint8 questLength , uint8 count));
function getExpeditionHeroData ( uint256 _heroId ) view returns (tuple( uint8 heroSettings , uint16 statScores , uint16 professionSkill , uint16 luck , uint8 foodType , uint8 eggType , uint8 rarity , uint8 professionBonus , uint8 scalar , uint8 level , uint64 petHungryAt , uint32 xp));
function getHeroExpedition ( uint256 _heroId ) view returns (tuple( uint40 lastClaimedAt , uint24 iterationsToProcess , uint24 remainingIterations , uint16 escrowedPetTreats , uint32 escrowedStaminaPotions , uint16 globalSettings , uint40 iterationTime , uint40 claimStartBlock , uint24 feePerStamina));
function getHeroesExpeditions ( uint256 [] _heroIds ) view returns (tuple( uint40 lastClaimedAt , uint24 iterationsToProcess , uint24 remainingIterations , uint16 escrowedPetTreats , uint32 escrowedStaminaPotions , uint16 globalSettings , uint40 iterationTime , uint40 claimStartBlock , uint24 feePerStamina)[]);
function getIterationDuration (tuple( uint256 [] heroIds , uint256 questInstanceId , uint8 attempts , uint8 level , uint8 questType , uint24 iterations , uint16 staminaPotions , uint8 petFoodType) _inputs ) view returns ( uint256 );
function getIterationDurationForCurrentExpedition ( uint256 _expeditionId ) view returns ( uint64 );
function getNextIterationStartTime ( uint256 _expeditionId ) view returns ( uint64 );
function getRequiredFee (tuple( uint256 [] heroIds , uint256 questInstanceId , uint8 attempts , uint8 level , uint8 questType , uint24 iterations , uint16 staminaPotions , uint8 petFoodType) _inputs ) view returns ( uint256 );
function getRequiredTreats (tuple( uint256 [] heroIds , uint256 questInstanceId , uint8 attempts , uint8 level , uint8 questType , uint24 iterations , uint16 staminaPotions , uint8 petFoodType) _inputs ) view returns ( uint64 );
function getTotalExpeditionDuration (tuple( uint256 [] heroIds , uint256 questInstanceId , uint8 attempts , uint8 level , uint8 questType , uint24 iterations , uint16 staminaPotions , uint8 petFoodType) _inputs ) view returns ( uint256 );
}
The primary struct for a Quest that has been created on the contract.