Ticket #1849: darkenUnavailable.2.patch
File darkenUnavailable.2.patch, 7.7 KB (added by , 11 years ago) |
---|
-
binaries/data/mods/public/gui/session/session.xml
1008 1008 <repeat count="16"> 1009 1009 <object name="unitResearchButton[n]" hidden="true" style="iconButton" type="button" size="0 0 46 46" tooltip_style="sessionToolTipBottom"> 1010 1010 <object name="unitResearchIcon[n]" type="image" ghost="true" size="3 3 43 43"/> 1011 <object name="unitResearch Selection[n]" hidden="true" type="image" ghost="true" size="3 3 43 43" sprite="colour: 255 0 0 127"/>1011 <object name="unitResearchUnchosenIcon[n]" type="image" hidden="true" ghost="true" size="3 3 43 43" sprite="stretched:session/icons/tech_pair_would_be_unavailable.png"/> 1012 1012 <object name="unitResearchUnaffordable[n]" hidden="true" type="image" ghost="true" size="3 3 43 43" sprite="colour: 255 0 0 60"/> 1013 1013 </object> 1014 1014 </repeat> -
binaries/data/mods/public/gui/session/unit_commands.js
554 554 button1.tooltip = tooltip1; 555 555 button1.onpress = (function(e){ return function() { callback(e) } })(item.top); 556 556 557 // We add a red overlay to the paired button (we reuse the selection for that)558 button1.onmouseenter = (function(e){ return function() { setOverlay(e, true) } })(selection);559 button1.onmouseleave = (function(e){ return function() { setOverlay(e, false) } })(selection);557 // when we hover over a pair, the other one gets a red cross over it to show it won't be available any more. 558 var unchosenIcon = getGUIObjectByName("unit"+guiName+"UnchosenIcon["+i+"]"); 559 var unchosenIcon1 = getGUIObjectByName("unit"+guiName+"UnchosenIcon["+(i+rowLength)+"]"); 560 560 561 var selection1 = getGUIObjectByName("unit"+guiName+"Selection["+(i+rowLength)+"]");; 562 button.onmouseenter = (function(e){ return function() { setOverlay(e, true) } })(selection1); 563 button.onmouseleave = (function(e){ return function() { setOverlay(e, false) } })(selection1); 561 button1.onmouseenter = (function(e){ return function() { setOverlay(e, true) } })(unchosenIcon); 562 button1.onmouseleave = (function(e){ return function() { setOverlay(e, false) } })(unchosenIcon); 564 563 564 button.onmouseenter = (function(e){ return function() { setOverlay(e, true) } })(unchosenIcon1); 565 button.onmouseleave = (function(e){ return function() { setOverlay(e, false) } })(unchosenIcon1); 566 565 567 pair.hidden = false; 566 568 } 567 569 else 568 570 { 569 // Hide the overlay 570 selection.hidden = true; 571 // Hide the overlay. 572 var unchosenIcon = getGUIObjectByName("unit"+guiName+"UnchosenIcon["+i+"]"); 573 unchosenIcon.hidden = true; 571 574 } 572 575 } 573 576 … … 664 667 { 665 668 var grayscale = ""; 666 669 button.enabled = true; 667 670 if (affordableMask) 671 affordableMask.hidden = true; // actually used for the red "lack of resource" overlay, and darkening if unavailable. Sort of a hack. 672 673 // Turn the icon into grayscale and darken it if it's unavailable 668 674 if (guiName != SELECTION && guiName != GARRISON && template.requiredTechnology && !Engine.GuiInterfaceCall("IsTechnologyResearched", template.requiredTechnology)) 669 675 { 670 676 button.enabled = false; 671 677 var techName = getEntityNames(GetTechnologyData(template.requiredTechnology)); 672 678 button.tooltip += "\nRequires " + techName; 673 679 grayscale = "grayscale:"; 680 affordableMask.hidden = false; 681 affordableMask.sprite = "colour: 0 0 0 127"; 674 682 } 675 683 676 684 if (guiName == RESEARCH && !Engine.GuiInterfaceCall("CheckTechnologyRequirements", entType)) … … 678 686 button.enabled = false; 679 687 button.tooltip += "\n" + GetTechnologyData(entType).requirementsTooltip; 680 688 grayscale = "grayscale:"; 689 affordableMask.hidden = false; 690 affordableMask.sprite = "colour: 0 0 0 127"; 681 691 } 682 692 683 693 icon.sprite = "stretched:" + grayscale + "session/portraits/" + template.icon; 684 694 685 695 if (guiName == RESEARCH) 686 696 { 687 // Check resource requirements for first button 688 affordableMask.hidden = true; 697 // Check resource requirements 689 698 var neededResources = Engine.GuiInterfaceCall("GetNeededResources", template.cost); 690 699 if (neededResources) 691 700 { … … 693 702 { 694 703 button.enabled = false; 695 704 affordableMask.hidden = false; 705 706 var totalCost = 0; 707 for each (var resource in neededResources) 708 totalCost += resource; 709 var alpha = 50 + totalCost/10; 710 alpha = alpha > 125 ? 125 : alpha; 711 affordableMask.sprite = "colour: 255 0 0 " + (alpha); 696 712 } 697 713 button.tooltip += getNeededResourcesTooltip(neededResources); 698 714 } … … 701 717 { 702 718 grayscale = ""; 703 719 button1.enabled = true; 720 affordableMask1.hidden = true; 704 721 705 722 if (!Engine.GuiInterfaceCall("CheckTechnologyRequirements", entType1)) 706 723 { 707 724 button1.enabled = false; 708 725 button1.tooltip += "\n" + GetTechnologyData(entType1).requirementsTooltip; 709 726 grayscale = "grayscale:"; 727 affordableMask1.hidden = false; 728 affordableMask1.sprite = "colour: 0 0 0 127"; 710 729 } 711 730 icon1.sprite = "stretched:" + grayscale + "session/portraits/" +template1.icon; 712 731 713 732 // Check resource requirements for second button 714 affordableMask1.hidden = true;715 733 neededResources = Engine.GuiInterfaceCall("GetNeededResources", template1.cost); 716 734 if (neededResources) 717 735 { … … 719 737 { 720 738 button1.enabled = false; 721 739 affordableMask1.hidden = false; 740 741 var totalCost = 0; 742 for each (var resource in neededResources) 743 totalCost += resource; 744 var alpha = 50 + totalCost/10; 745 alpha = alpha > 125 ? 125 : alpha; 746 affordableMask1.sprite = "colour: 255 0 0 " + (alpha); 722 747 } 723 748 button1.tooltip += getNeededResourcesTooltip(neededResources); 724 749 } … … 732 757 } 733 758 else if (guiName == CONSTRUCTION || guiName == TRAINING) 734 759 { 735 affordableMask.hidden = true;736 760 var totalCosts = {}; 737 761 var trainNum = 1; 738 762 var button_disableable = true; … … 743 767 trainingCategory = template.trainingRestrictions.category; 744 768 if (trainingCategory && playerState.entityLimits[trainingCategory] && 745 769 playerState.entityCounts[trainingCategory] >= playerState.entityLimits[trainingCategory]) 770 { 746 771 grayscale = "grayscale:"; 772 affordableMask.hidden = false; 773 affordableMask.sprite = "colour: 0 0 0 100"; 774 } 747 775 icon.sprite = "stretched:" + grayscale + "session/portraits/" + template.icon; 748 776 749 777 if (Engine.HotkeyIsPressed("session.batchtrain")) … … 763 791 var neededResources = Engine.GuiInterfaceCall("GetNeededResources", totalCosts); 764 792 if (neededResources) 765 793 { 766 var totalCost = 0;767 794 if (button.enabled !== false) 768 795 { 796 button.enabled = (button_disableable ? false : true); 797 affordableMask.hidden = false; 798 799 var totalCost = 0; 769 800 for each (var resource in neededResources) 770 801 totalCost += resource; 771 772 button.enabled = (button_disableable ? false : true); 773 affordableMask.hidden = false; 774 var alpha = 75 + totalCost/6; 775 alpha = alpha > 150 ? 150 : alpha; 802 var alpha = 50 + totalCost/10; 803 alpha = alpha > 125 ? 125 : alpha; 776 804 affordableMask.sprite = "colour: 255 0 0 " + (alpha); 777 805 } 778 806 button.tooltip += getNeededResourcesTooltip(neededResources);