Ticket #1404: tech.diff
File tech.diff, 4.5 KB (added by , 9 years ago) |
---|
-
binaries/data/mods/public/maps/skirmishes/Acropolis
1 1 <?xml version="1.0" encoding="UTF-8"?> 2 2 3 3 <Scenario version="5"> 4 <Script><![CDATA[// 5 6 let cmpPlayerManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_PlayerManager); 7 let numPlayers = cmpPlayerManager.GetNumPlayers(); 8 9 for (let i = 1; i < numPlayers; ++i) 10 { 11 let cmpPlayer = Engine.QueryInterface(cmpPlayerManager.GetPlayerByID(i), IID_Player); 12 if (!cmpPlayer) 13 continue; 14 cmpPlayer.SetDisabledTechs({ 15 "gather_lumbering_ironaxes": true 16 }); 17 cmpPlayer.SetStartingTechs({ 18 "phase_town_generic": true, 19 "phase_town_athen": true, 20 }); 21 } 22 23 //]]></Script> 4 24 <Environment> 5 25 <SkySet>cirrus</SkySet> 6 26 <SunColour r="0.776471" g="0.729412" b="0.592157"/> … … 27788 27808 </Entity> 27789 27809 </Entities> 27790 27810 <Paths/> 27791 </Scenario> 27792 No newline at end of file 27811 </Scenario> -
binaries/data/mods/public/simulation/components/Player.js
43 43 "stone": markForTranslation("Stone"), 44 44 } 45 45 this.disabledTemplates = {}; 46 this.disabledTechs = {}; 47 this.startingTechs = {}; 46 48 }; 47 49 48 50 Player.prototype.SetPlayerID = function(id) … … 569 571 }; 570 572 571 573 /** 574 * Initialise the starting techs 575 */ 576 Player.prototype.OnGlobalInitGame = function(msg) 577 { 578 var cmpTechnologyManager = Engine.QueryInterface(this.entity, IID_TechnologyManager); 579 if (!cmpTechnologyManager) 580 return; 581 582 for (let tech in this.startingTechs) 583 cmpTechnologyManager.ResearchTechnology(tech); 584 }; 585 586 /** 572 587 * Keep track of population effects of all entities that 573 588 * become owned or unowned by this player 574 589 */ … … 731 746 return this.disabledTemplates; 732 747 }; 733 748 749 Player.prototype.AddDisabledTech = function(tech) 750 { 751 this.disabledTechs[tech] = true; 752 Engine.BroadcastMessage(MT_DisabledTechsChanged, {}); 753 }; 754 755 Player.prototype.RemoveDisabledTech = function(tech) 756 { 757 this.disabledTechs[tech] = false; 758 Engine.BroadcastMessage(MT_DisabledTechsChanged, {}); 759 }; 760 761 Player.prototype.SetDisabledTechs = function(techs) 762 { 763 this.disabledTechs = techs; 764 Engine.BroadcastMessage(MT_DisabledTechsChanged, {}); 765 }; 766 767 Player.prototype.GetDisabledTechs = function() 768 { 769 return this.disabledTechs; 770 }; 771 772 Player.prototype.AddStartingTech = function(tech) 773 { 774 this.startingTechs[tech] = true; 775 }; 776 777 Player.prototype.SetStartingTechs = function(techs) 778 { 779 this.startingTechs = techs; 780 }; 781 734 782 Engine.RegisterComponentType(IID_Player, "Player", Player); -
binaries/data/mods/public/simulation/components/ProductionQueue.js
156 156 157 157 var techs = string.split(/\s+/); 158 158 var techList = []; 159 var superseded = {}; // Stores the tech which supersedes the key 159 var superseded = {}; // Stores the tech which supersedes the key 160 161 var cmpPlayer = QueryOwnerInterface(this.entity, IID_Player); 162 if (cmpPlayer) 163 var disabledTechs = cmpPlayer.GetDisabledTechs(); 160 164 161 165 // Add any top level technologies to an array which corresponds to the displayed icons 162 166 // Also store what a technology is superceded by in the superceded object {"tech1":"techWhichSupercedesTech1", ...} … … 163 167 for (var i in techs) 164 168 { 165 169 var tech = techs[i]; 170 if (disabledTechs && disabledTechs[tech]) 171 continue; 166 172 var template = cmpTechnologyManager.GetTechnologyTemplate(tech); 167 173 if (!template.supersedes || techs.indexOf(template.supersedes) === -1) 168 174 techList.push(tech); -
binaries/data/mods/public/simulation/components/interfaces/Trigger.js
1 1 Engine.RegisterInterface("Trigger"); 2 2 3 3 Engine.RegisterMessageType("DisabledTemplatesChanged"); 4 5 Engine.RegisterMessageType("DisabledTechsChanged");