List
func(id int, priceUgnot int64)- OID
- 0b338e…86f3:3
List details
UpdatePrice
func(id int, priceUgnot int64)- OID
- 0b338e…86f3:5
UpdatePrice details
Cancel
func(id int)- OID
- 0b338e…86f3:6
Cancel details
Buy
func(id int)- OID
- 0b338e…86f3:7
Buy details
ItemLine
func(id int) string- OID
- 0b338e…86f3:8
ItemLine details
ListOpen
func() string- OID
- 0b338e…86f3:9
ListOpen details
addrStr
func(a .uverse.address) string- OID
- 0b338e…86f3:10
addrStr details
damageRow
typeValue
fish2.damageRow
blows
[][]fish2.damageRowblows\[victimID] sums HP actually removed, keyed by the attacker's owner.
Value
<zero>
Bite
func(id int, target int)Bite is one user call and takes no payment. The hit test is sector-center reach plus a 42 degree mouth cone. A miss does not start cooldown. Members of the same party cannot bite each other. A killing blow pays the smaller Pool X and leaves the NFT at 30% HP. The killer share is split by HP removed. Empty cheer and viewer shares pay the season sink.
- OID
- 0b338e…86f3:12
Bite details
payKill
func(atk *fish2.fishBody, vic *fish2.fishBody, rlm .uverse.realm)- OID
- 0b338e…86f3:14
payKill details
payKiller
func(owner .uverse.address, victim int, amount int64, rlm .uverse.realm)payKiller splits the killer share by HP removed among current members. The party realm holds no coins. A solo owner, or a party with no recorded damage, receives the whole share. Dust goes to the highest damage, and a tie prefers the owner who landed the blow.
- OID
- 0b338e…86f3:15
payKiller details
splitWeights
func(amount int64, weights []int, prefer .uverse.address, owners [].uverse.address) []int64- OID
- 0b338e…86f3:16
splitWeights details
addDamage
func(id int, owner .uverse.address, n int)- OID
- 0b338e…86f3:17
addDamage details
damageOf
func(id int, owner .uverse.address) int- OID
- 0b338e…86f3:18
damageOf details
clearDamage
func(id int)clearDamage drops incoming blows so the next entry starts clean.
- OID
- 0b338e…86f3:19
clearDamage details
creditBout
func(body *fish2.fishBody)creditBout counts one finished entry. Leave does not call it. SettleMatch does not count the entry again.
- OID
- 0b338e…86f3:20
creditBout details
liveFish
func(body *fish2.fishBody, now int64) bool- OID
- 0b338e…86f3:21
liveFish details
downHP
func(max int) int- OID
- 0b338e…86f3:22
downHP details
coveredStake
func(killerPool int64, victimPool int64) int64- OID
- 0b338e…86f3:23
coveredStake details
splitParts
func(amount int64) (killer int64, lp int64, season int64, burn int64, cheer int64, viewer int64)splitParts is 80/10/3/2/4/1. Dust joins burn. Season here is only the 3%.
- OID
- 0b338e…86f3:24
splitParts details
splitKill
func(amount int64) (killer int64, lp int64, season int64, burn int64)splitKill folds empty cheer and viewer into season. Callers that book those shares use splitParts instead.
- OID
- 0b338e…86f3:25
splitKill details
strikeDamage
func(bite int, hpMax int, atkSize string, defSize string) int- OID
- 0b338e…86f3:26
strikeDamage details
sizeIndex
func(size string) int- OID
- 0b338e…86f3:27
sizeIndex details
biteOf
func(rarity string, size string, trait string) int- OID
- 0b338e…86f3:28
biteOf details
cooldownMs
func(rarity string) int64- OID
- 0b338e…86f3:29
cooldownMs details
reachUnits
func(rarity string, size string, dodgeTenths int) int64reachUnits is the dodged bite reach in 1/10000 of a world unit. A sector is 8 world units, so the next center is 80000 units away.
- OID
- 0b338e…86f3:30
reachUnits details
inReach
func(atk *fish2.fishBody, def *fish2.fishBody) bool- OID
- 0b338e…86f3:31
inReach details
inReachDodge
func(atk *fish2.fishBody, def *fish2.fishBody, dodge int) bool- OID
- 0b338e…86f3:32
inReachDodge details
denom
untyped stringValue
"ugnot"
ugnot
untyped bigintValue
(1000000 <untyped> bigint)
mintFee
untyped bigintValue
(5000000 <untyped> bigint)
layFee
untyped bigintValue
(2000000 <untyped> bigint)
upgradeFee
untyped bigintValue
(15000000 <untyped> bigint)
protocolBps
untyped bigintValue
(200 <untyped> bigint)
maxRoyalty
untyped bigintValue
(1000 <untyped> bigint)
maxPrice
untyped bigintValue
(1000000000000 <untyped> bigint)
combatLockMs
untyped bigintValue
(5000 <untyped> bigint)
layBlocks
untyped bigintValue
(2 <untyped> bigint)
listCap
untyped bigintValue
(50 <untyped> bigint)
fishBody
typeValue
fish2.fishBody
bodies
[]*fish2.fishBody- OID
- 0b338e…86f3:447
bodies details
nextID
intValue
10
minted
intValue
10
inited
boolValue
true
token
*v0.Token- OID
- 0b338e…86f3:198
token details
ledger
*v0.PrivateLedger- OID
- 0b338e…86f3:200
ledger details
metaView
*v0.Metadata- OID
- 0b338e…86f3:207
metaView details
metaLed
*v0.Ledger- OID
- 0b338e…86f3:213
metaLed details
tokenSeq
v0.IDValue
<zero>
creator
.uverse.addressValue
<gnolang.StringValue>
self
.uverse.addressValue
<gnolang.StringValue>
upgradeSink
.uverse.addressValue
<gnolang.StringValue>
lpSink
.uverse.addressValue
<gnolang.StringValue>
burnSink
.uverse.addressValue
<gnolang.StringValue>
protocolSink
.uverse.addressValue
<gnolang.StringValue>
seasonSink
.uverse.addressValue
<gnolang.StringValue>
royaltyBps
int64Value
500
imageBase
stringValue
"https://shoal.example/art"
portrait
stringValue
"https://gateway.pinata.cloud/ipfs/bafybeighbcoi7d7mgtaj6ihqrdbgeuclm3gwoyb52wlz4e6mmkbpjmq47u"
colName
stringValue
"Shoal Fish"
colSymbol
stringValue
"FISH"
Init
func(name string, symbol string, images string, royalty int64, upgrade .uverse.address, lp .uverse.address, burn .uverse.address, protocol .uverse.address, season .uverse.address)- OID
- 0b338e…86f3:54
Init details
Mint
func(name string, size string, trait string) int- OID
- 0b338e…86f3:56
Mint details
SetArt
func(image string)SetArt sets one https image on every unburned fish. The creator may call it again.
- OID
- 0b338e…86f3:57
SetArt details
Portrait
func() string- OID
- 0b338e…86f3:58
Portrait details
Transfer
func(to .uverse.address, id int)- OID
- 0b338e…86f3:59
Transfer details
TransferFrom
func(from string, to string, tid string)- OID
- 0b338e…86f3:60
TransferFrom details
Approve
func(to string, tid string)- OID
- 0b338e…86f3:61
Approve details
SetApprovalForAll
func(operator string, approved bool)- OID
- 0b338e…86f3:62
SetApprovalForAll details
OwnerOf
func(tid string) (.uverse.address, .uverse.error)- OID
- 0b338e…86f3:63
OwnerOf details
Name
func() string- OID
- 0b338e…86f3:64
Name details
Symbol
func() string- OID
- 0b338e…86f3:65
Symbol details
GrcName
func() string- OID
- 0b338e…86f3:66
GrcName details
GrcSymbol
func() string- OID
- 0b338e…86f3:67
GrcSymbol details
BalanceOf
func(addr string) int64- OID
- 0b338e…86f3:68
BalanceOf details
GrcBalanceOf
func(addr string) int64- OID
- 0b338e…86f3:69
GrcBalanceOf details
TokenURI
func(tid string) string- OID
- 0b338e…86f3:70
TokenURI details
TokensOf
func(owner string) string- OID
- 0b338e…86f3:71
TokensOf details
TokenOfOwnerByIndex
func(owner string, index int64) string- OID
- 0b338e…86f3:72
TokenOfOwnerByIndex details
TotalSupply
func() int64- OID
- 0b338e…86f3:73
TotalSupply details
GetApproved
func(id int) string- OID
- 0b338e…86f3:74
GetApproved details
IsApprovedForAll
func(owner string, operator string) bool- OID
- 0b338e…86f3:75
IsApprovedForAll details
MintPrice
func() int64- OID
- 0b338e…86f3:76
MintPrice details
MaxSupply
func() int- OID
- 0b338e…86f3:77
MaxSupply details
Minted
func() int- OID
- 0b338e…86f3:78
Minted details
RoyaltyBps
func() int64- OID
- 0b338e…86f3:79
RoyaltyBps details
Creator
func() .uverse.address- OID
- 0b338e…86f3:80
Creator details
ProtocolBps
func() int64- OID
- 0b338e…86f3:81
ProtocolBps details
BoutsOf
func(id int) int- OID
- 0b338e…86f3:82
BoutsOf details
PoolOf
func(id int) int64- OID
- 0b338e…86f3:83
PoolOf details
Listed
func(id int) bool- OID
- 0b338e…86f3:84
Listed details
InMatch
func(id int) bool- OID
- 0b338e…86f3:85
InMatch details
LayOpen
func(id int) bool- OID
- 0b338e…86f3:86
LayOpen details
RarityOf
func(id int) string- OID
- 0b338e…86f3:87
RarityOf details
SizeOf
func(id int) string- OID
- 0b338e…86f3:88
SizeOf details
TraitOf
func(id int) string- OID
- 0b338e…86f3:89
TraitOf details
SpeciesOf
func(id int) string- OID
- 0b338e…86f3:90
SpeciesOf details
issue
func(to .uverse.address, name string, rarity string, size string, trait string) int- OID
- 0b338e…86f3:91
issue details
mintGRC
func(to .uverse.address, body *fish2.fishBody)- OID
- 0b338e…86f3:92
mintGRC details
writeURI
func(body *fish2.fishBody)- OID
- 0b338e…86f3:93
writeURI details
artOf
func(rarity string) string- OID
- 0b338e…86f3:94
artOf details
burnGRC
func(id int)- OID
- 0b338e…86f3:95
burnGRC details
moveToken
func(spender .uverse.address, from .uverse.address, to .uverse.address, id int)- OID
- 0b338e…86f3:96
moveToken details
tokenJSON
func(body *fish2.fishBody) string- OID
- 0b338e…86f3:97
tokenJSON details
requireUser
func() .uverse.address- OID
- 0b338e…86f3:98
requireUser details
requireInit
func()- OID
- 0b338e…86f3:99
requireInit details
takeExact
func(n int64)- OID
- 0b338e…86f3:100
takeExact details
payMint
func(fee int64, rlm .uverse.realm)- OID
- 0b338e…86f3:101
payMint details
send
func(to .uverse.address, amt int64, rlm .uverse.realm)- OID
- 0b338e…86f3:102
send details
must
func(id int) *fish2.fishBody- OID
- 0b338e…86f3:103
must details
guardMovable
func(body *fish2.fishBody)- OID
- 0b338e…86f3:104
guardMovable details
unplayed
func(owner .uverse.address) bool- OID
- 0b338e…86f3:105
unplayed details
tokenID
func(id int) v0.TokenID- OID
- 0b338e…86f3:106
tokenID details
parseID
func(tid string) int- OID
- 0b338e…86f3:107
parseID details
validFishName
func(name string) bool- OID
- 0b338e…86f3:108
validFishName details
validCollectionName
func(name string) bool- OID
- 0b338e…86f3:109
validCollectionName details
validArt
func(image string) bool- OID
- 0b338e…86f3:110
validArt details
validSymbol
func(symbol string) bool- OID
- 0b338e…86f3:111
validSymbol details
validSize
func(size string) bool- OID
- 0b338e…86f3:112
validSize details
validTrait
func(trait string) bool- OID
- 0b338e…86f3:113
validTrait details
speciesOf
func(rarity string) string- OID
- 0b338e…86f3:114
speciesOf details
hpBase
func(rarity string) int- OID
- 0b338e…86f3:115
hpBase details
hpOf
func(rarity string, size string, trait string) int- OID
- 0b338e…86f3:116
hpOf details
dodgeOf
func(size string) int- OID
- 0b338e…86f3:117
dodgeOf details
arenaStake
func(stake int64) bool- OID
- 0b338e…86f3:118
arenaStake details
Register
func(id int, stake int64)- OID
- 0b338e…86f3:119
Register details
Leave
func(id int)- OID
- 0b338e…86f3:121
Leave details
SettleMatch
func(id int)- OID
- 0b338e…86f3:122
SettleMatch details
CommitLay
func(id int)- OID
- 0b338e…86f3:123
CommitLay details
SettleLay
func(id int) int- OID
- 0b338e…86f3:124
SettleLay details
Upgrade
func(keep int, food int) int- OID
- 0b338e…86f3:125
Upgrade details
burnBody
func(body *fish2.fishBody)- OID
- 0b338e…86f3:126
burnBody details
traitFrom
func(id int, commitHeight int64, settleHeight int64, unix int64) string- OID
- 0b338e…86f3:127
traitFrom details
seaRadius
untyped bigintValue
(360 <untyped> bigint)
sector
untyped bigintValue
(8 <untyped> bigint)
unitMilli
untyped bigintValue
(1000 <untyped> bigint)
sectorMilli
untyped bigintValue
(8000 <untyped> bigint)
mouthAlignNum
untyped bigintValue
(552264 <untyped> bigint)
mouthContact
untyped bigintValue
(1000 <untyped> bigint)
healsPerDay
untyped bigintValue
(2 <untyped> bigint)
healPercent
untyped bigintValue
(40 <untyped> bigint)
healCooldownMs
untyped bigintValue
(28800000 <untyped> bigint)
ictOffsetMs
untyped bigintValue
(25200000 <untyped> bigint)
dayMs
untyped bigintValue
(86400000 <untyped> bigint)
springPeriodMs
untyped bigintValue
(20000 <untyped> bigint)
springLifeMs
untyped bigintValue
(15000 <untyped> bigint)
springRadiusMilli
untyped bigintValue
(3000 <untyped> bigint)
springHealPercent
untyped bigintValue
(20 <untyped> bigint)
shelterHPMax
untyped bigintValue
(64 <untyped> bigint)
shelterRebuildMs
untyped bigintValue
(20000 <untyped> bigint)
burstWindowMs
untyped bigintValue
(1000 <untyped> bigint)
burstCoolMs
untyped bigintValue
(2000 <untyped> bigint)
viewerShards
untyped bigintValue
(10 <untyped> bigint)
viewerWatchMs
untyped bigintValue
(15000 <untyped> bigint)
viewerWindowMs
untyped bigintValue
(30000 <untyped> bigint)
minCheer
untyped bigintValue
(1000000 <untyped> bigint)
growMediumAt
untyped bigintValue
(2 <untyped> bigint)
growLargeAt
untyped bigintValue
(4 <untyped> bigint)
growEvolveAt
untyped bigintValue
(6 <untyped> bigint)
cheerRow
typeValue
fish2.cheerRow
claimRow
typeValue
fish2.claimRow
watchRow
typeValue
fish2.watchRow
disc
typeValue
fish2.disc
cheers
[]fish2.cheerRowValue
<zero>
claims
[]fish2.claimRowValue
<zero>
watches
[]fish2.watchRowValue
<zero>
killSeq
intValue
0
shelterHP
[]int- OID
- 0b338e…86f3:225
shelterHP details
shelterDown
[]int64- OID
- 0b338e…86f3:226
shelterDown details
shelterTable
[]fish2.disc- OID
- 0b338e…86f3:135
shelterTable details
rockTable
[]fish2.disc- OID
- 0b338e…86f3:141
rockTable details
Turn
func(id int, dx int, dz int)- OID
- 0b338e…86f3:145
Turn details
Move
func(id int)- OID
- 0b338e…86f3:147
Move details
Burst
func(id int)- OID
- 0b338e…86f3:148
Burst details
Heal
func(id int)- OID
- 0b338e…86f3:149
Heal details
RushHeal
func(id int)- OID
- 0b338e…86f3:150
RushHeal details
Cheer
func(id int)Cheer locks ugnot on a fish already in the sea. The deposit comes back when that fish leaves or is downed. It does not change bite.
- OID
- 0b338e…86f3:151
Cheer details
Watch
func(on bool)- OID
- 0b338e…86f3:152
Watch details
Claim
func(id int)- OID
- 0b338e…86f3:153
Claim details
swimming
func(id int) *fish2.fishBody- OID
- 0b338e…86f3:154
swimming details
walletInSea
func(owner .uverse.address) bool- OID
- 0b338e…86f3:155
walletInSea details
tooHurt
func(body *fish2.fishBody) bool- OID
- 0b338e…86f3:156
tooHurt details
placeSwimmer
func(body *fish2.fishBody)- OID
- 0b338e…86f3:157
placeSwimmer details
tryPlace
func(body *fish2.fishBody, sx int, sz int) bool- OID
- 0b338e…86f3:158
tryPlace details
stepFish
func(body *fish2.fishBody, now int64)- OID
- 0b338e…86f3:159
stepFish details
sectorInSea
func(sx int, sz int) bool- OID
- 0b338e…86f3:160
sectorInSea details
cellTaken
func(sx int, sz int, self int) bool- OID
- 0b338e…86f3:161
cellTaken details
spawnBlocked
func(sx int, sz int) bool- OID
- 0b338e…86f3:162
spawnBlocked details
cellBlocked
func(sx int, sz int, size string, now int64) bool- OID
- 0b338e…86f3:163
cellBlocked details
cellMilli
func(sx int, sz int) (int, int)- OID
- 0b338e…86f3:164
cellMilli details
insideDisc
func(x int, z int, cx int, cz int, r int) bool- OID
- 0b338e…86f3:165
insideDisc details
ensureSea
func()- OID
- 0b338e…86f3:166
ensureSea details
refreshShelter
func(i int, now int64)- OID
- 0b338e…86f3:167
refreshShelter details
shelterAdmits
func(kind string, size string) bool- OID
- 0b338e…86f3:168
shelterAdmits details
coverIndex
func(body *fish2.fishBody, now int64) int- OID
- 0b338e…86f3:169
coverIndex details
redirectShelter
func(atk *fish2.fishBody, vic *fish2.fishBody, now int64) bool- OID
- 0b338e…86f3:170
redirectShelter details
mouthHit
func(atk *fish2.fishBody, def *fish2.fishBody) bool- OID
- 0b338e…86f3:171
mouthHit details
shelterMouth
func(atk *fish2.fishBody, vic *fish2.fishBody, now int64) boolshelterMouth is a bite against the pocket, not against the fish's dodge. The attacker must stand outside, must not fit inside, and must face the fish.
- OID
- 0b338e…86f3:172
shelterMouth details
discHolds
func(sx int, sz int, cx int, cz int, r int) boolSector centers sit off the practice discs, same as a spring on z = 0. The cell that holds the point counts as inside.
- OID
- 0b338e…86f3:173
discHolds details
mouthAimed
func(atk *fish2.fishBody, def *fish2.fishBody, dodge int) bool- OID
- 0b338e…86f3:174
mouthAimed details
faceMilli
func(dx int, dz int) (int, int)- OID
- 0b338e…86f3:175
faceMilli details
mouthLead
func(size string) int- OID
- 0b338e…86f3:176
mouthLead details
biteNow
func(body *fish2.fishBody) int- OID
- 0b338e…86f3:177
biteNow details
strikeFought
func(bite int, hpMax int, atkSize string, defSize string, atkR string, defR string) int- OID
- 0b338e…86f3:178
strikeFought details
preyOf
func(rarity string) string- OID
- 0b338e…86f3:179
preyOf details
nextRarity
func(rarity string) string- OID
- 0b338e…86f3:180
nextRarity details
growFromKill
func(atk *fish2.fishBody, vic *fish2.fishBody)- OID
- 0b338e…86f3:181
growFromKill details
worldSpeed
func(body *fish2.fishBody) int- OID
- 0b338e…86f3:182
worldSpeed details
moveDelay
func(body *fish2.fishBody, now int64) int64- OID
- 0b338e…86f3:183
moveDelay details
tierOf
func(rarity string) int- OID
- 0b338e…86f3:184
tierOf details
rolledHeal
func(body *fish2.fishBody, now int64) (day int64, used int, ready int64)- OID
- 0b338e…86f3:185
rolledHeal details
writeHeal
func(body *fish2.fishBody, day int64, used int, ready int64)- OID
- 0b338e…86f3:186
writeHeal details
cheerLocked
func(id int) int64- OID
- 0b338e…86f3:187
cheerLocked details
returnCheers
func(body *fish2.fishBody, rlm .uverse.realm)- OID
- 0b338e…86f3:188
returnCheers details
bookCheerClaims
func(atk *fish2.fishBody, vic *fish2.fishBody, cheer int64, now int64) int64- OID
- 0b338e…86f3:189
bookCheerClaims details
bookWatchClaims
func(atk *fish2.fishBody, vic *fish2.fishBody, viewer int64, now int64) int64- OID
- 0b338e…86f3:190
bookWatchClaims details
anyEligible
func(killer .uverse.address, victim .uverse.address, killAt int64) bool- OID
- 0b338e…86f3:191
anyEligible details
watchEligible
func(who .uverse.address, killAt int64) bool- OID
- 0b338e…86f3:192
watchEligible details
watchClaimed
func(who .uverse.address, killID int) bool- OID
- 0b338e…86f3:193
watchClaimed details
dropWatch
func(who .uverse.address)- OID
- 0b338e…86f3:194
dropWatch details
springMilli
func(now int64) (x int, z int, born int64, ok bool)- OID
- 0b338e…86f3:195
springMilli details
springTouches
func(sx int, sz int, springX int, springZ int) bool- OID
- 0b338e…86f3:196
springTouches details
touchSpring
func(body *fish2.fishBody, now int64)- OID
- 0b338e…86f3:197