home *** CD-ROM | disk | FTP | other *** search
/ CyberMycha 2003 October / cmycha200310.iso / NHL2004 / NHL2004Demo.exe / fe / nhl / js / rules_game_interface.js < prev    next >
Text File  |  2003-08-20  |  11KB  |  408 lines

  1. //Copyright (c) 2002 Electronic Arts Inc. All rights reserved.
  2.  
  3. var oGameFace                 = window.external.GameInterface;
  4. var oGameProvider         = window.external.GameInterface.LeagueServerInterface.LeagueDispatch.ProviderInterface;
  5. var oLeagueServerInterface    = oGameFace.LeagueServerInterface;
  6. var oGameManager            = oGameFace.LeagueServerInterface.LeagueDispatch.ManagerInterface;
  7. var oAudioInterface            = oGameFace.AudioInterface;
  8.  
  9. var aRefType = new Array();
  10. var aRinkType = new Array();
  11. var aTieBreak = new Array();
  12. var aMinorPenalty = new Array();
  13. var aSkillLevel = new Array();
  14.  
  15. var aComboBox    = null;
  16.  
  17. function initSettings()
  18. {
  19.     aComboBox = new ComboBox("drpSkillLevel",     48, 272, 170, 19, 100, "divSkillLevel");
  20.     aComboBox = new ComboBox("drpRinkType",     138, 272, 170, 19, 80, "divRinkType");
  21.     aComboBox = new ComboBox("drpTieBreak",     160, 272, 170, 19, 100, "divTieBreak");
  22.     aComboBox = new ComboBox("drpMinorPenalty", 182, 272, 170, 19, 60, "divMinorPenalty");
  23.     aComboBox = new ComboBox("drpRefereeType",    204, 272, 170, 19, 80, "divRefereeType");
  24.     aComboBox = new ComboBox("drpOTLoss",         336, 272, 170, 19, 18, "divOTLoss");
  25.  
  26.     //initToggle( tglRealTimePenalties_off );
  27.     //initToggle( tglRealTimePenalties_on );
  28.  
  29.     initToggle( tglInjuries_off );
  30.     initToggle( tglInjuries_on );
  31.  
  32.     initToggle( tglOffside_off );
  33.     initToggle( tglOffside_on );
  34.  
  35.     initToggle( tglIcing_off );
  36.     initToggle( tglIcing_on );
  37.  
  38.     initToggle( tglTwoLinePass_off );
  39.     initToggle( tglTwoLinePass_on );
  40.  
  41.     initToggle( tglUseHero_off );
  42.     initToggle( tglUseHero_on );
  43.  
  44.     //init game interface
  45.     oCallbackTable = new CallbackTableObject();
  46.     initGameInterface( oCallbackTable );
  47.  
  48.     //init sliders
  49.     initClockSpeed();
  50.     initPenalties();
  51.     initFighting();
  52.  
  53.     //init drop down menus
  54.     initSkillLevel();
  55.     initRefereeType();
  56.     initRinkType();
  57.     initTieBreak();
  58.     initMinorPenalty();
  59.  
  60.     //init toggle btns
  61.     initInjuries();
  62.     initOffside();
  63.     initIcing();
  64.     initTwoLinePass();
  65.     initUseHero();
  66.  
  67.     initCanChangeRules();
  68. }
  69.  
  70. function canExitScreen()
  71. {
  72.  
  73.     if( oGameFace.LeagueServerInterface.LeagueDispatch.ProviderInterface.IsInSetup() )
  74.     {
  75.         oGameManager.SaveGameSettings( oGameData );
  76.     }
  77.     else
  78.     {
  79.         oGameManager.LoadGameSettings(oGameProvider.GameDataInterface);
  80.     }
  81.  
  82.     return true;
  83. }
  84.  
  85. function initCanChangeRules()
  86. {
  87.     //variable from global_game_interface.js
  88.     if (!bCanChangeRules || oLeagueServerInterface.LeagueType==2)
  89.     {
  90.         clockSpeedValue.innerText =  oGameData.ClockSpeed + "/" + sldClockSpeed.max_value;
  91.         penaltiesValue.innerText =  oGameData.Penalties + "/" + sldPenalties.max_value;
  92.         fightingValue.innerText =  oGameData.Fighting + "/" + sldFighting.max_value;
  93.  
  94.         refTypeValue.innerText = aRefType[oGameData.RefType*2 + 1];
  95.         rinkTypeValue.innerText = aRinkType[oGameData.RinkType*2 + 1];
  96.         tieBreakValue.innerText = aTieBreak[oGameData.TieBreak*2 + 1];
  97.         minorPenaltyValue.innerText = aMinorPenalty[oGameData.MinorPenalty*2 + 1];
  98.         skillLevelValue.innerText = aSkillLevel[oGameData.Level*2 + 1];
  99.  
  100.         (oGameData.Injuries) ? injuriesValue.innerText = nhlMsg("ON") : injuriesValue.innerText = nhlMsg("OFF");
  101.         (oGameData.Offsides) ? offsideValue.innerText = nhlMsg("ON") : offsideValue.innerText = nhlMsg("OFF");
  102.         (oGameData.Icing) ? icingValue.innerText = nhlMsg("ON") : icingValue.innerText = nhlMsg("OFF");
  103.         (oGameData.TwoLinePass) ? twoLinePassValue.innerText = nhlMsg("ON") : twoLinePassValue.innerText = nhlMsg("OFF");
  104.         (oGameData.UseHero) ? useHeroValue.innerText = nhlMsg("ON") : useHeroValue.innerText = nhlMsg("OFF");
  105.  
  106.         sldClockSpeed.style.visibility = "hidden";
  107.         sldPenalties.style.visibility = "hidden";
  108.         //tglRealTimePenalties.style.visibility = "hidden";
  109.         sldFighting.style.visibility = "hidden";
  110.         drpRefereeType.style.visibility = "hidden";
  111.         drpRinkType.style.visibility = "hidden";
  112.         drpTieBreak.style.visibility = "hidden";
  113.         drpMinorPenalty.style.visibility = "hidden";
  114.         drpSkillLevel.style.visibility = "hidden";
  115.         tglInjuries.style.visibility = "hidden";
  116.         tglOffside.style.visibility = "hidden";
  117.         tglIcing.style.visibility = "hidden";
  118.         tglTwoLinePass.style.visibility = "hidden";
  119.         tglUseHero.style.visibility = "hidden";
  120.  
  121.         btnDefault.style.visibility = "hidden";            
  122.     }
  123.  
  124.     otLoss.style.visibility = "hidden";
  125.     divOTLoss.style.visibility = "hidden";
  126.     
  127.     //playoffs - cull OT list
  128.     if (oLeagueServerInterface.LeagueType==4)
  129.     {
  130.         drpTieBreak.ClearAll();
  131.         //drpTieBreak.AppendValuesOptions( oGameManager.GetTieBreakList().split(',') );
  132.         aTieBreak = oGameManager.GetTieBreakList().split(',');
  133.  
  134.         for (var i=1; i<aTieBreak.length-6; i+=2)
  135.         {
  136.             drpTieBreak.AddString(aTieBreak[i]);
  137.         }
  138.  
  139.         oCallbackTable.TieBreakChanged();
  140.     }
  141.     //dynasty: set tie-break and ref type to nhl
  142.     else if (oLeagueServerInterface.LeagueType==7)
  143.     {
  144.         refTypeValue.innerText = aRefType[oGameData.RefType*2 + 1];        
  145.         rinkTypeValue.innerText = aRinkType[oGameData.RinkType*2 + 1];
  146.         (oGameData.Injuries) ? injuriesValue.innerText = nhlMsg("ON") : injuriesValue.innerText = nhlMsg("OFF");
  147.  
  148.         drpRefereeType.style.visibility = "hidden";        
  149.         drpRinkType.style.visibility = "hidden";
  150.         tglInjuries.style.visibility = "hidden";
  151.     }
  152. }
  153.  
  154. function clearSettings()
  155. {
  156.     removeCallbackTable();
  157. }
  158.  
  159. //init clock speed slider
  160. function initClockSpeed()
  161. {
  162.     oCallbackTable.ClockSpeedChanged();
  163. }
  164.  
  165. //init penalties slider
  166. function initPenalties()
  167. {
  168.     oCallbackTable.PenaltiesChanged();
  169. }
  170.  
  171. //init fighting slider
  172. function initFighting()
  173. {
  174.     oCallbackTable.FightingChanged();
  175. }
  176.  
  177. //init Referee type drop down
  178. function initRefereeType()
  179. {
  180.     drpRefereeType.ClearAll();
  181.     //drpRefereeType.AppendValuesOptions( oGameManager.GetRefTypeList().split(',') );
  182.     aRefType = oGameManager.GetRefTypeList().split(',');
  183.  
  184.     for (var i=1; i<aRefType.length; i+=2)
  185.     {
  186.         drpRefereeType.AddString(aRefType[i]);
  187.     }
  188.  
  189.     oCallbackTable.RefTypeChanged();
  190. }
  191.  
  192.  
  193. //init Rink type drop down
  194. function initRinkType()
  195. {
  196.     drpRinkType.ClearAll();
  197.     //drpRinkType.AppendValuesOptions( oGameManager.GetRinkTypeList().split(',') );
  198.     aRinkType = oGameManager.GetRinkTypeList().split(',');
  199.  
  200.     for (var i=1; i<aRinkType.length; i+=2)
  201.     {
  202.         drpRinkType.AddString(aRinkType[i]);
  203.     }
  204.  
  205.     oCallbackTable.RinkTypeChanged();
  206. }
  207.  
  208. //init Tie break drop down
  209. function initTieBreak()
  210. {
  211.     drpTieBreak.ClearAll();
  212.     //drpTieBreak.AppendValuesOptions( oGameManager.GetTieBreakList().split(',') );
  213.     aTieBreak = oGameManager.GetTieBreakList().split(',');
  214.  
  215.     for (var i=1; i<aTieBreak.length; i+=2)
  216.     {
  217.         drpTieBreak.AddString(aTieBreak[i]);
  218.     }
  219.  
  220.     oCallbackTable.TieBreakChanged();
  221. }
  222.  
  223. //init minor penalty drop down
  224. function initMinorPenalty()
  225. {
  226.     drpMinorPenalty.ClearAll();
  227.     //drpMinorPenalty.AppendValuesOptions( oGameManager.GetMinorPenaltyList().split(',') );
  228.     aMinorPenalty = oGameManager.GetMinorPenaltyList().split(',');
  229.  
  230.     for (var i=1; i<aMinorPenalty.length; i+=2)
  231.     {
  232.         drpMinorPenalty.AddString(aMinorPenalty[i]);
  233.     }
  234.  
  235.     oCallbackTable.MinorPenaltyChanged();
  236. }
  237.  
  238. //init skill level drop down
  239. function initSkillLevel()
  240. {
  241.     drpSkillLevel.ClearAll();
  242.     //drpSkillLevel.AppendValuesOptions( oGameManager.GetSkillLevelList().split(',') );
  243.     aSkillLevel = oGameManager.GetSkillLevelList().split(',');
  244.  
  245.     for (var i=1; i<aSkillLevel.length; i+=2)
  246.     {
  247.         drpSkillLevel.AddString(aSkillLevel[i]);
  248.     }
  249.     oCallbackTable.LevelChanged();
  250. }
  251.  
  252. //init injuries toggle
  253. function initInjuries()
  254. {
  255.     oCallbackTable.InjuriesChanged();
  256. }
  257.  
  258. //init offside toggle
  259. function initOffside()
  260. {
  261.     oCallbackTable.OffsidesChanged();
  262. }
  263.  
  264. //init icing toggle
  265. function initIcing()
  266. {
  267.     oCallbackTable.IcingChanged();
  268. }
  269.  
  270. //init two line pass toggle
  271. function initTwoLinePass()
  272. {
  273.     oCallbackTable.TwoLinePassChanged();
  274. }
  275.  
  276. function changeRealTimePenalties()
  277. {
  278.     oCallbackTable.RealTimePenaltiesChanged();
  279. }
  280.  
  281. function initUseHero()
  282. {
  283.     oCallbackTable.UseHeroChanged();
  284. }
  285.  
  286. //Event handlers
  287. //sliders
  288. function changeClockSpeed()
  289. {
  290.     oGameData.ClockSpeed    = sldClockSpeed.value;
  291. }
  292.  
  293. function changePenalties()
  294. {
  295.     oGameData.Penalties    = sldPenalties.value;
  296. }
  297.  
  298. function changeFighting()
  299. {
  300.     oGameData.Fighting  = sldFighting.value;
  301. }
  302.  
  303. //drop down menus
  304. function changeTieBreak()
  305. {
  306.     oGameData.TieBreak = drpTieBreak.Selected;
  307. }
  308.  
  309. function changeMinorPenalty()
  310. {
  311.     oGameData.MinorPenalty = drpMinorPenalty.Selected;
  312. }
  313.  
  314.  
  315. function changeRefereeType()
  316. {
  317.     oGameData.RefType = drpRefereeType.Selected;
  318. }
  319.  
  320. function changeRinkType()
  321. {
  322.     oGameData.RinkType = drpRinkType.Selected;
  323. }
  324.  
  325. function changeSkillLevel()
  326. {
  327.     oGameData.Level = drpSkillLevel.Selected;
  328. }
  329. //toggle btns
  330. function changeInjuries( oTgl )
  331. {
  332.     oAudioInterface.PlayToggleSFX();    
  333.     oGameData.Injuries = oTgl.selected;
  334. }
  335.  
  336. function changeOffside( oTgl )
  337. {
  338.     oAudioInterface.PlayToggleSFX();
  339.     oGameData.Offsides  =  oTgl.selected;
  340.  
  341. }
  342.  
  343. function changeIcing( oTgl )
  344. {
  345.     oAudioInterface.PlayToggleSFX();
  346.     oGameData.Icing  =  oTgl.selected;
  347. }
  348.  
  349. function changeTwoLinePass( oTgl )
  350. {
  351.     oAudioInterface.PlayToggleSFX();
  352.     oGameData.TwoLinePass   =  oTgl.selected;
  353. }
  354.  
  355. function changeUseHero( oTgl )
  356. {
  357.     oAudioInterface.PlayToggleSFX();
  358.     oGameData.UseHero = oTgl.selected;
  359. }
  360.  
  361. //game interface setup
  362.  
  363. //callback Class
  364. function CallbackTableObject()
  365. {
  366.  
  367.     this.ClockSpeedChanged = function () {sldClockSpeed.SetValue( oGameData.ClockSpeed );};
  368.     this.PenaltiesChanged = function () {sldPenalties.SetValue( oGameData.Penalties );};
  369.     //this.RealTimePenaltiesChanged = function () {/*(oGameData.RealTimePenalties) ? doSwap( tglRealTimePenalties_on ) : doSwap( tglRealTimePenalties_off );*/};
  370.     this.FightingChanged = function (){sldFighting.SetValue( oGameData.Fighting );};
  371.     this.OffsidesChanged = function (){(oGameData.Offsides)? doSwap( tglOffside_on ) : doSwap( tglOffside_off );};
  372.     this.IcingChanged = function () {(oGameData.Icing ) ? doSwap( tglIcing_on ) : doSwap( tglIcing_off );};
  373.     this.TwoLinePassChanged = function () {(oGameData.TwoLinePass) ? doSwap( tglTwoLinePass_on ) : doSwap( tglTwoLinePass_off );};
  374.  
  375.     this.InjuriesChanged = function () {(oGameData.Injuries) ? doSwap( tglInjuries_on ) : doSwap( tglInjuries_off );};
  376.     this.RefTypeChanged = function () { drpRefereeType.Selected = oGameData.RefType; };
  377.     this.RinkTypeChanged = function (){drpRinkType.Selected = oGameData.RinkType; };
  378.     this.TieBreakChanged = function () { drpTieBreak.Selected = oGameData.TieBreak; };
  379.     this.MinorPenaltyChanged = function () {drpMinorPenalty.Selected = oGameData.MinorPenalty; };
  380.     this.UseHeroChanged = function (){(oGameData.UseHero) ? doSwap( tglUseHero_on ) : doSwap( tglUseHero_off );};
  381.     this.LevelChanged = function () {drpSkillLevel.Selected =  oGameData.Level; };
  382.  
  383.     this.GameRulesChanged = function()
  384.     {
  385.         this.ClockSpeedChanged();
  386.         this.PenaltiesChanged();
  387.         this.FightingChanged();
  388.         this.OffsidesChanged();
  389.         this.IcingChanged();
  390.         this.TwoLinePassChanged();
  391.         this.InjuriesChanged();
  392.         this.RefTypeChanged();
  393.         this.RinkTypeChanged();
  394.         this.TieBreakChanged();
  395.         this.MinorPenaltyChanged();
  396.         this.UseHeroChanged();
  397.         this.LevelChanged();
  398.     };
  399.  
  400. }
  401.  
  402. function defaultRules()
  403. {    
  404.     oAudioInterface.PlaySFX(1099);
  405.     oGameData.RestoreDefaultRules();
  406. }
  407.  
  408.