List
func(id int, priceUgnot int64)- OID
- 094c45…126d:3
List details
UpdatePrice
func(id int, priceUgnot int64)- OID
- 094c45…126d:5
UpdatePrice details
Cancel
func(id int)- OID
- 094c45…126d:6
Cancel details
Buy
func(id int)- OID
- 094c45…126d:7
Buy details
ItemLine
func(id int) string- OID
- 094c45…126d:8
ItemLine details
ListOpen
func() string- OID
- 094c45…126d:9
ListOpen details
addrStr
func(a .uverse.address) string- OID
- 094c45…126d:10
addrStr details
damageRow
typeValue
fish.damageRow
blows
[][]fish.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
- 094c45…126d:12
Bite details
payKill
func(atk *fish.fishBody, vic *fish.fishBody, rlm .uverse.realm)- OID
- 094c45…126d: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
- 094c45…126d:15
payKiller details
splitWeights
func(amount int64, weights []int, prefer .uverse.address, owners [].uverse.address) []int64- OID
- 094c45…126d:16
splitWeights details
addDamage
func(id int, owner .uverse.address, n int)- OID
- 094c45…126d:17
addDamage details
damageOf
func(id int, owner .uverse.address) int- OID
- 094c45…126d:18
damageOf details
clearDamage
func(id int)clearDamage drops incoming blows so the next entry starts clean.
- OID
- 094c45…126d:19
clearDamage details
creditBout
func(body *fish.fishBody)creditBout counts one finished entry. Leave does not call it. SettleMatch does not count the entry again.
- OID
- 094c45…126d:20
creditBout details
liveFish
func(body *fish.fishBody, now int64) bool- OID
- 094c45…126d:21
liveFish details
downHP
func(max int) int- OID
- 094c45…126d:22
downHP details
coveredStake
func(killerPool int64, victimPool int64) int64- OID
- 094c45…126d: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
- 094c45…126d: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
- 094c45…126d:25
splitKill details
strikeDamage
func(bite int, hpMax int, atkSize string, defSize string) int- OID
- 094c45…126d:26
strikeDamage details
sizeIndex
func(size string) int- OID
- 094c45…126d:27
sizeIndex details
biteOf
func(rarity string, size string, trait string) int- OID
- 094c45…126d:28
biteOf details
cooldownMs
func(rarity string) int64- OID
- 094c45…126d: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
- 094c45…126d:30
reachUnits details
inReach
func(atk *fish.fishBody, def *fish.fishBody) bool- OID
- 094c45…126d:31
inReach details
inReachDodge
func(atk *fish.fishBody, def *fish.fishBody, dodge int) bool- OID
- 094c45…126d: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
fish.fishBody
bodies
[]*fish.fishBody- OID
- 094c45…126d:210
bodies details
nextID
intValue
1
minted
intValue
1
inited
boolValue
true
token
*v0.Token- OID
- 094c45…126d:192
token details
ledger
*v0.PrivateLedger- OID
- 094c45…126d:194
ledger details
metaView
*v0.Metadata- OID
- 094c45…126d:201
metaView details
metaLed
*v0.Ledger- OID
- 094c45…126d:207
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"
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
- 094c45…126d:53
Init details
Mint
func(name string, size string, trait string) int- OID
- 094c45…126d:55
Mint details
Transfer
func(to .uverse.address, id int)- OID
- 094c45…126d:56
Transfer details
TransferFrom
func(from string, to string, tid string)- OID
- 094c45…126d:57
TransferFrom details
Approve
func(to string, tid string)- OID
- 094c45…126d:58
Approve details
SetApprovalForAll
func(operator string, approved bool)- OID
- 094c45…126d:59
SetApprovalForAll details
OwnerOf
func(tid string) (.uverse.address, .uverse.error)- OID
- 094c45…126d:60
OwnerOf details
Name
func() string- OID
- 094c45…126d:61
Name details
Symbol
func() string- OID
- 094c45…126d:62
Symbol details
GrcName
func() string- OID
- 094c45…126d:63
GrcName details
GrcSymbol
func() string- OID
- 094c45…126d:64
GrcSymbol details
BalanceOf
func(addr string) int64- OID
- 094c45…126d:65
BalanceOf details
GrcBalanceOf
func(addr string) int64- OID
- 094c45…126d:66
GrcBalanceOf details
TokenURI
func(tid string) string- OID
- 094c45…126d:67
TokenURI details
TokensOf
func(owner string) string- OID
- 094c45…126d:68
TokensOf details
TokenOfOwnerByIndex
func(owner string, index int64) string- OID
- 094c45…126d:69
TokenOfOwnerByIndex details
TotalSupply
func() int64- OID
- 094c45…126d:70
TotalSupply details
GetApproved
func(id int) string- OID
- 094c45…126d:71
GetApproved details
IsApprovedForAll
func(owner string, operator string) bool- OID
- 094c45…126d:72
IsApprovedForAll details
MintPrice
func() int64- OID
- 094c45…126d:73
MintPrice details
MaxSupply
func() int- OID
- 094c45…126d:74
MaxSupply details
Minted
func() int- OID
- 094c45…126d:75
Minted details
RoyaltyBps
func() int64- OID
- 094c45…126d:76
RoyaltyBps details
Creator
func() .uverse.address- OID
- 094c45…126d:77
Creator details
ProtocolBps
func() int64- OID
- 094c45…126d:78
ProtocolBps details
BoutsOf
func(id int) int- OID
- 094c45…126d:79
BoutsOf details
PoolOf
func(id int) int64- OID
- 094c45…126d:80
PoolOf details
Listed
func(id int) bool- OID
- 094c45…126d:81
Listed details
InMatch
func(id int) bool- OID
- 094c45…126d:82
InMatch details
LayOpen
func(id int) bool- OID
- 094c45…126d:83
LayOpen details
RarityOf
func(id int) string- OID
- 094c45…126d:84
RarityOf details
SizeOf
func(id int) string- OID
- 094c45…126d:85
SizeOf details
TraitOf
func(id int) string- OID
- 094c45…126d:86
TraitOf details
SpeciesOf
func(id int) string- OID
- 094c45…126d:87
SpeciesOf details
issue
func(to .uverse.address, name string, rarity string, size string, trait string) int- OID
- 094c45…126d:88
issue details
mintGRC
func(to .uverse.address, body *fish.fishBody)- OID
- 094c45…126d:89
mintGRC details
burnGRC
func(id int)- OID
- 094c45…126d:90
burnGRC details
moveToken
func(spender .uverse.address, from .uverse.address, to .uverse.address, id int)- OID
- 094c45…126d:91
moveToken details
tokenJSON
func(body *fish.fishBody) string- OID
- 094c45…126d:92
tokenJSON details
requireUser
func() .uverse.address- OID
- 094c45…126d:93
requireUser details
requireInit
func()- OID
- 094c45…126d:94
requireInit details
takeExact
func(n int64)- OID
- 094c45…126d:95
takeExact details
payMint
func(fee int64, rlm .uverse.realm)- OID
- 094c45…126d:96
payMint details
send
func(to .uverse.address, amt int64, rlm .uverse.realm)- OID
- 094c45…126d:97
send details
must
func(id int) *fish.fishBody- OID
- 094c45…126d:98
must details
guardMovable
func(body *fish.fishBody)- OID
- 094c45…126d:99
guardMovable details
unplayed
func(owner .uverse.address) bool- OID
- 094c45…126d:100
unplayed details
tokenID
func(id int) v0.TokenID- OID
- 094c45…126d:101
tokenID details
parseID
func(tid string) int- OID
- 094c45…126d:102
parseID details
validFishName
func(name string) bool- OID
- 094c45…126d:103
validFishName details
validCollectionName
func(name string) bool- OID
- 094c45…126d:104
validCollectionName details
validSymbol
func(symbol string) bool- OID
- 094c45…126d:105
validSymbol details
validSize
func(size string) bool- OID
- 094c45…126d:106
validSize details
validTrait
func(trait string) bool- OID
- 094c45…126d:107
validTrait details
speciesOf
func(rarity string) string- OID
- 094c45…126d:108
speciesOf details
hpBase
func(rarity string) int- OID
- 094c45…126d:109
hpBase details
hpOf
func(rarity string, size string, trait string) int- OID
- 094c45…126d:110
hpOf details
dodgeOf
func(size string) int- OID
- 094c45…126d:111
dodgeOf details
arenaStake
func(stake int64) bool- OID
- 094c45…126d:112
arenaStake details
Register
func(id int, stake int64)- OID
- 094c45…126d:113
Register details
Leave
func(id int)- OID
- 094c45…126d:115
Leave details
SettleMatch
func(id int)- OID
- 094c45…126d:116
SettleMatch details
CommitLay
func(id int)- OID
- 094c45…126d:117
CommitLay details
SettleLay
func(id int) int- OID
- 094c45…126d:118
SettleLay details
Upgrade
func(keep int, food int) int- OID
- 094c45…126d:119
Upgrade details
burnBody
func(body *fish.fishBody)- OID
- 094c45…126d:120
burnBody details
traitFrom
func(id int, commitHeight int64, settleHeight int64, unix int64) string- OID
- 094c45…126d:121
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
fish.cheerRow
claimRow
typeValue
fish.claimRow
watchRow
typeValue
fish.watchRow
disc
typeValue
fish.disc
cheers
[]fish.cheerRowValue
<zero>
claims
[]fish.claimRowValue
<zero>
watches
[]fish.watchRowValue
<zero>
killSeq
intValue
0
shelterHP
[]intValue
<zero>
shelterDown
[]int64Value
<zero>
shelterTable
[]fish.disc- OID
- 094c45…126d:129
shelterTable details
rockTable
[]fish.disc- OID
- 094c45…126d:135
rockTable details
Turn
func(id int, dx int, dz int)- OID
- 094c45…126d:139
Turn details
Move
func(id int)- OID
- 094c45…126d:141
Move details
Burst
func(id int)- OID
- 094c45…126d:142
Burst details
Heal
func(id int)- OID
- 094c45…126d:143
Heal details
RushHeal
func(id int)- OID
- 094c45…126d:144
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
- 094c45…126d:145
Cheer details
Watch
func(on bool)- OID
- 094c45…126d:146
Watch details
Claim
func(id int)- OID
- 094c45…126d:147
Claim details
swimming
func(id int) *fish.fishBody- OID
- 094c45…126d:148
swimming details
walletInSea
func(owner .uverse.address) bool- OID
- 094c45…126d:149
walletInSea details
tooHurt
func(body *fish.fishBody) bool- OID
- 094c45…126d:150
tooHurt details
placeSwimmer
func(body *fish.fishBody)- OID
- 094c45…126d:151
placeSwimmer details
tryPlace
func(body *fish.fishBody, sx int, sz int) bool- OID
- 094c45…126d:152
tryPlace details
stepFish
func(body *fish.fishBody, now int64)- OID
- 094c45…126d:153
stepFish details
sectorInSea
func(sx int, sz int) bool- OID
- 094c45…126d:154
sectorInSea details
cellTaken
func(sx int, sz int, self int) bool- OID
- 094c45…126d:155
cellTaken details
spawnBlocked
func(sx int, sz int) bool- OID
- 094c45…126d:156
spawnBlocked details
cellBlocked
func(sx int, sz int, size string, now int64) bool- OID
- 094c45…126d:157
cellBlocked details
cellMilli
func(sx int, sz int) (int, int)- OID
- 094c45…126d:158
cellMilli details
insideDisc
func(x int, z int, cx int, cz int, r int) bool- OID
- 094c45…126d:159
insideDisc details
ensureSea
func()- OID
- 094c45…126d:160
ensureSea details
refreshShelter
func(i int, now int64)- OID
- 094c45…126d:161
refreshShelter details
shelterAdmits
func(kind string, size string) bool- OID
- 094c45…126d:162
shelterAdmits details
coverIndex
func(body *fish.fishBody, now int64) int- OID
- 094c45…126d:163
coverIndex details
redirectShelter
func(atk *fish.fishBody, vic *fish.fishBody, now int64) bool- OID
- 094c45…126d:164
redirectShelter details
mouthHit
func(atk *fish.fishBody, def *fish.fishBody) bool- OID
- 094c45…126d:165
mouthHit details
shelterMouth
func(atk *fish.fishBody, vic *fish.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
- 094c45…126d:166
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
- 094c45…126d:167
discHolds details
mouthAimed
func(atk *fish.fishBody, def *fish.fishBody, dodge int) bool- OID
- 094c45…126d:168
mouthAimed details
faceMilli
func(dx int, dz int) (int, int)- OID
- 094c45…126d:169
faceMilli details
mouthLead
func(size string) int- OID
- 094c45…126d:170
mouthLead details
biteNow
func(body *fish.fishBody) int- OID
- 094c45…126d:171
biteNow details
strikeFought
func(bite int, hpMax int, atkSize string, defSize string, atkR string, defR string) int- OID
- 094c45…126d:172
strikeFought details
preyOf
func(rarity string) string- OID
- 094c45…126d:173
preyOf details
nextRarity
func(rarity string) string- OID
- 094c45…126d:174
nextRarity details
growFromKill
func(atk *fish.fishBody, vic *fish.fishBody)- OID
- 094c45…126d:175
growFromKill details
worldSpeed
func(body *fish.fishBody) int- OID
- 094c45…126d:176
worldSpeed details
moveDelay
func(body *fish.fishBody, now int64) int64- OID
- 094c45…126d:177
moveDelay details
tierOf
func(rarity string) int- OID
- 094c45…126d:178
tierOf details
rolledHeal
func(body *fish.fishBody, now int64) (day int64, used int, ready int64)- OID
- 094c45…126d:179
rolledHeal details
writeHeal
func(body *fish.fishBody, day int64, used int, ready int64)- OID
- 094c45…126d:180
writeHeal details
cheerLocked
func(id int) int64- OID
- 094c45…126d:181
cheerLocked details
returnCheers
func(body *fish.fishBody, rlm .uverse.realm)- OID
- 094c45…126d:182
returnCheers details
bookCheerClaims
func(atk *fish.fishBody, vic *fish.fishBody, cheer int64, now int64) int64- OID
- 094c45…126d:183
bookCheerClaims details
bookWatchClaims
func(atk *fish.fishBody, vic *fish.fishBody, viewer int64, now int64) int64- OID
- 094c45…126d:184
bookWatchClaims details
anyEligible
func(killer .uverse.address, victim .uverse.address, killAt int64) bool- OID
- 094c45…126d:185
anyEligible details
watchEligible
func(who .uverse.address, killAt int64) bool- OID
- 094c45…126d:186
watchEligible details
watchClaimed
func(who .uverse.address, killID int) bool- OID
- 094c45…126d:187
watchClaimed details
dropWatch
func(who .uverse.address)- OID
- 094c45…126d:188
dropWatch details
springMilli
func(now int64) (x int, z int, born int64, ok bool)- OID
- 094c45…126d:189
springMilli details
springTouches
func(sx int, sz int, springX int, springZ int) bool- OID
- 094c45…126d:190
springTouches details
touchSpring
func(body *fish.fishBody, now int64)- OID
- 094c45…126d:191