andrecronje / rarity

d20srd reference implementation codified in solidity
Other
610 stars 121 forks source link

[Rarity Open Mic] Expansion Request #87

Open murderteeth opened 3 years ago

murderteeth commented 3 years ago

Rarity Open Mic 🎢

contract @ FTMScan contract @ github rarity-openmic.com rarity-openmic.com @ github

Rarity Open Mic

A lithe, robed figure takes the stage with a flourish. The bard sings out and a hush sweeps over the rowdy tavern...

Your bard rolls a Perform skill check with these outcomes:

Requirements

Rewards

Skill check modifiers

How to play

The easiest ways to play Open Mic at the moment are:

Update - Open Mic V2 (October 25 2021)

⚠️ A vulnerability in the Open Mic V1 contract has been identified and patched. A new contract, V2, has been deployed. The vulnerability allowed arbitrary prize transfers. No V1 prizes were compromised. All V1 prizes have been re-minted in V2. Use the V2 contract from now on: https://ftmscan.com/address/0x29d51e8736fcc8c2662aa1b2cf46753d5918606f

All of your prizes are intact!

🐞 The V1 contract minted two NFTs on a critical 20 role. Unfortunately this caused gas to run out for most of you that should have gotten a secret mission pass. V2 only mints a mission pass on crit roles. DM your V1 transaction to me if you think you're missing a mission pass.

🎲 The V2 contract features an odds(uint256) function. Pass this function your summoner's ID to get odds on winning the perform adventure (just divide the result by 10e18).


Inspired by theRarityForest


Bounty

Love working on this. More coming!

Please send bounties and donations here: 0x8BB5d5A7706Dfd2D25ABE850388e23fe0c54f933

WilliamOpenshaw commented 3 years ago

Love this direction. Would be happy to contribute text if you feel like going in a Stand Up Comedy direction.

murderteeth commented 3 years ago

Stand Up !! ...yeah that's interesting. Have ideas on how that would work?

WilliamOpenshaw commented 3 years ago

Stand Up !! ...yeah that's interesting. Have ideas on how that would work?

Depending on how the player roles, their character will say a role-play game themed version of famous stand up jokes.

20 or above - Murder 15 to 20 - Hilarious 10 to 15 - Funny 5 - 10 - Controversial and not quite funny. 1- 5 Bombing

PehoJukka commented 3 years ago

Hi!

This is a great idea and would love to try it but I'm not sure if I'm doing it right? I did it on FTMScan with two different Bard's with maxed out Charisma points, but didn't manage to entertain the crowd! :)

This is the Transaction Hash from the second attempt: 0x1254d0529e4b27d9646f5ef3d959855c5d3b7f5889b15b461d589f080f8e8e9d

I have some forest treasures too but how you can give them to a summoner? Stand up would be a hilarious too!

Thanks!

MeesterGamer commented 3 years ago

Awesome idea! I'm fairly new to, well, everything! Managed to write a contract successfully, but I have no idea how to read the outcome Transaction Hash is: 0xfba6c3902aeaa27a12ab8e5073527907700f7535e7188ce2b4cb6ee9e65eaa49 Looking at the logs it wasn't a success...

murderteeth commented 3 years ago

Hi!

This is a great idea and would love to try it but I'm not sure if I'm doing it right? I did it on FTMScan with two different Bard's with maxed out Charisma points, but didn't manage to entertain the crowd! :)

This is the Transaction Hash from the second attempt: 0x1254d0529e4b27d9646f5ef3d959855c5d3b7f5889b15b461d589f080f8e8e9d

I have some forest treasures too but how you can give them to a summoner? Stand up would be a hilarious too!

Thanks!

Hi @PehoJukka , looks like your summoner doesn't have any Perform skill points. I verified this by calling get_skills on the rarity skills contract: https://ftmscan.com/address/0x51C0B29A1d84611373BA301706c6B4b72283C80F#readContract

image

The easiest way setup your skill points is by using one of the UIs. Have a look here: https://github.com/andrecronje/rarity#uis

murderteeth commented 3 years ago

Hi @MeesterGamer, I just checked your summoner as well. Same problem, you don't have any Perform skill points. Try out one of the rarity UIs to setup your skill points: https://github.com/andrecronje/rarity#uis

MeesterGamer commented 3 years ago

