Complex Vehicles (Savage): Difference between revisions
No edit summary |
No edit summary |
||
Line 83: | Line 83: | ||
</thing> | </thing> | ||
</pre> | </pre> | ||
We can now assign the load-out entity to the vehicle. Once we have the entity to contain the weapons, we can then assign the weapons into it. This is accomplished by bootstrapping the weapons into the '''''entity''''', as opposed to bootstrapping them onto the vehicle. So we add the following material to our Zero, which adds the entity and then puts the two weapons into it. | |||
<pre> | |||
<child entity="LoadOut"> | |||
<bootstrap thing="vw77MG"> | |||
</bootstrap> | |||
<bootstrap thing="vw20mm"> | |||
</bootstrap> | |||
</child> | |||
</pre> | |||
That's all there is to it. The two weapons now reside within the entity and behave as children of the vehicle itself. | |||
===Refining the Entity=== | |||
Revision as of 02:58, 12 January 2009
Context: HL Kit … Authoring Examples … Savage Worlds Walk-Through
Overview
Now that all the basics of vehicles are in place, we can look at how to support more complex vehicles, such as military vehicles with weapons. Each such vehicle needs to be managed as a user-selectable pick, plus the weapons need to be associated directly with each vehicle. We also need to handle the appropriate display of the weapons for each vehicle, which can be handled a few different ways.
Assigning Equipment to Vehicles
The biggest wrinkle posed by complex vehicles is how to define the various equipment separately (e.g. weapons) and then associate that equipment with the vehicle. Your first thought might be to use a bootstrap to associate the equipment, but that won't work. The vehicle is assigned to the character, so any things bootstrapped by the vehicle will also be assigned to the character. What we need is to treat each vehicle as its own container, into which the various equipment picks can be added.
In order to accomplish this, we must use a entity. When the entity is added to the character, it becomes a gizmo, which is a separate container. We can then add the various equipment picks into the gizmo. Entities are defined separately and then added via a thing. When the thing is added to the character as a pick, the associated entity is automatically added as a gizmo.
So our first task is to define an entity that we can use with vehicles. When we define the entity, we can automatically assign things into the entity, which will be added to every gizmo that derives from the entity. However, every vehicle is unique and there is nothing that must exist for every vehicle. We can also assign tags to every entity that will always be assigned to every derived gizmo, but we don't need any of those either.
This leaves us with an incredibly simple entity. The entity is merely a shell that will be separately customized for every vehicle. Since the entity is used to contain the various equipment possessed by each vehicle, we'll refer to it as the "load-out" for a vehicle and name it accordingly. This results in an entity definition that looks like the one below, which we can define at the bottom of the file "equipment.str".
<entity id="LoadOut"> </entity>
Putting the Entity to Use
Now that we've got an entity, we need to put it to use. To demonstrate how this works, we'll define a the "A6M Zero" aircraft that is presented in the core rulebook. We start with the basic details for the vehicle, which should look like the following.
<thing id="vhA6MZero" name="A6M Zero" compset="Vehicle" description="Description goes here"> <fieldval field="grCost" value="0"/> <fieldval field="vhAccel" value="20"/> <fieldval field="vhTopSpeed" value="140"/> <fieldval field="vhTough" value="12"/> <fieldval field="vhArmor" value="2"/> <fieldval field="vhCrew" value="1"/> <fieldval field="vhCost" value="0"/> <usesource source="TimeModern"/> <tag group="VehType" tag="Aircraft"/> <tag group="VehEra" tag="WWII"/> <tag group="thing" tag="holder_top"/> </thing>
The Zero has two pairs of weapons in its armament. It has two 7.7mm machine guns and two 20mm cannons. So we next need to define the two weapons appropriately. These should look like is shown below.
<thing id="vw77MG" name="7.7mm MG" compset="Ranged" description="Description goes here"> <fieldval field="wpDamage" value="2d8+1"/> <fieldval field="wpShort" value="24"/> <fieldval field="wpMedium" value="48"/> <fieldval field="wpLong" value="96"/> <fieldval field="wpPiercing" value="2"/> <fieldval field="wpFireRate" value="3"/> <fieldval field="wpShots" value="500"/> <fieldval field="wpAmmo" value="7.7mm"/> <usesource source="TimeModern"/> <tag group="Equipment" tag="Natural"/> </thing> <thing id="vw20mm" name="20mm Cannon" compset="Ranged" description="Description goes here"> <fieldval field="wpDamage" value="3d8"/> <fieldval field="wpShort" value="50"/> <fieldval field="wpMedium" value="100"/> <fieldval field="wpLong" value="200"/> <fieldval field="wpPiercing" value="4"/> <fieldval field="wpFireRate" value="3"/> <fieldval field="wpShots" value="60"/> <fieldval field="wpAmmo" value="20mm"/> <usesource source="TimeModern"/> <tag group="Equipment" tag="Natural"/> <tag group="Weapon" tag="HvyWeapon"/> </thing>
We can now assign the load-out entity to the vehicle. Once we have the entity to contain the weapons, we can then assign the weapons into it. This is accomplished by bootstrapping the weapons into the entity, as opposed to bootstrapping them onto the vehicle. So we add the following material to our Zero, which adds the entity and then puts the two weapons into it.
<child entity="LoadOut"> <bootstrap thing="vw77MG"> </bootstrap> <bootstrap thing="vw20mm"> </bootstrap> </child>
That's all there is to it. The two weapons now reside within the entity and behave as children of the vehicle itself.
Refining the Entity
define an entity to encapsulate the load-outs for vehicles with weapons, and bootstrap all weapons into the entity for each vehicle
override values and tags on the weapons via the bootstraps to customize small differences
fields that need to be overridden via bootstraps must be changed from static to derived
add "reload1" weapon ability
modify "InfoVeh" procedure to output the appropriate details of the load-out for each vehicle
add "vhLoadout" field for display of things