Files
roll20-character-sheets/Without Numbers/Source/pug/ship.pug
T

174 lines
8.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
input(type="hidden", name="attr_ship_class_normalised", value="").ship-class
input(type="hidden", name="attr_ship_vehicle_type", value="SHIP").input-type
.type.col-2.core-box.flex-between.edit
h3(data-i18n="VEHICLE_TYPE")
select(name="attr_ship_vehicle_type")
each val in ["SHIP", "MECH", "VEHICLE"]
option(value=val, data-i18n=val, selected=val==="SHIP")
.menus.col-3
.vehicle-type.vehicle-type-ship.flex-between.core-box
h3(data-i18n="QUICK_MENUS")
input(type="hidden", name="attr_macro_ship_weapons", value="")
button(type="roll", name="roll_ship_travel", data-i18n="TRAVEL_TIME", value=`&{template:swn-default} {{system=@{system}}} {{charname=@{ship_name}}} {{title=^{TRAVEL_TIME}}} {{info=It will take [[(?{Traveling Time?|Inside Region, 6|Region to Region, 48}) / ?{Drive Rating?}]] hours}}`).btn
//- Ship header
.info.core-box-text.flex
+text-input("ship_name", "NAME").col40.grow.important
.text-input.col25.grow.focusinfo
input(type="text", name="attr_ship_hulltype",)
.label(data-i18n="HULL_TYPE")
+text-input("ship_class", "CLASS").colsixth.vehicle-type.vehicle-type-ship.vehicle-type-mech
+text-input("ship_size", "SIZE").colsixth.vehicle-type.vehicle-type-custom
+text-input("ship_cargo_tonnage", "CARGO").colsixth.vehicle-type.vehicle-type-ship
.grid.grid-flow-col.gap-1.w-full
+text-input("ship_ground_speed", "GROUND_SPEED").vehicle-type.vehicle-type-custom
+text-input("ship_home_port", "HOME_PORT").vehicle-type.vehicle-type-ship
+text-input("ship_price", "COST")
.grid.grid-flow-col.gap-1
each val in ["operating_cost", "maintenance_cost", "last_maintenance"]
+text-input(`ship_${val}`, val)
.data.core-box-text
+text-input-duo(
"ship_fuel",
"ship_fuel_max",
"FUEL",
{type: "number", min: 0, value: 0})(type="number" min="0" value="0")
.vehicle-type.vehicle-type-ship.vehicle-type-custom Fuel
each val in ["ac", "speed", "armor"]
+text-input(`ship_${val}`, val)(type="number", min="0")
+text-input("ship_command_points", "CP_GAIN")(type="number", min="0", value="0") CP Gain
+text-input-duo(
"ship_life_support",
"ship_life_support_max",
"LIFE_SUPPORT",
{type: "number", min: 0, value: 0})(type="number" min="0" value="0")
.vehicle-type.vehicle-type-ship.vehicle-type-custom Life Support
+text-input-trio(
"ship_crew_min",
"ship_crew",
"ship_crew_max",
"CREW_MIN/CURRENT/MAX",
{type: "number", min: 0},
{type: "number", min: 0})(type="number", min="0")
.vehicle-type.vehicle-type-ship.vehicle-type-custom Crew Min/Current/Max
.stats.core-box-text
+text-input-duo("ship_hp", "ship_hp_max", "HIT_POINTS", {min: "0"})(min="0").important
input(type="hidden", name="attr_ship_power" value="0").input-color-negative
+text-input-duo("ship_power", "ship_power_max", "FREE_POWER", {min: "0", value: "0"})(value="0", readonly) Free Power
input(type="hidden", name="attr_ship_mass" value="0").input-color-negative
+text-input-duo("ship_mass", "ship_mass_max", "FREE_MASS", {min: "0", value: "0"})(value="0", readonly) Free Mass
input(type="hidden", name="attr_ship_hardpoints" value="0").input-color-negative
+text-input-duo("ship_hardpoints", "ship_hardpoints_max", "FREE_HARDPOINTS", {min: "0", value: "0"})(value="0", readonly) Free Hardpoints
//- Weapons
.section
+sectionheader("show_ship_weapons", "WEAPONS")
.ship-weapons
fieldset.repeating_ship-weapons
each val in ["api", "price"]
input(type="hidden", name=`attr_weapon_${val}`, value="")
button(type="roll", name="roll_Attack", value!="&{template:swn-attack} {{system=@{system}}} {{charname=@{ship_name}}} {{title=@{weapon_name} @{weapon_qualities}}} {{attack=[[1d20 + @{weapon_attack_bonus}[Attack Bonus] @{modifier_query}]]}} {{damage=[[@{weapon_damage}]]}} @{weapon_use_ammo} @{weapon_api}").display.invisible-button
.display.grey-box-bordered
input(type="hidden", name="attr_weapon_broken", value="0").hider
span.broken.space-after #[span(data-i18n="BROKEN")]:
span.name.ellipsis.space-after
span(name="attr_weapon_name").space-after
input(type="hidden", name="attr_weapon_attack_bonus").add-plus
span(name="attr_weapon_attack_bonus")
span
| (
span(name="attr_weapon_damage").space-after
span.space-after #[span(data-i18n="DAMAGE").lowercase];
span(name="attr_weapon_qualities")
input(type="hidden", name="attr_weapon_range", value="").hide-empty
span.vehicle-type.vehicle-type-mech
| ; #[span(data-i18n="RANGE")] #[span(name="attr_weapon_range")]
| ; #[span(data-i18n="POWER")] 
span(name="attr_weapon_power")
| , #[span(data-i18n="MASS")] 
span(name="attr_weapon_mass")
| , #[span(data-i18n="HARDPOINTS")] 
span(name="attr_weapon_hardpoints")
| )
input(type="hidden", name="attr_weapon_use_ammo", value="0").hider
span.vehicle-type.vehicle-type-ship.vehicle-type-custom
| . #[span(data-i18n="AMMO")]: 
input(type="number", name="attr_weapon_ammo").inline-input
|  / 
span(name="attr_weapon_ammo_max")
.edit.flex-wrap.grey-box-bordered
+text-input("weapon_name", "NAME").name.ellipsis
each val in ["power", "mass", "hardpoints"]
+text-input(`weapon_${val}`, val)(type="number", value="0", min="0").center.number
+fake-text-input("BROKEN").center.broken
input(type="checkbox", name="attr_weapon_broken", value="1")
+text-input("weapon_attack_bonus", "AB")(type="number", value="0").center.number
+text-input("weapon_damage", "DAMAGE")(value="0").center.damage
+text-input("weapon_qualities", "QUALITIES").qualities.grow
+text-input("weapon_range", "RANGE").range.vehicle-type.vehicle-type-mech
+text-input-duo("weapon_ammo", "weapon_ammo_max", "", {min: "0"})(min="0").vehicle-type.vehicle-type-ship.vehicle-type-custom
label.label
input(type="checkbox", name="attr_weapon_use_ammo", value="{{ammo=[[@{weapon_ammo} - 1]] / @{weapon_ammo_max}}}")
span(data-i18n="AMMO")
//- Fittings
.section.cols-2.rows-2
+sectionheader("show_ship_fittings", "FITTING")
.ship-fitting
fieldset.repeating_ship-fittings
input(type="hidden", name="attr_fitting_price")
.display
input(type="hidden", name="attr_fitting_broken", value="0").hider
span.broken.space-after #[span(data-i18n="BROKEN")]:
span(name="attr_fitting_name").name.ellipsis.space-after
span.space-after
| (#[span(data-i18n="POWER")] 
span(name="attr_fitting_power")
| , #[span(data-i18n="MASS")] 
span(name="attr_fitting_mass")
| ).
span(name="attr_fitting_effect").description
.edit.flex.grey-box-bordered
+text-input("fitting_name", "NAME").name.ellipsis
each val in ["power", "mass"]
+text-input(`fitting_${val}`, val)(type="number", value="0").center.number
+fake-text-input("EFFECT").effect
textarea(name="attr_fitting_effect")
+fake-text-input("BROKEN").center.broken
input(type="checkbox", name="attr_fitting_broken", value="1")
//- Defenses
.section
+sectionheader("show_ship_defenses", "DEFENSES")
.ship-defenses
fieldset.repeating_ship-defenses
input(type="hidden", name="attr_defense_price")
.display
input(type="hidden", name="attr_defense_broken", value="0").hider
span.broken.space-after #[span(data-i18n="BROKEN")]:
span(name="attr_defense_name").name.ellipsis.space-after
span.space-after
| (#[span(data-i18n="POWER")] 
span(name="attr_defense_power")
| , #[span(data-i18n="MASS")] 
span(name="attr_defense_mass")
| ).
span(name="attr_defense_effect").description
.edit.flex.grey-box-bordered
+text-input("defense_name", "NAME").name.ellipsis
each val in ["power", "mass"]
+text-input(`defense_${val}`, val)(type="number", value="0").center.number
+fake-text-input("EFFECT").effect
textarea(name="attr_defense_effect")
+fake-text-input("BROKEN").center.broken
input(type="checkbox", name="attr_defense_broken", value="1")
//- Notes
.section.cols-3
+sectionheader("show_ship_other)", "NOTES")
.halfgrid
textarea(name="attr_ship_notes")
textarea(name="attr_ship_other_notes")