I noticed. I overlooked the skill check in your document. Now I have to wait 7 days for another go...

murderteeth commented 3 years ago

@MeesterGamer, yes I regret not adding a getOdds function!

It would work like the scout call in the cellar dungeon... that is, it would tell you your odds of winning before calling perform.

Alas... getOdds is on the kanban for Open Mic v2 ;)

PehoJukka commented 3 years ago

Thanks for your advice! I also rushed to perform without any skills to do so! :)

Now I think I succeeded with another Bard and got the doorprize? When I went to query that ID I get this response:

[ doorPrizes method Response ] string : Error: Returned error: execution reverted

Transaction: 0xf132d9782b8b3d51babf2335482dc1528305f030cb2803dec504c8b4007df174

You can query the ID's from 1 to 13 and it show's the prizes but after that this same response? I'm sure I'm not understanding how these contracts work and sorry bother with (maybe) silly questions!

When doing a 14. ownerOf query it shows my summoner as an owner still...

Thanks in advance! :)

murderteeth commented 3 years ago

Hi again @PehoJukka ...your questions aren't silly at all! In fact, I'm quite flattered πŸ™πŸ˜...

The best way to see your prizes is to use the getPrizes(sommuner) function on the contract. In the case of your second bard, that looks like this:

image

(congrats on your signet ring of the 🐟!)

MeesterGamer commented 3 years ago

@MeesterGamer, yes I regret not adding a getOdds function!

It would work like the scout call in the cellar dungeon... that is, it would tell you your odds of winning before calling perform.

Alas... getOdds is on the kanban for Open Mic v2 ;)

Tried it again today with a new Bard. Got a Crate of Goblin Wine! Cheers!

murderteeth commented 3 years ago

@MeesterGamer, yes I regret not adding a getOdds function! It would work like the scout call in the cellar dungeon... that is, it would tell you your odds of winning before calling perform. Alas... getOdds is on the kanban for Open Mic v2 ;)

Tried it again today with a new Bard. Got a Crate of Goblin Wine! Cheers!

Goblin Wine! A true delicacy !! 🍷😈🍷

murderteeth commented 3 years ago

Hi @MeesterGamer and @PehoJukka, you can now view your prizes at rarity-openmic.com.

PehoJukka commented 3 years ago

Hi @MeesterGamer and @PehoJukka, you can now view your prizes at rarity-openmic.com.

Thanks! I went to view the prizes, but I got this message when connected with my MetaMask...

Hey, you don't have any bards... Head over to Rarity Extended and summon a few buddy!

I have some bards.

murderteeth commented 3 years ago

Thanks @PehoJukka, I'll take a look. What's the public address of the wallet you used to connect to the site?

PehoJukka commented 3 years ago

Thanks @PehoJukka, I'll take a look. What's the public address of the wallet you used to connect to the site?

0xED8E924735F590572361b52657ABd9A3260F35a0

rarity-openmic

murderteeth commented 3 years ago

0xED8E924735F590572361b52657ABd9A3260F35a0

Thanks, I can reproduce now. Looks like you have a lot of summoners :) ...Unfortunately I think the frontend code needs to handle that better. That error is happening when the app tries to get all the data about your summoners which currently results in a lot of calls getting pooled together for one really big request. Maybe too big! Not sure yet, but thanks for pointing this out. Let you know.

murderteeth commented 3 years ago

Hey @PehoJukka , fyi l opened an issue for this in the SDK project: https://github.com/murderteeth/rarity-react/issues/1

murderteeth commented 3 years ago

Update - Open Mic V2

⚠️ A vulnerability in the Open Mic V1 contract has been identified and patched. A new contract, V2, has been deployed. The vulnerability allowed arbitrary prize transfers. No V1 prizes were compromised. All V1 prizes have been re-minted in V2. Use the V2 contract from now on: https://ftmscan.com/address/0x29d51e8736fcc8c2662aa1b2cf46753d5918606f

All of your prizes are intact!

🐞 The V1 contract minted two NFTs on a critical 20 role. Unfortunately this caused gas to run out for most of you that should have gotten a secret mission pass. V2 only mints a mission pass on crit roles. DM your V1 transaction to me if you think you're missing a mission pass.

🎲 The V2 contract features an odds(uint256) function. Pass this function your summoner's ID to get odds on winning the perform adventure (just divide the result by 10e18).