Files
roll20-character-sheets/Stars_Without_Number_Revised/Source/pug/npc.pug
T

193 lines
10 KiB
Plaintext

input(type="hidden", name="attr_setting_individual_hidden", value="1").input-individual-hide
//- Menus
.menus.col-3.core-box.flex-between
h3(data-i18n="QUICK_MENUS")
input(type="hidden", name="attr_macro_statblock", value="")
button(type="roll", name="roll_Statblock_macro", data-i18n="STATBLOCK", value=`/w "@{character_name}" &{template:swn-default} {{charname=@{npc_name}}} {{title=[**^{HD}** @{npc_hd}](~npc_hp), ^{AC} @{AC}}} {{buttons=@{macro_statblock}}}`).unstyled-button
input(type="hidden", name="attr_macro_npc_attacks", value="")
button(type="roll", name="roll_NPC_Attack_macro", data-i18n="ATTACKS", value=`/w "@{character_name}" &{template:swn-default} {{charname=@{npc_name}}} {{title=^{ATTACKS}}} {{buttons=@{macro_npc_attacks}}}`).unstyled-button
input(type="hidden", name="attr_macro_npc_abilities", value="")
button(type="roll", name="roll_NPC_Abilities_macro", data-i18n="ABILITIES", value=`/w "@{character_name}" &{template:swn-default} {{charname=@{npc_name}}} {{title=^{ABILITIES}}} {{buttons=@{macro_npc_abilities}}}`).unstyled-button
//- Name etc
.core-box-text.info
+text-input("npc_name", "NAME").cols-3.important
+fake-text-input("STAT_BLOCK").cols-3
select(name="attr_npc_stat_block")
option(value="", selected) —
optgroup(data-i18n-label="GENERIC_HUMAN")
option(value="peaceful_human", data-i18n="PEACEFUL_HUMAN")
option(value="martial_human", data-i18n="MARTIAL_HUMAN")
option(value="veteran_fighter", data-i18n="VETERAN_FIGHTER")
option(value="elite_fighter", data-i18n="ELITE_FIGHTER")
option(value="heroic_fighter", data-i18n="HEROIC_FIGHTER")
optgroup(data-i18n-label="SPECIFIC_HUMAN")
option(value="barbarian_hero", data-i18n="BARBARIAN_HERO")
option(value="barbarian_tribal", data-i18n="BARBARIAN_TRIBAL")
option(value="gang_boss", data-i18n="GANG_BOSS")
option(value="gang_member", data-i18n="GANG_MEMBER")
option(value="geneengineered_killer", data-i18n="GENEENGINEERED_KILLER")
option(value="legendary_fighter", data-i18n="LEGENDARY_FIGHTER")
option(value="military_elite", data-i18n="MILITARY_ELITE")
option(value="military_soldier", data-i18n="MILITARY_SOLDIER")
option(value="normal_human", data-i18n="NORMAL_HUMAN")
option(value="pirate_king", data-i18n="PIRATE_KING")
option(value="police_officer", data-i18n="POLICE_OFFICER")
option(value="serial_killer", data-i18n="SERIAL_KILLER")
option(value="skilled_professional", data-i18n="SKILLED_PROFESSIONAL")
option(value="warrior_tyrant", data-i18n="WARRIOR_TYRANT")
optgroup(data-i18n-label="ROBOT")
option(value="janitor_bot", data-i18n="JANITOR_BOT")
option(value="civilian_security_bot", data-i18n="CIVILIAN_SECURITY_BOT")
option(value="repair_bot", data-i18n="REPAIR_BOT")
option(value="industrial_work_bot", data-i18n="INDUSTRIAL_WORK_BOT")
option(value="companion_bot", data-i18n="COMPANION_BOT")
option(value="soldier_bot", data-i18n="SOLDIER_BOT")
option(value="heavy_warbot", data-i18n="HEAVY_WARBOT")
optgroup(data-i18n-label="BEAST")
option(value="small_vicious_beast", data-i18n="SMALL_VICIOUS_BEAST")
option(value="small_pack_hunter", data-i18n="SMALL_PACK_HUNTER")
option(value="large_pack_hunter", data-i18n="LARGE_PACK_HUNTER")
option(value="large_aggressive_prey_animal", data-i18n="LARGE_AGGRESSIVE_PREY_ANIMAL")
option(value="lesser_lone_predator", data-i18n="LESSER_LONE_PREDATOR")
option(value="greater_lone_predator", data-i18n="GREATER_LONE_PREDATOR")
option(value="terrifying_apex_predator", data-i18n="TERRIFYING_APEX_PREDATOR")
option(value="geneengineered_murder_beast", data-i18n="GENEENGINEERED_MURDER_BEAST")
+text-input("npc_move", "MOVE")
+text-input("npc_hd", "HD")(type="number", value="1").center
+text-input("npc_saves", "SAVES")(type="number", value="15").center
+text-input("npc_skills", "SKILLS")(type="number", value="0").center
+text-input("npc_morale", "MORALE")(type="number", value="0").center
+text-input("npc_attack_bonus", "ATTACK_BONUS")(type="number", value="0").center
//- HP and AC
.core-box-text.npc-hp
+text-input-duo("npc_hp", "npc_hp_max", "HIT_POINTS").cols-2.important
+text-input("npc_ac", "AC")(type="number", value="10").center
+fake-text-input("TYPE").center
select(name="attr_npc_armor_type")
option(value="", data-i18n="NONE")
option(value="PRIMITIVE", data-i18n="PRIMITIVE")
option(value="STREET", data-i18n="STREET")
option(value="COMBAT", data-i18n="COMBAT")
option(value="POWERED", data-i18n="POWERED")
//- Quick rolls
.core-box.rolls
.flex-between
h3(data-i18n="QUICK_ROLLS")
label.npc-checkbox
span(data-i18n="HIDDEN")
input(type="checkbox", name="attr_npc_rolls_hidden" value="/w GM")
.flex-between
.blue-button
button(type="roll", name="roll_NPC_HP", value!="@{npc_hp_hidden} &{template:swn-default} {{charname=@{npc_name}}} {{title=^{HIT_POINTS}}} {{ =[[@{npc_hd}d8]]}}")
span(name="attr_npc_hd")
div(data-i18n="ROLL_HP")
label.individual-hide
input(type="checkbox", name="attr_npc_hp_hidden", value="/w GM")
span(data-i18n="HIDE")
.blue-button
button(type="roll", name="roll_NPC_Initiative", value!="@{npc_initiative_hidden} &{template:swn-default} {{charname=@{npc_name}}} {{title=^{INITIATIVE_FIXED}}} {{ =[[1d8 &{tracker}]]}}") d8
div(data-i18n="INITIATIVE_FIXED")
label.individual-hide
input(type="checkbox", name="attr_npc_initiative_hidden", value="/w GM")
span(data-i18n="HIDE")
.blue-button
button(type="roll", name="roll_NPC_Save", value!="@{npc_save_hidden} &{template:swn-save} {{title=^{SAVING_THROW}}} {{charname=@{npc_name}}} {{save=[[@{npc_saves}]]}} {{dice=[[1d20]]}}")
| v#[span(name="attr_npc_saves")]
div(data-i18n="SAVE")
label.individual-hide
input(type="checkbox", name="attr_npc_save_hidden", value="/w GM")
span(data-i18n="HIDE")
.blue-button
button(type="roll", name="roll_NPC_Skill", value!="@{npc_skill_hidden} &{template:swn-skill} {{charname=@{npc_name}}} {{title=@{skill_name_query}}} {{dice=[[2d6 + @{proficient_query} @{modifier_query}]]}}")
input(type="hidden", name="attr_npc_skills", value="0").add-plus
span(name="attr_npc_skills")
div(data-i18n="SKILL")
label.individual-hide
input(type="checkbox", name="attr_npc_skill_hidden", value="/w GM")
span(data-i18n="HIDE")
.blue-button
button(type="roll", name="roll_NPC_Morale", value!="@{npc_morale_hidden} &{template:swn-save} {{charname=@{npc_name}}} {{title=^{MORALE}}} {{morale=[[@{npc_morale}]]}} {{dice=[[2d6 @{modifier_query}]]}}")
| v#[span(name="attr_npc_morale")]
div(data-i18n="MORALE")
label.individual-hide
input(type="checkbox", name="attr_npc_morale_hidden", value="/w GM")
span(data-i18n="HIDE")
.blue-button
button(type="roll", name="roll_NPC_Reaction", value!="@{npc_reaction_hidden} &{template:swn-default} {{title=^{REACTION}}} {{charname=@{npc_name}}} {{reaction=[[2d6 @{modifier_query}]]}}") 2d6
div(data-i18n="REACTION")
label.individual-hide
input(type="checkbox", name="attr_npc_reaction_hidden", value="/w GM")
span(data-i18n="HIDE")
//- Attacks
.section
+sectionheader("show_npc_attacks", "ATTACKS")
.npc-attacks
.npc-rep-header.flex
label.full-attacks.npc-checkbox
span(data-i18n="ROLL_FULL_ATTACK")
input(type="checkbox", name="attr_npc_roll_full_attack" value="1")
label.npc-checkbox
span(data-i18n="HIDDEN")
input(type="checkbox", name="attr_npc_attacks_hidden" value="/w GM")
fieldset.repeating_npc-attacks
input(type="hidden", name="attr_attack_extra_macro", value="")
button(type="roll", name="roll_Attack", value!="@{npc_attacks_hidden} &{template:swn-attack} {{charname=@{npc_name}}} {{title=@{attack_name}}} {{attack=[[1d20 + @{attack_ab} @{attack_burst} @{modifier_query}]]}} {{damage=[[@{attack_damage} @{attack_burst}]]}} {{burst=[[0@{attack_burst}]]}} {{range=@{attack_range}}} @{attack_shock} @{attack_extra_macro}").invisible-button.display
.display.flex-between.grey-box-bordered
span.name
span(name="attr_attack_name").space-after
input(type="hidden", name="attr_attack_ab", value="0").add-plus
span(name="attr_attack_ab").space-after
input(type="hidden", name="attr_attack_range", value="0").range
span.range #[span(data-i18n="RANGE")]: #[span(name="attr_attack_range")]
input(type="hidden", name="attr_attack_number", value="1").attacks
span.attacks (#[span(name="attr_attack_number")] #[span(data-i18n="ATTACKS")])
span.damage
span(data-i18n="DAMAGE").space-after
span(name="attr_attack_damage")
.edit.flex.grey-box-bordered
+text-input("attack_name", "NAME").name
+text-input("attack_range", "RANGE").range.center
+text-input("attack_ab", "ATTACK_BONUS_SHORT")(type="number", value="0").ab.center
+text-input("attack_damage", "DAMAGE")(value="0").damage.center
+fake-text-input("BURST").burst.center
select(name="attr_attack_burst")
option(value="", data-i18n="NO", selected)
option(value="@{burst_query}", data-i18n="ASK")
option(value="+ 2[Burst]", data-i18n="ALWAYS")
+text-input("attack_number", "NUM_ATTACKS")(type="number", value="1").attacks.center
.text-input.shock-damage.center
input(type="text", name="attr_attack_shock_damage", value="0")
label.label
input(type="checkbox", name="attr_attack_shock", value!="{{shock=[[@{attack_shock_damage}]] ^{SHOCK_DAMAGE_AGAINST_AC_LEQ} @{attack_shock_ac}!}}")
span(data-i18n="SHOCK")
+text-input("attack_shock_ac", "SHOCK_AC")(type="number", value="10").shock-ac.center
//- Abilities
.section.cols-2
+sectionheader("show_npc_abilities", "ABILITIES")
.npc-abilities
.npc-rep-header.flex
label.npc-checkbox
span(data-i18n="HIDDEN")
input(type="checkbox", name="attr_npc_abilities_hidden" value="/w GM")
fieldset.repeating_npc-abilities
button.display.invisible-button(type="roll", name="roll_Ability", value!="@{npc_abilities_hidden} &{template:swn-default} {{charname=@{npc_name}}} {{title=@{ability_name}}} {{desc=@{ability_description}}}")
.display.grey-box-bordered
span(name="attr_ability_name").name.space-after
span(name="attr_ability_description").description
.edit.flex.grey-box-bordered
+text-input("ability_name", "NAME").name
+fake-text-input("DESCRIPTION").description
textarea(name="attr_ability_description", data-i18n-placeholder="DESCRIPTION")
//- Notes
.section.cols-3
+sectionheader("show_npc_notes", "NOTES")
div
textarea(name="attr_npc_notes")