GUI updates to finish off Mark's big combat demo.

This was SVN commit r1305.
This commit is contained in:
Acumen 2004-11-11 23:54:41 +00:00
parent aca93d38db
commit c1329429e1
9 changed files with 363 additions and 9 deletions

View File

@ -13,6 +13,9 @@
<script file="gui/test/functions_utility_object.js"><![CDATA[
]]></script>
<script file="gui/test/functions_utility_entity.js"><![CDATA[
]]></script>
<script file="gui/test/functions_utility_animation.js"><![CDATA[
]]></script>
@ -25,6 +28,12 @@
<script file="gui/test/functions_pregame.js"><![CDATA[
]]></script>
<script file="gui/test/functions_manual.js"><![CDATA[
]]></script>
<script file="gui/test/functions_atlas.js"><![CDATA[
]]></script>
<script file="gui/test/functions_session.js"><![CDATA[
initSession();
writeConsole("Loaded GUI functions.");

View File

@ -10,4 +10,40 @@
<objects>
<object type="empty" name="manual_gui" size="0 0 100% 100%" z="1" hotkey="onlinehelp" hidden="true">
<action on="Press"><![CDATA[
// Toggle manual if something selected.
if (selection.length)
{
ManualGUI = getGUIObjectByName("manual_gui");
ManualGUI.hidden = !ManualGUI.hidden;
}
]]></action>
<object type="text" name="manual_bkg" sprite="tooltip-background" size="50%-200 0%+50 50%+200 100%-50" font="prospero16" textcolor="255 255 255" z="100" hidden="false" ghost="true">
<action on="Tick"><![CDATA[
if (selection.length && !( getGUIObjectByName( "manual_gui" ).hidden ))
{
manualDisplay();
}
]]></action>
<object type="button" name="manual_portrait" style="portrait" size="50%-192 0%+80 50%-128 0%+144"/>
<object type="text" name="manual_name" sprite="tooltip-background" size="50%-195 0%+149 50%+195 100%-205" font="prospero14" textcolor="255 255 255" ghost="true"/>
<!-- Gee needs to implement text clipping, so long text doesn't get clipped to these scroll windows yet. Scroll bars also don't block world input yet. -->
<object type="text" name="manual_rollover" scrollbar="true" scrollbar-style="manual_scrollbar" sprite="tooltip-background" size="50%-126 0%+80 50%+195 0%+144" font="prospero16" textcolor="255 255 255" ghost="false"/>
<object type="text" name="manual_history" scrollbar="true" scrollbar-style="manual_scrollbar" sprite="tooltip-background" size="50%-195 100%-200 50%+195 100%-55" font="prospero16" textcolor="255 255 255" ghost="false"/>
<object type="button" name="manual_exit_button" sprite="exit_sprite" sprite-over="exit_sprite-over" size="50%+184 0%+50 50%+200 0%+66" z="1000" ghost="false" hidden="false">
<action on="Press"><![CDATA[
// Close manual.
ManualGUI = getGUIObjectByName("manual_gui");
ManualGUI.hidden = true;
]]></action>
</object>
</object>
</object>
</objects>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>
<!DOCTYPE objects SYSTEM "../gui.dtd">
<!--
==========================================
- ATLAS SCENARIO EDITOR DEFINITION -
==========================================
-->
<objects>
</objects>

View File

@ -0,0 +1 @@
// Functions for Atlas Scenario Editor

View File

@ -0,0 +1,265 @@
function manualDisplay()
{
// Display heading.
ManualBkg = getGUIObjectByName("manual_bkg");
ManualBkg.caption = "In-Game Help: ";
if (selection[0].traits.id.civ)
ManualBkg.caption += selection[0].traits.id.civ + ": ";
// if (selection[0].traits.id.generic)
// ManualBkg.caption += selection[0].traits.id.generic + ": ";
if (selection[0].traits.id.specific)
ManualBkg.caption += selection[0].traits.id.specific;
// Display portrait.
if (selection[0].traits.id.icon)
{
ManualPortrait = getGUIObjectByName("manual_portrait");
setPortrait("manual_portrait", selection[0].traits.id.icon);
}
// Display rollover text.
if (selection[0].traits.id.rollover)
{
ManualRollover = getGUIObjectByName("manual_rollover");
ManualRollover.caption = selection[0].traits.id.rollover;
}
// Display name(s).
ManualRollover = getGUIObjectByName("manual_name");
ManualRollover.caption = "";
if (selection[0].traits.id.generic)
ManualRollover.caption += selection[0].traits.id.generic;
if (selection[0].traits.id.generic && selection[0].traits.id.specific)
ManualRollover.caption += " - ";
if (selection[0].traits.id.specific)
ManualRollover.caption += selection[0].traits.id.specific;
if (selection[0].traits.id.specific && selection[0].traits.id.ranked)
ManualRollover.caption += " - ";
if (selection[0].traits.id.ranked)
ManualRollover.caption += selection[0].traits.id.ranked;
// Personal name.
if (selection[0].traits.id.personal && selection[0].traits.id.personal != "")
ManualRollover.caption += " - " + selection[0].traits.id.personal;
ManualRollover.caption += "\n";
// Display civilisation.
if (selection[0].traits.id.civ && selection[0].traits.id.civ_code)
ManualRollover.caption += "Civilisation: " + selection[0].traits.id.civ + " (" + selection[0].traits.id.civ_code + ")" + "\n";
if (!selection[0].traits.id.civ_code)
ManualRollover.caption += "Civilisation: " + selection[0].traits.id.civ + "\n";
// Display hitpoints.
if (selection[0].traits.health.curr && selection[0].traits.health.hitpoints && selection[0].traits.health)
ManualRollover.caption += "Hitpoints: " + selection[0].traits.health.curr + "/" + selection[0].traits.health.hitpoints + "\n";
// Armour.
if (selection[0].traits.armour)
{
ManualRollover.caption += "Armour: ";
if (selection[0].traits.armour.value)
{
ManualRollover.caption += selection[0].traits.armour.value + " [";
if (selection[0].traits.armour.crush)
ManualRollover.caption += "Crush: " + Math.round(selection[0].traits.armour.crush*100) + "%, ";
if (selection[0].traits.armour.hack)
ManualRollover.caption += "Hack: " + Math.round(selection[0].traits.armour.hack*100) + "%, ";
if (selection[0].traits.armour.pierce)
ManualRollover.caption += "Hack: " + Math.round(selection[0].traits.armour.pierce*100) + "%";
ManualRollover.caption += "]\n";
}
}
// Attack.
if (selection[0].actions.attack)
{
ManualRollover.caption += "Attack: ";
if (selection[0].actions.attack.damage)
{
ManualRollover.caption += selection[0].actions.attack.damage + " [";
if (selection[0].actions.attack.crush)
ManualRollover.caption += "Crush: " + Math.round(selection[0].actions.attack.crush*100) + "%, ";
if (selection[0].actions.attack.hack)
ManualRollover.caption += "Hack: " + Math.round(selection[0].actions.attack.hack*100) + "%, ";
if (selection[0].actions.attack.pierce)
ManualRollover.caption += "Hack: " + Math.round(selection[0].actions.attack.pierce*100) + "%";
ManualRollover.caption += "]\n";
}
if (selection[0].actions.attack.range)
ManualRollover.caption += "Attack Range: " + selection[0].actions.attack.range + "\n";
}
// Speed.
if (selection[0].actions.move)
{
if (selection[0].actions.move.speed)
ManualRollover.caption += "Speed: " + selection[0].actions.move.speed + "\n";
// Turn Radius.
if (selection[0].actions.move.turningradius)
ManualRollover.caption += "TurnRadius: " + selection[0].actions.move.turningradius + "\n";
}
// Classes.
if (selection[0].traits.id.class1)
ManualRollover.caption += "Class1: " + selection[0].traits.id.class1 + "\n";
if (selection[0].traits.id.class2)
ManualRollover.caption += "Class2: " + selection[0].traits.id.class2 + "\n";
if (selection[0].traits.id.class3)
ManualRollover.caption += "Class3: " + selection[0].traits.id.class3 + "\n";
// Name directory.
if (selection[0].traits.id.personal1 && selection[0].traits.id.personal2)
ManualRollover.caption += "Name File: " + selection[0].traits.id.personal1 + " & " + selection[0].traits.id.personal2 + "\n";
// Internal flag.
if (selection[0].traits.id.internal_only)
ManualRollover.caption += "Internal: " + selection[0].traits.id.internal_only + "\n";
// Icon.
if (selection[0].traits.id.icon)
ManualRollover.caption += "Icon: " + selection[0].traits.id.icon + "\n";
// Version.
if (selection[0].traits.id.version)
ManualRollover.caption += "Version: " + selection[0].traits.id.version + "\n";
// Display types.
if (selection[0].traits.id.type)
{
ManualTypeString = "";
if (selection[0].traits.id.type.gaia)
{
ManualTypeString += "gaia ";
if (selection[0].traits.id.type.gaia.group.aqua)
ManualTypeString += "gaia.group.aqua ";
if (selection[0].traits.id.type.gaia.group.fauna)
ManualTypeString += "gaia.group.fauna ";
if (selection[0].traits.id.type.gaia.group.flora)
ManualTypeString += "gaia.group.flora ";
if (selection[0].traits.id.type.gaia.group.geo)
ManualTypeString += "gaia.group.geo ";
if (selection[0].traits.id.type.gaia.group.resource)
ManualTypeString += "gaia.group.resource ";
}
if (selection[0].traits.id.type.unit)
{
ManualTypeString += "unit ";
if (selection[0].traits.id.type.unit.group.citizensoldier)
ManualTypeString += "unit.group.citizensoldier ";
if (selection[0].traits.id.type.unit.group.hero)
ManualTypeString += "unit.group.hero ";
if (selection[0].traits.id.type.unit.group.military)
ManualTypeString += "unit.group.military ";
if (selection[0].traits.id.type.unit.group.ship)
ManualTypeString += "unit.group.ship ";
if (selection[0].traits.id.type.unit.group.siege)
ManualTypeString += "unit.group.siege ";
if (selection[0].traits.id.type.unit.group.superunit)
ManualTypeString += "unit.group.superunit ";
if (selection[0].traits.id.type.unit.group.support)
ManualTypeString += "unit.group.support ";
if (selection[0].traits.id.type.unit.group.trade)
ManualTypeString += "unit.group.trade ";
if (selection[0].traits.id.type.unit.group.warship)
ManualTypeString += "unit.group.warship ";
if (selection[0].traits.id.type.unit.group.worker)
ManualTypeString += "unit.group.worker ";
if (selection[0].traits.id.type.unit.material.mechanical)
ManualTypeString += "unit.material.mechanical ";
if (selection[0].traits.id.type.unit.material.organic)
ManualTypeString += "unit.material.organic ";
if (selection[0].traits.id.type.unit.attack.melee)
ManualTypeString += "unit.attack.melee ";
if (selection[0].traits.id.type.unit.attack.ranged)
ManualTypeString += "unit.attack.ranged ";
if (selection[0].traits.id.type.unit.foot)
{
ManualTypeString += "unit.foot ";
if (selection[0].traits.id.type.unit.foot.bow)
ManualTypeString += "unit.foot.bow ";
if (selection[0].traits.id.type.unit.foot.javelin)
ManualTypeString += "unit.foot.javelin ";
if (selection[0].traits.id.type.unit.foot.sling)
ManualTypeString += "unit.foot.sling ";
if (selection[0].traits.id.type.unit.foot.spear)
ManualTypeString += "unit.foot.spear ";
if (selection[0].traits.id.type.unit.foot.sword)
ManualTypeString += "unit.foot.sword ";
}
if (selection[0].traits.id.type.unit.mounted)
{
ManualTypeString += "unit.mounted ";
if (selection[0].traits.id.type.unit.mounted.bow)
ManualTypeString += "unit.mounted.bow ";
if (selection[0].traits.id.type.unit.mounted.javelin)
ManualTypeString += "unit.mounted.javelin ";
if (selection[0].traits.id.type.unit.mounted.spear)
ManualTypeString += "unit.mounted.spear ";
if (selection[0].traits.id.type.unit.mounted.sword)
ManualTypeString += "unit.mounted.sword ";
if (selection[0].traits.id.type.unit.weapon.bow)
ManualTypeString += "unit.weapon.bow ";
if (selection[0].traits.id.type.unit.weapon.javelin)
ManualTypeString += "unit.weapon.javelin ";
if (selection[0].traits.id.type.unit.weapon.sling)
ManualTypeString += "unit.weapon.sling ";
if (selection[0].traits.id.type.unit.weapon.spear)
ManualTypeString += "unit.weapon.spear ";
if (selection[0].traits.id.type.unit.weapon.sword)
ManualTypeString += "unit.weapon.sword ";
}
}
if (selection[0].traits.id.type.structure)
{
ManualTypeString += "structure ";
if (selection[0].traits.id.type.structure.group.defensive)
ManualTypeString += "structure.group.defensive ";
if (selection[0].traits.id.type.structure.group.housing)
ManualTypeString += "structure.group.housing ";
if (selection[0].traits.id.type.structure.group.offensive)
ManualTypeString += "structure.group.offensive ";
if (selection[0].traits.id.type.structure.group.supply)
ManualTypeString += "structure.group.supply ";
if (selection[0].traits.id.type.structure.group.support)
ManualTypeString += "structure.group.support ";
if (selection[0].traits.id.type.structure.group.tower)
ManualTypeString += "structure.group.tower ";
if (selection[0].traits.id.type.structure.group.train)
ManualTypeString += "structure.group.train ";
if (selection[0].traits.id.type.structure.group.wall)
ManualTypeString += "structure.group.wall ";
if (selection[0].traits.id.type.structure.phase.cp)
ManualTypeString += "structure.phase.cp ";
if (selection[0].traits.id.type.structure.phase.tp)
ManualTypeString += "structure.phase.tp ";
if (selection[0].traits.id.type.structure.phase.vp)
ManualTypeString += "structure.phase.vp ";
if (selection[0].traits.id.type.structure.material.stone)
ManualTypeString += "structure.material.stone ";
if (selection[0].traits.id.type.structure.material.wood)
ManualTypeString += "structure.material.wood ";
}
if (ManualTypeString != "")
ManualRollover.caption = ManualRollover.caption + "Type(s): " + ManualTypeString + "\n";
}
// Display history text.
if (selection[0].traits.id.history)
{
ManualHistory = getGUIObjectByName("manual_history");
ManualHistory.caption = "History: " + selection[0].traits.id.history;
}
}

View File

@ -55,20 +55,25 @@ function getObjectInfo()
// Hide Group Pane.
getGUIObjectByName("session_group_pane").hidden = true;
getGlobal().MultipleEntitiesSelected = 0;
}
else // If at least one entity selected,
{
// Store globals for entity information.
// EntityName = selection[0].traits.id.generic;
// strString = "" + selection[0].position;
// EntityPos = strString.substring(20,strString.length-3);
// Update portrait
setPortrait("session_panel_status_portrait", selection[0].traits.id.icon);
if (selection[0].traits.id.icon)
setPortrait("session_panel_status_portrait", selection[0].traits.id.icon);
// Update hitpoints
getGUIObjectByName("session_panel_status_icon_hp_text").caption = selection[0].traits.health.hpcurr + "/" + selection[0].traits.health.hitpoints;
getGUIObjectByName("session_panel_status_icon_hp_bar").caption = ((selection[0].traits.health.hpcurr * 100 ) / selection[0].traits.health.hitpoints);
if (selection[0].traits.health.curr & selection[0].traits.health.hitpoints)
{
getGUIObjectByName("session_panel_status_icon_hp_text").caption = Math.round(selection[0].traits.health.curr) + "/" + Math.round(selection[0].traits.health.hitpoints);
getGUIObjectByName("session_panel_status_icon_hp_bar").caption = ((Math.round(selection[0].traits.health.curr) * 100 ) / Math.round(selection[0].traits.health.hitpoints));
}
// Reveal Status Orb
getGUIObjectByName("session_status_orb").hidden = false;
@ -139,8 +144,10 @@ function getObjectInfo()
groupPanePortrait.hidden = false;
groupPaneBar.hidden = false;
// Set progress bar for hitpoints.
groupPaneBar.caption = ((selection[groupPaneLoop-1].traits.health.hpcurr * 100 ) / selection[groupPaneLoop-1].traits.health.hitpoints);
setPortrait("session_group_pane_portrait_" + groupPaneLoop, selection[groupPaneLoop-1].traits.id.icon);
if (selection[groupPaneLoop-1].traits.health.curr && selection[groupPaneLoop-1].traits.health.hitpoints)
groupPaneBar.caption = ((Math.round(selection[groupPaneLoop-1].traits.health.curr) * 100 ) / Math.round(selection[groupPaneLoop-1].traits.health.hitpoints));
if (selection[groupPaneLoop-1].traits.id.icon)
setPortrait("session_group_pane_portrait_" + groupPaneLoop, selection[groupPaneLoop-1].traits.id.icon);
}
// If it's empty, hide its group portrait.
else
@ -151,12 +158,12 @@ function getObjectInfo()
}
MultipleEntitiesSelected = selection.length;
getGlobal().MultipleEntitiesSelected = selection.length;
}
}
else
{
MultipleEntitiesSelected = 0;
getGlobal().MultipleEntitiesSelected = 0;
// Hide Group Pane.
getGUIObjectByName("session_group_pane").hidden = true;

View File

@ -0,0 +1,11 @@
function GetAttrib(getAttribName)
{
// Simple helper function that elegantly checks if an entity attribute exists.
// Returns blank if it doesn't, or it's value if it does.
if (getAttribName)
return getAttribName;
else
return "";
}

View File

@ -29,6 +29,19 @@
sprite-button-top-pressed="scroll"
/>
<scrollbar name="manual_scrollbar" width="12" minimum-bar-size="4" alwaysshown="false"
sprite-button-top="sprite2"
sprite-button-top-over="scroll"
sprite-button-bottom="sprite2"
sprite-button-bottom-over="scroll"
sprite-back-vertical="grey"
sprite-bar-vertical="sprite2"
sprite-bar-vertical-over="scroll"
sprite-bar-vertical-pressed="sprite2-pressed"
sprite-button-bottom-pressed="sprite2-pressed"
sprite-button-top-pressed="sprite2-pressed"
/>
<icon name="smiley" texture="test2" size="16 16" />
<!-- Commented out until tooltips are implemented as documented.

View File

@ -37,5 +37,4 @@
sprite-bar="green-bar"
tooltip-style="session-tooltip"
/>
</styles>