@@ -1051,7 +1051,7 @@ CM.Disp.AddMenuStats = function(title) {
10511051 div . style . fontSize = '17px' ;
10521052 div . style . fontFamily = '\"Kavoon\", Georgia, serif' ;
10531053 div . appendChild ( document . createTextNode ( text + ' ' ) ) ;
1054- span = document . createElement ( 'span' ) ;
1054+ var span = document . createElement ( 'span' ) ;
10551055 span . style . cursor = 'pointer' ;
10561056 span . style . display = 'inline-block' ;
10571057 span . style . height = '14px' ;
@@ -1077,7 +1077,9 @@ CM.Disp.AddMenuStats = function(title) {
10771077 var div = document . createElement ( 'div' ) ;
10781078 div . className = 'listing' ;
10791079 var b = document . createElement ( 'b' ) ;
1080- b . textContent = name + ' : ' ;
1080+ if ( typeof name == 'string' ) b . appendChild ( document . createTextNode ( name ) ) ;
1081+ else b . appendChild ( name ) ; // fragment
1082+ b . appendChild ( document . createTextNode ( ' : ' ) ) ;
10811083 div . appendChild ( b ) ;
10821084 div . appendChild ( text ) ;
10831085 return div ;
@@ -1181,6 +1183,32 @@ CM.Disp.AddMenuStats = function(title) {
11811183 stats . appendChild ( listing ( 'Heavenly Chips (CUR)' , hcCurFrag ) ) ;
11821184 stats . appendChild ( listing ( 'Cookies To Next Chip' , document . createTextNode ( Beautify ( neededCook ) ) ) ) ;
11831185 stats . appendChild ( listing ( 'Time To Next Chip' , document . createTextNode ( CM . Disp . FormatTime ( neededCook / ( Game . cookiesPs * ( 1 - Game . cpsSucked ) ) , 1 ) ) ) ) ;
1186+ var resetTitleFrag = document . createDocumentFragment ( ) ;
1187+ resetTitleFrag . appendChild ( document . createTextNode ( 'Reset Bonus Income ' ) )
1188+ var resetTitleSpan = document . createElement ( 'span' ) ;
1189+ resetTitleSpan . onmouseout = function ( ) { Game . tooltip . hide ( ) ; } ;
1190+ var resetTitlePlaceholder = document . createElement ( 'div' ) ;
1191+ var resetTitleDesc = document . createElement ( 'div' ) ;
1192+ resetTitleDesc . style . minWidth = '260px' ;
1193+ resetTitleDesc . style . marginBottom = '4px' ;
1194+ var resetTitleDiv = document . createElement ( 'div' ) ;
1195+ resetTitleDiv . style . textAlign = 'left' ;
1196+ resetTitleDiv . textContent = 'The bonus income you would get from new heavenly chips/reset achievements if you have the same buildings/upgrades after reset' ;
1197+ resetTitleDesc . appendChild ( resetTitleDiv ) ;
1198+ resetTitlePlaceholder . appendChild ( resetTitleDesc ) ;
1199+ resetTitleSpan . onmouseover = function ( ) { Game . tooltip . draw ( this , escape ( resetTitlePlaceholder . innerHTML ) ) ; } ;
1200+ resetTitleSpan . style . cursor = 'default' ;
1201+ resetTitleSpan . style . display = 'inline-block' ;
1202+ resetTitleSpan . style . height = '10px' ;
1203+ resetTitleSpan . style . width = '10px' ;
1204+ resetTitleSpan . style . borderRadius = '5px' ;
1205+ resetTitleSpan . style . textAlign = 'center' ;
1206+ resetTitleSpan . style . backgroundColor = '#C0C0C0' ;
1207+ resetTitleSpan . style . color = 'black' ;
1208+ resetTitleSpan . style . fontSize = '9px' ;
1209+ resetTitleSpan . style . verticalAlign = 'bottom' ;
1210+ resetTitleSpan . textContent = '?' ;
1211+ resetTitleFrag . appendChild ( resetTitleSpan ) ;
11841212 var resetBonus = CM . Sim . ResetBonus ( ) ;
11851213 var resetFrag = document . createDocumentFragment ( ) ;
11861214 resetFrag . appendChild ( document . createTextNode ( Beautify ( resetBonus ) ) ) ;
@@ -1190,7 +1218,7 @@ CM.Disp.AddMenuStats = function(title) {
11901218 resetSmall . textContent = ' (' + ( increase / 100 ) + '% of income)' ;
11911219 resetFrag . appendChild ( resetSmall ) ;
11921220 }
1193- stats . appendChild ( listing ( 'Reset Bonus Income' , resetFrag ) ) ;
1221+ stats . appendChild ( listing ( resetTitleFrag , resetFrag ) ) ;
11941222 }
11951223
11961224 if ( Game . cpsSucked > 0 ) {
@@ -1249,7 +1277,7 @@ CM.Disp.AddMenuStats = function(title) {
12491277 var createSpecDisp = function ( theSpecDisp ) {
12501278 var frag = document . createDocumentFragment ( ) ;
12511279 frag . appendChild ( document . createTextNode ( theSpecDisp . length + ' ' ) ) ;
1252- span = document . createElement ( 'span' ) ;
1280+ var span = document . createElement ( 'span' ) ;
12531281 span . onmouseout = function ( ) { Game . tooltip . hide ( ) ; } ;
12541282 var placeholder = document . createElement ( 'div' ) ;
12551283 var missing = document . createElement ( 'div' ) ;
@@ -1570,6 +1598,76 @@ CM.Disp.UpdateTooltipWarnCaut = function() {
15701598 }
15711599}
15721600
1601+ CM . Disp . AddWrinklerAreaDetect = function ( ) {
1602+ l ( 'backgroundLeftCanvas' ) . onmouseover = function ( ) { CM . Disp . TooltipWrinklerArea = 1 ; } ;
1603+ l ( 'backgroundLeftCanvas' ) . onmouseout = function ( ) {
1604+ CM . Disp . TooltipWrinklerArea = 0 ;
1605+ Game . tooltip . hide ( ) ;
1606+ for ( var i = 0 ; i < 10 ; i ++ ) {
1607+ CM . Disp . TooltipWrinklerCache [ i ] = 0 ;
1608+ }
1609+ } ;
1610+ }
1611+
1612+ CM . Disp . CheckWrinklerTooltip = function ( ) {
1613+ if ( CM . Disp . TooltipWrinklerArea == 1 ) {
1614+ var showingTooltip = false ;
1615+ var mouseInWrinkler = function ( x , y , rect ) {
1616+ var dx = x + Math . sin ( - rect . r ) * ( - ( rect . h / 2 - rect . o ) ) , dy = y + Math . cos ( - rect . r ) * ( - ( rect . h / 2 - rect . o ) ) ;
1617+ var h1 = Math . sqrt ( dx * dx + dy * dy ) ;
1618+ var currA = Math . atan2 ( dy , dx ) ;
1619+ var newA = currA - rect . r ;
1620+ var x2 = Math . cos ( newA ) * h1 ;
1621+ var y2 = Math . sin ( newA ) * h1 ;
1622+ if ( x2 > - 0.5 * rect . w && x2 < 0.5 * rect . w && y2 > - 0.5 * rect . h && y2 < 0.5 * rect . h ) return true ;
1623+ return false ;
1624+ }
1625+ for ( var i in Game . wrinklers ) {
1626+ var me = Game . wrinklers [ i ] ;
1627+ var rect = { w : 100 , h : 200 , r : ( - me . r ) * Math . PI / 180 , o : 10 } ;
1628+ if ( me . phase > 0 && Game . LeftBackground && Game . mouseX < Game . LeftBackground . canvas . width && mouseInWrinkler ( Game . mouseX - me . x , Game . mouseY - me . y , rect ) ) {
1629+ if ( CM . Disp . TooltipWrinklerCache [ i ] == 0 ) {
1630+ var placeholder = document . createElement ( 'div' ) ;
1631+ var wrinkler = document . createElement ( 'div' ) ;
1632+ wrinkler . style . minWidth = '120px' ;
1633+ wrinkler . style . marginBottom = '4px' ;
1634+ var div = document . createElement ( 'div' ) ;
1635+ div . style . textAlign = 'center' ;
1636+ div . id = 'CMTooltipWrinkler' ;
1637+ wrinkler . appendChild ( div ) ;
1638+ placeholder . appendChild ( wrinkler ) ;
1639+ Game . tooltip . draw ( this , escape ( placeholder . innerHTML ) , 'wrink' ) ;
1640+ CM . Disp . TooltipWrinkler = i ;
1641+ CM . Disp . TooltipWrinklerCache [ i ] = 1 ;
1642+ }
1643+ showingTooltip = true ;
1644+ }
1645+ else {
1646+ CM . Disp . TooltipWrinklerCache [ i ] = 0 ;
1647+ }
1648+ }
1649+ if ( ! showingTooltip ) {
1650+ Game . tooltip . hide ( ) ;
1651+ }
1652+ }
1653+ }
1654+
1655+ CM . Disp . UpdateWrinklerTooltip = function ( ) {
1656+ if ( l ( 'CMTooltipWrinkler' ) != null ) {
1657+ var sucked = Game . wrinklers [ CM . Disp . TooltipWrinkler ] . sucked ;
1658+ sucked *= 1.1 ;
1659+ if ( Game . Has ( 'Wrinklerspawn' ) ) sucked *= 1.05 ;
1660+ l ( 'CMTooltipWrinkler' ) . textContent = Beautify ( sucked ) ;
1661+ }
1662+ }
1663+
1664+ CM . Disp . UpdateTooltipWrinklerLocation = function ( ) {
1665+ if ( Game . tooltip . origin == 'wrink' ) {
1666+ Game . tooltip . tta . style . left = ( Game . mouseX + l ( 'tooltip' ) . offsetWidth + 20 ) + 'px' ;
1667+ Game . tooltip . tta . style . right = 'auto' ;
1668+ }
1669+ }
1670+
15731671CM . Disp . ToggleSayTime = function ( ) {
15741672 if ( CM . Config . SayTime == 1 ) {
15751673 Game . sayTime = CM . Disp . sayTime ;
@@ -1606,6 +1704,13 @@ CM.Disp.shortScale = ['M', 'B', 'Tr', 'Quadr', 'Quint', 'Sext', 'Sept', 'Oct', '
16061704
16071705CM . Disp . TooltipBuy10 = false ;
16081706
1707+ CM . Disp . TooltipWrinklerArea = 0 ;
1708+ CM . Disp . TooltipWrinkler = - 1 ;
1709+ CM . Disp . TooltipWrinklerCache = [ ] ;
1710+ for ( var i = 0 ; i < 10 ; i ++ ) {
1711+ CM . Disp . TooltipWrinklerCache [ i ] = 0 ;
1712+ }
1713+
16091714/********
16101715 * Main *
16111716 ********/
@@ -1641,6 +1746,7 @@ CM.ReplaceNative = function() {
16411746 eval ( 'CM.Backup.tooltip.updateMod = ' + Game . tooltip . update . toString ( ) . split ( 'this' ) . join ( 'Game.tooltip' ) ) ;
16421747 Game . tooltip . update = function ( ) {
16431748 CM . Backup . tooltip . updateMod ( ) ;
1749+ CM . Disp . UpdateTooltipWrinklerLocation ( ) ;
16441750 CM . Disp . UpdateTooltipWarnCaut ( ) ;
16451751 }
16461752
@@ -1690,6 +1796,10 @@ CM.Loop = function() {
16901796
16911797 // Update Tooltip
16921798 CM . Disp . UpdateTooltip ( ) ;
1799+
1800+ // Update Wrinkler Tooltip
1801+ CM . Disp . CheckWrinklerTooltip ( ) ;
1802+ CM . Disp . UpdateWrinklerTooltip ( ) ;
16931803
16941804 // Check Golden Cookies
16951805 CM . Disp . CheckGoldenCookie ( ) ;
@@ -1715,6 +1825,7 @@ CM.Init = function() {
17151825 CM . Disp . CreateTooltipWarnCaut ( ) ;
17161826 CM . Disp . AddTooltipBuild ( ) ;
17171827 CM . Disp . AddTooltipBuild10 ( ) ;
1828+ CM . Disp . AddWrinklerAreaDetect ( ) ;
17181829 CM . ReplaceNative ( ) ;
17191830 Game . CalculateGains ( ) ;
17201831 CM . LoadConfig ( ) ; // Must be after all things are created!
0 commit comments