home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Joystick Magazine 2003 November
/
CD1_JOY_153.iso
/
demos
/
NHL2004Demo.exe
/
fe
/
nhl
/
js
/
rules_game_interface.js
< prev
next >
Wrap
Text File
|
2003-08-20
|
11KB
|
408 lines
//Copyright (c) 2002 Electronic Arts Inc. All rights reserved.
var oGameFace = window.external.GameInterface;
var oGameProvider = window.external.GameInterface.LeagueServerInterface.LeagueDispatch.ProviderInterface;
var oLeagueServerInterface = oGameFace.LeagueServerInterface;
var oGameManager = oGameFace.LeagueServerInterface.LeagueDispatch.ManagerInterface;
var oAudioInterface = oGameFace.AudioInterface;
var aRefType = new Array();
var aRinkType = new Array();
var aTieBreak = new Array();
var aMinorPenalty = new Array();
var aSkillLevel = new Array();
var aComboBox = null;
function initSettings()
{
aComboBox = new ComboBox("drpSkillLevel", 48, 272, 170, 19, 100, "divSkillLevel");
aComboBox = new ComboBox("drpRinkType", 138, 272, 170, 19, 80, "divRinkType");
aComboBox = new ComboBox("drpTieBreak", 160, 272, 170, 19, 100, "divTieBreak");
aComboBox = new ComboBox("drpMinorPenalty", 182, 272, 170, 19, 60, "divMinorPenalty");
aComboBox = new ComboBox("drpRefereeType", 204, 272, 170, 19, 80, "divRefereeType");
aComboBox = new ComboBox("drpOTLoss", 336, 272, 170, 19, 18, "divOTLoss");
//initToggle( tglRealTimePenalties_off );
//initToggle( tglRealTimePenalties_on );
initToggle( tglInjuries_off );
initToggle( tglInjuries_on );
initToggle( tglOffside_off );
initToggle( tglOffside_on );
initToggle( tglIcing_off );
initToggle( tglIcing_on );
initToggle( tglTwoLinePass_off );
initToggle( tglTwoLinePass_on );
initToggle( tglUseHero_off );
initToggle( tglUseHero_on );
//init game interface
oCallbackTable = new CallbackTableObject();
initGameInterface( oCallbackTable );
//init sliders
initClockSpeed();
initPenalties();
initFighting();
//init drop down menus
initSkillLevel();
initRefereeType();
initRinkType();
initTieBreak();
initMinorPenalty();
//init toggle btns
initInjuries();
initOffside();
initIcing();
initTwoLinePass();
initUseHero();
initCanChangeRules();
}
function canExitScreen()
{
if( oGameFace.LeagueServerInterface.LeagueDispatch.ProviderInterface.IsInSetup() )
{
oGameManager.SaveGameSettings( oGameData );
}
else
{
oGameManager.LoadGameSettings(oGameProvider.GameDataInterface);
}
return true;
}
function initCanChangeRules()
{
//variable from global_game_interface.js
if (!bCanChangeRules || oLeagueServerInterface.LeagueType==2)
{
clockSpeedValue.innerText = oGameData.ClockSpeed + "/" + sldClockSpeed.max_value;
penaltiesValue.innerText = oGameData.Penalties + "/" + sldPenalties.max_value;
fightingValue.innerText = oGameData.Fighting + "/" + sldFighting.max_value;
refTypeValue.innerText = aRefType[oGameData.RefType*2 + 1];
rinkTypeValue.innerText = aRinkType[oGameData.RinkType*2 + 1];
tieBreakValue.innerText = aTieBreak[oGameData.TieBreak*2 + 1];
minorPenaltyValue.innerText = aMinorPenalty[oGameData.MinorPenalty*2 + 1];
skillLevelValue.innerText = aSkillLevel[oGameData.Level*2 + 1];
(oGameData.Injuries) ? injuriesValue.innerText = nhlMsg("ON") : injuriesValue.innerText = nhlMsg("OFF");
(oGameData.Offsides) ? offsideValue.innerText = nhlMsg("ON") : offsideValue.innerText = nhlMsg("OFF");
(oGameData.Icing) ? icingValue.innerText = nhlMsg("ON") : icingValue.innerText = nhlMsg("OFF");
(oGameData.TwoLinePass) ? twoLinePassValue.innerText = nhlMsg("ON") : twoLinePassValue.innerText = nhlMsg("OFF");
(oGameData.UseHero) ? useHeroValue.innerText = nhlMsg("ON") : useHeroValue.innerText = nhlMsg("OFF");
sldClockSpeed.style.visibility = "hidden";
sldPenalties.style.visibility = "hidden";
//tglRealTimePenalties.style.visibility = "hidden";
sldFighting.style.visibility = "hidden";
drpRefereeType.style.visibility = "hidden";
drpRinkType.style.visibility = "hidden";
drpTieBreak.style.visibility = "hidden";
drpMinorPenalty.style.visibility = "hidden";
drpSkillLevel.style.visibility = "hidden";
tglInjuries.style.visibility = "hidden";
tglOffside.style.visibility = "hidden";
tglIcing.style.visibility = "hidden";
tglTwoLinePass.style.visibility = "hidden";
tglUseHero.style.visibility = "hidden";
btnDefault.style.visibility = "hidden";
}
otLoss.style.visibility = "hidden";
divOTLoss.style.visibility = "hidden";
//playoffs - cull OT list
if (oLeagueServerInterface.LeagueType==4)
{
drpTieBreak.ClearAll();
//drpTieBreak.AppendValuesOptions( oGameManager.GetTieBreakList().split(',') );
aTieBreak = oGameManager.GetTieBreakList().split(',');
for (var i=1; i<aTieBreak.length-6; i+=2)
{
drpTieBreak.AddString(aTieBreak[i]);
}
oCallbackTable.TieBreakChanged();
}
//dynasty: set tie-break and ref type to nhl
else if (oLeagueServerInterface.LeagueType==7)
{
refTypeValue.innerText = aRefType[oGameData.RefType*2 + 1];
rinkTypeValue.innerText = aRinkType[oGameData.RinkType*2 + 1];
(oGameData.Injuries) ? injuriesValue.innerText = nhlMsg("ON") : injuriesValue.innerText = nhlMsg("OFF");
drpRefereeType.style.visibility = "hidden";
drpRinkType.style.visibility = "hidden";
tglInjuries.style.visibility = "hidden";
}
}
function clearSettings()
{
removeCallbackTable();
}
//init clock speed slider
function initClockSpeed()
{
oCallbackTable.ClockSpeedChanged();
}
//init penalties slider
function initPenalties()
{
oCallbackTable.PenaltiesChanged();
}
//init fighting slider
function initFighting()
{
oCallbackTable.FightingChanged();
}
//init Referee type drop down
function initRefereeType()
{
drpRefereeType.ClearAll();
//drpRefereeType.AppendValuesOptions( oGameManager.GetRefTypeList().split(',') );
aRefType = oGameManager.GetRefTypeList().split(',');
for (var i=1; i<aRefType.length; i+=2)
{
drpRefereeType.AddString(aRefType[i]);
}
oCallbackTable.RefTypeChanged();
}
//init Rink type drop down
function initRinkType()
{
drpRinkType.ClearAll();
//drpRinkType.AppendValuesOptions( oGameManager.GetRinkTypeList().split(',') );
aRinkType = oGameManager.GetRinkTypeList().split(',');
for (var i=1; i<aRinkType.length; i+=2)
{
drpRinkType.AddString(aRinkType[i]);
}
oCallbackTable.RinkTypeChanged();
}
//init Tie break drop down
function initTieBreak()
{
drpTieBreak.ClearAll();
//drpTieBreak.AppendValuesOptions( oGameManager.GetTieBreakList().split(',') );
aTieBreak = oGameManager.GetTieBreakList().split(',');
for (var i=1; i<aTieBreak.length; i+=2)
{
drpTieBreak.AddString(aTieBreak[i]);
}
oCallbackTable.TieBreakChanged();
}
//init minor penalty drop down
function initMinorPenalty()
{
drpMinorPenalty.ClearAll();
//drpMinorPenalty.AppendValuesOptions( oGameManager.GetMinorPenaltyList().split(',') );
aMinorPenalty = oGameManager.GetMinorPenaltyList().split(',');
for (var i=1; i<aMinorPenalty.length; i+=2)
{
drpMinorPenalty.AddString(aMinorPenalty[i]);
}
oCallbackTable.MinorPenaltyChanged();
}
//init skill level drop down
function initSkillLevel()
{
drpSkillLevel.ClearAll();
//drpSkillLevel.AppendValuesOptions( oGameManager.GetSkillLevelList().split(',') );
aSkillLevel = oGameManager.GetSkillLevelList().split(',');
for (var i=1; i<aSkillLevel.length; i+=2)
{
drpSkillLevel.AddString(aSkillLevel[i]);
}
oCallbackTable.LevelChanged();
}
//init injuries toggle
function initInjuries()
{
oCallbackTable.InjuriesChanged();
}
//init offside toggle
function initOffside()
{
oCallbackTable.OffsidesChanged();
}
//init icing toggle
function initIcing()
{
oCallbackTable.IcingChanged();
}
//init two line pass toggle
function initTwoLinePass()
{
oCallbackTable.TwoLinePassChanged();
}
function changeRealTimePenalties()
{
oCallbackTable.RealTimePenaltiesChanged();
}
function initUseHero()
{
oCallbackTable.UseHeroChanged();
}
//Event handlers
//sliders
function changeClockSpeed()
{
oGameData.ClockSpeed = sldClockSpeed.value;
}
function changePenalties()
{
oGameData.Penalties = sldPenalties.value;
}
function changeFighting()
{
oGameData.Fighting = sldFighting.value;
}
//drop down menus
function changeTieBreak()
{
oGameData.TieBreak = drpTieBreak.Selected;
}
function changeMinorPenalty()
{
oGameData.MinorPenalty = drpMinorPenalty.Selected;
}
function changeRefereeType()
{
oGameData.RefType = drpRefereeType.Selected;
}
function changeRinkType()
{
oGameData.RinkType = drpRinkType.Selected;
}
function changeSkillLevel()
{
oGameData.Level = drpSkillLevel.Selected;
}
//toggle btns
function changeInjuries( oTgl )
{
oAudioInterface.PlayToggleSFX();
oGameData.Injuries = oTgl.selected;
}
function changeOffside( oTgl )
{
oAudioInterface.PlayToggleSFX();
oGameData.Offsides = oTgl.selected;
}
function changeIcing( oTgl )
{
oAudioInterface.PlayToggleSFX();
oGameData.Icing = oTgl.selected;
}
function changeTwoLinePass( oTgl )
{
oAudioInterface.PlayToggleSFX();
oGameData.TwoLinePass = oTgl.selected;
}
function changeUseHero( oTgl )
{
oAudioInterface.PlayToggleSFX();
oGameData.UseHero = oTgl.selected;
}
//game interface setup
//callback Class
function CallbackTableObject()
{
this.ClockSpeedChanged = function () {sldClockSpeed.SetValue( oGameData.ClockSpeed );};
this.PenaltiesChanged = function () {sldPenalties.SetValue( oGameData.Penalties );};
//this.RealTimePenaltiesChanged = function () {/*(oGameData.RealTimePenalties) ? doSwap( tglRealTimePenalties_on ) : doSwap( tglRealTimePenalties_off );*/};
this.FightingChanged = function (){sldFighting.SetValue( oGameData.Fighting );};
this.OffsidesChanged = function (){(oGameData.Offsides)? doSwap( tglOffside_on ) : doSwap( tglOffside_off );};
this.IcingChanged = function () {(oGameData.Icing ) ? doSwap( tglIcing_on ) : doSwap( tglIcing_off );};
this.TwoLinePassChanged = function () {(oGameData.TwoLinePass) ? doSwap( tglTwoLinePass_on ) : doSwap( tglTwoLinePass_off );};
this.InjuriesChanged = function () {(oGameData.Injuries) ? doSwap( tglInjuries_on ) : doSwap( tglInjuries_off );};
this.RefTypeChanged = function () { drpRefereeType.Selected = oGameData.RefType; };
this.RinkTypeChanged = function (){drpRinkType.Selected = oGameData.RinkType; };
this.TieBreakChanged = function () { drpTieBreak.Selected = oGameData.TieBreak; };
this.MinorPenaltyChanged = function () {drpMinorPenalty.Selected = oGameData.MinorPenalty; };
this.UseHeroChanged = function (){(oGameData.UseHero) ? doSwap( tglUseHero_on ) : doSwap( tglUseHero_off );};
this.LevelChanged = function () {drpSkillLevel.Selected = oGameData.Level; };
this.GameRulesChanged = function()
{
this.ClockSpeedChanged();
this.PenaltiesChanged();
this.FightingChanged();
this.OffsidesChanged();
this.IcingChanged();
this.TwoLinePassChanged();
this.InjuriesChanged();
this.RefTypeChanged();
this.RinkTypeChanged();
this.TieBreakChanged();
this.MinorPenaltyChanged();
this.UseHeroChanged();
this.LevelChanged();
};
}
function defaultRules()
{
oAudioInterface.PlaySFX(1099);
oGameData.RestoreDefaultRules();
}