package Ġcom . j dia z can o . modul art d . tabs Ċ Ċ import Ġcom . github . sal om on br ys . kode in . instance Ċ import Ġcom . j dia z can o . modul art d . beans .* Ċ import Ġcom . j dia z can o . modul art d . beans . Map Ċ import Ġcom . j dia z can o . modul art d . bus . Bus Ċ import Ġcom . j dia z can o . modul art d . bus . Bus Topic Ċ import Ġcom . j dia z can o . modul art d . injection s . kode in Ċ import Ġcom . j dia z can o . modul art d . ui . widgets . Animated Button Ċ import Ġcom . j dia z can o . modul art d . ui . widgets . Sound Chooser Ċ import Ġcom . j dia z can o . modul art d . ui . widgets . lists . Map Object List Ċ import Ġcom . j dia z can o . modul art d . ui . widgets . pick Resource Ċ import Ġcom . j dia z can o . modul art d . ui . widgets . rot atable Ċ import Ġcom . j dia z can o . modul art d . utils . click Listener Ċ import Ġcom . j dia z can o . modul art d . utils . scroll able Ċ import Ġcom . j dia z can o . modul art d . utils . s ne aky Change Ċ import Ġcom . j dia z can o . modul art d . utils . translate Ċ import Ġcom . kot cr ab . vis . ui . widget .* Ċ import Ġjava . util .* Ċ Ċ class ĠT urret Tab : ĠBase Tab < T urret >( translate (" tabs . t urre ts "), Ġtrue ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlist Ġ= ĠMap Object List ( kode in . instance < Map >(). t urre ts , ĠT urret :: class . java ) ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsplit Pane : ĠVis Split Pane ĊĠĠĠ Ġprivate Ġval Ġproperties Table Ġ= ĠVis Table ( true ) ĊĊĠĠĠ Ġprivate Ġval Ġlabel Name Ġ= ĠVis Label ( translate (" label . name ")) ĊĠĠĠ Ġprivate Ġval Ġtext Name Ġ= ĠVis Valid atable TextField () ĊĠĠĠ Ġprivate Ġval Ġlabel Image Ġ= ĠVis Label ( translate (" label . image ")) ĊĠĠĠ Ġprivate Ġval Ġbutton Image Ġ= ĠAnimated Button () ĊĠĠĠ Ġprivate Ġval Ġlabel Bullet Image Ġ= ĠVis Label ( translate (" label . bullet image ")) ĊĠĠĠ Ġprivate Ġval Ġbutton Bullet Image Ġ= ĠAnimated Button () ĊĠĠĠ Ġprivate Ġval Ġlabel Damage Ġ= ĠVis Label ( translate (" label . damage ")) ĊĠĠĠ Ġprivate Ġval Ġtext Damage Ġ= ĠVis Valid atable TextField () ĊĠĠĠ Ġprivate Ġval Ġlabel Attack Speed Ġ= ĠVis Label ( translate (" label . attack speed ")) ĊĠĠĠ Ġprivate Ġval Ġtext Attack Speed Ġ= ĠVis Valid atable TextField () ĊĠĠĠ Ġprivate Ġval Ġlabel Range Ġ= ĠVis Label ( translate (" label . range ")) ĊĠĠĠ Ġprivate Ġval Ġtext Range Ġ= ĠVis Valid atable TextField () ĊĠĠĠ Ġprivate Ġval Ġlabel Targets Ġ= ĠVis Label ( translate (" label . number oft arget s ")) ĊĠĠĠ Ġprivate Ġval Ġtext Targets Ġ= ĠVis Valid atable TextField () ĊĠĠĠ Ġprivate Ġval Ġlabel Splash Ġ= ĠVis Label ( translate (" label . splash radius ")) ĊĠĠĠ Ġprivate Ġval Ġtext Splash Ġ= ĠVis Valid atable TextField () ĊĊĠĠĠ Ġ/* ĠCheck Boxes Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġcheck Attack Air Ġ= ĠVis CheckBox ( translate (" check . attack . air ")) ĊĠĠĠ Ġprivate Ġval Ġcheck View In visible Ġ= ĠVis CheckBox ( translate (" check . view . invisible ")) ĊĠĠĠ Ġprivate Ġval Ġcheck St un Ġ= ĠVis CheckBox ( translate (" check . st un ")) ĊĠĠĠ Ġprivate Ġval Ġlabel St un Duration Ġ= ĠVis Label ( translate (" st un . duration ")) ĊĠĠĠ Ġprivate Ġval Ġtext St un Duration Ġ= ĠVis Valid atable TextField () ĊĠĠĠ Ġprivate Ġval Ġtable St un Ġ= ĠVis Table ( true ) ĊĠĠĠ Ġprivate Ġval Ġcontainer St un Ġ= ĠCol lapsible Widget ( table St un ) ĊĠĠĠ Ġprivate Ġval Ġlabel St un Chance Ġ= ĠVis Label ( translate (" st un . chance ")) ĊĠĠĠ Ġprivate Ġval Ġtext St un Chance Ġ= ĠVis Valid atable TextField () ĊĠĠĠ Ġprivate Ġval Ġcheck Slow Ġ= ĠVis CheckBox ( translate (" check . slow ")) ĊĠĠĠ Ġprivate Ġval Ġtable Slow Ġ= ĠVis Table ( true ) ĊĠĠĠ Ġprivate Ġval Ġcontainer Slow Ġ= ĠCol lapsible Widget ( table Slow ) ĊĠĠĠ Ġprivate Ġval Ġlabel Slow Duration Ġ= ĠVis Label ( translate (" slow . duration ")) ĊĠĠĠ Ġprivate Ġval Ġtext Slow Duration Ġ= ĠVis Valid atable TextField () ĊĠĠĠ Ġprivate Ġval Ġlabel Slow Chance Ġ= ĠVis Label ( translate (" slow . chance ")) ĊĠĠĠ Ġprivate Ġval Ġtext Slow Chance Ġ= ĠVis Valid atable TextField () ĊĠĠĠ Ġprivate Ġval Ġlabel Slow Percent Ġ= ĠVis Label ( translate (" slow . percent ")) ĊĠĠĠ Ġprivate Ġval Ġtext Slow Percent Ġ= ĠVis Valid atable TextField () ĊĠĠĠ Ġprivate Ġval Ġcheck Critical Stri ke Ġ= ĠVis CheckBox ( translate (" check . critical strike ")) ĊĠĠĠ Ġprivate Ġval Ġtable Crit Ġ= ĠVis Table ( true ) ĊĠĠĠ Ġprivate Ġval Ġcontainer Crit Ġ= ĠCol lapsible Widget ( table Crit ) ĊĠĠĠ Ġprivate Ġval Ġlabel Critical Chance Ġ= ĠVis Label ( translate (" critical . chance ")) ĊĠĠĠ Ġprivate Ġval Ġtext Critical Chance Ġ= ĠVis Valid atable TextField () ĊĠĠĠ Ġprivate Ġval Ġlabel Critical Multiplier Ġ= ĠVis Label ( translate (" critical . multiplier ")) ĊĠĠĠ Ġprivate Ġval Ġtext Critical Multiplier Ġ= ĠVis Valid atable TextField () ĊĊĠĠĠ Ġprivate Ġvar Ġsound Table : ĠSound Chooser < T urret Event > Ġ= ĠSound Chooser () ĊĠĠĠ Ġ// Ġprivate Ġval Ġcoin Cost Table : ĠCoin Quant ifier Table ? Ġ= Ġnull ĊĠĠĠ Ġ// Ġprivate Ġval Ġupdater Table : ĠT urret Updater Table ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠBus . register < T urret >( Bus Topic . SELECTED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate UI ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġplace Components () ĊĠĠĠĠĠĠĠ ĠsetUp Valid atable Form () ĊĠĠĠĠĠĠĠ Ġadd Change Listeners () ĊĠĠĠĠĠĠĠ Ġadd Text Fields For Events () ĊĊĠĠĠĠĠĠĠ Ġcontent . add ( split Pane ). expand (). fill () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Text Fields For Events () Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext Name ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext Damage ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext Range ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext Attack Speed ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext Targets ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext Splash ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext Damage ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext Damage ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext Damage ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext Damage ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext St un Duration ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext St un Chance ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext Critical Multiplier ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext Critical Chance ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext Slow Percent ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext Slow Chance ĊĠĠĠĠĠĠĠ Ġtext Fields Ġ+= Ġtext Slow Duration ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Change Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġbutton Image . click Listener Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpick Resource ( translate (" pick "), ĠResource Type . IMAGE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Image . resource Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . resource Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbutton Bullet Image . click Listener Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpick Resource ( translate (" pick "), ĠResource Type . IMAGE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Bullet Image . resource Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . bullet . resource Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcontainer St un . is Collapsed Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġcheck St un . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer St un . is Collapsed Ġ= Ġ! container St un . is Collapsed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext St un Chance . is Validation Enabled Ġ= Ġcheck St un . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext St un Duration . is Validation Enabled Ġ= Ġcheck St un . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcontainer Crit . is Collapsed Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġcheck Critical Stri ke . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer Crit . is Collapsed Ġ= Ġ! container Crit . is Collapsed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Critical Chance . is Validation Enabled Ġ= Ġcheck Critical Stri ke . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Critical Multiplier . is Validation Enabled Ġ= Ġcheck Critical Stri ke . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcontainer Slow . is Collapsed Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġcheck Slow . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer Slow . is Collapsed Ġ= Ġ! container Slow . is Collapsed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Slow Duration . is Validation Enabled Ġ= Ġcheck Slow . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Slow Chance . is Validation Enabled Ġ= Ġcheck Slow . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Slow Percent . is Validation Enabled Ġ= Ġcheck Slow . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtext Name . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . name = Ġtext Name . text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Damage . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . damage Ġ= Ġtext Damage . text . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Attack Speed . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . attack Speed Ġ= Ġtext Attack Speed . text . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Range . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . range Ġ= Ġtext Range . text . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Targets . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . numberOf Targets Ġ= Ġtext Targets . text . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Splash . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . splash Radius Ġ= Ġtext Splash . text . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext St un Duration . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . st un Duration Ġ= Ġtext St un Duration . text . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext St un Chance . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . st un Chance Ġ= Ġtext St un Chance . text . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Slow Chance . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . slow Chance Ġ= Ġtext Slow Chance . text . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Slow Duration . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . slow Duration Ġ= Ġtext Slow Duration . text . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Slow Percent . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . slow Percent Ġ= Ġtext Slow Percent . text . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Critical Chance . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . crit Chance Ġ= Ġtext Critical Chance . text . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Critical Multiplier . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . crit Multiplier Ġ= Ġtext Critical Multiplier . text . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcheck St un . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . can St un Ġ= Ġcheck St un . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcheck Slow . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . can Slow Ġ= Ġcheck Slow . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcheck Critical Stri ke . s ne aky Change Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . selected Item . can Crit Ġ= Ġcheck Critical Stri ke . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . dirty Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetUp Valid atable Form () Ġ{ ĊĠĠĠĠĠĠĠ Ġvalidator . not Empty ( text Name , Ġ" Name Ġcan 't Ġbe Ġempty ") Ġ// ĠTODO Ġtranslate Ġthese Ġstrings Ġplease ee ĊĠĠĠĠĠĠĠ Ġvalidator . value GreaterThan ( text Damage , Ġ" It Ġneeds Ġto Ġbe Ġa Ġpositive Ġvalue ", Ġ 0 F , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġvalidator . value GreaterThan ( text Attack Speed , Ġ" It Ġneeds Ġto Ġbe Ġa Ġpositive Ġvalue ", Ġ 0 F , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġvalidator . value GreaterThan ( text Range , Ġ" It Ġneeds Ġto Ġbe Ġa Ġpositive Ġvalue ", Ġ 0 F , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġvalidator . value GreaterThan ( text Targets , Ġ" It Ġneeds Ġto Ġbe Ġa Ġpositive Ġvalue ", Ġ 0 F , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġvalidator . value GreaterThan ( text Splash , Ġ" It Ġneeds Ġto Ġbe Ġa Ġpositive Ġvalue ", Ġ 0 F , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġvalidator . value GreaterThan ( text St un Duration , Ġ" It Ġneeds Ġto Ġbe Ġa Ġpositive Ġvalue ", Ġ 0 F , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġvalidator . value GreaterThan ( text St un Chance , Ġ" It Ġneeds Ġto Ġbe Ġa Ġpositive Ġvalue ", Ġ 0 F , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġvalidator . value GreaterThan ( text Slow Duration , Ġ" It Ġneeds Ġto Ġbe Ġa Ġpositive Ġvalue ", Ġ 0 F , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġvalidator . value GreaterThan ( text Slow Chance , Ġ" It Ġneeds Ġto Ġbe Ġa Ġpositive Ġvalue ", Ġ 0 F , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġvalidator . value GreaterThan ( text Slow Percent , Ġ" It Ġneeds Ġto Ġbe Ġa Ġpositive Ġvalue ", Ġ 0 F , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġvalidator . value GreaterThan ( text Critical Chance , Ġ" It Ġneeds Ġto Ġbe Ġa Ġpositive Ġvalue ", Ġ 0 F , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġvalidator . value GreaterThan ( text Critical Multiplier , Ġ" It Ġneeds Ġto Ġbe Ġa Ġpositive Ġvalue ", Ġ 0 F , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġplace Components () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Build Ġthe Ġtable ĊĠĠĠĠĠĠĠ Ġproperties Table . add ( label Name ). left (). pad Right ( 1 0 F ); Ġproperties Table . add ( text Name ). pad Bottom ( 7 f ). row () ĊĠĠĠĠĠĠĠ Ġproperties Table . add ( label Image ). left (). pad Right ( 1 0 F ); Ġproperties Table . add ( button Image . rot atable ()). size ( 5 0 f ). row () ĊĠĠĠĠĠĠĠ Ġproperties Table . add ( label Bullet Image ). left (). pad Right ( 1 0 F ); Ġproperties Table . add ( button Bullet Image . rot atable ()). size ( 5 0 f ). row () ĊĠĠĠĠĠĠĠ Ġproperties Table . add ( label Damage ). left (). pad Right ( 1 0 F ); Ġproperties Table . add ( text Damage ). row () ĊĠĠĠĠĠĠĠ Ġproperties Table . add ( label Attack Speed ). left (). pad Right ( 1 0 F ); Ġproperties Table . add ( text Attack Speed ). row () ĊĠĠĠĠĠĠĠ Ġproperties Table . add ( label Range ). left (). pad Right ( 1 0 F ); Ġproperties Table . add ( text Range ). row () ĊĠĠĠĠĠĠĠ Ġproperties Table . add ( label Targets ). left (). pad Right ( 1 0 F ); Ġproperties Table . add ( text Targets ). row () ĊĠĠĠĠĠĠĠ Ġproperties Table . add ( label Splash ). left (). pad Right ( 1 0 F ); Ġproperties Table . add ( text Splash ). row () ĊĊĠĠĠĠĠĠĠ Ġproperties Table . add ( check Attack Air ). left (). row () ĊĠĠĠĠĠĠĠ Ġproperties Table . add ( check View In visible ). left (). row () ĊĠĠĠĠĠĠĠ Ġproperties Table . add ( check Slow ). left (). row () ĊĠĠĠĠĠĠĠ Ġtable Slow . add ( label Slow Chance ). left (). pad Right ( 1 0 F ); Ġtable Slow . add ( text Slow Chance ). left (). row () ĊĠĠĠĠĠĠĠ Ġtable Slow . add ( label Slow Duration ). left (). pad Right ( 1 0 F ); Ġtable Slow . add ( text Slow Duration ). left (). row () ĊĠĠĠĠĠĠĠ Ġtable Slow . add ( label Slow Percent ). left (). pad Right ( 1 0 F ); Ġtable Slow . add ( text Slow Percent ). left (). row () ĊĠĠĠĠĠĠĠ Ġproperties Table . add ( container Slow ). col span ( 2 ). left (). row () ĊĠĠĠĠĠĠĠ Ġproperties Table . add ( check St un ). left (). row () ĊĠĠĠĠĠĠĠ Ġtable St un . add ( label St un Chance ). left (). pad Right ( 1 0 F ); Ġtable St un . add ( text St un Chance ). left (). row () ĊĠĠĠĠĠĠĠ Ġtable St un . add ( label St un Duration ). left (). pad Right ( 1 0 F ); Ġtable St un . add ( text St un Duration ). left (). row () ĊĠĠĠĠĠĠĠ Ġproperties Table . add ( container St un ). col span ( 2 ). left (). row () ĊĠĠĠĠĠĠĠ Ġproperties Table . add ( check Critical Stri ke ). left (). row () ĊĠĠĠĠĠĠĠ Ġtable Crit . add ( label Critical Chance ). left (). pad Right ( 1 0 F ); Ġtable Crit . add ( text Critical Chance ). left (). row () ĊĠĠĠĠĠĠĠ Ġtable Crit . add ( label Critical Multiplier ). left (). pad Right ( 1 0 F ); Ġtable Crit . add ( text Critical Multiplier ). left (). row () ĊĠĠĠĠĠĠĠ Ġproperties Table . add ( container Crit ). col span ( 2 ). left (). row () ĊĠĠĠĠĠĠĠ Ġproperties Table . add Separator (). col span ( 2 ). expand X (). fill X (). row () ĊĠĠĠĠĠĠĠ Ġ// ĠTODO Ġthere Ġare Ġno Ġcoins Ġor Ġupdate Ġso Ġthis Ġis Ġstill Ġtodo Ġ:( ĊĠĠĠĠĠĠĠ Ġproperties Table . add ( sound Table ). col span ( 2 ). left (). row () ĊĠĠĠĠĠĠĠ Ġ// Ġproperties Table . add Separator (). col span ( 2 ). expand X (). fill X (). row () ĊĠĠĠĠĠĠĠ Ġ// Ġproperties Table . add ( coin Cost Table ). col span ( 2 ). left (). row () ĊĠĠĠĠĠĠĠ Ġ// Ġproperties Table . add ( updater Table ). height ( 2 0 0 f ). width ( Value . percent Width ( 1 f , Ġproperties Table )). col span ( 2 ). left (). row () ĊĊĠĠĠĠĠĠĠ Ġ// We Ġmust Ġhave Ġthis Ġtables , Ġelse Ġwe Ġcan 't Ġplace Ġthings Ġat Ġthe Ġtop ĊĠĠĠĠĠĠĠ Ġval Ġtable List Ġ= ĠVis Table ( true ) ĊĠĠĠĠĠĠĠ Ġtable List . add ( list ). fill X (). expand (). top () ĊĠĠĠĠĠĠĠ Ġval Ġtable Prop Ġ= ĠVis Table ( true ) ĊĠĠĠĠĠĠĠ Ġtable Prop . add ( properties Table ). pad Left ( 1 7 F ). fill X (). expand (). top () ĊĊĠĠĠĠĠĠĠ Ġsplit Pane Ġ= ĠVis Split Pane ( table List , Ġtable Prop . scroll able (), Ġfalse ) ĊĠĠĠĠĠĠĠ Ġsplit Pane . set Split Amount ( 0 . 4 0 F ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnew Item () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġt urret Ġ= ĠT urret (" T urret Ġ${ Random (). nextInt ( 1 0 0 0 0 )} ", ĠResource ()) ĊĠĠĠĠĠĠĠ ĠBus . post ( t urret , ĠBus Topic . CREATED ) ĊĠĠĠĠĠĠĠ Ġlist . select Item ( t urret ) ĊĠĠĠĠĠĠĠ Ġupdate UI ( t urret ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate UI ( item : ĠT urret ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdisable Program matic Events () ĊĊĠĠĠĠĠĠĠ Ġtext Name . text Ġ= Ġitem . name ĊĠĠĠĠĠĠĠ Ġbutton Image . map Object Ġ= Ġitem ĊĠĠĠĠĠĠĠ Ġbutton Bullet Image . map Object Ġ= Ġitem . bullet ĊĠĠĠĠĠĠĠ Ġtext Damage . text Ġ= Ġitem . damage . toString () ĊĠĠĠĠĠĠĠ Ġtext Range . text Ġ= Ġitem . range . toString () ĊĠĠĠĠĠĠĠ Ġtext Attack Speed . text Ġ= Ġitem . attack Speed . toString () ĊĠĠĠĠĠĠĠ Ġtext Targets . text Ġ= Ġitem . numberOf Targets . toString () ĊĠĠĠĠĠĠĠ Ġtext Splash . text Ġ= Ġitem . splash Radius . toString () ĊĠĠĠĠĠĠĠ Ġtext Damage . text Ġ= Ġitem . damage . toString () ĊĠĠĠĠĠĠĠ Ġtext Damage . text Ġ= Ġitem . damage . toString () ĊĠĠĠĠĠĠĠ Ġtext Damage . text Ġ= Ġitem . damage . toString () ĊĠĠĠĠĠĠĠ Ġtext Damage . text Ġ= Ġitem . damage . toString () ĊĊĠĠĠĠĠĠĠ Ġcheck View In visible . isChecked Ġ= Ġitem . view In visible s ĊĠĠĠĠĠĠĠ Ġcheck Attack Air . isChecked Ġ= Ġitem . attack s Air ĊĊĠĠĠĠĠĠĠ Ġcheck St un . isChecked Ġ= Ġitem . can St un ĊĠĠĠĠĠĠĠ Ġcontainer St un . is Collapsed Ġ= Ġ! check St un . isChecked ĊĠĠĠĠĠĠĠ Ġtext St un Duration . text Ġ= Ġitem . st un Duration . toString () ĊĠĠĠĠĠĠĠ Ġtext St un Chance . text Ġ= Ġitem . st un Chance . toString () ĊĊĠĠĠĠĠĠĠ Ġcheck Critical Stri ke . isChecked Ġ= Ġitem . can Crit ĊĠĠĠĠĠĠĠ Ġcontainer Crit . is Collapsed Ġ= Ġ! check Critical Stri ke . isChecked ĊĠĠĠĠĠĠĠ Ġtext Critical Multiplier . text Ġ= Ġitem . crit Multiplier . toString () ĊĠĠĠĠĠĠĠ Ġtext Critical Chance . text Ġ= Ġitem . crit Chance . toString () ĊĊĠĠĠĠĠĠĠ Ġcheck Slow . isChecked Ġ= Ġitem . can Slow ĊĠĠĠĠĠĠĠ Ġcontainer Slow . is Collapsed Ġ= Ġ! check Slow . isChecked ĊĠĠĠĠĠĠĠ Ġtext Slow Percent . text Ġ= Ġitem . slow Percent . toString () ĊĠĠĠĠĠĠĠ Ġtext Slow Chance . text Ġ= Ġitem . slow Chance . toString () ĊĠĠĠĠĠĠĠ Ġtext Slow Duration . text Ġ= Ġitem . slow Duration . toString () ĊĊĠĠĠĠĠĠĠ Ġsound Table . update ( item ) ĊĊĠĠĠĠĠĠĠ Ġenable Program matic Events () ĊĠĠĠ Ġ} Ċ Ċ }