Ticket #1404: tech-v2.diff
File tech-v2.diff, 6.9 KB (added by , 9 years ago) |
---|
-
binaries/data/mods/public/maps/skirmishes/Alpine_Valleys_(2).xml
48 48 "Name": "Alpine Valleys (2)", 49 49 "PlayerData": [ 50 50 { 51 "Name": "Player 1" 51 "Name": "Player 1", 52 "StartingTechnologies": {"phase_town_generic": true, "phase_town_athen": true}, 53 "DisabledTechnologies": {"phase_city_generic": true, "phase_city_athen": true, "phase_city_britons": true, "phase_city_gauls": true}, 54 "DisabledTemplates": {"structures/{civ}_temple": true} 52 55 }, 53 56 { 54 57 "Name": "Player 2" 55 58 } 56 59 ], 60 "Garrison": { 61 "68": [2109, 2110, 2111, 2112] 62 }, 57 63 "Preview": "alpine_valley_skirmish.png", 58 64 "RevealMap": false 59 65 } … … 14835 14841 </Entity> 14836 14842 </Entities> 14837 14843 <Paths/> 14838 </Scenario> 14839 No newline at end of file 14844 </Scenario> -
binaries/data/mods/public/simulation/components/Player.js
43 43 "stone": markForTranslation("Stone"), 44 44 } 45 45 this.disabledTemplates = {}; 46 this.disabledTechnologies = {}; 47 this.startingTechnologies = {}; 46 48 }; 47 49 48 50 Player.prototype.SetPlayerID = function(id) … … 569 571 }; 570 572 571 573 /** 574 * Do some map dependant initializations 575 */ 576 Player.prototype.OnGlobalInitGame = function(msg) 577 { 578 let cmpTechnologyManager = Engine.QueryInterface(this.entity, IID_TechnologyManager); 579 if (cmpTechnologyManager) 580 for (let tech in this.startingTechnologies) 581 cmpTechnologyManager.ResearchTechnology(tech); 582 583 // Replace the "{civ}" code with this civ ID 584 let disabledTemplates = this.disabledTemplates; 585 this.disabledTemplates = {}; 586 for (let template in disabledTemplates) 587 if (disabledTemplates[template]) 588 this.disabledTemplates[template.replace(/\{civ\}/g, this.civ)] = true; 589 }; 590 591 /** 572 592 * Keep track of population effects of all entities that 573 593 * become owned or unowned by this player 574 594 */ … … 731 751 return this.disabledTemplates; 732 752 }; 733 753 754 Player.prototype.AddDisabledTechnology = function(tech) 755 { 756 this.disabledTechnologies[tech] = true; 757 Engine.BroadcastMessage(MT_DisabledTechnologiesChanged, {}); 758 }; 759 760 Player.prototype.RemoveDisabledTechnology = function(tech) 761 { 762 this.disabledTechnologies[tech] = false; 763 Engine.BroadcastMessage(MT_DisabledTechnologiesChanged, {}); 764 }; 765 766 Player.prototype.SetDisabledTechnologies = function(techs) 767 { 768 this.disabledTechnologies = techs; 769 Engine.BroadcastMessage(MT_DisabledTechnologiesChanged, {}); 770 }; 771 772 Player.prototype.GetDisabledTechnologies = function() 773 { 774 return this.disabledTechnologies; 775 }; 776 777 Player.prototype.AddStartingTechnology = function(tech) 778 { 779 this.startingTechnologies[tech] = true; 780 }; 781 782 Player.prototype.SetStartingTechnologies = function(techs) 783 { 784 this.startingTechnologies = techs; 785 }; 786 734 787 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 disabledTechnologies = cmpPlayer.GetDisabledTechnologies(); 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 (disabledTechnologies && disabledTechnologies[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("DisabledTechnologiesChanged"); -
binaries/data/mods/public/simulation/helpers/Player.js
109 109 if (getSetting(playerData, playerDefaults, i, "Resources") !== undefined) 110 110 cmpPlayer.SetResourceCounts(getSetting(playerData, playerDefaults, i, "Resources")); 111 111 112 if (getSetting(playerData, playerDefaults, i, "StartingTechnologies") !== undefined) 113 cmpPlayer.SetStartingTechnologies(getSetting(playerData, playerDefaults, i, "StartingTechnologies")); 114 115 if (getSetting(playerData, playerDefaults, i, "DisabledTechnologies") !== undefined) 116 cmpPlayer.SetDisabledTechnologies(getSetting(playerData, playerDefaults, i, "DisabledTechnologies")); 117 118 if (getSetting(playerData, playerDefaults, i, "DisabledTemplates") !== undefined) 119 cmpPlayer.SetDisabledTemplates(getSetting(playerData, playerDefaults, i, "DisabledTemplates")); 120 112 121 // If diplomacy explicitly defined, use that; otherwise use teams 113 122 if (getSetting(playerData, playerDefaults, i, "Diplomacy") !== undefined) 114 123 cmpPlayer.SetDiplomacy(getSetting(playerData, playerDefaults, i, "Diplomacy")); -
binaries/data/mods/public/simulation/helpers/Setup.js
39 39 var cmpEndGameManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_EndGameManager); 40 40 if (settings.GameType) 41 41 cmpEndGameManager.SetGameType(settings.GameType); 42 43 if (settings.Garrison) 44 { 45 for (let holder in settings.Garrison) 46 { 47 let cmpGarrisonHolder = Engine.QueryInterface(+holder, IID_GarrisonHolder); 48 if (!cmpGarrisonHolder) 49 warning("Map error in Setup.js: entity " + holder + " can not garrison units"); 50 else 51 cmpGarrisonHolder.initGarrison = settings.Garrison[holder]; 52 } 53 } 42 54 } 43 55 44 56 Engine.RegisterGlobal("LoadMapSettings", LoadMapSettings);