11package archipelago ;
22
33import substates .RankingSubstate ;
4+
5+ typedef SongDetailData = {
6+ id : Int ,
7+ modded : Bool ,
8+ playerOwner : String ,
9+ sharedWith : Array <String >,
10+ songName : String
11+ }
12+
13+ typedef APSlotDataType = {
14+ deathLink : Bool ,
15+ fullSongCount : Int ,
16+ victoryLocation : String ,
17+ victoryID : Int ,
18+ ticketWinCount : Int ,
19+ gradeNeeded : String ,
20+ accuracyNeeded : String ,
21+ locationType : String ,
22+ locationMethod : String ,
23+ selectedSongs : Array <String >,
24+ songData : Map <String , SongDetailData >
25+ }
26+
27+ abstract APSlotData (APSlotDataType ) from APSlotDataType to APSlotDataType {
28+ public function new (? data : APSlotDataType ) {
29+ this = data != null ? data : {
30+ deathLink : false ,
31+ fullSongCount : 0 ,
32+ victoryLocation : " " ,
33+ victoryID : 0 ,
34+ ticketWinCount : 1 ,
35+ gradeNeeded : " Any" ,
36+ accuracyNeeded : " Any" ,
37+ locationType : " Song Completion" ,
38+ locationMethod : " Per Song" ,
39+ selectedSongs : [],
40+ songData : new Map <String , SongDetailData >()
41+ };
42+ }
43+
44+ public var deathLink (get , never ): Bool ;
45+ public var fullSongCount (get , never ): Int ;
46+ public var victoryLocation (get , never ): String ;
47+ public var victoryID (get , never ): Int ;
48+ public var ticketWinCount (get , never ): Int ;
49+ public var gradeNeeded (get , never ): String ;
50+ public var accuracyNeeded (get , never ): String ;
51+ public var locationType (get , never ): String ;
52+ public var locationMethod (get , never ): String ;
53+ public var selectedSongs (get , never ): Array <String >;
54+ public var songData (get , never ): Map <String , SongDetailData >;
55+
56+ private function get_deathLink (): Bool return this .deathLink ;
57+ private function get_fullSongCount (): Int return this .fullSongCount ;
58+ private function get_victoryLocation (): String return this .victoryLocation ;
59+ private function get_victoryID (): Int return this .victoryID ;
60+ private function get_ticketWinCount (): Int return this .ticketWinCount ;
61+ private function get_gradeNeeded (): String return this .gradeNeeded ;
62+ private function get_accuracyNeeded (): String return this .accuracyNeeded ;
63+ private function get_locationType (): String return this .locationType ;
64+ private function get_locationMethod (): String return this .locationMethod ;
65+ private function get_selectedSongs (): Array <String > return this .selectedSongs ;
66+ private function get_songData (): Map <String , SongDetailData > return this .songData ;
67+
68+ public function get (key : String ): Dynamic {
69+ return Reflect .field (this , key );
70+ }
71+
72+ public function set (key : String , value : Dynamic ): Void {
73+ Reflect .setField (this , key , value );
74+ }
75+
76+ public function hasKey (key : String ): Bool {
77+ return Reflect .hasField (this , key );
78+ }
79+ }
480class APInfo {
581 public static var ap : Client ;
682 public static var apGame : APGameState ;
@@ -19,8 +95,8 @@ class APInfo {
1995 public static var hintPoints (get , never ): Int ;
2096 public static var hintCost (get , never ): Int ;
2197
22- public static var slotData (get , never ): Dynamic ;
23- public static function get_slotData (): Dynamic {
98+ public static var slotData (get , never ): APSlotData ;
99+ public static function get_slotData (): APSlotData {
24100 return apGame ?. _slotData ;
25101 }
26102
0 commit comments