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.