Tactical Console (Savage): Difference between revisions
Line 82: | Line 82: | ||
Since we copied our things when defining them, many of the standard skills are assigned the tag, while others are not. In addition, special skills like the arcane skills are not being assigned the tag, which means they are not included in the list. The arcane skills are just as important and should be displayed. We probably can't fit all skills in the available space, so we need to choose the skills to include. So let's go through all the skills and decide which ones should (or shouldn't) be included in the list. Be sure to check all skills, including those associated with arcane background and powers. Any skill to be shown must be assigned the tag. | Since we copied our things when defining them, many of the standard skills are assigned the tag, while others are not. In addition, special skills like the arcane skills are not being assigned the tag, which means they are not included in the list. The arcane skills are just as important and should be displayed. We probably can't fit all skills in the available space, so we need to choose the skills to include. So let's go through all the skills and decide which ones should (or shouldn't) be included in the list. Be sure to check all skills, including those associated with arcane background and powers. Any skill to be shown must be assigned the tag. | ||
Once we've identified the appropriate skills, we need to review the output being generated. Everything looks good, except for Knowledge skills. Any skill with a domain is not including that domain. So we need to revise the output slightly. In the center of the Label script for the "peace" portal, the name needs to be determined differently. Replace the current line of code with the lines shown below. | |||
<pre> | |||
~use the short name for display and append any domain | |||
name = eachpick.field[shortname].text | |||
if (eachpick.tagis[component.Skill] + eachpick.tagis[User.NeedDomain] >= 2) then | |||
name &= "(" & eachpick.field[domDomain].text & ")" | |||
endif | |||
</pre> | |||
===Combat Content=== | ===Combat Content=== |
Revision as of 10:18, 26 January 2009
Context: HL Kit … Authoring Examples … Savage Worlds Walk-Through
Overview
With the Dashboard operating smoothly, we'll shift our focus to the Tactical Console, or TacCon for short. All the behaviors of the TacCon are orchestrated within the file "form_taccon.dat". In general, the only facet of the TacCon that you'll need to worry about as an author is the contents of the "tacPick" template, which controls the information shown for each individual actor. All other TacCon behaviors can be left in their default state, since those behaviors will be the same for just about every game system. This is true for Savage Worlds, so we'll only focus on the "tacPick" template below.
Orientation
The contents of the "tacPick" template are organized into a number of regions. We'll start with a brief orientation to those regions, after which we'll begin revising each of those regions to suit our purposes.
Flanking the template on either side are character portraits. The image is placed on the left for actors that are allies of the PCs. Actors that are NPCs and/or established enemies of the PCs are have their portraits shown on the right. This provides an immediate visual cue for the user regarding ally versus enemy. As such, you should probably not change this behavior without good reason.
Moving from left to right, the next region of the template provides general information about the actor. This area is similar to the Dashboard, as it displays the actor's name and a small number of the most important details for the actor.
At the right edge of this region, two buttons are shown. One allows you to switch directly to an actor within the main window, just like is done on the Dashboard, while the other brings up a form where you can apply damage and other effects to the actor.
To the right of the buttons is a column of traits. The traits shown here are those that are most likely to be utilized by the user during play. This ensures that those traits are always visible for reference.
A large region in the center holds an assortment of details about the actor. The contents of this region will be different, depending on whether the actor is in combat or out of combat. During combat, equipped weapons and other combat-related details can be shown for quick reference by the user. When out of combat, other information can be shown, such as a summary of important skills that are commonly used.
In the upper right, a row of mouse-over icons is provided. These icons are identical to the ones utilized on the Dashboard. They are shown in the same order and are hooked up to the same procedures, so they will offer the same information to the user.
Beneath the mouse-over icons, status information about the actor is presented when not in combat.
Once combat begins, a number of changes take place. A region is reserved on the far left to indicate import state about the actor, such as whether a character has not yet acted in the combat. Next to this region, a set of three buttons is shown, providing control over the combat actions of the actor. The status information shown on the far right is moved to the line across the bottom of the template. Where the status was shown, an incrementer appears for the purpose of controlling initiatives. And at the far right edge, a set of buttons is shown for moving the actor up and down within the combat sequence.
Basic Actor Information
The region on the left for basic actor information serves much the same purpose as on the Dashboard. The key difference is that the TacCon provides a bit more space. This means that we ought to be able to include all five pieces of information that we identified when working on the Dashboard. These pieces are the Health, Parry, Toughness, Power Points, and Bennies.
There are basically two lines of space available to us. We'll use the same compact format for the Health that we created for the Dashboard. We'll put the Parry and Toughness traits on the same line with the Health. On the other line, we'll place the Power Points and Bennies, showing the current and maximum values for each.
There are two labels portals for displaying basic character information. They are named "status1" and "status2", with "status1" appearing above "status2". We'll put the Health on the top line. For the second line, we need to only show power points if the character actually possesses an arcane background. This results in the following two revised portals and Label scripts.
<portal id="status1" style="lblSmlLeft"> <label ismultiline="yes"> <labeltext><![CDATA[ ~start with the health status @text = "{size 30}Hlth: {size 36}" & field[acDmgTac].text ~append the parry trait @text &= "{horz 10}{size 30}Pa: {size 36}" & #trait[trParry] ~append the toughness trait @text &= "{horz 6}{size 30}To: {size 36}" & #trait[trTough] ]]></labeltext> </label> </portal> <portal id="status2" style="lblSmlLeft"> <label ismultiline="yes"> <labeltext><![CDATA[ ~start with the power points status (if any) if (hero.tagis[Arcane.?] <> 0) then @text = "{size 30}PP: {size 36}" & herofield[acPPSumm].text @text &= "{horz 12}" endif ~add the bennies @text &= "{size 30}Ben: {size 36}" & hero.child[trkBennies].field[trkUser].text ]]></labeltext> </label> </portal>
Important Traits
The column of traits to the right of the basic character information is managed via the "traits" portal. All of the traits that should appear in the list are identified by the "DashTacCon.Traits" tag. Since there are four derived traits in Savage Worlds, we'll include all of them in the list. Open the file "thing_traits.dat" and make sure that the four derived traits possess the tag.
Non-Combat Content
The information shown in the center changes based on whether the party is in combat or not. When not in combat, the region should show useful facets of the character that a GM will refer to during play. For example, the character's skills, or perhaps just the most commonly used skills in a game where all characters possess a large number of skills.
In Savage Worlds, characters purchase their skills, so we can simply show all of the skills for each character. The region is controlled via the "peace" portal, which uses a Label script to synthesize its contents. All of the items shown in the region are identified by possessing the "DashTacCon.NonCombat" tag.
Since we copied our things when defining them, many of the standard skills are assigned the tag, while others are not. In addition, special skills like the arcane skills are not being assigned the tag, which means they are not included in the list. The arcane skills are just as important and should be displayed. We probably can't fit all skills in the available space, so we need to choose the skills to include. So let's go through all the skills and decide which ones should (or shouldn't) be included in the list. Be sure to check all skills, including those associated with arcane background and powers. Any skill to be shown must be assigned the tag.
Once we've identified the appropriate skills, we need to review the output being generated. Everything looks good, except for Knowledge skills. Any skill with a domain is not including that domain. So we need to revise the output slightly. In the center of the Label script for the "peace" portal, the name needs to be determined differently. Replace the current line of code with the lines shown below.
~use the short name for display and append any domain name = eachpick.field[shortname].text if (eachpick.tagis[component.Skill] + eachpick.tagis[User.NeedDomain] >= 2) then name &= "(" & eachpick.field[domDomain].text & ")" endif