andrecronje / rarity Goto Github PK
View Code? Open in Web Editor NEWd20srd reference implementation codified in solidity
License: Other
d20srd reference implementation codified in solidity
License: Other
Hello,
Duplicate function name on line 982 and 1000
improved_counterspell
Thank you
Dark Planet is a planetary game based on Rarity. Rarity is a planetary inhabitant. This is a world fighting for energy.
1.startCollectingEnergy(uint256 rarityID)
Become a resident of the planet and start collecting energy. At this time, the user's status is public, and the energy grows with time. The user in the public state is at risk of exposure. The exposed summoner will have a battle. The energy of the winner increases, and the energy of the loser returns to 0, which is a dead state. Users in the dead state can execute the triggerCaptureMechanism function. If the execution is successful, the energy increases, and the dead user will be reactivated and can participate in the energy plundering war again.
2.endCollectingEnergy(uint256 rarityID)
Stop collecting energy. At this time, the user's state is hidden, and the energy stops growing. There is no risk of exposure to hidden users.
3.triggerCaptureMechanism(uint256 rarityID)
All planet residents can execute this function. Success requires luck. After the capture is successful, the executor's energy increases.
According to the law of the dark forest, users do not know when they will be exposed or who their opponents are. In order to improve the survival rate, users should try their best to increase their energy before exposure.
The function will continue until the last 100 people, and the program will stop capturing.
In version 1.0, 100 users will be screened out and 100 planets will be derived. The maximum inhabitants of each planet is 10,000. The new planetary energy plundering war has begun. the exposed summoner will have a battle, and the summoner’s attributes and skills will determine the result, The resources of the losing summoner will be plundered.
The 2.0 version use land. land is the base layer of DarkPlanet, and its compatibility will be better.
Version 1.0: It has been developed, with 8,000 participating residents, and 298 looted users.
Version 1.0 UI: https://darkplanets.vercel.app, still under development.
Version 1.0: Ready to open the second planet and let more people participate.
Github: https://github.com/DarkPlanets
Twitter: https://mobile.twitter.com/geekery_eth
Discord: https://discord.com/invite/98DYyHAZ
Hi summoners,
We're a team of 3 developers from Vietnam. We've been developing the Rarity UI site and spreading it over our Vietnamese community since the beginning. We aim to make Rarity an Idle Game that even can play on Mobile, of course, with the support from Metamask wallet. The character designs were made by Evan Todd-McCoy who's really famous on Reddit or Artstation site with his pixel creations. Also, thanks to you and @tansawit for initiating the project on Github.
The project was launched as open-source and for sure will keep it that way.
### Current Feature
### The Early Version of The Game Mechanics
As our goal to make an Idle version of Rarity to conquer the Goddess Tower, we plan on settle down the simple version of the game mechanics with the basic rules as:
### Team
We have a team of 3 part-time developers for now.
Any donation is greatly appreciated.
Wallet Address: 0x8951555e012D4A0BfCf7eFd3F9908D97a55E7F91
Website: https://rarity-hawk.netlify.app/
Twitter: https://twitter.com/GoldHawkEye189
Rarity Achievement is a smart contract to create a decentralized achievement system for Rarity by Andre Cronje. The concept of the project can be adapted and adopted by other crypto games in the ecosystem.
If you want to see an example of a contract that integrate with RarityAchievement you can look at RarityBlockSandbox.sol
What your contract needs to do is
First of all, you need to import both the RarityAchievement interface and Model
import “../interfaces/AchievementInterface.sol”;
import “../data/AchievementModel.sol”;
Save a reference to the RarityAchievement contract like this
AchievementContractInterface _ac;
Declare the Achievement Metadata ID used by your contract
uint256 private mobAchievement;
uint256 private miniBossAchievement;
uint256 private bossAchievement;
Register your achievement metadata calling _ac.registerAchievement(achievementMetadata);
for each of your contract’s achievements.
registerAchievement
takes a metadata
as input and return the metadataID
you need to send the contract when you want to award an achievement to a summoner.
The model of the metadata is like this:
AchievementModel.AchievementMetadata metadata = AchievementModel.AchievementMetadata({
id: 0, // ID here is not important, will be replaced by the AchievementContract
source: address(this), // source is not important, will be replaced by the AchievementContract
source_name: "The nightmare dungeon!",
difficulty: AchievementModel.Difficulty.Uncommon,
title: "Defeated first miniboss",
description: "You have been brave enough to defeat the Eruptus, the mini boss of 'The Fantom Dungeon'",
points: 10
})
I’ll explain each of those
id
is the ID of the metadata. You can pass 0
because it will be replaced by the RarityAchievement contract when you call the registration processsource
is your contract’s addresssource_name
is the name of your contract. For example The Fantom Dungeon
, it will be used by web apps to know from which contract the achievement comes.difficulty
is how difficult is to get this achievement. It goes from Common
to Legendary
title
is the title of the achievementdescription
is the description of the achievementpoints
are the number of achievement points that the summoner will receive when awarded the achievement. Try to be fair otherwise, your contract will not be used by other web apps/contracts!id
and source
are optional, they will be replaced by the RarityAchievement contract, other properties are required, otherwise, the transaction will revert!
When you have registered all your achievement you just need to award those achievements when the summoner has done some specific action like for example
To award an achievement to a summoner you need to call _ac.awardAchievement(summonerId, achievementMetadataId);
.
Please be aware that:
If you want to be sure that a summoner already owns an achievement you can call _ac.hasAchievement(summonerId, achievementMetadataId);
If you want to build a frontend to list the summoner’s achievement you are in the right place. These functions could also be used by other smart contract developers to create derivative contracts.
For example, you could allow a summoner to craft the ultimate sword only if he owns the achievement unlocked after crafting 100 swords. Or you can allow accessing the final dungeon only if the summoner owns all the achievements from previous dungeons and so on. Just use your imagination!
Back to web3 devs. You have 3 utility functions you can call:
hasAchievement(uint256 summonerId, uint256 metadataId)
will return a bool
. It will be true
if the summoner owns a specific achievement.
getPoints(uint256 summonerId, address[] memory sources)
it will return the total amount of achievement points owned by the summoner.
The sources
is an array of whitelisted contracts from which you want to filter the achievements from. For example, you want to get only points gained by ContractA
and ContractB
contracts, you just need to pass those addresses as an array.
If you don’t want to filter at all, just pass an empty array like this []
function getAchievements(uint256 summonerId, address[] memory sources, uint256 offset, uint256 limit)
will return the list of Achievements owned by the summoner. The sources
parameter is used for the same reason: get only the achievement awarded from those contract addresses. The offset
and limit
parameters are used to paginate the results (because of RPC limitations). Use them only if you get some errors while querying the contract otherwise just pass 0
as the offset and 9999999999
(or any big number) as the limit.
I’m open to discussion and feedback, if you have any please DM me on Twitter @StErMi or open a GitHub issue/PR!
Website: https://www.raritypvp.xyz
How can I get all summoners associated to my address?
balanceOf
shows only number of tokens I have, but I'd like to retrieve the full list of token IDs by my address.
Is it possible to do via rarity contract?
I'm currently building factions
, a set of smart contracts that aim to create Battlefields on which Factions of summoners can fight to win prizes. The code is available here and I have been working with rarity.game to integrate it on the UI.
I'm not sure it qualifies for a grant, but since it's already under construction, why not try?
Factions are simple: there are 5 of them (The Harpers, The Order of the Gauntlet, The Emerald Enclave, The Lords' Alliance and The Zhentarim) and any summoner with its character created (i.e. has attribute points set) can join one. Once "enrolled" in a faction, a summoner must wait for a delay before enrolling in a new faction.
Any other contract can query the enrollment status of a summoner to develop more features (i.e. Guilds of summoners only from a certain faction).
Battlefields are places where enrolled summoners are sent to fight for their faction. To be sent, a summoner must pay a tribute to its faction, which is stored in the faction's treasury. Each summoners, when joining the battlefield, adds power to its faction. By the end of a period, a clash between factions starts and the faction which has the highest power wins the treasury of all the other factions. Summoners of the winning faction can then claim a share of the tribute they earned.
Each battlefields is an independent smart contract, with its own rules (how summoners contribute to the faction's power, tribute to pay, period between clashes, etc.), which allows evolving with the ecosystem as it grows. The first battlefield is a simple one, using only the skills and attributes of summoners to calculate the power they add to their faction
The world map provides 2D coordinates and a way to move as a new building block for new ideas.
UI -> http://rarity-map.world
Contract -> https://ftmscan.com/address/0xe6CDE3b637A9c28Ab38D51147B531C323CA35021.
Contract code -> https://github.com/npasquie/Rarity-World-Map
UI code -> https://github.com/npasquie/rarity-map-front
medium announcement -> https://tobou.medium.com/introducing-raritys-world-map-7605021966f6
twitter announcement -> https://twitter.com/t0bou/status/1436694510025781255
After spawning, a summoner can move every 24 hours. Every summoner spawns on a random location inside the spawn square, which is two weeks of travel wide. The spawn square is in the middle of a massive space to explore, which borders can be reached in two years.
The contract is upgradeable, if asked to, I will delegate / burn my upgrade ability. I made it upgradable to allow for total freedom of creativity on top of the map.
The map has sparked some discussions. The most anticipated feature seems to be land claiming. We can imagine guild wars for territory, ressources tied to specific places, dungeons available in specific locations, commerce across the land, etc.
With another interested dev, we are in discussion about land claiming implementation.
address for bounty (any amount welcome) 0x188e62B5995932EE1c9b810DdB6400a03153c3Cb
Thanks for reading !
Missions
Introduction
Build Mission System for the ecosystem, it allows heros to gain extra bounties by claiming and completing missions to increase the playability.
Description
Initially, each hero claims a random daily mission every day, the mission is allowed to be switched twice every day (if the hero is not satisfied with the given mission) , and each switch will cost the hero 20G(the amount can be negotiated, it is to add gold coin recovery option for the game.
Roadmap
*Add daily mission claim feature: like taking an adventure, scouting the cellar once, minting an equipment or leveling up once.
*Add Dungeon mission.
*Add exclusive class mission: like class missions to become a grand wizard.
*Add more and diversified missions as the game develops.
Fund Usage
*The development of code contract
*Contract deployment and further support
Issue
Since the game is currently at its initial stage, there are few manipulable actions, which means that initial mission count maybe lack of numbers, and continuous updates are required. We wonder if we can apply for the grant with this proposal, if we reach an agreement, our team will start to code.
I can see in source code of rarity.sol that there are implementation of function "tokenOfOwnerByIndex" but it is not present in deployed ABI, neither in ftmscan READ CONTRACT interaction.
Why is that?
And what is recommended method for getting all summoners of one address?
Looping through all summoners dont seems to me as a good idea.
Line 39 in a89c3bd
A more portable rarity gold binding to an address and interchangeable with original rarity gold (1:1 mapping).
so users can easily trade gold in the wallet.
address:
https://ftmscan.com/address/0x00ed456be3257ce8e7f70e3f63c473f201444921#writeContract
repository:
https://github.com/RarityProject/RarityPortableGold/blob/main/RarityPortableGold.sol
Bounty receipt address: 0x9B9Fc5Eb2280E217E169eD96aFd7E7CAD33eAfB8
Line 32 in d7d2556
I have started to pull my Brownie scripts out of my private repos and put them into a git repo dedicated to Rarity. This will make it easy for other people to install them and use Python to automate their summoners.
I already have some scripts working, but they haven't yet been copied into my repo.
These scripts use multiple smart contracts to manage the summoners.
There are a few utility contracts that are probably useful for everyone:
I found the names could be set multiple times though others use it. Should not be there a claim method to own the name?
Raritymmo.com is my vision of what a blockchain RPG experience should be like. I would love support to take more time to dedicate to this growing project.
To build a UI with an amazing user experience, so that new users are welcomed into an MMO built on the blockchain. My primary focus is creating a story around the experience, rather than automating the tasks involved with the process.
Introduction
Most of the Decentralized Applications are browser based. While this makes the contracts accessible for many devices, mobile users do not interact smoothly with the application since browser interaction (especially on decentralized apps) is rough.
An mobile application that will allow users to interact with rarity contracts in Android will be created. This mobile application will also send the users notifications when their time for adventure or dungeon has come.
Probably a dumb question since I havent written any solidity in years, but how do you build this?
Just running solc ./*.sol
(solc version 0.8.6) gives me some error: Compiler error: Stack too deep when compiling inline assembly: Variable value0 is 1 slot(s) too deep inside the stack.
Is there currently a method for tracking which weapons and armor have been "equipped" by a summoner? Similar question about memorized spells for relevant classes could be asked.
If such a method does not exist, I propose that a mechanism be introduced to track which weapons and armor have been equipped by a summoner.
Using the inventory of the summoner is not sufficient IMO as it will not enforce the relevant requirement and restrictions for equipping an item.
A method to equip
A method to unequip
A method to check currently equipped
Rarity Game is a complete UI to interact with rarity.
With a couple of tools, it enables users to handle a lot of summoners while maintaining the aspect to individually craft each of your summoners to be the best one.
Rarity Game includes:
Rarity Game Is developed by 3 members of the Rarity community Twitter handlers: (0xchronos, mat_nadler, 0xlucid).
A really simple way of introducing economics into world is discovery of components (during adventure) enabling spell use within adventure or outside, e.g. buffing adventurers before adventures, restoring/curing other useful economic activity, e.g. identify, mending, locate object (directing which dungeon/adventure to pursue)
Quite excited how this progresses commerce
Hi, summoners!
We are a small team of two, from Argentina, working on rarity-visualizer.
We were one of the first UI for Rarity and we have been working on this since we started to see the contract on ftmscan. We continue pushing new changes every day but it's hard to keep up with the daily updates.
We would like to ask for a bounty in order to keep it up with all the changelogs we have in mind. All the basics of the core contract project, with additionals like gold, attributes, dungeons, and naming
Obviously, these changes are a drop in the water in comparison with all the changes we have on the plate planning to release next week!
We planned to keep this UI, as simple and minimal as possible, as a visualizer! A comfortable way to check and update your stats without too much hassle
I invite everyone to visit rarity-visualizer and of course, if anyone wants to be part of the team, we are looking for paid designers!
Feel free to drop comments or suggestions!
Thanks for reading!
Address : 0x4074e13296B353eCD4796925bb61DaF2dE9945d0
PS: We receive a lot of donations but it would be nice to have something secure to start paying to a designer/programmer
I am working on a Guild contract that allows multiple players to control the same summoners.
The guild also has a name, a url, and an erc721 NFT for use as a profile picture.
It allows the owner and any members to combine multiple transactions into one.
This contract can own summoners itself or manage the member's summoners if they approve it.
As is, all members have a lot of power over all the summoners, so DO NOT JOIN A GUILD WITH PEOPLE WHO MIGHT STEAL FROM YOU.
A Guild can also control a bunch of NonPlayerCharacters. This will give the guild members easy access to resources and leveled summoners.
WIth the right (currently unwritten) proxy smart contracts added as members, limiting people from stealing from the guild is possible. I don't need this for myself at this point, but I'm thinking about it and believe it would be very useful for the community.
Long term I want a guild that is fully autonomous. Anyone would be allowed to call "work" on the guild and help the guild collect xp/gold/crafting materials. In exchange, they would receive "renown". This renown is not transferrable, but it can be traded with the Guild for the gold/crafting materials/npcs owned by the Guild.
Once there is an AMM for Rarity, the guild could even deposit its materials there.
We want to complete a basic game framework and present it to you guys. Though the pace may be slow, don’t worry about it, we will let you know as soon as we have progress.
Game introduction
Title: Rarity World
Type: Pixel ARPG
Engine: cocos-2d
Platform: PC (more subsequent compatibility)
Aim: To create a Pixel ARPG that players can play right away and enjoy themselves.
Personas, skills, and equipment can be read directly from the user's wallet for the attribute association of game characters.
Daily tasks are implemented by contracts, and turn-based system is adopted in this game.
The current NFT ecology is used in the process of equipment acquirement, skill upgradation, dungeon adventures, etc.
Players can operate the game intuitively and interact with other players to complete tasks. So irrelevant imagination and confusion are unnecessary when facing the words that appear in this game.
This game is a huge project, and we will improve it gradually.
The initial version is coming soon.
- Linked users will get user NFT information
- Create roles (each profession’s features and skills will be displayed)
- Role list
- Users can switch roles at any time
- Complete daily tasks and dynamically display the time of the next task (training animations will be displayed)
- Dungeon adventure (turn-based display of battle results)
- Character skills (you can dynamically bind skills to the corresponding characters in this game)
- Chat channel (international communication)
- Setup system (language and sound)
- Multi-language support (only Chinese and English are supported in the early stage, and more languages will be used later)
We are an open team, and UI/VI designers are needed here.
You can contact us if you are interested.
Current Members:
Project Address:
We are developing the game actively, and the project website and address will soon be available.
We would like to invite you to join Rarity World after the completion of V 0.1.
Specific project progress will be updated in real time on the front page of the official website.
Login Page
Role selection interface
In-game interface
Setup interface
Combat interface
Skill release interface
Backpack interface
Equipment interface
I'm currently using this subgraph that should keep address ownership up to date. It gives you a bit of data, but I'd like to see that expanded on quite a bit.
If multiple contracts can be aggregated, a new endpoint that:
Vision
RarityManifested is a UI that is built on top of the contracts by Andre. Our mission is to bring high-quality graphics and fun gameplay mechanics to RarityManifested. With the current state, the UI is heavily leveraged the core contracts: summoner, abilities, skills, codex. Once the UI has fully integrated the core mechanics, we plan to introduce quests, games, guild, etc.
Qualification
RarityManifested is a working UI today with summoning, adventure, dungeon, inventory, gold claiming, attributes distribution. Skills distribution should be released shortly. Faction and lore are also being worked on to make the game more immersive rather than just point and click!
Since release just about a 1 week ago, RarityManifested has brought 300k pageview and 25k users to rarity.
Fund Usage
The fund will be used for the following purposes:
References
Twitter: https://twitter.com/raritymanifest_
App: https://www.raritymanifested.com/
Discord: https://discord.gg/mNrhvWU4xU
Already working on the spell list but this request is to placehold management of weapon/armor/item/adventurer/dungeon/boss spells & enchantments.
Spells are complex and may affect attributes, game mechanics (e.g. hp, AC, dis/advantage) as well as summon monsters, magical items and leave persisting effects.
Intention is to deliver code keeping true to the d&d20 mechanics and interfaces for others to lego build UX and components on top. Please reach out to me on discord. e.g. looking for community to build UX to equip spells prior to dungeon, remove effects from adventuring, mint enhancements for items in the economy
Only myself at this point: will limit to core mechanisms
I noticed that "SUMMONER_ID" is misspelled on this contract.
The current dice contract can be manipulated by miners. It also returns the same roll on every call inside a transaction. This works fine for the current adventures, but I think there are more advanced adventures that will want truly random dice.
I think using Chainlink's VRF would work well. As far as I can tell, it is currently in Fantom's testnet but is not yet on mainnet. If anyone knows the mainnet launch date (or addresses), that would be appreciated.
In addition to the smart contract for dice. I will write a best-practices guide for using the dice in your adventures.
We built Rarity Extended with the idea to provide a smooth gaming experience for people who want to play Rarity. Our goal is to allow users with no - or little knowledge - on contract interaction to be able to play the game, and the experienced folks to be able to enjoy a sweet retro UI.
The whole project is open source and we will keep it that way.
Right now, in the UI you can:
We are currently a group of 6 people
Character Sheet to be able to customize your adventurer backstory.
Adventurer Customizer (based on the sprite you have you could select every element to build YOUR adventurer, saved on-chain as SVG)
Skills for your adventurers (Rarity-Extended/RarityExtended#44)
The Forest V2, send your adventurer in a multiday adventure in the Forest (Rarity-Extended/RarityExtended#59)
The Bank, deposit and earn tokens and yield thanks to ape.tax (Rarity-Extended/RarityExtended#73)
Items from the officials codex, check all your items directly in RE (Rarity-Extended/RarityExtended#83)
Crafting, use your loot to craft weapon and armor (Rarity-Extended/RarityExtended#83)
Tooltip and Info, a nice UI (the best) is nice, but to be able to get info about the game, is better
The Boars, coop/versus quest where you have to maintain, or kill, all the boar ecosystem
RarityName & RNS, build you charactersheet for you year long adventure
Customizable Adventurers, be unique (sprite/svg custom)
UI/UX reflow, let's build something smooth and better
Multi-step adventure, what if you could start an adventurer with multiple path, for days ?
Rarity Bazaar is right now the most used platform for trading unwrapped Rarity gems, It doesn't require liquidity pools and is very convenient for miners: they are able to set up sell listings before the gems are mined, so once they do get mined, they automatically are put up for sale. Smart contract for the bazaar is custom made and so is the design. I went with the oldschool game marketplace look and feel which makes it stand out from other modern UIs.
EDIT: I now finished writing code for Craft(I) material trading, soon bazaar will have UI for it and will accomodate trading for it
EDIT: Craft(I) material trading is now active with UI on Rarity Bazaar
I would like to: onboard a front-end dev to correct and improve my design and continue adding features + expand the marketplace to acommodate other tradeable items.
When I input the same data that works in 20 _simulate (Read) in 2 _craft (Write) I get a high gas error.
I am using summoner: 503925 (from my wallet), base: 1 (Goods), item 2 (candle) and no materials. Crafting appears to work in Read but not in Write. Level 2, Wizard (11), 1,000 Gold and Crafting skill 2. I appear to have all the prerequisites.
Cannot find the issue. Wondering if anyone can replicate?
The random function 0x7426dBE5207C2b5DaC57d8e55F0959fcD99661D4 result is offset by one, so it does not match dice values.
For example, d6 produces 0,1,2,3,4,5 rather than 1,2,3,4,5,6
At the moment this is affecting the Crafting check, since the d20 result is 0-19 rather than 1-20 as it should be per SRD.
The Rarity Battle is an add-on to the rarity ecosystem that enables summoners can fight for bonus.
User can call fight() for start a battle. Fight cost 100RB for ticket, and paid 1FTH as the bet.
When win, the paid value and half of the bonusPool will add to the sender's bonusBalance. If the summoner combo_win 20 or more times, he will get the whole bonusPool.
When loose, the paid value will add to the bonusPool.
Every summoner can fight 10 times for free, after 10 times, can call exchange() to exchange RB from RarityGold(1:1) OR call buy() to buy RB use FTM (1:500)
Currently there has no UI for Rarity Battle.
FantomEye is a native Price bot for Fantom Opera. It has been serving Fantom network for more than four months. It has been installed in more than 215 discord (including rarity discord) servers and more than 25 telegram servers. It is one of the most used price bots in Fantom Ecosystem.
FantomEye is not just a basis price bot, it display token info, DEX info. In the future, there will be more features to come, like, APY calculator, Farm indicator, rug check, supports for more NFTs.
Recently FantomEye added a command to support Rarity game. People can just type .game rarity <summoner_id>
and bot displays summoner's info, inventory, and quests.
So far, it supports @andrecronje contract and Third party contracts for Names, and Dark Planet.
I am the only one who is working on FantomEye, and I am planning to add more features for Rarity game, which will be displaying summoner's armor, weapons, accessories, all new dungeons, and new quests and Arenas.
My plan is to connect Metamask with Discord/telegram account and let people interact with Contract using commands, so they can just do everything on Discord/Telegram. Like, they can buy stuff, upgrade weapons, go to arena/battle, pretty much everything that contracts allow.
FantomEye is very popular among Rarity adventurers, with the higher demand and more people using it, I might have a separate bot RarityEye just for Rarity and it will be full game (UI).
Donation Address: 0x14c87ceE8109cEf4fcE934551f5cc7bd4d94037f
Discord: https://discord.gg/58DgJy8Djr
Telegram: https://t.me/FantomEye
Twitter: https://twitter.com/eyefantom
You can try the bot in Rarity Discord as well: https://discord.com/invite/F5URbkcvmD
Rarity Mining is an expansion for Rarity which introduces a gathering skill and accompanying features to Rarity. Summoners will be able to mine rocks and other resources from a variety of mining locations. The assets will be linked to a specific summoner but will also be ERC20 compatible and withdrawable to a user’s wallet.
Initially we start with one mining location (The Belonav Cave) where summoners can collect Rarity Rocks based on their strength. There are no skill or class prerequisites for collecting rocks and thus initially the rocks will not hold much value. In the future those rocks will be able to transformed into items and other resources which will eventually lead to new items.
The contracts this extension starts with are:
An user interface (based on Rarity Extended) will be maintained to interact with the current and future contracts required to play the mining expansion. It is open source and publicly available at raritymining.com.
3.5e durations have range of rounds, minutes, hours. perhaps minutes most flexible choice & enables spell/skill countdown similar to eve ship building.
Hi,
Based on [1] "Greater Weapon Specialization" [2] should have prerequisite on 49 and 50 (given enumeration in #6), because now you don't need to have "Weapon Specialization" to learn this feat.
It would introduce some complexity to allow more feats as prerequisites, so maybe to keep system simple this little nuance could just be omitted, especially if it's just one feat.
Just opening discussion if it should be changed or kept.
[1] — https://www.d20srd.org/srd/feats.htm#greaterWeaponSpecialization
[2] — https://github.com/andrecronje/rarity/blob/main/feats.sol#L938-L940
Andre's post suggests that CRAFT is a CLASS SKILL for WIZARDS (reference: https://andrecronje.medium.com/?p=7dded308a607); however, line 118-119 list CRAFT as a FALSE. This is leading WIZARDS to pay 2 skill points vs 1 to gain CRAFT.
else if (_class == 11) {
return [false,false,false,false,true,false,true,false,false,false,false,false,false,false,false,false,false,false,true,false,false,false,false,true,false,false,false,false,false,true,false,false,false,false,false,false];
Thanks for building this. Amazing stuff! /Orion
I found an html page for calculating standard D&D 4E point buys and modified it to use Rarity's point buy system (it was a bit more work than just changing the point buy cost).
Here is the code: https://github.com/SatoshiAndKin/rarity-brownie/blob/main/misc/point-buy.html
Here is a selection of the "good" ability score arrays: https://gist.github.com/WyseNynja/134b735b221ddf15ea4aa244096d07ce
If I make these pages prettier, will they qualify for an ecosystem bounty?
struct item {
uint8 base_type;
uint8 item_type;
uint32 crafted;
uint crafter;
}
rarity/core/rarity_crafting_common.sol
Line 593 in 45246ab
Also, while reading the contract it looks like there is no way to assign items to a summoner. Is this correct?
The Great Plains is an add-on to the rarity ecosystem that enables users to hunt and loot creatures on the Plains.
The current mobs are the Slime,Wolf,Horse and Buffalo.
Users can call the startHunt()
function to begin their hunt.
After four days they can then call killCreature()
to complete their hunt and receive their loot.
In the codex feats 1 (https://github.com/andrecronje/rarity/blob/main/codex/codex-feats-1.sol) at ID 64 "Improved Shield Bash" the "prerequisites_feat = 64;" <-- Is set to 64, which is the ID for this same feat. It should probably be 63 which is the shield proficiency.
Also in Codex Gambits (https://github.com/andrecronje/rarity/blob/main/codex/codex-gambits.sol) there is in a double space in line 58 "return (_id, 0, "Ally: Status: Berserk"); dunno if this matters or not :D
The Mercenary Camp is a place where up to five adventurers gather to embark on a raid against a monster.
I've written a medium Article with the full details here.
Version 1 of this expansion is finished and deployed. More than 60 adventurers have already participated in a raid.
See the Roadmap for future plans.
Deployment address: 0xa8125f9de317093F3404c2899a6e27B0FaEFeAF0
The first real use case for crafted weapons and armor. The items affect the summoner's stats based on d20srd rules and without any items, the summoners will have a tough time in battle.
In Version 1 of the Mercenary Camp, adventurers can battle Dragons from the Lair of Wisdom game.
These Dragons are cared for by Trainers (players in their game), have their own stats and are fully integrated into this expansion.
The Dragons' stats are scaled to provide a challenging, but doable fight for the adventurers. I believe this integration of another thriving FTM game ecosystem is a much more engaging way to play instead of randomly generating monsters.
However, the expansion is not limited to just Dragons. In the future, adventurers can raid all kinds of monsters across the Fantom network.
I tried to base the combat system as much as possible on the d20srd rules.:
Every attack emits a log that can be parsed by an UI to re-create the full combat. Here is an example with just log data from a live raid:
For now, the expansion does not use any tokens, fees or rewards. Everyone can play as much as they want for free.
What they do get after a raid, is a customized tokenURI with a battle report:
However, the expansion can easily account for handing out any kind of loot to the adventurers. I would of course be happy to discuss and introduce a reward that can be used in the ecosystem.
Currently the raids can only be conducted via direct contract calls (FTMscan for example).
I am working with the rarity.game team on an UI for the expansion. Here is a sneak peek:
However, this will take a while to develop as working on core features of the game is a priority.
FTM Address for Bounty: 0xCd0f3a4b2495Aa052465c82a1C18599EBd1280e5
Hello,
I have been building a marketplace that I think fits in the Rarity world and is open enough to anyone to create tradeable items that comply with the internal market.
Take a look: https://github.com/rarity-adventure/rarity-periphery/blob/main/contracts/market/RarityMarket.sol
I need feedback to know if is following your idea.
the subgraph didn't update summoners level-ups.
The issue is with the event emission.
Variable _level
is the old level, not the new one.
function level_up(uint _summoner) external {
require(_isApprovedOrOwner(msg.sender, _summoner));
uint _level = level[_summoner];
uint _xp_required = xp_required(_level);
xp[_summoner] -= _xp_required;
level[_summoner] = _level+1;
emit leveled(msg.sender, _level, _summoner);
}
I am working on a generic Dungeon contract that takes ownership of a player's summoner for multiple days.
The contract will control multiple NonPlayerCharacter contracts. The NPCs will have randomized ability scores.
Different dungeons will have different NPCs and different rooms attached to them. They will be very modular.
Once your adventure has begun, instead of calling rarity.adventure(summoner)
, you will call dungeon.adventure(summoner, action)
. The action will depend on where you are in the dungeon (forward, retreat, short rest, etc.). It will give you the normal daily 250 xp but also do some calls for the NPCs. These NPCs will internally create the gold and item rewards that are earned by completing the adventure.
Unlike existing adventures, these adventures will use securely randomized dice rolls (See #56). There might also be multiple actions needed in a single day.
These dungeons will be dangerous! If a summoner reaches 0 hp, instead of just getting 0 rewards, the summoner will be killed! Gold can be spent at the local NPC church to revive the summoner. All gold earned will be used for the dungeon's rewards.
The "boss fight" at the end of the adventure will involve one of the randomized NPCs. Completing the dungeon exceptionally well will give this NPC as a reward (along with their gold).
I'd also like to figure out a good way to have multi-summoner dungeons (parties of 4-6)
Since I am passionate about gaming, building something for rarity gives me a lot of joy. I built Rarity gem bazaar and it's currently the most used place for trading gems. It is a service + UI for an extension of Rarity, I believe Rarity gems will see more utility and integration in the future and I plan to add features to this marketplace + extend trading to other items.
Enough about the marketplace, what I am currently building and am very excited about is a Thief's Guild, it's a WIP and github for it you can find here . The expansions is aimed to be quite large with a lot of content, so i might need as much help from the community as possible.
Disclaimer: details are far from being final and need to be fine-tuned, main value is inside the concept.
Thief's guild consists of members with different ranks based on experience (earned from guild quests ) inside the guild and a guild master. It has a treasury that can be managed by the Guild Master who can be conspired against by the members and be killed (voting power is determined by experience inside the guild ). Thus opening a window for a new master to be chosen. Allowed classes in the guild: rogue / bard / wizard / fighter (open to discussions).
The guild master can call different functions ( do strategic actions ) which will initiate a cooldown . As an example: a guild master at a given time can choose to either onboard new members to enlarge the treasury of the guild or call bribeGuards() function ( 1 of many different actions ) to reset guards' satisfaction level. If for example, guard's satisfaction level becomes too low they will raid the guild and take x% of the treasury and arrest the guild master for x time, rendering him unable to do further actions for the time being.
Guild members can do stealing quests everyday to gain guild xp, stealing quests may yield loot, ( loot can be different types for different classes ) loot fate is randomness is seeded by acceptanceTime ( open to discussions ). There are different xp multipliers for classes and certain loot also gives xp multiplier bonuses.
optional features/ideas:
This is just the tip of the iceberg, there are other actions/possibilities for the guild but writing everything down here would make the text too big + I believe some discussions need to be done with Rarity community so potential roadblocks can be identified in advance + properties like payments / xp earnings / loot could be fine tuned before being hardcoded inside the contract. I would like to gather people from community and get input from them.
Fund usage:
I am unable to call tokenOfOwnerByIndex
even though rarity.sol utilizes 721Enumerable. Was the function removed?
I'm working on some DLC for rarity (my first smart contract!) and I was wondering what is the base speed of summoners? I was looking in the repo and I couldn't find anything concrete / nothing I could access in code. I saw some descriptions for races and equipment that effects speed, but nothing stating what the base speed of everyone is. If there's nothing concrete in code, I can surely make it but I'd rather interface with the base rarity contract as much as possible for character stats
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.