tx · 2wNmN9E6iQtzZAuurahZzppr6yCUZAkLdjBXueJnJGWa

3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG:  -0.01400000 Waves

2022.05.19 14:51 [2058514] smart account 3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG > SELF 0.00000000 Waves

{ "type": 13, "id": "2wNmN9E6iQtzZAuurahZzppr6yCUZAkLdjBXueJnJGWa", "fee": 1400000, "feeAssetId": null, "timestamp": 1652961071161, "version": 2, "chainId": 84, "sender": "3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG", "senderPublicKey": "A5uPpc5KS7DgroqteAzwUgULhnPuQKdsgxYXJMyji3j8", "proofs": [ "4qvnZLtcsMyP77WBvY3bdrY9DW3c6ALCSRWmsAiokaC7cMd65jt9vsSmh6GrHmHnZmpm7QXFCCpw97mDM9kamEsN" ], "script": "base64:AAIFAAAAAAAAABEIAhIAEgQKAgQIEgASAwoBAQAAACsAAAAACXNlcGFyYXRvcgIAAAABXwAAAAAIREVWX01PREUGAAAAAAl0b2tlbk5hbWUCAAAABkNvdWNvdQAAAAAJdG9rZW5EZXNjAgAAAAdibGEgYmxhAAAAABh0b2tlbkluaXRpYWxFbWlzc2lvblJhdGUAAAAAAAX14QAAAAAAEmxhbmRzSW5pdGlhbEFtb3VudAAAAAAAAAAABgAAAAAbYXBwZWFyYW5jZUluaXRpYWxCb2R5QW1vdW50AAAAAAAAAAAFAAAAABthcHBlYXJhbmNlSW5pdGlhbEV5ZXNBbW91bnQAAAAAAAAAAAUAAAAAHGFwcGVhcmFuY2VJbml0aWFsTW91dGhBbW91bnQAAAAAAAAAAAUAAAAAF3Jhbmdlc0luaXRpYWxTdGF0c1RpZXJzAgAAAB40NTAwXzc1MDBfOTAwMF85NzUwXzk5OTBfMTAwMDAAAAAAGHJhbmdlc0luaXRpYWxOYXR1cmFsRWxlbQIAAAAcNDAwXzEwMDBfMTQwMF8xNjAwXzE3NTBfMjAwMAAAAAAecmFuZ2VzSW5pdGlhbE5hdHVyYWxHZW5lcmF0aW5nAgAAABcyMDBfMzAwXzM3NV80MjVfNDUwXzUwMAAAAAAacmFuZ2VzSW5pdGlhbE5hdHVyYWxCYXR0bGUCAAAAFzIwMF8zMDBfMzc1XzQyNV80NTBfNTAwAAAAABBiYXR0bGVSZXN0UGVyaW9kAAAAAAAAAAAAAAAAABZiYXR0bGVXaW5DaGFuY2VIYXJkY2FwAAAAAAAADDUAAAAAABtiYXR0bGVXaW5DaGFuY2VJbmNyUGVyQmxvY2sAAAAAAAAAAGQAAAAAFWJhdHRsZUxvb3RSYXJpdHlSYW5nZQIAAAAUODAwMF85NTAwXzk5OTBfMTAwMDAAAAAAD2l0ZW1zQ2F0ZWdvcmllcwAAAAAAAAAAAwAAAAAQaXRlbXNUeXBlc1BlckNhdAIAAAAFNl80XzMAAAAADGl0ZW1zRWZmZWN0cwAAAAAAAAAAIAAAAAAUaXRlbXNFZmZlY3RzTWF4UmFuZ2UJAAS5AAAAAgkABEwAAAACAgAAAAQyMDAwCQAETAAAAAICAAAABDIwMDAJAARMAAAAAgIAAAAEMjAwMAkABEwAAAACAgAAAAQyMDAwCQAETAAAAAICAAAABDIwMDAJAARMAAAAAgIAAAAEMjAwMAkABEwAAAACAgAAAAQyMDAwCQAETAAAAAICAAAABDIwMDAJAARMAAAAAgIAAAAEMjAwMAkABEwAAAACAgAAAAQyMDAwCQAETAAAAAICAAAABDIwMDAJAARMAAAAAgIAAAAEMjAwMAkABEwAAAACAgAAAAQyMDAwCQAETAAAAAICAAAABDIwMDAJAARMAAAAAgIAAAAEMjAwMAkABEwAAAACAgAAAAQyMDAwCQAETAAAAAICAAAAAzUwMAkABEwAAAACAgAAAAM1MDAJAARMAAAAAgIAAAADNTAwCQAETAAAAAICAAAAAzUwMAkABEwAAAACAgAAAAMxMDAJAARMAAAAAgIAAAADMTAwCQAETAAAAAICAAAAAzEwMAkABEwAAAACAgAAAAMxMDAJAARMAAAAAgIAAAADMTAwCQAETAAAAAICAAAAAzEwMAkABEwAAAACAgAAAAMxMDAJAARMAAAAAgIAAAADMTAwCQAETAAAAAICAAAAAzEwMAkABEwAAAACAgAAAAMxMDAJAARMAAAAAgIAAAADMTAwCQAETAAAAAICAAAAAzEwMAkABEwAAAACAgAAAAMxMDAJAARMAAAAAgIAAAADMTAwCQAETAAAAAICAAAAAzEwMAkABEwAAAACAgAAAAMxMDAJAARMAAAAAgIAAAACMjUJAARMAAAAAgIAAAACMjUFAAAAA25pbAUAAAAJc2VwYXJhdG9yAAAAABVrZXlFY29zeXN0ZW1BZGRyZXNzZXMCAAAAE2Vjb3N5c3RlbV9hZGRyZXNzZXMAAAAACmtleVRva2VuSWQCAAAACHRva2VuX2lkAAAAABRrZXlUb2tlbkVtaXNzaW9uUmF0ZQIAAAATdG9rZW5fZW1pc3Npb25fcmF0ZQAAAAARa2V5VG9rZW5HZW5lcmF0ZWQCAAAAD3Rva2VuX2dlbmVyYXRlZAAAAAAba2V5VG9rZW5HZW5lcmF0ZWRMYXN0VXBkYXRlAgAAABt0b2tlbl9nZW5lcmF0ZWRfbGFzdF91cGRhdGUAAAAAEmtleUNoYXJzQm9keUFtb3VudAIAAAARY2hhcnNfYm9keV9hbW91bnQAAAAAEmtleUNoYXJzRXllc0Ftb3VudAIAAAARY2hhcnNfZXllc19hbW91bnQAAAAAE2tleUNoYXJzTW91dGhBbW91bnQCAAAAEmNoYXJzX21vdXRoX2Ftb3VudAAAAAAYa2V5Q2hhcnNTdGF0c1RpZXJzUmFuZ2VzAgAAABhjaGFyc19zdGF0c190aWVyc19yYW5nZXMAAAAAHmtleUNoYXJzTmF0dXJhbEVsZW1Cb251c1JhbmdlcwIAAAAfY2hhcnNfbmF0dXJhbF9lbGVtX2JvbnVzX3JhbmdlcwAAAAAga2V5Q2hhcnNOYXR1cmFsQmF0dGxlQm9udXNSYW5nZXMCAAAAIWNoYXJzX25hdHVyYWxfYmF0dGxlX2JvbnVzX3JhbmdlcwAAAAAka2V5Q2hhcnNOYXR1cmFsR2VuZXJhdGluZ0JvbnVzUmFuZ2VzAgAAACVjaGFyc19uYXR1cmFsX2dlbmVyYXRpbmdfYm9udXNfcmFuZ2VzAAAAAA1rZXlUb3RhbExhbmRzAgAAAAt0b3RhbF9sYW5kcwAAAAATa2V5QmF0dGxlUmVzdFBlcmlvZAIAAAASYmF0dGxlX3Jlc3RfcGVyaW9kAAAAABlrZXlCYXR0bGVXaW5DaGFuY2VIYXJkY2FwAgAAABliYXR0bGVfd2luX2NoYW5jZV9oYXJkY2FwAAAAAB5rZXlCYXR0bGVXaW5DaGFuY2VJbmNyUGVyQmxvY2sCAAAAIGJhdHRsZV93aW5fY2hhbmNlX2luY3JfcGVyX2Jsb2NrAAAAABlrZXlCYXR0bGVMb290UmFyaXR5UmFuZ2VzAgAAABliYXR0bGVfbG9vdF9yYXJpdHlfcmFuZ2VzAAAAABJrZXlJdGVtc0NhdGVnb3JpZXMCAAAAEGl0ZW1zX2NhdGVnb3JpZXMAAAAAE2tleUl0ZW1zVHlwZXNQZXJDYXQCAAAAE2l0ZW1zX3R5cGVzX3Blcl9jYXQAAAAAD2tleUl0ZW1zRWZmZWN0cwIAAAANaXRlbXNfZWZmZWN0cwAAAAAYa2V5aXRlbXNFZmZlY3RzTWF4UmFuZ2VzAgAAABdpdGVtc19lZmZlY3RzX21heF9yYW5nZQEAAAAOZWNvc3lzdGVtQ2hlY2sAAAABAAAABmNhbGxlcgMJAQAAAAIhPQAAAAIJAQAAAAhjb250YWlucwAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAAFWtleUVjb3N5c3RlbUFkZHJlc3NlcwkAAlgAAAABCAUAAAAGY2FsbGVyAAAABWJ5dGVzBgkAAAIAAAABAgAAAA1BY2Nlc3MgZGVuaWVkBgAAAAQAAAABaQEAAAAEaW5pdAAAAAADCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAMQWNjZXMgZGVuaWVkAwMJAQAAAAIhPQAAAAIJAAQeAAAAAQUAAAAEdGhpcwYJAQAAAAIhPQAAAAIFAAAACERFVl9NT0RFBgcJAAACAAAAAQIAAAARSW5pdCBkb25lIGFscmVhZHkEAAAACnRva2VuSXNzdWUJAARCAAAABQUAAAAJdG9rZW5OYW1lBQAAAAl0b2tlbkRlc2MAAAAAAAAAAAEAAAAAAAAAAAgGBAAAAAd0b2tlbklkCQAEOAAAAAEFAAAACnRva2VuSXNzdWUJAARMAAAAAgUAAAAKdG9rZW5Jc3N1ZQkABEwAAAACCQEAAAALQmluYXJ5RW50cnkAAAACBQAAAAprZXlUb2tlbklkBQAAAAd0b2tlbklkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABRrZXlUb2tlbkVtaXNzaW9uUmF0ZQUAAAAYdG9rZW5Jbml0aWFsRW1pc3Npb25SYXRlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABFrZXlUb2tlbkdlbmVyYXRlZAAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAba2V5VG9rZW5HZW5lcmF0ZWRMYXN0VXBkYXRlBQAAAAZoZWlnaHQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAVa2V5RWNvc3lzdGVtQWRkcmVzc2VzCQAEJQAAAAEFAAAABHRoaXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADWtleVRvdGFsTGFuZHMFAAAAEmxhbmRzSW5pdGlhbEFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5Q2hhcnNCb2R5QW1vdW50BQAAABthcHBlYXJhbmNlSW5pdGlhbEJvZHlBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEmtleUNoYXJzRXllc0Ftb3VudAUAAAAbYXBwZWFyYW5jZUluaXRpYWxFeWVzQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABNrZXlDaGFyc01vdXRoQW1vdW50BQAAABxhcHBlYXJhbmNlSW5pdGlhbE1vdXRoQW1vdW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAGGtleUNoYXJzU3RhdHNUaWVyc1JhbmdlcwUAAAAXcmFuZ2VzSW5pdGlhbFN0YXRzVGllcnMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAea2V5Q2hhcnNOYXR1cmFsRWxlbUJvbnVzUmFuZ2VzBQAAABhyYW5nZXNJbml0aWFsTmF0dXJhbEVsZW0JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAka2V5Q2hhcnNOYXR1cmFsR2VuZXJhdGluZ0JvbnVzUmFuZ2VzBQAAAB5yYW5nZXNJbml0aWFsTmF0dXJhbEdlbmVyYXRpbmcJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAga2V5Q2hhcnNOYXR1cmFsQmF0dGxlQm9udXNSYW5nZXMFAAAAGnJhbmdlc0luaXRpYWxOYXR1cmFsQmF0dGxlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABNrZXlCYXR0bGVSZXN0UGVyaW9kBQAAABBiYXR0bGVSZXN0UGVyaW9kCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABlrZXlCYXR0bGVXaW5DaGFuY2VIYXJkY2FwBQAAABZiYXR0bGVXaW5DaGFuY2VIYXJkY2FwCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAB5rZXlCYXR0bGVXaW5DaGFuY2VJbmNyUGVyQmxvY2sFAAAAG2JhdHRsZVdpbkNoYW5jZUluY3JQZXJCbG9jawkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABlrZXlCYXR0bGVMb290UmFyaXR5UmFuZ2VzBQAAABViYXR0bGVMb290UmFyaXR5UmFuZ2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEmtleUl0ZW1zQ2F0ZWdvcmllcwUAAAAPaXRlbXNDYXRlZ29yaWVzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAE2tleUl0ZW1zVHlwZXNQZXJDYXQFAAAAEGl0ZW1zVHlwZXNQZXJDYXQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAD2tleUl0ZW1zRWZmZWN0cwUAAAAMaXRlbXNFZmZlY3RzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAGGtleWl0ZW1zRWZmZWN0c01heFJhbmdlcwUAAAAUaXRlbXNFZmZlY3RzTWF4UmFuZ2UFAAAAA25pbAAAAAFpAQAAABhtYW5hZ2VFY29zeXN0ZW1BZGRyZXNzZXMAAAACAAAAA2FkZAAAAARhZGRyAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAADEFjY2VzIGRlbmllZAQAAAAFbUFkZHIEAAAAByRtYXRjaDAJAAQmAAAAAQUAAAAEYWRkcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQWRkcmVzcwQAAAAGaXNBZGRyBQAAAAckbWF0Y2gwBQAAAARhZGRyCQAAAgAAAAECAAAADk5vdCBhbiBhZGRyZXNzBAAAAA5jdXJyZW50RWNvQWRkcgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAAVa2V5RWNvc3lzdGVtQWRkcmVzc2VzBAAAAAphZGRySW5MaXN0CQEAAAAIY29udGFpbnMAAAACBQAAAA5jdXJyZW50RWNvQWRkcgUAAAAFbUFkZHIDAwkAAAAAAAACBQAAAANhZGQGCQAAAAAAAAIFAAAACmFkZHJJbkxpc3QGBwkAAAIAAAABAgAAABtBZGRyZXNzIGFscmVhZHkgaW4gdGhlIGxpc3QDAwkAAAAAAAACBQAAAANhZGQHCQAAAAAAAAIFAAAACmFkZHJJbkxpc3QHBwkAAAIAAAABAgAAAB9BZGRyZXNzIG5vdCBpbiB0aGUgbGlzdCBhbHJlYWR5BAAAAApuZXdFY29BZGRyAwkAAAAAAAACBQAAAANhZGQGCQABLAAAAAIJAAEsAAAAAgUAAAAOY3VycmVudEVjb0FkZHIFAAAACXNlcGFyYXRvcgUAAAAFbUFkZHIEAAAAC2Vjb0FkZHJMaXN0CQAEtQAAAAIFAAAADmN1cnJlbnRFY29BZGRyBQAAAAlzZXBhcmF0b3IEAAAACWFkZHJJbmRleAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAETwAAAAIFAAAAC2Vjb0FkZHJMaXN0BQAAAAVtQWRkcgIAAAAPVW5rbm93biBhZGRyZXNzCQAEuQAAAAIJAARRAAAAAgUAAAALZWNvQWRkckxpc3QFAAAACWFkZHJJbmRleAUAAAAJc2VwYXJhdG9yCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAFWtleUVjb3N5c3RlbUFkZHJlc3NlcwUAAAAKbmV3RWNvQWRkcgUAAAADbmlsAAAAAWkBAAAAFGdldEdlbmVyYXRlZFN1cHBsaWVzAAAAAAMJAQAAAAIhPQAAAAIJAQAAAA5lY29zeXN0ZW1DaGVjawAAAAEIBQAAAAFpAAAABmNhbGxlcgYJAQAAAAV0aHJvdwAAAAAEAAAAGGN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllcwkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAARa2V5VG9rZW5HZW5lcmF0ZWQEAAAACmhlaWdodERpZmYJAABlAAAAAgUAAAAGaGVpZ2h0CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAABtrZXlUb2tlbkdlbmVyYXRlZExhc3RVcGRhdGUEAAAAFG5ld0dlbmVyYXRlZFN1cHBsaWVzCQAAZAAAAAIFAAAAGGN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllcwkAAGgAAAACBQAAAApoZWlnaHREaWZmCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAABRrZXlUb2tlbkVtaXNzaW9uUmF0ZQMJAABmAAAAAgUAAAAYY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzBQAAABRuZXdHZW5lcmF0ZWRTdXBwbGllcwkAAAIAAAABAgAAAC9uZXdHZW5lcmF0ZWRTdXBwbGllcyA8IGN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllcwMJAABmAAAAAgAAAAAAAAAAAAUAAAAKaGVpZ2h0RGlmZgkAAAIAAAABAgAAAA5oZWlnaHREaWZmIDwgMAkABRQAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABFrZXlUb2tlbkdlbmVyYXRlZAUAAAAUbmV3R2VuZXJhdGVkU3VwcGxpZXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAG2tleVRva2VuR2VuZXJhdGVkTGFzdFVwZGF0ZQUAAAAGaGVpZ2h0BQAAAANuaWwFAAAAFG5ld0dlbmVyYXRlZFN1cHBsaWVzAAAAAWkBAAAAD3NlbmRUb2tlbnN0b0FwcAAAAAEAAAAGYW1vdW50AwkBAAAAAiE9AAAAAgkBAAAADmVjb3N5c3RlbUNoZWNrAAAAAQgFAAAAAWkAAAAGY2FsbGVyBgkBAAAABXRocm93AAAAAAQAAAAHdG9rZW5JZAkBAAAAEUBleHRyTmF0aXZlKDEwNTIpAAAAAgUAAAAEdGhpcwUAAAAKa2V5VG9rZW5JZAQAAAAMdG9rZW5SZWlzc3VlCQEAAAAHUmVpc3N1ZQAAAAMFAAAAB3Rva2VuSWQFAAAABmFtb3VudAYJAAUUAAAAAgkABEwAAAACBQAAAAx0b2tlblJlaXNzdWUJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAZhbW91bnQFAAAAB3Rva2VuSWQFAAAAA25pbAUAAAAGYW1vdW50AAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXnuf3XU", "height": 2058514, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6hUDWE4NzGYyQnM8V6NW3w7BjePLyx52jKdUCTk5ay8M Next: FK36WmgDfwSPewjSdsMDMcJ54zmBJkdNqurVAHhxXN8k Diff:
OldNewDifferences
2525
2626 let rangesInitialNaturalGenerating = "200_300_375_425_450_500"
2727
28-let rangesInitialNaturalLoots = "200_300_375_425_450_500"
28+let rangesInitialNaturalBattle = "200_300_375_425_450_500"
29+
30+let battleRestPeriod = 0
31+
32+let battleWinChanceHardcap = 800000
33+
34+let battleWinChanceIncrPerBlock = 100
35+
36+let battleLootRarityRange = "8000_9500_9990_10000"
37+
38+let itemsCategories = 3
39+
40+let itemsTypesPerCat = "6_4_3"
41+
42+let itemsEffects = 32
43+
44+let itemsEffectsMaxRange = makeString(["2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "500", "500", "500", "500", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "25", "25"], separator)
2945
3046 let keyEcosystemAddresses = "ecosystem_addresses"
3147
4763
4864 let keyCharsNaturalElemBonusRanges = "chars_natural_elem_bonus_ranges"
4965
50-let keyCharsNaturalLootsBonusRanges = "chars_natural_loots_bonus_ranges"
66+let keyCharsNaturalBattleBonusRanges = "chars_natural_battle_bonus_ranges"
5167
5268 let keyCharsNaturalGeneratingBonusRanges = "chars_natural_generating_bonus_ranges"
5369
5470 let keyTotalLands = "total_lands"
71+
72+let keyBattleRestPeriod = "battle_rest_period"
73+
74+let keyBattleWinChanceHardcap = "battle_win_chance_hardcap"
75+
76+let keyBattleWinChanceIncrPerBlock = "battle_win_chance_incr_per_block"
77+
78+let keyBattleLootRarityRanges = "battle_loot_rarity_ranges"
79+
80+let keyItemsCategories = "items_categories"
81+
82+let keyItemsTypesPerCat = "items_types_per_cat"
83+
84+let keyItemsEffects = "items_effects"
85+
86+let keyitemsEffectsMaxRanges = "items_effects_max_range"
5587
5688 func ecosystemCheck (caller) = if ((contains(getStringValue(this, keyEcosystemAddresses), toBase58String(caller.bytes)) != true))
5789 then throw("Access denied")
68100 else {
69101 let tokenIssue = Issue(tokenName, tokenDesc, 1, 8, true)
70102 let tokenId = calculateAssetId(tokenIssue)
71-[tokenIssue, BinaryEntry(keyTokenId, tokenId), IntegerEntry(keyTokenEmissionRate, tokenInitialEmissionRate), IntegerEntry(keyTokenGenerated, 0), IntegerEntry(keyTokenGeneratedLastUpdate, height), StringEntry(keyEcosystemAddresses, toString(this)), IntegerEntry(keyTotalLands, landsInitialAmount), IntegerEntry(keyCharsBodyAmount, appearanceInitialBodyAmount), IntegerEntry(keyCharsEyesAmount, appearanceInitialEyesAmount), IntegerEntry(keyCharsMouthAmount, appearanceInitialMouthAmount), StringEntry(keyCharsStatsTiersRanges, rangesInitialStatsTiers), StringEntry(keyCharsNaturalElemBonusRanges, rangesInitialNaturalElem), StringEntry(keyCharsNaturalGeneratingBonusRanges, rangesInitialNaturalGenerating), StringEntry(keyCharsNaturalLootsBonusRanges, rangesInitialNaturalLoots)]
103+[tokenIssue, BinaryEntry(keyTokenId, tokenId), IntegerEntry(keyTokenEmissionRate, tokenInitialEmissionRate), IntegerEntry(keyTokenGenerated, 0), IntegerEntry(keyTokenGeneratedLastUpdate, height), StringEntry(keyEcosystemAddresses, toString(this)), IntegerEntry(keyTotalLands, landsInitialAmount), IntegerEntry(keyCharsBodyAmount, appearanceInitialBodyAmount), IntegerEntry(keyCharsEyesAmount, appearanceInitialEyesAmount), IntegerEntry(keyCharsMouthAmount, appearanceInitialMouthAmount), StringEntry(keyCharsStatsTiersRanges, rangesInitialStatsTiers), StringEntry(keyCharsNaturalElemBonusRanges, rangesInitialNaturalElem), StringEntry(keyCharsNaturalGeneratingBonusRanges, rangesInitialNaturalGenerating), StringEntry(keyCharsNaturalBattleBonusRanges, rangesInitialNaturalBattle), IntegerEntry(keyBattleRestPeriod, battleRestPeriod), IntegerEntry(keyBattleWinChanceHardcap, battleWinChanceHardcap), IntegerEntry(keyBattleWinChanceIncrPerBlock, battleWinChanceIncrPerBlock), StringEntry(keyBattleLootRarityRanges, battleLootRarityRange), IntegerEntry(keyItemsCategories, itemsCategories), StringEntry(keyItemsTypesPerCat, itemsTypesPerCat), IntegerEntry(keyItemsEffects, itemsEffects), StringEntry(keyitemsEffectsMaxRanges, itemsEffectsMaxRange)]
72104 }
73105
74106
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let separator = "_"
55
66 let DEV_MODE = true
77
88 let tokenName = "Coucou"
99
1010 let tokenDesc = "bla bla"
1111
1212 let tokenInitialEmissionRate = 100000000
1313
1414 let landsInitialAmount = 6
1515
1616 let appearanceInitialBodyAmount = 5
1717
1818 let appearanceInitialEyesAmount = 5
1919
2020 let appearanceInitialMouthAmount = 5
2121
2222 let rangesInitialStatsTiers = "4500_7500_9000_9750_9990_10000"
2323
2424 let rangesInitialNaturalElem = "400_1000_1400_1600_1750_2000"
2525
2626 let rangesInitialNaturalGenerating = "200_300_375_425_450_500"
2727
28-let rangesInitialNaturalLoots = "200_300_375_425_450_500"
28+let rangesInitialNaturalBattle = "200_300_375_425_450_500"
29+
30+let battleRestPeriod = 0
31+
32+let battleWinChanceHardcap = 800000
33+
34+let battleWinChanceIncrPerBlock = 100
35+
36+let battleLootRarityRange = "8000_9500_9990_10000"
37+
38+let itemsCategories = 3
39+
40+let itemsTypesPerCat = "6_4_3"
41+
42+let itemsEffects = 32
43+
44+let itemsEffectsMaxRange = makeString(["2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "2000", "500", "500", "500", "500", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "100", "25", "25"], separator)
2945
3046 let keyEcosystemAddresses = "ecosystem_addresses"
3147
3248 let keyTokenId = "token_id"
3349
3450 let keyTokenEmissionRate = "token_emission_rate"
3551
3652 let keyTokenGenerated = "token_generated"
3753
3854 let keyTokenGeneratedLastUpdate = "token_generated_last_update"
3955
4056 let keyCharsBodyAmount = "chars_body_amount"
4157
4258 let keyCharsEyesAmount = "chars_eyes_amount"
4359
4460 let keyCharsMouthAmount = "chars_mouth_amount"
4561
4662 let keyCharsStatsTiersRanges = "chars_stats_tiers_ranges"
4763
4864 let keyCharsNaturalElemBonusRanges = "chars_natural_elem_bonus_ranges"
4965
50-let keyCharsNaturalLootsBonusRanges = "chars_natural_loots_bonus_ranges"
66+let keyCharsNaturalBattleBonusRanges = "chars_natural_battle_bonus_ranges"
5167
5268 let keyCharsNaturalGeneratingBonusRanges = "chars_natural_generating_bonus_ranges"
5369
5470 let keyTotalLands = "total_lands"
71+
72+let keyBattleRestPeriod = "battle_rest_period"
73+
74+let keyBattleWinChanceHardcap = "battle_win_chance_hardcap"
75+
76+let keyBattleWinChanceIncrPerBlock = "battle_win_chance_incr_per_block"
77+
78+let keyBattleLootRarityRanges = "battle_loot_rarity_ranges"
79+
80+let keyItemsCategories = "items_categories"
81+
82+let keyItemsTypesPerCat = "items_types_per_cat"
83+
84+let keyItemsEffects = "items_effects"
85+
86+let keyitemsEffectsMaxRanges = "items_effects_max_range"
5587
5688 func ecosystemCheck (caller) = if ((contains(getStringValue(this, keyEcosystemAddresses), toBase58String(caller.bytes)) != true))
5789 then throw("Access denied")
5890 else true
5991
6092
6193 @Callable(i)
6294 func init () = if ((i.caller != this))
6395 then throw("Acces denied")
6496 else if (if ((isDataStorageUntouched(this) != true))
6597 then (DEV_MODE != true)
6698 else false)
6799 then throw("Init done already")
68100 else {
69101 let tokenIssue = Issue(tokenName, tokenDesc, 1, 8, true)
70102 let tokenId = calculateAssetId(tokenIssue)
71-[tokenIssue, BinaryEntry(keyTokenId, tokenId), IntegerEntry(keyTokenEmissionRate, tokenInitialEmissionRate), IntegerEntry(keyTokenGenerated, 0), IntegerEntry(keyTokenGeneratedLastUpdate, height), StringEntry(keyEcosystemAddresses, toString(this)), IntegerEntry(keyTotalLands, landsInitialAmount), IntegerEntry(keyCharsBodyAmount, appearanceInitialBodyAmount), IntegerEntry(keyCharsEyesAmount, appearanceInitialEyesAmount), IntegerEntry(keyCharsMouthAmount, appearanceInitialMouthAmount), StringEntry(keyCharsStatsTiersRanges, rangesInitialStatsTiers), StringEntry(keyCharsNaturalElemBonusRanges, rangesInitialNaturalElem), StringEntry(keyCharsNaturalGeneratingBonusRanges, rangesInitialNaturalGenerating), StringEntry(keyCharsNaturalLootsBonusRanges, rangesInitialNaturalLoots)]
103+[tokenIssue, BinaryEntry(keyTokenId, tokenId), IntegerEntry(keyTokenEmissionRate, tokenInitialEmissionRate), IntegerEntry(keyTokenGenerated, 0), IntegerEntry(keyTokenGeneratedLastUpdate, height), StringEntry(keyEcosystemAddresses, toString(this)), IntegerEntry(keyTotalLands, landsInitialAmount), IntegerEntry(keyCharsBodyAmount, appearanceInitialBodyAmount), IntegerEntry(keyCharsEyesAmount, appearanceInitialEyesAmount), IntegerEntry(keyCharsMouthAmount, appearanceInitialMouthAmount), StringEntry(keyCharsStatsTiersRanges, rangesInitialStatsTiers), StringEntry(keyCharsNaturalElemBonusRanges, rangesInitialNaturalElem), StringEntry(keyCharsNaturalGeneratingBonusRanges, rangesInitialNaturalGenerating), StringEntry(keyCharsNaturalBattleBonusRanges, rangesInitialNaturalBattle), IntegerEntry(keyBattleRestPeriod, battleRestPeriod), IntegerEntry(keyBattleWinChanceHardcap, battleWinChanceHardcap), IntegerEntry(keyBattleWinChanceIncrPerBlock, battleWinChanceIncrPerBlock), StringEntry(keyBattleLootRarityRanges, battleLootRarityRange), IntegerEntry(keyItemsCategories, itemsCategories), StringEntry(keyItemsTypesPerCat, itemsTypesPerCat), IntegerEntry(keyItemsEffects, itemsEffects), StringEntry(keyitemsEffectsMaxRanges, itemsEffectsMaxRange)]
72104 }
73105
74106
75107
76108 @Callable(i)
77109 func manageEcosystemAddresses (add,addr) = if ((i.caller != this))
78110 then throw("Acces denied")
79111 else {
80112 let mAddr = match addressFromString(addr) {
81113 case isAddr: Address =>
82114 addr
83115 case _ =>
84116 throw("Not an address")
85117 }
86118 let currentEcoAddr = getStringValue(this, keyEcosystemAddresses)
87119 let addrInList = contains(currentEcoAddr, mAddr)
88120 if (if ((add == true))
89121 then (addrInList == true)
90122 else false)
91123 then throw("Address already in the list")
92124 else if (if ((add == false))
93125 then (addrInList == false)
94126 else false)
95127 then throw("Address not in the list already")
96128 else {
97129 let newEcoAddr = if ((add == true))
98130 then ((currentEcoAddr + separator) + mAddr)
99131 else {
100132 let ecoAddrList = split(currentEcoAddr, separator)
101133 let addrIndex = valueOrErrorMessage(indexOf(ecoAddrList, mAddr), "Unknown address")
102134 makeString(removeByIndex(ecoAddrList, addrIndex), separator)
103135 }
104136 [StringEntry(keyEcosystemAddresses, newEcoAddr)]
105137 }
106138 }
107139
108140
109141
110142 @Callable(i)
111143 func getGeneratedSupplies () = if ((ecosystemCheck(i.caller) != true))
112144 then throw()
113145 else {
114146 let currentGeneratedSupplies = getIntegerValue(this, keyTokenGenerated)
115147 let heightDiff = (height - getIntegerValue(this, keyTokenGeneratedLastUpdate))
116148 let newGeneratedSupplies = (currentGeneratedSupplies + (heightDiff * getIntegerValue(this, keyTokenEmissionRate)))
117149 if ((currentGeneratedSupplies > newGeneratedSupplies))
118150 then throw("newGeneratedSupplies < currentGeneratedSupplies")
119151 else if ((0 > heightDiff))
120152 then throw("heightDiff < 0")
121153 else $Tuple2([IntegerEntry(keyTokenGenerated, newGeneratedSupplies), IntegerEntry(keyTokenGeneratedLastUpdate, height)], newGeneratedSupplies)
122154 }
123155
124156
125157
126158 @Callable(i)
127159 func sendTokenstoApp (amount) = if ((ecosystemCheck(i.caller) != true))
128160 then throw()
129161 else {
130162 let tokenId = getBinaryValue(this, keyTokenId)
131163 let tokenReissue = Reissue(tokenId, amount, true)
132164 $Tuple2([tokenReissue, ScriptTransfer(i.caller, amount, tokenId)], amount)
133165 }
134166
135167
136168 @Verifier(tx)
137169 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
138170

github/deemru/w8io/169f3d6 
91.39 ms