4908 lines
258 KiB
HTML
4908 lines
258 KiB
HTML
|
||
<div class="ms-wrapper compendium-drop-target monsters">
|
||
<input type="hidden" name="attr_sheet_toggle" value="pc"/>
|
||
<input type="hidden" name="attr_init" value="0"/>
|
||
<input type="hidden" name="attr_settings_toggle"/>
|
||
<input class="sheet-skill-toggle" type="hidden" name="attr_sheet_skill_toggles"/>
|
||
<input accept="Category" name="attr_drop_category" type="hidden"/>
|
||
<input accept="Name" name="attr_drop_name" type="hidden"/>
|
||
<input accept="data" name="attr_drop_data" type="hidden"/>
|
||
<input accept="Content" name="attr_drop_content" type="hidden"/>
|
||
<label class="ms-settings__toggle">
|
||
<input type="checkbox" name="attr_settings_toggle"/><span>y</span>
|
||
</label>
|
||
<div class="ms-settings">
|
||
<div class="ms-settings__row">
|
||
<div class="ms-settings__label" data-i18n="sheet type"></div>
|
||
<select class="ms-settings__input" name="attr_sheet_toggle">
|
||
<option data-i18n="PC" value="pc"></option>
|
||
<option data-i18n="NPC" value="npc"></option>
|
||
<option data-i18n="Ship" value="ship"></option>
|
||
</select>
|
||
</div>
|
||
<div class="ms-settings__row--pc">
|
||
<div class="ms-settings__label" data-i18n="charactermancer"></div>
|
||
<button data-i18n="launch" name="act_launch_charmancer" type="action"></button>
|
||
</div>
|
||
<div class="ms-settings__row--ship">
|
||
<div class="ms-settings__label" data-i18n="ship builder"></div>
|
||
<button data-i18n="launch" name="act_startship" type="action"></button>
|
||
</div>
|
||
</div>
|
||
<div class="ms-pc">
|
||
<div class="ms-header">
|
||
<div class="ms-header__logo"><img src="https://s3.amazonaws.com/files.d20.io/images/145353993/itv_F4exdWuwHavdksYfCQ/max.png?1592850121" data-i18n-title="Mothership Logo"/></div>
|
||
<div class="ms-header__details">
|
||
<div class="ms-header__field--character_name">
|
||
<div class="ms-header__title" data-i18n="name"></div>
|
||
<input class="ms-header__input ms-rounded" name="attr_character_name" type="text"/>
|
||
</div>
|
||
<div class="ms-header__field--level">
|
||
<div class="ms-header__title" data-i18n="level"></div>
|
||
<input class="ms-header__input ms-rounded" name="attr_level" type="number"/>
|
||
</div>
|
||
<div class="ms-header__field--rank_title">
|
||
<div class="ms-header__title" data-i18n="rank / title"></div>
|
||
<input class="ms-header__input ms-rounded" name="attr_rank_title" type="text"/>
|
||
</div>
|
||
<div class="ms-header__field--xp">
|
||
<div class="ms-header__title" data-i18n="XP"></div>
|
||
<input class="ms-header__input ms-rounded" name="attr_xp" type="text"/>
|
||
</div>
|
||
<div class="ms-header__field--class">
|
||
<div class="ms-header__title" data-i18n="class"></div>
|
||
<input class="ms-header__input ms-rounded" name="attr_class" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-skillsaves">
|
||
<div class="ms-stats">
|
||
<div class="ms-topstat">
|
||
<div class="ms-topstat__label" data-i18n="stress"></div>
|
||
<input class="ms-topstat__stat" placeholder="2" name="attr_stress" type="number"/>
|
||
<div class="ms-topstat__label--invert" data-i18n="starts at 2"></div>
|
||
</div>
|
||
<div class="ms-topstat">
|
||
<div class="ms-topstat__label" data-i18n="resolve"></div>
|
||
<input class="ms-topstat__stat" placeholder="0" name="attr_resolve" type="number"/>
|
||
<div class="ms-topstat__label--invert" data-i18n="starts at 0"></div>
|
||
</div>
|
||
<div class="ms-topstat--minmax">
|
||
<div class="ms-topstat__label" data-i18n="health"></div>
|
||
<div class="ms-topstat__minmaxwrapper">
|
||
<input class="ms-topstat__max" name="attr_health_max" placeholder="78" type="number"/>
|
||
<input class="ms-topstat__min" name="attr_health" placeholder="78" type="number"/>
|
||
</div>
|
||
<div class="ms-topstat__label--small" data-i18n="max"></div>
|
||
<div class="ms-topstat__label--small" data-i18n="current"></div>
|
||
</div>
|
||
<div class="ms-stats__main">
|
||
<div class="ms-mainstat">
|
||
<div class="ms-mainstat__label">
|
||
<button data-i18n="strength" type="roll" value="&{template:ms} {{name=strength}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[@{strength}+?{Modifier?|0}]]}}"></button><span class="ms-tooltip">
|
||
<p><span data-i18n="How able-bodied you are. Lifting, pushing, hitting things hard, etc."></span></p></span>
|
||
</div>
|
||
<input class="ms-mainstat__input" name="attr_strength" type="number"/>
|
||
</div>
|
||
<div class="ms-mainstat">
|
||
<div class="ms-mainstat__label">
|
||
<button data-i18n="speed" type="roll" value="&{template:ms} {{name=speed}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[@{speed}+?{Modifier?|0}]]}}"></button><span class="ms-tooltip">
|
||
<p><span data-i18n="How quickly you can act and react under pressure."></span></p></span>
|
||
</div>
|
||
<input class="ms-mainstat__input" name="attr_speed" type="number"/>
|
||
</div>
|
||
<div class="ms-mainstat">
|
||
<div class="ms-mainstat__label">
|
||
<button data-i18n="intellect" type="roll" value="&{template:ms} {{name=intellect}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[@{intellect}+?{Modifier?|0}]]}}"></button><span class="ms-tooltip">
|
||
<p><span data-i18n="How knowledgeable and experienced you are."></span></p></span>
|
||
</div>
|
||
<input class="ms-mainstat__input" name="attr_intellect" type="number"/>
|
||
</div>
|
||
<div class="ms-mainstat">
|
||
<div class="ms-mainstat__label">
|
||
<button data-i18n="combat" type="roll" value="&{template:ms} {{name=combat}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[@{combat}+?{Modifier?|0}]]}}"></button><span class="ms-tooltip">
|
||
<p><span data-i18n="How good you are at fighting."></span></p></span>
|
||
</div>
|
||
<input class="ms-mainstat__input" name="attr_combat" type="number"/>
|
||
</div>
|
||
</div>
|
||
<div class="ms-patches">
|
||
<h1 data-i18n="patch"></h1>
|
||
<textarea class="ms-patches__textarea ms-rounded" name="attr_patch"></textarea>
|
||
<h1 data-i18n="trinket"></h1>
|
||
<textarea class="ms-patches__textarea ms-rounded" name="attr_trinket"></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="ms-saves">
|
||
<div class="ms-saves__col--left">
|
||
<div class="ms-saves__label">
|
||
<button class="ms-saves__name" data-i18n="sanity" type="roll" value="&{template:ms} {{name=sanity}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[@{sanity}+?{Modifier?|0}]]}}"></button><span class="ms-tooltip">
|
||
<p><span data-i18n="Sanity is your ability to explain away logical inconsistencies in the universe, rationalize and make sense out of chaos, detect illusions and mimicry and think quickly under pressure."></span></p></span>
|
||
<div class="ms-saves__subtext" data-i18n="rationalization, logic"></div>
|
||
</div>
|
||
<div class="ms-saves__label">
|
||
<button class="ms-saves__name" data-i18n="fear" type="roll" value="&{template:ms} {{name=fear}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[@{fear}+?{Modifier?|0}]]}}"></button><span class="ms-tooltip">
|
||
<p><span data-i18n="Fear is how well you can cope with emotional trauma, and covers not only fear, but also loneliness, depression or any other emotional surge."></span></p></span>
|
||
<div class="ms-saves__subtext" data-i18n="surprise, loneliness"></div>
|
||
</div>
|
||
<div class="ms-saves__label">
|
||
<button class="ms-saves__name" data-i18n="body" type="roll" value="&{template:ms} {{name=body}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[@{body}+?{Modifier?|0}]]}}"></button><span class="ms-tooltip">
|
||
<p><span data-i18n="Body is your reflexes, and how well you can resist hunger, disease or any other organism that might attempt to invade your insides."></span></p></span>
|
||
<div class="ms-saves__subtext" data-i18n="hunger, disease, infection"></div>
|
||
</div>
|
||
<div class="ms-saves__label">
|
||
<button class="ms-saves__name" data-i18n="armor" type="roll" value="&{template:ms} {{name=armor}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[@{armor}+?{Modifier?|0}]]}}"></button><span class="ms-tooltip">
|
||
<p><span data-i18n="Armor is how resistant you ae to damage sustained during combat, whether that be through bullets, claws, teeth, etc."></span></p></span>
|
||
<div class="ms-saves__subtext" data-i18n="physical damage"></div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-saves__col--right">
|
||
<div class="ms-saves__inputwrapper">
|
||
<input class="ms-saves__input" name="attr_sanity" type="number"/>
|
||
</div>
|
||
<div class="ms-saves__inputwrapper">
|
||
<input class="ms-saves__input" name="attr_fear" type="number"/>
|
||
</div>
|
||
<div class="ms-saves__inputwrapper">
|
||
<input class="ms-saves__input" name="attr_body" type="number"/>
|
||
</div>
|
||
<div class="ms-saves__inputwrapper">
|
||
<input class="ms-saves__input" name="attr_armor" type="number"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-stress_panic">
|
||
<div class="ms-stress_panic__label" data-i18n="stress & panic"></div>
|
||
<input class="ms-stress_panic__input ms-rounded" name="attr_stress_panic" type="text"/>
|
||
</div>
|
||
</div>
|
||
<div class="ms-skills">
|
||
<h1 data-i18n="skills"></h1>
|
||
<div class="ms-skillpoints">
|
||
<div class="ms-skillpoints__label" data-i18n="skill points"></div>
|
||
<input class="ms-skillpoints__input ms-rounded" name="attr_skill_points" type="number"/>
|
||
<div class="ms-tooltip--skills">
|
||
<ul>
|
||
<li> <strong class="ms-tooltip__label" data-i18n="trained skills"></strong><span data-i18n="cost 1 point"></span></li>
|
||
<li> <strong class="ms-tooltip__label" data-i18n="expert skills"></strong><span data-i18n="cost 2 points"></span></li>
|
||
<li> <strong class="ms-tooltip__label" data-i18n="master skills"></strong><span data-i18n="cost 3 points"></span></li>
|
||
</ul><span data-i18n="To take an Expert or Master skill you must first take one of its prerequisite skills"></span>
|
||
</div>
|
||
</div>
|
||
<div class="ms-skills__trained">
|
||
<h2 data-i18n="trained +10%"></h2>
|
||
<div class="ms-tooltip">
|
||
<p data-i18n="You’ve received standard training in this area equivalent to a bachelor's degree or on-the-job training for a couple years."></p>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--linguistics">
|
||
<input name="attr_linguistics_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_linguistics" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="linguistics" type="roll" value="&{template:ms} {{name=linguistics}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_linguistics_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_linguistics_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Study of language"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--biology">
|
||
<input name="attr_biology_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_biology" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="biology" type="roll" value="&{template:ms} {{name=biology}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_biology_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_biology_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Study of life"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--first_aid">
|
||
<input name="attr_first_aid_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_first_aid" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="first aid" type="roll" value="&{template:ms} {{name=first aid}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_first_aid_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_first_aid_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Emergency medical care and treatment"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--hydroponics">
|
||
<input name="attr_hydroponics_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_hydroponics" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="hydroponics" type="roll" value="&{template:ms} {{name=hydroponics}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_hydroponics_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_hydroponics_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Growing plants in nutrient solutions without soil (farming in space)"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--geology">
|
||
<input name="attr_geology_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_geology" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="geology" type="roll" value="&{template:ms} {{name=geology}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_geology_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_geology_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="The solid features of any terrestrial planet or natural satellite"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--zero-g">
|
||
<input name="attr_zero-g_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_zero-g" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="zero-g" type="roll" value="&{template:ms} {{name=zero-g}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_zero-g_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_zero-g_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Working in a vaccuum, vaccsuits, etc."></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--scavenging">
|
||
<input name="attr_scavenging_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_scavenging" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="scavenging" type="roll" value="&{template:ms} {{name=scavenging}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_scavenging_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_scavenging_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Searching discarded wastes for useful items"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--heavy_machinery">
|
||
<input name="attr_heavy_machinery_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_heavy_machinery" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="heavy machinery" type="roll" value="&{template:ms} {{name=heavy machinery}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_heavy_machinery_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_heavy_machinery_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Operation and use of large pieces of equipment (cranes, exosuits, forkliftsm etc.)"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--computers">
|
||
<input name="attr_computers_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_computers" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="computers" type="roll" value="&{template:ms} {{name=computers}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_computers_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_computers_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Fluent use of computers and networks"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--mechanical_repair">
|
||
<input name="attr_mechanical_repair_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_mechanical_repair" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="mechanical repair" type="roll" value="&{template:ms} {{name=mechanical repair}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_mechanical_repair_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_mechanical_repair_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Fixing broken machines"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--driving">
|
||
<input name="attr_driving_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_driving" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="driving" type="roll" value="&{template:ms} {{name=driving}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_driving_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_driving_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Operation and control of motor vehicles"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--piloting">
|
||
<input name="attr_piloting_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_piloting" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="piloting" type="roll" value="&{template:ms} {{name=piloting}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_piloting_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_piloting_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Operation and control of air and spacecraft"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--mathematics">
|
||
<input name="attr_mathematics_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_mathematics" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="mathematics" type="roll" value="&{template:ms} {{name=mathematics}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_mathematics_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_mathematics_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="The science of numbers, quantity, and space"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--art">
|
||
<input name="attr_art_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_art" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="art" type="roll" value="&{template:ms} {{name=art}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_art_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_art_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="The expression or application of a species' creative ability and imagination"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--archaeology">
|
||
<input name="attr_archaeology_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_archaeology" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="archaeology" type="roll" value="&{template:ms} {{name=archaeology}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_archaeology_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_archaeology_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Ancient cultures and their artifacts"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--theology">
|
||
<input name="attr_theology_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_theology" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="theology" type="roll" value="&{template:ms} {{name=theology}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_theology_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_theology_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Study of religion"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--military_training">
|
||
<input name="attr_military_training_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_military_training" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="military training" type="roll" value="&{template:ms} {{name=military training}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_military_training_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_military_training_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Standard basic training given to all military personnel"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--rimwise">
|
||
<input name="attr_rimwise_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_rimwise" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="rimwise" type="roll" value="&{template:ms} {{name=rimwise}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_rimwise_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_rimwise_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Outer rim colonies and seedy parts of the galaxy"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--athletics">
|
||
<input name="attr_athletics_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_athletics" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="athletics" type="roll" value="&{template:ms} {{name=athletics}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_athletics_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_athletics_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Physical sports and games"></span></p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--chemistry">
|
||
<input name="attr_chemistry_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_chemistry" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="chemistry" type="roll" value="&{template:ms} {{name=chemistry}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_chemistry_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_chemistry_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="The identification of the substances of which matter is composed"></span></p></span>
|
||
</div>
|
||
<fieldset class="repeating_trained">
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill--repeating">
|
||
<input name="attr_skill_settings" type="hidden" value="on"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_skill_trained" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button class="edit-hide" type="roll" value="&{template:ms} {{name=@{skill_name}}}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+10+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_skill_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="name"></div>
|
||
<input class="ms-skill__settingsinput" data-i18n-title="custom skill" name="attr_skill_name" type="text"/>
|
||
</div>
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_skill_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip"><span name="attr_skill_notes"></span></span>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
<div class="ms-skills__expert">
|
||
<h2 data-i18n="expert +15%"></h2>
|
||
<div class="ms-tooltip">
|
||
<p data-i18n="You have the equivalent of a doctorate or many years of experience."></p>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--psychology">
|
||
<input name="attr_psychology_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_psychology" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="psychology" type="roll" value="&{template:ms} {{name=psychology}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_psychology_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_psychology_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="The study of behavior and the human mind"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="biology"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--genetics">
|
||
<input name="attr_genetics_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_genetics" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="genetics" type="roll" value="&{template:ms} {{name=genetics}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_genetics_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_genetics_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Heredity and the variation of the inherited characteristics"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="biology"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--pathology">
|
||
<input name="attr_pathology_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_pathology" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="pathology" type="roll" value="&{template:ms} {{name=pathology}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_pathology_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_pathology_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Study of the cause and effect of disease"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="first aid"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--botany">
|
||
<input name="attr_botany_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_botany" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="botany" type="roll" value="&{template:ms} {{name=botany}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_botany_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_botany_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="The study of plant life"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="hydroponics"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--planetology">
|
||
<input name="attr_planetology_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_planetology" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="planetology" type="roll" value="&{template:ms} {{name=planetology}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_planetology_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_planetology_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Study of planets and other celestial body"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="geology"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--asteroid_mining">
|
||
<input name="attr_asteroid_mining_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_asteroid_mining" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="asteroid mining" type="roll" value="&{template:ms} {{name=asteroid mining}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_asteroid_mining_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_asteroid_mining_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Training in the tools and procedures used in mining asteroids"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="geology, zero-g, heavy machinery, scavenging"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--jury_rigging">
|
||
<input name="attr_jury_rigging_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_jury_rigging" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="jury rigging" type="roll" value="&{template:ms} {{name=jury rigging}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_jury_rigging_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_jury_rigging_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Makeshift repairs"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="scavenging, mechanical repair"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--engineering">
|
||
<input name="attr_engineering_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_engineering" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="engineering" type="roll" value="&{template:ms} {{name=engineering}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_engineering_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_engineering_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Design, building, and use of engines, machines, and structures"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="heavy machinery, computers, mechanical repair"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--hacking">
|
||
<input name="attr_hacking_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_hacking" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="hacking" type="roll" value="&{template:ms} {{name=hacking}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_hacking_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_hacking_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Unauthorized access to computer systems"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="computers"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--vehicle_specialization">
|
||
<input name="attr_vehicle_specialization_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_vehicle_specialization" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="vehicle specialization" type="roll" value="&{template:ms} {{name=vehicle specialization}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_vehicle_specialization_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_vehicle_specialization_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Specific vehicle class"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="mechanical repair, piloting, driving"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--astrogation">
|
||
<input name="attr_astrogation_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_astrogation" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="astrogation" type="roll" value="&{template:ms} {{name=astrogation}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_astrogation_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_astrogation_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Navigation in outer space"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="piloting"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--physics">
|
||
<input name="attr_physics_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_physics" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="physics" type="roll" value="&{template:ms} {{name=physics}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_physics_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_physics_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Study of nature and properties of matter and energy"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="mathematics"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--mysticism">
|
||
<input name="attr_mysticism_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_mysticism" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="mysticism" type="roll" value="&{template:ms} {{name=mysticism}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_mysticism_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_mysticism_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Spiritual apprehension of hidden knowledge"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="art, archaeology, theology"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--tactics">
|
||
<input name="attr_tactics_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_tactics" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="tactics" type="roll" value="&{template:ms} {{name=tactics}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_tactics_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_tactics_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Manuevering military forces in battle"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="military training"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--gunnery">
|
||
<input name="attr_gunnery_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_gunnery" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="gunnery" type="roll" value="&{template:ms} {{name=gunnery}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_gunnery_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_gunnery_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Starship weaponry"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="military training"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--firearms">
|
||
<input name="attr_firearms_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_firearms" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="firearms" type="roll" value="&{template:ms} {{name=firearms}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_firearms_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_firearms_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Guns and their use"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="military training, rimwise"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--close-quarters_combat">
|
||
<input name="attr_close-quarters_combat_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_close-quarters_combat" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="close-quarters combat" type="roll" value="&{template:ms} {{name=close-quarters combat}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_close-quarters_combat_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_close-quarters_combat_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Hand-tohand, melee fighting"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="athletics, military training, rimwise"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--explosives">
|
||
<input name="attr_explosives_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_explosives" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="explosives" type="roll" value="&{template:ms} {{name=explosives}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+15+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_explosives_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_explosives_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Bombs and incendiary devices"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="military training, chemistry"></div>
|
||
</p></span>
|
||
</div>
|
||
<fieldset class="repeating_expert">
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill--repeating">
|
||
<input name="attr_skill_settings" type="hidden" value="on"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_skill_trained" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button class="edit-hide" type="roll" value="&{template:ms} {{name=@{skill_name}}}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_skill_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="name"></div>
|
||
<input class="ms-skill__settingsinput" data-i18n-value="custom skill" name="attr_skill_name" type="text"/>
|
||
</div>
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_skill_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip"><span name="attr_skill_notes"></span></span>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
<div class="ms-skills__master">
|
||
<h2 data-i18n="master +20%"></h2>
|
||
<div class="ms-tooltip">
|
||
<p data-i18n="You are one of the luminaries of this field and are aware of cutting edge techniques or highly specialized and niche information."></p>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--sophontology">
|
||
<input name="attr_sophontology_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_sophontology" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="sophontology" type="roll" value="&{template:ms} {{name=sophontology}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_sophontology_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_sophontology_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Alien psychology"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="linguistics, psychology"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--xenobiology">
|
||
<input name="attr_xenobiology_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_xenobiology" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="xenobiology" type="roll" value="&{template:ms} {{name=xenobiology}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_xenobiology_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_xenobiology_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Alien biology"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="genetics, botany, pathology"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--surgery">
|
||
<input name="attr_surgery_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_surgery" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="surgery" type="roll" value="&{template:ms} {{name=surgery}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_surgery_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_surgery_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Medical speciality involving manual operation"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="pathology"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--cybernetics">
|
||
<input name="attr_cybernetics_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_cybernetics" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="cybernetics" type="roll" value="&{template:ms} {{name=cybernetics}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_cybernetics_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_cybernetics_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Interface between man and machine"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="jury rigging, engineering"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--robotics">
|
||
<input name="attr_robotics_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_robotics" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="robotics" type="roll" value="&{template:ms} {{name=robotics}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_robotics_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_robotics_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Design and operation of robots, drones, and androids"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="engineering"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--artificial_intelligence">
|
||
<input name="attr_artificial_intelligence_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_artificial_intelligence" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="artificial intelligence" type="roll" value="&{template:ms} {{name=artificial intelligence}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_artificial_intelligence_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_artificial_intelligence_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Knowledge of simulacrum of human consciousness"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="engineering, hacking"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--command">
|
||
<input name="attr_command_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_command" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="command" type="roll" value="&{template:ms} {{name=command}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_command_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_command_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Leadership and authority"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="vehicle specialization, tactics"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--hyperspace">
|
||
<input name="attr_hyperspace_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_hyperspace" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="hyperspace" type="roll" value="&{template:ms} {{name=hyperspace}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_hyperspace_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_hyperspace_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="FTL travel"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="astrogation, mysticism, physics"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--xenoesotericism">
|
||
<input name="attr_xenoesotericism_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_xenoesotericism" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="xenoesotericism" type="roll" value="&{template:ms} {{name=xenoesotericism}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_xenoesotericism_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_xenoesotericism_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Obscure alien mysticism, religion, and belief"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="mysticism"></div>
|
||
</p></span>
|
||
</div>
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill ms-skill--weapon_specialization">
|
||
<input name="attr_weapon_specialization_settings" type="hidden"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_weapon_specialization" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button data-i18n="weapon specialization" type="roll" value="&{template:ms} {{name=weapon specialization}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20+?{Modifier?|0}]]}}"></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_weapon_specialization_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_weapon_specialization_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip">
|
||
<p><span data-i18n="Proficiency with a specific weapon"></span></p>
|
||
<p><strong class="ms-tooltip__label" data-i18n="prerequisites"></strong>
|
||
<div data-i18n="gunnery, firearms, close-quarters combat, explosives"></div>
|
||
</p></span>
|
||
</div>
|
||
<fieldset class="repeating_master">
|
||
<div class="ms-skill-wrapper">
|
||
<div class="ms-skill--repeating">
|
||
<input name="attr_skill_settings" type="hidden" value="on"/>
|
||
<label class="ms-skill__checkmark">
|
||
<input name="attr_skill_trained" type="checkbox"/><span></span>
|
||
</label>
|
||
<div class="ms-skill__button">
|
||
<button class="edit-hide" type="roll" value="&{template:ms} {{name=@{skill_name}}}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[?{Attribute|Strength,@{strength}|Speed,@{speed}|Intellect,@{intellect}|Combat,@{combat}}+20+?{Modifier?|0}]]}}"><span name="attr_skill_name"></span></button>
|
||
</div>
|
||
<label class="ms-skill__cog">
|
||
<input name="attr_skill_settings" type="checkbox"/><span>y</span>
|
||
</label>
|
||
<div class="ms-skill__settings">
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="name"></div>
|
||
<input class="ms-skill__settingsinput" data-i18n-value="custom skill" name="attr_skill_name" type="text"/>
|
||
</div>
|
||
<div class="ms-skill__settingsrow">
|
||
<div class="ms-skill__settingstitle" data-i18n="notes"></div>
|
||
<input class="ms-skill__settingsinput" name="attr_skill_notes" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div><span class="ms-tooltip"><span name="attr_skill_notes"></span></span>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
<div class="ms-gear">
|
||
<div class="ms-equipment">
|
||
<h1 data-i18n="equipment"></h1>
|
||
<div class="ms-equipmentrow--head">
|
||
<div class="ms-equipmentrow__name--head" data-i18n="item"></div>
|
||
<div class="ms-equipmentrow__type--head" data-i18n="type"></div>
|
||
</div>
|
||
<fieldset class="repeating_equipment">
|
||
<div class="ms-equipmentrow">
|
||
<input name="attr_equipment_settings" type="hidden" value="on"/>
|
||
<input name="attr_equipment_linkedid" type="hidden"/>
|
||
<input class="ms-equipmentrow__name" name="attr_equipment_name" type="text"/>
|
||
<input class="ms-equipmentrow__type" name="attr_equipment_type" type="hidden"/>
|
||
<select class="ms-equipmentrow__type" name="attr_equipment_type">
|
||
<option data-i18n="Gear"></option>
|
||
<option data-i18n="Weapon"></option>
|
||
<option data-i18n="Ammunition"></option>
|
||
<option data-i18n="Armor"></option>
|
||
<option data-i18n="Patch"></option>
|
||
<option data-i18n="Trinket"></option>
|
||
<option data-i18n="Other"></option>
|
||
</select>
|
||
<label class="ms-equipmentrow__cog">
|
||
<input name="attr_equipment_settings" type="checkbox" checked="checked"/><span>y</span>
|
||
</label>
|
||
<div class="ms-equipmentrow__settings">
|
||
<div class="ms-equipmentrow__settingsrow--full show_armor">
|
||
<div class="ms-equipmentrow__settingstitle" data-i18n="armor bonus"></div>
|
||
<input class="ms-equipmentrow__settingsinput" name="attr_equipment_armor_bonus" type="text"/>
|
||
</div>
|
||
<div class="ms-equipmentrow__settingsrow--full">
|
||
<div class="ms-equipmentrow__settingstitle" data-i18n="notes"></div>
|
||
<textarea class="ms-equipmentrow__textarea" name="attr_equipment_notes"></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
<div class="ms-credits">
|
||
<div class="ms-credits__label" data-i18n="credits"></div>
|
||
<input class="ms-credits__input ms-rounded" name="attr_credits" type="text"/>
|
||
</div>
|
||
</div>
|
||
<div class="ms-attacks">
|
||
<h1 data-i18n="attacks"></h1>
|
||
<div class="ms-attackrow--head">
|
||
<div class="ms-attackrow__name--head" data-i18n="attack"></div>
|
||
<div class="ms-attackrow__type--head" data-i18n="type"></div>
|
||
<div class="ms-attackrow__type--head" data-i18n="damage"></div>
|
||
</div>
|
||
<fieldset class="repeating_attacks">
|
||
<div class="ms-attackrow">
|
||
<input name="attr_attack_settings" type="hidden" value="on"/>
|
||
<input name="attr_attack_linkedid" type="hidden"/>
|
||
<button class="ms-attackrow__name" type="roll" value="&{template:ms} {{name=@{attack_name}}} {{character_name=@{character_name}}} {{roll=[[1d100-1cs1cf99]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100-1cs1cf99}]]}} {{target=[[@{combat}]]}} {{ranges=@{attack_range_s}}} {{rangem=@{attack_range_m}}} {{rangel=@{attack_range_l}}} {{damage=[[@{attack_damage}]]}}"><span name="attr_attack_name" type="text"></span></button>
|
||
<input class="ms-attackrow__skill" name="attr_attack_type" type="hidden"/>
|
||
<select class="ms-attackrow__skill" name="attr_attack_type">
|
||
<option data-i18n="Ranged"></option>
|
||
<option data-i18n="Melee"></option>
|
||
</select>
|
||
<input class="ms-attackrow__damage" name="attr_attack_damage" type="text"/>
|
||
<label class="ms-attackrow__cog">
|
||
<input name="attr_attack_settings" type="checkbox" checked="checked"/><span>y</span>
|
||
</label>
|
||
<div class="ms-attackrow__settings">
|
||
<div class="ms-attackrow__settingsrow--full">
|
||
<div class="ms-attackrow__settingstitle" data-i18n="name"></div>
|
||
<input class="ms-attackrow__settingsinput" data-i18n-value="custom skill" name="attr_attack_name" type="text"/>
|
||
</div>
|
||
<div class="ms-attackrow__settingsrow--range show_ranged">
|
||
<div class="ms-attackrow__settingstitle" data-i18n="range"></div>
|
||
<input class="ms-attackrow__settingsinput" data-i18n-placeholder="short" name="attr_attack_range_s" type="text"/>
|
||
<input class="ms-attackrow__settingsinput" data-i18n-placeholder="medium" name="attr_attack_range_m" type="text"/>
|
||
<input class="ms-attackrow__settingsinput" data-i18n-placeholder="long" name="attr_attack_range_l" type="text"/>
|
||
</div>
|
||
<div class="ms-attackrow__settingsrow">
|
||
<div>
|
||
<div class="ms-attackrow__settingstitle" data-i18n="critical damage"></div>
|
||
<input class="ms-attackrow__settingsinput" data-i18n-placeholder="damage" name="attr_attack_crit_damage" type="text"/>
|
||
</div>
|
||
<div>
|
||
<div class="ms-attackrow__settingstitle" data-i18n="critical effect"></div>
|
||
<input class="ms-attackrow__settingsinput" data-i18n-placeholder="effect" name="attr_attack_crit_effect" type="text"/>
|
||
</div>
|
||
</div>
|
||
<div class="ms-attackrow__settingsrow">
|
||
<div>
|
||
<div class="ms-attackrow__settingstitle" data-i18n="shots"></div>
|
||
<input class="ms-attackrow__settingsinput" data-i18n-placeholder="shots" name="attr_attack_shots" type="text"/>
|
||
</div>
|
||
<div>
|
||
<div class="ms-attackrow__settingstitle" data-i18n="ammunition"></div>
|
||
<input class="ms-attackrow__settingsinput" data-i18n-placeholder="damage" name="attr_attack_ammunition" type="text"/>
|
||
</div>
|
||
</div>
|
||
<div class="ms-attackrow__settingsrow--full">
|
||
<div class="ms-attackrow__settingstitle" data-i18n="notes"></div>
|
||
<textarea class="ms-sattackrow__textarea" name="attr_attack_notes"></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-ship">
|
||
<input name="attr_shipbuild" type="hidden" value="on"/>
|
||
<div class="ms-shipbuilder">
|
||
<div class="ms-shipbuilder__hwrap">
|
||
<h2><span data-i18n="select"></span><span class="ms-invert" data-i18n="primary modules"></span></h2>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--life_support">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="life support"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="Life support keeps the human crew alive. Each point of life support can support up to 10 humans. For every point below the required minimum, anyone not wearing a vaccsuit must make a <strong>Body Save</strong> every hour or take 1d10 damage. This includes those in cryochambers as well, but does not include androids. Many ships include 2-3 times the required amount of life support in case of extra passengers or damage to the system."></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item">
|
||
<input class="ms-shipbuilder__input" name="attr_ship_passengers" type="number"/>
|
||
<div class="ms-shipbuilder__label" data-i18n="human passengers"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__modifier">/10</div>
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_ship_lifesupport_modules"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="life support"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__equals">= </div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_life_support_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--command">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="command"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="The command module is the cockpit, command center, or bridge of a ship. For every 4 officer positions, one command module is required. Officers can be captains, first mates, navigation officers, communications officers, and is largely up to the Warden and the players to decide."></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item">
|
||
<input class="ms-shipbuilder__input" name="attr_ship_officers" type="number"/>
|
||
<div class="ms-shipbuilder__label" data-i18n="officers"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__modifier">/4</div>
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_ship_command_modules"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="command modules"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__equals">= </div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_command_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--armor">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="armor"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="Armor plating protects the ship fromsmall metoerites, space dust and debris, as well as, if need be, attacks from other vessels. Every point of armor costs 3 hull, and grants the ship +10% Armor Save (Max 80)."></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item">
|
||
<input class="ms-shipbuilder__input" name="attr_ship_armor_modules" type="number"/>
|
||
<div class="ms-shipbuilder__label" data-i18n="armor"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__modifier">x10</div>
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_armor"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="armor save"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_armor_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__hwrap">
|
||
<h2><span data-i18n="select"></span><span class="ms-invert" data-i18n="secondary modules"></span></h2>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--jump_drives">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="jump drives"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="Jump drives enable the ship to travel through hyperspace. Every point of Jump Drive increasesthe ship’s jump capability by 1 (Max 9). The first drive costs 1 hull, the second costs 2, the third costs 3, etc."></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item">
|
||
<input class="ms-shipbuilder__input" name="attr_ship_jumpdrive_modules" type="number"/>
|
||
<div class="ms-shipbuilder__label" data-i18n="jump drives"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__modifier">...</div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_jump_drives_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--computer">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="computer"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="The ship’s computer is a powerful artificial intelligence that helps with astrogation, combat, and anumber of other autonomous tasks. A ship’s Intellect is equal to the number of computer modules x10 +30%. It’s Combat is equal to the number of computer modules x10 +10%. A computer module is required for each jumpdrive. Additionally, each computer module equipped allows the computer to take more actions during combat."></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item">
|
||
<input class="ms-shipbuilder__input" name="attr_ship_computer_modules" type="number"/>
|
||
<div class="ms-shipbuilder__label" data-i18n="computer modules"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__equals">= </div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_computer_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--galley">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="galley"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="Galleys contain a kitchen, restrooms, and a common area on a ship. Any ships making trips longer than 1 day must have 1 galley for every 2 life support modules or else the crew must take <strong>Body Saves</strong> once/day. Failure means 2d10 damage and 1d10 Stress. Galleys must be re-stocked once a month and extra stores take up 1 Cargo."></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item">
|
||
<input class="ms-shipbuilder__input" name="attr_ship_galleys" type="number"/>
|
||
<div class="ms-shipbuilder__label" data-i18n="galleys"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__equals">= </div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_galley_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--weapon_mount">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="weapon mount"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="For every weapon your ship has you must have 1 mount for it. You can find the list of ship weapons in <em>The Player's Survival Guide</em>"></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item">
|
||
<input class="ms-shipbuilder__input" name="attr_ship_weapons" type="number"/>
|
||
<div class="ms-shipbuilder__label" data-i18n="weapons"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__arrow">] </div>
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_ship_weapon_mounts"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="weapon mounts"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__equals">= </div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_weapon_mount_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--medical_bay">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="medical bay"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="Medical bays allow scientists, doctors, and other researchers to heal crew members and perform various procedures (biopsies, autopsies, surgery). Each connected medbay on the ship grants +5% to the Intellect of the Scientists or Androids using them. Medical bays also grant advantage on <strong>Body Saves</strong> made for healing."></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item">
|
||
<input class="ms-shipbuilder__input" name="attr_ship_medbays" type="number"/>
|
||
<div class="ms-shipbuilder__label" data-i18n="medbays"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__modifier">x5</div>
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_ship_medint_bonus"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="medical intellect bonus"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_medical_bay_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--cryochamber">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="cryochamber"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="Cryochambers allow humans to sleep during long trips, particularly through hyperspace. Androids do not require them. Each point of hull spent on cryochambers accomodates up to 4 cryosleep pods. Individuals who don’t go into cryosleep during hyperspace jumps often have strange and terrifying experiences."></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item">
|
||
<input class="ms-shipbuilder__input" name="attr_ship_cryopods" type="number"/>
|
||
<div class="ms-shipbuilder__label" data-i18n="cryo-sleep pods"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__modifier">/4</div>
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_ship_cryochambers"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="cryo-chambers"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__equals">= </div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_cryochamber_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--living_quarters">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="living quarters"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="Generally, if a ship is to travel through normal space for at least a week, then living quarters or “staterooms” are provided for each of the ship’s officers, or other important crew members."></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_ship_officers"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="officers"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__arrow">] </div>
|
||
<div class="ms-shipbuilder__item">
|
||
<input class="ms-shipbuilder__input" name="attr_ship_livingquarters" type="number"/>
|
||
<div class="ms-shipbuilder__label" data-i18n="living quarters"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__equals">= </div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_living_quarters_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--barracks">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="barracks"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="The same as living quarters, except they are non-private and house up to twelve crew members. Like living quarters, they are not-essential rooms, but ships that need them, but don’t have them, give their crew +1 Stress per journey or month of travel."></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item">
|
||
<input class="ms-shipbuilder__input" name="attr_ship_crew" type="number"/>
|
||
<div class="ms-shipbuilder__label" data-i18n="crew"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__modifier">/12</div>
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_ship_barracks"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="barracks"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__equals">= </div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_barracks_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--cargo_hold">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="cargo hold"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="Cargo holds are essentially 20x20m rooms used for storage. Each cargo hold can hold up to 10 cargo units (each cargo is roughly the size of a large pallet). Cargo holds can also be used for any other basic room not provided for on this list (brigs, secret compartments, mining equipment, training facilities, hangars, armories, etc.)."></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item">
|
||
<input class="ms-shipbuilder__input" name="attr_ship_cargo" type="number"/>
|
||
<div class="ms-shipbuilder__label" data-i18n="cargo"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__modifier">/10</div>
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_ship_cargoholds"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="cargo holds"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__equals">= </div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_cargo_hold_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--science_lab">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="science lab"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="Similar to the medical bay, the science lab allows for detailed research. Each connected sciencelab grants +5% Intellect to Scientists and Androids using them to conduct research or experiments. Additionally, they can be designated as repair shops and used by Teamsters to repair electronics, machines, or even Androids."></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item">
|
||
<input class="ms-shipbuilder__input" name="attr_ship_sciencelabs" type="number"/>
|
||
<div class="ms-shipbuilder__label" data-i18n="science labs"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__modifier">x5</div>
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_ship_resint_bonus"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="research intellect bonus"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_science_lab_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__hwrap">
|
||
<h2><span data-i18n="calculate"></span><span class="ms-invert" data-i18n="total hull"></span></h2>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--thrusters">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="thrusters"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="Without thrusters, the ship cannot move. Every thruster module equipped increases the speed ofthe ship by +10% (to a maximum of 80). Additionally, thrusters cost an extra 1 hull for every 10 base hull."></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_ship_thruster_hullreq"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull req."></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__modifier">+</div>
|
||
<div class="ms-shipbuilder__item">
|
||
<input class="ms-shipbuilder__input" name="attr_ship_thrusters" type="number"/>
|
||
<div class="ms-shipbuilder__label" data-i18n="thrusters"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__equals">= </div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_thrusters_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--engine">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="engine"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="Without the engine, the entire ship ceases to operate and becomes a ruin. You must have 1 engine module for every jump drive, plus 1 for every 4 thrusters, plus 1 for every 20 points of base hull."></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_ship_engine_hullreq"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull req."></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__modifier">+</div>
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_ship_engine_thrusterreq"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="thruster req."></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__modifier">+</div>
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_ship_jumpdrive_modules"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="jump drives"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__modifier">=</div>
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_ship_engine"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="engine"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__equals">= </div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_engine_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--fuel">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="fuel"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="The engine needs fuel to run on. Every jump requires double the fuel of the jump (Jump 2 = 4 fuel) and thrusters burn 1 unit of fuel per day. The engine requires at least 3 fuel for every point of engine plus any extra fuel capacity you want to add. More fuel can be stored in Cargo Holds at 1 Fuel per 10 Cargo."></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_ship_fuel_min"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="min. fuel"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__modifier">+</div>
|
||
<div class="ms-shipbuilder__item">
|
||
<input class="ms-shipbuilder__input" name="attr_ship_fuel_extra" type="number"/>
|
||
<div class="ms-shipbuilder__label" data-i18n="extra fuel"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__equals">= </div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_fuel_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__block ms-shipbuilder__block--frame">
|
||
<div class="ms-shipbuilder__title">
|
||
<h3 data-i18n="frame"></h3>
|
||
</div>
|
||
<div class="ms-shipbuilder__desc">
|
||
<p data-i18n="Frame covers the miscellaneous parts of a ship, docking gear, airlocks, ventillation, corridors, comms relays, everything else a ship generally uses. Frame is 1 point per 10 points of base hull."></p>
|
||
</div>
|
||
<div class="ms-shipbuilder__flex">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_ship_frame"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="frame"></div>
|
||
</div>
|
||
<div class="ms-shipbuilder__equals">= </div>
|
||
<div class="ms-shipbuilder__hull">
|
||
<div class="ms-shipbuilder__item"><span class="ms-shipbuilder__display" name="attr_frame_hull"></span>
|
||
<div class="ms-shipbuilder__label" data-i18n="hull"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipbuilder__complete">
|
||
<button data-i18n="complete ship" type="action" name="act_completeship"></button>
|
||
</div>
|
||
<div class="ms-shipbuilder__panel">
|
||
<div class="shipbuilder__panelitem">
|
||
<div class="ms-shipbuilder__largelabel" data-i18n="base hull"></div><span class="ms-shipbuilder__largedisplay" name="attr_ship_base_hull"></span>
|
||
</div>
|
||
<div class="shipbuilder__panelitem">
|
||
<div class="ms-shipbuilder__largelabel" data-i18n="total hull"></div><span class="ms-shipbuilder__largedisplay" name="attr_ship_total_hull"></span>
|
||
</div>
|
||
<div class="shipbuilder__panelitem">
|
||
<div class="ms-shipbuilder__largelabel" data-i18n="armor"></div><span class="ms-shipbuilder__largedisplay" name="attr_armor"></span>
|
||
</div>
|
||
<div class="shipbuilder__panelitem">
|
||
<div class="ms-shipbuilder__largelabel" data-i18n="combat"></div><span class="ms-shipbuilder__largedisplay" name="attr_combat"></span>
|
||
</div>
|
||
<div class="shipbuilder__panelitem">
|
||
<div class="ms-shipbuilder__largelabel" data-i18n="intellect"></div><span class="ms-shipbuilder__largedisplay" name="attr_intellect"></span>
|
||
</div>
|
||
<div class="shipbuilder__panelitem">
|
||
<div class="ms-shipbuilder__largelabel" data-i18n="speed"></div><span class="ms-shipbuilder__largedisplay" name="attr_speed"></span>
|
||
</div>
|
||
<div class="shipbuilder__panelitem">
|
||
<div class="ms-shipbuilder__largelabel" data-i18n="cost"></div><span class="ms-shipbuilder__wrapdisplay"><span class="ms-shipbuilder__largedisplay" name="attr_ship_cost"></span><span data-i18n="mil"></span></span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipwrapper">
|
||
<div class="ms-header">
|
||
<div class="ms-header__logo"><img src="https://s3.amazonaws.com/files.d20.io/images/145353993/itv_F4exdWuwHavdksYfCQ/max.png?1592850121" data-i18n-title="Mothership Logo"/></div>
|
||
<div class="ms-header__details">
|
||
<div class="ms-header__field--character_name">
|
||
<div class="ms-header__title" data-i18n="ship name"></div>
|
||
<input class="ms-header__input ms-rounded" name="attr_character_name" type="text"/>
|
||
</div>
|
||
<div class="ms-header__field--type">
|
||
<div class="ms-header__title" data-i18n="type"></div>
|
||
<input class="ms-header__input ms-rounded" name="attr_type" type="text"/>
|
||
</div>
|
||
<div class="ms-header__field--ship_class">
|
||
<div class="ms-header__title" data-i18n="class"></div>
|
||
<input class="ms-header__input ms-rounded" name="attr_ship_class" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipstats">
|
||
<div class="ms-mainstat">
|
||
<div class="ms-mainstat__label">
|
||
<button data-i18n="armor" type="roll" value="&{template:ms} {{name=armor}} {{character_name=@{character_name}}} {{roll=[[1d100cs1cf100]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}} {{target=@{armor}}}"></button><span class="ms-tooltip">
|
||
<p><span data-i18n="The value the ship must roll under to avoid taking Damage. Generally the captain or acting captain of the ship rolls the Armor Save."></span></p></span>
|
||
</div>
|
||
<input class="ms-mainstat__input" name="attr_armor" type="number"/>
|
||
</div>
|
||
<div class="ms-mainstat">
|
||
<div class="ms-mainstat__label">
|
||
<button data-i18n="combat" type="roll" value="&{template:ms} {{name=combat}} {{character_name=@{character_name}}} {{roll=[[1d100cs1cf100]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}} {{target=@{combat}}}"></button><span class="ms-tooltip">
|
||
<p><span data-i18n="Used during Combat Checks. You can use whichever is higher: your own Combat Stat or the ship's."></span></p></span>
|
||
</div>
|
||
<input class="ms-mainstat__input" name="attr_combat" type="number"/>
|
||
</div>
|
||
<div class="ms-mainstat">
|
||
<div class="ms-mainstat__label">
|
||
<button data-i18n="intellect" type="roll" value="&{template:ms} {{name=intellect}} {{character_name=@{character_name}}} {{roll=[[1d100cs1cf100]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}} {{target=@{intellect}}}"></button><span class="ms-tooltip">
|
||
<p><span data-i18n="Used as both a stat and a Sanity Save, should the need arise."></span></p></span>
|
||
</div>
|
||
<input class="ms-mainstat__input" name="attr_intellect" type="number"/>
|
||
</div>
|
||
<div class="ms-mainstat">
|
||
<div class="ms-mainstat__label">
|
||
<button data-i18n="speed" type="roll" value="&{template:ms} {{name=speed}} {{character_name=@{character_name}}} {{roll=[[1d100cs1cf100]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}} {{target=@{speed}}}"></button><span class="ms-tooltip">
|
||
<p><span data-i18n="Often used to see if the ship can dodge asteroids or escape explosions from collapsing stars."></span></p></span>
|
||
</div>
|
||
<input class="ms-mainstat__input" name="attr_speed" type="number"/>
|
||
</div>
|
||
<div class="ms-topstat--minmax">
|
||
<div class="ms-topstat__label" data-i18n="hull"></div>
|
||
<div class="ms-topstat__minmaxwrapper">
|
||
<input class="ms-topstat__max" name="attr_hull_max" placeholder="78" type="number"/>
|
||
<input class="ms-topstat__min" name="attr_hull" placeholder="78" type="number"/>
|
||
</div>
|
||
<div class="ms-topstat__label--small" data-i18n="max"></div>
|
||
<div class="ms-topstat__label--small" data-i18n="current"></div>
|
||
</div>
|
||
<div class="ms-hullvalues">
|
||
<input name="attr_hull_toggle" type="hidden"/>
|
||
<div class="ms-topstat ms-topstat--25">
|
||
<input class="ms-topstat__stat" placeholder="58" name="attr_hull_25" type="number"/>
|
||
<div class="ms-topstat__label--invert">25%</div>
|
||
</div>
|
||
<div class="ms-topstat ms-topstat--50">
|
||
<input class="ms-topstat__stat" placeholder="39" name="attr_hull_50" type="number"/>
|
||
<div class="ms-topstat__label--invert">50%</div>
|
||
</div>
|
||
<div class="ms-topstat ms-topstat--75">
|
||
<input class="ms-topstat__stat" placeholder="19" name="attr_hull_75" type="number"/>
|
||
<div class="ms-topstat__label--invert">75%</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-topstat--minmax">
|
||
<div class="ms-topstat__label" data-i18n="fuel"></div>
|
||
<div class="ms-topstat__minmaxwrapper">
|
||
<input class="ms-topstat__max" name="attr_fuel_max" placeholder="78" type="number"/>
|
||
<input class="ms-topstat__min" name="attr_fuel" placeholder="78" type="number"/>
|
||
</div>
|
||
<div class="ms-topstat__label--small" data-i18n="max"></div>
|
||
<div class="ms-topstat__label--small" data-i18n="current"></div>
|
||
</div>
|
||
<div class="ms-topstat--minmax">
|
||
<div class="ms-topstat__label" data-i18n="galley stock"></div>
|
||
<div class="ms-topstat__minmaxwrapper">
|
||
<input class="ms-topstat__max" name="attr_stock_max" type="number" value="30"/>
|
||
<input class="ms-topstat__min" name="attr_stock" type="number" value="30"/>
|
||
</div>
|
||
<div class="ms-topstat__label--small" data-i18n="max"></div>
|
||
<div class="ms-topstat__label--small" data-i18n="current"></div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipweapons">
|
||
<h1 data-i18n="weapons"></h1>
|
||
<div class="ms-shipweaponrow--head">
|
||
<div class="ms-shipweaponrow__name--head" data-i18n="weapon"></div>
|
||
<div class="ms-shipweaponrow__type--head" data-i18n="damage"></div>
|
||
</div>
|
||
<fieldset class="repeating_shipweapon">
|
||
<div class="ms-shipweaponrow">
|
||
<input name="attr_shipweapon_settings" type="hidden" value="on"/>
|
||
<button class="ms-shipweaponrow__name" type="roll" value="&{template:ms} {{name=@{shipweapon_name}}} {{character_name=@{character_name}}} {{roll=[[1d100cs1cf100]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}} {{target=[[@{combat}]]}} {{damage=[[@{shipweapon_damage}]]}}"><span name="attr_shipweapon_name" type="text"></span></button><span class="ms-shipweaponrow__damage" name="attr_shipweapon_damage" type="text"></span>
|
||
<label class="ms-shipweaponrow__cog">
|
||
<input name="attr_shipweapon_settings" type="checkbox" checked="checked"/><span>y</span>
|
||
</label>
|
||
<div class="ms-shipweaponrow__settings">
|
||
<div class="ms-attackrow__settingsrow">
|
||
<div class="ms-attackrow__settingsrow--full">
|
||
<div class="ms-attackrow__settingstitle" data-i18n="name"></div>
|
||
<input class="ms-sattackrow__textarea" name="attr_shipweapon_name" type="text"/>
|
||
</div>
|
||
<div class="ms-attackrow__settingsrow--full">
|
||
<div class="ms-attackrow__settingstitle" data-i18n="damage"></div>
|
||
<input class="ms-sattackrow__textarea" name="attr_shipweapon_damage" type="text"/>
|
||
</div>
|
||
<div class="ms-attackrow__settingsrow--full">
|
||
<div class="ms-attackrow__settingstitle" data-i18n="notes"></div>
|
||
<textarea class="ms-sattackrow__textarea" name="attr_shipweapon_notes"></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
<div class="ms-crewwrap">
|
||
<div class="ms-shipofficers">
|
||
<h1 data-i18n="officers"></h1>
|
||
<div class="ms-shipofficerrow--head">
|
||
<div class="ms-shipofficerrow__name--head" data-i18n="name"></div>
|
||
<div class="ms-shipofficerrow__type--head" data-i18n="rank"></div>
|
||
</div>
|
||
<fieldset class="repeating_shipcrew">
|
||
<div class="ms-shipofficerrow">
|
||
<input name="attr_shipcrew_settings" type="hidden" value="on"/>
|
||
<input class="ms-shipofficerrow__name" name="attr_shipcrew_name" type="text"/>
|
||
<input class="ms-shipofficerrow__rank" name="attr_shipcrew_rank" type="text"/>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
<div class="ms-crew">
|
||
<div class="ms-crew__label" data-i18n="total crew"></div>
|
||
<input class="ms-crew__input ms-rounded" name="attr_crew" type="number"/>
|
||
</div>
|
||
<div class="ms-crew">
|
||
<div class="ms-crew__label" data-i18n="max crew"></div>
|
||
<input class="ms-crew__input ms-rounded" name="attr_crew_max" type="number"/>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipcargo">
|
||
<h1 data-i18n="cargo"></h1>
|
||
<div class="ms-shipcargorow--head">
|
||
<div class="ms-shipcargorow__name--head" data-i18n="item"></div>
|
||
<div class="ms-shipcargorow__type--head">#</div>
|
||
<div class="ms-shipcargorow__name--head" data-i18n="item"></div>
|
||
<div class="ms-shipcargorow__type--head">#</div>
|
||
</div>
|
||
<fieldset class="repeating_shipcargo">
|
||
<div class="ms-shipcargorow">
|
||
<input name="attr_shipcrew_settings" type="hidden" value="on"/>
|
||
<input class="ms-shipcargorow__name" name="attr_shipcrew_item" type="text"/>
|
||
<input class="ms-shipcargorow__name" name="attr_shipcrew_number" type="text"/>
|
||
</div>
|
||
</fieldset>
|
||
<div class="ms-cargowrap">
|
||
<div class="ms-cargo">
|
||
<div class="ms-credits__label" data-i18n="total cargo"></div>
|
||
<input class="ms-credits__input ms-rounded" name="attr_cargo" type="text"/>
|
||
</div>
|
||
<div class="ms-cargo">
|
||
<div class="ms-credits__label" data-i18n="max cargo"></div>
|
||
<input class="ms-credits__input ms-rounded" name="attr_cargo_max" type="text"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-shipsecondaries">
|
||
<div class="ms-topstat">
|
||
<div class="ms-topstat__label" data-i18n="life support"> </div><span class="ms-tooltip">
|
||
<p><span data-i18n="Life support keeps the human crew alive. Each point of life support can support up to 10 humans. For every point below the required minimum, anyone not wearing a vaccsuit must make a <strong>Body Save</strong> every hour or take 1d10 damage. This includes those in cryochambers as well, but does not include androids. Many ships include 2-3 times the required amount of life support in case of extra passengers or damage to the system."></span></p></span>
|
||
<input class="ms-topstat__stat" placeholder="2" name="attr_ship_lifesupport_modules" type="number"/>
|
||
</div>
|
||
<div class="ms-topstat">
|
||
<div class="ms-topstat__label" data-i18n="command modules"> </div><span class="ms-tooltip">
|
||
<p><span data-i18n="The command module is the cockpit, command center, or bridge of a ship. For every 4 officer positions, one command module is required. Officers can be captains, first mates, navigation officers, communications officers, and is largely up to the Warden and the players to decide."></span></p></span>
|
||
<input class="ms-topstat__stat" placeholder="2" name="attr_ship_command_modules" type="number"/>
|
||
</div>
|
||
<div class="ms-topstat">
|
||
<div class="ms-topstat__label" data-i18n="jump drives"> </div><span class="ms-tooltip">
|
||
<p><span data-i18n="Jump drives enable the ship to travel through hyperspace. Every point of Jump Drive increasesthe ship’s jump capability by 1 (Max 9). The first drive costs 1 hull, the second costs 2, the third costs 3, etc."></span></p></span>
|
||
<input class="ms-topstat__stat" placeholder="2" name="attr_ship_jumpdrive_modules" type="number"/>
|
||
</div>
|
||
<div class="ms-topstat">
|
||
<div class="ms-topstat__label" data-i18n="computer modules"> </div><span class="ms-tooltip">
|
||
<p><span data-i18n="The ship’s computer is a powerful artificial intelligence that helps with astrogation, combat, and anumber of other autonomous tasks. A ship’s Intellect is equal to the number of computer modules x10 +30%. It’s Combat is equal to the number of computer modules x10 +10%. A computer module is required for each jumpdrive. Additionally, each computer module equipped allows the computer to take more actions during combat."></span></p></span>
|
||
<input class="ms-topstat__stat" placeholder="2" name="attr_ship_computer_modules" type="number"/>
|
||
</div>
|
||
<div class="ms-topstat">
|
||
<div class="ms-topstat__label" data-i18n="galleys"> </div><span class="ms-tooltip">
|
||
<p><span data-i18n="Galleys contain a kitchen, restrooms, and a common area on a ship. Any ships making trips longer than 1 day must have 1 galley for every 2 life support modules or else the crew must take <strong>Body Saves</strong> once/day. Failure means 2d10 damage and 1d10 Stress. Galleys must be re-stocked once a month and extra stores take up 1 Cargo."></span></p></span>
|
||
<input class="ms-topstat__stat" placeholder="2" name="attr_ship_galleys" type="number"/>
|
||
</div>
|
||
<div class="ms-topstat">
|
||
<div class="ms-topstat__label" data-i18n="weapon mounts"> </div><span class="ms-tooltip">
|
||
<p><span data-i18n="For every weapon your ship has you must have 1 mount for it. You can find the list of ship weapons in <em>The Player's Survival Guide</em>"></span></p></span>
|
||
<input class="ms-topstat__stat" placeholder="2" name="attr_ship_weapon_mounts" type="number"/>
|
||
</div>
|
||
<div class="ms-topstat">
|
||
<div class="ms-topstat__label" data-i18n="medbays"> </div><span class="ms-tooltip">
|
||
<p><span data-i18n="Medical bays allow scientists, doctors, and other researchers to heal crew members and perform various procedures (biopsies, autopsies, surgery). Each connected medbay on the ship grants +5% to the Intellect of the Scientists or Androids using them. Medical bays also grant advantage on <strong>Body Saves</strong> made for healing."></span></p></span>
|
||
<input class="ms-topstat__stat" placeholder="2" name="attr_ship_medbays" type="number"/>
|
||
</div>
|
||
<div class="ms-topstat">
|
||
<div class="ms-topstat__label" data-i18n="cryo-chambers"> </div><span class="ms-tooltip">
|
||
<p><span data-i18n="Cryochambers allow humans to sleep during long trips, particularly through hyperspace. Androids do not require them. Each point of hull spent on cryochambers accomodates up to 4 cryosleep pods. Individuals who don’t go into cryosleep during hyperspace jumps often have strange and terrifying experiences."></span></p></span>
|
||
<input class="ms-topstat__stat" placeholder="2" name="attr_ship_cryochambers" type="number"/>
|
||
</div>
|
||
<div class="ms-topstat">
|
||
<div class="ms-topstat__label" data-i18n="living quarters"> </div><span class="ms-tooltip">
|
||
<p><span data-i18n="Generally, if a ship is to travel through normal space for at least a week, then living quarters or “staterooms” are provided for each of the ship’s officers, or other important crew members."></span></p></span>
|
||
<input class="ms-topstat__stat" placeholder="2" name="attr_ship_livingquarters" type="number"/>
|
||
</div>
|
||
<div class="ms-topstat">
|
||
<div class="ms-topstat__label" data-i18n="barracks"> </div><span class="ms-tooltip">
|
||
<p><span data-i18n="The same as living quarters, except they are non-private and house up to twelve crew members. Like living quarters, they are not-essential rooms, but ships that need them, but don’t have them, give their crew +1 Stress per journey or month of travel."></span></p></span>
|
||
<input class="ms-topstat__stat" placeholder="2" name="attr_ship_barracks" type="number"/>
|
||
</div>
|
||
<div class="ms-topstat">
|
||
<div class="ms-topstat__label" data-i18n="cargo holds"> </div><span class="ms-tooltip">
|
||
<p><span data-i18n="Cargo holds are essentially 20x20m rooms used for storage. Each cargo hold can hold up to 10 cargo units (each cargo is roughly the size of a large pallet). Cargo holds can also be used for any other basic room not provided for on this list (brigs, secret compartments, mining equipment, training facilities, hangars, armories, etc.)."></span></p></span>
|
||
<input class="ms-topstat__stat" placeholder="2" name="attr_ship_cargoholds" type="number"/>
|
||
</div>
|
||
<div class="ms-topstat">
|
||
<div class="ms-topstat__label" data-i18n="science labs"> </div><span class="ms-tooltip">
|
||
<p><span data-i18n="Similar to the medical bay, the science lab allows for detailed research. Each connected sciencelab grants +5% Intellect to Scientists and Androids using them to conduct research or experiments. Additionally, they can be designated as repair shops and used by Teamsters to repair electronics, machines, or even Androids."></span></p></span>
|
||
<input class="ms-topstat__stat" placeholder="2" name="attr_ship_sciencelabs" type="number"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-npc">
|
||
<div class="ms-npcwrapper">
|
||
<h2 class="ms-npcname">
|
||
<input name="attr_npcname_toggle" type="hidden"/>
|
||
<button class="ms-npcname_button" name="act_editname_on" type="action"> <span name="attr_character_name"></span></button>
|
||
<input name="attr_character_name" type="text"/>
|
||
<button class="ms-npcname_switch" name="act_editname_off" type="action">✔</button>
|
||
</h2>
|
||
<div class="ms-npcstats">
|
||
<div class="ms-mainstat">
|
||
<div class="ms-mainstat__label">
|
||
<button data-i18n="Combat" type="roll" value="&{template:ms},{{name=Combat}},{{character_name=@{character_name}}},{{roll=[[1d100cs1cf100]]}},{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}},{{target=@{combat}}}"></button><span class="ms-tooltip">
|
||
<p><span data-i18n="This works exactly like the PC's combat stat, except it doubles as an armor save."></span></p></span>
|
||
</div>
|
||
<input class="ms-mainstat__input" name="attr_combat" type="number" placeholder="20"/>
|
||
</div>
|
||
<div class="ms-mainstat">
|
||
<div class="ms-mainstat__label">
|
||
<button data-i18n="Speed" type="roll" value="&{template:ms},{{name=Speed}},{{character_name=@{character_name}}},{{roll=[[1d100cs1cf100]]}},{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}},{{target=@{speed}}}"></button><span class="ms-tooltip">
|
||
<p><span data-i18n="This works exactly like the PC's speed stat."></span></p></span>
|
||
</div>
|
||
<input class="ms-mainstat__input" name="attr_speed" type="number" placeholder="20"/>
|
||
</div>
|
||
<div class="ms-mainstat">
|
||
<div class="ms-mainstat__label">
|
||
<button data-i18n="Instinct" type="roll" value="&{template:ms},{{name=Instinct}},{{character_name=@{character_name}}},{{roll=[[1d100cs1cf100]]}},{{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}},{{target=@{instinct}}}"></button><span class="ms-tooltip">
|
||
<p><span data-i18n="This is a catchall for Fear, Sanity, Body, Intellect and everything else."></span></p></span>
|
||
</div>
|
||
<input class="ms-mainstat__input" name="attr_instinct" type="number" placeholder="20"/>
|
||
</div>
|
||
<div class="ms-topstat--minmax">
|
||
<div class="ms-topstat__label" data-i18n="health"></div>
|
||
<div class="ms-topstat__minmaxwrapper">
|
||
<input class="ms-topstat__max" name="attr_hits_max" placeholder="3" type="number"/>
|
||
<input class="ms-topstat__min" name="attr_hitpoints_max" placeholder="40" type="number"/>
|
||
</div>
|
||
<div class="ms-topstat__label--small" data-i18n="hits"></div>
|
||
<div class="ms-topstat__label--small" data-i18n="health"></div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-npcrepeating">
|
||
<div class="ms-npcattacks">
|
||
<h3 data-i18n="Attacks"></h3>
|
||
<fieldset class="repeating_attacks">
|
||
<div class="ms-npcattackrow">
|
||
<input name="attr_attack_settings" type="hidden" value="on"/><span class="ms-npcattackrow__arrow">]</span>
|
||
<button class="ms-npcattackrow__name" type="roll" value="&{template:ms} {{name=@{attack_name}}} {{character_name=@{character_name}}} {{roll=[[1d100cs1cf100]]}} {{roll2=[[?{Advantage/Disadvantage|Normal,0|Advantage/Disadvantage,1d100cs1cf100}]]}} {{target=[[@{combat}]]}} {{damage=[[@{attack_damage}]]}}"><span name="attr_attack_name" type="text"></span></button><span class="ms-npcattackrow__damage" name="attr_attack_damage" type="text"></span>
|
||
<label class="ms-npcattackrow__cog">
|
||
<input name="attr_attack_settings" type="checkbox" checked="checked"/><span>y</span>
|
||
</label>
|
||
<div class="ms-npcattackrow__settings">
|
||
<div class="ms-npcattackrow__settingsrow">
|
||
<div class="ms-npcattackrow__settingstitle" data-i18n="name"></div>
|
||
<input class="ms-npcattackrow__settingsinput" data-i18n-value="attack name" name="attr_attack_name" type="text"/>
|
||
</div>
|
||
<div class="ms-npcattackrow__settingsrow">
|
||
<div class="ms-npcattackrow__settingstitle" data-i18n="damage"></div>
|
||
<input class="ms-npcattackrow__settingsinput" data-i18n-value="damage" name="attr_attack_damage" type="text"/>
|
||
</div>
|
||
<div class="ms-npcattackrow__settingsrow">
|
||
<div class="ms-npcattackrow__settingstitle" data-i18n="type"></div>
|
||
<select class="ms-npcattackrow__skill" name="attr_attack_type">
|
||
<option data-i18n="Ranged"></option>
|
||
<option data-i18n="Melee"></option>
|
||
</select>
|
||
</div>
|
||
<div class="ms-npcattackrow__settingsrow--full">
|
||
<div class="ms-npcattackrow__settingstitle" data-i18n="notes"></div>
|
||
<textarea class="ms-npcattackrow__textarea" name="attr_attack_notes"></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
<div class="ms-npcgrid">
|
||
<h3 data-i18n="Special Abilities"></h3>
|
||
<fieldset class="repeating_abilities">
|
||
<div class="ms-npcabilityrow">
|
||
<input name="attr_ability_settings" type="hidden" value="on"/>
|
||
<button class="ms-npcabilityrow__name" type="roll" value="&{template:ms} {{name=@{ability_name}}} {{character_name=@{character_name}}} {{notes=@{ability_text}}}"><span name="attr_ability_name" type="text"></span></button>
|
||
<label class="ms-npcabilityrow__cog">
|
||
<input name="attr_ability_settings" type="checkbox" checked="checked"/><span>y</span>
|
||
</label><span class="ms-npcabilityrow__text" name="attr_ability_text"></span>
|
||
<div class="ms-npcabilityrow__settings">
|
||
<div class="ms-npcabilityrow__settingsrow">
|
||
<div class="ms-npcabilityrow__settingstitle" data-i18n="name"></div>
|
||
<input class="ms-npcabilityrow__settingsinput" data-i18n-value="ability name" name="attr_ability_name" type="text"/>
|
||
</div>
|
||
<div class="ms-npcabilityrow__settingsrow--full">
|
||
<div class="ms-npcabilityrow__settingstitle" data-i18n="description"></div>
|
||
<textarea class="ms-npcabilityrow__textarea" name="attr_ability_text"></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
</div>
|
||
<div class="ms-npcdescription">
|
||
<h3 data-i18n="description"></h3>
|
||
<textarea class="ms-npcdescription__description" data-i18n-placeholder="Enter the NPC's description here." name="attr_description"></textarea>
|
||
</div>
|
||
<div class="ms-npcequipment">
|
||
<h3 data-i18n="equipment"></h3>
|
||
<textarea class="ms-npcequipment__equipment" data-i18n-placeholder="Enter the NPC's equipment here." name="attr_description"></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<rolltemplate class="sheet-rolltemplate-ms">
|
||
<div class="sheet-ms-container">{{#name}}
|
||
<h1>{{name}} </h1>{{/name}}
|
||
{{#character_name}}
|
||
<h2>{{character_name}} </h2>{{/character_name}}
|
||
{{#roll}}
|
||
<div class="sheet-ms-roll">
|
||
<div class="sheet-ms-roll__roll">{{roll}}</div> {{#rollGreater() roll2 0}}
|
||
<div class="sheet-ms-roll__roll2">{{roll2}}</div> {{/rollGreater() roll2 0}}
|
||
</div>{{#target}}
|
||
<div class="sheet-ms-target">
|
||
<div class="sheet-ms-target__label" data-i18n="target:"></div>
|
||
<div class="sheet-ms-target__value">{{target}}</div>
|
||
</div>{{/target}}
|
||
{{/roll}}
|
||
{{#damage}}
|
||
<div class="sheet-ms-damage">
|
||
<div class="sheet-ms-damage__label" data-i18n="damage:"></div>
|
||
<div class="sheet-ms-damage__value">{{damage}}</div>
|
||
</div>{{/damage}}
|
||
{{#notes}}
|
||
<div class="sheet-ms-notes">{{notes}}</div>{{/notes}}
|
||
</div>
|
||
</rolltemplate>
|
||
<rolltemplate class="sheet-rolltemplate-ms-cm">
|
||
<div class="sheet-ms-container">{{#title}}
|
||
<h1>{{title}} </h1>{{/title}}{{#strength}}
|
||
<h2>strength</h2>
|
||
<div class="sheet-ms-roll">
|
||
<div class="sheet-ms-roll__roll">{{strength}}</div>
|
||
</div>{{/strength}}{{#speed}}
|
||
<h2>speed</h2>
|
||
<div class="sheet-ms-roll">
|
||
<div class="sheet-ms-roll__roll">{{speed}}</div>
|
||
</div>{{/speed}}{{#intellect}}
|
||
<h2>intellect</h2>
|
||
<div class="sheet-ms-roll">
|
||
<div class="sheet-ms-roll__roll">{{intellect}}</div>
|
||
</div>{{/intellect}}{{#dexterity}}
|
||
<h2>dexterity</h2>
|
||
<div class="sheet-ms-roll">
|
||
<div class="sheet-ms-roll__roll">{{dexterity}}</div>
|
||
</div>{{/dexterity}}{{#credits}}
|
||
<h2 data-i18n="starting credits"></h2>
|
||
<div class="sheet-ms-roll">
|
||
<div class="sheet-ms-roll__credits">{{credits}}</div>
|
||
</div>{{/credits}}{{#roll}}{{#rollTotal() roll 0}}
|
||
<h2>{{opt0}}</h2>{{/rollTotal() roll 0}}{{#rollTotal() roll 1}}
|
||
<h2>{{opt1}}</h2>{{/rollTotal() roll 1}}{{#rollTotal() roll 2}}
|
||
<h2>{{opt2}}</h2>{{/rollTotal() roll 2}}{{#rollTotal() roll 3}}
|
||
<h2>{{opt3}}</h2>{{/rollTotal() roll 3}}{{#rollTotal() roll 4}}
|
||
<h2>{{opt4}}</h2>{{/rollTotal() roll 4}}{{#rollTotal() roll 5}}
|
||
<h2>{{opt5}}</h2>{{/rollTotal() roll 5}}{{#rollTotal() roll 6}}
|
||
<h2>{{opt6}}</h2>{{/rollTotal() roll 6}}{{#rollTotal() roll 7}}
|
||
<h2>{{opt7}}</h2>{{/rollTotal() roll 7}}{{#rollTotal() roll 8}}
|
||
<h2>{{opt8}}</h2>{{/rollTotal() roll 8}}{{#rollTotal() roll 9}}
|
||
<h2>{{opt9}}</h2>{{/rollTotal() roll 9}}{{#rollTotal() roll 10}}
|
||
<h2>{{opt10}}</h2>{{/rollTotal() roll 10}}{{#rollTotal() roll 11}}
|
||
<h2>{{opt11}}</h2>{{/rollTotal() roll 11}}{{#rollTotal() roll 12}}
|
||
<h2>{{opt12}}</h2>{{/rollTotal() roll 12}}{{#rollTotal() roll 13}}
|
||
<h2>{{opt13}}</h2>{{/rollTotal() roll 13}}{{#rollTotal() roll 14}}
|
||
<h2>{{opt14}}</h2>{{/rollTotal() roll 14}}{{#rollTotal() roll 15}}
|
||
<h2>{{opt15}}</h2>{{/rollTotal() roll 15}}{{#rollTotal() roll 16}}
|
||
<h2>{{opt16}}</h2>{{/rollTotal() roll 16}}{{#rollTotal() roll 17}}
|
||
<h2>{{opt17}}</h2>{{/rollTotal() roll 17}}{{#rollTotal() roll 18}}
|
||
<h2>{{opt18}}</h2>{{/rollTotal() roll 18}}{{#rollTotal() roll 19}}
|
||
<h2>{{opt19}}</h2>{{/rollTotal() roll 19}}{{#rollTotal() roll 20}}
|
||
<h2>{{opt20}}</h2>{{/rollTotal() roll 20}}{{#rollTotal() roll 21}}
|
||
<h2>{{opt21}}</h2>{{/rollTotal() roll 21}}{{#rollTotal() roll 22}}
|
||
<h2>{{opt22}}</h2>{{/rollTotal() roll 22}}{{#rollTotal() roll 23}}
|
||
<h2>{{opt23}}</h2>{{/rollTotal() roll 23}}{{#rollTotal() roll 24}}
|
||
<h2>{{opt24}}</h2>{{/rollTotal() roll 24}}{{#rollTotal() roll 25}}
|
||
<h2>{{opt25}}</h2>{{/rollTotal() roll 25}}{{#rollTotal() roll 26}}
|
||
<h2>{{opt26}}</h2>{{/rollTotal() roll 26}}{{#rollTotal() roll 27}}
|
||
<h2>{{opt27}}</h2>{{/rollTotal() roll 27}}{{#rollTotal() roll 28}}
|
||
<h2>{{opt28}}</h2>{{/rollTotal() roll 28}}{{#rollTotal() roll 29}}
|
||
<h2>{{opt29}}</h2>{{/rollTotal() roll 29}}{{#rollTotal() roll 30}}
|
||
<h2>{{opt30}}</h2>{{/rollTotal() roll 30}}{{#rollTotal() roll 31}}
|
||
<h2>{{opt31}}</h2>{{/rollTotal() roll 31}}{{#rollTotal() roll 32}}
|
||
<h2>{{opt32}}</h2>{{/rollTotal() roll 32}}{{#rollTotal() roll 33}}
|
||
<h2>{{opt33}}</h2>{{/rollTotal() roll 33}}{{#rollTotal() roll 34}}
|
||
<h2>{{opt34}}</h2>{{/rollTotal() roll 34}}{{#rollTotal() roll 35}}
|
||
<h2>{{opt35}}</h2>{{/rollTotal() roll 35}}{{#rollTotal() roll 36}}
|
||
<h2>{{opt36}}</h2>{{/rollTotal() roll 36}}{{#rollTotal() roll 37}}
|
||
<h2>{{opt37}}</h2>{{/rollTotal() roll 37}}{{#rollTotal() roll 38}}
|
||
<h2>{{opt38}}</h2>{{/rollTotal() roll 38}}{{#rollTotal() roll 39}}
|
||
<h2>{{opt39}}</h2>{{/rollTotal() roll 39}}{{#rollTotal() roll 40}}
|
||
<h2>{{opt40}}</h2>{{/rollTotal() roll 40}}{{#rollTotal() roll 41}}
|
||
<h2>{{opt41}}</h2>{{/rollTotal() roll 41}}{{#rollTotal() roll 42}}
|
||
<h2>{{opt42}}</h2>{{/rollTotal() roll 42}}{{#rollTotal() roll 43}}
|
||
<h2>{{opt43}}</h2>{{/rollTotal() roll 43}}{{#rollTotal() roll 44}}
|
||
<h2>{{opt44}}</h2>{{/rollTotal() roll 44}}{{#rollTotal() roll 45}}
|
||
<h2>{{opt45}}</h2>{{/rollTotal() roll 45}}{{#rollTotal() roll 46}}
|
||
<h2>{{opt46}}</h2>{{/rollTotal() roll 46}}{{#rollTotal() roll 47}}
|
||
<h2>{{opt47}}</h2>{{/rollTotal() roll 47}}{{#rollTotal() roll 48}}
|
||
<h2>{{opt48}}</h2>{{/rollTotal() roll 48}}{{#rollTotal() roll 49}}
|
||
<h2>{{opt49}}</h2>{{/rollTotal() roll 49}}{{#rollTotal() roll 50}}
|
||
<h2>{{opt50}}</h2>{{/rollTotal() roll 50}}{{#rollTotal() roll 51}}
|
||
<h2>{{opt51}}</h2>{{/rollTotal() roll 51}}{{#rollTotal() roll 52}}
|
||
<h2>{{opt52}}</h2>{{/rollTotal() roll 52}}{{#rollTotal() roll 53}}
|
||
<h2>{{opt53}}</h2>{{/rollTotal() roll 53}}{{#rollTotal() roll 54}}
|
||
<h2>{{opt54}}</h2>{{/rollTotal() roll 54}}{{#rollTotal() roll 55}}
|
||
<h2>{{opt55}}</h2>{{/rollTotal() roll 55}}{{#rollTotal() roll 56}}
|
||
<h2>{{opt56}}</h2>{{/rollTotal() roll 56}}{{#rollTotal() roll 57}}
|
||
<h2>{{opt57}}</h2>{{/rollTotal() roll 57}}{{#rollTotal() roll 58}}
|
||
<h2>{{opt58}}</h2>{{/rollTotal() roll 58}}{{#rollTotal() roll 59}}
|
||
<h2>{{opt59}}</h2>{{/rollTotal() roll 59}}{{#rollTotal() roll 60}}
|
||
<h2>{{opt60}}</h2>{{/rollTotal() roll 60}}{{#rollTotal() roll 61}}
|
||
<h2>{{opt61}}</h2>{{/rollTotal() roll 61}}{{#rollTotal() roll 62}}
|
||
<h2>{{opt62}}</h2>{{/rollTotal() roll 62}}{{#rollTotal() roll 63}}
|
||
<h2>{{opt63}}</h2>{{/rollTotal() roll 63}}{{#rollTotal() roll 64}}
|
||
<h2>{{opt64}}</h2>{{/rollTotal() roll 64}}{{#rollTotal() roll 65}}
|
||
<h2>{{opt65}}</h2>{{/rollTotal() roll 65}}{{#rollTotal() roll 66}}
|
||
<h2>{{opt66}}</h2>{{/rollTotal() roll 66}}{{#rollTotal() roll 67}}
|
||
<h2>{{opt67}}</h2>{{/rollTotal() roll 67}}{{#rollTotal() roll 68}}
|
||
<h2>{{opt68}}</h2>{{/rollTotal() roll 68}}{{#rollTotal() roll 69}}
|
||
<h2>{{opt69}}</h2>{{/rollTotal() roll 69}}{{#rollTotal() roll 70}}
|
||
<h2>{{opt70}}</h2>{{/rollTotal() roll 70}}{{#rollTotal() roll 71}}
|
||
<h2>{{opt71}}</h2>{{/rollTotal() roll 71}}{{#rollTotal() roll 72}}
|
||
<h2>{{opt72}}</h2>{{/rollTotal() roll 72}}{{#rollTotal() roll 73}}
|
||
<h2>{{opt73}}</h2>{{/rollTotal() roll 73}}{{#rollTotal() roll 74}}
|
||
<h2>{{opt74}}</h2>{{/rollTotal() roll 74}}{{#rollTotal() roll 75}}
|
||
<h2>{{opt75}}</h2>{{/rollTotal() roll 75}}{{#rollTotal() roll 76}}
|
||
<h2>{{opt76}}</h2>{{/rollTotal() roll 76}}{{#rollTotal() roll 77}}
|
||
<h2>{{opt77}}</h2>{{/rollTotal() roll 77}}{{#rollTotal() roll 78}}
|
||
<h2>{{opt78}}</h2>{{/rollTotal() roll 78}}{{#rollTotal() roll 79}}
|
||
<h2>{{opt79}}</h2>{{/rollTotal() roll 79}}{{#rollTotal() roll 80}}
|
||
<h2>{{opt80}}</h2>{{/rollTotal() roll 80}}{{#rollTotal() roll 81}}
|
||
<h2>{{opt81}}</h2>{{/rollTotal() roll 81}}{{#rollTotal() roll 82}}
|
||
<h2>{{opt82}}</h2>{{/rollTotal() roll 82}}{{#rollTotal() roll 83}}
|
||
<h2>{{opt83}}</h2>{{/rollTotal() roll 83}}{{#rollTotal() roll 84}}
|
||
<h2>{{opt84}}</h2>{{/rollTotal() roll 84}}{{#rollTotal() roll 85}}
|
||
<h2>{{opt85}}</h2>{{/rollTotal() roll 85}}{{#rollTotal() roll 86}}
|
||
<h2>{{opt86}}</h2>{{/rollTotal() roll 86}}{{#rollTotal() roll 87}}
|
||
<h2>{{opt87}}</h2>{{/rollTotal() roll 87}}{{#rollTotal() roll 88}}
|
||
<h2>{{opt88}}</h2>{{/rollTotal() roll 88}}{{#rollTotal() roll 89}}
|
||
<h2>{{opt89}}</h2>{{/rollTotal() roll 89}}{{#rollTotal() roll 90}}
|
||
<h2>{{opt90}}</h2>{{/rollTotal() roll 90}}{{#rollTotal() roll 91}}
|
||
<h2>{{opt91}}</h2>{{/rollTotal() roll 91}}{{#rollTotal() roll 92}}
|
||
<h2>{{opt92}}</h2>{{/rollTotal() roll 92}}{{#rollTotal() roll 93}}
|
||
<h2>{{opt93}}</h2>{{/rollTotal() roll 93}}{{#rollTotal() roll 94}}
|
||
<h2>{{opt94}}</h2>{{/rollTotal() roll 94}}{{#rollTotal() roll 95}}
|
||
<h2>{{opt95}}</h2>{{/rollTotal() roll 95}}{{#rollTotal() roll 96}}
|
||
<h2>{{opt96}}</h2>{{/rollTotal() roll 96}}{{#rollTotal() roll 97}}
|
||
<h2>{{opt97}}</h2>{{/rollTotal() roll 97}}{{#rollTotal() roll 98}}
|
||
<h2>{{opt98}}</h2>{{/rollTotal() roll 98}}{{#rollTotal() roll 99}}
|
||
<h2>{{opt99}}</h2>{{/rollTotal() roll 99}}{{#rollTotal() roll 100}}
|
||
<h2>{{opt100}}</h2>{{/rollTotal() roll 100}}{{/roll}}
|
||
</div>
|
||
</rolltemplate>
|
||
<charmancer class="sheet-charmancer-intro">
|
||
<div class="ms-cm-wrapper">
|
||
<div class="t__topbar"></div>
|
||
<div class="ms-cm-container">
|
||
<div class="ms-cm-panel--full"><img class="ms-cm-logo" src="https://s3.amazonaws.com/files.d20.io/images/145353993/itv_F4exdWuwHavdksYfCQ/max.png?1592850121" data-i18n-title="Mothership Logo"/>
|
||
<p class="ms-cm-welcometext" data-i18n="charmancer-step1"></p>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-pagecontrol">
|
||
<button class="ms-cm-pagecontrol__middle" data-i18n="cancel" type="cancel">cancel</button>
|
||
<button class="ms-cm-pagecontrol__right" data-i18n="next" type="back" value="stats">next</button>
|
||
</div>
|
||
</div>
|
||
</charmancer>
|
||
<charmancer class="sheet-repeating-topbar">
|
||
<div class="ms-cm-topstats">
|
||
<div class="ms-cm-stats">
|
||
<div class="ms-cm-mainstat">
|
||
<div class="ms-cm-mainstat__title" data-i18n="strength"></div>
|
||
<div class="ms-cm-mainstat__value t__strength"></div>
|
||
<input name="comp_strength" type="hidden"/>
|
||
<input name="comp_strength_final" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-mainstat">
|
||
<div class="ms-cm-mainstat__title" data-i18n="speed"></div>
|
||
<div class="ms-cm-mainstat__value t__speed"></div>
|
||
<input name="comp_speed" type="hidden"/>
|
||
<input name="comp_speed_final" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-mainstat">
|
||
<div class="ms-cm-mainstat__title" data-i18n="intellect"></div>
|
||
<div class="ms-cm-mainstat__value t__intellect"></div>
|
||
<input name="comp_intellect" type="hidden"/>
|
||
<input name="comp_intellect_final" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-mainstat">
|
||
<div class="ms-cm-mainstat__title" data-i18n="combat"></div>
|
||
<div class="ms-cm-mainstat__value t__combat"></div>
|
||
<input name="comp_combat" type="hidden"/>
|
||
<input name="comp_combat_final" type="hidden"/>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-altstats">
|
||
<div class="ms-cm-altstat">
|
||
<div class="ms-cm-altstat__title" data-i18n="health"></div>
|
||
<div class="ms-cm-altstat__value t__health">
|
||
<input name="comp_health" type="hidden"/>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-altstat">
|
||
<div class="ms-cm-altstat__title" data-i18n="stress"></div>
|
||
<div class="ms-cm-altstat__value t__stress">
|
||
<input name="comp_stress" type="hidden"/>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-altstat">
|
||
<div class="ms-cm-altstat__title" data-i18n="resolve"></div>
|
||
<div class="ms-cm-altstat__value t__resolve">
|
||
<input name="comp_resolve" type="hidden"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-saves">
|
||
<div class="ms-cm-mainsave">
|
||
<div class="ms-cm-mainsave__title" data-i18n="sanity"></div>
|
||
<div class="ms-cm-mainsave__value t__sanity"></div>
|
||
</div>
|
||
<div class="ms-cm-mainsave">
|
||
<div class="ms-cm-mainsave__title" data-i18n="fear"></div>
|
||
<div class="ms-cm-mainsave__value t__fear"></div>
|
||
</div>
|
||
<div class="ms-cm-mainsave">
|
||
<div class="ms-cm-mainsave__title" data-i18n="body"></div>
|
||
<div class="ms-cm-mainsave__value t__body"></div>
|
||
</div>
|
||
<div class="ms-cm-mainsave">
|
||
<div class="ms-cm-mainsave__title" data-i18n="armor"></div>
|
||
<div class="ms-cm-mainsave__value t__armor"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</charmancer>
|
||
<charmancer class="sheet-charmancer-stats">
|
||
<div class="ms-cm-wrapper">
|
||
<div class="t__topbar"></div>
|
||
<div class="ms-cm-container">
|
||
<div class="ms-cm-panel">
|
||
<input name="comp_rolled_stats" type="hidden" value="false"/>
|
||
<input name="comp_health" type="hidden"/>
|
||
<input name="comp_stress" type="hidden"/>
|
||
<input name="comp_resolve" type="hidden"/>
|
||
<h2 class="ms-cm-guidetitle" data-i18n="stats"></h2>
|
||
<p class="ms-cm-guidetext" data-i18n="charmancer-step2"></p>
|
||
</div>
|
||
<div class="ms-cm-panel">
|
||
<div class="ms-cm-stats--main choice showstats">
|
||
<div class="ms-cm-mainstat">
|
||
<div class="ms-cm-mainstat__title" data-i18n="strength"></div>
|
||
<div class="ms-cm-mainstat__value t__strength"></div>
|
||
<input name="comp_strength" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-mainstat">
|
||
<div class="ms-cm-mainstat__title" data-i18n="speed"></div>
|
||
<div class="ms-cm-mainstat__value t__speed"></div>
|
||
<input name="comp_speed" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-mainstat">
|
||
<div class="ms-cm-mainstat__title" data-i18n="intellect"></div>
|
||
<div class="ms-cm-mainstat__value t__intellect"></div>
|
||
<input name="comp_intellect" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-mainstat">
|
||
<div class="ms-cm-mainstat__title" data-i18n="combat"></div>
|
||
<div class="ms-cm-mainstat__value t__combat"></div>
|
||
<input name="comp_combat" type="hidden"/>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-center">
|
||
<button class="ms-cm-button--roll" data-i18n="Roll Stats" name="roll_stats" type="roll" value="&{template:ms-cm},{{title=stats roll}},{{strength=[[6d10]]}},{{speed=[[6d10]]}},{{intellect=[[6d10]]}},{{dexterity=[[6d10]]}}"></button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-pagecontrol">
|
||
<button class="ms-cm-pagecontrol__left" data-i18n="previous" type="back" value="intro">previous</button>
|
||
<button class="ms-cm-pagecontrol__middle" data-i18n="cancel" type="cancel">cancel</button>
|
||
<button class="ms-cm-pagecontrol__right" data-i18n="next" type="back" value="class">next</button>
|
||
</div>
|
||
</div>
|
||
</charmancer>
|
||
<charmancer class="sheet-charmancer-class">
|
||
<div class="ms-cm-wrapper">
|
||
<input name="comp_selected" type="hidden"/>
|
||
<div class="t__topbar"></div>
|
||
<div class="ms-cm-container choice showclasses">
|
||
<div class="ms-cm-panel--classes">
|
||
<h2 class="ms-cm-guidetitle" data-i18n="select a class"></h2>
|
||
<p class="ms-cm-guidetext--span2" data-i18n="charmancer-step3a"></p>
|
||
<div class="ms-cm-classes t__classes"></div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-container choice showclassinfo">
|
||
<div class="ms-cm-panel">
|
||
<h2 class="ms-cm-guidetitle" data-i18n="your class"></h2>
|
||
<p class="ms-cm-guidetext" data-i18n="charmancer-step3b"></p>
|
||
<div class="ms-cm-center">
|
||
<button class="ms-cm-button--action" data-i18n="reselect class" name="act_reselectc" type="action"></button>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-panel">
|
||
<div class="choice presetclass">
|
||
<h3 class="ms-cm-class__title--selected t__cname"></h3>
|
||
<div class="ms-cm-savegroup">
|
||
<div class="ms-cm-mainsave">
|
||
<input name="comp_sanity" type="hidden"/>
|
||
<div class="ms-cm-mainsave__title" data-i18n="sanity"></div>
|
||
<div class="ms-cm-mainsave__value t__sanity"></div>
|
||
</div>
|
||
<div class="ms-cm-mainsave">
|
||
<input name="comp_fear" type="hidden"/>
|
||
<div class="ms-cm-mainsave__title" data-i18n="fear"></div>
|
||
<div class="ms-cm-mainsave__value t__fear"></div>
|
||
</div>
|
||
<div class="ms-cm-mainsave">
|
||
<input name="comp_body" type="hidden"/>
|
||
<div class="ms-cm-mainsave__title" data-i18n="body"></div>
|
||
<div class="ms-cm-mainsave__value t__body"></div>
|
||
</div>
|
||
<div class="ms-cm-mainsave">
|
||
<input name="comp_armor" type="hidden"/>
|
||
<div class="ms-cm-mainsave__title" data-i18n="armor"></div>
|
||
<div class="ms-cm-mainsave__value t__armor"></div>
|
||
</div>
|
||
</div>
|
||
<input name="comp_skills" type="hidden"/>
|
||
<input name="comp_skill_choice" type="hidden"/>
|
||
<input name="comp_strength_modifier" type="hidden"/>
|
||
<input name="comp_speed_modifier" type="hidden"/>
|
||
<input name="comp_intellect_modifier" type="hidden"/>
|
||
<input name="comp_combat_modifier" type="hidden"/>
|
||
<input name="comp_health" type="hidden"/>
|
||
<div class="ms-cm-row">
|
||
<div class="ms-cm-row__title" data-i18n="stress effect"></div>
|
||
<div class="t__stress_effect"></div>
|
||
</div>
|
||
<div class="ms-cm-row">
|
||
<div class="ms-cm-row__title" data-i18n="skills"></div>
|
||
<div class="t__skills"></div>
|
||
<div class="t__skill_choice"></div>
|
||
</div>
|
||
<div class="ms-cm-row">
|
||
<div class="ms-cm-row__title" data-i18n="skill points"></div>
|
||
<div class="t__skill_points"></div>
|
||
</div>
|
||
</div>
|
||
<div class="choice customclass">
|
||
<div class="ms-cm-row">
|
||
<div class="ms-cm-row__label" data-i18n="Class Name"></div>
|
||
<input class="ms-cm-row__input" name="comp_class"/>
|
||
</div>
|
||
<div class="ms-cm-row">
|
||
<div class="ms-cm-row__label" data-i18n="Sanity Save"></div>
|
||
<input class="ms-cm-row__input" name="comp_sanity"/>
|
||
</div>
|
||
<div class="ms-cm-row">
|
||
<div class="ms-cm-row__label" data-i18n="Fear Save"></div>
|
||
<input class="ms-cm-row__input" name="comp_fear"/>
|
||
</div>
|
||
<div class="ms-cm-row">
|
||
<div class="ms-cm-row__label" data-i18n="Body Save"></div>
|
||
<input class="ms-cm-row__input" name="comp_body"/>
|
||
</div>
|
||
<div class="ms-cm-row">
|
||
<div class="ms-cm-row__label" data-i18n="Armor Save"></div>
|
||
<input class="ms-cm-row__input" name="comp_armor"/>
|
||
</div>
|
||
<div class="ms-cm-row">
|
||
<div class="ms-cm-row__label" data-i18n="Strength Mod"></div>
|
||
<input class="ms-cm-row__input" name="comp_strength_mod"/>
|
||
</div>
|
||
<div class="ms-cm-row">
|
||
<div class="ms-cm-row__label" data-i18n="Speed Mod"></div>
|
||
<input class="ms-cm-row__input" name="comp_speed_mod"/>
|
||
</div>
|
||
<div class="ms-cm-row">
|
||
<div class="ms-cm-row__label" data-i18n="Intellect Mod"></div>
|
||
<input class="ms-cm-row__input" name="comp_intellect_mod"/>
|
||
</div>
|
||
<div class="ms-cm-row">
|
||
<div class="ms-cm-row__label" data-i18n="Combat Mod"></div>
|
||
<input class="ms-cm-row__input" name="comp_combat_mod"/>
|
||
</div>
|
||
<div class="ms-cm-row">
|
||
<div class="ms-cm-row__label" data-i18n="Stress Effect"></div>
|
||
<input class="ms-cm-row__input--long" name="comp_stress_effect"/>
|
||
</div>
|
||
<div class="ms-cm-row">
|
||
<div class="ms-cm-row__label" data-i18n="Skill Points"></div>
|
||
<input class="ms-cm-row__input" name="comp_skill_points"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-compendium choice showclassinfo"></div>
|
||
</div>
|
||
<div class="ms-cm-pagecontrol">
|
||
<button class="ms-cm-pagecontrol__left" data-i18n="previous" type="back" value="stats">previous</button>
|
||
<button class="ms-cm-pagecontrol__middle" data-i18n="cancel" type="cancel">cancel</button>
|
||
<button class="ms-cm-pagecontrol__right" data-i18n="next" type="back" value="skills">next</button>
|
||
</div>
|
||
</div>
|
||
</charmancer>
|
||
<charmancer class="sheet-repeating-class">
|
||
<input class="ms-cm-hide" name="comp_name" type="hidden"/>
|
||
<label class="ms-cm-class">
|
||
<input class="ms-cm-hide" name="comp_selected" type="checkbox"/>
|
||
<div class="ms-cm-class__img t__img"></div>
|
||
<h2 class="ms-cm-class__title t__title"></h2>
|
||
<div class="ms-cm-class__desc t__desc"></div>
|
||
</label>
|
||
</charmancer>
|
||
<charmancer class="sheet-repeating-skillselection">
|
||
<div class="ms-cm-row--skillselect">
|
||
<div class="ms-cm-row__title" data-i18n="choose a skill"></div>
|
||
<select class="ms-cm-row__select" name="comp_skill">
|
||
<option data-i18n="choose"></option>
|
||
</select>
|
||
<input name="comp_skill_type" type="hidden"/>
|
||
</div>
|
||
</charmancer>
|
||
<charmancer class="sheet-charmancer-skills">
|
||
<div class="ms-cm-wrapper">
|
||
<div class="t__topbar"></div>
|
||
<div class="ms-cm-container">
|
||
<div class="ms-cm-panel--skills">
|
||
<input name="comp_owned" type="hidden"/>
|
||
<input name="comp_unlocked" type="hidden"/>
|
||
<input name="comp_trained_lock" type="hidden"/>
|
||
<input name="comp_expert_lock" type="hidden"/>
|
||
<input name="comp_master_lock" type="hidden"/>
|
||
<h2 class="ms-cm-guidetitle" data-i18n="choose skills"></h2>
|
||
<p class="ms-cm-guidetext--span2" data-i18n="charmancer-step4"></p>
|
||
<div class="ms-cm-skillpoints t__skillpointserror">
|
||
<input name="comp_skillpoints" type="hidden"/>
|
||
<input name="comp_skillpoints_max" type="hidden"/>
|
||
<div class="ms-cm-skillpoints__label" data-i18n="remaining skillpoints"></div>
|
||
<div class="ms-cm-skillpoints__value t__skillpoints"></div>
|
||
</div>
|
||
<div class="ms-cm-skillcol--trained">
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_linguistics" type="hidden"/>
|
||
<input name="comp_linguistics_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--linguistics" name="act_toggle-linguistics" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="linguistics" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Study of language"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_biology" type="hidden"/>
|
||
<input name="comp_biology_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--biology" name="act_toggle-biology" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="biology" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Study of life"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_first_aid" type="hidden"/>
|
||
<input name="comp_first_aid_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--first_aid" name="act_toggle-first_aid" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="first aid" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Emergency medical care and treatment"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_hydroponics" type="hidden"/>
|
||
<input name="comp_hydroponics_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--hydroponics" name="act_toggle-hydroponics" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="hydroponics" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Growing plants in nutrient solutions without soil (farming in space)"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_geology" type="hidden"/>
|
||
<input name="comp_geology_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--geology" name="act_toggle-geology" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="geology" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="The solid features of any terrestrial planet or natural satellite"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_zero-g" type="hidden"/>
|
||
<input name="comp_zero-g_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--zero-g" name="act_toggle-zero-g" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="zero-g" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Working in a vaccuum, vaccsuits, etc."></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_scavenging" type="hidden"/>
|
||
<input name="comp_scavenging_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--scavenging" name="act_toggle-scavenging" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="scavenging" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Searching discarded wastes for useful items"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_heavy_machinery" type="hidden"/>
|
||
<input name="comp_heavy_machinery_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--heavy_machinery" name="act_toggle-heavy_machinery" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="heavy machinery" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Operation and use of large pieces of equipment (cranes, exosuits, forkliftsm etc.)"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_computers" type="hidden"/>
|
||
<input name="comp_computers_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--computers" name="act_toggle-computers" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="computers" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Fluent use of computers and networks"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_mechanical_repair" type="hidden"/>
|
||
<input name="comp_mechanical_repair_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--mechanical_repair" name="act_toggle-mechanical_repair" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="mechanical repair" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Fixing broken machines"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_driving" type="hidden"/>
|
||
<input name="comp_driving_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--driving" name="act_toggle-driving" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="driving" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Operation and control of motor vehicles"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_piloting" type="hidden"/>
|
||
<input name="comp_piloting_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--piloting" name="act_toggle-piloting" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="piloting" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Operation and control of air and spacecraft"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_mathematics" type="hidden"/>
|
||
<input name="comp_mathematics_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--mathematics" name="act_toggle-mathematics" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="mathematics" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="The science of numbers, quantity, and space"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_art" type="hidden"/>
|
||
<input name="comp_art_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--art" name="act_toggle-art" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="art" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="The expression or application of a species' creative ability and imagination"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_archaeology" type="hidden"/>
|
||
<input name="comp_archaeology_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--archaeology" name="act_toggle-archaeology" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="archaeology" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Ancient cultures and their artifacts"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_theology" type="hidden"/>
|
||
<input name="comp_theology_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--theology" name="act_toggle-theology" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="theology" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Study of religion"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_military_training" type="hidden"/>
|
||
<input name="comp_military_training_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--military_training" name="act_toggle-military_training" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="military training" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Standard basic training given to all military personnel"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_rimwise" type="hidden"/>
|
||
<input name="comp_rimwise_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--rimwise" name="act_toggle-rimwise" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="rimwise" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Outer rim colonies and seedy parts of the galaxy"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_athletics" type="hidden"/>
|
||
<input name="comp_athletics_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--athletics" name="act_toggle-athletics" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="athletics" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Physical sports and games"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_chemistry" type="hidden"/>
|
||
<input name="comp_chemistry_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--chemistry" name="act_toggle-chemistry" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="chemistry" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="The identification of the substances of which matter is composed"></span></p></span>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-skillcol--expert">
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_psychology" type="hidden"/>
|
||
<input name="comp_psychology_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--psychology" name="act_toggle-psychology" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="psychology" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="The study of behavior and the human mind"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_genetics" type="hidden"/>
|
||
<input name="comp_genetics_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--genetics" name="act_toggle-genetics" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="genetics" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Heredity and the variation of the inherited characteristics"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_pathology" type="hidden"/>
|
||
<input name="comp_pathology_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--pathology" name="act_toggle-pathology" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="pathology" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Study of the cause and effect of disease"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_botany" type="hidden"/>
|
||
<input name="comp_botany_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--botany" name="act_toggle-botany" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="botany" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="The study of plant life"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_planetology" type="hidden"/>
|
||
<input name="comp_planetology_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--planetology" name="act_toggle-planetology" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="planetology" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Study of planets and other celestial body"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_asteroid_mining" type="hidden"/>
|
||
<input name="comp_asteroid_mining_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--asteroid_mining" name="act_toggle-asteroid_mining" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="asteroid mining" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Training in the tools and procedures used in mining asteroids"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_jury_rigging" type="hidden"/>
|
||
<input name="comp_jury_rigging_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--jury_rigging" name="act_toggle-jury_rigging" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="jury rigging" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Makeshift repairs"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_engineering" type="hidden"/>
|
||
<input name="comp_engineering_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--engineering" name="act_toggle-engineering" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="engineering" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Design, building, and use of engines, machines, and structures"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_hacking" type="hidden"/>
|
||
<input name="comp_hacking_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--hacking" name="act_toggle-hacking" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="hacking" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Unauthorized access to computer systems"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_vehicle_specialization" type="hidden"/>
|
||
<input name="comp_vehicle_specialization_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--vehicle_specialization" name="act_toggle-vehicle_specialization" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="vehicle specialization" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Specific vehicle class"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_astrogation" type="hidden"/>
|
||
<input name="comp_astrogation_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--astrogation" name="act_toggle-astrogation" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="astrogation" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Navigation in outer space"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_physics" type="hidden"/>
|
||
<input name="comp_physics_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--physics" name="act_toggle-physics" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="physics" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Study of nature and properties of matter and energy"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_mysticism" type="hidden"/>
|
||
<input name="comp_mysticism_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--mysticism" name="act_toggle-mysticism" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="mysticism" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Spiritual apprehension of hidden knowledge"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_tactics" type="hidden"/>
|
||
<input name="comp_tactics_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--tactics" name="act_toggle-tactics" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="tactics" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Manuevering military forces in battle"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_gunnery" type="hidden"/>
|
||
<input name="comp_gunnery_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--gunnery" name="act_toggle-gunnery" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="gunnery" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Starship weaponry"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_firearms" type="hidden"/>
|
||
<input name="comp_firearms_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--firearms" name="act_toggle-firearms" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="firearms" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Guns and their use"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_close-quarters_combat" type="hidden"/>
|
||
<input name="comp_close-quarters_combat_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--close-quarters_combat" name="act_toggle-close-quarters_combat" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="close-quarters combat" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Hand-tohand, melee fighting"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_explosives" type="hidden"/>
|
||
<input name="comp_explosives_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--explosives" name="act_toggle-explosives" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="explosives" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Bombs and incendiary devices"></span></p></span>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-skillcol--master">
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_sophontology" type="hidden"/>
|
||
<input name="comp_sophontology_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--sophontology" name="act_toggle-sophontology" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="sophontology" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Alien psychology"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_xenobiology" type="hidden"/>
|
||
<input name="comp_xenobiology_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--xenobiology" name="act_toggle-xenobiology" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="xenobiology" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Alien biology"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_surgery" type="hidden"/>
|
||
<input name="comp_surgery_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--surgery" name="act_toggle-surgery" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="surgery" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Medical speciality involving manual operation"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_cybernetics" type="hidden"/>
|
||
<input name="comp_cybernetics_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--cybernetics" name="act_toggle-cybernetics" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="cybernetics" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Interface between man and machine"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_robotics" type="hidden"/>
|
||
<input name="comp_robotics_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--robotics" name="act_toggle-robotics" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="robotics" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Design and operation of robots, drones, and androids"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_artificial_intelligence" type="hidden"/>
|
||
<input name="comp_artificial_intelligence_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--artificial_intelligence" name="act_toggle-artificial_intelligence" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="artificial intelligence" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Knowledge of simulacrum of human consciousness"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_command" type="hidden"/>
|
||
<input name="comp_command_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--command" name="act_toggle-command" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="command" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Leadership and authority"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_hyperspace" type="hidden"/>
|
||
<input name="comp_hyperspace_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--hyperspace" name="act_toggle-hyperspace" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="hyperspace" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="FTL travel"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_xenoesotericism" type="hidden"/>
|
||
<input name="comp_xenoesotericism_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--xenoesotericism" name="act_toggle-xenoesotericism" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="xenoesotericism" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Obscure alien mysticism, religion, and belief"></span></p></span>
|
||
</div>
|
||
<div class="ms-cm-skill">
|
||
<input name="comp_weapon_specialization" type="hidden"/>
|
||
<input name="comp_weapon_specialization_type" type="hidden"/>
|
||
<button class="ms-cm-skill__wrapper ms-cm-skill__wrapper--weapon_specialization" name="act_toggle-weapon_specialization" type="action">
|
||
<div class="ms-cm-skill__check"></div>
|
||
<div class="ms-cm-skill__name" data-i18n="weapon specialization" type="roll"></div>
|
||
</button><span class="ms-cm-tooltip">
|
||
<p><span data-i18n="Proficiency with a specific weapon"></span></p></span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-pagecontrol">
|
||
<button class="ms-cm-pagecontrol__left" data-i18n="previous" type="back" value="class">previous</button>
|
||
<button class="ms-cm-pagecontrol__middle" data-i18n="cancel" type="cancel">cancel</button>
|
||
<button class="ms-cm-pagecontrol__right" data-i18n="next" type="back" value="equipment">next</button>
|
||
</div>
|
||
</div>
|
||
</charmancer>
|
||
<charmancer class="sheet-charmancer-equipment">
|
||
<div class="ms-cm-wrapper">
|
||
<div class="t__topbar"></div>
|
||
<div class="ms-cm-container">
|
||
<div class="ms-cm-panel">
|
||
<h2 class="ms-cm-guidetitle" data-i18n="choose equipment"></h2>
|
||
<p class="ms-cm-guidetext" data-i18n="charmancer-step5"></p>
|
||
</div>
|
||
<div class="ms-cm-panel">
|
||
<div class="ms-cm-package">
|
||
<div class="ms-cm-package__title" data-i18n="choose an equipment package"></div>
|
||
<input name="comp_equipment" type="hidden"/>
|
||
<select class="ms-cm-skill__select" name="comp_package">
|
||
<option data-i18n="choose" value="choose"></option>
|
||
</select>
|
||
<div class="t__package"></div>
|
||
<div class="choice custompackage"><span data-i18n="You can add custom equipment to the character sheet after completing the charactermancer."></span></div>
|
||
</div>
|
||
<div class="ms-cm-credits">
|
||
<div class="ms-cm-credits__title" data-i18n="starting credits"></div>
|
||
<div class="ms-cm-credits__roll">
|
||
<button name="roll_credits" type="roll" value="&{template:ms-cm},{{title=credit roll}},{{credits=[[5d10*10]]}}"></button>
|
||
<input name="comp_credits" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-credits__display t__credits"></div>
|
||
</div>
|
||
<div class="ms-cm-trinket">
|
||
<div class="ms-cm-trinket__title" data-i18n="trinket"></div>
|
||
<div class="ms-cm-trinket__roll t__trinketroll"></div>
|
||
<div class="ms-cm-trinket__display t__trinket"></div>
|
||
<div class="choice customtrinket"><span data-i18n="Add a custom trinket."></span>
|
||
<input name="comp_trinket" type="hidden"/>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-patch">
|
||
<div class="ms-cm-patch__title" data-i18n="patch"></div>
|
||
<div class="ms-cm-patch__roll t__patchroll"></div>
|
||
<div class="ms-cm-patch__display t__patch"></div>
|
||
<div class="choice custompatch"><span data-i18n="Add a custom patch."></span>
|
||
<input name="comp_patch" type="hidden"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-pagecontrol">
|
||
<button class="ms-cm-pagecontrol__left" data-i18n="previous" type="back" value="skills">previous</button>
|
||
<button class="ms-cm-pagecontrol__middle" data-i18n="cancel" type="cancel">cancel</button>
|
||
<button class="ms-cm-pagecontrol__right" data-i18n="next" type="back" value="review">next</button>
|
||
</div>
|
||
</div>
|
||
</charmancer>
|
||
<charmancer class="sheet-charmancer-review">
|
||
<div class="ms-cm-wrapper">
|
||
<div class="ms-cm-container">
|
||
<div class="ms-cm-panel--full">
|
||
<h1 data-i18n="review"></h1>
|
||
<p class="ms-cm-guidetext" data-i18n="charmancer-step6"></p>
|
||
<div class="ms-cm-topstats">
|
||
<div class="ms-cm-stats">
|
||
<div class="ms-cm-mainstat cm-stat--strength">
|
||
<div class="ms-cm-mainstat__title" data-i18n="strength"></div>
|
||
<div class="ms-cm-mainstat__value t__strength"></div>
|
||
<input name="comp_strength_final" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-mainstat cm-stat--speed">
|
||
<div class="ms-cm-mainstat__title" data-i18n="speed"></div>
|
||
<div class="ms-cm-mainstat__value t__speed"></div>
|
||
<input name="comp_speed_final" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-mainstat cm-stat--intellect">
|
||
<div class="ms-cm-mainstat__title" data-i18n="intellect"></div>
|
||
<div class="ms-cm-mainstat__value t__intellect"></div>
|
||
<input name="comp_intellect_final" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-mainstat cm-stat--combat">
|
||
<div class="ms-cm-mainstat__title" data-i18n="combat"></div>
|
||
<div class="ms-cm-mainstat__value t__combat"></div>
|
||
<input name="comp_combat_final" type="hidden"/>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-altstats">
|
||
<div class="ms-cm-altstat">
|
||
<div class="ms-cm-altstat__title" data-i18n="health"></div>
|
||
<div class="ms-cm-altstat__value t__health"></div>
|
||
<input name="comp_health_final" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-altstat">
|
||
<div class="ms-cm-altstat__title" data-i18n="stress"></div>
|
||
<div class="ms-cm-altstat__value t__stress"></div>
|
||
<input name="comp_stress_final" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-altstat">
|
||
<div class="ms-cm-altstat__title" data-i18n="resolve"></div>
|
||
<div class="ms-cm-altstat__value t__resolve"></div>
|
||
<input name="comp_resolve_final" type="hidden"/>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-saves">
|
||
<div class="ms-cm-mainsave">
|
||
<div class="ms-cm-mainsave__title" data-i18n="sanity"></div>
|
||
<div class="ms-cm-mainsave__value t__sanity"></div>
|
||
<input name="comp_sanity_final" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-mainsave">
|
||
<div class="ms-cm-mainsave__title" data-i18n="fear"></div>
|
||
<div class="ms-cm-mainsave__value t__fear"></div>
|
||
<input name="comp_fear_final" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-mainsave">
|
||
<div class="ms-cm-mainsave__title" data-i18n="body"></div>
|
||
<div class="ms-cm-mainsave__value t__body"></div>
|
||
<input name="comp_body_final" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-mainsave">
|
||
<div class="ms-cm-mainsave__title" data-i18n="armor"></div>
|
||
<div class="ms-cm-mainsave__value t__armor"></div>
|
||
<input name="comp_armor_final" type="hidden"/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-review">
|
||
<div>
|
||
<div class="ms-cm-classblock">
|
||
<h2 data-i18n="class"> </h2>
|
||
<div class="ms-cm-classrow">
|
||
<div class="ms-cm-classrow__title" data-i18n="class"></div>
|
||
<div class="ms-cm-classrow__display t__class"></div>
|
||
<input name="comp_class_final" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-classrow">
|
||
<div class="ms-cm-classrow__title" data-i18n="stress effect"></div>
|
||
<div class="ms-cm-classrow__display t__stresseffect"></div>
|
||
<input name="comp_stresseffect_final" type="hidden"/>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-skillblock">
|
||
<h2 data-i18n="skills"> </h2>
|
||
<div class="ms-cm-skrow">
|
||
<div class="ms-cm-skrow__title" data-i18n="remaining skillpoints"></div>
|
||
<div class="ms-cm-skrow__display t__skillpoints"></div>
|
||
</div>
|
||
<div class="ms-cm-skrow">
|
||
<div class="ms-cm-skrow__title" data-i18n="skills"></div>
|
||
<div class="t__skilllist"></div>
|
||
</div>
|
||
<input name="comp_skills_final" type="hidden"/>
|
||
<input name="comp_skillpoints_final" type="hidden"/>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-equipment">
|
||
<h2 data-i18n="equipment"></h2>
|
||
<div class="ms-cm-eqrow">
|
||
<div class="ms-cm-eqrow__title" data-i18n="starting credits"></div>
|
||
<div class="ms-cm-eqrow__display t__credits"></div>
|
||
<input name="comp_credits_final" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-eqrow">
|
||
<div class="ms-cm-eqrow__title" data-i18n="trinket"></div>
|
||
<div class="ms-cm-eqrow__display t__trinket"></div>
|
||
<input name="comp_trinket_final" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-eqrow">
|
||
<div class="ms-cm-eqrow__title" data-i18n="patch"></div>
|
||
<div class="ms-cm-eqrow__display t__patch"></div>
|
||
<input name="comp_patch_final" type="hidden"/>
|
||
</div>
|
||
<div class="ms-cm-eqrow">
|
||
<div class="ms-cm-eqrow__title" data-i18n="equipment"></div>
|
||
<input name="comp_equipment_final" type="hidden"/>
|
||
</div>
|
||
<div class="t__equipmentlist"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="ms-cm-pagecontrol">
|
||
<button class="ms-cm-pagecontrol__left" data-i18n="back" type="back" value="equipment">back</button>
|
||
<button class="ms-cm-pagecontrol__middle" data-i18n="cancel" type="cancel">cancel</button>
|
||
<button class="ms-cm-pagecontrol__right" data-i18n="finish" type="finish" value="newcharacter">finish</button>
|
||
</div>
|
||
</div>
|
||
</charmancer>
|
||
<charmancer class="sheet-charmancer-final">
|
||
<div class="ms-cm-wrapper">
|
||
<div class="ms-cm-panel--full">
|
||
<h1 data-i18n="Building character..."></h1>
|
||
<div class="ms-cm-progressbar t__progressbar">
|
||
<div style="width: 0%;"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</charmancer>
|
||
<script type="text/worker">
|
||
// Sheet Variables
|
||
|
||
const skillList = {
|
||
"linguistics":{
|
||
unlocks: ["sophontology"]
|
||
},
|
||
"biology":{
|
||
unlocks: ["genetics","psychology"]
|
||
},
|
||
"first_aid": {
|
||
unlocks: ["pathology"]
|
||
},
|
||
"hydroponics": {
|
||
unlocks: ["botany"]
|
||
},
|
||
"geology": {
|
||
unlocks: ["planetology","asteroid_mining"]
|
||
},
|
||
"zero-g": {
|
||
unlocks: ["asteroid_mining"]
|
||
},
|
||
"scavenging": {
|
||
unlocks: ["asteroid_mining","jury_rigging"]
|
||
},
|
||
"heavy_machinery": {
|
||
unlocks: ["asteroid_mining","engineering"]
|
||
},
|
||
"computers": {
|
||
unlocks: ["engineering","hacking"]
|
||
},
|
||
"mechanical_repair": {
|
||
unlocks: ["engineering", "jury_rigging", "vehicle_specialization"]
|
||
},
|
||
"driving": {
|
||
unlocks: ["vehicle_specialization"]
|
||
},
|
||
"piloting": {
|
||
unlocks: ["vehicle_specialization","astrogation"]
|
||
},
|
||
"mathematics": {
|
||
unlocks: ["physics"]
|
||
},
|
||
"art": {
|
||
unlocks: ["mysticism"]
|
||
},
|
||
"archaeology": {
|
||
unlocks: ["mysticism"]
|
||
},
|
||
"theology": {
|
||
unlocks: ["mysticism"]
|
||
},
|
||
"military_training": {
|
||
unlocks: ["tactics","gunnery","firearms","explosives","close-quarters_combat"]
|
||
},
|
||
"rimwise": {
|
||
unlocks: ["firearms","close-quarters_combat"]
|
||
},
|
||
"athletics": {
|
||
unlocks: ["close-quarters_combat"]
|
||
},
|
||
"chemistry": {
|
||
unlocks: ["explosives"]
|
||
},
|
||
"psychology": {
|
||
unlocks: ["sophontology"]
|
||
},
|
||
"genetics": {
|
||
unlocks: ["xenobiology"]
|
||
},
|
||
"pathology": {
|
||
unlocks: ["xenobiology","surgery"]
|
||
},
|
||
"botany": {
|
||
unlocks: ["xenobiology"]
|
||
},
|
||
"planetology": {
|
||
unlocks: []
|
||
},
|
||
"asteroid_mining" : {
|
||
unlocks: []
|
||
},
|
||
"jury_rigging": {
|
||
unlocks: ["cybernetics"]
|
||
},
|
||
"engineering": {
|
||
unlocks: ["cybernetics","robotics","artificial_intelligence"]
|
||
},
|
||
"hacking": {
|
||
unlocks: ["artificial_intelligence"]
|
||
},
|
||
"vehicle_specialization": {
|
||
unlocks: ["command"]
|
||
},
|
||
"astrogation": {
|
||
unlocks: ["hyperspace"]
|
||
},
|
||
"physics": {
|
||
unlocks: ["hyperspace"]
|
||
},
|
||
"mysticism": {
|
||
unlocks: ["xenoesotericism", "hyperspace"]
|
||
},
|
||
"tactics": {
|
||
unlocks: ["command"]
|
||
},
|
||
"gunnery": {
|
||
unlocks: ["weapon_specialization"]
|
||
},
|
||
"firearms": {
|
||
unlocks: ["weapon_specialization"]
|
||
},
|
||
"close-quarters_combat": {
|
||
unlocks: ["weapon_specialization"]
|
||
},
|
||
"explosives": {
|
||
unlocks: ["weapon_specialization"]
|
||
},
|
||
"sophontology": {},
|
||
"xenobiology": {},
|
||
"surgery": {},
|
||
"cybernetics": {},
|
||
"robotics": {},
|
||
"artificial_intelligence": {},
|
||
"command": {},
|
||
"hyperspace": {},
|
||
"xenoesotericism": {},
|
||
"weapon_specialization": {}
|
||
};
|
||
|
||
const skillArray = Object.keys(skillList);
|
||
|
||
// FUNCTIONS
|
||
|
||
const advantageToggle = (newValue) => {
|
||
|
||
}
|
||
|
||
const toggleSkill = (source, newValue) => {
|
||
|
||
getAttrs(["sheet_skill_toggles"], values => {
|
||
|
||
const existingValue = values["sheet_skill_toggles"].trim();
|
||
const valueList = existingValue.split(" ")
|
||
const unlocks = skillList[source].unlocks || [];
|
||
|
||
let updateAttr = "";
|
||
|
||
if (newValue === "0") {
|
||
|
||
unlocks.forEach(item => valueList.splice(valueList.indexOf(item), 1));
|
||
|
||
updateAttr = valueList.join(" ");
|
||
|
||
} else if (newValue === "on") {
|
||
|
||
updateAttr = existingValue + " ";
|
||
|
||
if (unlocks === []) return;
|
||
|
||
unlocks.forEach(unlock => updateAttr += `${unlock} `);
|
||
|
||
}
|
||
|
||
setAttrs({sheet_skill_toggles:updateAttr});
|
||
});
|
||
|
||
}
|
||
|
||
const addItem = (new_value, previous_value, source, source_type) => {
|
||
if (new_value === previous_value || new_value !== "Weapon" || source_type !== "player") return;
|
||
|
||
console.log(source_type)
|
||
|
||
const repeating_length = "repeating_equipment_".length;
|
||
const repeating_id_length = 20;
|
||
const repeating_id = source.substring(repeating_length, repeating_length + repeating_id_length);
|
||
const repeating_equipment_prefix = `repeating_equipment_${repeating_id}`;
|
||
const new_repeating_id = generateRowID();
|
||
const repeating_attacks_prefix = `repeating_attacks_${new_repeating_id}`;
|
||
|
||
const requestAttrs = [`${repeating_equipment_prefix}_equipment_name`,`${repeating_equipment_prefix}_equipment_type`];
|
||
|
||
getAttrs(requestAttrs, values => {
|
||
const updateAttrs = {};
|
||
|
||
updateAttrs[`${repeating_attacks_prefix}_attack_name`] = values[`${repeating_equipment_prefix}_equipment_name`];
|
||
updateAttrs[`${repeating_attacks_prefix}_attack_linkedid`] = repeating_id;
|
||
|
||
setAttrs(updateAttrs);
|
||
|
||
});
|
||
}
|
||
|
||
const toggleClass = (new_class, previous_class, source_type) => {
|
||
const requestAttrs = [
|
||
"init",
|
||
"level",
|
||
"sanity",
|
||
"fear",
|
||
"body",
|
||
"armor",
|
||
"strength",
|
||
"speed",
|
||
"intellect",
|
||
"combat",
|
||
"stress_panic",
|
||
];
|
||
|
||
if (source_type !== "player") return;
|
||
|
||
const update = {};
|
||
|
||
update["level"] = 0;
|
||
update["xp"] = 0;
|
||
update["stress"] = 2;
|
||
update["resolve"] = 0;
|
||
update["init"] = 1;
|
||
|
||
switch (new_class.toLowerCase()) {
|
||
case "teamster":
|
||
update["sanity"] = 30;
|
||
update["fear"] = 35;
|
||
update["body"] = 30;
|
||
update["armor"] = 35;
|
||
update["strength"] = rollDice(6) + 5;
|
||
update["speed"] = rollDice(6) + 5;
|
||
update["intellect"] = rollDice(6);
|
||
update["combat"] = rollDice(6);
|
||
update["skill_points"] = 4;
|
||
update["stress_panic"] = getTranslationByKey(["Once per session, a Teamster may re-roll a roll on the Panic Effect Table."]);
|
||
break;
|
||
case "android":
|
||
update["sanity"] = 20;
|
||
update["fear"] = 85;
|
||
update["body"] = 40;
|
||
update["armor"] = 25;
|
||
update["strength"] = rollDice(6);
|
||
update["speed"] = rollDice(6) + 5;
|
||
update["intellect"] = rollDice(6) + 5;
|
||
update["combat"] = rollDice(6);
|
||
update["skill_points"] = 2;
|
||
update["stress_panic"] = getTranslationByKey(["Fear Saves made in the presence of Androids have Disadvantage."]);
|
||
break;
|
||
case "scientist":
|
||
update["sanity"] = 40;
|
||
update["fear"] = 25;
|
||
update["body"] = 25;
|
||
update["armor"] = 30;
|
||
update["strength"] = rollDice(6);
|
||
update["speed"] = rollDice(6);
|
||
update["intellect"] = rollDice(6) + 10;
|
||
update["combat"] = rollDice(6);
|
||
update["skill_points"] = 3;
|
||
update["stress_panic"] = getTranslationByKey(["Whenever a Scientist fails a Sanity Save, every friendly player nearby gains 1 Stress."]);
|
||
break;
|
||
case "marine":
|
||
update["sanity"] = 25;
|
||
update["fear"] = 30;
|
||
update["body"] = 35;
|
||
update["armor"] = 40;
|
||
update["strength"] = rollDice(6);
|
||
update["speed"] = rollDice(6);
|
||
update["intellect"] = rollDice(6);
|
||
update["combat"] = rollDice(6) + 5;
|
||
update["skill_points"] = 3;
|
||
update["stress_panic"] = getTranslationByKey(["Whenever a Marine Panics, every friendly player nearby must make a Fear Save."]);
|
||
break;
|
||
default:
|
||
return;
|
||
}
|
||
|
||
getAttrs(requestAttrs, values => {
|
||
|
||
if (previous_class === new_class && values["init"] === "1") return;
|
||
|
||
requestAttrs.forEach(attr => {
|
||
if (values[attr] !== "") update[attr] = values[attr];
|
||
})
|
||
|
||
if (values["level"] === 0 || values["level"] === "") {
|
||
|
||
const fields = [
|
||
"level",
|
||
"sanity",
|
||
"fear",
|
||
"body",
|
||
"armor",
|
||
"stress_panic",
|
||
"stress",
|
||
"resolve",
|
||
"strength",
|
||
"speed",
|
||
"intellect",
|
||
"combat",
|
||
"skill_points",
|
||
"xp",
|
||
"init"
|
||
];
|
||
|
||
const updateAttrs = {};
|
||
|
||
fields.forEach(field => {
|
||
const fallback = values[field] || 0;
|
||
updateAttrs[field] = (typeof field !== undefined) ? update[field] : fallback;
|
||
});
|
||
|
||
const hitpoints = parseInt(update["strength"]) * 2;
|
||
|
||
updateAttrs["health"] = hitpoints;
|
||
updateAttrs["health_max"] = hitpoints;
|
||
|
||
setAttrs(updateAttrs);
|
||
|
||
}
|
||
|
||
});
|
||
}
|
||
|
||
const rollDice = (number_of_dice) => {
|
||
let total = 0;
|
||
|
||
for (let i = 0; i <= number_of_dice; i++) total += Math.ceil(Math.random()*10);
|
||
|
||
return total;
|
||
}
|
||
|
||
const calculateRow = (row, new_value) => {
|
||
|
||
if (!row) return console.warn("Tried to update a ship row, but there wasn't a row specified");
|
||
|
||
const int_value = parseInt(new_value) || 0;
|
||
|
||
if (row === "lifesupport") setAttrs({"ship_lifesupport_modules":Math.ceil(int_value/10), life_support_hull:Math.ceil(int_value/10), ship_galleys: Math.ceil(int_value/20)});
|
||
if (row === "command") setAttrs({"ship_command_modules":Math.ceil(int_value/4), command_hull:Math.ceil(int_value/4), ship_livingquarters:int_value});
|
||
if (row === "armor") setAttrs({armor:Math.floor(int_value*10), armor_hull:Math.floor(int_value*3)});
|
||
if (row === "jumpdrives") {
|
||
let hull = 0;
|
||
for (let i = 1; i <= int_value; i++) hull += i;
|
||
setAttrs({jump_drives_hull:hull, ship_computer_modules:int_value});
|
||
}
|
||
if (row === "computer") setAttrs({computer_hull:int_value});
|
||
if (row === "galley") setAttrs({galley_hull:int_value});
|
||
if (row === "weaponmount") setAttrs({ship_weapon_mounts:int_value, weapon_mount_hull:int_value});
|
||
if (row === "medbays") setAttrs({ship_medint_bonus:Math.floor(int_value*5), medical_bay_hull:int_value});
|
||
if (row === "cryochamber") setAttrs({ship_cryochambers:Math.ceil(int_value/4), cryochamber_hull:Math.ceil(int_value/4)});
|
||
if (row === "livingquarters") {setAttrs({living_quarters_hull:int_value})};
|
||
if (row === "barracks") setAttrs({ship_barracks:Math.ceil(int_value/12), barracks_hull:Math.ceil(int_value/12), crew_max:int_value});
|
||
if (row === "cargoholds") setAttrs({ship_cargoholds:Math.ceil(int_value/10), cargo_hold_hull:Math.ceil(int_value/10), cargo_max: int_value});
|
||
if (row === "sciencelabs") setAttrs({ship_resint_bonus:Math.floor(int_value*5), science_lab_hull:int_value});
|
||
if (row === "thrusters") {
|
||
getAttrs(["ship_thruster_hullreq","ship_thrusters"], values => {
|
||
const hullreq = parseInt(values["ship_thruster_hullreq"]) || 0;
|
||
const thrusters = parseInt(values["ship_thrusters"]) || 0;
|
||
setAttrs({thrusters_hull : hullreq + thrusters, ship_engine_thrusterreq: thrusters});
|
||
});
|
||
}
|
||
if (row === "fuel") {
|
||
getAttrs(["ship_fuel_min","ship_fuel_extra"], values => {
|
||
const min_fuel = parseInt(values["ship_fuel_min"]) || 0;
|
||
const extra_fuel = parseInt(values["ship_fuel_extra"]) || 0;
|
||
|
||
setAttrs({fuel_hull: min_fuel + extra_fuel});
|
||
});
|
||
}
|
||
if (row === "engine") {
|
||
getAttrs(["ship_engine_hullreq","ship_engine_thrusterreq","ship_jumpdrive_modules"], values => {
|
||
const hullreq = parseInt(values["ship_engine_hullreq"]) || 0;
|
||
const thrustreq = parseInt(values["ship_engine_thrusterreq"]) || 0;
|
||
const jumpdrive = parseInt(values["ship_jumpdrive_modules"]) || 0;
|
||
|
||
setAttrs({ship_engine:hullreq + thrustreq + jumpdrive, engine_hull: hullreq + thrustreq + jumpdrive, ship_fuel_min: (hullreq + thrustreq + jumpdrive) * 3})
|
||
});
|
||
}
|
||
if (row === "frame") setAttrs({frame_hull:int_value});
|
||
|
||
}
|
||
|
||
const recalculateBaseHull = () => {
|
||
const base_hull_array = [
|
||
"jump_drives_hull",
|
||
"life_support_hull",
|
||
"command_hull",
|
||
"armor_hull",
|
||
"jump_drive_hull",
|
||
"computer_hull",
|
||
"galley_hull",
|
||
"weapon_mount_hull",
|
||
"medical_bay_hull",
|
||
"cryochamber_hull",
|
||
"living_quarters_hull",
|
||
"barracks_hull",
|
||
"cargo_hold_hull",
|
||
"science_lab_hull"
|
||
];
|
||
|
||
getAttrs(base_hull_array, values => {
|
||
const base_hull_int = Object.values(values).map(value => parseInt(value) || 0);
|
||
|
||
const base_hull = base_hull_int.reduce((total, value) => total + value);
|
||
|
||
setAttrs({ship_base_hull: base_hull, ship_thruster_hullreq: Math.ceil(base_hull / 10), ship_engine_hullreq: Math.ceil(base_hull / 20), ship_frame: Math.ceil(base_hull / 10)});
|
||
});
|
||
}
|
||
|
||
const recalculateTotalHull = () => {
|
||
const total_hull_array = [
|
||
"ship_base_hull",
|
||
"thrusters_hull",
|
||
"engine_hull",
|
||
"fuel_hull",
|
||
"frame_hull"
|
||
];
|
||
|
||
getAttrs(total_hull_array, values => {
|
||
const total_hull_int = Object.values(values).map(value => parseInt(value) || 0);
|
||
const total_hull = total_hull_int.reduce((total, value) => total + value);
|
||
|
||
setAttrs({ship_total_hull: total_hull});
|
||
});
|
||
}
|
||
|
||
const calculateCombatIntelligence = (new_value) => {
|
||
const value = parseInt(new_value) || 0;
|
||
|
||
const combat = (value * 10) + 10;
|
||
const intellect = (value * 10) + 30;
|
||
|
||
setAttrs({combat:combat,intellect:intellect});
|
||
}
|
||
|
||
const calculateSpeed = (new_value) => {
|
||
const value = parseInt(new_value) || 0;
|
||
|
||
const speed = value * 10;
|
||
|
||
setAttrs({speed:speed});
|
||
}
|
||
|
||
const calculateHullCost = (new_value) => {
|
||
const value = parseInt(new_value) || 0;
|
||
|
||
const hull = value;
|
||
const cost = value * 10;
|
||
|
||
setAttrs({ship_cost:cost, hull: hull, hull_max: hull});
|
||
}
|
||
|
||
const calculateFuel = (new_value) => {
|
||
const value = parseInt(new_value) || 0;
|
||
|
||
setAttrs({fuel:value, fuel_max:value});
|
||
}
|
||
|
||
const checkFuelValue = (new_value) => {
|
||
const value = parseInt(new_value) || 0;
|
||
|
||
getAttrs(["hull_25","hull_50","hull_75"], values => {
|
||
const hull_25 = values.hull_25;
|
||
const hull_50 = values.hull_50;
|
||
const hull_75 = values.hull_75;
|
||
|
||
let hull_toggle = "";
|
||
|
||
if (value <= hull_75) hull_toggle = 75;
|
||
else if (value <= hull_50) hull_toggle = 50;
|
||
else if (value <= hull_25) hull_toggle = 25;
|
||
|
||
setAttrs({hull_toggle: hull_toggle});
|
||
});
|
||
}
|
||
|
||
const calculateHullValues = () => {
|
||
getAttrs(["hull_max"], values => {
|
||
const value = parseInt(values["hull_max"]) || 0;
|
||
|
||
const n25 = Math.floor(value * 0.75);
|
||
const n50 = Math.floor(value * 0.5);
|
||
const n75 = Math.floor(value * 0.25);
|
||
|
||
setAttrs({
|
||
hull_25: n25,
|
||
hull_50: n50,
|
||
hull_75: n75,
|
||
}, callback => checkFuelValue(value));
|
||
});
|
||
}
|
||
|
||
const parseJSON = (string) => {
|
||
try {
|
||
return JSON.parse(string);
|
||
} catch {
|
||
return false;
|
||
}
|
||
};
|
||
|
||
const capitalizeString = (string) => {
|
||
string = string.replace(/_/g, " ");
|
||
|
||
[" ",":","(","/","-"].forEach(seperator => {
|
||
string = string.split(seperator).map(
|
||
word => `${word.slice(0,1).toUpperCase()}${word.slice(1,word.length)}`
|
||
).join(seperator);
|
||
});
|
||
|
||
return string;
|
||
}
|
||
|
||
const dropHandler = (values) => {
|
||
const name = values.drop_name;
|
||
const data = JSON.parse(values.drop_data) || {};
|
||
const category = values.drop_category;
|
||
|
||
console.log(data);
|
||
|
||
if (name === ""|| typeof data === "" || typeof category === "") return console.warn("No drag and drop data found.");
|
||
|
||
switch (category) {
|
||
case "Classes":
|
||
handleClassDrop(name, data);
|
||
break;
|
||
case "Items":
|
||
handleItemDrop(name, data);
|
||
break;
|
||
case "Mercenaries":
|
||
handleMercenaryDrop(name, data);
|
||
break;
|
||
case "Ships":
|
||
handleShipDrop(name, data);
|
||
break;
|
||
case "Ship Weapons":
|
||
handleShipWeaponDrop(name, data);
|
||
break;
|
||
default:
|
||
console.warn("Could not distinguish category from drop.")
|
||
break;
|
||
}
|
||
|
||
}
|
||
|
||
const handleItemDrop = (name, data) => {
|
||
const id = generateRowID();
|
||
const address = `repeating_equipment_${id}_equipment`;
|
||
|
||
let updateAttrs = {};
|
||
|
||
updateAttrs[`${address}_name`] = name;
|
||
updateAttrs[`${address}_notes`] = data.Description || "";
|
||
|
||
if (data.Damage) {
|
||
const attack_id = generateRowID();
|
||
const attack_address = `repeating_attacks_${id}_attack`
|
||
|
||
updateAttrs[`${address}_type`] = "Weapon";
|
||
updateAttrs[`${address}_linkedid`] = attack_id;
|
||
|
||
updateAttrs[`${attack_address}_linkedid`] = id;
|
||
updateAttrs[`${attack_address}_name`] = name;
|
||
updateAttrs[`${attack_address}_damage`] = data.Damage;
|
||
updateAttrs[`${attack_address}_critical_damage`] = data["Critical Damage"] || "";
|
||
updateAttrs[`${attack_address}_critical_effect`] = data["Critical Effect"] || "-";
|
||
|
||
let combined_string = (data.Description) ? `${data.Description} ` : ``;
|
||
combined_string += (data.Special) ? `${data.Special} ` : ``;
|
||
|
||
updateAttrs[`${attack_address}_notes`] = combined_string;
|
||
|
||
const range = JSON.parse(data.Range) || {};
|
||
|
||
if (range && range.CQC !== "Yes") {
|
||
updateAttrs[`${attack_address}_type`] = "Ranged";
|
||
|
||
updateAttrs[`${attack_address}_shots`] = data.Shots;
|
||
updateAttrs[`${attack_address}_ammunition`] = data.Ammunition;
|
||
|
||
updateAttrs[`${attack_address}_range_s`] = range.Short;
|
||
updateAttrs[`${attack_address}_range_m`] = range.Medium || "-";
|
||
updateAttrs[`${attack_address}_range_l`] = range.Long || "-";
|
||
|
||
} else {
|
||
updateAttrs[`${attack_address}_type`] = "Melee";
|
||
}
|
||
} else if (data["Armor Save"]) {
|
||
updateAttrs[`${address}_type`] = "Armor";
|
||
updateAttrs[`${address}_armor_bonus`] = data["Armor Save"];
|
||
} else {
|
||
updateAttrs[`${address}_type`] = "Gear";
|
||
}
|
||
|
||
setAttrs(updateAttrs);
|
||
|
||
}
|
||
|
||
const handleClassDrop = (name, data) => {
|
||
setAttrs({class:name});
|
||
if (name) toggleClass(name,"","player");
|
||
}
|
||
|
||
const handleMercenaryDrop = () => {
|
||
console.warn("Mercenary drop not yet supported.");
|
||
}
|
||
|
||
const handleMonsterDrop = () => {
|
||
console.warn("Monster drop not yet supported.");
|
||
}
|
||
|
||
const handleShipDrop = (name, data) => {
|
||
const modules_raw = data["Required Modules"].split(",").map(item => item.trim());
|
||
const modules_parsed = {};
|
||
const updateAttrs = {};
|
||
|
||
modules_raw.forEach(module => modules_parsed[module.toLowerCase().replace(/[^a-z ]/g,"").trim().replace(/ /g,"_")] = parseInt(module.replace(/[^0-9]/g,"")) || 0);
|
||
|
||
console.log(modules_parsed);
|
||
|
||
updateAttrs["ship_class"] = name;
|
||
updateAttrs["ship_passengers"] = ((modules_parsed.barracks || 0) * 12) + modules_parsed.living_quarters || 1;
|
||
updateAttrs["life_support"] = modules_parsed.life_support || 1;
|
||
updateAttrs["ship_officers"] = modules_parsed.living_quarters || 0;
|
||
updateAttrs["ship_armor_modules"] = modules_parsed.armor || 0;
|
||
updateAttrs["ship_jumpdrive_modules"] = modules_parsed.jump_drive || 0;
|
||
updateAttrs["ship_computer_modules"] = modules_parsed.computer || 0;
|
||
updateAttrs["ship_galley"] = modules_parsed.galley || "";
|
||
updateAttrs["ship_weapon_mounts"] = modules_parsed.weapon_mount || 0;
|
||
updateAttrs["ship_medbays"] = modules_parsed.medical_bays || 0;
|
||
updateAttrs["ship_cyropods"] = (modules_parsed.cryochamber * 4) || 0;
|
||
updateAttrs["ship_living_quarters"] = modules_parsed.living_quarters || 0;
|
||
updateAttrs["ship_barracks"] = modules_parsed.barracks || 0;
|
||
updateAttrs["ship_cargoholds"] = modules_parsed.cargo_hold || 0;
|
||
updateAttrs["ship_sciencelabs"] = modules_parsed.science_lab || 0;
|
||
updateAttrs["ship_thrusters"] = modules_parsed.thrusters || 0;
|
||
updateAttrs["ship_engine"] = modules_parsed.engine || 0;
|
||
|
||
console.log(updateAttrs);
|
||
setAttrs(updateAttrs);
|
||
}
|
||
|
||
const handleShipWeaponDrop = () => {
|
||
|
||
}
|
||
|
||
// EVENT HANDLERS
|
||
|
||
skillArray.forEach(skill => on(`change:${skill}`, eventInfo => toggleSkill(skill, eventInfo.newValue)));
|
||
|
||
on(`change:repeating_equipment:equipment_type`, eventInfo => addItem(eventInfo.newValue, eventInfo.previousValue, eventInfo.sourceAttribute, eventInfo.sourceType));
|
||
|
||
on(`change:class`, eventInfo => toggleClass(eventInfo.newValue, eventInfo.previousValue, eventInfo.sourceType));
|
||
|
||
on(`change:ship_passengers`, eventInfo => calculateRow("lifesupport", eventInfo.newValue));
|
||
on(`change:ship_officers`, eventInfo => calculateRow("command", eventInfo.newValue));
|
||
on(`change:ship_armor_modules`, eventInfo => calculateRow("armor", eventInfo.newValue));
|
||
on(`change:ship_jumpdrive_modules`, eventInfo => calculateRow("jumpdrives", eventInfo.newValue));
|
||
on(`change:ship_computer_modules`, eventInfo => calculateRow("computer", eventInfo.newValue));
|
||
on(`change:ship_galleys`, eventInfo => calculateRow("galley", eventInfo.newValue));
|
||
on(`change:ship_weapons`, eventInfo => calculateRow("weaponmount", eventInfo.newValue));
|
||
on(`change:ship_medbays`, eventInfo => calculateRow("medbays", eventInfo.newValue));
|
||
on(`change:ship_cryopods`, eventInfo => calculateRow("cryochamber", eventInfo.newValue));
|
||
on(`change:ship_livingquarters`, eventInfo => calculateRow("livingquarters", eventInfo.newValue));
|
||
on(`change:ship_crew`, eventInfo => calculateRow("barracks", eventInfo.newValue));
|
||
on(`change:ship_cargo`, eventInfo => calculateRow("cargoholds", eventInfo.newValue));
|
||
on(`change:ship_sciencelabs`, eventInfo => calculateRow("sciencelabs", eventInfo.newValue));
|
||
on(`change:ship_thrusters change:ship_thruster_hullreq`, eventInfo => calculateRow("thrusters", eventInfo.newValue));
|
||
on(`change:ship_fuel_extra change:ship_fuel_min`, eventInfo => calculateRow("fuel", eventInfo.newValue));
|
||
on(`change:ship_engine_hullreq change:ship_engine_thrusterreq change:ship_jumpdrive_modules`, eventInfo => calculateRow("engine", eventInfo.newValue));
|
||
on(`change:ship_frame`, eventInfo => calculateRow("frame", eventInfo.newValue));
|
||
|
||
on(`change:ship_computer_modules`, eventInfo => calculateCombatIntelligence(eventInfo.newValue));
|
||
on(`change:ship_thrusters`, eventInfo => calculateSpeed(eventInfo.newValue));
|
||
on(`change:ship_total_hull`, eventInfo => calculateHullCost(eventInfo.newValue));
|
||
on(`change:fuel_hull`, eventInfo => calculateFuel(eventInfo.newValue));
|
||
|
||
on(`change:hull`, eventInfo => checkFuelValue(eventInfo.newValue));
|
||
on(`change:hull_max`, eventInfo => calculateHullValues());
|
||
|
||
on(`clicked:startship`, eventInfo => setAttrs({shipbuild:"on"}));
|
||
on(`clicked:completeship`, eventInfo => setAttrs({shipbuild:0}));
|
||
|
||
on(`clicked:launch_charmancer`, eventInfo => startCharactermancer("intro"));
|
||
|
||
on(`clicked:editname_on`, eventInfo => setAttrs({npcname_toggle:"on"}));
|
||
on(`clicked:editname_off`, eventInfo => setAttrs({npcname_toggle:0}));
|
||
|
||
on("change:drop_name", (eventInfo) => {
|
||
getAttrs(["drop_name", "drop_content", "drop_data", "drop_category"], (values) => {
|
||
dropHandler(values);
|
||
});
|
||
});
|
||
|
||
["life_support_hull","command_hull","armor_hull","jump_drives_hull","computer_hull","galley_hull",
|
||
"weapon_mount_hull","medical_bay_hull","cryochamber_hull","living_quarters_hull","barracks_hull",
|
||
"cargo_hold_hull", "science_lab_hull"].forEach(hull => on(`change:${hull}`, eventInfo => recalculateBaseHull()));
|
||
|
||
["base_hull", "thrusters_hull", "engine_hull", "fuel_hull", "frame_hull"].forEach(hull => on(`change:${hull}`, eventInfo => recalculateTotalHull()));{
|
||
const addTopBar = () => {
|
||
|
||
addRepeatingSection(`sheet-t__topbar`, `topbar`, section_id => {
|
||
const data = getCharmancerData();
|
||
const updateHTML = {};
|
||
|
||
["strength","speed","intellect","combat","health","stress","resolve","sanity","fear","body","armor"].forEach(item => {
|
||
const value = (data?.equipment?.values?.[item]) ? data.equipment.values[item] :
|
||
(data?.skills?.values?.[item]) ? data.skills.values[item] :
|
||
(data?.class?.values?.[item]) ? data.class.values[item] :
|
||
(data?.stats?.values?.[item]) ? data.stats.values[item] :
|
||
false;
|
||
|
||
const mod = (data?.equipment?.values?.[`${item}_mod`]) ? data.equipment.values[`${item}_mod`] :
|
||
(data?.skills?.values?.[`${item}_mod`]) ? data.skills.values[`${item}_mod`] :
|
||
(data?.class?.values?.[`${item}_mod`]) ? data.class.values[`${item}_mod`] :
|
||
(data?.stats?.values?.[`${item}_mod`]) ? data.stats.values[`${item}_mod`] :
|
||
0;
|
||
|
||
const final = (!value) ? "-" : parseInt(value) + parseInt(mod);
|
||
|
||
updateHTML[`${section_id} .sheet-t__${item}`] = final;
|
||
});
|
||
|
||
setCharmancerText(updateHTML);
|
||
|
||
});
|
||
|
||
};
|
||
|
||
const recalcStats = () => {
|
||
|
||
getRepeatingSections("sheet-t__topbar", section_ids => {
|
||
const section_id = section_ids.list[0];
|
||
const data = getCharmancerData();
|
||
const updateHTML = {};
|
||
|
||
["strength","speed","intellect","combat","health","stress","resolve","sanity","fear","body","armor"].forEach(item => {
|
||
|
||
const value = (data?.equipment?.values?.[item]) ? data.equipment.values[item] :
|
||
(data?.skills?.values?.[item]) ? data.skills.values[item] :
|
||
(data?.class?.values?.[item]) ? data.class.values[item] :
|
||
(data?.stats?.values?.[item]) ? data.stats.values[item] :
|
||
false;
|
||
|
||
const mod = (data?.equipment?.values?.[`${item}_mod`]) ? data.equipment.values[`${item}_mod`] :
|
||
(data?.skills?.values?.[`${item}_mod`]) ? data.skills.values[`${item}_mod`] :
|
||
(data?.class?.values?.[`${item}_mod`]) ? data.class.values[`${item}_mod`] :
|
||
(data?.stats?.values?.[`${item}_mod`]) ? data.stats.values[`${item}_mod`] :
|
||
0;
|
||
|
||
const final = (value === false) ? "-" : parseInt(value) + parseInt(mod);
|
||
|
||
updateHTML[`${section_id} .sheet-t__${item}`] = final;
|
||
});
|
||
|
||
setCharmancerText(updateHTML);
|
||
|
||
});
|
||
|
||
}
|
||
|
||
["intro", "stats", "class", "skills", "equipment"].forEach(page => on(`page:${page}`, eventInfo => addTopBar(page)));
|
||
["strength","speed","intellect","combat","health","stress","resolve","sanity","fear","body","armor","strength","speed","intellect","combat"].forEach(stat => {
|
||
on(`mancerchange:${stat} mancercange:${stat}_mod`, eventInfo => recalcStats());
|
||
});
|
||
}{
|
||
const stats = ["strength","speed","intellect","combat"];
|
||
|
||
const onLoadStats = () => {
|
||
const data = getCharmancerData();
|
||
|
||
if (data?.stats?.values?.["strength"]) {
|
||
const updateHTML = {};
|
||
|
||
showChoices(["showstats"]);
|
||
|
||
stats.forEach(stat => updateHTML[`t__${stat}`] = data.stats.values[stat]);
|
||
|
||
setCharmancerText(updateHTML);
|
||
}
|
||
}
|
||
|
||
const onRollStats = (rolls) => {
|
||
const updateHTML = {};
|
||
const updateAttrs = {};
|
||
|
||
showChoices(["showstats"]);
|
||
|
||
rolls.forEach((roll, index) => {
|
||
updateHTML[`t__${stats[index]}`] = roll.result;
|
||
updateAttrs[`${stats[index]}`] = roll.result;
|
||
});
|
||
|
||
updateAttrs["health"] = updateAttrs["strength"] * 2;
|
||
updateAttrs["stress"] = 2;
|
||
updateAttrs["resolve"] = "0";
|
||
|
||
setCharmancerText(updateHTML);
|
||
setAttrs(updateAttrs);
|
||
|
||
}
|
||
|
||
on(`mancerroll:stats`, eventInfo => onRollStats(eventInfo.roll));
|
||
on(`page:stats`, eventInfo => onLoadStats(eventInfo.roll));
|
||
}{
|
||
const onLoadClass = () => {
|
||
const data = getCharmancerData();
|
||
|
||
if (data?.class?.values?.["selected"]) instanceClass(data.class.values.selected);
|
||
else generateClassList();
|
||
}
|
||
|
||
const generateClassList = () => {
|
||
|
||
hideChoices();
|
||
showChoices(["showclasses"]);
|
||
|
||
clearRepeatingSections("sheet-t__classes");
|
||
|
||
getCompendiumQuery("Category:Classes", function(data) {
|
||
|
||
custom = [{name:"custom"}];
|
||
data = [...data, ...custom];
|
||
|
||
data.forEach(class_object => {
|
||
const saves = (class_object?.data?.["Saves"]) ? JSON.parse(class_object.data["Saves"]) : false;
|
||
const skills = (class_object?.data?.["Skills"]) ? JSON.parse(class_object.data["Skills"]) : false;
|
||
const skills_choice = (class_object?.data?.["Skill Choice"]) ? JSON.parse(class_object.data["Skill Choice"]) : false;
|
||
const stat_bonus = (class_object?.data?.["Stat Bonus"]) ? JSON.parse(class_object.data["Stat Bonus"]) : false;
|
||
const description = (class_object?.data?.["data-Description"]) ? class_object.data["data-Description"] : "Undefined";
|
||
const img = (class_object?.data?.["data-class_image"]) ? class_object.data["data-class_image"] : "Undefined";
|
||
|
||
addRepeatingSection(`sheet-t__classes`, `class`, section_id => {
|
||
|
||
const updateHTML = {};
|
||
const updateAttrs = {};
|
||
|
||
if (class_object.name === "custom") {
|
||
|
||
updateAttrs[`${section_id}_name`] = "custom";
|
||
|
||
updateHTML[`${section_id} .sheet-t__img`] = `<img src="https://s3.amazonaws.com/files.d20.io/images/156707384/n7TD2kDSyn433GHWIRI58g/max.png" />`;
|
||
updateHTML[`${section_id} .sheet-t__title`] = getTranslationByKey("custom");
|
||
updateHTML[`${section_id} .sheet-t__desc`] = getTranslationByKey("choose this option to enter your own information");
|
||
|
||
} else {
|
||
|
||
updateAttrs[`${section_id}_name`] = class_object.name;
|
||
|
||
updateHTML[`${section_id} .sheet-t__img`] = `<img src="${img}" />`;
|
||
updateHTML[`${section_id} .sheet-t__title`] = class_object.name;
|
||
updateHTML[`${section_id} .sheet-t__desc`] = `
|
||
<p>${description}</p>
|
||
`;
|
||
|
||
// updateHTML[`${section_id} .sheet-t__desc`] += `
|
||
// <h3>${getTranslationByKey("saves")}:</h3>
|
||
// `;
|
||
|
||
// const saves_array = [];
|
||
|
||
// Object.entries(saves).forEach(([key, value]) => {
|
||
// saves_array.push(`<strong>${key}</strong> ${value}`);
|
||
// })
|
||
|
||
// updateHTML[`${section_id} .sheet-t__desc`] += saves_array.join("<br />");
|
||
|
||
// updateHTML[`${section_id} .sheet-t__desc`] += `<h3>${getTranslationByKey("stats")}:</h3>`;
|
||
|
||
// const stats_array = [];
|
||
|
||
// Object.entries(stat_bonus).forEach(([key, value]) => {
|
||
// stats_array.push(`<strong>${key}</strong> +${value}`);
|
||
// });
|
||
|
||
// updateHTML[`${section_id} .sheet-t__desc`] += stats_array.join(", ");
|
||
|
||
// updateHTML[`${section_id} .sheet-t__desc`] += `<h3>${getTranslationByKey("skills")}:</h3>`;
|
||
|
||
// if (skills) {
|
||
|
||
// const skills_array = [];
|
||
|
||
// skills.forEach(skill => skills_array.push(skill));
|
||
|
||
// updateHTML[`${section_id} .sheet-t__desc`] += `<p>${skills_array.join(", ")}</p>`;
|
||
|
||
// }
|
||
|
||
// if (skills_choice) {
|
||
|
||
// const skillchoice_array = [];
|
||
|
||
// skills_choice[0].forEach((choice) => skillchoice_array.push(choice));
|
||
|
||
// updateHTML[`${section_id} .sheet-t__desc`] += `<p>${skillchoice_array.join(" or ")}</p>`;
|
||
|
||
// }
|
||
|
||
}
|
||
|
||
setAttrs(updateAttrs);
|
||
setCharmancerText(updateHTML);
|
||
|
||
});
|
||
|
||
});
|
||
|
||
});
|
||
}
|
||
|
||
const onSelectClass = (source_section, source_type) => {
|
||
const data = getCharmancerData();
|
||
|
||
if (source_type !== "player") return;
|
||
|
||
getRepeatingSections("sheet-t__classes", repeating_ids => {
|
||
const updateAttrs = {};
|
||
|
||
repeating_ids.list.filter(id => id !== source_section).forEach(id=> updateAttrs[`${id}_selected`] = 0);
|
||
|
||
const new_class = data.class.values[`${source_section}_name`];
|
||
|
||
updateAttrs[`selected`] = new_class;
|
||
|
||
setAttrs(updateAttrs, callback => instanceClass(new_class));
|
||
});
|
||
|
||
}
|
||
|
||
const instanceClass = (class_name) => {
|
||
const cm_data = getCharmancerData();
|
||
|
||
hideChoices();
|
||
showChoices(["showclassinfo"]);
|
||
|
||
if (class_name === "custom") {
|
||
hideChoices(["presetclass"]);
|
||
showChoices(["customclass"]);
|
||
|
||
clearRepeatingSections("sheet-t__skill_choice");
|
||
} else {
|
||
showChoices(["presetclass"]);
|
||
hideChoices(["customclass"]);
|
||
|
||
getCompendiumPage(`Classes:${class_name}`, data => {
|
||
|
||
const updateAttrs = {
|
||
class: "",
|
||
sanity: "",
|
||
fear: "",
|
||
body: "",
|
||
armor: "",
|
||
strength_mod: "",
|
||
speed_mod: "",
|
||
intellect_mod: "",
|
||
combat_mod: "",
|
||
skill_points: "",
|
||
};
|
||
|
||
const updateHTML = {};
|
||
|
||
updateHTML[`t__cname`] = data.name;
|
||
updateAttrs[`class`] = data.name;
|
||
|
||
const saves = JSON.parse(data.data["Saves"]);
|
||
|
||
Object.entries(saves).forEach(([key, value]) => {
|
||
|
||
const key_lower = key.toLowerCase();
|
||
|
||
updateHTML[`t__${key_lower}`] = value;
|
||
updateAttrs[key_lower] = value;
|
||
|
||
});
|
||
|
||
const stats = JSON.parse(data.data["Stat Bonus"]);
|
||
|
||
Object.entries(stats).forEach(([key, value]) => {
|
||
|
||
const key_lower = key.toLowerCase();
|
||
|
||
updateAttrs[`${key_lower}_mod`] = value;
|
||
|
||
});
|
||
|
||
const strength = (cm_data?.class?.values?.strength) ? parseInt(cm_data.class.values.strength) :
|
||
(cm_data?.stats?.values?.strength) ? parseInt(cm_data.stats.values.strength) :
|
||
0;
|
||
|
||
const strength_mod = (cm_data?.class?.values?.strength_mod) ? parseInt(cm_data.class.values.strength_mod) :
|
||
(cm_data?.stats?.values?.strength_mod) ? parseInt(cm_data.stats.values.strength_mod) :
|
||
0;
|
||
|
||
const health = (strength + strength_mod) * 2;
|
||
|
||
updateAttrs["health"] = health;
|
||
|
||
["Skills", "Skill Points", "Stress Effect"].forEach(item => {
|
||
const parsed = item.toLowerCase().replace(/ /g,"_");
|
||
|
||
if (data?.data?.[item]) {
|
||
const json = (parseJSON(data.data[item])) ? parseJSON(data.data[item]) : data.data[item];
|
||
const display = (Array.isArray(json)) ? json.join(", ") : json;
|
||
|
||
updateAttrs[parsed] = data.data[item];
|
||
updateHTML[`t__${parsed}`] = display;
|
||
} else {
|
||
updateAttrs[parsed] = "";
|
||
updateHTML[`t__${parsed}`] = "";
|
||
}
|
||
});
|
||
|
||
clearRepeatingSections("sheet-t__skill_choice");
|
||
|
||
if (data?.data?.["Skill Choice"]) {
|
||
const choices = parseJSON(data.data["Skill Choice"]);
|
||
|
||
choices.forEach(group => addRepeatingSection("sheet-t__skill_choice", "skillselection", "choicerow", section_id => setCharmancerOptions(`${section_id}_skill`, group)));
|
||
|
||
}
|
||
|
||
setAttrs(updateAttrs);
|
||
setCharmancerText(updateHTML);
|
||
|
||
});
|
||
|
||
}
|
||
|
||
}
|
||
|
||
const reselectClass = () => {
|
||
const data = getCharmancerData();
|
||
|
||
getRepeatingSections("sheet-t__classes", repeating_ids => {
|
||
|
||
hideChoices();
|
||
|
||
const updateAttrs = {};
|
||
|
||
repeating_ids.list.forEach(id=> updateAttrs[`${id}_selected`] = 0);
|
||
|
||
updateAttrs[`selected`] = "";
|
||
|
||
setAttrs(updateAttrs, callback => onLoadClass());
|
||
});
|
||
}
|
||
|
||
const disableSkills = (new_value) => {
|
||
const data = getCharmancerData();
|
||
const disable = [];
|
||
disable.push(new_value);
|
||
|
||
if (data?.class?.repeating) {
|
||
data.class.repeating.forEach(repeating_id => {
|
||
|
||
disableCharmancerOptions(`${repeating_id}_skill`, disable);
|
||
|
||
});
|
||
}
|
||
|
||
}
|
||
|
||
on(`page:class`, eventInfo => onLoadClass());
|
||
on(`mancerchange:repeating_class_selected`, eventInfo => onSelectClass(eventInfo.sourceSection, eventInfo.sourceType));
|
||
on(`clicked:reselectc`, eventInfo => reselectClass());
|
||
on(`mancerchange:repeating_choicerow`, eventInfo => disableSkills(eventInfo.newValue));
|
||
}{
|
||
|
||
const trained_skills = [
|
||
"linguistics",
|
||
"biology",
|
||
"first_aid",
|
||
"hydroponics",
|
||
"geology",
|
||
"zero-g",
|
||
"scavenging",
|
||
"heavy_machinery",
|
||
"computers",
|
||
"mechanical_repair",
|
||
"driving",
|
||
"piloting",
|
||
"mathematics",
|
||
"art",
|
||
"archaeology",
|
||
"theology",
|
||
"military_training",
|
||
"rimwise",
|
||
"athletics",
|
||
"chemistry"
|
||
];
|
||
|
||
const expert_skills = [
|
||
"psychology",
|
||
"genetics",
|
||
"pathology",
|
||
"botany",
|
||
"planetology",
|
||
"asteroid_mining",
|
||
"jury_rigging",
|
||
"engineering",
|
||
"hacking",
|
||
"vehicle_specialization",
|
||
"astrogation",
|
||
"physics",
|
||
"mysticism",
|
||
"tactics",
|
||
"gunnery",
|
||
"firearms",
|
||
"close-quarters_combat",
|
||
"explosives"
|
||
];
|
||
|
||
const master_skills = [
|
||
"sophontology",
|
||
"xenobiology",
|
||
"surgery",
|
||
"cybernetics",
|
||
"robotics",
|
||
"artificial_intelligence",
|
||
"command",
|
||
"hyperspace",
|
||
"xenoesotericism",
|
||
"weapon_specialization"
|
||
];
|
||
|
||
const onLoadSkills = () => {
|
||
const data = getCharmancerData();
|
||
|
||
resetClassSkills();
|
||
|
||
if (data?.skills?.values?.skillpoints_max) calcAllSkills();
|
||
else if (data?.class?.values?.skill_points) setAttrs({skillpoints_max:data.class.values.skill_points}, callback => calcAllSkills());
|
||
else setCharmancerText({[`t__skillpointserror`]:getTranslationByKey("Ensure you have selected a class")});
|
||
};
|
||
|
||
const resetClassSkills = () => {
|
||
const data = getCharmancerData();
|
||
const all_skills = [...trained_skills, ...expert_skills, ...master_skills];
|
||
|
||
const updateAttrs = {};
|
||
|
||
all_skills.forEach(skill => {
|
||
if (data?.skills?.values[`${skill}_type`] === "class") {
|
||
updateAttrs[skill] = 0;
|
||
updateAttrs[`${skill}_type`] = "";
|
||
}
|
||
});
|
||
|
||
const class_skills = (data?.class?.values?.skills) ? JSON.parse(data.class.values.skills).map(skill => skill.replace(/ /g, "_")) : [];
|
||
|
||
class_skills.forEach(skill => {
|
||
updateAttrs[skill] = "on";
|
||
updateAttrs[`${skill}_type`] = "class";
|
||
});
|
||
|
||
if (data?.class?.repeating?.length > 0) {
|
||
const skill_choices = data.class.repeating.filter(repeating_id => repeating_id.indexOf("choicerow") > -1);
|
||
|
||
if (skill_choices.length > 0) {
|
||
skill_choices.forEach(repeating_id => {
|
||
const skill_name = data.class.values[`${repeating_id}_skill`].toLowerCase().replace(/ /g, "_");
|
||
|
||
if (skill_name !== "choose") {
|
||
updateAttrs[skill_name] = "on";
|
||
updateAttrs[`${skill_name}_type`] = "class";
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
setAttrs(updateAttrs, callback => checkAllSkills());
|
||
};
|
||
|
||
const calcAllSkills = () => {
|
||
const data = getCharmancerData();
|
||
|
||
const sp_total = (data?.skills?.values?.skillpoints_max) ? parseInt(data.skills.values.skillpoints_max) : 0;
|
||
let sp_spent = 0;
|
||
|
||
trained_skills.forEach(skill => {
|
||
const skill_toggle = data.skills.values[skill];
|
||
const skill_type = data.skills.values[`${skill}_type`];
|
||
if (skill_toggle === "on" && skill_type !== "class") sp_spent += 1;
|
||
});
|
||
|
||
expert_skills.forEach(skill => {
|
||
const skill_toggle = data.skills.values[skill];
|
||
const skill_type = data.skills.values[`${skill}_type`];
|
||
if (skill_toggle === "on" && skill_type !== "class") sp_spent += 2;
|
||
});
|
||
|
||
master_skills.forEach(skill => {
|
||
const skill_toggle = data.skills.values[skill];
|
||
const skill_type = data.skills.values[`${skill}_type`];
|
||
if (skill_toggle === "on" && skill_type !== "class") sp_spent += 3;
|
||
});
|
||
|
||
const updateAttrs = {
|
||
trained_lock: "0",
|
||
expert_lock: "0",
|
||
master_lock: "0"
|
||
};
|
||
|
||
const updateHTML = {};
|
||
|
||
const sp_remaining = sp_total - sp_spent;
|
||
|
||
if (sp_remaining <= 2) updateAttrs["master_lock"] = "on";
|
||
if (sp_remaining <= 1) updateAttrs["expert_lock"] = "on";
|
||
if (sp_remaining <= 0) updateAttrs["trained_lock"] = "on";
|
||
|
||
updateAttrs["skillpoints"] = sp_remaining;
|
||
updateHTML["t__skillpoints"] = `${sp_remaining} / ${sp_total}`;
|
||
|
||
setCharmancerText(updateHTML);
|
||
setAttrs(updateAttrs);
|
||
}
|
||
|
||
const toggleSkill = (skill) => {
|
||
const data = getCharmancerData();
|
||
|
||
if (!data?.skills?.values?.[`${skill}_type`] || data.skills.values[`${skill}_type`] !== "class") {
|
||
if (data?.skills?.values?.[skill] === "on") {
|
||
data.skills.values[skill] = "0";
|
||
setAttrs({[skill]:0}, callback => checkAllSkills());
|
||
} else {
|
||
data.skills.values[skill] = "on";
|
||
setAttrs({[skill]:"on"}, callback => checkAllSkills());
|
||
}
|
||
}
|
||
|
||
};
|
||
|
||
const checkAllSkills = () => {
|
||
const data = getCharmancerData();
|
||
|
||
const owned = [];
|
||
const unlocked = [];
|
||
|
||
for (const key in skillList) {
|
||
|
||
if (data?.skills?.values?.[key] === "on") {
|
||
owned.push(key);
|
||
|
||
for (const skill of skillList[key].unlocks) {
|
||
if (!unlocked.includes(skill)) unlocked.push(skill);
|
||
}
|
||
}
|
||
}
|
||
|
||
setAttrs({unlocked:unlocked.join(" "), owned: owned.join(" ")});
|
||
}
|
||
|
||
on(`page:skills`, eventInfo => onLoadSkills());
|
||
|
||
[...trained_skills, ...expert_skills, ...master_skills].forEach(skill => {
|
||
on(`clicked:toggle-${skill}`, eventInfo => {
|
||
toggleSkill(skill);
|
||
calcAllSkills();
|
||
});
|
||
});
|
||
}{
|
||
let packages = {};
|
||
|
||
const onLoadEquipment = () => {
|
||
initEquipmentPackages();
|
||
initTrinketsandPatches();
|
||
};
|
||
|
||
const initEquipmentPackages = () => {
|
||
|
||
getCompendiumPage("Character Creation", (data) => {
|
||
|
||
let choices = ["custom"];
|
||
|
||
if (data?.data?.equipment_packages) {
|
||
packages = JSON.parse(data.data.equipment_packages);
|
||
|
||
Object.keys(packages).forEach(key => choices.unshift(key));
|
||
}
|
||
|
||
setCharmancerOptions(`package`, choices);
|
||
|
||
});
|
||
|
||
};
|
||
|
||
const chooseEquipmentPackage = (new_value) => {
|
||
|
||
hideChoices();
|
||
|
||
if (new_value === "choose") return;
|
||
|
||
if (packages[new_value]) {
|
||
|
||
const items = packages[new_value].map(item => (Array.isArray(item)) ? `${item[0]} (${item[1]})` : item).join(", ");
|
||
|
||
setCharmancerText({"t__package":items});
|
||
setAttrs({"equipment":JSON.stringify(packages[new_value])});
|
||
|
||
} else if (new_value === "custom") {
|
||
|
||
showChoices(["custompackage"]);
|
||
|
||
setCharmancerText({"t__package":""});
|
||
setAttrs({"equipment":""});
|
||
|
||
}
|
||
|
||
|
||
};
|
||
|
||
const initTrinketsandPatches = () => {
|
||
const data = getCharmancerData();
|
||
|
||
let trinkets = [];
|
||
let patches = [];
|
||
|
||
getCompendiumPage("Trinkets", (data) => {
|
||
|
||
trinkets = (data?.data?.trinkets) ? parseJSON(data.data.trinkets) : [];
|
||
|
||
getCompendiumPage("Patches", (data) => {
|
||
|
||
patches = (data?.data?.patches) ? parseJSON(data.data.patches) : [];
|
||
|
||
const trinkets_map = trinkets.map((trinket, index) => `{{opt${index}=${trinket}}}`);
|
||
const patches_map = patches.map((patch, index) => `{{opt${index}=${patch}}}`);
|
||
|
||
const trinkets_roll = `&{template:ms-cm} {{title=trinket roll}} {{roll=[[1d100-1]]}} ${trinkets_map.join(" ")}`;
|
||
const patches_roll = `&{template:ms-cm} {{title=patch roll}} {{roll=[[1d100-1]]}} ${patches_map.join(" ")}`;
|
||
|
||
const updateHTML = {};
|
||
|
||
updateHTML[`t__trinketroll`] = `<button class="sheet-ms-cm-trinketroll" name="roll_trinket" type="roll" value="${trinkets_roll}"></button>`;
|
||
updateHTML[`t__patchroll`] = `<button class="sheet-ms-cm-patchesroll" name="roll_patch" type="roll" value="${patches_roll}"></button>`;
|
||
|
||
setCharmancerText(updateHTML);
|
||
|
||
});
|
||
|
||
});
|
||
|
||
if (data?.equipment?.values?.credits) setCharmancerText({t__credits:data.equipment.values.credits});
|
||
if (data?.equipment?.values?.trinket) setCharmancerText({t__trinket:data.equipment.values.trinket});
|
||
if (data?.equipment?.values?.patch) setCharmancerText({t__patch:data.equipment.values.patch});
|
||
};
|
||
|
||
const rollCredits = (roll) => {
|
||
|
||
setAttrs({credits:roll[0].result});
|
||
setCharmancerText({t__credits:`${roll[0].result}`});
|
||
|
||
};
|
||
|
||
const rollTrinket = (roll) => {
|
||
|
||
getCompendiumPage("Trinkets", (data) => {
|
||
|
||
trinkets = (data?.data?.trinkets) ? parseJSON(data.data.trinkets) : [];
|
||
|
||
setAttrs({trinket:trinkets[roll[0].result]});
|
||
setCharmancerText({t__trinket:trinkets[roll[0].result]});
|
||
|
||
});
|
||
|
||
};
|
||
|
||
const rollPatch = (roll) => {
|
||
|
||
getCompendiumPage("Patches", (data) => {
|
||
|
||
patches = (data?.data?.patches) ? parseJSON(data.data.patches) : [];
|
||
|
||
setAttrs({patch:patches[roll[0].result]});
|
||
setCharmancerText({t__patch:patches[roll[0].result]});
|
||
|
||
});
|
||
|
||
}
|
||
|
||
on(`page:equipment`, eventInfo => onLoadEquipment());
|
||
on(`mancerchange:package`, eventInfo => chooseEquipmentPackage(eventInfo.newValue));
|
||
on(`mancerroll:credits`, eventInfo => rollCredits(eventInfo.roll));
|
||
on(`mancerroll:trinket`, eventInfo => rollTrinket(eventInfo.roll));
|
||
on(`mancerroll:patch`, eventInfo => rollPatch(eventInfo.roll));
|
||
}{
|
||
|
||
const onLoadReview = () => {
|
||
const data = getCharmancerData();
|
||
|
||
const updateHTML = {};
|
||
const updateAttrs = {};
|
||
|
||
["strength","speed","intellect","combat","health","stress","resolve","sanity","fear","body","armor"].forEach(item => {
|
||
let value = (data?.equipment?.values?.[item]) ? data.equipment.values[item] :
|
||
(data?.skills?.values?.[item]) ? data.skills.values[item] :
|
||
(data?.class?.values?.[item]) ? data.class.values[item] :
|
||
(data?.stats?.values?.[item]) ? data.stats.values[item] :
|
||
false;
|
||
|
||
let mod = (data?.equipment?.values?.[`${item}_mod`]) ? data.equipment.values[`${item}_mod`] :
|
||
(data?.skills?.values?.[`${item}_mod`]) ? data.skills.values[`${item}_mod`] :
|
||
(data?.class?.values?.[`${item}_mod`]) ? data.class.values[`${item}_mod`] :
|
||
(data?.stats?.values?.[`${item}_mod`]) ? data.stats.values[`${item}_mod`] :
|
||
0;
|
||
|
||
const total = parseInt(value) + parseInt(mod);
|
||
|
||
updateHTML[`t__${item}`] = total;
|
||
updateAttrs[`${item}_final`] = total;
|
||
});
|
||
|
||
updateHTML[`t__class`] = data?.class?.values?.class;
|
||
updateAttrs[`class_final`] = data?.class?.values?.class;
|
||
|
||
updateHTML[`t__stresseffect`] = data?.class?.values?.stress_effect;
|
||
updateAttrs[`stresseffect_final`] = data?.class?.values?.stress_effect;
|
||
|
||
const skills = [];
|
||
|
||
const filter = ["owned", "skillpoints_max", "trained_lock", "expert_lock", "master_lock", "unlocked"];
|
||
|
||
Object.entries(data.skills.values).forEach(([key, value]) => {
|
||
if (!key.match(/type/) && !filter.includes(key) && value === "on") skills.push(capitalizeString(key));
|
||
});
|
||
|
||
updateHTML[`t__skilllist`] = skills.join(', ');
|
||
updateAttrs[`skills_final`] = JSON.stringify(skills);
|
||
|
||
const skillpoints = (data?.skills?.values?.skillpoints) ? data.skills.values.skillpoints : "0";
|
||
|
||
updateHTML[`t__skillpoints`] = skillpoints;
|
||
updateAttrs[`skillpoints_final`] = skillpoints;
|
||
|
||
const starting_credits = (data?.equipment?.values?.credits) ? data.equipment.values.credits : "Not Rolled";
|
||
|
||
updateHTML[`t__credits`] = starting_credits;
|
||
updateAttrs[`credits_final`] = starting_credits;
|
||
|
||
const trinket = (data?.equipment?.values?.trinket) ? data.equipment.values.trinket : "Not Rolled";
|
||
|
||
updateHTML[`t__trinket`] = trinket;
|
||
updateAttrs[`trinket_final`] = trinket;
|
||
|
||
const patch = (data?.equipment?.values?.patch) ? data.equipment.values.patch : "Not Rolled";
|
||
|
||
updateHTML[`t__patch`] = patch;
|
||
updateAttrs[`patch_final`] = patch;
|
||
|
||
const package = (data?.equipment?.values?.equipment) ? parseJSON(data.equipment.values.equipment) : [];
|
||
|
||
const items = package.map(item => (Array.isArray(item)) ? `${item[0]} (${item[1]})` : item).join(", ");
|
||
|
||
updateHTML[`t__equipmentlist`] = items;
|
||
updateAttrs[`equipment_final`] = data?.equipment?.values?.equipment;
|
||
|
||
setCharmancerText(updateHTML)
|
||
setAttrs(updateAttrs);
|
||
}
|
||
|
||
on(`page:review`, eventInfo => onLoadReview());
|
||
|
||
}const clearSheet = (data) => {
|
||
|
||
const clearAttrs = {};
|
||
|
||
const all_repeating_sections = ["equipment", "attacks"];
|
||
|
||
all_repeating_sections.forEach(section => {
|
||
getSectionIDs(`repeating_${section}`, ids => {
|
||
ids.forEach(id => {
|
||
removeRepeatingRow(`repeating_${section}_${id}`);
|
||
});
|
||
});
|
||
});
|
||
|
||
for (skill in skillList) {
|
||
clearAttrs[skill] = "0";
|
||
}
|
||
|
||
setAttrs(clearAttrs,{silent:true}, callback => compileCharacter(data));
|
||
}
|
||
|
||
const compileCharacter = (data) => {
|
||
|
||
const updateAttrs = {};
|
||
|
||
["armor","body","class","combat","credits","fear","intellect","patch","sanity","speed","strength","trinket","stress","resolve"].forEach(item => {
|
||
updateAttrs[item] = data?.review?.values?.[`${item}_final`] || "";
|
||
});
|
||
|
||
|
||
|
||
updateAttrs["stress_panic"] = data?.review?.values?.[`stressresponse_final`] || "";
|
||
updateAttrs["health"] = data?.review?.values?.[`health_final`] || "";
|
||
updateAttrs["health_max"] = data?.review?.values?.[`health_final`] || "";
|
||
updateAttrs["skill_points"] = data?.review?.values?.[`skillpoints_final`] || "";
|
||
updateAttrs["level"] = "0";
|
||
updateAttrs["xp"] = "0";
|
||
|
||
if (parseJSON(data?.review?.values?.skills_final)) {
|
||
parseJSON(data.review.values.skills_final).forEach(skill => {
|
||
updateAttrs[skill] = "on";
|
||
});
|
||
}
|
||
|
||
if (parseJSON(data?.review?.values?.equipment_final)) {
|
||
|
||
const request = [];
|
||
|
||
parseJSON(data.review.values.equipment_final).forEach(item => {
|
||
|
||
if (Array.isArray(item)) {
|
||
request.push(item[0]);
|
||
} else {
|
||
request.push(item);
|
||
}
|
||
});
|
||
|
||
getCompendiumPage(request, pages => {
|
||
|
||
pages.forEach(data => {
|
||
|
||
console.log(data);
|
||
|
||
const id = generateRowID();
|
||
const address = `repeating_equipment_${id}_equipment`;
|
||
|
||
updateAttrs[`${address}_name`] = data.name;
|
||
updateAttrs[`${address}_notes`] = data.Special || "";
|
||
updateAttrs[`${address}_settings`] = "0";
|
||
|
||
if (data.data.Damage) {
|
||
const attack_id = generateRowID();
|
||
const attack_address = `repeating_attacks_${id}_attack`
|
||
|
||
updateAttrs[`${address}_type`] = "Weapon";
|
||
updateAttrs[`${address}_linkedid`] = attack_id;
|
||
|
||
updateAttrs[`${attack_address}_linkedid`] = id;
|
||
updateAttrs[`${attack_address}_name`] = data.name;
|
||
updateAttrs[`${attack_address}_damage`] = data.data.Damage;
|
||
updateAttrs[`${attack_address}_critical_damage`] = data.data["Critical Damage"] || "";
|
||
updateAttrs[`${attack_address}_critical_effect`] = data.data["Critical Effect"] || "-";
|
||
updateAttrs[`${attack_address}_settings`] = "0";
|
||
|
||
let combined_string = (data.data.Description) ? `${data.data.Description} ` : ``;
|
||
combined_string += (data.data.Special) ? `${data.data.Special} ` : ``;
|
||
|
||
updateAttrs[`${attack_address}_notes`] = combined_string;
|
||
|
||
const range = JSON.parse(data.data.Range) || {};
|
||
|
||
if (range && range.CQC !== "Yes") {
|
||
updateAttrs[`${attack_address}_type`] = "Ranged";
|
||
|
||
updateAttrs[`${attack_address}_shots`] = data.data.Shots;
|
||
updateAttrs[`${attack_address}_ammunition`] = data.data.Ammunition;
|
||
|
||
updateAttrs[`${attack_address}_range_s`] = range.Short;
|
||
updateAttrs[`${attack_address}_range_m`] = range.Medium || "-";
|
||
updateAttrs[`${attack_address}_range_l`] = range.Long || "-";
|
||
|
||
} else {
|
||
updateAttrs[`${attack_address}_type`] = "Melee";
|
||
}
|
||
} else if (data["Armor Save"]) {
|
||
updateAttrs[`${address}_type`] = "Armor";
|
||
updateAttrs[`${address}_armor_bonus`] = data.data["Armor Save"];
|
||
} else {
|
||
updateAttrs[`${address}_type`] = "Gear";
|
||
}
|
||
|
||
});
|
||
|
||
const total = Object.keys(updateAttrs).length;
|
||
|
||
Object.entries(updateAttrs).forEach(([key, value], index) => {
|
||
const percentage = (100 / total) * index;
|
||
const progress_bar = `<div style="width:${percentage}%"> </div>`;
|
||
|
||
setAttrs({[key]:value},{silent:true});
|
||
setCharmancerText({"t__progressbar":progress_bar});
|
||
});
|
||
|
||
deleteCharmancerData();
|
||
finishCharactermancer();
|
||
});
|
||
}
|
||
}
|
||
|
||
on("mancerfinish:newcharacter", eventInfo => clearSheet(eventInfo.data));
|
||
<!--# sourceURL=sheetworker.js -->
|
||
</script> |