diff --git a/13th Age by Roll20/translations/de.json b/13th Age by Roll20/translations/de.json index bae8fecaf0..242f93a4f4 100644 --- a/13th Age by Roll20/translations/de.json +++ b/13th Age by Roll20/translations/de.json @@ -1,54 +1,54 @@ { - "Conflicted": "Conflicted", - "Negative": "Negative", - "Positive": "Positive", - "ac-u": "AC", - "action": "Action", - "assassin": "Assassin", - "at-will": "At-Will", - "attack": "Attack", - "backgrounds": "Backgrounds", - "base-ac-from-class": "Base AC from class", - "base-hp-from-class": "Base HP from class", - "base-md-from-class": "Base MD from class", - "base-pd-from-class": "Base PD from class", - "battle-cry": "Battle Cry", + "Conflicted": "Widersprüchlich", + "Negative": "Negativ", + "Positive": "Positiv", + "ac-u": "RK", + "action": "Aktion", + "assassin": "Assassine", + "at-will": "Frei", + "attack": "Angriff", + "backgrounds": "Hintergründe", + "base-ac-from-class": "Basis RK durch Klasse", + "base-hp-from-class": "Basis TP durch Klasse", + "base-md-from-class": "Basis MD durch Klasse", + "base-pd-from-class": "Basis PD durch Klasse", + "battle-cry": "Kampfschrei", "bck-u": "BCK", "cha-u": "CHA", "charisma": "Charisma", - "charisma-based": "Charisma based", - "class": "Class", - "con-u": "CON", - "constitution": "Constitution", - "constitution-based": "Constitution based", - "copyright": "2015 Pelgrane Press Ltd. Published by Pelgrane Press Ltd. under license from Fire Opal Media. The 13th Age is a trademarks of Fire Opal Media, Inc.", - "critical-success-u": "CRITICAL SUCCESS", - "current-hp": "Current HP", - "custom": "Custom", - "custom-1": "Custom 1", - "custom-2": "Custom 2", - "custom-3": "Custom 3", - "daily": "Daily", - "damage-on-melee-miss": "Damage on Melee Miss", - "damage-on-ranged-miss": "Damage on Ranged Miss", - "death-save": "Death Save", - "death-save-u": "DEATH SAVE", + "charisma-based": "Basiert auf Charisma", + "class": "Klasse", + "con-u": "KON", + "constitution": "Konstitution", + "constitution-based": "Basiert auf Konstitution", + "copyright": "2015 Pelgrane Press Ltd. Herausgegeben von Pelgrane Press Ltd. unter Lizenz von Fire Opal Media. The 13th Age ist ein Warenzeichen von Fire Opal Media, Inc.", + "critical-success-u": "KRITISCHER ERFOLG", + "current-hp": "aktuelle TP", + "custom": "Benutzerdefiniert", + "custom-1": "Benutzerdefiniert 1", + "custom-2": "Benutzerdefiniert 2", + "custom-3": "Benutzerdefiniert 3", + "daily": "Täglich", + "damage-on-melee-miss": "Schaden bei Nahkampf Misserfolg", + "damage-on-ranged-miss": "Schaden bei Fernkampf Misserfolg", + "death-save": "RW gg. Tod", + "death-save-u": "RW gg. TOD", "details": "Details", - "dex-u": "DEX", - "dexterity": "Dexterity", - "dice-u": "DICE", - "domain": "Domain", - "easy-6": "Easy (6+)", - "effect": "Effect", - "encounter": "Encounter", - "engaged": "Engaged", - "equipment": "Equipment", - "escalation-die": "Escalation Die", - "failure-u": "FAILURE", - "far-away": "Far Away", - "feature": "Feature", + "dex-u": "GES", + "dexterity": "Geschicklichkeit", + "dice-u": "WÜRFEL", + "domain": "Domäne", + "easy-6": "Leicht (6+)", + "effect": "Effekt", + "encounter": "Begegnung", + "engaged": "Beschäftigt", + "equipment": "Ausrüstung", + "escalation-die": "Eskalationswürfel", + "failure-u": "FEHLSCHLAG", + "far-away": "Weit weg", + "feature": "Merkmal", "final-verse": "Final-Verse", - "flat-hp-mod-from-magic-items": "Flat HP Mod from Magic Items", + "flat-hp-mod-from-magic-items": "Pauschaler TP MOD durch Magische Gegenstände", "flat-initiative-mod": "Flat Initiative Mod", "flat-recovery-mod": "Flat Recovery Mod", "flexible-action": "Flexible Action", @@ -99,7 +99,7 @@ "range": "Range", "ranged-basic-attack": "Ranged Basic Attack", "ranged-basic-attack-based-on": "Ranged Basic Attack Based On", - "ranged-dex": "Ranged(DEX)", + "ranged-dex": "Fernkampf (GES)", "ranged-weapon-1": "Ranged Weapon 1", "ranged-weapon-2": "Ranged Weapon 2", "ranged-weapon-3": "Ranged Weapon 3", diff --git a/5eShaped/translations/it.json b/5eShaped/translations/it.json index cbc7208991..6758300461 100644 --- a/5eShaped/translations/it.json +++ b/5eShaped/translations/it.json @@ -85,7 +85,7 @@ "ANIMALHANDLING": "Addestrare Animali", "API": "API", "APPEARANCE": "Aspetto", - "ARCANA": "Arcani", + "ARCANA": "Arcano", "ARMOR": "Armatura", "ARMOR_CLASS": "Classe armatura", "ARROWS": "Frecce", @@ -114,8 +114,8 @@ "BIG": "Grande", "BITE": "Morso", "BLINDED": "Accecato", - "BLINDED_1": "A blinded creature can’t see and automatically fails any ability check that requires sight.", - "BLINDED_2": "Attack rolls against the creature have advantage, and the creature’s attack rolls have disadvantage.", + "BLINDED_1": "Una creatura accecata non può vedere e fallisce automaticamente qualsiasi prova di caratteristica che richieda la vista.", + "BLINDED_2": "I tiri per colpire contro la creatura hanno vantaggio e i tiri per colpire della creatura hanno svantaggio.", "BLINDSIGHT": "Vista cieca", "BLIND_BEYOND": "Cieco oltre", "BLUDGEONING": "contundente", @@ -134,7 +134,7 @@ "CAN_HAVE": "Può avere", "CARRIED": "Trasportato", "CARRYING_CAPACITY": "Capacità di carico", - "CARRYING_CAPACITY_1": "This is the weight that you can carry", + "CARRYING_CAPACITY_1": "Questo è il peso che puoi portare", "CARRYING_PUSH_DRAG_LIFT": "Spingere\/Trascinare\/Sollevare", "CARRYING_PUSH_DRAG_LIFT_FEET": "While pushing or dragging weight in excess of your carrying capacity, your speed drops to 5 feet.", "CARRYING_PUSH_DRAG_LIFT_METERS": "While pushing or dragging weight in excess of your carrying capacity, your speed drops to 1.5 meters.", @@ -149,9 +149,9 @@ "CHARACTER_NAME_ON_ROLL_TEMPLATES": "Nome del personaggio nei template di tiro", "CHARISMA": "Carisma", "CHARISMA_SAVING_THROW": "Tiro salvezza su Carisma", - "CHARMED": "Charmed", - "CHARMED_1": "A charmed creature can’t attack the charmer or target the charmer with harmful abilities or magical effects.", - "CHARMED_2": "The charmer has advantage on any ability check to interact socially with the creature.", + "CHARMED": "Affascinato", + "CHARMED_1": "Una creatura affascinata non può attaccare l'incantatore o bersagliare l'incantatore con capacità dannose o effetti magici.", + "CHARMED_2": "L'incantatore ha vantaggio a qualsiasi prova di abilità per interagire socialmente con la creatura.", "CHECK": "Prova", "CHECK_MODIFIER": "Modificatore della prova", "CHOOSE_WHEN_ROLLING": "Scegli al momento del lancio", @@ -176,7 +176,7 @@ "CLASS_FEATURE_BARBARIAN_BRUTAL_CRITICAL": "Colpo critico brutale", "CLASS_FEATURE_BARBARIAN_BRUTAL_CRITICAL_TEXT": "You can roll one additional weapon damage die when determining the extra damage for a critical hit with a melee attack.\nThis increases to two additional dice at 13th level and three additional dice at 17th level.", "CLASS_FEATURE_BARBARIAN_DANGER_SENSE": "Senso del pericolo", - "CLASS_FEATURE_BARBARIAN_DANGER_SENSE_TEXT": "You have advantage on Dexterity saving throws against effects that you can see, such as traps and spells. To gain this benefit, you can’t be blinded, deafened, or incapacitated.", + "CLASS_FEATURE_BARBARIAN_DANGER_SENSE_TEXT": "Hai vantaggio ai tiri salvezza su Destrezza contro effetti che puoi vedere, come trappole e incantesimi. Per ottenere questo beneficio, non devi essere accecato, assordato né inabile.", "CLASS_FEATURE_BARBARIAN_EXTRA_ATTACK": "Attacco extra (Barbaro)", "CLASS_FEATURE_BARBARIAN_EXTRA_ATTACK_TEXT": "You can attack twice, instead of once, whenever you take the Attack action on your turn.", "CLASS_FEATURE_BARBARIAN_FAST_MOVEMENT": "Movimento rapido", @@ -186,11 +186,11 @@ "CLASS_FEATURE_BARBARIAN_INDOMITABLE_MIGHT": "Potenza indomita", "CLASS_FEATURE_BARBARIAN_INDOMITABLE_MIGHT_TEXT": "If your total for a Strength check is less than your Strength score, you can use that score in place of the total.", "CLASS_FEATURE_BARBARIAN_PERSISTENT_RAGE": "Persistent Rage", - "CLASS_FEATURE_BARBARIAN_PERSISTENT_RAGE_TEXT": "Your rage is so fierce that it ends early only if you fall unconscious or if you choose to end it.", + "CLASS_FEATURE_BARBARIAN_PERSISTENT_RAGE_TEXT": "La tua ira è così feroce che termina precocemente solo se cadi senza sensi o se scegli di terminarla.", "CLASS_FEATURE_BARBARIAN_PRIMAL_CHAMPION": "Primal Champion", "CLASS_FEATURE_BARBARIAN_PRIMAL_CHAMPION_TEXT": "You embody the power of the wilds. Your Strength and Constitution scores increase by 4. Your maximum for those scores is now 24.", "CLASS_FEATURE_BARBARIAN_RAGE": "Rage", - "CLASS_FEATURE_BARBARIAN_RAGE_TEXT": "On your turn, you can enter a rage as a bonus action. While raging, you gain the following benefits if you aren’t wearing heavy armor:\n•You have advantage on Strength checks and Strength saving throws.\n•When you make a melee weapon attack using Strength, you add RAGE_DAMAGE to that damage roll.\n•You have resistance to bludgeoning, piercing, and slashing damage\nIf you are able to cast spells, you can’t cast them or concentrate on them while raging.\nYour rage lasts for 1 minute. It ends early if you are knocked unconscious or if your turn ends and you haven’t attacked a hostile creature since your last turn or taken damage since then. You can also end your rage on your turn as a bonus action.", + "CLASS_FEATURE_BARBARIAN_RAGE_TEXT": "Durante il tuo turno, puoi entrare in ira con un'azione bonus. Mentre sei in ira, se non stai indossando armature pesanti, ottieni i seguenti benefici:\n•Hai vantaggio alle prove di Forza e ai tiri salvezza sulla Forza.\n•Quando effettui un attacco con arma da mischia usando la Forza, aggiungi RAGE_DAMAGE al tiro per i danni.\n•Hai resistenza ai danni contundenti, perforanti e taglienti.\nSe sei capace di eseguire incantesimi, mentre sei in ira non puoi eseguirli né concentrarti su di essi.\nLa tua ira dura 1 minuto. Termina precocemente se perdi i sensi o se il tuo turno termina e non hai attaccato alcuna creatura ostile né hai subito danni dal tuo ultimo turno. Puoi anche decidere di terminare l'ira durante il tuo turno con un'azione bonus.", "CLASS_FEATURE_BARBARIAN_RECKLESS_ATTACK": "Reckless Attack", "CLASS_FEATURE_BARBARIAN_RECKLESS_ATTACK_TEXT": "When you make your first attack on your turn, you can decide to attack recklessly. Doing so gives you advantage on melee weapon attack rolls using Strength during this turn, but attack rolls against you have advantage until your next turn.", "CLASS_FEATURE_BARBARIAN_RELENTLESS_RAGE": "Relentless Rage", @@ -200,7 +200,7 @@ "CLASS_FEATURE_BARD_BARDIC_INSPIRATION": "Ispirazione bardica", "CLASS_FEATURE_BARD_BARDIC_INSPIRATION_TEXT": "Puoi ispirare gli altri usando musica o parole stimolanti. Per farlo, usi un’azione bonus durante il tuo turno per scegliere un’altra creatura che sia entro 18 metri da te che sia in grado di sentirti. Questa creatura riceve un dado di Ispirazione bardica, un d6.\nEntro i prossimi 10 minuti, la creatura può tirare una volta il dado e aggiungerne il risultato a una prova di abilità, un tiro per colpire o un tiro salvezza che esegue. La creatura può decidere di usare il dado di Ispirazione bardica anche dopo aver visto il risultato del d20, ma prima che il DM abbia annunciato il successo o il fallimento del tiro. Una volta che il dado di Ispirazione bardica è stato usato, è perso. Una creatura può avere un solo dado di Ispirazione bardica per volta.", "CLASS_FEATURE_BARD_COUNTERCHARM": "Controaffascinare", - "CLASS_FEATURE_BARD_COUNTERCHARM_TEXT": "You gain the ability to use musical notes or words of power to disrupt mind-influencing effects. As an action, you can start a performance that lasts until the end of your next turn. During that time, you and any friendly creatures within 30 feet of you have advantage on saving throws against being frightened or charmed. A creature must be able to hear you to gain this benefit. The performance ends early if you are incapacitated or silenced or if you voluntarily end it (no action required).", + "CLASS_FEATURE_BARD_COUNTERCHARM_TEXT": "Ottieni l'abilità di usare le note musicali o le parole di potere per distruggere gli effetti di influenza mentale. Con un'azione, puoi iniziare un'esibizione che dura fino al termine del tuo prossimo turno. Per tutta la durata, tu, e qualsiasi creatura amica entro 9 metri da te, avete vantaggio sui tiri salvezza vs. l’esser spaventati o affascinati. Per ottenere questo beneficio, una creatura ti deve poter udire. L'esibizione termina prima qualora tu fossi reso inabile o silenziato o se gli poni fine volontariamente (non c'è bisogno di alcuna azione).", "CLASS_FEATURE_BARD_EXPERTISE": "Competente", "CLASS_FEATURE_BARD_EXPERTISE_TEXT": "Choose two of your skill proficiencies. Your proficiency bonus is doubled for any ability check you make that uses either of the chosen proficiencies.\nAt 10th level, you can choose another two skill proficiencies to gain this benefit.", "CLASS_FEATURE_BARD_JACK_OF_ALL_TRADES": "Tuttofare", @@ -264,15 +264,15 @@ "CLASS_FEATURE_MONK_PERFECT_SELF": "Perfect Self", "CLASS_FEATURE_MONK_PERFECT_SELF_TEXT": "When you roll for initiative and have no ki points remaining, you regain 4 ki points.", "CLASS_FEATURE_MONK_PURITY_OF_BODY": "Purity of Body", - "CLASS_FEATURE_MONK_PURITY_OF_BODY_TEXT": "Your mastery of the ki flowing through you makes you immune to disease and poison.", + "CLASS_FEATURE_MONK_PURITY_OF_BODY_TEXT": "La tua padronanza del ki che scorre dentro di te ti rende immune alle malattie e al veleno.", "CLASS_FEATURE_MONK_SLOW_FALL": "Slow Fall", "CLASS_FEATURE_MONK_SLOW_FALL_TEXT": "You can use your reaction when you fall to reduce any falling damage you take by [[5 * @{monk_level}]].", "CLASS_FEATURE_MONK_STEP_OF_THE_WIND": "Step of the Wind", "CLASS_FEATURE_MONK_STEP_OF_THE_WIND_TEXT": "You can spend 1 ki point to take the Disengage or Dash action as a bonus action on your turn, and your jump distance is doubled for the turn.", "CLASS_FEATURE_MONK_STILLNESS_OF_MIND": "Stillness of Mind", - "CLASS_FEATURE_MONK_STILLNESS_OF_MIND_TEXT": "You can use your action to end one effect on yourself that is causing you to be charmed or frightened.", + "CLASS_FEATURE_MONK_STILLNESS_OF_MIND_TEXT": "Puoi usare la tua azione per terminare un effetto su di te che ti stia causando l'effetto affascinato o spaventato.", "CLASS_FEATURE_MONK_STUNNING_STRIKE": "Stunning Strike", - "CLASS_FEATURE_MONK_STUNNING_STRIKE_TEXT": "You can interfere with the flow of ki in an opponent’s body. When you hit another creature with a melee weapon attack, you can spend 1 ki point to attempt a stunning strike. The target must succeed on a Constitution saving throw or be stunned until the end of your next turn.", + "CLASS_FEATURE_MONK_STUNNING_STRIKE_TEXT": "Puoi interferire con il flusso del ki nel corpo di un avversario. Quando colpisci un'altra creatura con un attacco con arma da mischia, puoi spendere 1 punto ki per tentare un colpo stordente. Il bersaglio deve riuscire un tiro salvezza di Costituzione o restare stordito fino al termine del tuo prossimo turno.", "CLASS_FEATURE_MONK_TIMELESS_BODY": "Timeless Body", "CLASS_FEATURE_MONK_TIMELESS_BODY_TEXT": "Your ki sustains you so that you suffer none of the frailty of old age, and you can’t be aged magically. You can still die of old age, however. In addition, you no longer need food or water.", "CLASS_FEATURE_MONK_TONGUE_OF_THE_SUN_AND_MOON": "Tongue of the Sun and Moon", @@ -282,7 +282,7 @@ "CLASS_FEATURE_MONK_UNARMORED_MOVEMENT": "Unarmored Movement", "CLASS_FEATURE_MONK_UNARMORED_MOVEMENT_TEXT": "Your speed increases by UNARMORED_MOVEMENT_FEET feet while you are not wearing armor or wielding a shield. This bonus increases when you reach certain monk levels, as shown in the Monk table.\nAt 9th level, you gain the ability to move along vertical surfaces and across liquids on your turn without falling during the move.", "CLASS_FEATURE_PALADIN_AURA_OF_COURAGE": "Aura of Courage", - "CLASS_FEATURE_PALADIN_AURA_OF_COURAGE_TEXT": "You and friendly creatures within AURA_RANGE feet of you can’t be frightened while you are conscious.", + "CLASS_FEATURE_PALADIN_AURA_OF_COURAGE_TEXT": "Tu e le creature tue alleate entro AURA_RANGE metri da te non potete essere spaventati mentre sono coscienti.", "CLASS_FEATURE_PALADIN_AURA_OF_PROTECTION": "Aura of Protection", "CLASS_FEATURE_PALADIN_AURA_OF_PROTECTION_TEXT": "Whenever you or a friendly creature within AURA_RANGE feet of you must make a saving throw, the creature gains a bonus to the saving throw equal to [[@{charisma_mod}]] (with a minimum bonus of +1). You must be conscious to grant this bonus.", "CLASS_FEATURE_PALADIN_CHANNEL_DIVINITY": "Channel Divinity", @@ -302,11 +302,11 @@ "CLASS_FEATURE_PALADIN_IMPROVED_DIVINE_SMITE": "Improved Divine Smite", "CLASS_FEATURE_PALADIN_IMPROVED_DIVINE_SMITE_TEXT": "You are so suffused with righteous might that all your melee weapon strikes carry divine power with them. Whenever you hit a creature with a melee weapon, the creature takes an extra 1d8 radiant damage. If you also use your Divine Smite with an attack, you add this damage to the extra damage of your Divine Smite.", "CLASS_FEATURE_PALADIN_LAY_ON_HANDS": "Lay on Hands", - "CLASS_FEATURE_PALADIN_LAY_ON_HANDS_TEXT": "Your blessed touch can heal wounds. As an action, you can touch a creature to restore a number of hit points to that creature.\nAlternatively, you can expend 5 hit points from your pool of healing to cure the target of one disease or neutralize one poison affecting it. You can cure multiple diseases and neutralize multiple poisons with a single use of Lay on Hands, expending hit points separately for each one.\nThis feature has no effect on undead and constructs.", + "CLASS_FEATURE_PALADIN_LAY_ON_HANDS_TEXT": "Il tuo tocco benedetto può curare una creatura. Con un'azione, puoi ripristinare i punti ferita di una creatura con cui sei in contatto\nIn alternativa, puoi spendere 5 punti dalla tua riserva di guarigione per curare il bersaglio di una malattia o neutralizzare un veleno che lo affligge. Puoi curare più malattie e neutralizzare più veleni con una singola Imposizione delle mani, spendendo i punti ferita separatamente per ogni malanno.\nQuesto privilegio non ha effetto su non morti o costrutti.", "CLASS_FEATURE_RANGERUA_FAVORED_ENEMY": "Favored Enemy", "CLASS_FEATURE_RANGERUA_FAVORED_ENEMY_TEXT": "You have significant experience studying, tracking, hunting, and even talking to a certain type of enemy.\nChoose a type of favored enemy: beasts, fey, humanoids, monstrosities, or undead. You gain a +2 bonus to damage rolls with weapon attacks against creatures of the chosen type. Additionally, you have advantage on Wisdom (Survival) checks to track your favored enemies, as well as on Intelligence checks to recall information about them.\nWhen you gain this feature, you also learn one language of your choice, typically one spoken by your favored enemy or creatures associated with it. However, you are free to pick any language you wish to learn.", "CLASS_FEATURE_RANGERUA_FERAL_SENSES": "Feral Senses", - "CLASS_FEATURE_RANGERUA_FERAL_SENSES_TEXT": "You gain preternatural senses that help you fight creatures you can’t see. When you attack a creature you can’t see, your inability to see it doesn’t impose disadvantage on your attack rolls against it.\nYou are also aware of the location of any invisible creature within 30 feet of you, provided that the creature isn’t hidden from you and you aren’t blinded or deafened.", + "CLASS_FEATURE_RANGERUA_FERAL_SENSES_TEXT": "Acquisisci sensi soprannaturali che ti aiutano a combattere le creature che non puoi vedere. Quando attacchi una creatura che non puoi vedere, la tua incapacità di vederla non impone svantaggio ai tuoi tiri per colpire contro di essa.\nSei anche consapevole della posizione di qualsiasi creatura invisibile entro 9 metri da te, a condizione che la creatura non sia nascosta a te e tu non sia accecato o assordato.", "CLASS_FEATURE_RANGERUA_FIGHTING_STYLE": "Fighting Style (Ranger UA)", "CLASS_FEATURE_RANGERUA_FIGHTING_STYLE_TEXT": "You adopt a particular style of fighting as your specialty. Choose one of the following options. You can’t take a Fighting Style option more than once, even if you later get to choose again.\n\nArchery\nYou gain a +2 bonus to attack rolls you make with ranged weapons.\n\nDefense\nWhile you are wearing armor, you gain a +1 bonus to AC.\n\nDueling\nWhen you are wielding a melee weapon in one hand and no other weapons, you gain a +2 bonus to damage rolls with that weapon.\n\nTwo-Weapon Fighting\nWhen you engage in two-weapon fighting, you can add your ability modifier to the damage of the second attack.", "CLASS_FEATURE_RANGERUA_FLEET_OF_FOOT": "Fleet of Foot", @@ -316,7 +316,7 @@ "CLASS_FEATURE_RANGERUA_GREATER_FAVORED_ENEMY": "Greater Favored Enemy", "CLASS_FEATURE_RANGERUA_GREATER_FAVORED_ENEMY_TEXT": "You are ready to hunt even deadlier game. Choose a type of greater favored enemy: aberrations, celestials, constructs, dragons, elementals, fiends, or giants. You gain all the benefits against this chosen enemy that you normally gain against your favored enemy, including an additional language. Your bonus to damage rolls against all your favored enemies increases to +4.\nAdditionally, you have advantage on saving throws against the spells and abilities used by a greater favored enemy.", "CLASS_FEATURE_RANGERUA_HIDE_IN_PLAIN_SIGHT": "Hide in Plain Sight", - "CLASS_FEATURE_RANGERUA_HIDE_IN_PLAIN_SIGHT_TEXT": "You can remain perfectly still for long periods of time to set up ambushes.\nWhen you attempt to hide on your turn, you can opt to not move on that turn. If you avoid moving, creatures that attempt to detect you take a −10 penalty to their Wisdom (Perception) checks until the start of your next turn. You lose this benefit if you move or fall prone, either voluntarily or because of some external effect. You are still automatically detected if any effect or action causes you to no longer be hidden.\nIf you are still hidden on your next turn, you can continue to remain motionless and gain this benefit until you are detected.", + "CLASS_FEATURE_RANGERUA_HIDE_IN_PLAIN_SIGHT_TEXT": "Puoi rimanere perfettamente immobile per lunghi periodi di tempo per organizzare imboscate.\nQuando tenti di nasconderti nel tuo turno, puoi scegliere di non muoverti in quel turno. Se eviti di muoverti, le creature che tentano di individuarti subiscono una penalità di -10 alle loro prove di Saggezza (Percezione) fino all'inizio del tuo prossimo turno. Perdi questo beneficio se ti muovi o cadi prono, volontariamente o per qualche effetto esterno. Verrai comunque rilevato automaticamente se qualsiasi effetto o azione ti fa non essere più nascosto.\nSe sei ancora nascosto nel tuo prossimo turno, puoi continuare a rimanere immobile e ottenere questo beneficio finché non vieni scoperto.", "CLASS_FEATURE_RANGERUA_NATURAL_EXPLORER": "Natural Explorer", "CLASS_FEATURE_RANGERUA_NATURAL_EXPLORER_TEXT": "You area master of navigating the natural world, and you react with swift and decisive action when attacked. This grants you the following benefits:\n•You ignore difficult terrain.\n•You have advantage on initiative rolls.\n•On your first turn during combat, you have advantage on attack rolls against creatures that have not yet acted.\nIn addition, you are skilled at navigating the wilderness. You gain the following benefits when traveling for an hour or more:\n•Difficult terrain doesn’t slow your group’s travel.\n•Your group can’t become lost except by magical means.\n•Even when you are engaged in another activity while traveling(such as foraging, navigating, or tracking), you remain alert to danger.\n•If you are traveling alone, you can move stealthily at a normal pace.\n•When you forage, you find twice as much food as you normally would.\n•While tracking other creatures, you also learn their exact number, their sizes, and how long ago they passed through the area.", "CLASS_FEATURE_RANGERUA_PRIMEVAL_AWARENESS": "Primeval Awareness", @@ -328,7 +328,7 @@ "CLASS_FEATURE_RANGER_FAVORED_ENEMY": "Favored Enemy", "CLASS_FEATURE_RANGER_FAVORED_ENEMY_TEXT": "You have significant experience studying, tracking, hunting, and even talking to a certain type of enemy.\nChoose a type of favored enemy: aberrations, beasts, celestials, constructs, dragons, elementals, fey, fiends, giants, monstrosities, oozes, plants, or undead. Alternatively, you can select two races of humanoid (such as gnolls and orcs) as favored enemies.\nYou have advantage on Wisdom (Survival) checks to track your favored enemies, as well as on Intelligence checks to recall information about them.\nWhen you gain this feature, you also learn one language of your choice that is spoken by your favored enemies, if they speak one at all.\nYou choose one additional favored enemy, as well as an associated language, at 6th and 14th level. As you gain levels, your choices should reflect the types of monsters you have encountered on your adventures.", "CLASS_FEATURE_RANGER_FERAL_SENSES": "Feral Senses", - "CLASS_FEATURE_RANGER_FERAL_SENSES_TEXT": "You gain preternatural senses that help you fight creatures you can’t see. When you attack a creature you can’t see, your inability to see it doesn’t impose disadvantage on your attack rolls against it.\nYou are also aware of the location of any invisible creature within 30 feet of you, provided that the creature isn’t hidden from you and you aren’t blinded or deafened.", + "CLASS_FEATURE_RANGER_FERAL_SENSES_TEXT": "Acquisisci sensi soprannaturali che ti aiutano a combattere le creature che non puoi vedere. Quando attacchi una creatura che non puoi vedere, la tua incapacità di vederla non impone svantaggio ai tuoi tiri per colpire contro di essa.\nSei anche consapevole della posizione di qualsiasi creatura invisibile entro 9 metri da te, a condizione che la creatura non sia nascosta a te e tu non sia accecato o assordato.", "CLASS_FEATURE_RANGER_FIGHTING_STYLE": "Fighting Style (Ranger)", "CLASS_FEATURE_RANGER_FIGHTING_STYLE_TEXT": "You adopt a particular style of fighting as your specialty. Choose one of the following options. You can’t take a Fighting Style option more than once, even if you later get to choose again.\n\nArchery\nYou gain a +2 bonus to attack rolls you make with ranged weapons.\n\nDefense\nWhile you are wearing armor, you gain a +1 bonus to AC.\n\nDueling\nWhen you are wielding a melee weapon in one hand and no other weapons, you gain a +2 bonus to damage rolls with that weapon.\n\nTwo-Weapon Fighting\nWhen you engage in two-weapon fighting, you can add your ability modifier to the damage of the second attack.", "CLASS_FEATURE_RANGER_FOE_SLAYER": "Foe Slayer", @@ -344,7 +344,7 @@ "CLASS_FEATURE_RANGER_VANISH": "Vanish", "CLASS_FEATURE_RANGER_VANISH_TEXT": "You can use the Hide action as a bonus action on your turn. Also, you can’t be tracked by nonmagical means, unless you choose to leave a trail.", "CLASS_FEATURE_ROGUE_BLINDSENSE": "Blindsense", - "CLASS_FEATURE_ROGUE_BLINDSENSE_TEXT": "If you are able to hear, you are aware of the location of any hidden or invisible creature within 10 feet of you.", + "CLASS_FEATURE_ROGUE_BLINDSENSE_TEXT": "Se sei in grado di sentire, riesci a percepire la posizione di ogni creatura nascosta o invisibile entro 3 metri da te.", "CLASS_FEATURE_ROGUE_CUNNING_ACTION": "Cunning Action", "CLASS_FEATURE_ROGUE_CUNNING_ACTION_TEXT": "Your quick thinking and agility allow you to move and act quickly. You can take a bonus action on each of your turns in combat. This action can be used only to take the Dash, Disengage, or Hide action.", "CLASS_FEATURE_ROGUE_ELUSIVE": "Elusive", @@ -463,7 +463,7 @@ "DARKVISION": "Scurovisione", "DC": "CD", "DEAFENED": "Assordato", - "DEAFENED_1": "A deafened creature can’t hear and automatically fails any ability check that requires hearing.", + "DEAFENED_1": "Una creatura assordata non può sentire e fallisce automaticamente qualsiasi prova di caratteristica che richieda udito.", "DEATH": "Morte", "DEATH_SAVES": "TS vs Morte", "DEATH_SAVING_THROW": "Tiro salvezza vs morte", @@ -566,8 +566,8 @@ "FREEFORM": "Freeform", "FREETEXT": "Testo", "FRIGHTENED": "Spaventato", - "FRIGHTENED_1": "A frightened creature has disadvantage on ability checks and attack rolls while the source of its fear is within line of sight.", - "FRIGHTENED_2": "The creature can’t willingly move closer to the source of its fear.", + "FRIGHTENED_1": "Una creatura spaventata ha svantaggio alle prove di caratteristica e ai tiri per colpire mentre la fonte della sua paura è entro la linea di vista.", + "FRIGHTENED_2": "La creatura non può avvicinarsi volontariamente alla fonte della sua paura.", "GARGANTUAN": "Gigantesco", "GENDER": "Sesso", "GENERATE": "Generate", @@ -576,9 +576,9 @@ "GOLD": "Oro", "GP": "MO", "GRAPPLED": "Afferrato", - "GRAPPLED_1": "A grappled creature’s speed becomes 0, and it can’t benefit from any bonus to its speed.", - "GRAPPLED_2": "The condition ends if the grappler is incapacitated (see the condition).", - "GRAPPLED_3": "The condition also ends if an effect removes the grappled creature from the reach of the grappler or grappling effect, such as when a creature is hurled away by the thunderwave spell.", + "GRAPPLED_1": "La velocità di una creatura in combattimento diventa 0 e non può beneficiare di alcun bonus alla sua velocità.", + "GRAPPLED_2": "La condizione termina se colui che afferra è incapacitato (vedi condizione).", + "GRAPPLED_3": "La condizione termina anche se un effetto rimuove la creatura in combattimento dalla portata del lottatore o l'effetto di lotta, come quando una creatura viene scagliata via dall'incantesimo Onda Tonante.", "HAIR": "Capelli", "HALF": "Metà", "HALFLING_LUCK": "Fortuna halfling", @@ -631,7 +631,7 @@ "ILLUSION": "Illusione", "IMPORT": "Importa", "INCAPACITATED": "Incapacitato", - "INCAPACITATED_1": "An incapacitated creature can’t take actions or reactions.", + "INCAPACITATED_1": "Una creatura incapace non può compiere azioni o reazioni.", "INFLUENCE": "Influenza", "INITIATIVE": "Iniziativa", "INNATE_SPELLCASTING": "Innate Spellcasting", @@ -651,8 +651,8 @@ "INTIMIDATION": "Intimidazione", "INVESTIGATION": "Investigare", "INVISIBLE": "Invisibile", - "INVISIBLE_1": "An invisible creature is impossible to see without the aid of magic or a special sense. For the purpose of hiding, the creature is heavily obscured. The creature’s location can be detected by any noise it makes or any tracks it leaves.", - "INVISIBLE_2": "Attack rolls against the creature have disadvantage, and the creature’s attack rolls have advantage.", + "INVISIBLE_1": "Una creatura invisibile è impossibile da vedere senza l'aiuto della magia o di un senso speciale. Allo scopo di nascondersi, la creatura è fortemente oscurata. La posizione della creatura può essere rilevata da qualsiasi rumore che emette o dalle tracce che lascia.", + "INVISIBLE_2": "I tiri per colpire contro la creatura hanno vantaggio e i tiri per colpire della creatura hanno svantaggio.", "JACK_OF_ALL_TRADES": "Tuttofare", "KI": "Ki", "KILOGRAMS": "Chilogrammi", @@ -731,10 +731,10 @@ "OUTPUT": "Output", "PALADIN": "Paladino", "PARALYZED": "Paralizzato", - "PARALYZED_1": "A paralyzed creature is incapacitated (see the condition) and can’t move or speak.", - "PARALYZED_2": "The creature automatically fails Strength and Dexterity saving throws.", - "PARALYZED_3": "Attack rolls against the creature have advantage.", - "PARALYZED_4": "Any attack that hits the creature is a critical hit if the attacker is within 5 feet of the creature.", + "PARALYZED_1": "Una creatura paralizzata è incapacitata (vedi la condizione) e non può muoversi o parlare.", + "PARALYZED_2": "La creatura fallisce automaticamente i tiri salvezza di Forza e Destrezza.", + "PARALYZED_3": "I tiri per colpire contro la creatura hanno vantaggio.", + "PARALYZED_4": "Qualsiasi attacco che colpisce la creatura è un colpo critico se l'attaccante si trova entro 1,5 metri dalla creatura.", "PASSIVE": "Passivo", "PASSIVE_ABILITY_CHECK": "Prova passiva di caratteristica", "PASSIVE_SKILLS": "Passive skills", @@ -746,12 +746,12 @@ "PER_LEVEL": "per livello", "PER_USE": "per use", "PETRIFIED": "Pietrificato", - "PETRIFIED_1": "A petrified creature is transformed, along with any nonmagical object it is wearing or carrying, into a solid inanimate substance (usually stone). Its weight increases by a factor of ten, and it ceases aging.", - "PETRIFIED_2": "The creature is incapacitated (see the condition), can’t move or speak, and is unaware of its surroundings.", - "PETRIFIED_3": "Attack rolls against the creature have advantage.", - "PETRIFIED_4": "The creature automatically fails Strength and Dexterity saving throws.", - "PETRIFIED_5": "The creature has resistance to all damage.", - "PETRIFIED_6": "The creature is immune to poison and disease, although a poison or disease already in its system is suspended, not neutralized.", + "PETRIFIED_1": "Una creatura pietrificata si trasforma, insieme a qualsiasi oggetto non magico che indossa o trasporta, in una solida sostanza inanimata (di solito pietra). Il suo peso aumenta di un fattore dieci e cessa di invecchiare.", + "PETRIFIED_2": "La creatura è incapacitata (vedi la condizione), non può muoversi o parlare e non è consapevole di ciò che la circonda.", + "PETRIFIED_3": "I tiri per colpire contro la creatura hanno vantaggio.", + "PETRIFIED_4": "La creatura fallisce automaticamente i tiri salvezza di Forza e Destrezza.", + "PETRIFIED_5": "La creatura ha resistenza a tutti i danni.", + "PETRIFIED_6": "La creatura è immune a veleni e malattie, sebbene un veleno o una malattia già nel suo sistema rimangano in sospeso, non neutralizzati.", "PIERCING": "perforante", "PLATINUM": "Platino", "PLUS": "plus", @@ -759,7 +759,7 @@ "POINTS_OF_ORIGIN": "Punti di origine", "POISON": "veleno", "POISONED": "Avvelenato", - "POISONED_1": "A poisoned creature has disadvantage on attack rolls and ability checks.", + "POISONED_1": "Una creatura avvelenata ha svantaggio ai tiri per colpire e alle prove di caratteristica.", "POTION": "Pozione", "POTION_OF_HEALING": "Pozione di Guarigione", "POUNDS": "Pounds", @@ -777,9 +777,9 @@ "PROFICIENT": "Competente", "PROFICIENT_ARMOR_WEIGHS": "Armor that you are proficient in weighs", "PRONE": "Prono", - "PRONE_1": "A prone creature’s only movement option is to crawl, unless it stands up and thereby ends the condition.", - "PRONE_2": "The creature has disadvantage on attack rolls.", - "PRONE_3": "An attack roll against the creature has advantage if the attacker is within 5 feet of the creature. Otherwise, the attack roll has disadvantage.", + "PRONE_1": "L'unica opzione di movimento di una creatura prona è strisciare, a meno che non si alzi in piedi e quindi metta fine alla condizione.", + "PRONE_2": "La creatura ha svantaggio ai tiri per colpire.", + "PRONE_3": "Un tiro per colpire contro la creatura ha vantaggio se l'attaccante si trova entro 1,5 metri dalla creatura. Altrimenti, il tiro per colpire ha svantaggio.", "PSI": "Psi", "PSION": "Psion", "PSIONICS": "Psionics", @@ -835,10 +835,10 @@ "RESISTANCES_AND_IMMUNITIES": "Resistenze e immunità", "RESOURCES": "Risorse", "REST": "Riposo", - "RESTRAINED": "Legato", - "RESTRAINED_1": "A restrained creature’s speed becomes 0, and it can’t benefit from any bonus to its speed.", - "RESTRAINED_2": "Attack rolls against the creature have advantage, and the creature’s attack rolls have disadvantage.", - "RESTRAINED_3": "The creature has disadvantage on Dexterity saving throws.", + "RESTRAINED": "Afferrato", + "RESTRAINED_1": "La velocità di una creatura in combattimento diventa 0 e non può beneficiare di alcun bonus alla sua velocità.", + "RESTRAINED_2": "I tiri per colpire contro la creatura hanno vantaggio e i tiri per colpire della creatura hanno svantaggio.", + "RESTRAINED_3": "La creatura ha svantaggio ai tiri per colpire.", "RING": "Anello", "RITUAL": "Rituale", "ROGUE": "Furfante", @@ -909,7 +909,7 @@ "SKILL_SHEET_SETTING": "–   Sheet setting", "SKIN": "Pelle", "SLASHING": "Da taglio", - "SLEIGHTOFHAND": "Mano lesta", + "SLEIGHTOFHAND": "Rapidità di Mano", "SLOT": "Slot", "SLOTS": "Slots", "SMALL": "Piccola", @@ -958,9 +958,9 @@ "STR_13": "For 13", "STR_15": "For 15", "STUNNED": "Stordito", - "STUNNED_1": "A stunned creature is incapacitated (see the condition), can’t move, and can speak only falteringly.", - "STUNNED_2": "The creature automatically fails Strength and Dexterity saving throws.", - "STUNNED_3": "Attack rolls against the creature have advantage.", + "STUNNED_1": "Una creatura stordita è incapacitata (vedi la condizione), non può muoversi e può parlare solo farfugliando.", + "STUNNED_2": "La creatura fallisce automaticamente i tiri salvezza di Forza e Destrezza.", + "STUNNED_3": "I tiri per colpire contro la creatura hanno vantaggio.", "SUCCESSES": "Successi", "SUMMONER": "Evocatore", "SURVIVAL": "Sopravvivenza", @@ -986,11 +986,11 @@ "TYPE": "Tipo", "UNARMORED": "Senza armatura", "UNCONSCIOUS": "Svenuto", - "UNCONSCIOUS_1": "An unconscious creature is incapacitated (see the condition), can’t move or speak, and is unaware of its surroundings.", - "UNCONSCIOUS_2": "The creature drops whatever it’s holding and falls prone.", - "UNCONSCIOUS_3": "The creature automatically fails Strength and Dexterity saving throws.", - "UNCONSCIOUS_4": "Attack rolls against the creature have advantage.", - "UNCONSCIOUS_5": "Any attack that hits the creature is a critical hit if the attacker is within 5 feet of the creature.", + "UNCONSCIOUS_1": "La creatura è incapacitata (vedi la condizione), non può muoversi o parlare e non è consapevole di ciò che la circonda.", + "UNCONSCIOUS_2": "La creatura lascia cadere qualunque cosa stia trattenendo e cade prona.", + "UNCONSCIOUS_3": "La creatura fallisce automaticamente i tiri salvezza di Forza e Destrezza.", + "UNCONSCIOUS_4": "I tiri per colpire contro la creatura hanno vantaggio.", + "UNCONSCIOUS_5": "Qualsiasi attacco che colpisce la creatura è un colpo critico se l'attaccante si trova entro 1,5 metri dalla creatura.", "UNITS": "Units", "UNPROFICIENT": "Non competente", "UNTIL_DISPELLED": "Finché non è dissolto", diff --git a/AGE System/AGE System.css b/AGE System/AGE System.css index 47e9d8e616..f73aa65392 100644 --- a/AGE System/AGE System.css +++ b/AGE System/AGE System.css @@ -85,6 +85,13 @@ input.sheet-tab-button.sheet-tab5 + span { width: 47px; } +input.sheet-tab-button.sheet-tab-stunts2, +input.sheet-tab-button.sheet-tab-stunts2 + span { + left: 99px; + width: 58px; + display: none; +} + input.sheet-tab-button.sheet-tab-aim, input.sheet-tab-button.sheet-tab-aim + span { left: 68px; @@ -901,11 +908,6 @@ input.sheet-mana-section-checkbox:not(:checked) + input.sheet-exp-section-checkb margin-left: 5px; } -.sheet-col-attackdice .sheet-attackroll-withprompt, -.sheet-col-attackdice .sheet-attackroll-withprompt::before { - display: none; -} - .sheet-col-attack-damage { width: 80px; } @@ -1350,7 +1352,8 @@ select.sheet-spell-method option { background-color: white; color: black; } /* OPTIONS TAB */ -.sheet-page.sheet-tab6 select[name="attr_armor-penalty-for-dex"] { +.sheet-page.sheet-tab6 select[name="attr_armor-penalty-for-dex"], +.sheet-page.sheet-tab6 select[name="attr_initiative-tiebreaker"] { width: 50px; } @@ -1850,22 +1853,6 @@ input.sheet-the-expanse-button:checked ~ .sheet-page .sheet-blue-rose-selected { width: 75px; } -input.sheet-aim-toggle-checkbox:checked ~ .sheet-page .sheet-attackroll-noaim, -input.sheet-aim-toggle-checkbox:checked ~ .sheet-page .sheet-attackroll-noaim::before, -input.sheet-aim-prompt-checkbox:checked ~ .sheet-page .sheet-attackroll-noaim, -input.sheet-aim-prompt-checkbox:checked ~ .sheet-page .sheet-attackroll-noaim::before, -input.sheet-aim-always-checkbox:checked ~ .sheet-page .sheet-attackroll-noaim, -input.sheet-aim-always-checkbox:checked ~ .sheet-page .sheet-attackroll-noaim::before -{ - display: none; -} - -input.sheet-aim-toggle-checkbox:checked ~ .sheet-page .sheet-attackroll-withprompt, -input.sheet-aim-toggle-checkbox:checked ~ .sheet-page .sheet-attackroll-withprompt::before, -input.sheet-aim-prompt-checkbox:checked ~ .sheet-page .sheet-attackroll-withprompt, -input.sheet-aim-prompt-checkbox:checked ~ .sheet-page .sheet-attackroll-withprompt::before, -input.sheet-aim-always-checkbox:checked ~ .sheet-page .sheet-attackroll-withprompt, -input.sheet-aim-always-checkbox:checked ~ .sheet-page .sheet-attackroll-withprompt::before, input.sheet-conditions-section-checkbox:checked ~ .sheet-page .sheet-conditions-section, input.sheet-mana-section-checkbox:checked ~ .sheet-page .sheet-mana-section, input.sheet-exp-section-checkbox:checked ~ .sheet-page .sheet-experience-points-section, @@ -1887,20 +1874,12 @@ input.sheet-money-section-checkbox:checked ~ .sheet-page .sheet-money-secti input.sheet-whisper-toggle-checkbox:checked ~ input.sheet-tab-button.sheet-tab-whisper, input.sheet-whisper-toggle-checkbox:checked ~ input.sheet-tab-button.sheet-tab-whisper + span, input.sheet-aim-toggle-checkbox:checked ~ input.sheet-tab-button.sheet-tab-aim, -input.sheet-aim-toggle-checkbox:checked ~ input.sheet-tab-button.sheet-tab-aim + span { +input.sheet-aim-toggle-checkbox:checked ~ input.sheet-tab-button.sheet-tab-aim + span, +input.sheet-stunts2-toggle-checkbox:checked ~ input.sheet-tab-button.sheet-tab-stunts2, +input.sheet-stunts2-toggle-checkbox:checked ~ input.sheet-tab-button.sheet-tab-stunts2 + span { display: block; } -input.sheet-old-section-checkbox:checked ~ input.sheet-tab-button.sheet-tab-whisper, -input.sheet-old-section-checkbox:checked ~ input.sheet-tab-button.sheet-tab-whisper + span { - left: 154px; -} - -input.sheet-old-section-checkbox:checked ~ input.sheet-tab-button.sheet-tab-aim, -input.sheet-old-section-checkbox:checked ~ input.sheet-tab-button.sheet-tab-aim + span { - left: 222px; -} - input.sheet-mana-section-checkbox:not(:checked) + input.sheet-exp-section-checkbox:not(:checked) + input.sheet-fatigue-section-checkbox:not(:checked) + input.sheet-conviction-section-checkbox:not(:checked) + input.sheet-corruption-section-checkbox:not(:checked) ~ .sheet-page .sheet-speed-defense-armor-container { width: calc(75% - 2.9px); } @@ -1974,11 +1953,12 @@ input.sheet-ammo-col-checkbox:checked ~ .sheet-page .sheet-attack-container .she .sheet-rolltemplate-age-roller .sheet-age-roller-result { width: 100%; padding-top: 10px; text-align: center; border-bottom: 1px solid black;padding-bottom: 5px; } .sheet-rolltemplate-age-roller .sheet-die-face { font-size: 48px; font-weight: bold; font-family: "dicefontd6"; color: #333333; } .sheet-rolltemplate-age-roller .sheet-die-face-drama { text-transform: uppercase; } +.sheet-rolltemplate-age-roller .sheet-die-seperator { font-size: 38px; font-weight: bold; color: black; vertical-align: top;} .sheet-rolltemplate-age-roller .sheet-age-roller-stunt + .sheet-age-roller-stunt { display: none; } .sheet-rolltemplate-age-roller .sheet-age-roller-line { padding-top: 2px; padding-bottom: 2px; text-align: top; } .sheet-rolltemplate-age-roller .sheet-age-roller-stunt { border-top: 1px solid black; color: green; font-weight: bold; } -.sheet-rolltemplate-age-roller .sheet-age-roller-col1 { display: inline-block; width: 165px; text-align: left; margin-left: 5px; margin-right: 5px; } -.sheet-rolltemplate-age-roller .sheet-age-roller-col2 { display: inline-block; width: 36px; text-align: right; margin-left: 5px; margin-right: 5px; } +.sheet-rolltemplate-age-roller .sheet-age-roller-col1 { display: inline-block; width: 163px; text-align: left; margin-left: 5px; margin-right: 5px; } +.sheet-rolltemplate-age-roller .sheet-age-roller-col2 { display: inline-block; width: 38px; text-align: right; margin-left: 5px; margin-right: 5px; } .sheet-rolltemplate-age-roller .sheet-age-roller-title { background-color: black; color: white; font-weight: bold; padding-left: 5px; padding-right: 5px; padding-bottom: 2px; padding-top: 2px; margin-bottom: 3px; } .sheet-rolltemplate-age-roller .sheet-age-roller-total { border-top: 1px solid black; } .sheet-rolltemplate-age-roller .sheet-age-roller-total .sheet-age-roller-col1 { font-weight: bold; } diff --git a/AGE System/AGE System.html b/AGE System/AGE System.html index 9a982f79f7..43b6232912 100644 --- a/AGE System/AGE System.html +++ b/AGE System/AGE System.html @@ -1,6 +1,6 @@
- + @@ -26,6 +26,7 @@ + @@ -45,13 +46,20 @@ - + + + + + + + WHISPER AIM +2 STUNTS CHARACTER PERSONA @@ -60,7 +68,7 @@ MAGICARCANAEXTRAORDINARY y - +
@@ -294,8 +302,8 @@
-
+
@@ -303,7 +311,7 @@
- +
@@ -314,7 +322,7 @@ - , + ,
@@ -327,7 +335,7 @@
- +
@@ -337,7 +345,7 @@
- , + ,
@@ -350,7 +358,7 @@
- +
@@ -360,8 +368,8 @@
- - , + + ,
@@ -374,7 +382,7 @@
- +
@@ -385,7 +393,7 @@ - , + ,
@@ -398,7 +406,7 @@
- +
@@ -409,21 +417,21 @@ - , + ,
- +
- +
@@ -434,7 +442,7 @@ - , + ,
@@ -447,7 +455,7 @@
- +
@@ -458,7 +466,7 @@ - , + ,
@@ -471,7 +479,7 @@
- +
@@ -482,7 +490,7 @@ - , + ,
@@ -495,7 +503,7 @@
- +
@@ -506,7 +514,7 @@ - , + ,
@@ -519,7 +527,7 @@
- +
@@ -530,7 +538,7 @@ - , + ,
@@ -543,7 +551,7 @@
- +
@@ -554,7 +562,7 @@ - , + ,
@@ -608,16 +616,16 @@
-
-
- -
- -
- Adjust - -
-
+
+
+ +
+ +
+ Adjust + +
+
FATIGUE @@ -688,23 +696,23 @@
-
-
-
- -
-
- -
-
-
- -
-
+
+
+
+ +
+
+ +
+
+
+ +
+
Max -
-
+
+
@@ -749,6 +757,7 @@
+
i
b
@@ -883,14 +892,12 @@
- - - - + +
- +
@@ -935,7 +942,7 @@
- +
@@ -957,7 +964,7 @@
- +
@@ -980,7 +987,7 @@
- +
@@ -1002,12 +1009,12 @@ - - -
- - -
+ + +
+ + +
@@ -1025,12 +1032,12 @@ - - -
- - -
+ + +
+ + +
@@ -1654,7 +1661,7 @@ FOCUS: - +
@@ -1672,7 +1679,7 @@ FOCUS: - +
@@ -1690,7 +1697,7 @@ FOCUS: - +
@@ -1708,7 +1715,7 @@ FOCUS: - +
@@ -1728,7 +1735,7 @@ FOCUS: - +
@@ -1746,7 +1753,7 @@ FOCUS: - +
@@ -1764,7 +1771,7 @@ FOCUS: - +
@@ -1782,7 +1789,7 @@ FOCUS: - +
@@ -1800,7 +1807,7 @@ FOCUS: - +
@@ -1820,7 +1827,7 @@ FOCUS: - +
@@ -1838,7 +1845,7 @@ FOCUS: - +
@@ -1856,7 +1863,7 @@ FOCUS: - +
@@ -2119,7 +2126,7 @@
- +
@@ -2208,7 +2215,7 @@
- +
@@ -2274,9 +2281,9 @@
- - - + + +
@@ -2305,7 +2312,7 @@
- +
@@ -2378,13 +2385,13 @@
- - - - - - - + + + + + + +
@@ -2418,13 +2425,13 @@
- - - - - - -
+ + + + + + +
SHORT DESC.: @@ -2492,11 +2499,11 @@
- - - - - + + + + +
@@ -2531,13 +2538,13 @@
-
- -
-
- -
-
+
+ +
+
+ +
+
SHORT DESC.: @@ -2735,6 +2742,7 @@
+
GAME SYSTEM @@ -2746,12 +2754,13 @@ - - - + + +
+
COLOR SELECTION @@ -2778,6 +2787,7 @@
+
ROLLS @@ -2811,7 +2821,7 @@ Prompt for Aim
-
+
Apply Armor Penalty to Dexterity rolls
- -
+ +
+
+
+ Prompt for 2 Stunts +
+ +
+
+
+ Add Tiebreaker to Initiative rolls +
+ +
+
CHARACTER TAB SECTIONS @@ -2975,10 +3006,10 @@
- - Version - - + + Version + + @@ -2987,264 +3018,317 @@ -
+
- {{#color-black}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-black}} - {{#color-red}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-red}} - {{#color-blue1}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-blue1}} - {{#color-blue2}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-blue2}} - {{#color-teal1}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-teal1}} - {{#color-teal2}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-teal2}} - {{#color-green}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-green}} - {{#color-orange}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-orange}} - {{#color-stars}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-stars}} - {{#color-threefold}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-threefold}} - {{#color-lazarus}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-lazarus}} - {{#color-rainbow}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-rainbow}} - {{#color-dragon}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-dragon}} + {{#color-black}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-black}} + {{#color-red}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-red}} + {{#color-blue1}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-blue1}} + {{#color-blue2}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-blue2}} + {{#color-teal1}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-teal1}} + {{#color-teal2}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-teal2}} + {{#color-green}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-green}} + {{#color-orange}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-orange}} + {{#color-stars}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-stars}} + {{#color-threefold}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-threefold}} + {{#color-lazarus}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-lazarus}} + {{#color-rainbow}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-rainbow}} + {{#color-dragon}}
{{#player}}{{player}}{{/player}}{{#desc}}{{desc}}{{/desc}}
{{/color-dragon}} - {{#total}} -
- - {{#rollTotal() die1 1}}a{{/rollTotal() die1 1}} - {{#rollTotal() die1 2}}b{{/rollTotal() die1 2}} - {{#rollTotal() die1 3}}c{{/rollTotal() die1 3}} - {{#rollTotal() die1 4}}d{{/rollTotal() die1 4}} - {{#rollTotal() die1 5}}e{{/rollTotal() die1 5}} - {{#rollTotal() die1 6}}f{{/rollTotal() die1 6}} - - - {{#rollTotal() die2 1}}a{{/rollTotal() die2 1}} - {{#rollTotal() die2 2}}b{{/rollTotal() die2 2}} - {{#rollTotal() die2 3}}c{{/rollTotal() die2 3}} - {{#rollTotal() die2 4}}d{{/rollTotal() die2 4}} - {{#rollTotal() die2 5}}e{{/rollTotal() die2 5}} - {{#rollTotal() die2 6}}f{{/rollTotal() die2 6}} - - {{#color-black}} {{/color-black}} - {{#color-red}} {{/color-red}} - {{#color-blue1}} {{/color-blue1}} - {{#color-blue2}} {{/color-blue2}} - {{#color-teal1}} {{/color-teal1}} - {{#color-teal2}} {{/color-teal2}} - {{#color-orange}} {{/color-orange}} - {{#color-green}} {{/color-green}} - {{#color-threefold}} {{/color-threefold}} - {{#color-lazarus}} {{/color-lazarus}} - {{#color-stars}} {{/color-stars}} - {{#color-rainbow}} {{/color-rainbow}} - {{#color-dragon}} {{/color-dragon}} + {{#total}} +
+ + {{#rollTotal() die1 1}}a{{/rollTotal() die1 1}} + {{#rollTotal() die1 2}}b{{/rollTotal() die1 2}} + {{#rollTotal() die1 3}}c{{/rollTotal() die1 3}} + {{#rollTotal() die1 4}}d{{/rollTotal() die1 4}} + {{#rollTotal() die1 5}}e{{/rollTotal() die1 5}} + {{#rollTotal() die1 6}}f{{/rollTotal() die1 6}} + + + {{#rollTotal() die2 1}}a{{/rollTotal() die2 1}} + {{#rollTotal() die2 2}}b{{/rollTotal() die2 2}} + {{#rollTotal() die2 3}}c{{/rollTotal() die2 3}} + {{#rollTotal() die2 4}}d{{/rollTotal() die2 4}} + {{#rollTotal() die2 5}}e{{/rollTotal() die2 5}} + {{#rollTotal() die2 6}}f{{/rollTotal() die2 6}} + + {{#color-black}} {{/color-black}} + {{#color-red}} {{/color-red}} + {{#color-blue1}} {{/color-blue1}} + {{#color-blue2}} {{/color-blue2}} + {{#color-teal1}} {{/color-teal1}} + {{#color-teal2}} {{/color-teal2}} + {{#color-orange}} {{/color-orange}} + {{#color-green}} {{/color-green}} + {{#color-threefold}} {{/color-threefold}} + {{#color-lazarus}} {{/color-lazarus}} + {{#color-stars}} {{/color-stars}} + {{#color-rainbow}} {{/color-rainbow}} + {{#color-dragon}} {{/color-dragon}} - {{#rollTotal() drama 1}}a{{/rollTotal() drama 1}} - {{#rollTotal() drama 2}}b{{/rollTotal() drama 2}} - {{#rollTotal() drama 3}}c{{/rollTotal() drama 3}} - {{#rollTotal() drama 4}}d{{/rollTotal() drama 4}} - {{#rollTotal() drama 5}}e{{/rollTotal() drama 5}} - {{#rollTotal() drama 6}}f{{/rollTotal() drama 6}} - -
- {{/total}} + {{#rollTotal() drama 1}}a{{/rollTotal() drama 1}} + {{#rollTotal() drama 2}}b{{/rollTotal() drama 2}} + {{#rollTotal() drama 3}}c{{/rollTotal() drama 3}} + {{#rollTotal() drama 4}}d{{/rollTotal() drama 4}} + {{#rollTotal() drama 5}}e{{/rollTotal() drama 5}} + {{#rollTotal() drama 6}}f{{/rollTotal() drama 6}} - {{#mod}} -
-
- {{#ability}}{{ability}}{{/ability}} -
-
- {{#mod}} - {{#rollGreater() mod 0}}+{{/rollGreater() mod 0}}{{mod}} - {{/mod}} -
-
- {{/mod}} + {{#rollTotal() stuntcheck 1}} + | + {{#rollTotal() drama2 1}}a{{/rollTotal() drama2 1}} + {{#rollTotal() drama2 2}}b{{/rollTotal() drama2 2}} + {{#rollTotal() drama2 3}}c{{/rollTotal() drama2 3}} + {{#rollTotal() drama2 4}}d{{/rollTotal() drama2 4}} + {{#rollTotal() drama2 5}}e{{/rollTotal() drama2 5}} + {{#rollTotal() drama2 6}}f{{/rollTotal() drama2 6}} + {{/rollTotal() stuntcheck 1}} +
+
+ {{/total}} - {{#damage}} -
-
- Damage -
-
- {{damage}} -
-
- {{/damage}} + {{#mod}} +
+
+ {{#ability}}{{ability}}{{/ability}} +
+
+ {{#rollGreater() mod 0}}+{{/rollGreater() mod 0}}{{mod}} +
+
+ {{/mod}} - {{#extramod1}} -
-
- {{#extramod1-name}}{{extramod1-name}}{{/extramod1-name}} -
-
- {{#extramod1}} - {{#rollGreater() extramod1 0}}+{{/rollGreater() extramod1 0}}{{extramod1}} - {{/extramod1}} -
-
- {{/extramod1}} + {{#damage}} +
+
+ Damage{{#damagedice}}: {{damagedice}}{{/damagedice}} +
+
+ {{damage}} +
+
+ {{/damage}} - {{#extramod2}} - {{#^rollTotal() extramod2 0}} -
-
- {{#extramod2-name}}{{extramod2-name}}{{/extramod2-name}} -
-
- {{#extramod2}} - {{#rollGreater() extramod2 0}}+{{/rollGreater() extramod2 0}}{{extramod2}} - {{/extramod2}} -
-
- {{/^rollTotal() extramod2 0}} - {{/extramod2}} + {{#^rollTotal() aimcheck 0}} +
+
+ Aim +
+
+ {{aimbonus}} +
+
+ {{/^rollTotal() aimcheck 0}} - {{#extramod3}} - {{#^rollTotal() extramod3 0}} -
-
- {{#extramod3-name}}{{extramod3-name}}{{/extramod3-name}} -
-
- {{#extramod3}} - {{#rollGreater() extramod3 0}}+{{/rollGreater() extramod3 0}}{{extramod3}} - {{/extramod3}} -
-
- {{/^rollTotal() extramod3 0}} - {{/extramod3}} + {{#extramod1}} +
+
+ {{#extramod1-name}}{{extramod1-name}}{{/extramod1-name}} +
+
+ {{#rollGreater() extramod1 0}}+{{/rollGreater() extramod1 0}}{{extramod1}} +
+
+ {{/extramod1}} - {{#extramod4}} - {{#^rollTotal() extramod4 0}} -
-
- {{#extramod4-name}}{{extramod4-name}}{{/extramod4-name}} -
-
- {{#extramod4}} - {{#rollGreater() extramod4 0}}+{{/rollGreater() extramod4 0}}{{extramod4}} - {{/extramod4}} -
-
- {{/^rollTotal() extramod4 0}} - {{/extramod4}} + {{#extramod2}} + {{#^rollTotal() extramod2 0}} +
+
+ {{#extramod2-name}}{{extramod2-name}}{{/extramod2-name}} +
+
+ {{#rollGreater() extramod2 0}}+{{/rollGreater() extramod2 0}}{{extramod2}} +
+
+ {{/^rollTotal() extramod2 0}} + {{/extramod2}} - {{#rollGreater() fatigue 0}} -
-
- Fatigue -
-
- {{#fatigue}} - -{{fatigue}} - {{/fatigue}} -
-
- {{/rollGreater() fatigue 0}} + {{#extramod3}} + {{#^rollTotal() extramod3 0}} +
+
+ {{#extramod3-name}}{{extramod3-name}}{{/extramod3-name}} +
+
+ {{#rollGreater() extramod3 0}}+{{/rollGreater() extramod3 0}}{{extramod3}} +
+
+ {{/^rollTotal() extramod3 0}} + {{/extramod3}} - {{#total}} -
- Total - {{total}} -
- {{/total}} + {{#extramod4}} + {{#^rollTotal() extramod4 0}} +
+
+ {{#extramod4-name}}{{extramod4-name}}{{/extramod4-name}} +
+
+ {{#rollGreater() extramod4 0}}+{{/rollGreater() extramod4 0}}{{extramod4}} +
+
+ {{/^rollTotal() extramod4 0}} + {{/extramod4}} - {{#tn}} -
- - Target Number - - - {{tn}} - + {{#rollGreater() fatigue 0}} +
+
+ Fatigue +
+
+ {{#fatigue}} + -{{fatigue}} + {{/fatigue}} +
+
+ {{/rollGreater() fatigue 0}} -
- {{/tn}} + {{#tiebreaker}} + {{#^rollTotal() tiebreaker 0}} +
+
+ Stunt Die * 0.1 +
+
+ +{{tiebreaker1}} +
+
+
+
+ {{ability}} * 0.01 +
+
+ {{#rollGreater() mod 0}}+{{/rollGreater() mod 0}}{{tiebreaker2}} +
+
+ {{/^rollTotal() tiebreaker 0}} + {{/tiebreaker}} - {{#note1}} -
- - {{note1-name}} - - - {{note1}} - + {{#total}} +
+ Total + {{total}} +
+ {{/total}} -
- {{/note1}} + {{#tn}} +
+ + Target Number + + + {{tn}} + - {{#note2}} -
- - {{note2-name}} - - - {{note2}} - -
- {{/note2}} +
+ {{/tn}} - {{#note3}} -
- - {{note3-name}} - - - {{note3}} - -
- {{/note3}} + {{#note1}} +
+ + {{note1-name}} + + + {{note1}} + - {{#note4}} -
- - {{note4-name}} - - - {{note4}} - -
- {{/note4}} +
+ {{/note1}} - {{#note5}} -
- - {{note5-name}} - - - {{note5}} - -
- {{/note5}} + {{#note2}} +
+ + {{note2-name}} + + + {{note2}} + +
+ {{/note2}} - {{#note6}} -
- - {{note6-name}} - - - {{note6}} - -
- {{/note6}} + {{#note3}} +
+ + {{note3-name}} + + + {{note3}} + +
+ {{/note3}} - {{#rollTotal() die1 die2}} -
- Stunt Points{{drama}} -
- {{/rollTotal() die1 die2}} + {{#note4}} +
+ + {{note4-name}} + + + {{note4}} + +
+ {{/note4}} - {{#rollTotal() die1 drama}} -
- Stunt Points{{drama}} -
- {{/rollTotal() die1 drama}} + {{#note5}} +
+ + {{note5-name}} + + + {{note5}} + +
+ {{/note5}} - {{#rollTotal() die2 drama}} -
- Stunt Points{{drama}} -
- {{/rollTotal() die2 drama}} + {{#note6}} +
+ + {{note6-name}} + + + {{note6}} + +
+ {{/note6}} -
+ {{#rollTotal() die1 die2}} + {{#rollTotal() stuntcheck 0}} +
+ Stunt Points{{drama}} +
+ {{/rollTotal() stuntcheck 0}} + {{#rollTotal() stuntcheck 1}} +
+ Stunt Points{{drama}} or {{drama2}} +
+ {{/rollTotal() stuntcheck 1}} + {{/rollTotal() die1 die2}} + + {{#rollTotal() die1 drama}} + {{#rollTotal() stuntcheck 0}} +
+ Stunt Points{{drama}} +
+ {{/rollTotal() stuntcheck 0}} + {{#rollTotal() stuntcheck 1}} +
+ Stunt Points{{drama}} or {{drama2}} +
+ {{/rollTotal() stuntcheck 1}} + {{/rollTotal() die1 drama}} + + {{#rollTotal() die2 drama}} + {{#rollTotal() stuntcheck 0}} +
+ Stunt Points{{drama}} +
+ {{/rollTotal() stuntcheck 0}} + {{#rollTotal() stuntcheck 1}} +
+ Stunt Points{{drama}} or {{drama2}} +
+ {{/rollTotal() stuntcheck 1}} + {{/rollTotal() die2 drama}} + +
diff --git a/AGE System/sheet.json b/AGE System/sheet.json index 42e069b3f1..18ba2c86d0 100644 --- a/AGE System/sheet.json +++ b/AGE System/sheet.json @@ -1,235 +1,284 @@ { - "html": "AGE System.html", - "css": "AGE System.css", - "authors": "Olivier L.-L., Zach Hall, Cadera Spindrift", - "roll20userid": "594486,636802", - "preview": "AGE System.png", - "instructions": "A sheet made for the AGE family of games:\n- **Dragon Age**\n- **Fantasy AGE**\n- **Titansgrave**\n- **Blue Rose**\n- **The Expanse**\n- **Modern AGE**\n- **Threefold**\n- **World of Lazarus**\n\n**Note:** Focuses need to be added in the 'Focuses' tab.\n**GMs:** Make sure to edit the Default Sheet Settings after creating the campaign.\n\nSheet version 1.60.0 (2020-08-24); Added Modern AGE, Threefold, World of Lazarus; removed 'Old' tab; added new skins.", - "useroptions": [ - { - "attribute": "game", - "displayname": "Game System", - "displaytranslationkey": "game-system", - "type": "select", - "options": [ - "Dragon Age|dragon-age", - "Fantasy AGE|fantasy-age", - "Titansgrave|titansgrabe", - "Blue Rose|blue-rose", - "The Expanse|the-expanse", - "Modern AGE|modern-age", - "Threefold|threefold", - "World of Lazarus|world-of-lazarus" - ], - "default": "Fantasy AGE" - }, - { - "attribute": "color", - "displayname": "Color Selection", - "displaytranslationkey": "color-selection", - "type": "select", - "options": [ - "Black|black", - "Red|red", - "Teal 1|teal1", - "Teal 2|teal2", - "Blue|blue1", - "Blue|blue2", - "Dragonscale Red|dragon", - "Expansive Starfield|stars", - "Lazarus Blue|lazarus", - "Modern Orange|orange", - "Proud Rainbow|rainbow", - "Ronin Green|green", - "Threefold Blend|threefold" - ], - "optiontranslationkeys": [ - "black", - "red", - "teal-1", - "teal-2", - "blue-1", - "blue-2", - "dragonscale-red", - "expansive-starfield", - "lazarus-blue", - "modern-orange", - "proud-rainbow", - "ronin-green", - "threefold-color" - ], - "default": "Black", - "description": "Select the color for the character sheet section headers and buttons.", - "descriptiontranslationkey": "color-selection-info" - }, - { - "attribute": "wtype", - "displayname": "Whisper rolls to GM", - "displaytranslationkey": "whisp-rolls-gm", - "type": "select", - "options": [ - "Never Whisper Rolls|", - "Toggle|@{whisper-toggle}", - "Query Whisper|?{Whisper?|Public Roll,|Whisper Roll,/w gm }", - "Always Whisper Rolls|/w gm " - ], - "optiontranslationkeys": [ - "never-whisper-roll", - "toggle", - "query-whisper-roll", - "always-whisper-roll" - ], - "default": "", - "description": "All sheet rolls are sent to all players in chat by default. Query Whisper option gives you a prompt with each roll of whether or not the roll should be sent privately only to yourself and the GM. Always Whisper Rolls will send all rolls only to yourself and the GM.", - "descriptiontranslationkey": "whisp-rolls-gm-info" - }, - { - "attribute": "char-name-option", - "displayname": "Show the character name in roll results", - "displaytranslationkey": "show-the-character-name-in-roll-results", - "type": "select", - "options": [ - "Show|@{character_name} | ", - "Hide| " - ], - "optiontranslationkeys": [ - "show", - "hide" - ], - "default": "@{character_name} | " - }, - { - "attribute": "aim-select", - "displayname": "Prompt for Aim", - "displaytranslationkey": "prompt-for-aim", - "type": "select", - "options": [ - "Never use Aim|none", - "Toggle|@{aim-toggle}", - "Prompt for Aim|?{Using the Aim action|Yes, @{aim-value}|No, 0}", - "Always use Aim|@{aim-value}" - ], - "optiontranslationkeys": [ - "never-use-aim", - "toggle", - "prompt-for-aim", - "always-use-aim" - ], - "default": "none" - }, - { - "attribute": "aim-value", - "displayname": "Aim Value", - "displaytranslationkey": "aim-value-default", - "type": "number", - "default": "1", - "description": "The default value for the aim bonus when using the Aim prompt. It should be 1 unless a power or talent changes it." - }, - { - "attribute": "armor-penalty-for-dex", - "displayname": "Apply Armor Penalty to Dexterity checks", - "displaytranslationkey": "apply-armor-penalty-to-dexterity-rolls", - "type": "select", - "options": [ - "No|0", - "Yes|@{armor-penalty}" - ], - "optiontranslationkeys": [ - "no", - "yes" - ] - }, - { - "attribute": "initiative-toggle", - "displayname": "Show the Initiative section", - "displaytranslationkey": "show-the-initiative-section", - "type": "checkbox", - "value": "on" - }, - { - "attribute": "power-list-toggle", - "displayname": "Show the Power list in the Character tab", - "displaytranslationkey": "show-the-power-list", - "type": "checkbox", - "value": "on" - }, - { - "attribute": "spell-list-toggle", - "displayname": "Show the Spell/Arcana list in the Character tab", - "displaytranslationkey": "show-the-spell/arcana-list", - "type": "checkbox", - "value": "on" - }, - { - "attribute": "mana-toggle", - "displayname": "Show the Mana/Magic Points section", - "displaytranslationkey": "show-the-mana/magic-points-section", - "type": "checkbox", - "value": "on" - }, - { - "attribute": "exp-toggle", - "displayname": "Show the Experience Points section", - "displaytranslationkey": "show-the-experience-points-section", - "type": "checkbox", - "value": "on" - }, - { - "attribute": "fatigue-toggle", - "displayname": "Show the Fatigue section", - "displaytranslationkey": "show-the-fatigue-section", - "type": "checkbox", - "value": "on" - }, - { - "attribute": "conviction-toggle", - "displayname": "Show the Conviction section", - "displaytranslationkey": "show-the-conviction-section", - "type": "checkbox", - "value": "on" - }, - { - "attribute": "corruption-toggle", - "displayname": "Show the Corruption section", - "displaytranslationkey": "show-the-corruption-section", - "type": "checkbox", - "value": "on" - }, - { - "attribute": "ammo-toggle", - "displayname": "Show the Ammo column", - "displaytranslationkey": "show-the-ammo-column", - "type": "checkbox", - "value": "on" - }, - { - "attribute": "equipment-toggle", - "displayname": "Show the Equipment section", - "displaytranslationkey": "show-the-equipment-section", - "type": "checkbox", - "value": "on" - }, - { - "attribute": "money-toggle", - "displayname": "Show the Money/Currency section", - "displaytranslationkey": "show-the-money/currency-section", - "type": "checkbox", - "value": "on" - }, - { - "attribute": "income-toggle", - "displayname": "Show the Resources section", - "displaytranslationkey": "show-the-resources-section", - "type": "checkbox", - "value": "on" - }, - { - "attribute": "conditions-toggle", - "displayname": "Show the Conditions section", - "displaytranslationkey": "show-the-conditions-section", - "type": "checkbox", - "value": "on" - } - ], - "legacy": true -} \ No newline at end of file + "html": "AGE System.html", + "css": "AGE System.css", + "authors": "Olivier L.-L., Zach Hall, Cadera Spindrift, theDissilent", + "roll20userid": "594486,636802,3173288", + "preview": "AGE System.png", + "instructions": "A sheet made for the AGE family of games:\n- **Dragon Age**\n- **Fantasy AGE**\n- **Titansgrave**\n- **Blue Rose**\n- **The Expanse**\n- **Modern AGE**\n- **Threefold**\n- **World of Lazarus**\n\n**Note:** Focuses need to be added in the 'Focuses' tab.\n**GMs:** Make sure to edit the Default Sheet Settings after creating the campaign.\n\nSheet version 1.60.0 (2020-08-24); Added Modern AGE, Threefold, World of Lazarus; removed 'Old' tab; added new skins.", + "useroptions": [ + { + "attribute": "game", + "displayname": "Game System", + "displaytranslationkey": "game-system", + "type": "select", + "options": [ + "Dragon Age|dragon-age", + "Fantasy AGE|fantasy-age", + "Titansgrave|titansgrabe", + "Blue Rose|blue-rose", + "The Expanse|the-expanse", + "Modern AGE|modern-age", + "Threefold|threefold", + "World of Lazarus|world-of-lazarus" + ], + "default": "Fantasy AGE" + }, + { + "attribute": "color", + "displayname": "Color Selection", + "displaytranslationkey": "color-selection", + "type": "select", + "options": [ + "Black|black", + "Red|red", + "Teal 1|teal1", + "Teal 2|teal2", + "Blue|blue1", + "Blue|blue2", + "Dragonscale Red|dragon", + "Expansive Starfield|stars", + "Lazarus Blue|lazarus", + "Modern Orange|orange", + "Proud Rainbow|rainbow", + "Ronin Green|green", + "Threefold Blend|threefold" + ], + "optiontranslationkeys": [ + "black", + "red", + "teal-1", + "teal-2", + "blue-1", + "blue-2", + "dragonscale-red", + "expansive-starfield", + "lazarus-blue", + "modern-orange", + "proud-rainbow", + "ronin-green", + "threefold-color" + ], + "default": "Black", + "description": "Select the color for the character sheet section headers and buttons.", + "descriptiontranslationkey": "color-selection-info" + }, + { + "attribute": "wtype", + "displayname": "Whisper rolls to GM", + "displaytranslationkey": "whisp-rolls-gm", + "type": "select", + "options": [ + "Never Whisper Rolls|", + "Toggle|@{whisper-toggle}", + "Query Whisper|?{Whisper?|Public Roll,|Whisper Roll,/w gm }", + "Always Whisper Rolls|/w gm " + ], + "optiontranslationkeys": [ + "never-whisper-roll", + "toggle", + "query-whisper-roll", + "always-whisper-roll" + ], + "default": "", + "description": "All sheet rolls are sent to all players in chat by default. Query Whisper option gives you a prompt with each roll of whether or not the roll should be sent privately only to yourself and the GM. Always Whisper Rolls will send all rolls only to yourself and the GM.", + "descriptiontranslationkey": "whisp-rolls-gm-info" + }, + { + "attribute": "char-name-option", + "displayname": "Show the character name in roll results", + "displaytranslationkey": "show-the-character-name-in-roll-results", + "type": "select", + "options": [ + "Show|@{character_name} | ", + "Hide| " + ], + "optiontranslationkeys": [ + "show", + "hide" + ], + "default": "@{character_name} | " + }, + { + "attribute": "aim-select", + "displayname": "Prompt for Aim", + "displaytranslationkey": "prompt-for-aim", + "type": "select", + "options": [ + "Never use Aim|0", + "Toggle|@{aim-toggle}", + "Prompt for Aim|?{Using the Aim action|Yes, @{aim-value}|No, 0}", + "Always use Aim|@{aim-value}" + ], + "optiontranslationkeys": [ + "never-use-aim", + "toggle", + "prompt-for-aim", + "always-use-aim" + ], + "default": "0" + }, + { + "attribute": "aim-value", + "displayname": "Aim Value", + "displaytranslationkey": "aim-value-default", + "type": "number", + "default": "1", + "description": "The default value for the aim bonus when using the Aim prompt. It should be 1 unless a power or talent changes it." + }, + { + "attribute": "armor-penalty-for-dex", + "displayname": "Apply Armor Penalty to Dexterity checks", + "displaytranslationkey": "apply-armor-penalty-to-dexterity-rolls", + "type": "select", + "options": [ + "No|0", + "Yes|@{armor-penalty}" + ], + "optiontranslationkeys": [ + "no", + "yes" + ] + }, + { + "attribute": "stunts2-select", + "displayname": "Prompt for 2 Stunts", + "displaytranslationkey": "prompt-for-2-stunts", + "type": "select", + "options": [ + "Never use 2 Stunts|0", + "Toggle|@{stunts2-toggle}", + "Prompt for 2 Stunts|?{Using the 2nd Stunt Die|Yes, 1|No, 0}", + "Always use 2 Stunts|1" + ], + "optiontranslationkeys": [ + "never-use-2-stunts", + "toggle", + "prompt-for-2-stunts", + "always-use-2-stunts" + ], + "default": "0", + "description": "If your characters have the ability to re-roll their stunt die." + }, + { + "attribute": "initiative-tiebreaker", + "displayname": "Add Tiebreaker to Initiative rolls", + "displaytranslationkey": "add-tiebreaker-to-initiative-rolls", + "type": "select", + "options": [ + "No|0", + "Yes|1" + ], + "optiontranslationkeys": [ + "no", + "yes" + ], + "description": "Initiative tiebreaker is displayed as Stunt Die * 0.1 + Dexterity * 0.01." + }, + { + "attribute": "initiative-toggle", + "displayname": "Show the Initiative section", + "displaytranslationkey": "show-the-initiative-section", + "type": "checkbox", + "value": "1" + }, + { + "attribute": "power-list-toggle", + "displayname": "Show the Power list in the Character tab", + "displaytranslationkey": "show-the-power-list", + "type": "checkbox", + "value": "1" + }, + { + "attribute": "spell-list-toggle", + "displayname": "Show the Spell/Arcana list in the Character tab", + "displaytranslationkey": "show-the-spell/arcana-list", + "type": "checkbox", + "value": "1" + }, + { + "attribute": "mana-toggle", + "displayname": "Show the Mana/Magic Points section", + "displaytranslationkey": "show-the-mana/magic-points-section", + "type": "checkbox", + "value": "1" + }, + { + "attribute": "exp-toggle", + "displayname": "Show the Experience Points section", + "displaytranslationkey": "show-the-experience-points-section", + "type": "checkbox", + "value": "1" + }, + { + "attribute": "fatigue-toggle", + "displayname": "Show the Fatigue section", + "displaytranslationkey": "show-the-fatigue-section", + "type": "checkbox", + "value": "1" + }, + { + "attribute": "fear-toggle", + "displayname": "Show the Fear section", + "displaytranslationkey": "show-the-fear-section", + "type": "checkbox", + "value": "1" + }, + { + "attribute": "horror-toggle", + "displayname": "Show the Horror section", + "displaytranslationkey": "show-the-horror-section", + "type": "checkbox", + "value": "1" + }, + { + "attribute": "conviction-toggle", + "displayname": "Show the Conviction section", + "displaytranslationkey": "show-the-conviction-section", + "type": "checkbox", + "value": "1" + }, + { + "attribute": "corruption-toggle", + "displayname": "Show the Corruption section", + "displaytranslationkey": "show-the-corruption-section", + "type": "checkbox", + "value": "1" + }, + { + "attribute": "ammo-toggle", + "displayname": "Show the Ammo column", + "displaytranslationkey": "show-the-ammo-column", + "type": "checkbox", + "value": "1" + }, + { + "attribute": "equipment-toggle", + "displayname": "Show the Equipment section", + "displaytranslationkey": "show-the-equipment-section", + "type": "checkbox", + "value": "1" + }, + { + "attribute": "money-toggle", + "displayname": "Show the Money/Currency section", + "displaytranslationkey": "show-the-money/currency-section", + "type": "checkbox", + "value": "1" + }, + { + "attribute": "income-toggle", + "displayname": "Show the Resources section", + "displaytranslationkey": "show-the-resources-section", + "type": "checkbox", + "value": "1" + }, + { + "attribute": "conditions-toggle", + "displayname": "Show the Conditions section", + "displaytranslationkey": "show-the-conditions-section", + "type": "checkbox", + "value": "1" + } + ], + "legacy": true +} diff --git a/AGE System/translation.json b/AGE System/translation.json index bb355faa05..f0c11e2ee6 100644 --- a/AGE System/translation.json +++ b/AGE System/translation.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Rogue", @@ -186,6 +187,7 @@ "show": "Show", "hide": "Hide", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "No", "yes": "Yes", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "CHARACTER TAB SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/af.json b/AGE System/translations/af.json index 243cbdc4c7..671f6028ac 100644 --- a/AGE System/translations/af.json +++ b/AGE System/translations/af.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Rogue", @@ -186,6 +187,7 @@ "show": "Show", "hide": "Hide", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "No", "yes": "Yes", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/ca.json b/AGE System/translations/ca.json index bb355faa05..f0c11e2ee6 100644 --- a/AGE System/translations/ca.json +++ b/AGE System/translations/ca.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Rogue", @@ -186,6 +187,7 @@ "show": "Show", "hide": "Hide", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "No", "yes": "Yes", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "CHARACTER TAB SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/cs.json b/AGE System/translations/cs.json index 036ef64b69..1d24f42ec4 100644 --- a/AGE System/translations/cs.json +++ b/AGE System/translations/cs.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Tulák", @@ -186,6 +187,7 @@ "show": "Zobrazit", "hide": "Skrýt", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "Ne", "yes": "Ano", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/da.json b/AGE System/translations/da.json index c0bb6e04c7..e0d5e4414e 100644 --- a/AGE System/translations/da.json +++ b/AGE System/translations/da.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Rogue", @@ -186,6 +187,7 @@ "show": "Show", "hide": "Hide", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "Nej", "yes": "Ja", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/de.json b/AGE System/translations/de.json index ae3bdd3689..adc000819f 100644 --- a/AGE System/translations/de.json +++ b/AGE System/translations/de.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARAKTERNAME", "mage": "Mage", "rogue": "Schurke", @@ -186,6 +187,7 @@ "show": "Anzeigen", "hide": "Verstecken", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "Nein", "yes": "Ja", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/el.json b/AGE System/translations/el.json index bf984025d0..d089db5ce6 100644 --- a/AGE System/translations/el.json +++ b/AGE System/translations/el.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Rogue", @@ -186,6 +187,7 @@ "show": "Show", "hide": "Hide", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "Όχι", "yes": "Ναι", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/en.json b/AGE System/translations/en.json index 243cbdc4c7..671f6028ac 100644 --- a/AGE System/translations/en.json +++ b/AGE System/translations/en.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Rogue", @@ -186,6 +187,7 @@ "show": "Show", "hide": "Hide", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "No", "yes": "Yes", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/es.json b/AGE System/translations/es.json index 6b45d79509..01abb330c9 100644 --- a/AGE System/translations/es.json +++ b/AGE System/translations/es.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANO/PSIQUICO", "whisper-u": "SUSURRAR", "aim-u": "APUNTAR", + "stunts2-u": "2 Stunts", "char-name-u": "NOMBRE DE PERSONAJE", "mage": "Mago", "rogue": "Pícaro", @@ -186,6 +187,7 @@ "show": "Mostrar", "hide": "Ocultar", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "No", "yes": "Sí", "options-u": "OPCIONES", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/fi.json b/AGE System/translations/fi.json index bb355faa05..f0c11e2ee6 100644 --- a/AGE System/translations/fi.json +++ b/AGE System/translations/fi.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Rogue", @@ -186,6 +187,7 @@ "show": "Show", "hide": "Hide", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "No", "yes": "Yes", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "CHARACTER TAB SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/fr.json b/AGE System/translations/fr.json index ceb9ad515a..ae45e5c181 100644 --- a/AGE System/translations/fr.json +++ b/AGE System/translations/fr.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANE/PSYCHIQUE", "whisper-u": "CHUCHOTER", "aim-u": "VISER", + "stunts2-u": "2 Stunts", "char-name-u": "NOM DU PERSONNAGE", "mage": "Mage", "rogue": "Roublard", @@ -186,6 +187,7 @@ "show": "Afficher", "hide": "Masquer", "apply-armor-penalty-to-dexterity-rolls": "Appliquer la pénalité d'armure aux jets de Dextérité", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "Non", "yes": "Oui", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Ne jamais viser", "toggle": "Bascule", "always-use-aim": "Toujours utiliser la visée", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Value du visé (un nombre DOIT être entré ici)", "sections-u": "SECTIONS", "show-the-power-list": "Afficher la liste des pouvoirs dans l’onglet personnage", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/he.json b/AGE System/translations/he.json index 6e3b4bba71..97c61bd905 100644 --- a/AGE System/translations/he.json +++ b/AGE System/translations/he.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Rogue", @@ -186,6 +187,7 @@ "show": "Show", "hide": "Hide", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "No", "yes": "Yes", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/hu.json b/AGE System/translations/hu.json index bb355faa05..f0c11e2ee6 100644 --- a/AGE System/translations/hu.json +++ b/AGE System/translations/hu.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Rogue", @@ -186,6 +187,7 @@ "show": "Show", "hide": "Hide", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "No", "yes": "Yes", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "CHARACTER TAB SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/it.json b/AGE System/translations/it.json index 3252c4a85a..56e4d4387a 100644 --- a/AGE System/translations/it.json +++ b/AGE System/translations/it.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "NOME DEL PERSONAGGIO", "mage": "Mage", "rogue": "Furfante", @@ -186,6 +187,7 @@ "show": "Mostra", "hide": "Nascondi", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "No", "yes": "Sì", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/ja.json b/AGE System/translations/ja.json index 5642fe0079..a42919b440 100644 --- a/AGE System/translations/ja.json +++ b/AGE System/translations/ja.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "ローグ", @@ -186,6 +187,7 @@ "show": "表示", "hide": "隠す", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "無し", "yes": "有り", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/ko.json b/AGE System/translations/ko.json index 21509c8a99..8880c052c2 100644 --- a/AGE System/translations/ko.json +++ b/AGE System/translations/ko.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Rogue", @@ -186,6 +187,7 @@ "show": "보이기", "hide": "숨기기", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "아니오", "yes": "예", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/nl.json b/AGE System/translations/nl.json index ea9f89a5e8..e169dc883f 100644 --- a/AGE System/translations/nl.json +++ b/AGE System/translations/nl.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Rogue", @@ -186,6 +187,7 @@ "show": "Show", "hide": "Hide", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "Nee", "yes": "Ja", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/pl.json b/AGE System/translations/pl.json index 91da1f3fa6..4d489bf574 100644 --- a/AGE System/translations/pl.json +++ b/AGE System/translations/pl.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Rogue", @@ -186,6 +187,7 @@ "show": "Pokaż", "hide": "Ukryj", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "Nie", "yes": "Tak", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/pt.json b/AGE System/translations/pt.json index 6ea8da9213..6bc631e6da 100644 --- a/AGE System/translations/pt.json +++ b/AGE System/translations/pt.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSÍQUICO", "whisper-u": "SUSSURO", "aim-u": "MIRA", + "stunts2-u": "2 Stunts", "char-name-u": "NOME DO PERSONAGEM", "mage": "Mago", "rogue": "Ladino", @@ -186,6 +187,7 @@ "show": "Mostrar", "hide": "Esconder", "apply-armor-penalty-to-dexterity-rolls": "Aplicar Penalidade de Armadura em rolagens de Destreza", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "Não", "yes": "Sim", "options-u": "OPÇÕES", @@ -193,6 +195,9 @@ "never-use-aim": "Nunca usar Mirar", "toggle": "Botão", "always-use-aim": "Sempre usar Mirar", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Valor para mirar (um número DEVE ser informado aqui)", "sections-u": "SECTIONS", "show-the-power-list": "Mostrar a lista de Poderes na aba de Personagem", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Número Alvo", "stunt_points": "Pontos de Façanha", + "stunt_die": "Stunt Die", "ability": "Habilidade", "ability_value": "Valor da Habilidade (campo 1 de 4)", "focus_value": "Foco (campo 2 de 4)", diff --git a/AGE System/translations/ru.json b/AGE System/translations/ru.json index 51845c7393..4211870133 100644 --- a/AGE System/translations/ru.json +++ b/AGE System/translations/ru.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "ИМЯ ПЕРСОНАЖА", "mage": "Mage", "rogue": "Плут", @@ -186,6 +187,7 @@ "show": "Показать", "hide": "Скрыть", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "Нет", "yes": "Да", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/sl.json b/AGE System/translations/sl.json index bb355faa05..f0c11e2ee6 100644 --- a/AGE System/translations/sl.json +++ b/AGE System/translations/sl.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Rogue", @@ -186,6 +187,7 @@ "show": "Show", "hide": "Hide", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "No", "yes": "Yes", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "CHARACTER TAB SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/sv.json b/AGE System/translations/sv.json index fa5817ab2c..1c77c384e5 100644 --- a/AGE System/translations/sv.json +++ b/AGE System/translations/sv.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Rogue", @@ -186,6 +187,7 @@ "show": "Visa", "hide": "Dölj", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "Nej", "yes": "Ja", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/tr.json b/AGE System/translations/tr.json index 33f983c61f..922c11897f 100644 --- a/AGE System/translations/tr.json +++ b/AGE System/translations/tr.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Rogue", @@ -186,6 +187,7 @@ "show": "Show", "hide": "Hide", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "Hayır", "yes": "Evet", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/uk.json b/AGE System/translations/uk.json index bb355faa05..f0c11e2ee6 100644 --- a/AGE System/translations/uk.json +++ b/AGE System/translations/uk.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "Rogue", @@ -186,6 +187,7 @@ "show": "Show", "hide": "Hide", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "No", "yes": "Yes", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "CHARACTER TAB SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/AGE System/translations/zh.json b/AGE System/translations/zh.json index 8facc2ce13..cb0770c7c8 100644 --- a/AGE System/translations/zh.json +++ b/AGE System/translations/zh.json @@ -8,6 +8,7 @@ "arcana/psychic-u": "ARCANA/PSYCHIC", "whisper-u": "WHISPER", "aim-u": "AIM", + "stunts2-u": "2 Stunts", "char-name-u": "CHARACTER NAME", "mage": "Mage", "rogue": "盜賊", @@ -186,6 +187,7 @@ "show": "顯示", "hide": "隱藏", "apply-armor-penalty-to-dexterity-rolls": "Apply Armor Penalty to Dexterity rolls", + "add-tiebreaker-to-initiative-rolls": "Add Tiebreaker to Initiative rolls", "no": "否", "yes": "是", "options-u": "OPTIONS", @@ -193,6 +195,9 @@ "never-use-aim": "Never use Aim", "toggle": "Toggle", "always-use-aim": "Always use Aim", + "never-use-2-stunts": "Never use 2 Stunts", + "prompt-for-2-stunts": "Prompt for 2 Stunts", + "always-use-2-stunts": "Always use 2 Stunts", "aim-value-a-value-must-be-entered-here": "Aim value (a number MUST be entered here)", "sections-u": "SECTIONS", "show-the-power-list": "Show the Power list in the Character tab", @@ -248,6 +253,7 @@ "total": "Total", "target_number": "Target Number", "stunt_points": "Stunt Points", + "stunt_die": "Stunt Die", "ability": "Ability", "ability_value": "Ability Value (field 1 of 4)", "focus_value": "Focus (field 2 of 4)", diff --git a/Against-The-Darkmaster-CoreRules/againstthedarkmaster-corerules.html b/Against-The-Darkmaster-CoreRules/againstthedarkmaster-corerules.html index 57012fb445..ad501a4b34 100644 --- a/Against-The-Darkmaster-CoreRules/againstthedarkmaster-corerules.html +++ b/Against-The-Darkmaster-CoreRules/againstthedarkmaster-corerules.html @@ -467,7 +467,7 @@ -
+
Combat
diff --git a/Ars_Magica_5th/Ars_Magica_5th.html b/Ars_Magica_5th/Ars_Magica_5th.html index 346242ef6f..a6aa121e48 100644 --- a/Ars_Magica_5th/Ars_Magica_5th.html +++ b/Ars_Magica_5th/Ars_Magica_5th.html @@ -42,6 +42,21 @@ This file is automatically generated from a template. Any change will be overwri
+ +
+
+

Info - February 2022 - v1.7.1 - Fix

+
    +
  • + Fixed accelerated abilities +
  • +
+ +
+ +
@@ -993,19 +1008,22 @@ This file is automatically generated from a template. Any change will be overwri ( - + Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.
/ - + Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.
)
- Accelerated + + Accelerated + +
@@ -3642,6 +3660,16 @@ This file is automatically generated from a template. Any change will be overwri Changelog
diff --git a/Ars_Magica_5th/changelog.md b/Ars_Magica_5th/changelog.md index 1d3801c12b..5950c81862 100644 --- a/Ars_Magica_5th/changelog.md +++ b/Ars_Magica_5th/changelog.md @@ -1,5 +1,7 @@ ## Changelog ++ **February 2022 - v1.7.1 - Fix** + - Fixed accelerated abilities + **January 2022 - v1.7 - Magic & Armory update** - *General changes*: - Added Welcome message to the "Sheet" tab, and made that tab the default tab diff --git a/Ars_Magica_5th/translations/af.json b/Ars_Magica_5th/translations/af.json index f7f5a2d03c..6f29eaa767 100644 --- a/Ars_Magica_5th/translations/af.json +++ b/Ars_Magica_5th/translations/af.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "ATK", "attack": "Attack", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Character", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Current", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duration", "effect": "Effect", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Eyes", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "Free", "fresh": "Fresh", "gender": "Gender", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Hair", "handedness": "Handedness", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Level", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Size", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Type", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "Weight", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/ca.json b/Ars_Magica_5th/translations/ca.json index e7d83c6d04..150033c302 100644 --- a/Ars_Magica_5th/translations/ca.json +++ b/Ars_Magica_5th/translations/ca.json @@ -14,8 +14,8 @@ "armor-protection": "Protecció per Armad.", "armor-worn": "Armadura posada", "art": "Art", - "ask": "Demana", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "Atac", "attack": "Atac", "attaining-rt": "Assolint", @@ -33,19 +33,29 @@ "ceremonial": "Cerimonial", "character": "Personatge", "characteristic": "Característica", - "characteristic-m": "Característica", + "characteristic-choice": "-Characteristic-", "characteristics": "Característiques", "circumstances-m": "Circumstàncies", "circumstantial": "Circumstancial", - "critical": "Crític", "combat": "Combat", "combat-modifiers": "Modif. de combat", "communication": "Comunicació", "confidence": "Confiança", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Aliança", "covenant-of-apprenticeship": "Aliança d'aprenentatge", "creo": "Creo", + "critical": "Crític", "current": "Actual", "current-year": "Any actual", "dam": "Mal", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitut/Envelliment", "defend-rt": "Defensa", "defense": "Defensa", + "deficiency": "Deficiency", "description": "Descripció", "designed-spells": "Conjurs dissenyats", "dex": "des", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duració", "effect": "Efecte", - "encumbrance": "Càrrega", "enc-": "Car.", + "encumbrance": "Càrrega", "exp": "Exp.", "eyes": "Ulls", "faerie-might": "Poder Faèric", @@ -78,15 +89,16 @@ "form": "Forma", "forms": "Formes", "formulaic": "Formulàic", + "formulaic-spells": "Formulaic spells", "free": "Gratis", "fresh": "Fresc", "gender": "Gènere", "general-quality": "Qualitat general", "gestures": "Gestos", - "gestures-exaggerated": "Exagerats", "gestures-bold": "Atrevits", - "gestures-subtle": "Subtil", + "gestures-exaggerated": "Exagerats", "gestures-none": "Cap", + "gestures-subtle": "Subtil", "hair": "Cabells", "handedness": "Mà", "health": "Salut", @@ -111,6 +123,8 @@ "lab-characteristics": "Caract. de laboratori", "lab-totals": "Totals de Laboratori", "lab-virtues": "Virtuts del laboratori", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Nivell", "leverages-rt": "palanques", "light-wounds": "Ferides lleus", @@ -144,6 +158,7 @@ "pool": "Punts", "presence": "Presència", "primus": "Primus", + "protection": "Protection", "qik": "Rap", "query": "Nom de Consulta", "quickness": "Rapidesa", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Marques del Sanctum", "score": "Punts", + "sheet": "Sheet", "simple": "Simple", "size": "Mida", "soak": "Aguant", "soak-bonus": "Bonus d'aguant", + "soak-forms": "Soak by Forms", "speciality": "Especialitat", "specializations-bonuses": "Especialitzacions i Bonus", "spell-description": "Descripció del conjur", @@ -186,7 +203,14 @@ "theory": "Teoria", "tired": "Cansat", "title-profession": "Títol/Professió", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Modif. Total d'Especialització", "trait": "Tret", "type": "Tipus", @@ -208,14 +232,21 @@ "weapons": "Armes", "weary": "Fatigat", "weight": "Pes", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Sense alè", "with-rt": "amb", "wizard-s-sigil": "Impromta de Mag", "words": "Veu", - "words-loud": "Alta", "words-firm": "Ferma", - "words-quiet": "Suau", + "words-loud": "Alta", "words-none": "Cap", + "words-quiet": "Suau", "wounds": "Ferides", "year-born": "Any de naixement" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/cs.json b/Ars_Magica_5th/translations/cs.json index caa6dd9534..e66028b4ba 100644 --- a/Ars_Magica_5th/translations/cs.json +++ b/Ars_Magica_5th/translations/cs.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "Útok", "attack": "Útok", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Postavu", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Current", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Doba trvání", "effect": "Effect", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Barva očí", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "Zdarma", "fresh": "Fresh", "gender": "Pohlaví", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Vlasy", "handedness": "Handedness", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Úroveň", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Velikost", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Typ", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "Váha", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/da.json b/Ars_Magica_5th/translations/da.json index 4c203db208..4abfcc81b1 100644 --- a/Ars_Magica_5th/translations/da.json +++ b/Ars_Magica_5th/translations/da.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "ATK", "attack": "Attack", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Character", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Current", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duration", "effect": "Effect", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Eyes", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "Gratis", "fresh": "Fresh", "gender": "Gender", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Hair", "handedness": "Handedness", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Niveau", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Size", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Type", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "Weight", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/de.json b/Ars_Magica_5th/translations/de.json index 17b89934fd..d39ea16b58 100644 --- a/Ars_Magica_5th/translations/de.json +++ b/Ars_Magica_5th/translations/de.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "ATT", "attack": "Angriff", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Charakter", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Eigenschaften", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Kampf", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Aktuell", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Verteidigen", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "ges", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Dauer", "effect": "Effekt", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Augen", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "Kostenlos", "fresh": "Fresh", "gender": "Geschlecht", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Haar", "handedness": "Händigkeit", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Stufe", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Wert", + "sheet": "Sheet", "simple": "Simple", "size": "Größe", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Zauber Beschreibung", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Typ", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Erschöpft", "weight": "Gewicht", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "mit", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/el.json b/Ars_Magica_5th/translations/el.json index 590fdf75fe..7e47ab3dde 100644 --- a/Ars_Magica_5th/translations/el.json +++ b/Ars_Magica_5th/translations/el.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "ATK", "attack": "Attack", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Character", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Current", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duration", "effect": "Effect", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Eyes", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "Δωρεάν", "fresh": "Fresh", "gender": "Gender", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Hair", "handedness": "Handedness", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Επίπεδο", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Size", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Type", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "Weight", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/en.json b/Ars_Magica_5th/translations/en.json index b8a7f55615..9f45a4c5da 100644 --- a/Ars_Magica_5th/translations/en.json +++ b/Ars_Magica_5th/translations/en.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "Atk", "attack": "Attack", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Character", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Current", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duration", "effect": "Effect", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Eyes", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "Free", "fresh": "Fresh", "gender": "Gender", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Hair", "handedness": "Handedness", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Level", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Size", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Type", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "Weight", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/es.json b/Ars_Magica_5th/translations/es.json index 69462e8f6f..31561938f5 100644 --- a/Ars_Magica_5th/translations/es.json +++ b/Ars_Magica_5th/translations/es.json @@ -14,8 +14,8 @@ "armor-protection": "Protección de armadura", "armor-worn": "Armadura equipada", "art": "Arte", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "Ata", "attack": "Ataque", "attaining-rt": "Alcanzar", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Personaje", "characteristic": "Característica", - "characteristic-m": "Característica", + "characteristic-choice": "-Characteristic-", "characteristics": "Características", "circumstances-m": "Circustancias", "circumstantial": "Circustancial", - "critical": "Critical", "combat": "Combate", "combat-modifiers": "Modificadores de combate", "communication": "Comunicación", "confidence": "Confianza", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Alianza", "covenant-of-apprenticeship": "Alianza de aprendizaje", "creo": "Creo", + "critical": "Critical", "current": "Actual", "current-year": "Año actual", "dam": "Dañ", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitud/Envejecimiento", "defend-rt": "Defender", "defense": "Defensa", + "deficiency": "Deficiency", "description": "Descripción", "designed-spells": "Hechizos diseñados", "dex": "des", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duración", "effect": "Efecto", - "encumbrance": "Encumbrance", "enc-": "Carga", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Ojos", "faerie-might": "Poder feérico", @@ -78,15 +89,16 @@ "form": "Forma", "forms": "Formas", "formulaic": "Formulaica", + "formulaic-spells": "Formulaic spells", "free": "Gratuita", "fresh": "Fresco", "gender": "Género", "general-quality": "Calidad general", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Pelo", "handedness": "Mano hábil", "health": "Salubridad", @@ -111,6 +123,8 @@ "lab-characteristics": "Caraterísticas del laboratorio", "lab-totals": "Total del laboratorio", "lab-virtues": "Virtudes del laboratorio", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Nivel", "leverages-rt": "Mango", "light-wounds": "Heridas leves", @@ -144,6 +158,7 @@ "pool": "Reserva", "presence": "Presencia", "primus": "Primus", + "protection": "Protection", "qik": "Rap", "query": "Nombre de la solicitud", "quickness": "Rapidez", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Marca de Sanctum", "score": "Puntuación", + "sheet": "Sheet", "simple": "Simple", "size": "Tamaño", "soak": "Aguante", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Especialidad", "specializations-bonuses": "Especializaciones & Bono", "spell-description": "Descripción del hechizo", @@ -186,6 +203,13 @@ "theory": "Teoría", "tired": "Cansado", "title-profession": "Título/Profesión", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", "total": "Total", "total-specialization-modifier": "Modificador toal de especialización", "trait": "Rasgos", @@ -208,14 +232,21 @@ "weapons": "Armas", "weary": "Fatigado", "weight": "Peso", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Sofocado", "with-rt": "Con", "wizard-s-sigil": "Impronta", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Heridas", "year-born": "Año de nacimiento" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/fi.json b/Ars_Magica_5th/translations/fi.json index c1d5089cc4..c7e668f2bf 100644 --- a/Ars_Magica_5th/translations/fi.json +++ b/Ars_Magica_5th/translations/fi.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "Atk", "attack": "Attack", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Character", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Current", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duration", "effect": "Effect", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Eyes", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "Free", "fresh": "Fresh", "gender": "Gender", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Hair", "handedness": "Handedness", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Level", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Size", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Type", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "Weight", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/fr.json b/Ars_Magica_5th/translations/fr.json index f363128030..48fddaaf12 100644 --- a/Ars_Magica_5th/translations/fr.json +++ b/Ars_Magica_5th/translations/fr.json @@ -14,8 +14,8 @@ "armor-protection": "Protection d'Armure", "armor-worn": "Armure portée", "art": "Art", - "ask": "Demander", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "Atq", "attack": "Attaque", "attaining-rt": "Atteignant", @@ -33,19 +33,29 @@ "ceremonial": "Cérémonial", "character": "Personnage", "characteristic": "Caractéristique", - "characteristic-m": "Caractéristique", + "characteristic-choice": "-Characteristic-", "characteristics": "Caractéristiques", "circumstances-m": "Circonstances", "circumstantial": "Circonstanciel", - "critical": "Critique", "combat": "Combat", "combat-modifiers": "Modificateurs de combat", "communication": "Communication", "confidence": "Confiance", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Alliance", "covenant-of-apprenticeship": "Alliance d'apprentissage", "creo": "Creo", + "critical": "Critique", "current": "Actuel", "current-year": "Année actuelle", "dam": "Dgt", @@ -55,6 +65,7 @@ "decrepitude-aging": "Décrépitude/Vieillissement", "defend-rt": "Défendre", "defense": "Défense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Sorts inventés", "dex": "Dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Durée", "effect": "Effet", - "encumbrance": "Encombrement", "enc-": "Enc.", + "encumbrance": "Encombrement", "exp": "Exp.", "eyes": "Yeux", "faerie-might": "Puissance féerique", @@ -78,15 +89,16 @@ "form": "Forme", "forms": "Formes", "formulaic": "Formulés", + "formulaic-spells": "Formulaic spells", "free": "Gratuit", "fresh": "Dispo", "gender": "Sexe", "general-quality": "Qualité générale", "gestures": "Gestes", - "gestures-exaggerated": "Exagérés", "gestures-bold": "Assurés", - "gestures-subtle": "Subtils", + "gestures-exaggerated": "Exagérés", "gestures-none": "Aucuns", + "gestures-subtle": "Subtils", "hair": "Cheveux", "handedness": "Main directrice", "health": "Santé", @@ -111,6 +123,8 @@ "lab-characteristics": "Caractéristiques du Laboratoire", "lab-totals": "Total de Labo", "lab-virtues": "Vertus du labo", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Niveau", "leverages-rt": "utilise", "light-wounds": "Blessures légères", @@ -144,6 +158,7 @@ "pool": "Réserve", "presence": "Présence", "primus": "Primus", + "protection": "Protection", "qik": "Viv", "query": "Nom de la requête", "quickness": "Vivacité", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Marqueur du Sanctum", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Taille", "soak": "Encaissement", "soak-bonus": "Bonus d'encaissement", + "soak-forms": "Soak by Forms", "speciality": "Spécialité", "specializations-bonuses": "Spécialisations & Bonus", "spell-description": "Description du sort", @@ -186,7 +203,14 @@ "theory": "Théorie", "tired": "Fatigué", "title-profession": "Titre/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Modificateur total de spécialisation", "trait": "Trait", "type": "Type", @@ -208,14 +232,21 @@ "weapons": "Armes", "weary": "Las", "weight": "Poids", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Essoufflé", "with-rt": "avec", "wizard-s-sigil": "Sceau de mage", "words": "Voix", - "words-loud": "Forte", "words-firm": "Ferme", - "words-quiet": "Calme", + "words-loud": "Forte", "words-none": "Aucune", + "words-quiet": "Calme", "wounds": "Blessures", "year-born": "Année de naissance" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/he.json b/Ars_Magica_5th/translations/he.json index b74e6aa825..9a7de53ee7 100644 --- a/Ars_Magica_5th/translations/he.json +++ b/Ars_Magica_5th/translations/he.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "ATK", "attack": "Attack", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "דמות", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Current", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duration", "effect": "Effect", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Eyes", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "חינם", "fresh": "Fresh", "gender": "Gender", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Hair", "handedness": "Handedness", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Level", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Size", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Type", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "Weight", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/hu.json b/Ars_Magica_5th/translations/hu.json index c1d5089cc4..c7e668f2bf 100644 --- a/Ars_Magica_5th/translations/hu.json +++ b/Ars_Magica_5th/translations/hu.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "Atk", "attack": "Attack", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Character", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Current", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duration", "effect": "Effect", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Eyes", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "Free", "fresh": "Fresh", "gender": "Gender", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Hair", "handedness": "Handedness", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Level", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Size", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Type", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "Weight", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/it.json b/Ars_Magica_5th/translations/it.json index d001474c1f..5322a32f03 100644 --- a/Ars_Magica_5th/translations/it.json +++ b/Ars_Magica_5th/translations/it.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "ATT", "attack": "Attacco", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Personaggio", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circostanze", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Attuale", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "des", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Durata", "effect": "Effetto", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Occhi", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "Gratuita", "fresh": "Fresh", "gender": "Sesso", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Capelli", "handedness": "Handedness", "health": "Salute", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Livello", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Taglia", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Descrizione Incantesimo", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Tipo", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "Peso", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/ja.json b/Ars_Magica_5th/translations/ja.json index e6fc10a0d5..2d5d3bb1c0 100644 --- a/Ars_Magica_5th/translations/ja.json +++ b/Ars_Magica_5th/translations/ja.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "ATK", "attack": "攻撃", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "キャラクター", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "現在", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "継続時間", "effect": "効果", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "目の色", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "基本", "fresh": "Fresh", "gender": "性別", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "髪の毛", "handedness": "Handedness", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "ユーザレベル", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "サイズ", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "種類", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "重量", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/ko.json b/Ars_Magica_5th/translations/ko.json index d8a24e3105..bb1c35bdaa 100644 --- a/Ars_Magica_5th/translations/ko.json +++ b/Ars_Magica_5th/translations/ko.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "예술", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "ATK", "attack": "Attack", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "캐릭터", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "특성", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Current", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "저지", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duration", "effect": "Effect", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Eyes", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "무료 유저", "fresh": "Fresh", "gender": "Gender", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Hair", "handedness": "Handedness", "health": "체력", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "레벨", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "존재감", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Size", "soak": "저항", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "종류", @@ -208,14 +232,21 @@ "weapons": "무기", "weary": "Weary", "weight": "Weight", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "부상", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/nl.json b/Ars_Magica_5th/translations/nl.json index 567c855a29..3cd27bb9dd 100644 --- a/Ars_Magica_5th/translations/nl.json +++ b/Ars_Magica_5th/translations/nl.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "ATK", "attack": "Attack", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Character", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Current", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duration", "effect": "Effect", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Eyes", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "Gratis", "fresh": "Fresh", "gender": "Gender", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Hair", "handedness": "Handedness", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Level", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Size", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Type", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "Weight", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/pl.json b/Ars_Magica_5th/translations/pl.json index b45656c795..f15f55ff76 100644 --- a/Ars_Magica_5th/translations/pl.json +++ b/Ars_Magica_5th/translations/pl.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "Atk", "attack": "Attack", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Postać", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Current", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duration", "effect": "Effect", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Eyes", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "Darmowy", "fresh": "Fresh", "gender": "Gender", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Hair", "handedness": "Handedness", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Poziom", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Size", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Opis zaklęcia", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Zmęczony", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Typ", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "Weight", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/pt.json b/Ars_Magica_5th/translations/pt.json index aea2e4f310..6290c67246 100644 --- a/Ars_Magica_5th/translations/pt.json +++ b/Ars_Magica_5th/translations/pt.json @@ -14,8 +14,8 @@ "armor-protection": "Absorção", "armor-worn": "Armadura", "art": "Arte", - "ask": "Pergunte", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "Atq", "attack": "Ataque", "attaining-rt": "Sintonizando", @@ -33,19 +33,29 @@ "ceremonial": "Cerimonial", "character": "Personagem", "characteristic": "Característica", - "characteristic-m": "Característica", + "characteristic-choice": "-Characteristic-", "characteristics": "Características", "circumstances-m": "Cricumstância", "circumstantial": "Circunstancial", - "critical": "Crítico", "combat": "Combate", "combat-modifiers": "Modificadores de combate", "communication": "Comunicação", "confidence": "Determinação", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Concílio", "covenant-of-apprenticeship": "Concílio de aprendizado", "creo": "Creo", + "critical": "Crítico", "current": "Atual", "current-year": "Ano atual", "dam": "Dano", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Envelhecimento", "defend-rt": "Defesa", "defense": "Defesa", + "deficiency": "Deficiency", "description": "Descrição", "designed-spells": "Magias Prontas", "dex": "Des", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duração", "effect": "Efeito", - "encumbrance": "Carga", "enc-": "Peso", + "encumbrance": "Carga", "exp": "Exp.", "eyes": "Olhos", "faerie-might": "Potência Feérica", @@ -78,15 +89,16 @@ "form": "Forma", "forms": "Formas", "formulaic": "Formulaica", + "formulaic-spells": "Formulaic spells", "free": "Gratuito", "fresh": "Descansado", "gender": "Gênero", "general-quality": "Qualidade Geral", "gestures": "Gestos", - "gestures-exaggerated": "Exagerados", "gestures-bold": "Vigoroso", - "gestures-subtle": "Sutil", + "gestures-exaggerated": "Exagerados", "gestures-none": "Nenhum", + "gestures-subtle": "Sutil", "hair": "Cabelos", "handedness": "Mão primária", "health": "Vitalidade", @@ -111,6 +123,8 @@ "lab-characteristics": "Características do Lab", "lab-totals": "Totais de laboratório", "lab-virtues": "Virtudes de lab", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Nível", "leverages-rt": "influências", "light-wounds": "Ferimentos leves", @@ -144,6 +158,7 @@ "pool": "Reserva", "presence": "Presença", "primus": "Primus", + "protection": "Protection", "qik": "Rap", "query": "Nome da Consulta", "quickness": "Rapidez", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Marca do Sanctum", "score": "Pontuação", + "sheet": "Sheet", "simple": "Simples", "size": "Tamanho", "soak": "Absorção", "soak-bonus": "Bônus de absorção", + "soak-forms": "Soak by Forms", "speciality": "Especialidade", "specializations-bonuses": "Especializações & Bônus", "spell-description": "Descrição da Magia", @@ -186,7 +203,14 @@ "theory": "Teoria", "tired": "Cansado", "title-profession": "Título/Profissão", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Soma de modificadores por especialização", "trait": "Atributo", "type": "Tipo", @@ -208,14 +232,21 @@ "weapons": "Armas", "weary": "Cansado", "weight": "Peso", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Ofegante", "with-rt": "com", "wizard-s-sigil": "Insígnia Mística", "words": "Palavras", - "words-loud": "Alto", "words-firm": "Firme", - "words-quiet": "Silencioso", + "words-loud": "Alto", "words-none": "Nenhum", + "words-quiet": "Silencioso", "wounds": "Ferimentos", "year-born": "Ano de Nascimento" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/ru.json b/Ars_Magica_5th/translations/ru.json index cd9e857eaa..08ccb8777e 100644 --- a/Ars_Magica_5th/translations/ru.json +++ b/Ars_Magica_5th/translations/ru.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "Атк", "attack": "Атака", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Персонаж", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Текущий", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Длительность", "effect": "Эффекты", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Глаза", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "Бесплатно", "fresh": "Fresh", "gender": "Пол", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Волосы", "handedness": "Направленность", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Уровень", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Размер", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Тип", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "Масса", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/sl.json b/Ars_Magica_5th/translations/sl.json index c1d5089cc4..c7e668f2bf 100644 --- a/Ars_Magica_5th/translations/sl.json +++ b/Ars_Magica_5th/translations/sl.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "Atk", "attack": "Attack", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Character", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Current", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duration", "effect": "Effect", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Eyes", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "Free", "fresh": "Fresh", "gender": "Gender", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Hair", "handedness": "Handedness", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Level", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Size", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Type", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "Weight", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/sv.json b/Ars_Magica_5th/translations/sv.json index 5ae9b6c5a0..d7848d0e95 100644 --- a/Ars_Magica_5th/translations/sv.json +++ b/Ars_Magica_5th/translations/sv.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "ATK", "attack": "Attack", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Rollperson", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Current", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duration", "effect": "Effect", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Eyes", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "Gratis", "fresh": "Fresh", "gender": "Gender", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Hair", "handedness": "Handedness", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Nivå", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Size", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Type", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "Weight", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "med", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/tr.json b/Ars_Magica_5th/translations/tr.json index 82850ddc99..44fe491f45 100644 --- a/Ars_Magica_5th/translations/tr.json +++ b/Ars_Magica_5th/translations/tr.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "ATK", "attack": "Attack", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Character", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Current", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duration", "effect": "Effect", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Eyes", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "Free", "fresh": "Fresh", "gender": "Gender", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Hair", "handedness": "Handedness", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Level", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Size", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Type", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "Weight", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/uk.json b/Ars_Magica_5th/translations/uk.json index c1d5089cc4..c7e668f2bf 100644 --- a/Ars_Magica_5th/translations/uk.json +++ b/Ars_Magica_5th/translations/uk.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "Atk", "attack": "Attack", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "Character", "characteristic": "Characteristic", - "characteristic-m": "Characteristic", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "Current", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "Duration", "effect": "Effect", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "Eyes", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "Free", "fresh": "Fresh", "gender": "Gender", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "Hair", "handedness": "Handedness", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "Level", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "Size", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "Type", @@ -208,14 +232,21 @@ "weapons": "Weapons", "weary": "Weary", "weight": "Weight", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Ars_Magica_5th/translations/zh.json b/Ars_Magica_5th/translations/zh.json index f65fa2bdf2..e50b044b0a 100644 --- a/Ars_Magica_5th/translations/zh.json +++ b/Ars_Magica_5th/translations/zh.json @@ -14,8 +14,8 @@ "armor-protection": "Armor Protection", "armor-worn": "Armor Worn", "art": "Art", - "ask": "Ask", "artes-lib-": "Artes Lib.", + "ask": "-Ask-", "atk": "ATK", "attack": "攻擊", "attaining-rt": "Attaining", @@ -33,19 +33,29 @@ "ceremonial": "Ceremonial", "character": "角色", "characteristic": "屬性", - "characteristic-m": "屬性", + "characteristic-choice": "-Characteristic-", "characteristics": "Characteristics", "circumstances-m": "Circumstances", "circumstantial": "Circumstantial", - "critical": "Critical", "combat": "Combat", "combat-modifiers": "Combat Modifiers", "communication": "Communication", "confidence": "Confidence", + "config-botch": "Botch formula", + "config-botch-grouped": "Grouped rolls", + "config-botch-separated": "Separated rolls", + "config-configuration": "Configuration", + "config-dice": "Dice type", + "config-dice-both": "Both", + "config-dice-toggle": "Toggle", + "config-magi": "Magi character", + "config-magi-no": "No", + "config-magi-yes": "Yes", "corpus": "Corpus", "covenant": "Covenant", "covenant-of-apprenticeship": "Covenant of Apprenticeship", "creo": "Creo", + "critical": "Critical", "current": "目前", "current-year": "Current Year", "dam": "Dam", @@ -55,6 +65,7 @@ "decrepitude-aging": "Decrepitude/Aging", "defend-rt": "Defend", "defense": "Defense", + "deficiency": "Deficiency", "description": "Description", "designed-spells": "Designed Spells", "dex": "dex", @@ -65,8 +76,8 @@ "domus-magna": "Domus Magna", "duration": "持續時間", "effect": "效果", - "encumbrance": "Encumbrance", "enc-": "Enc.", + "encumbrance": "Encumbrance", "exp": "Exp.", "eyes": "瞳色", "faerie-might": "Faerie Might", @@ -78,15 +89,16 @@ "form": "Form", "forms": "Forms", "formulaic": "Formulaic", + "formulaic-spells": "Formulaic spells", "free": "免費會員", "fresh": "Fresh", "gender": "性別", "general-quality": "General Quality", "gestures": "Gestures", - "gestures-exaggerated": "Exaggerated", "gestures-bold": "Bold", - "gestures-subtle": "Subtle", + "gestures-exaggerated": "Exaggerated", "gestures-none": "None", + "gestures-subtle": "Subtle", "hair": "髮色", "handedness": "Handedness", "health": "Health", @@ -111,6 +123,8 @@ "lab-characteristics": "Lab Characteristics", "lab-totals": "Lab Totals", "lab-virtues": "Lab Virtues", + "legacy-content": "This section contains part of the sheet that are no longer used, but cannot be removed because they contain character data.", + "legacy-title": "Legacy", "level": "會員等級", "leverages-rt": "leverages", "light-wounds": "Light Wounds", @@ -144,6 +158,7 @@ "pool": "Pool", "presence": "Presence", "primus": "Primus", + "protection": "Protection", "qik": "Qik", "query": "Name of Query", "quickness": "Quickness", @@ -163,10 +178,12 @@ "saga": "Saga", "sanctum-marker": "Sanctum Marker", "score": "Score", + "sheet": "Sheet", "simple": "Simple", "size": "體型", "soak": "Soak", "soak-bonus": "Soak Bonus", + "soak-forms": "Soak by Forms", "speciality": "Speciality", "specializations-bonuses": "Specializations & Bonuses", "spell-description": "Spell Description", @@ -186,7 +203,14 @@ "theory": "Theory", "tired": "Tired", "title-profession": "Title/Profession", - "total": "total", + "tooltip-ability-characteristic": "Select the caracteristic to use. Overrides the gobal selector.
'-Characteristic-' uses the global selector, '-Ask-' triggers a roll query (pop-up) for each roll.", + "tooltip-default-characteristic": "Default characteristic to use. Can be overriden per ability.", + "tooltip-inc-": "Included
Check if the item is active. Unchecked items are not used in the computation", + "tooltip-welcome": "Underlined text features tooltip with additional informations", + "tooltip-xp-input": "XP points in this art or ability. You can store either the total amount of XP, or just the XP towards the next score.", + "tooltip-xp-step": "Additional XP required for the next score, beyond the XP for the current level.
If you store only the XP towards the next score in the xp input, increase the score when this amount is reached.", + "tooltip-xp-total": "Total XP required for the next score.
If you store the total XP in the XP input, increase the score when this amount is reached.", + "total": "Total", "total-specialization-modifier": "Total Specialization Modifier", "trait": "Trait", "type": "類型", @@ -208,14 +232,21 @@ "weapons": "武器", "weary": "Weary", "weight": "重量", + "welcome-0": "Those are a few important notes you'll need to read before using the sheet. A more complete documentation can be found below.", + "welcome-1": "First, this sheet features some configuration options, found below. Be sure to review those. Configure is your character is a Magi, how you want botches to be rolled and display in chat, and how you want to chose between simple and stress rolls (when applicable).", + "welcome-2": "Second, you might want to read a bit the section on the documentation on how rolls works. The stress dice of Ars Magica 5th edition are quite complicated, and this sheet isn't quite able to handle them completely automatically. You'll need to copy the result before the critical roll, for instance.", + "welcome-3a": "Third, some element of the sheet are ", + "welcome-3b": "underlined", + "welcome-3c": "this means they have a tooltip that shows additional info about them.", + "welcome-title": "Welcome to the Ars Magica 5th Edition Sheet !", "winded": "Winded", "with-rt": "with", "wizard-s-sigil": "Wizard's Sigil", "words": "Words", - "words-loud": "Loud", "words-firm": "Firm", - "words-quiet": "Quiet", + "words-loud": "Loud", "words-none": "None", + "words-quiet": "Quiet", "wounds": "Wounds", "year-born": "Year Born" } \ No newline at end of file diff --git a/Aventures/translation.json b/Aventures/translation.json index 62b6da3194..fa6656a0b6 100644 --- a/Aventures/translation.json +++ b/Aventures/translation.json @@ -1,65 +1,65 @@ -{ - "personnage": "Personnage", - "nom:": "Nom :", - "race:": "Race :", - "classe:": "Classe :", - "element:": "Élément :", - "themes:": "Thèmes :", - "langues:": "Langues connues :", - "vocation:": "Vocation :", - "nom": "Nom", - "race": "Race", - "classe": "Classe", - "element": "Élément", - "themes": "Thèmes", - "langues": "Langues connues", - "vocation": "Vocation", - "statistiques": "Statistiques", - "physique": "Physique", - "social": "Social", - "mental": "Mental", - "puissance": "Puissance", - "finesse": "Finesse", - "aura": "Aura", - "relations": "Relations", - "instinct": "Instinct", - "savoir": "Savoir", - "bonus": "Bonus", - "avantage": "Avantage", - "desavantage": "Désavantage", - "niveau": "Niveau", - "sante": "Santé", - "psy": "Psy", - "postureBase": "Posture de base", - "desAventures": "Dés d'aventures :", - "desMesaventures": "Dés de mésaventures :", - "restant": "Restant :", - "competences": "Compétences", - "equipement": "Équipement", - "competencesetdons": "Compétences et Dons", - "dons": "Dons", - "passives": "Passives", - "passivesdetails": "Compétences passives", - "armes": "Armes", - "armure": "Armure", - "equipementtotal": "Équipement total", - "autres": "Autres", - "jetbonusmalus": "Bonus/Malus dans les jets :", - "posture": "posture", - "offensif": "Offensif", - "defensif": "Défensif", - "focus": "Focus", - "attribut": "Attribut", - "type": "Type", - "perforant": "Perforant", - "tranchant": "Tranchant", - "contondant": "Contondant", - "bonusdetails": "Détails des bonus", - "competencenom": "Nom de la compétence", - "donname": "Nom du don", - "armenom": "Nom de l'arme", - "armurenom": "Nom de l'armure", - "physiquereduit": "Phy", - "objet": "Objet", - "quantitereduit": "Qté" -} +{ + "personnage": "Personnage", + "nom:": "Nom :", + "race:": "Race :", + "classe:": "Classe :", + "element:": "Élément :", + "themes:": "Thèmes :", + "langues:": "Langues connues :", + "vocation:": "Vocation :", + "nom": "Nom", + "race": "Race", + "classe": "Classe", + "element": "Élément", + "themes": "Thèmes", + "langues": "Langues connues", + "vocation": "Vocation", + "statistiques": "Statistiques", + "physique": "Physique", + "social": "Social", + "mental": "Mental", + "puissance": "Puissance", + "finesse": "Finesse", + "aura": "Aura", + "relations": "Relations", + "instinct": "Instinct", + "savoir": "Savoir", + "bonus": "Bonus", + "avantage": "Avantage", + "desavantage": "Désavantage", + "niveau": "Niveau", + "sante": "Santé", + "psy": "Psy", + "postureBase": "Posture de base", + "desAventures": "Dés d'aventures :", + "desMesaventures": "Dés de mésaventures :", + "restant": "Restant :", + "competences": "Compétences", + "equipement": "Équipement", + "competencesetdons": "Compétences et Dons", + "dons": "Dons", + "passives": "Passives", + "passivesdetails": "Compétences passives", + "armes": "Armes", + "armure": "Armure", + "equipementtotal": "Équipement total", + "autres": "Autres", + "jetbonusmalus": "Bonus/Malus dans les jets :", + "posture": "posture", + "offensif": "Offensif", + "defensif": "Défensif", + "focus": "Focus", + "attribut": "Attribut", + "type": "Type", + "perforant": "Perforant", + "tranchant": "Tranchant", + "contondant": "Contondant", + "bonusdetails": "Détails des bonus", + "competencenom": "Nom de la compétence", + "donname": "Nom du don", + "armenom": "Nom de l'arme", + "armurenom": "Nom de l'armure", + "physiquereduit": "Phy", + "objet": "Objet", + "quantitereduit": "Qté" +} diff --git a/Aventures/translations/af.json b/Aventures/translations/af.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/af.json +++ b/Aventures/translations/af.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/ca.json b/Aventures/translations/ca.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/ca.json +++ b/Aventures/translations/ca.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/cs.json b/Aventures/translations/cs.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/cs.json +++ b/Aventures/translations/cs.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/da.json b/Aventures/translations/da.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/da.json +++ b/Aventures/translations/da.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/de.json b/Aventures/translations/de.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/de.json +++ b/Aventures/translations/de.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/el.json b/Aventures/translations/el.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/el.json +++ b/Aventures/translations/el.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/en.json b/Aventures/translations/en.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/en.json +++ b/Aventures/translations/en.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/es.json b/Aventures/translations/es.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/es.json +++ b/Aventures/translations/es.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/fi.json b/Aventures/translations/fi.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/fi.json +++ b/Aventures/translations/fi.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/fr.json b/Aventures/translations/fr.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/fr.json +++ b/Aventures/translations/fr.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/he.json b/Aventures/translations/he.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/he.json +++ b/Aventures/translations/he.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/hu.json b/Aventures/translations/hu.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/hu.json +++ b/Aventures/translations/hu.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/it.json b/Aventures/translations/it.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/it.json +++ b/Aventures/translations/it.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/ja.json b/Aventures/translations/ja.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/ja.json +++ b/Aventures/translations/ja.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/ko.json b/Aventures/translations/ko.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/ko.json +++ b/Aventures/translations/ko.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/nl.json b/Aventures/translations/nl.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/nl.json +++ b/Aventures/translations/nl.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/pl.json b/Aventures/translations/pl.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/pl.json +++ b/Aventures/translations/pl.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/pt.json b/Aventures/translations/pt.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/pt.json +++ b/Aventures/translations/pt.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/ru.json b/Aventures/translations/ru.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/ru.json +++ b/Aventures/translations/ru.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/sl.json b/Aventures/translations/sl.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/sl.json +++ b/Aventures/translations/sl.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/sv.json b/Aventures/translations/sv.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/sv.json +++ b/Aventures/translations/sv.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/tr.json b/Aventures/translations/tr.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/tr.json +++ b/Aventures/translations/tr.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/uk.json b/Aventures/translations/uk.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/uk.json +++ b/Aventures/translations/uk.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/Aventures/translations/zh.json b/Aventures/translations/zh.json index 45c6f0e6bd..fa6656a0b6 100644 --- a/Aventures/translations/zh.json +++ b/Aventures/translations/zh.json @@ -62,4 +62,4 @@ "physiquereduit": "Phy", "objet": "Objet", "quantitereduit": "Qté" -} +} diff --git a/BESM4eExtras/BESM4eExtras.css b/BESM4eExtras/BESM4eExtras.css index d65aa97135..44bc04cbf2 100644 --- a/BESM4eExtras/BESM4eExtras.css +++ b/BESM4eExtras/BESM4eExtras.css @@ -1,5 +1,5 @@ /* === VERSION === */ -/* 1.4.7 */ +/* 1.5.0 */ /* === GENERAL === */ .charsheet { @@ -99,6 +99,12 @@ input.sheet-dynamic:checked ~ div.sheet-body { font-weight: bold; } +button.sheet-multi-select[type="action"] { + width: 85%; + height: 1.5em; + font-size: 12px; +} + /*============= TABS =============*/ div.sheet-tab-content @@ -853,12 +859,12 @@ span.sheet-targeted-inactive{ cursor: help; } .sheet-tooltip strong { line-height: 30px; } -.sheet-tooltip:hover span { +.sheet-tooltip:hover span.sheet-tooltip { display: block; position: absolute; } .sheet-tooltip:hover { text-decoration: none; } -.sheet-tooltip span { +.sheet-tooltip span.sheet-tooltip { display: none; border-radius: 4px; box-shadow: 2px 2px 3px #ccc; @@ -1480,6 +1486,7 @@ input.sheet-theme[value="1"]:checked ~ div > div > div > h5 > div > div > div > input.sheet-theme[value="1"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > h4, input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="1"]:checked ~ div > div > div > div > h4 > div > div > div > div > span, +input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > div > div > span, /*Skill Template Tooltip*/ input.sheet-theme[value="1"]:checked ~ div > div > div > h5 > div > div > div > div > div > h3 > div > div > div > div > h3 > span, input.sheet-theme[value="1"]:checked ~ div > div > div > div > h4 > div > div > div > div > div > div > div > div > div > div > span, @@ -1490,6 +1497,7 @@ input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, +input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > span, input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > div > div, input.sheet-theme[value="1"]:checked ~ div > div > div > button[type="action"], @@ -1502,12 +1510,14 @@ input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="1"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > span > div > div > button[type="action"], input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > button[type="action"], input.sheet-theme[value="1"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"] { background: #d77979; @@ -1531,6 +1541,7 @@ input.sheet-theme[value="2"]:checked ~ div > div > div > h5 > div > div > div > input.sheet-theme[value="2"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > h4, input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="2"]:checked ~ div > div > div > div > h4 > div > div > div > div > span, +input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > div > div > span, /*Skill Template Tooltip*/ input.sheet-theme[value="2"]:checked ~ div > div > div > h5 > div > div > div > div > div > h3 > div > div > div > div > h3 > span, input.sheet-theme[value="2"]:checked ~ div > div > div > div > h4 > div > div > div > div > div > div > div > div > div > div > span, @@ -1541,6 +1552,7 @@ input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, +input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > span, input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > div > div, input.sheet-theme[value="2"]:checked ~ div > div > div > button[type="action"], @@ -1553,12 +1565,14 @@ input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="2"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > span > div > div > button[type="action"], input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > button[type="action"], input.sheet-theme[value="2"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"] { background: #F4B183; @@ -1582,6 +1596,7 @@ input.sheet-theme[value="3"]:checked ~ div > div > div > h5 > div > div > div > input.sheet-theme[value="3"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > h4, input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="3"]:checked ~ div > div > div > div > h4 > div > div > div > div > span, +input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > div > div > span, /*Skill Template Tooltip*/ input.sheet-theme[value="3"]:checked ~ div > div > div > h5 > div > div > div > div > div > h3 > div > div > div > div > h3 > span, input.sheet-theme[value="3"]:checked ~ div > div > div > div > h4 > div > div > div > div > div > div > div > div > div > div > span, @@ -1592,6 +1607,7 @@ input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, +input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > span, input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > div > div, input.sheet-theme[value="3"]:checked ~ div > div > div > button[type="action"], @@ -1604,12 +1620,14 @@ input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="3"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > span > div > div > button[type="action"], input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > button[type="action"], input.sheet-theme[value="3"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"] { background: #FFD966; @@ -1633,6 +1651,7 @@ input.sheet-theme[value="4"]:checked ~ div > div > div > h5 > div > div > div > input.sheet-theme[value="4"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > h4, input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="4"]:checked ~ div > div > div > div > h4 > div > div > div > div > span, +input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > div > div > span, /*Skill Template Tooltip*/ input.sheet-theme[value="4"]:checked ~ div > div > div > h5 > div > div > div > div > div > h3 > div > div > div > div > h3 > span, input.sheet-theme[value="4"]:checked ~ div > div > div > div > h4 > div > div > div > div > div > div > div > div > div > div > span, @@ -1643,6 +1662,7 @@ input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, +input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > span, input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > div > div, input.sheet-theme[value="4"]:checked ~ div > div > div > button[type="action"], @@ -1655,12 +1675,14 @@ input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="4"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > span > div > div > button[type="action"], input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > button[type="action"], input.sheet-theme[value="4"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"] { background: #A9D18E; @@ -1684,6 +1706,7 @@ input.sheet-theme[value="5"]:checked ~ div > div > div > h5 > div > div > div > input.sheet-theme[value="5"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > h4, input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="5"]:checked ~ div > div > div > div > h4 > div > div > div > div > span, +input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > div > div > span, /*Skill Template Tooltip*/ input.sheet-theme[value="5"]:checked ~ div > div > div > h5 > div > div > div > div > div > h3 > div > div > div > div > h3 > span, input.sheet-theme[value="5"]:checked ~ div > div > div > div > h4 > div > div > div > div > div > div > div > div > div > div > span, @@ -1694,6 +1717,7 @@ input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, +input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > span, input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > div > div, input.sheet-theme[value="5"]:checked ~ div > div > div > button[type="action"], @@ -1706,12 +1730,14 @@ input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="5"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > span > div > div > button[type="action"], input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > button[type="action"], input.sheet-theme[value="5"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"] { background: #8FAADC; @@ -1735,6 +1761,7 @@ input.sheet-theme[value="6"]:checked ~ div > div > div > h5 > div > div > div > input.sheet-theme[value="6"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > h4, input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="6"]:checked ~ div > div > div > div > h4 > div > div > div > div > span, +input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > div > div > span, /*Skill Template Tooltip*/ input.sheet-theme[value="6"]:checked ~ div > div > div > h5 > div > div > div > div > div > h3 > div > div > div > div > h3 > span, input.sheet-theme[value="6"]:checked ~ div > div > div > div > h4 > div > div > div > div > div > div > div > div > div > div > span, @@ -1745,6 +1772,7 @@ input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, +input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > span, input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > div > div, input.sheet-theme[value="6"]:checked ~ div > div > div > button[type="action"], @@ -1757,12 +1785,14 @@ input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="6"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > span > div > div > button[type="action"], input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > button[type="action"], input.sheet-theme[value="6"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"] { background: #A162D0; @@ -1786,6 +1816,7 @@ input.sheet-theme[value="7"]:checked ~ div > div > div > h5 > div > div > div > input.sheet-theme[value="7"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > h4, input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="7"]:checked ~ div > div > div > div > h4 > div > div > div > div > span, +input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > div > div > span, /*Skill Template Tooltip*/ input.sheet-theme[value="7"]:checked ~ div > div > div > h5 > div > div > div > div > div > h3 > div > div > div > div > h3 > span, input.sheet-theme[value="7"]:checked ~ div > div > div > div > h4 > div > div > div > div > div > div > div > div > div > div > span, @@ -1796,6 +1827,7 @@ input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, +input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > span, input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > div > div, input.sheet-theme[value="7"]:checked ~ div > div > div > button[type="action"], @@ -1808,12 +1840,14 @@ input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="7"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > span > div > div > button[type="action"], input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > button[type="action"], input.sheet-theme[value="7"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"] { background: #AFABAB; @@ -1837,6 +1871,7 @@ input.sheet-theme[value="8"]:checked ~ div > div > div > h5 > div > div > div > input.sheet-theme[value="8"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > h4, input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="8"]:checked ~ div > div > div > div > h4 > div > div > div > div > span, +input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > div > div > span, /*Skill Template Tooltip*/ input.sheet-theme[value="8"]:checked ~ div > div > div > h5 > div > div > div > div > div > h3 > div > div > div > div > h3 > span, input.sheet-theme[value="8"]:checked ~ div > div > div > div > h4 > div > div > div > div > div > div > div > div > div > div > span, @@ -1847,6 +1882,7 @@ input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, +input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > span, input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > div > div, input.sheet-theme[value="8"]:checked ~ div > div > div > button[type="action"], @@ -1859,12 +1895,14 @@ input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="8"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > span > div > div > button[type="action"], input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > button[type="action"], input.sheet-theme[value="8"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"] { background: #595959; @@ -1888,6 +1926,7 @@ input.sheet-theme[value="9"]:checked ~ div > div > div > h5 > div > div > div > input.sheet-theme[value="9"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > h4, input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="9"]:checked ~ div > div > div > div > h4 > div > div > div > div > span, +input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > div > div > span, /*Skill Template Tooltip*/ input.sheet-theme[value="9"]:checked ~ div > div > div > h5 > div > div > div > div > div > h3 > div > div > div > div > h3 > span, input.sheet-theme[value="9"]:checked ~ div > div > div > div > h4 > div > div > div > div > div > div > div > div > div > div > span, @@ -1898,6 +1937,7 @@ input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, +input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4, input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > span, input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > div > div > div > div, input.sheet-theme[value="9"]:checked ~ div > div > div > button[type="action"], @@ -1910,12 +1950,14 @@ input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="9"]:checked ~ div > div > div > h5 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > button[type="action"], input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > div > div > h4 > span > div > div > button[type="action"], input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > h4 > div > div > div > div > div > div > div > button[type="action"], input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"], +input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > h4 > div > div > button[type="action"], input.sheet-theme[value="9"]:checked ~ div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > div > button[type="action"] { background: #D9D9D9; @@ -2293,13 +2335,13 @@ input.sheet-stats:checked + button.sheet-major-stat { } button.sheet-allaspects-stat-inactive[type="action"], -button.sheet-condition[type="action"], +button.sheet-push-button[type="action"], h4.sheet-protection { opacity: 0.65; } input.sheet-protectionstate:checked + h4.sheet-protection, -input.sheet-condition:checked + button.sheet-condition { +input.sheet-push-button:checked + button.sheet-push-button { opacity: 1; } @@ -2307,7 +2349,7 @@ input.sheet-block-switch, input.sheet-stats, input.sheet-weapon, input.sheet-protectionstate, -input.sheet-condition { +input.sheet-push-button { opacity: 0; left: -9999px; position: absolute; @@ -2327,6 +2369,14 @@ div.sheet-flex-container-evenlyspace { align-content: space-around; } +div.sheet-flex-container-wrap { + display: flex; + justify-content: space-between; + flex-flow: row wrap; + align-content: space-around; + gap: 3px; +} + div.sheet-flex-container-spacearound { display: flex; justify-content: space-around; diff --git a/BESM4eExtras/BESM4eExtras.html b/BESM4eExtras/BESM4eExtras.html index d168ba9bf2..3c7c2b91a2 100644 --- a/BESM4eExtras/BESM4eExtras.html +++ b/BESM4eExtras/BESM4eExtras.html @@ -30,7 +30,7 @@

Sheet Options

Sheet Version - +

Sheet Type @@ -285,84 +285,84 @@
Conditions
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
@@ -1526,10 +1526,13 @@

-
+
+ + +

@@ -1537,10 +1540,13 @@

-
+
+ + +
  @@ -2823,90 +2829,82 @@
-
-
- -
-
- -
-
-
-
- - -
-
-
- -
-

- Name - - -

-
-
-

- Attribute - - -

-
-
-

- Characteristic - - -

-
- - - - - - - - - - -
- -
- -
+
+
- y -
-
-
- - -
-
-
-
-
-

- Details -

-
-
-
-
-
+ +
+
+ +
+
+
+
+ + +
+
+
+ +
+

+ Name + + +

+
+
+

+ Attribute + + +

+
+
+

+ Characteristic + + +

+
+ + + + + + + + + +
+ +
+ +
+ +
+ +
+
+
+
+ +
+
+
+
@@ -2966,6 +2964,116 @@
+ +
+ +
+
+
+

+ Unaffected Attributes +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+

+
+
+
@@ -3042,11 +3150,84 @@
+
+
+ +
+
+
+

+ Damage Type + +

+
+
+
+
+ +
+
+
+

+ Damage Type + +

+
+
+
+
+ +
+
+
+

+ Damage Type + + +

+
+
+
+
+
+ +
+ +

- Damage Type - + Damage Category +

@@ -3155,20 +3336,20 @@
- +
@@ -3250,6 +3431,53 @@
+ +
+ +
+
+
+

+ Unaffected Weapon + +

+
+
+
@@ -3286,20 +3514,7 @@
- +
@@ -4059,7 +4274,38 @@
- + +
@@ -4186,6 +4432,7 @@

Enhancements

+ @@ -4250,28 +4497,62 @@ + + + + + + + +
-
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
@@ -4370,30 +4651,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4471,15 +4812,49 @@
-
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4506,6 +4881,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4516,34 +4915,100 @@
-
-
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4551,10 +5016,55 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4562,45 +5072,179 @@
-
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4648,27 +5292,113 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4679,6 +5409,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4845,12 +5595,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4873,6 +5639,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4919,6 +5697,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4972,6 +5770,174 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

@@ -5112,6 +6078,14 @@ + + + + + + + +
@@ -5120,13 +6094,17 @@
-
-
+
+
+
+
+
+
@@ -5195,13 +6173,17 @@
+
+
+
+
-
-
+
+
@@ -5356,10 +6338,12 @@
+
@@ -5398,6 +6382,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

@@ -6543,11 +7567,18 @@ const rollable_attributes_regex = /(healing|inspire|unaffected|exorcism|illusion|metamorphosis|mimic|mindcontrol|nullify|powerflux|powervariation|projection|sixthsense|supersense|telepathy|transfer|transmute)/i; const targetable_attributes_regex = /(healing|exorcism|illusion|metamorphosis|mimic|mindcontrol|nullify|telepathy|transfer)/i; const dymanicGrouRegex = /(flux|variation)/i; - + const controlable_environments_array = ['arid', 'clouds', 'cold', 'darkness', 'heat', 'humidity', 'light', 'liquid', 'gaseous', 'smell', 'sound', 'storms', 'unique', 'vacuum']; + const sixthsense_phenomena_array = ['attrsrc', 'danger', 'dimensions', 'elements', 'emotions', 'extraplanarbeings', 'illusions', 'morality', 'objects', 'placesofpower', 'uniquephenomena']; + const special_movements_array = ['balance', 'catlike', 'fast', 'lightfooted', 'slithering', 'swinging', 'untrackable', 'wallbouncing', 'wallcrawling', 'waterwalking', 'zendirection']; + const undetectable_methods_array = ['hearing', 'sight', 'smell', 'taste', 'touch', 'echolocation', 'infrasound', 'radio', 'ultrasound', 'infrared', 'ultraviolet', 'x-ray', 'odorant', 'tastant', 'magnetic', 'radiation', 'seismic', 'thermal']; + const unaffected_attrs_array = ['alternateform','alternateidentity','changestate','dataaccess','dimensionwalk','dynamicpowers','exorcism','features','forcefield','illusion','metamorphosis','mindcontrol','nullify','plantcontrol','portal','projection','sensoryblock','sizechange','telekinesis','telepathy','teleport','transmute','undetectable','weapon']; + const unaffected_states_array = ['alternateformstate', 'alternateidentitystate', 'changestatestate', 'dataaccessstate', 'dimensionwalkstate', 'dynamicpowersstate', 'exorcismstate', 'featuresstate', 'forcefieldstate', 'illusionstate', 'metamorphosisstate', 'mindcontrolstate', 'nullifystate', 'plantcontrolstate', 'portalstate', 'projectionstate', 'sensoryblockstate', 'sizechangestate', 'telekinesisstate', 'telepathystate', 'teleportstate', 'transmutestate', 'undetectablestate', 'weaponstate']; + const non_actionable_events = ['costperlevel','visible','new','source','characteristic','rollable','attrdefecttoggle','damagetype']; + const upgrade_to_1_5_0_array = ["upgraded_1_5_0"]; const upgrade_to_1_3_1_array = ["upgraded_1_3_1", "attrdb"]; const upgrade_to_1_2_2_array = ["upgraded_1_2_2", "name", "charactername"]; const global_initialized_array = ["global_initialized"]; - const on_sheet_open_array = _.chain([upgrade_to_1_3_1_array, upgrade_to_1_2_2_array, global_initialized_array]) + const on_sheet_open_array = _.chain([upgrade_to_1_5_0_array, upgrade_to_1_3_1_array, upgrade_to_1_2_2_array, global_initialized_array]) .flatten() .value(); @@ -6585,6 +7616,15 @@ return result; } + function get1or2andHalfor5(level) { + const oneTwoAndHalfOrFive = mod => + mod == 0 ? 1 : + mod == 1 ? 2.5 : + mod == 2 ? 5 : + 0; + return oneTwoAndHalfOrFive(level % 3); + } + function setPreviousValue(eventInfo){ eventInfo.previousValue = eventInfo.previousValue == eventInfo.newValue ? Number.isInteger(eventInfo.newValue) ? 0 : @@ -6600,6 +7640,7 @@ function doUpgrade(value, setObj){ upgradeTo_1_2_2(value, setObj); upgradeTo_1_3_1(value, setObj); + upgradeTo_1_5_0(value, setObj); } function upgradeTo_1_2_2(value, setObj){ @@ -6623,16 +7664,46 @@ _.each(defectdb, defect => { const rowID = defect.source; const rank = parseInt(defect.rank) || 0; - console.log(`[upgradeTo_1_3_1()] defect = ${defect.name}`); - console.log(`[upgradeTo_1_3_1()] rowID = ${rowID}`); - console.log(`[upgradeTo_1_3_1()] rank = ${rank}`); setObj[`repeating_attr_${rowID}_rank`] = rank; }); - console.log(`[upgradeTo_1_3_1()] setObj:`); console.log(setObj); setObj.upgraded_1_3_1 = true; } } + function upgradeTo_1_5_0(value, setObj){ + if(value.upgraded_1_5_0 == true){ + return; + }else{ + const limiters_array = ['activation','ammo','assisted','backblast','backlash','bothdirections','broadcategory','capped','category','category','categoty','charges','concentration','consumable','delay','dependent','deplete','detectable','emotional','environmental','equipment','exclusive','fieldless','focused','focuseddamage','gap','glide','group','hands','imbue','impacting','inaccurate','ingest','intensity','internal','irreversible','localized','maintain','maximum','nonadjacent','nonpenetrating','nostun','object','permanent','proportionaldamage','recovery','roadbound','semipermanent','skillflux','skim','specialized','specificattribute','spread','stoppable','targeteddamage','toxic','unique','unpredictable','unreliable']; + getSectionIDs('attr', attrIDs => { + const attr_customization_array = _.map(attrIDs, id => { + return `repeating_attr_${id}_customizations`; + }); + const attr_names_array = _.map(attrIDs, id => { + return `repeating_attr_${id}_attribute`; + }); + const getAttrsArray = attr_customization_array.concat(attr_names_array); + getAttrs(getAttrsArray, v => { + _.each(attr_customization_array, c => { + const customizations = _.each(v[`${c}`], customization => { + if(_.isEmpty(customization)) return; + if (limiters_array.indexOf(customization.name) >= 0) { + return customization["type"] = "limiter"; + } else { + return customization["type"] = "enhancement"; + } + }); + setObj[`${c}`] = customizations; + }); + _.each(attrIDs, id => { + setAttrCustomizations(1, v, id, setObj); + }) + }); + }); + setObj.upgraded_1_5_0 = true; + } + } + /** Build UI Functions **/ function buildSizeUI(sizes, setObj) { @@ -6687,7 +7758,7 @@ writeSkill[`repeating_skilltemplate_${rowID}_statallaspect`] = skill.statallaspect; writeSkill[`repeating_skilltemplate_${rowID}_statmajor`] = skill.statmajor; writeSkill[`repeating_skilltemplate_${rowID}_cost`] = skill.cost[global_templates_game_genre]; - setAttrs(writeSkill); + setAttrs(writeSkill,{silent:true}); }); } @@ -6731,66 +7802,67 @@ function buildReapeatingAttrValuesArray(attrIDs) { var result = []; const attrs = [ - `activate`, - `ammo`, - `ammostate`, - `armorlayer`, - `attrdefecttoggle`, - `attribute`, - `attrsrc`, - `augmentedstat`, - `bonus`, - `capacity`, - `capacitystate`, - `capacitytype`, - `characteristic`, - `charges`, - `collectiontype`, - `conditions`, - `continuingtype`, - `conversiontype`, - `costperlevel`, - `customizations`, - `damagetype`, - `defect`, - `defectaspect`, - `defenseclass`, - `display`, - `draintype`, - `effect`, - `effectivelevel`, - `endurance`, - `enemy`, - `enhancementassignments`, - `extraarms`, - `fluxenable`, - `group`, - `immunityrole`, - `isflux`, - `level`, - `limiterassignments`, - `lock`, - `name`, - `new`, - `object`, - `options`, - `rank`, - `rollable`, - `seeinto`, - `sense`, - `skill`, - `skillgroup`, - `source`, - `stat`, - `supersense`, - `totalcost`, - `uniquephenomena`, - `visible`, - `weaponclass` + 'activate', + 'ammo', + 'ammostate', + 'armorlayer', + 'attrdefecttoggle', + 'attribute', + 'attrsrc', + 'augmentedstat', + 'bonus', + 'capacity', + 'capacitystate', + 'capacitytype', + 'characteristic', + 'charges', + 'collectiontype', + 'conditions', + 'continuingtype', + 'conversiontype', + 'costperlevel', + 'customizations', + 'damagetype', + 'defect', + 'defectaspect', + 'defenseclass', + 'display', + 'draintype', + 'effect', + 'effectivelevel', + 'endurance', + 'enemy', + 'enhancementassignments', + 'extraarms', + 'fluxenable', + 'group', + 'immunityrole', + 'isflux', + 'level', + 'limiterassignments', + 'lock', + 'name', + 'new', + 'object', + 'options', + 'rank', + 'rollable', + 'seeinto', + 'sense', + 'skill', + 'skillgroup', + 'source', + 'stat', + 'supersense', + 'totalcost', + 'uniquephenomena', + 'visible', + 'unaffectedattributes', + 'weaponclass' ]; _.each(attrIDs, id => { - _.each(attrs, attr => { - result[result.length] = `repeating_attr_${id}_${attr}`; + _.map(attrs.concat(unaffected_states_array), attr => { + return result[result.length] = `repeating_attr_${id}_${attr}`; }); }); return result; @@ -7061,7 +8133,7 @@ } function restoreActiveAttribute(removedInfo){ - setAttrs(removedInfo); + setAttrs(removedInfo,{silent:true}); } function getRemovedAttribute(removedInfo){ @@ -7333,12 +8405,19 @@ function getAggregateShortcomingRanks(debug, value, defectdb, stat, setObj) { const result = _.chain(defectdb) .map(defect => { + /* const isActive = isNaN(parseInt(setObj[`repeating_attr_${defect.source}_activate`])) ? parseInt(value[`repeating_attr_${defect.source}_activate`]) : parseInt(setObj[`repeating_attr_${defect.source}_activate`]); + + const getIsActive = source => isNaN(source) ? + parseInt(value[`repeating_attr_${defect.source}_activate`]) : + source; + const isActive = getIsActive(parseInt(setObj[`repeating_attr_${defect.source}_activate`])); + */ const rank = defect.name == 'shortcoming' ? defect.aspect == `${stat}` ? - isActive > 0 ? - parseInt(defect.rank) : 0 : 0 : 0; + // isActive > 0 ? + parseInt(defect.rank) : 0 : 0; return rank; }) .reduce((memo, num)=>{ return memo + num; }, 0) @@ -7511,7 +8590,7 @@ console.log(`[setAttrVisibilityByGroup(${eventInfo.newValue})] currGroup = ${currGroup}`); } if(debug){ console.log('[Changes To Sheet Values] setObj:'); console.log(setObj); } - setAttrs(setObj); + setAttrs(setObj,{silent:true}); return; }); } @@ -7708,7 +8787,7 @@ if (isDynamicAttr && isDynamicGroup(value, sectionName)) { setObj[`${match}`] = eventInfo.previousValue; if(debug){ console.log('[Changes To Sheet Values] setObj:'); console.log(setObj); } - setAttrs(setObj); + setAttrs(setObj,{silent:true}); result = true; debugtext = `${debugtext} group is dynamic, resetting attribute selection.`; } else { @@ -7744,7 +8823,7 @@ if (debug) console.log(`[resetOnActive(${match})] attribute is active, exiting`); setObj[`${match}`] = reset; if(debug){ console.log('[Changes To Sheet Values] setObj:'); console.log(setObj); } - setAttrs(setObj); + setAttrs(setObj,{silent:true}); return true; } else { return false; } } @@ -7776,7 +8855,7 @@ if (debug) console.log(`[resetOnLevelNotZero(${match})] can't change Attribute when Level or Effective Level is greater than 0, exiting`); setObj[`${match}`] = reset; if(debug){ console.log('[Changes To Sheet Values] setObj:'); console.log(setObj); } - setAttrs(setObj); + setAttrs(setObj,{silent:true}); return true; } else { return false; } } @@ -7789,7 +8868,7 @@ if (debug) console.log(`[resetOnPoolLevelNotZero(${match})] can't change Type when Level is greater than 0, exiting`); setObj[`${match}`] = reset; if(debug){ console.log('[Changes To Sheet Values] setObj:'); console.log(setObj); } - setAttrs(setObj); + setAttrs(setObj,{silent:true}); return true; } else { return false; } } @@ -7801,7 +8880,7 @@ if (debug) console.log(`[resetOnNoAttr(${match})] can't change Level when no Attribute is selected, exiting`); setObj[`${match}`] = 0; if(debug){ console.log('[Changes To Sheet Values] setObj:'); console.log(setObj); } - setAttrs(setObj); + setAttrs(setObj,{silent:true}); return true; } else { return false; } } @@ -7814,7 +8893,7 @@ if (debug) console.log(`[resetOnActiveGroup(${match})] can't change Group Type when group Attributes have a level > 0, exiting`); setObj[`${match}`] = reset; if(debug){ console.log('[Changes To Sheet Values] setObj:'); console.log(setObj); } - setAttrs(setObj); + setAttrs(setObj,{silent:true}); return true; } else { return false; } } @@ -7837,7 +8916,7 @@ console.log('[Changes To Sheet Values] setObj:'); console.log(setObj); } - setAttrs(setObj); + setAttrs(setObj,{silent:true}); } return result; } @@ -8610,10 +9689,11 @@ } function setAttrCharacteristic(debug, value, rowID, setObj) { - const attribute = value[`repeating_attr_${rowID}_attribute`].toLowerCase().replace(/\s+/g, ''); + const attribute = value[`repeating_attr_${rowID}_attribute`].replace(/\s+/g, ''); if (attribute == 'defect') return; - const level = parseInt(setObj[`repeating_attr_${rowID}_effectivelevel`]) || - parseInt(value[`repeating_attr_${rowID}_effectivelevel`]) || 0; + const level = isNaN(parseInt(setObj[`repeating_attr_${rowID}_effectivelevel`])) ? + parseInt(value[`repeating_attr_${rowID}_effectivelevel`]) || 0 : + parseInt(setObj[`repeating_attr_${rowID}_effectivelevel`]) || 0; let characteristic = ""; switch (attribute) { case "absorption": characteristic = `${level * 5} Damage Absorbed`; break; @@ -8677,7 +9757,7 @@ case "rangeddefense": characteristic = `DCV +${level * 2} ${getCharacteristicSpecializationByAttr(debug, value, rowID, attribute)} Ranged Defense`; break; case "regeneration": characteristic = `Regenerate ${level * 5} Heath Points/Round`; break; case "reincarnation": characteristic = getCharacteristicByAttr(debug, value, rowID, attribute, setObj); break; - case "resilient": characteristic = `Resilient to ${getCharacteristicByCustomizations(debug, value, rowID, attribute)}`; break; + case "resilient": characteristic = `${level} Resiliencies Remaining`; break; case "sensory block": characteristic = `Block ${getCharacteristicByCustomizations(debug, value, rowID, attribute)}`; break; case "shield": characteristic = `${level * 5} Armor Rating` + getShieldParryBonus(debug, value, rowID); break; case "sixthsense": characteristic = getCharacteristicByCustomizations(debug, value, rowID, attribute); break; @@ -8698,7 +9778,7 @@ case "transfer": characteristic = `Transer Attributes as Level ${level}`; break; case "transmute": characteristic = `Transmute objects of ${level * 5} Character Points`; break; case "tunneling": characteristic = getCharacteristicByAttr(debug, value, rowID, attribute, setObj); break; - case "unaffected": characteristic = `Attacker suffers ${level * -2} using Attributes`; break; + case "unaffected": characteristic = `Attacker's roll ${level * -2}`; break; case "unassailable": characteristic = `Sanity Points +${level * 2}`; break; case "undetectable": characteristic = getCharacteristicByCustomizations(debug, value, rowID, attribute); break; case "uniqueattribute": characteristic = ""; break; @@ -8818,12 +9898,12 @@ "default": "Does not improve beyond level 10" }, "dataaccess": { - 1: "10 cm radius", - 2: "1 m radius", - 3: "10 m radius", - 4: "100 m radius", - 5: "1 km radius", - 6: "10 km radius", + 1: "Tiny-sized (10 cm radius)", + 2: "Small-sized (1 m radius)", + 3: "Moderately-sized (10 m radius)", + 4: "Building-sized (100 m radius)", + 5: "Neighbourhood-sized (1 km radius)", + 6: "City-sized (10 km radius)", "default": "" }, "dimensionwalk": { @@ -8845,12 +9925,12 @@ "default": "Does not improve beyond level 6" }, "elasticity": { - 1: "Stretch body up to 10 cm", - 2: "Stretch body up to 30 cm", - 3: "Stretch body up to 1 m", - 4: "Stretch body up to 3 m", - 5: "Stretch body up to 10 m", - 6: "Stretch body up to 30 m", + 1: "Stretch up to 10 cm", + 2: "Stretch up to 30 cm", + 3: "Stretch up to 1 m", + 4: "Stretch up to 3 m", + 5: "Stretch up to 10 m", + 6: "Stretch up to 30 m", "default": "" }, "extraarms": { @@ -8890,12 +9970,12 @@ "default": "Does not improve beyond level 6" }, "illusion": { - 1: "Tiny-sized Illusions (10 cm)", - 2: "Small-sized Illusions (1 m)", - 3: "Moderate-sized Illusions (10 m)", - 4: "Building-sized Illusions (100 m)", - 5: "Neighbourhood-sized Illusions (1 km)", - 6: "City-sized Illusions (10 km)", + 1: "Tiny-sized (10 cm radius)", + 2: "Small-sized (1 m radius)", + 3: "Moderately-sized (10 m radius)", + 4: "Building-sized (100 m radius)", + 5: "Neighbourhood-sized (1 km radius)", + 6: "City-sized (10 km radius)", "default": "Does not improve beyond level 6" }, "mindcontrol": { @@ -8926,21 +10006,21 @@ "default": "" }, "pocketdimension": { - 1: "Tiny dimension (10 cm radius)", - 2: "Small dimension (1 m radius)", - 3: "Moderately sized dimension (10 m radius)", - 4: "Building-sized dimension (100 m radius)", - 5: "Neighbourhood-sized dimension (1 km radius)", - 6: "City-sized dimension (10 km radius)", + 1: "Tiny-sized (10 cm radius)", + 2: "Small-sized (1 m radius)", + 3: "Moderately-sized (10 m radius)", + 4: "Building-sized (100 m radius)", + 5: "Neighbourhood-sized (1 km radius)", + 6: "City-sized (10 km radius)", "default": "" }, "projection": { - 1: "Tiny Projection (10 cm radius)", - 2: "Small Projection (1 m radius)", - 3: "Moderately sized Projection (10 m radius)", - 4: "Building-side Projection (100 m radius)", - 5: "Neighbourhood-sized Projection (1 km radius)", - 6: "City-sided Projection (10 km radius)", + 1: "Tiny-sized (10 cm radius)", + 2: "Small-sized (1 m radius)", + 3: "Moderately-sized (10 m radius)", + 4: "Building-sized (100 m radius)", + 5: "Neighbourhood-sized (1 km radius)", + 6: "City-sized (10 km radius)", "default": "" }, "reincarnation": { @@ -9042,17 +10122,22 @@ } function getCharacteristicByCustomizations(debug, value, rowID, attribute) { - const characteristics = (attribute == 'sixthsense') ? [`attrsrc`, `danger`, `dimensions`, `elements`, `emotions`, `extraplanarbeings`, `illusions`, `morality`, `objects`, `placesofpower`, `uniquephenomena`] : - (attribute == 'undetectable') ? [`hearing`, `sight`, `smell`, `taste`, `touch`, `echolocation`, `infrasound`, `radio`, `ultrasound`, `infrared`, `ultraviolet`, `x-ray`, `odorant`, `tastant`, `magnetic`, `radiation`, `seismic`, `thermal`] : - (attribute == 'controlenvironment') ? [`arid`, `clouds`, `cold`, `darkness`, `heat`, `humidity`, `light`, `liquid`, `gaseous`, `smell`, `sound`, `storms`, `unique`, `vacuum`] : - (attribute == "specialmovement") ? [`balance`, `catlike`, `fast`, `lightfooted`, `slithering`, `swinging`, `untrackable`, `wallbouncing`, `wallcrawling`, `waterwalking`, `zendirection`] : - []; + const characteristics = + (attribute == 'sixthsense') ? sixthsense_phenomena_array : + (attribute == 'undetectable') ? undetectable_methods_array : + (attribute == 'controlenvironment') ? controlable_environments_array : + (attribute == 'specialmovement') ? special_movements_array : []; + console.log(`[getCharacteristicByCustomizations(${attribute})] result:`); console.log(characteristics); + var result = []; - if (characteristics && characteristics.length > 0) { + if (characteristics && _.isArray(characteristics)) { _.each(characteristics, (characteristic) => { if (getCustomizationValue(debug, value, rowID, 'rank', characteristic) > 0) { let fetch = ''; - if (/(attrsrc|objects|uniquephenomena)/i.test(characteristic)) { + if (characteristic == "attrsrc" || + characteristic == "objects" || + characteristic == "uniquephenomena") { + //if (/(attrsrc|objects|uniquephenomena)/i.test(characteristic)) { fetch = capital(value[`repeating_attr_${rowID}_${characteristic}`]); } else if (characteristic == "unique") { fetch = capital(getCustomizationValue(debug, value, rowID, 'type', characteristic)); @@ -9332,6 +10417,12 @@ break; case 'stat': setStatButtonStatsAndRolls(debug, eventInfo, value, rowID, sourceAttr, setObj); + /* + type = '{{statroll=1}}'; + title = '{{title=Stat Roll}}'; + stat = `{{stat=${}}}`; + base = statBase; + */ break; } result = `${result} ${type} ${title} ${stat} ` + @@ -9344,8 +10435,8 @@ } function setAttrCustomizations(debug, value, rowID, setObj) { - let attribute = value[`repeating_attr_${rowID}_attribute`], - obj = { + const attribute = value[`repeating_attr_${rowID}_attribute`]; + const obj = { "absorption": 6, "armor": 2, "change state": 17, @@ -9353,12 +10444,15 @@ "connected": 16, "control environment": 39, "conversion": 7, + "dimension walk": 40, "dynamic powers": 8, + "exorcism": 41, "flight": 11, "forcefield": 12, - "illusion": 13, "ground speed": 14, + "healing": 42, "heightened senses": 37, + "illusion": 13, "massive damage": 15, "merge": 10, "metamorphosis": 18, @@ -9366,11 +10460,14 @@ "mind control": 20, "nullify": 21, "plant control": 22, + "portal": 43, "power flux": 36, + "power variation": 44, "resilient": 23, "projection": 24, "regeneration": 25, "reincarnation": 26, + "sensory block": 45, "shield": 27, "sixth sense": 38, "size change": 28, @@ -9383,12 +10480,18 @@ "transmute": 34, "unaffected": 3, "undetectable": 9, + "unique attribute": 46, + "unknown power": 47, "weapon": 35, "default": 1 - }, - result = (obj[attribute] || obj["default"]); + }; + const result = (obj[attribute] || obj["default"]); if (debug) console.log(`[setAttrCustomizations(${attribute})] result = ${result}`); - if (`${attribute}` == "defect") { setObj[`repeating_attr_${rowID}_attrdefecttoggle`] = 1; } else { setObj[`repeating_attr_${rowID}_attrdefecttoggle`] = 0; } + if (`${attribute}` == "defect") { + setObj[`repeating_attr_${rowID}_attrdefecttoggle`] = 1; + } else { + setObj[`repeating_attr_${rowID}_attrdefecttoggle`] = 0; + } setObj[`repeating_attr_${rowID}_enhancementtab`] = result; setObj[`repeating_attr_${rowID}_limitertab`] = result; } @@ -9424,8 +10527,8 @@ 'showaugmentedstat', 'showcapacitytype', 'showcollectiontype', - 'showconditions', - 'showconversiontype', + 'showconversiontype', + 'showdamagecategory', 'showdamagetype', 'showdefect', 'showdefenseclass', @@ -9434,7 +10537,9 @@ 'showimmunityrole', 'showseeinto', 'showskillgroup', - 'showsupersense', + 'showsupersense', + 'showunaffected', + 'showunaffectedweapon', 'showvariablestat', 'showweaponclass' ]; @@ -9466,10 +10571,13 @@ case attribute == 'powervariation' && setting == 'showvariablestat': set = 1; break; case attribute == 'rangeddefense' && setting == 'showdefenseclass': set = 1; break; case attribute == 'regeneration' && setting == 'showcollectiontype': set = 1; break; - case attribute == 'resilient' && setting == 'showconditions': set = 1; break; + //case attribute == 'resilient' && setting == 'showdamagetype': set = 1; break; case attribute == 'skill' && setting == 'showskillgroup': set = 1; break; case attribute == 'supersense' && setting == 'showsupersense': set = 1; break; case attribute == 'transmute' && setting == 'showvariablestat': set = 1; break; + case attribute == 'unaffected' && setting == 'showunaffected': set = 1; break; + case attribute == 'unaffected' && setting == 'showattrsrc': set = 1; break; + //case attribute == 'unaffected' && setting == 'showunaffectedweapon': set = 1; break; case attribute == 'weapon' && setting == 'showdamagetype': set = 1; break; case attribute == 'weapon' && setting == 'showweaponclass': set = 1; break; default: set = 0; @@ -9479,12 +10587,14 @@ }); } - function exposeAttrSettingsOnCustomizationChange(debug, eventInfo, source, sourceAttr, setObj) { - const rank = parseInt(eventInfo.newValue), - attr = (/enhancement/i.test(sourceAttr)) ? sourceAttr.substring(11) : (/limiter/i.test(sourceAttr)) ? sourceAttr.substring(7) : `default`, - attribute = attr.replace(/\s+/g, ''); - var set = (rank) ? 1 : 0, - result = ""; + function exposeAttrSettingsOnCustomizationChange(debug, eventInfo, source, customization, setObj) { + const rank = parseInt(eventInfo.newValue); + const attribute = getIsObject(customization) ? customization.name.replace(/\s+/g, '') : + 'default'; + //attr = (/enhancement/i.test(sourceAttr)) ? sourceAttr.substring(11) : (/limiter/i.test(sourceAttr)) ? sourceAttr.substring(7) : `default`, + //attribute = attr.replace(/\s+/g, ''); + const set = rank ? 1 : 0; + let result = ''; switch (attribute) { case `ammo`: result = `showammo`; break; case `attrsrc`: result = 'showattrsrc'; break; @@ -9496,19 +10606,43 @@ case `focuseddamage`: result = 'showweaponclass'; break; case `objects`: result = 'showobject'; break; case `specialized`: result = 'showdamagetype'; break; + case `specific`: result = 'showdamagecategory'; break; case `targeted`: result = 'showenemy'; break; case `targeteddamage`: result = 'showenemy'; break; case `uniquephenomena`: result = 'showuniquephenomena'; break; case `unpredictable`: result = `showvariablestat`; break; } if (debug) { - console.log(`[exposeAttrSettingsOnCustomizationChange(${sourceAttr})] attribute = ${attribute}`); - console.log(`[exposeAttrSettingsOnCustomizationChange(${sourceAttr})] result = ${result}`); - console.log(`[exposeAttrSettingsOnCustomizationChange(${sourceAttr})] set = ${set}`); + console.log(`[exposeAttrSettingsOnCustomizationChange()] attribute = ${attribute}`); + console.log(`[exposeAttrSettingsOnCustomizationChange()] result = ${result}`); + console.log(`[exposeAttrSettingsOnCustomizationChange()] set = ${set}`); } setObj[`${source}_${result}`] = set; } + function setAvailableDamageTypes(debug, value, rowID, setObj) { + const isWeapon = value[`repeating_attr_${rowID}_attribute`] == 'weapon' ? true : false; + if (!isWeapon) return; + const customizations = setObj[`repeating_attr_${rowID}_customizations`] || + value[`repeating_attr_${rowID}_customizations`] || []; + const isInsidious = getIsObject(getCustomizationExists('insidious', customizations)); + const isPsychic = getIsObject(getCustomizationExists('psychic', customizations)); + setObj[`repeating_attr_${rowID}_normaldamage`] = 0; + setObj[`repeating_attr_${rowID}_insidiousdamage`] = 0; + setObj[`repeating_attr_${rowID}_psychicdamage`] = 0; + if (isInsidious && !isPsychic) { + setObj[`repeating_attr_${rowID}_insidiousdamage`] = 1; + } else if (isPsychic) { + setObj[`repeating_attr_${rowID}_psychicdamage`] = 1; + } else { + setObj[`repeating_attr_${rowID}_normaldamage`] = 1; + } + if(debug) { + console.log(`[setAvailableDamageTypes()] isInsidious = ${isInsidious}`); + console.log(`[setAvailableDamageTypes()] isPsychic = ${isPsychic}`); + } + } + function setProtection(isActive, debug, value, rowID, sourceAttr, attribute, setObj) { const name = (isActive) ? value[`repeating_attr_${rowID}_name`] : ''; const elevel = parseInt(value[`repeating_attr_${rowID}_effectivelevel`]) || 0; @@ -9929,27 +11063,26 @@ function setAttrdb(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj) { const name = value[`repeating_attr_${rowID}_name`] || ""; const level = parseInt(value[`repeating_attr_${rowID}_effectivelevel`]) || 0; - const length = (attrdb[`${attribute}`] == undefined) ? + const length = attrdb[`${attribute}`] === undefined ? 0 : attrdb[`${attribute}`].length; + const customizations = value[`repeating_attr_${rowID}_customizations`] || []; let result = {}; let stat = 0; let focused = 0; let defense = 0; let targeted = 0; let damagetype = ''; - let customizations = []; switch (attribute) { case 'augmented': stat = value[`repeating_attr_${rowID}_augmentedstat`] || ""; - result = { level: level, focus: stat, source: rowID }; + result = { name: name, attribute: attribute, level: level, focus: stat, source: rowID }; break; case `combattechnique`: - customizations = value[`repeating_attr_${rowID}_customizations`] || []; - result = { subattrs: getSubAttrs(debug, customizations, attribute), source: rowID }; + result = { name: name, attribute: attribute, subattrs: getSubAttrs(debug, customizations, attribute), source: rowID }; break; case `enemyattack`: case `enemydefense`: - result = { level: level, targeted: 1, source: rowID }; + result = { name: name, attribute: attribute, level: level, targeted: 1, source: rowID }; break; case `attackmastery`: case `defensemastery`: @@ -9960,25 +11093,27 @@ case `superstrength`: case `tough`: case `unassailable`: - result = { level: level, source: rowID }; + result = { name: name, attribute: attribute, level: level, source: rowID }; break; case `meleeattack`: case `rangedattack`: case `meleedefense`: focused = value[`repeating_attr_${rowID}_weaponclass`] || ""; - result = { level: level, focus: focused, source: rowID }; + result = { name: name, attribute: attribute, level: level, focus: focused, source: rowID }; break; case `rangeddefense`: defense = value[`repeating_attr_${rowID}_defenseclass`] || ""; - result = { level: level, focus: defense, source: rowID }; + result = { name: name, attribute: attribute, level: level, focus: defense, source: rowID }; break; case `massivedamage`: targeted = getCustomizationValue(debug, value, rowID, 'rank', "targeteddamage") || 0; focused = value[`repeating_attr_${rowID}_weaponclass`] || ""; - result = { level: level, targeted: targeted, focus: focused, source: rowID }; + result = { name: name, attribute: attribute, level: level, targeted: targeted, focus: focused, source: rowID }; break; case `heightenedsenses`: result = { + name: name, + attribute: attribute, senses: [ { name: 'sight', @@ -10005,8 +11140,7 @@ }; break; case `shield`: - customizations = value[`repeating_attr_${rowID}_customizations`] || []; - result = { name: name, level: level, source: rowID, customizations: customizations }; + result = { name: name, attribute: attribute, level: level, source: rowID, customizations: customizations }; break; case `telekinesis`: case `swarm`: @@ -10019,10 +11153,12 @@ attribute == 'telekinesis' ? 'blunt' : value[`repeating_attr_${rowID}_damagetype`]; - customizations = value[`repeating_attr_${rowID}_customizations`] || []; - result = { name: name, level: level, focus: focused, damagetype: damagetype, source: rowID, customizations: customizations }; + result = { name: name, attribute: attribute, level: level, focus: focused, damagetype: damagetype, source: rowID, customizations: customizations }; break; - default: result = {}; + case 'unaffected': + + break; + default: result = { name: name, attribute: attribute, level: level, source: rowID, customizations: customizations }; } if (isActive) { attrdb[`${attribute}`][`${length}`] = result; @@ -10394,7 +11530,7 @@ } } - function setActiveAttribute(isActive, debug, value, rowID, sourceAttr, setObj, attribute, level) { + function setActiveAttribute(isActive, debug, value, rowID, attrdb, setObj, attribute, level) { const target = (attribute == 'supersense') ? `repeating_senses` : `repeating_active`; if (isActive) { const activeID = generateRowID(), @@ -10405,6 +11541,7 @@ setObj[`repeating_attr_${rowID}_source`] = source; setObj[`${target}_${activeID}_name`] = `${name} (${attribute})`; setObj[`${target}_${activeID}_characteristic`] = characteristic; + setObj[`${target}_${activeID}_description`] = buildActiveAttrTooltip(debug, attrdb, attribute, rowID); if (attribute == 'telepathy' && level > 3) { setRollable(debug, value, rowID, activeID, setObj, attribute); } else if (attribute != 'telepathy' && attribute != 'supersense') { @@ -10466,12 +11603,12 @@ case "attackmastery": case "defensemastery": setAttrdb(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj); - setActiveAttribute(isActive, debug, value, rowID, sourceAttr, setObj, attribute, level); + setActiveAttribute(isActive, debug, value, rowID, attrdb, setObj, attribute, level); break; case "augmented": setAttrdb(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj); setAugmented(isActive, debug, value, attrdb, rowID, sourceAttr, setObj); - setActiveAttribute(isActive, debug, value, rowID, sourceAttr, setObj, attribute, level); + setActiveAttribute(isActive, debug, value, rowID, attrdb, setObj, attribute, level); break; case "combattechnique": setAttrdb(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj); @@ -10479,18 +11616,18 @@ break; case "conversion": setProtection(isActive, debug, value, rowID, sourceAttr, attribute, setObj); - setActiveAttribute(isActive, debug, value, rowID, sourceAttr, setObj, attribute, level); + setActiveAttribute(isActive, debug, value, rowID, attrdb, setObj, attribute, level); break; case "defect": setDefectdb(isActive, debug, attrdb, value, rowID, setObj); setDefectEffect(isActive, debug, attrIDs, attrdb, value, rowID, setObj, attribute); - setActiveAttribute(isActive, debug, value, rowID, sourceAttr, setObj, attribute, level); + setActiveAttribute(isActive, debug, value, rowID, attrdb, setObj, attribute, level); break; case "enemyattack": case "enemydefense": setAttrdb(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj); setTargeted(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj); - setActiveAttribute(isActive, debug, value, rowID, sourceAttr, setObj, attribute, level); + setActiveAttribute(isActive, debug, value, rowID, attrdb, setObj, attribute, level); break; case "energized": setAttrdb(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj); @@ -10500,14 +11637,14 @@ case "extradefenses": setAttrdb(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj); setExtraActions(debug, attrdb, attribute, setObj); - setActiveAttribute(isActive, debug, value, rowID, sourceAttr, setObj, attribute, level); + setActiveAttribute(isActive, debug, value, rowID, attrdb, setObj, attribute, level); break; case "extraarms": setExtraArms(isActive, debug, extraarmIDs, value, rowID, sourceAttr, setObj); break; case "heightenedawareness": setAttrdb(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj); - setActiveAttribute(isActive, debug, value, rowID, sourceAttr, setObj, attribute, level); + setActiveAttribute(isActive, debug, value, rowID, attrdb, setObj, attribute, level); break; case "heightenedsenses": setAttrdb(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj); @@ -10520,14 +11657,14 @@ case "rangeddefense": setAttrdb(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj); setTargeted(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj); - setActiveAttribute(isActive, debug, value, rowID, sourceAttr, setObj, attribute, level); + setActiveAttribute(isActive, debug, value, rowID, attrdb, setObj, attribute, level); break; case "powerflux": case "powervariation": setPoolMax(isActive, value, attrIDs, sectionName, rowID, setObj); convertAttrGroupCost(isActive, value, sectionName, attrIDs, rowID, setObj); setPoolActive(isActive, value, sectionName, setObj); - setActiveAttribute(isActive, debug, value, rowID, sourceAttr, setObj, attribute, level); + setActiveAttribute(isActive, debug, value, rowID, attrdb, setObj, attribute, level); break; case "shield": setProtection(isActive, debug, value, rowID, sourceAttr, attribute, setObj); @@ -10543,25 +11680,25 @@ setDerivedValue(debug, attrdb, value, setObj, 'social'); break; case "specialmovement": - setActiveAttribute(isActive, debug, value, rowID, sourceAttr, setObj, attribute, level); + setActiveAttribute(isActive, debug, value, rowID, attrdb, setObj, attribute, level); break; case "socialmastery": case "superstrength": setAttrdb(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj); - setActiveAttribute(isActive, debug, value, rowID, sourceAttr, setObj, attribute, level); + setActiveAttribute(isActive, debug, value, rowID, attrdb, setObj, attribute, level); break; case "swarm": setAttrdb(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj); setSwarmCritters(isActive, debug, value, attrdb, rowID, setObj); setWeapon(isActive, debug, value, extraarmIDs, rowID, sourceAttr, setObj, attrdb, attribute); - setActiveAttribute(isActive, debug, value, rowID, sourceAttr, setObj, attribute, level); + setActiveAttribute(isActive, debug, value, rowID, attrdb, setObj, attribute, level); break; case "telekinesis": if (level > 1) { setAttrdb(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj); setWeapon(isActive, debug, value, extraarmIDs, rowID, sourceAttr, setObj, attrdb, attribute); } - setActiveAttribute(isActive, debug, value, rowID, sourceAttr, setObj, attribute, level); + setActiveAttribute(isActive, debug, value, rowID, attrdb, setObj, attribute, level); break; case "tough": setAttrdb(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj); @@ -10576,7 +11713,8 @@ setWeapon(isActive, debug, value, extraarmIDs, rowID, sourceAttr, setObj, attrdb, attribute); break; default: - setActiveAttribute(isActive, debug, value, rowID, sourceAttr, setObj, attribute, level); + setAttrdb(isActive, debug, value, attrdb, attrIDs, rowID, sourceAttr, attribute, setObj); + setActiveAttribute(isActive, debug, value, rowID, attrdb, setObj, attribute, level); } if (debug) console.log(`[setAttrEffects(${sourceAttr})] attribute = ${attribute}`); setObj.attrdb = JSON.stringify(attrdb); @@ -10784,71 +11922,160 @@ function getCustomizationValue(debug, value, rowID, type, customization) { // type = 'rank' || 'name'; - const customizations = value[`repeating_attr_${rowID}_customizations`] || [], - match = customizations.find((o) => { - if (o.name === customization) return o; - }), - result = match === undefined ? 0 : match[`${type}`]; + const customizations = value[`repeating_attr_${rowID}_customizations`] || []; + const match = customizations.find((o) => { + if (o.name === customization) return true; + }); + const result = match === undefined ? 0 : match[`${type}`]; if (debug) console.log(`[getCustomizationValue(${customization})] ${type} = ${result}`); return result; } function setCustomization(debug, eventInfo, value, rowID, customization, setObj) { const rank = parseInt(eventInfo.newValue); - let customizations = setObj[`repeating_attr_${rowID}_customizations`] || value[`repeating_attr_${rowID}_customizations`] || []; - if (!customizations.length) { - customizations[0] = { "name": customization, "rank": rank }; //create array with first entry + let customizations = + value[`repeating_attr_${rowID}_customizations`] || []; + if (!customizations.length) {//create array with first entry + customizations[0] = + { "name": customization.name, "rank": rank, "type": customization.type }; } else { const result = customizations.find((o, i) => { - if (o.name === customization) { - if (rank > 0) { - //update existing element - customizations[i] = { "name": customization, "rank": rank }; - } else { - //remove existing element + if (o.name === customization.name) { + if (rank > 0) {//update existing element + customizations[i] = + { "name": customization.name, "rank": rank, "type": customization.type }; + } else {//remove existing element customizations.splice(i, 1); } return true; } }); - if (result === undefined) customizations[customizations.length] = { "name": customization, "rank": rank }; //add new + if (result === undefined) {//add new + customizations[customizations.length] = + { "name": customization.name, "rank": rank, "type": customization.type }; + } + } + if (debug) { + console.log(`[setCustomization(${customization.name})] customizations:`); + console.log(customizations); } setObj[`repeating_attr_${rowID}_customizations`] = customizations; + } + + function setUnaffectedWeapons(debug, eventInfo, value, rowID, customization, setObj) { + const attribute = getIsObject(customization) ? customization.name : 'default'; + console.log(`[setUnaffectedWeapons()] attribute = ${attribute}`); + + if (attribute != 'allweapons') return; + const rank = parseInt(eventInfo.newValue); + console.log(`[setUnaffectedWeapons()] rank = ${rank}`); + + const unaffectedattributes = value[`repeating_attr_${rowID}_unaffectedattributes`] || []; + console.log(`[setUnaffectedWeapons()] unaffectedattributes:`); console.log(unaffectedattributes); + + const hasWeapon = unaffectedattributes.length ? + unaffectedattributes.indexOf('Weapon') >= 0 ? + true : false : + false; + console.log(`[setUnaffectedWeapons()] hasWeapon = ${hasWeapon}`); + + const showWeapons = hasWeapon ? + rank ? + setObj[`repeating_attr_${rowID}_showunaffectedweapon`] = 0 : + setObj[`repeating_attr_${rowID}_showunaffectedweapon`] = 1 : + false; + if(debug) console.log(`[setUnaffectedWeapons()] showWeapons = ${showWeapons}`); + } + + function setUnaffectedAttributes(debug, eventInfo, value, rowID, setObj) { + const attribute = eventInfo.htmlAttributes.value; + console.log(`[setUnaffectedAttributes()] attribute = ${attribute}`); + + const state = parseInt(setObj[`repeating_attr_${rowID}_${removeWhiteSpace(attribute)}state`]); + console.log(`[setUnaffectedAttributes()] state = ${state}`); + + const unaffectedattributes = value[`repeating_attr_${rowID}_unaffectedattributes`] || []; + console.log(`[setUnaffectedAttributes()] unaffectedattributes:`); + console.log(unaffectedattributes); + + const isAllWeapons = getCustomizationValue(debug, value, rowID, 'rank', 'allweapons') > 0 ? + true : false; + + const setUnaffectedAttribute = state ? + unaffectedattributes.push(capital(attribute)) : + unaffectedattributes.splice(unaffectedattributes.indexOf(capital(attribute)), 1); + + const showWeapons = attribute == 'weapon' ? state && !isAllWeapons ? + setObj[`repeating_attr_${rowID}_showunaffectedweapon`] = 1 : + setObj[`repeating_attr_${rowID}_showunaffectedweapon`] = 0 : + false; + if (debug) { - console.log(`[setCustomization(${customization})] customizations:`); console.log(customizations); + console.log(`[setUnaffectedAttributes()] unaffectedattributes:`); + console.log(unaffectedattributes); } + setObj[`repeating_attr_${rowID}_unaffectedattributes`] = unaffectedattributes; } function isEmpty(str) { return (!str || str.length === 0); } - function setEffectiveLevelByCustomization(debug, eventInfo, value, type, rowID, setObj) { - const newAssignment = parseInt(eventInfo.newValue) || 0, - prevAssignment = (parseInt(eventInfo.previousValue) == newAssignment) ? 0 : parseInt(eventInfo.previousValue) || 0, - diffAssignment = newAssignment - prevAssignment, - enhancements = parseInt(setObj[`repeating_attr_${rowID}_enhancementassignments`]) || parseInt(value[`repeating_attr_${rowID}_enhancementassignments`]) || 0, - limiters = parseInt(setObj[`repeating_attr_${rowID}_limiterassignments`]) || parseInt(value[`repeating_attr_${rowID}_limiterassignments`]) || 0, - level = parseInt(setObj[`repeating_attr_${rowID}_level`]) || parseInt(value[`repeating_attr_${rowID}_level`]) || 0, - customization = (type == "enhancement") ? enhancements + diffAssignment : limiters + diffAssignment, - effectivelevel = (type == "enhancement") ? level - (enhancements + diffAssignment) + limiters : level - enhancements + (limiters + diffAssignment); - setObj[`repeating_attr_${rowID}_${type}assignments`] = customization; - setObj[`repeating_attr_${rowID}_effectivelevel`] = effectivelevel; - if (debug) { - console.log(`[setEffectiveLevelByCustomization(${type})] isEmpty(eventInfo.newValue) = ${isEmpty(eventInfo.newValue)}`); - console.log(`[setEffectiveLevelByCustomization(${type})] newAssignment = ${newAssignment}`); - console.log(`[setEffectiveLevelByCustomization(${type})] isEmpty(eventInfo.previousValue) = ${isEmpty(eventInfo.previousValue)}`); - console.log(`[setEffectiveLevelByCustomization(${type})] prevAssignment = ${prevAssignment}`); - console.log(`[setEffectiveLevelByCustomization(${type})] diffAssignment = ${diffAssignment}`); - console.log(`[setEffectiveLevelByCustomization(${type})] enhancements = ${enhancements}`); - console.log(`[setEffectiveLevelByCustomization(${type})] limiters = ${limiters}`); - console.log(`[setEffectiveLevelByCustomization(${type})] level = ${level}`); - console.log(`[setEffectiveLevelByCustomization(${type})] customization = ${customization}`); - console.log(`[setEffectiveLevelByCustomization(${type})] effectivelevel = ${effectivelevel}`); - console.log(`[setEffectiveLevelByCustomization(${type})] value:`); console.log(value); - } + function getCustomizationTypeTotal(debug, customizations, type) { + const result = _.chain(customizations) + .map(c => { + const typematch = type => c.type == type ? c.rank : 0; + return typematch(type); + }) + .reduce((memo, num) => { return memo + num; }, 0) + .value(); + if(debug) console.log(`[getCustomizationTypeTotal(${type})] result = ${result}`); + return result; } + function setEffectiveLevelByCustomization(debug, eventInfo, value, customization, rowID, setObj) { + //const newAssignment = parseInt(eventInfo.newValue) || 0; + //const prevAssignment = parseInt(eventInfo.previousValue) == newAssignment ? + // 0 : parseInt(eventInfo.previousValue) || 0; + //const diffAssignment = newAssignment - prevAssignment; + const customizations = setObj[`repeating_attr_${rowID}_customizations`] || []; + const enhancements = getCustomizationTypeTotal(debug, customizations, 'enhancement'); + //parseInt(customization.enhancements); + //parseInt(setObj[`repeating_attr_${rowID}_enhancementassignments`]) || + //parseInt(value[`repeating_attr_${rowID}_enhancementassignments`]) || + //0; + const limiters = getCustomizationTypeTotal(debug, customizations, 'limiter'); + //parseInt(customization.limiters); + //parseInt(setObj[`repeating_attr_${rowID}_limiterassignments`]) || + //parseInt(value[`repeating_attr_${rowID}_limiterassignments`]) || + //0; + const level = + //parseInt(setObj[`repeating_attr_${rowID}_level`]) || + parseInt(value[`repeating_attr_${rowID}_level`]) || + 0; + //const assignments = (customization.type == "enhancement") ? + //enhancements :// + diffAssignment : + //limiters; // + diffAssignment; + const effectivelevel = //(customization.type == "enhancement") ? + //level - (enhancements + diffAssignment) + limiters : + //level - enhancements + (limiters + diffAssignment); + level + limiters - enhancements; + if (debug) { + //console.log(`[setEffectiveLevelByCustomization()] isEmpty(eventInfo.newValue) = ${isEmpty(eventInfo.newValue)}`); + //console.log(`[setEffectiveLevelByCustomization()] newAssignment = ${newAssignment}`); + //console.log(`[setEffectiveLevelByCustomization()] isEmpty(eventInfo.previousValue) = ${isEmpty(eventInfo.previousValue)}`); + //console.log(`[setEffectiveLevelByCustomization()] prevAssignment = ${prevAssignment}`); + //console.log(`[setEffectiveLevelByCustomization()] diffAssignment = ${diffAssignment}`); + console.log(`[setEffectiveLevelByCustomization()] enhancements = ${enhancements}`); + console.log(`[setEffectiveLevelByCustomization()] limiters = ${limiters}`); + console.log(`[setEffectiveLevelByCustomization()] level = ${level}`); + //console.log(`[setEffectiveLevelByCustomization()] assignments = ${assignments}`); + console.log(`[setEffectiveLevelByCustomization()] effectivelevel = ${effectivelevel}`); + } + //setObj[`repeating_attr_${rowID}_${customization.type}assignments`] = assignments; + setObj[`repeating_attr_${rowID}_effectivelevel`] = effectivelevel; + } + /* function setEnhancement(debug, eventInfo, value, rowID, enhancement, setObj) { let enhancements = value[`repeating_attr_${rowID}_enhancements`] || []; const cust = getCustomizationExists(customization, customizations); @@ -10863,7 +12090,7 @@ setObj[`repeating_attr_${rowID}_customizations`] = customizations; if (debug) { console.log(`[getCustomization(${customization})] customizations:`); console.log(customizations); } } - + */ function setDamageType(debug, source, sourceAttr, setObj) { const hasDamageType = /(weapon|armor)/i.test(`${sourceAttr}`); let setDamageType = (hasDamageType) ? 0 : 1; @@ -10973,29 +12200,66 @@ return result; } - function getRange(debug, attrdb, customization, selection) { - console.log(`[getRange()] selection = ${selection}`); - const extended = - getSumOfActiveSubAttrRanks(attrdb, 'combattechnique', 'extendedrange') || - 0; + function getRange(debug, attrdb, customization, selection, isweapon = true) { + const rank = parseInt(customization.rank); + const extended = isweapon ? + getSumOfActiveSubAttrRanks(attrdb, 'combattechnique', 'extendedrange') > 0 ? + 1 : 0 : 0; const rangeobj = { 1:3, 2:10, 3:100, 4:1000, 5:10000, - 6:100000 + 6:100000, + 7:1000000, + 8:10000000, + 9:100000000, + 10:1000000000 }; - const distance = - `${Math.round(((rangeobj[customization.rank] || - 0) * (extended + 1)) * getRangeDistance(debug, selection))}` || - "0"; - const length = distance.length; - const range = length > 3 ? - `${parseInt(distance)/1000} km` : - `${distance} m`; - if(debug) console.log(`[getRange()] range = ${range}`); - return range; + const baserange = rank > 10 ? + 1000000000 * (10 * (rank - 10)) : + rangeobj[rank] || 0; + const actualrange = + `${Math.round((baserange * (extended + 1)) * getRangeDistance(debug, selection))}`; + const length = actualrange.length; + const result = + length > 6 ? + `${parseInt(actualrange)/1000000}M km` : + length > 3 ? + `${parseInt(actualrange)/1000} km` : + `${actualrange} m`; + if(debug) console.log(`[getRange()] result = ${result}`); + return result; + } + + function getDuration(debug, rank) { + const durationobj = { + 1:'10 minutes (weapons 2 rounds)', + 2:'1 hour (weapons 5 rounds)', + 3:'1 day (weapons 10 rounds)', + 4:'1 week (weapons 1 minute)', + 5:'1 month (weapons 1 hour)', + 6:'1 season (weapons 1 day)', + 7:'1 year (weapons 1 week)', + 8:'10 years (weapons 1 month)', + 9:'100 years (weapons 1 year)', + 10:'Permanent or 1000 years (weapons 10 years)' + }; + const getUnits = units => (10 * (rank - 10)) * units; + const result = rank > 10 ? + `${getUnits(1000)} years (weapons ${getUnits(10)} years)` : + durationobj[rank] || 0; + if(debug) console.log(`[getDuration()] result = ${result}`); + return result; + } + + function getTargets(debug, rank) { + const mod = get1or2andHalfor5(rank); + const targets = Math.floor(mod * (10 ^ Math.floor(rank / 3))); + const result = `Affect up to ${targets} Targets at once`; + if(debug) console.log(`[getDuration()] result = ${result}`); + return result; } function getAmmoMax(debug, rank) { @@ -11081,18 +12345,6 @@ case 'ammo': setObj.weapon_ammo_autofire = 1; setObj.weapon_ammo = 1; - /* - const ammostate = parseInt(value[`repeating_attr_${weapon}_ammostate`]); - const ammo = isNaN(ammostate) ? - getAmmoMax(debug, customization.rank) : - ammostate; - const capacitystate = parseInt(value[`repeating_attr_${weapon}_capacitystate`]); - const capacity = isNaN(capacitystate) ? - parseInt(value[`repeating_attr_${weapon}_capacity`]) : - capacitystate; - setObj.weapon_ammo_reloads = ammo; - setObj.weapon_ammo_capacity = capacity; - */ break; case 'autofire': setObj.weapon_ammo_autofire = 1; @@ -11100,7 +12352,7 @@ break; case 'range': const selection = customization.rank > 2 ? - parseInt(setObj.static_weapon_range_selection) || + //parseInt(setObj.static_weapon_range_selection) || parseInt(value.static_weapon_range_selection) || 1 : 1; @@ -11108,7 +12360,324 @@ setRange(debug, attrdb, customization, selection, setObj); break; } - }) + }); + } + + function getStatByAttr(debug, defectdb, attribute) { + const attrs_stat_obj = { + 'absorption':['body','con'], + 'alternate form':['body','con'], + 'alternate identity':['body','dex'], + 'change state':['body','str'], + 'cognition':['mind','per'], + 'connected':['soul','awa'], + 'control environment':['soul','wil'], + 'conversion':['body','con'], + 'data access':['mind','rea'], + 'dimension walk':['soul','wil'], + 'elasticity':['body','agi'], + 'exorcism':['soul','com'], + 'extra defenses':['mind','per'], + 'flight':['body','agi'], + 'force field':['body','str'], + 'ground speed':['body','agi'], + 'healing':['soul','wil'], + 'heightened awareness':['mind','per'], + 'heightened senses':['mind','per'], + 'illusion':['mind','cre'], + 'immovable':['body','str'], + 'immunity':['body','con'], + 'immutable':['body','con'], + 'inspire':['soul','cha'], + 'jumping':['body','agi'], + 'metamorphosis':['soul','wil'], + 'mimic':['mind','per'], + 'mind control':['mind','int'], + 'mind shield':['mind','int'], + 'minions':['soul','cha'], + 'mulligan':['soul','com'], + 'nullify':['soul','wil'], + 'plant control':['mind','cre'], + 'portal':['soul','wil'], + 'projection':['mind','cre'], + 'regeneration':['body','con'], + 'reincarnation':['soul','com'], + 'resilient':['body','con'], + 'sensory block':['mind','per'], + 'shield':['body','str'], + 'sixth sense':['soul','awa'], + 'size change':['body','con'], + 'spaceflight':['body','agi'], + 'special movement':['body','agi'], + 'summon creatures':['mind','int'], + 'supersense':['mind','per'], + 'superspeed':['body','agi'], + 'superstrength':['body','str'], + 'swarm':['mind','per'], + 'telekinesis':['mind','int'], + 'telepathy':['mind','int'], + 'teleport':['mind','per'], + 'transfer':['soul','wil'], + 'transmute':['soul','wil'], + 'tunnelling':['body','agi'], + 'unaffected':['body','con'], + 'undetectable':['body','con'], + 'water speed':['body','agi'] + }; + const isUsingMajorAspects = getIsUsingMajorAspects (debug, defectdb) ? 1 : 0; + const stat = attrs_stat_obj[`${attribute}`] || []; + const result = stat.length > 0 ? stat[isUsingMajorAspects] : ''; + return result; + } + + function getIsUsingMajorAspects (debug, defectdb) { + const isMajorAspect = _.chain(defectdb) + .map(defect => { + const rank = defect.name == 'shortcoming' ? + parseInt(defect.rank) : 0; + return rank; + }) + .reduce((memo, num)=>{ return memo + num; }, 0) + .value(); + const result = isMajorAspect > 0 ? true : false; + if(debug) console.log(`[getIsUsingMajorAspects()] result = ${result}`); + return result; + } + + function getAttrStandardEnhancements(debug, attribute) { + const standard_enhancements_obj = { + 'controlenvironment':['area','duration','range'], + 'dimensionwalk':['area'], + 'dynamicpowers':['area','duration','range','targets'], + 'exorcism':['area','range','targets'], + 'forcefield':['area','duration','range'], + 'healing':['area','range','targets'], + 'illusion':['area','duration','range','targets'], + 'merge':['duration'], + 'metamorphosis':['area','duration','range','targets'], + 'mimic':['duration','range'], + 'mindcontrol':['area','duration','range','targets'], + 'nullify':['area','duration','range','targets'], + 'plantcontrol':['duration'], + 'portal':['area','duration','range','targets'], + 'powerflux':['area','duration','range','targets'], + 'powervariation':['area','duration','range','targets'], + 'projection':['area','duration','range'], + 'sensoryblock':['area','duration','range'], + 'sixthsense':['area'], + 'sizechange':['duration'], + 'summoncreatures':['duration'], + 'telekinesis':['area','range'], + 'telepathy':['area','range','targets'], + 'teleport':['area','range','targets'], + 'transfer':['duration','range'], + 'transmute':['duration','range','targets'], + 'uniqueattribute':['area','duration','range','targets'], + 'unknownpower':['area','duration','range','targets'], + 'weapon':['area','duration','range'], + 'default':[] + }; + const result = standard_enhancements_obj[attribute] || + standard_enhancements_obj['default']; + if(debug) console.log(`[getAttrStandardEnhancements(${attribute})] result = ${result}`); + return result; + } + + function getStandardLimiterTooltipDescription(debug, customization, rank) { + const standard_limiter_descriptions_obj = { + 'activation':[ + 'Spend one round preparing the Attribute before it is used', + 'Spend one minute preparing the Attribute before it is used', + 'Spend one hour preparing the Attribute before it is used' + ], + 'assisted':[ + 'A single assistant is required for the Attribute to function', + 'A small group of assistants (2-10) are required for the Attribute to function', + 'A large group of assistants (11-100) are required for the Attribute to function' + ], + 'backlash':[ + 'The Backlash occurs if the character fails their roll by an significant margin (6 or more)', + 'The Backlash occurs if the character fails their roll by a moderate margin (3 or more)', + 'The Backlash occurs if the character fails their roll' + ], + 'charges':[ + 'Only use the Attribute four to six times a day (or session)', + 'Only use the Attribute two or three times a day (or session)', + 'Only use the Attribute once a day (or session)' + ], + 'concentration':[ + 'Requires slight Concentration. The character can still perform ' + + 'other general actions but cannot perform any combatrelated actions ' + + 'or use other Attributes that also require Concentration', + 'Requires intense Concentration. The character can move at slow ' + + 'speeds and talk with others while using the Attribute but cannot ' + + 'perform any complex actions (including combat) or use any other Attribute', + 'Requires full Concentration. The character cannot do anything ' + + 'else while using the Attribute and must remain still to devote their ' + + 'full attention to the Attribute' + ], + 'consumable':[ + 'Focus is easy to replace', + 'Focus is hard to replace', + 'Focus is very difficult to replace' + ], + 'delay':[ + 'Delay of a few minutes before it takes full effect', + 'Delay of a few hours before it takes full effect', + 'Delay of a few days before it takes full effect' + ], + 'dependant':[ + 'Dependent Attribute does not take effect until one other Attribute is activated', + 'Dependent Attribute does not take effect until two other Attributes are activated', + 'Dependent Attribute does not take effect until three other Attribute are activated' + ], + 'deplete':[ + 'Attributes with immediate effects burn 10 Energy Points for each ' + + 'use (or attempted use); ongoing Attributes burn 10 Energy Point ' + + 'each minute of use', + 'Attributes with immediate effects burn 20 Energy Points for each ' + + 'use (or attempted use); ongoing Attributes burn 5 Energy Point ' + + 'each round of use', + 'Attributes with immediate effects burn 30 Energy Points for each ' + + 'use (or attempted use); ongoing Attributes burn 20 Energy Point ' + + 'each round of use' + ], + 'detectable':[ + 'Detectable using 1-2 methods', + 'Detectable using 3-5 methods', + 'Detectable using 6-10 methods' + ], + 'emotional':[ + 'Use requires significant Emotional investment', + 'Use requires strong Emotional investment', + 'Use requires extreme Emotional investment' + ], + 'environmental':[ + 'Adventures often take place in or near the specific environment', + 'Adventures occasionally take place in or near the specific environment', + 'Adventures rarely take place in or near the specific environment' + ], + 'equipment':[ + 'Equipment is easily portable, such as a smartphone, wagon, or spell book', + 'Equipment is awkward to move, such as a statue, portable altar, or large furniture', + 'Equipment is static, such as workshop, laboratory, or shrine' + ], + 'imbue':[ + 'Imbue 4-5 people', + 'Imbue 2-3 people', + 'Imbue 1 person' + ], + 'irreversible':[ + 'It takes several hours of work or special circumstances to enable ' + + 'the character to transform back to an earlier form', + 'It takes several hours of work or special circumstances to enable ' + + 'the character to transform back to an earlier form, and requires ' + + 'expensive or rare replacement components, ingredients, or prerequisites', + 'It takes several days of work or special circumstances to enable ' + + 'the character to transform back to an earlier form, and requires ' + + 'expensive or rare replacement components, ingredients, or prerequisites' + ], + 'localized':[ + 'Affects a large part of the body (torso, both legs or arms, etc.)', + 'Affects a small part of the body (one leg or arm, abdomen, chest, head, etc.)', + 'Affects a tiny part of the body (one hand or foot, face, groin, knee, etc.)' + ], + 'maximum':[ + 'The character’s Attribute is at Level 3-4 and always functions at ' + + 'its Maximum effectiveness', + 'The character’s Attribute is at Level 2 and always functions at ' + + 'its Maximum effectiveness', + 'The character’s Attribute is at Level 5+ and always functions at ' + + 'its Maximum effectiveness' + ], + 'object':[ + 'The Item’s Attribute still provides moderate benefit to the character', + 'The Item’s Attribute still provides slight benefit to the character', + 'The Item’s Attribute hardly provides any benefit to the character' + ], + 'permanent':[ + 'Permanent Attribute is a slight inconvenience', + 'Permanent Attribute is a minor inconvenience', + 'Permanent Attribute is a moderate inconvenience' + ], + 'recovery':[ + 'For every 1 minute the character uses the Attribute, the Recovery ' + + 'time is 1 minute before the Attribute functions again. The ' + + 'Attribute can be used for a maximum of 12 hours.', + 'For every 1 minute the character uses the Attribute, the Recovery ' + + 'time is 10 minutes before the Attribute functions again. The ' + + 'Attribute can be used for a maximum of 4 hours.', + 'For every 1 minute the character uses the Attribute, the Recovery ' + + 'time is 1 hour before the Attribute functions again. The ' + + 'Attribute can be used for a maximum of 1 hour.' + ], + 'semipermanent':[ + 'a minor inconvenience to the character; can be turned off at a ' + + 'cost of 1 Energy Points/minute', + 'a moderate inconvenience to the character; can be turned off at a ' + + 'cost of 10 Energy Points/minute', + 'a major inconvenience to the character; can be turned off at a ' + + 'cost of 10 Energy Points/round' + ], + 'unique':[ + 'imposes minor restrictions on the Attribute', + 'imposes moderate restrictions on the Attribute', + 'imposes major restrictions on the Attribute' + ], + 'unpredictable':[ + 'must make a successful average Stat roll (TN 12) to use the Attribute', + 'must make a successful difficult Stat roll (TN 15) to use the Attribute', + 'must make a successful challenging Stat roll (TN 18) to use the Attribute' + ] + }; + const standard_limiter_descriptions_array = + standard_limiter_descriptions_obj[customization] || []; + const result = rank > 0 ? + standard_limiter_descriptions_array[rank - 1] : ''; + if(debug) console.log(`[getStandardLimiterTooltipDescription()] result = ${result}`); + return result; + } + + function getCustomizationsTooltipString(debug, attrobj, attrdb) { + const base_values_obj = { + 'area':'Area: individual\n\n', + 'duration':'Duration: instant\n\n', + 'range':'Range: self or touch\n\n', + 'targets':'Targets: self or 1 target\n\n' + }; + const standard_enhancements_array = + getAttrStandardEnhancements(debug, attrobj.attribute); + const standardEnhancementsObj = standard_enhancements_array.length > 0 ? + standard_enhancements_array.reduce((o, key) => + ({ ...o, [key]: base_values_obj[key]}), {}) : + {}; + _.each(attrobj.customizations, c => { + const getRankString = rank => rank ? + c.name == 'area' || c.name == 'range' ? + getRange(debug, attrdb, c, 3, false) : + c.name == 'duration' ? + getDuration(debug, rank) : + c.name == 'targets' ? + getTargets(debug, rank) : + getStandardLimiterTooltipDescription(debug, c.name, rank) : + ''; + standardEnhancementsObj[`${c.name}`] = `${capital(c.name)}: ${getRankString(c.rank)}\n\n`; + }); + const result = _.values(standardEnhancementsObj).join(""); + if(debug) console.log(`[getCustomizationsTooltipString()] result = ${result}`); + return result; + } + + function buildActiveAttrTooltip(debug, attrdb, attribute, rowID) { + const defectdb = attrdb.defect; + const stat = getStatByAttr(debug, defectdb, attribute); + const attrobj = _.find(attrdb[`${attribute}`], attr => { + if (attr.source == rowID) return true; + }) || {}; + const customizations = getCustomizationsTooltipString(debug, attrobj, attrdb); + const result = stat.length > 0 ? `Stat: ${capital(stat)}\n\n${customizations}` : customizations; + if(debug) console.log(`[buildActiveAttrTooltip()] result = ${result}`); + return result; } function buildProtectionsString(debug, value, maneuver='') { @@ -11599,6 +13168,28 @@ }); } + function getIsCustomization(debug, sourceAttr) { + const result = + sourceAttr.includes("enhancement") || sourceAttr.includes("limiter") ? + true : false; + if(debug) console.log(`[getIsCustomization(${sourceAttr})] result = ${result}`); + return result; + } + + function getCustomizationType(debug, sourceAttr) { + const result = + sourceAttr.includes("enhancement") ? "enhancement" : + sourceAttr.includes("limiter") ? "limiter" : ""; + if(debug) console.log(`[getCustomizationType(${sourceAttr})] result = ${result}`); + return result; + } + + function getCustomizationName(debug, sourceAttr, type) { + const result = sourceAttr.replace(type, ''); + if(debug) console.log(`[getCustomizationName(${sourceAttr})] result = ${result}`); + return result; + } + function getStatStateArray(debug, value, sourceAttr, setObj, type, source = '') { const stats = type.major == 1 ? major_stats_array: allaspects_stats_array; const skill = source.length>0 ? `${source}_`: ''; @@ -11699,11 +13290,23 @@ } function buildStatButtonStatesArray() { + /* let result = []; const majorAndMinorArray = allaspects_stats_array.concat(major_stats_array); _.each(majorAndMinorArray, (stat) => { result[result.length] = `${stat.toLowerCase()}state`; }); + */ + const result = _.map(allaspects_stats_array.concat(major_stats_array), stat => { + return `${stat.toLowerCase()}state`; + }); + return result; + } + + function buildUnaffectedButtonStatesArray() { + const result = _.map(unaffected_attrs_array, m => { + return `${m}state`; + }); return result; } @@ -11721,17 +13324,24 @@ } function setStatButtonStatsAndRolls(debug, eventInfo, value, rowID, sourceAttr, setObj) { - const statButtonState = button => button == 'stat' ? - parseInt(value[`${sourceAttr}state`]) > 0 ? - setObj[`${sourceAttr}state`] = 0 : - setObj[`${sourceAttr}state`] = 1 : + const source = sourceAttr == "unaffected" ?//rowID == 'stat' || rowID == 'type' ? sourceAttr : + `repeating_attr_${rowID}_${removeWhiteSpace(eventInfo.htmlAttributes.value)}` : + sourceAttr; + const setButtonState = button => button == 'stat' || button == 'type' || + button.length == 20 ? + parseInt(value[`${source}state`]) > 0 ? + setObj[`${source}state`] = 0 : + setObj[`${source}state`] = 1 : false; - if (statButtonState(rowID) === false) return; - if (debug) console.log(`[setStatButtonStatsAndRolls(${sourceAttr})] statButtonState = ` + setObj[`${sourceAttr}state`]); - const isMajorAspectStat = button => allaspects_stats_regex.test(button) ? - setStatRoll(debug, value, sourceAttr, setObj, getStatType(value)) : major_stats_regex.test(button) ? - setStatRoll(debug, value, sourceAttr, setObj, getStatType(value)) : false; - isMajorAspectStat(eventInfo.triggerName); + if (setButtonState(rowID) === false) return; + if (debug) console.log(`[setStatButtonStatsAndRolls(${sourceAttr})] setButtonState = ` + setObj[`${source}state`]); + const type = getStatType(value); + const isMajorAspectStat = button => allaspects_stats_array.indexOf(button) >= 0 ? + setStatRoll(debug, value, sourceAttr, setObj, type) : + major_stats_array.indexOf(button) >= 0 ? + setStatRoll(debug, value, sourceAttr, setObj, type) : + false; + isMajorAspectStat(sourceAttr); } function setSkillCostBySpecilizationChange(debug, eventInfo, value, sectionName, rowID, setObj){ @@ -11891,6 +13501,8 @@ buttonsToRegister = [ "repeating_attr:setlock", "repeating_attr:activate", + "repeating_attr:options", + "repeating_attr:unaffected", "repeating_skilltemplate:addskill", "repeating_extraarm:armedstate", "repeating_skill", @@ -11905,6 +13517,7 @@ "static_button_offhand_armedstate" ].concat(statButtons), buttonString = `clicked:${buttonsToRegister.join(" clicked:")}`; + console.log(`[registerActions()] buttonString = ${buttonString}`); return buttonString; } @@ -11986,7 +13599,8 @@ console.log(`rowID = ${rowID}`); console.log(`sourceAttr = ${sourceAttr}`); - if (`${sourceType}` == `repeating` && /(costperlevel|visible|new|source|characteristic|rollable|attrdefecttoggle|damagetype)/i.test(`${sourceAttr}`)) return; + //if (`${sourceType}` == `repeating` && /(costperlevel|visible|new|source|characteristic|rollable|attrdefecttoggle|damagetype)/i.test(`${sourceAttr}`)) return; + if (sourceType == `repeating` && non_actionable_events.indexOf(sourceAttr) >= 0) return; var getAttrsString = [`show_debug_messages`]; var setObj = {}; @@ -12009,11 +13623,11 @@ getAttrsString = getAttrsString.concat(stats_array); getAttrsString = getAttrsString.concat(rolls_array); getAttrsString = getAttrsString.concat([ - `theme`, - `static_weapon_maneuver_name`, - `active_weapon`, - `static_attrgroup_selected_tab`, - `static_skillgroup_selected_tab` + 'theme', + 'static_weapon_maneuver_name', + 'active_weapon', + 'static_attrgroup_selected_tab', + 'static_skillgroup_selected_tab' ]); getAttrsString = getAttrsString.concat(size_template_values_array); getAttrsString = getAttrsString.concat(buildStatButtonStatesArray()); @@ -12039,16 +13653,19 @@ break; } if(debug){ console.log('[Changes To Sheet Values] setObj:'); console.log(setObj); } - setAttrs(setObj); + setAttrs(setObj,{silent:true}); } return; }else if (sourceType==`repeating`) { - const isCustomization = /(enhancement|limiter)/i.test(`${sourceAttr}`); - const customization = (isCustomization) ? - sourceAttr.replace(/(enhancement|limiter)/i, "") : ""; - const customizationType = - (sourceAttr.includes("enhancement")) ? "enhancement" : - (sourceAttr.includes("limiter")) ? "limiter" : ""; + const isCustomization = getIsCustomization(debug, sourceAttr);//(enhancement|limiter)/i.test(`${sourceAttr}`); + const customizationType = getCustomizationType(debug, sourceAttr); + const customization = (isCustomization) ? + { + name:`${getCustomizationName(debug, sourceAttr, customizationType)}`, + type:`${customizationType}` + } : + undefined; + sourceAttr = isCustomization ? 'customization' : sourceAttr; switch (sectionName) { case `attr`: const isNew = parseInt(value[`${source}_new`]) || 0; @@ -12057,15 +13674,8 @@ switch (sourceAttr) { case `options`: if (resetOnLocked(debug, eventInfo, value, match, rowID, setObj)) return; - if (eventInfo.newValue == '1') { - const isDefect = value[`${source}_attribute`] == 'defect' ? - true : false; - if (isDefect) { - setDefectCharacteristic(attrdb, value, rowID, setObj); - } else { - setAttrCharacteristic(debug, value, rowID, setObj); - } - } + const state = parseInt(value[`${source}_${sourceAttr}`]) > 0 ? 0: 1; + setObj[`${source}_${sourceAttr}`] = state; break; case `attribute`: if (resetOnLocked(debug, eventInfo, value, match, rowID, setObj)) return; @@ -12086,6 +13696,7 @@ setLevelElevation(eventInfo, source, `levelelevation`, setObj); setAttrCostByLevelChange(debug, attrdb, eventInfo, value, attrIDs, sectionName, rowID, sourceAttr, setObj); setEffectiveLevelByLevelChange(debug, eventInfo, value, sectionName, rowID, sourceAttr, setObj); + setAttrCharacteristic(debug, value, rowID, setObj); break; case `activate`: if (!getIsLocked(debug, value, rowID, sourceAttr)) return; @@ -12102,6 +13713,7 @@ break; case `lock`: if (resetOnActive(debug, eventInfo, value, match, rowID, setObj)) return; + if (eventInfo.newValue == "1") setObj[`${source}_options`] = 0; break; case 'defect': resetRank(value, rowID, setObj); @@ -12114,13 +13726,25 @@ case 'rank': setDefectPointsByRankChange(debug, attrdb, attrIDs, eventInfo, value, sectionName, rowID, setObj); break; + case 'customization': + exposeAttrSettingsOnCustomizationChange(debug, eventInfo, source, customization, setObj); + setCustomization(debug, eventInfo, value, rowID, customization, setObj); + setEffectiveLevelByCustomization(debug, eventInfo, value, customizationType, rowID, setObj); + setAttrCharacteristic(debug, value, rowID, setObj); + setAvailableDamageTypes(debug, value, rowID, setObj); + setUnaffectedWeapons(debug, eventInfo, value, rowID, customization, setObj); + break; + case 'unaffected': + setStatButtonStatsAndRolls(debug, eventInfo, value, rowID, sourceAttr, setObj); + setUnaffectedAttributes(debug, eventInfo, value, rowID, setObj); + break; default: - if (isCustomization) { - exposeAttrSettingsOnCustomizationChange(debug, eventInfo, source, sourceAttr, setObj); - setEffectiveLevelByCustomization(debug, eventInfo, value, customizationType, rowID, setObj); - setCustomization(debug, eventInfo, value, rowID, customization, setObj); - setAttrCharacteristic(debug, value, rowID, setObj); + const isDefect = value[`${source}_attribute`] == 'defect' ? + true : false; + if (isDefect) { + setDefectCharacteristic(attrdb, value, rowID, setObj); } + setStatButtonStatsAndRolls(debug, eventInfo, value, rowID, sourceAttr, setObj); } break; case `skill`: @@ -12178,7 +13802,7 @@ console.log('[Changes To Sheet Values] setObj:'); console.log(setObj); } - setAttrs(setObj); + setAttrs(setObj,{silent:true}); return; } else if (sourceType==`static`) { switch (sectionName) { @@ -12187,6 +13811,7 @@ case `autofire`: case `maneuver`: case `range`: + if (sectionName == 'weapon') setCombatRoll(debug, value, attrdb, value.active_weapon, sourceAttr, setObj); break; } @@ -12273,7 +13898,7 @@ break; } if(debug){ console.log('[Changes To Sheet Values] setObj:'); console.log(setObj); } - setAttrs(setObj); + setAttrs(setObj,{silent:true}); return; } else { if(debug) console.log(`[sourceType = ${sourceType}] no matching sourceType, exiting.`); diff --git a/Beacon/Assets/hp.png b/Beacon/Assets/hp.png index 5cea72757d..73a78038d2 100644 Binary files a/Beacon/Assets/hp.png and b/Beacon/Assets/hp.png differ diff --git a/Beacon/beacon.css b/Beacon/beacon.css index fa54c213cc..f174f9922d 100644 --- a/Beacon/beacon.css +++ b/Beacon/beacon.css @@ -3,8 +3,8 @@ /* overall wrapper to fix moving width issues with overflow on hidden sections */ .charsheet .sheet-overall-wrapper { - max-width: 832px; - min-width: 700px; + max-width: 830px; + min-width: 830px; } /* Tweak repeating section buttons so they have a bottom margin and dont overflow when in edit mode. */ @@ -40,21 +40,17 @@ div.sheet-maintab-content { display: none; - /*visibility: hidden; - opacity: 0; - max-height: 0; - overflow: hidden; */ } - +input.sheet-player:checked ~ div.sheet-player, input.sheet-update:checked ~ div.sheet-update, -input.sheet-player:checked ~ div.sheet-player +input.sheet-monster:checked ~ div.sheet-monster { display: block; } input.sheet-maintab { - width: 20%; + width: 15%; height: 16px; cursor: pointer; position: relative; @@ -62,24 +58,27 @@ input.sheet-maintab z-index: 9999; } -.charsheet input.sheet-maintab:checked + span.sheet-player, -.charsheet input.sheet-maintab:checked + span.sheet-update { - background: #009e73; /*GREEN*/ - color: white; - border-radius: 4px; -} - -span.sheet-maintab { +span.sheet-maintab +{ text-align: center; display: inline-block; width: 15%; height: 16px; - font-size: 9px; + font-size: 10px; background: #ce0632; /*REDish*/ color: white; font-weight: bold; border-radius: 4px; - margin-left: -20% + margin-left: -15% +} + +.charsheet input.sheet-maintab:checked + span.sheet-player, +.charsheet input.sheet-maintab:checked + span.sheet-update, +.charsheet input.sheet-maintab:checked + span.sheet-monster +{ + background: #009e73; /*GREEN*/ + color: white; + border-radius: 4px; } div.sheet-maintab-content @@ -97,7 +96,7 @@ label div font-weight: normal; } -/* Main Sheet Tabs */ +/* Player Sheet Tabs */ .charsheet div[class^="sheet-section"] { visibility: hidden; opacity: 0; @@ -117,14 +116,16 @@ label div overflow: auto; } -.charsheet input.sheet-tab99:checked ~ div[class^="sheet-section"] { +.charsheet input.sheet-tab99:checked ~ div[class^="sheet-section"] +{ max-height: 999999px; visibility: visible; opacity: 1; transition: opacity 0.5s linear 0s; } -.charsheet input.sheet-tab { +.charsheet input.sheet-tab +{ width: 87px; height: 20px; cursor: pointer; @@ -133,7 +134,8 @@ label div z-index: 9999; } -.charsheet span.sheet-tab { +.charsheet span.sheet-tab +{ text-align: center; display: inline-block; font-size: 13px; @@ -153,28 +155,30 @@ label div .charsheet input.sheet-tab3:checked + span.sheet-tab3, .charsheet input.sheet-tab4:checked + span.sheet-tab4, .charsheet input.sheet-tab5:checked + span.sheet-tab5, -.charsheet input.sheet-tab99:checked + span.sheet-tab99 { +.charsheet input.sheet-tab99:checked + span.sheet-tab99 +{ background: #009e73; color: white; border-radius: 4px; } - -/* END Main sheet tabs */ +/* END Player sheet tabs */ /* Graphic Boxes */ - -.charsheet .sheet-2colrow .sheet-col { +.charsheet .sheet-2colrow .sheet-col +{ width: calc(50% - 3px) !important; height: 32px; margin-right: 2px !important; } -.charsheet .sheet-2colrow .sheet-col:last-child { +.charsheet .sheet-2colrow .sheet-col:last-child +{ margin-right: 0 !important; } .charsheet input.sheet-AC, -.charsheet input.sheet-HP { +.charsheet input.sheet-HP +{ margin-top: 16px; margin-bottom: 34px; padding: 0px; @@ -188,7 +192,8 @@ label div border: 0; } -.charsheet input.sheet-HP2 { +.charsheet input.sheet-HP2 +{ margin-top: 16px; margin-bottom: 34px; padding: 0px; @@ -201,19 +206,19 @@ label div text-align: center; border: 1; } - -.charsheet .sheet-ACBG { +.charsheet .sheet-ACBG +{ background: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Beacon/Assets/shield.png') no-repeat 20% 0% / 6.6em auto; } -.charsheet .sheet-HPBG { +.charsheet .sheet-HPBG +{ background: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Beacon/Assets/hp.png') no-repeat 20% 0% / 6.6em auto; } -/* END Graphic Boxes */ - /* Spell Page Settings */ -.charsheet div[class^="sheet-spell-page"] { +.charsheet div[class^="sheet-spell-page"] +{ visibility: hidden; opacity: 0; max-height:0; @@ -226,14 +231,16 @@ label div .charsheet input.sheet-spelltab3:checked ~ div.sheet-spell-page3, .charsheet input.sheet-spelltab4:checked ~ div.sheet-spell-page4, .charsheet input.sheet-spelltab5:checked ~ div.sheet-spell-page5, -.charsheet input.sheet-spelltab6:checked ~ div.sheet-spell-page6 { +.charsheet input.sheet-spelltab6:checked ~ div.sheet-spell-page6 +{ max-height: 999999px; visibility: visible; opacity: 1; transition: opacity 0.5s linear 0s; } -.charsheet input.sheet-spelltab99:checked ~ div[class^="sheet-spell-page"] { +.charsheet input.sheet-spelltab99:checked ~ div[class^="sheet-spell-page"] +{ max-height: 999999px; visibility: visible; opacity: 1; @@ -254,7 +261,8 @@ label div border-radius: 4px; } -.charsheet input.sheet-spellpagetab { +.charsheet input.sheet-spellpagetab +{ width: 70px; height: 20px; cursor: pointer; @@ -263,7 +271,8 @@ label div z-index: 9999; } -.charsheet span.sheet-spellpagetab { +.charsheet span.sheet-spellpagetab +{ text-align: center; display: inline-block; font-size: 13px; @@ -290,7 +299,8 @@ div[data-groupname^="repeating_items"] .repitem, } div[data-groupname^="repeating_"] .repitem, -.sheet-zero-row { +.sheet-zero-row +{ border: 1px solid #000000; border-radius: 12px; margin-left: 1px; @@ -299,7 +309,8 @@ div[data-groupname^="repeating_"] .repitem, } div[data-groupname^="repeating_spellbook"] .repitem, -.sheet-zero-row { +.sheet-zero-row +{ border: 1px solid #000000; border-radius: 12px; margin-left: 1px; @@ -309,21 +320,24 @@ div[data-groupname^="repeating_spellbook"] .repitem, /* spell type tab Settings */ -.charsheet div[class^="sheet-spell-type"] { +.charsheet div[class^="sheet-spell-type"] +{ visibility: hidden; opacity: 0; max-height:0; overflow: hidden; } -.charsheet input.sheet-spelltypeDescription:checked ~ div.sheet-spell-type-Description { +.charsheet input.sheet-spelltypeDescription:checked ~ div.sheet-spell-type-Description +{ max-height: 999999px; visibility: visible; opacity: 1; transition: opacity 0.5s linear 0s; } -.charsheet input.sheet-spelltypeDescription:checked ~ span.sheet-spelltypeDescription { +.charsheet input.sheet-spelltypeDescription:checked ~ span.sheet-spelltypeDescription +{ background: rgb(0,158,115); color: white; border-radius: 4px; @@ -393,19 +407,6 @@ div[data-groupname^="repeating_spellbook"] .repitem, font-weight: bold; } -.charsheet .sheet-small-label { - font-size: 75%!important; - font-style: italic; - font-weight: bold; -} - -.charsheet .sheet-small-labelblue { - font-size: 75%!important; - font-style: italic; - font-weight: bold; - color: blue; -} - .charsheet .sheet-large-label { font-size: 90%!important; font-style: italic; @@ -424,46 +425,6 @@ div[data-groupname^="repeating_spellbook"] .repitem, text-align: center; } -.charsheet .sheet-hd-row { - margin-top: 5px; - font-size: 14px!important; -} - -.charsheet .sheet-pictos { - font-family: "Pictos"; - font-size: 14px; -} - -.charsheet .sheet-pictos-custom { - font-family: "Pictos Custom"; - font-size: 14px; -} - -.charsheet .sheet-pictos-three { - font-family: "Pictos Three"; - font-size: 14px; -} - -.charsheet .sheet-d6-font { - font-family: "dicefontd6"; - font-size: 14px; -} - -.charsheet .sheet-d8-font { - font-family: "dicefontd8"; - font-size: 14px; -} - -.charsheet .sheet-d10-font { - font-family: "dicefontd10"; - font-size: 14px; -} - -.charsheet .sheet-d20-font { - font-family: "dicefontd20"; - font-size: 14px; -} - .charsheet .sheet-padl, .sheet-rolltemplate-DccTabbed .sheet-padl { padding-left:10px; @@ -496,26 +457,6 @@ div[data-groupname^="repeating_spellbook"] .repitem, box-sizing: border-box; } -.sheet-border-right-dotted, - .sheet-rolltemplate-DccTabbed .sheet-border-right-dotted { - border-right: 1px dotted #000; -} - - .sheet-border-left-dotted, - .sheet-rolltemplate-DccTabbed .sheet-border-left-dotted { - border-left: 1px dotted #000; -} - - .sheet-border-top-dotted, - .sheet-rolltemplate-DccTabbed .sheet-border-top-dotted { - border-top: 1px dotted #000; -} - - .sheet-border-bottom-dotted, - .sheet-rolltemplate-DccTabbed .sheet-border-bottom-dotted { - border-bottom: 1px dotted #000; -} - .charsheet .sheet-border-right { border-right: 1px solid #000; } @@ -541,15 +482,8 @@ div[data-groupname^="repeating_spellbook"] .repitem, box-shadow: 0px -2px 0px 0px #000000 inset; } -.charsheet button.sheet-core-save, .charsheet button.sheet-core-check, .charsheet button.sheet-initiative, .charsheet button.sheet-roll { - font-size: 12px!important; -} - -.charsheet button.sheet-initiative { - height: 3em; -} - -.charsheet hr { +.charsheet hr +{ border: 0; height: 1px; background-image: -webkit-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,75.75), rgba(0,0,0,0)); @@ -559,47 +493,53 @@ div[data-groupname^="repeating_spellbook"] .repitem, margin: 5px 0; } -.charsheet span.sheet-spacer { +.charsheet span.sheet-spacer +{ display: block; margin-top: 5px; } -.charsheet .sheet-heading-row { +.charsheet .sheet-heading-row +{ text-align: center; font-weight: bold; } -.charsheet .sheet-footer-row { +.charsheet .sheet-footer-row +{ text-align: center; font-weight: bold; border-bottom: 1px solid #dddddd; margin-bottom: 5px; } -.charsheet .sheet-vert-middle { +.charsheet .sheet-vert-middle +{ vertical-align: middle!important; } -.charsheet .sheet-vert-bottom { +.charsheet .sheet-vert-bottom +{ vertical-align: bottom!important; } -.charsheet .sheet-center, -.sheet-rolltemplate-DccTabbed .sheet-center { +.charsheet .sheet-center +{ text-align: center; } -.charsheet .sheet-left, -.sheet-rolltemplate-DccTabbed .sheet-left { +.charsheet .sheet-left +{ text-align: left; } -.charsheet .sheet-right, -.sheet-rolltemplate-DccTabbed .sheet-right { +.charsheet .sheet-right +{ text-align: right; } -.charsheet .sheet-centerselect { +.charsheet .sheet-centerselect +{ margin-left: auto; margin-right: auto; display: block!important; @@ -678,12 +618,12 @@ div[data-groupname^="repeating_spellbook"] .repitem, -moz-appearance: textfield; } -.charsheet input[disabled].sheet-passive-skill-score { +/* .charsheet input[disabled].sheet-passive-skill-score { background-color: #def6fc; border-color: #ddd; cursor: not-allowed; -moz-appearance: textfield; -} +} */ .charsheet input[disabled]::-webkit-inner-spin-button, .charsheet input[disabled]::-webkit-outer-spin-button { @@ -691,22 +631,24 @@ div[data-groupname^="repeating_spellbook"] .repitem, margin: 0; } -.charsheet .sheet-small-note { +.charsheet .sheet-small-note +{ text-align: center; font-family: Arial; font-size: 10px; } -.charsheet select { +.charsheet select +{ font-size: 90%; } -.charsheet .sheet-important-text { +.charsheet .sheet-important-text +{ text-decoration: underline; color: #ff0000; } - .charsheet .sheet-sub-header { background-color: #cecece; vertical-align: bottom; @@ -738,6 +680,18 @@ div[data-groupname^="repeating_spellbook"] .repitem, .charsheet input.sheet-highlight { background-color: #ccffff; } + +/* Conditional formatting */ + +.charsheet input.sheet-redbox { + background-color: #ccffff; +} + +input.sheet-enccheck[value="1"] ~ input.sheet-redbox { + background-color: #ce0632; + color: #ffffff; + font-weight: bold; +} /* Header section */ @@ -786,21 +740,21 @@ div[data-groupname^="repeating_spellbook"] .repitem, } /* Custom Pure Grid CSS (24 cols) DO NOT EDIT BELOW THIS LINE OR RISK BREAKING FORMATTING */ -.sheet-row, -.sheet-rolltemplate-DccTabbed .sheet-row { +.sheet-row +{ letter-spacing: -0.31em; *letter-spacing: normal; *word-spacing: -0.43em; text-rendering: optimizespeed; } - .sheet-opera-only :-o-prefocus, .sheet-row, - .sheet-rolltemplate-DccTabbed .sheet-opera-only :-o-prefocus, .sheet-rolltemplate-DccTabbed .sheet-row { + .sheet-opera-only :-o-prefocus, .sheet-row +{ word-spacing: -0.43em; } - .sheet-col, - .sheet-rolltemplate-DccTabbed .sheet-col { + .sheet-col + { display: inline-block; zoom: 1; *display: inline; letter-spacing: normal; @@ -809,22 +763,9 @@ div[data-groupname^="repeating_spellbook"] .repitem, text-rendering: auto; } -.sheet-rolltemplate-DccTabbed .sheet-col-1, -.sheet-rolltemplate-DccTabbed .sheet-col-1-2,.sheet-rolltemplate-DccTabbed .sheet-col-1-3, -.sheet-rolltemplate-DccTabbed .sheet-col-1-4,.sheet-rolltemplate-DccTabbed .sheet-col-1-5, -.sheet-rolltemplate-DccTabbed .sheet-col-1-6,.sheet-rolltemplate-DccTabbed .sheet-col-1-7, -.sheet-rolltemplate-DccTabbed .sheet-col-1-8,.sheet-rolltemplate-DccTabbed .sheet-col-1-9, -.sheet-rolltemplate-DccTabbed .sheet-col-1-10,.sheet-rolltemplate-DccTabbed .sheet-col-1-11, -.sheet-rolltemplate-DccTabbed .sheet-col-1-12,.sheet-rolltemplate-DccTabbed .sheet-col-1-13, -.sheet-rolltemplate-DccTabbed .sheet-col-1-14,.sheet-rolltemplate-DccTabbed .sheet-col-1-15, -.sheet-rolltemplate-DccTabbed .sheet-col-1-16,.sheet-rolltemplate-DccTabbed .sheet-col-1-17, -.sheet-rolltemplate-DccTabbed .sheet-col-1-19,.sheet-rolltemplate-DccTabbed .sheet-col-1-21, -.sheet-rolltemplate-DccTabbed .sheet-col-1-22,.sheet-rolltemplate-DccTabbed .sheet-col-1-23, -.sheet-rolltemplate-DccTabbed .sheet-col-2-23,.sheet-rolltemplate-DccTabbed .sheet-col-1-24, -.sheet-col-1,.sheet-col-1-2,.sheet-col-1-3,.sheet-col-1-4,.sheet-col-1-5,.sheet-col-1-6, -.sheet-col-1-7,.sheet-col-1-8,.sheet-col-1-9,.sheet-col-1-10, .sheet-col-1-11,.sheet-col-1-12, -.sheet-col-1-13, .sheet-col-1-14, .sheet-col-1-15,.sheet-col-1-16,.sheet-col-1-17,.sheet-col-1-18, -.sheet-col-1-19,.sheet-col-1-20,.sheet-col-1-21,.sheet-col-1-22,.sheet-col-1-23,.sheet-col-1-24 +.sheet-col-1, .sheet-col-1-2, .sheet-col-1-3,.sheet-col-1-4, .sheet-col-1-5,.sheet-col-1-6, .sheet-col-1-7, +.sheet-col-1-8, .sheet-col-1-9,.sheet-col-1-10, .sheet-col-1-11, .sheet-col-1-12, .sheet-col-1-13, +.sheet-col-1-14, .sheet-col-1-15,.sheet-col-1-16, .sheet-col-1-17, .sheet-col-1-19 { display: inline-block; zoom: 1; @@ -835,251 +776,164 @@ div[data-groupname^="repeating_spellbook"] .repitem, text-rendering: auto; } - .sheet-col-1, - .sheet-rolltemplate-DccTabbed .sheet-col-1 { +.sheet-col-1 { display:block; } - .sheet-col-1-2, - .sheet-rolltemplate-DccTabbed .sheet-col-1-2 { +.sheet-col-1-2 { width: 50%; } - - .sheet-offset-1-2, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-2 { + .sheet-offset-1-2 { margin-left: 50%; } - .sheet-col-1-3, - .sheet-rolltemplate-DccTabbed .sheet-col-1-3 { +.sheet-col-1-3 { width: 33.33333%; } - .sheet-offset-1-3, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-3 { +.sheet-offset-1-3 { margin-left: 33.33333%; } - .sheet-col-1-4, - .sheet-rolltemplate-DccTabbed .sheet-col-1-4 { +.sheet-col-1-4 { width: 25%; } - .sheet-offset-1-4, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-4 { +.sheet-offset-1-4 { margin-left: 25%; } - .sheet-col-1-5, - .sheet-rolltemplate-DccTabbed .sheet-col-1-5 { +.sheet-col-1-5 { width: 20%; } - .sheet-offset-1-5, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-5 { +.sheet-offset-1-5 { margin-left: 20%; } - .sheet-col-1-6, - .sheet-rolltemplate-DccTabbed .sheet-col-1-6 { +.sheet-col-1-6 { width: 16.66667%; } - .sheet-offset-1-6, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-6 { +.sheet-offset-1-6 { margin-left: 16.66667%; } - .sheet-col-1-7, - .sheet-rolltemplate-DccTabbed .sheet-col-1-7 { +.sheet-col-1-7 { width: 14.28571%; } - .sheet-offset-1-7, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-7 { +.sheet-offset-1-7 { margin-left: 14.28571%; } - .sheet-col-1-8, - .sheet-rolltemplate-DccTabbed .sheet-col-1-8 { +.sheet-col-1-8 { width: 12.5%; } - .sheet-offset-1-8, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-8 { +.sheet-offset-1-8 { margin-left: 12.5%; } - .sheet-col-1-9, - .sheet-rolltemplate-DccTabbed .sheet-col-1-9 { +.sheet-col-1-9 { width: 11.11111%; } - .sheet-offset-1-9, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-9 { +.sheet-offset-1-9 { margin-left: 11.11111%; } - .sheet-col-1-10, - .sheet-rolltemplate-DccTabbed .sheet-col-1-10 { +.sheet-col-1-10 { width: 10%; } - .sheet-offset-1-10, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-10 { +.sheet-offset-1-10 { margin-left: 10%; } - .sheet-col-1-11, - .sheet-rolltemplate-DccTabbed .sheet-col-1-11 { +.sheet-col-1-11 { width: 9.09091%; } - .sheet-offset-1-11, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-11 { +.sheet-offset-1-11 { margin-left: 9.09091%; } - .sheet-col-1-12, - .sheet-rolltemplate-DccTabbed .sheet-col-1-12 { +.sheet-col-1-12 { width: 8.33333%; } - .sheet-offset-1-12, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-12 { +.sheet-offset-1-12 { margin-left: 8.33333%; } - .sheet-col-1-13, - .sheet-rolltemplate-DccTabbed .sheet-col-1-13 { + .sheet-col-1-13 { width: 7.69231%; } - .sheet-offset-1-13, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-13 { +.sheet-offset-1-13 { margin-left: 7.69231%; } - .sheet-col-1-14, - .sheet-rolltemplate-DccTabbed .sheet-col-1-14 { +.sheet-col-1-14 { width: 7.14286%; } - .sheet-offset-1-14, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-14 { +.sheet-offset-1-14 { margin-left: 7.14286%; } - .sheet-col-1-15, - .sheet-rolltemplate-DccTabbed .sheet-col-1-15 { +.sheet-col-1-15 { width: 6.66667%; } - .sheet-offset-1-15, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-15 { +.sheet-offset-1-15 { margin-left: 6.66667%; } - .sheet-col-1-16, - .sheet-rolltemplate-DccTabbed .sheet-col-1-16 { +.sheet-col-1-16 { width: 6.25%; } - .sheet-offset-1-16, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-16 { +.sheet-offset-1-16 { margin-left: 6.25%; } - .sheet-col-1-17, - .sheet-rolltemplate-DccTabbed .sheet-col-1-17 { +.sheet-col-1-17 { width: 5.88235%; } - .sheet-offset-1-17, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-17 { +.sheet-offset-1-17 { margin-left: 5.88235%; } - .sheet-col-1-18, - .sheet-rolltemplate-DccTabbed .sheet-col-1-18 { +.sheet-col-1-18 { width: 5.55556%; } - .sheet-offset-1-18, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-18 { +.sheet-offset-1-18 { margin-left: 5.55556%; } - .sheet-col-1-19, - .sheet-rolltemplate-DccTabbed .sheet-col-1-19 { +.sheet-col-1-19 { width: 5.26316%; } - .sheet-offset-1-19, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-19 { +.sheet-offset-1-19 { margin-left: 5.26316%; } - - .sheet-col-1-20, - .sheet-rolltemplate-DccTabbed .sheet-col-1-20 { - width: 5%; -} - - .sheet-offset-1-20, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-20 { - margin-left: 5%; -} - .sheet-col-1-21, - .sheet-rolltemplate-DccTabbed .sheet-col-1-21 { - width: 4.7619%; -} - - .sheet-offset-1-21, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-21 { - margin-left: 4.7619%; -} - .sheet-col-1-22, - .sheet-rolltemplate-DccTabbed .sheet-col-1-22 { - width: 4.54545%; -} - - .sheet-offset-1-22, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-22 { - margin-left: 4.54545%; -} - - .sheet-col-1-23, - .sheet-rolltemplate-DccTabbed .sheet-col-1-23 { - width: 4.34783%; -} - - .sheet-offset-1-23, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-23 { - margin-left: 4.34783%; -} - - .sheet-col-1-24, - .sheet-rolltemplate-DccTabbed .sheet-col-1-24 { - width: 4.16667%; -} - - .sheet-offset-1-24, - .sheet-rolltemplate-DccTabbed .sheet-offset-1-24 { - margin-left: 4.16667%; -} - .sheet-row-r, - .sheet-rolltemplate-DccTabbed .sheet-row-r { +.sheet-row-r { letter-spacing: -0.31em; *letter-spacing: normal; word-spacing: -0.43em; } - .sheet-opera-only :-o-prefocus, .sheet-row-r, - .sheet-rolltemplate-DccTabbed .sheet-opera-only :-o-prefocus, .sheet-rolltemplate-DccTabbed .sheet-row-r { + .sheet-opera-only :-o-prefocus, .sheet-row-r +{ word-spacing: -0.43em; } - .sheet-row-r img, - .sheet-rolltemplate-DccTabbed .sheet-row-r img { + .sheet-row-r img + img { max-width: 100%; } diff --git a/Beacon/beacon.html b/Beacon/beacon.html index fe0752cbaa..5aaf81d592 100644 --- a/Beacon/beacon.html +++ b/Beacon/beacon.html @@ -7,11 +7,13 @@
-
 
- +
 
+ Play Mode - + Update Mode + + NPC / Monster
@@ -23,7 +25,7 @@ Notes - Spellbook + Spells Show All @@ -41,18 +43,18 @@
 
-
Race
-
Class
+
Race
+
Class
Experience Points
-
Level
+
Level
 
-
+

Gender

Age

Height

Weight
-

Can Carry
+
 
@@ -67,33 +69,38 @@
+
 
 
-

.
+

.
 
-

.
+

.
-
Damage
-
Spell Fatigue
+
Damage Fatigue
+
Spell Fatigue
+
 
Armor Class
-
Current Hit Points
+
Current HP
 
-
-
Hit Die
-
Attack Bonus
-
Damage Bonus
-
# Attacks
-
Base Speed
-
Current Load
+
 
+
+
HD Type
+
Total HP
+
Speed
+
Morale
+
+ + Current Load +
@@ -229,24 +236,25 @@
-

Armor

-

Add any equipment, effects or items here that give a benefit to your Armor Class (AC). This includes Armor, shields and any magical items or spells. -
Use the checkboxes to indicate whether each row is is worn/equipped and update AC. If you have another feature that also modifies your AC then add that here too.

-
 
-

AC (worn armor)
- -
 
-

Dexerity Penalty
-
 
-

Total Speed Reduction
-
 
-

Combat Load
- -
+ +
 
+

Base Attack Bonus
+

Base Damage Bonus
+

# Attacks
+
 
+

AC (worn armor)
+

Dexerity Penalty
+

Total Speed Reduction
+
 
+

Combat Load
+
+

Armor

+

Add any equipment, effects or items here that give a benefit to your Armor Class (AC). This includes Armor, shields and any magical items or spells. +
Use the checkboxes to indicate whether each row is is worn/equipped and update AC. If you have another feature that also modifies your AC then add that here too.

@@ -284,7 +292,7 @@
-
+
Details
@@ -338,7 +346,7 @@
-
+
@@ -347,23 +355,24 @@ Details
-
Atk Mod
+
Atk Mod
Magic Mod
-
Dmg Mod
+
Dmg Mod
Type
Durability
Notes
-
+
-
-
+
+
@@ -390,9 +399,8 @@
Carried?
Ammo
-
Weapon
-
Range
-
Max Range
+
Weapon
+
Max Range
To Hit Bonus
Base Dmg
Dmg Bonus
@@ -405,8 +413,7 @@
-
-
+
@@ -414,27 +421,32 @@ Details
-
Atk Mod
+
Atk Mod
Magic Mod
-
Dmg Mod
+
Dmg Mod
+
Range
Type
Size
Durability
Notes
-
+
-
+
+
-
+
@@ -493,11 +505,14 @@

Encumbrance

-
Can Carry
-
Items
-
Combat
-
Coins
-
Total Load
+
Can Carry
+
Items
+
Combat
+
Coins
+
+ + Total Load +
 

Consumables

@@ -506,7 +521,7 @@
Field Rations
Bulk Rations
Torches
- +
Potions & Flasks
 

Money

@@ -515,7 +530,7 @@
Silver
Gold
Platinum
-
Total Silver
+
Total Silver
@@ -579,9 +594,10 @@
Max HP
Damage
AC
-
Attack Bonus
-
Attack Dmg
+
Attack Bonus
+
Attack Dmg
Ammo
+
Morale
@@ -589,27 +605,28 @@
-
-
+
+
-
-
-
-
+
+
+
+
+
Notes
Companion Notes
-
Companion Inventory
+
Companion Inventory
-
+
Load
Silver Owed
-
+
@@ -619,8 +636,8 @@
Torches/Oil
-
-
+
+
@@ -666,8 +683,15 @@
-

Spell Book

-

Magic Attack = (level +MIND bonus) vs. target DC (usually 10).

+

Spells

+
+
+
 
+
Temp Points
+
Spell Fatigue
+
Casting Bonus
+
DC to Resist
+
Level 0 @@ -684,10 +708,7 @@ Level 6 Show All -
 
-
DC to Resist
-
Spell Fatigue
- +
@@ -1007,6 +1028,9 @@
+
+
 
+
Level
@@ -1028,63 +1052,79 @@
Base
Bonus
-
+
Strength
-
-
+
+
-
+
Dexterity
-
-
+
+
-
+
Mind
-
-
+
+
-
+
Charisma
-
-
+
+
+
+
+
 
+
+
+
Rogue Skill + +

Modify Base Skills

-
 
Skill
Base
+
Bonus
-
-
 
+
Physical
-
+
+
-
-
 
+
Subterfuge
-
+
+
-
-
 
+
Knowledge
-
+
+
-
-
 
+
Communion
-
+
+
-
-
 
+
Survival
-
+
+
-
-
 
+
Crafting
-
+
+
@@ -1105,73 +1145,187 @@
+ +
+

NPC / MONSTER

+
+
+
+

Monster Name
+

Title
+
+
 
+
+
+
HD/Level
+
HD Type
+
HP
+
AC
+
Atk Mod
+
Dmg Mod
+
+
+
+
+
+
+
+
+
 
+
+
+
+
+
+
 
+

.
+
+
+
+
+
 
+

.
+
+
+
Damage
+
Spell Fatigue
+
+
+
Armor Class
+
Current Hit Points
+
+
 
+
+
Suggested HP
+
Attack Bonus
+
Base Damage
+
# Attacks
+
Speed
+
Morale
+
+
+
+
+

Notes

+
+
+
+
+
+
+
+

Rules available at: https://beacond20.blogspot.com/p/get-beacon.html

-

Sheet last updated June 2021

+

Sheet last updated January 2022

\ No newline at end of file diff --git a/Beacon/readme.md b/Beacon/readme.md index c18186fbae..192a0283de 100644 --- a/Beacon/readme.md +++ b/Beacon/readme.md @@ -35,4 +35,19 @@ Updates 2020-08: - Rename inventory text boxes - change coin weigh calculation (500:1 weight) - update inventory page with provisions and carry capcaity -- update beastman starting bonuses \ No newline at end of file +- update beastman starting bonuses + +Updates 2022-01: +-added Morale field for PCs and hirelings +-changed skill bonus calculations +-changed to hit and damage calclations to use skill +-recoded repeating fields to use getSectionIds, simpler and auto-updating. +-added small weapons (lower encumbrance) +-added small/light weapon check for rogue class +-update class starting text +-(re)added monster/npc mode sheet +-clean up unused css +-fixed encumbrance rounding, added conditional formatting +-added rogue and hunter bonus to ranged weapons +-removed str bonus from light and small weapon damage +-fixed some formatting in javascript \ No newline at end of file diff --git a/Brindlewood Bay/translations/es.json b/Brindlewood Bay/translations/es.json index 03e421c3cf..26c506d707 100644 --- a/Brindlewood Bay/translations/es.json +++ b/Brindlewood Bay/translations/es.json @@ -1,95 +1,95 @@ { - "day-move-text": "rolls The Day Move", - "night-move-text": "rolls The Night Move", - "meddling-move-text": "rolls The Meddling Move", - "occult-move-text": "rolls The Occult Move", - "cozy-move-text": "rolls The Cozy Move", - "gold-crown-mysteries-move-text": "rolls The Gold Crown Mysteries Move", - "theorize-move-text": "rolls The Theorize Move", - "advantageordisadvantage": "Advantage or Disadvantage", - "none": "None", - "advantage": "Advantage", - "disadvantage": "Disadvantage", - "selectability": "Select Ability to Use", - "theorizeStatUsed": "Number of Clues Found - Mystery Complexity", - "numberclues": "Number of Clues Found", - "mysterycomplexity": "Mystery Complexity", - "Maven": "Maven", - "Clues": " Clues ", - "CharacterName": "Character Name", - "Style": "Style", - "CozyActivity": "Cozy Activity", - "XPTrack": "XP Track", - "EndOfSession": "End of Session", - "EOSQuestion1": "Did the Murder Mavens solve a mystery?", - "EOSQuestion2": "Did you secretly undermine the authority of a local official?", - "EOSQuestion3": "Did you share your wisdom with a young person?", - "EOSQuestion4": "Did you share a memory of a late family member?", - "EOSQuestion5": "Did you behave like a woman half your age?", - "EOSQuestion6": "Did you dote on someone?", - "EOSQuestion7": "Did you show someone that you’ve “still got it?”", - "Advancements": "Advancements", - "Advancements1": "Increase an ability modifier by 1 (max +3).", - "Advancements2": "Increase an ability modifier by 1 (max +3).", - "Advancements3": "Choose an additional Maven move.", - "Advancements4": "Choose an additional Maven move.", - "Advancements5": "Unmark all the items in your Cozy Little Place.", - "MavenMoves": "Maven Moves", - "Brindlewood": " BRINDLEWOOD", + "day-move-text": "tira Movimiento Diurno", + "night-move-text": "tira Movimiento Nocturno", + "meddling-move-text": "tira movimiento Metomentodo", + "occult-move-text": "tira movimiento Ocultista", + "cozy-move-text": "tira movimiento Afable", + "gold-crown-mysteries-move-text": "tira movimiento Misterios de la Corona", + "theorize-move-text": "tira movimiento Teorizar", + "advantageordisadvantage": "Ventaja o Desventaja", + "none": "Ninguno", + "advantage": "Ventaja", + "disadvantage": "Desventaja", + "selectability": "Selecciona Habilidad a usar", + "theorizeStatUsed": "Número de Pistas halladas - Complejidad del Misterio", + "numberclues": "Número de Pistas halladas", + "mysterycomplexity": "Complejidad del Misterio", + "Maven": "Experta", + "Clues": " Pistas ", + "CharacterName": "Nombre del Personaje", + "Style": "Estilo", + "CozyActivity": "Quehacer", + "XPTrack": "Contador de PE", + "EndOfSession": "Fin de sesión", + "EOSQuestion1": "¿Las Expertas del Crimen resolvieron un misterio?", + "EOSQuestion2": "¿Has menoscabado en secreto la autoridad de un oficial local?", + "EOSQuestion3": "¿Has compartido tu sabiduría con una persona joven?", + "EOSQuestion4": "¿Has compartido un recuerdo de un miembro de la familia fallecido?", + "EOSQuestion5": "¿Te has comportado como una mujer con la mitad de tu edad?", + "EOSQuestion6": "¿Te has vuelto loquita por alguien?", + "EOSQuestion7": "¿Le has demostrado a alguien que “quien tuvo retuvo”?", + "Advancements": "Avances", + "Advancements1": "Incrementa en 1 el modificador de una habilidad (máx. +3).", + "Advancements2": "Incrementa en 1 el modificador de una habilidad (máx. +3).", + "Advancements3": "Escoge un movimiento Experto adicional.", + "Advancements4": "Escoge un movimiento Experto más.", + "Advancements5": "Desmarca todos los objetos de tu Hogar, Dulce Hogar", + "MavenMoves": "Movimientos Expertos", + "Brindlewood": " BRINDLEWOOD ", "Bay": " BAY ", - "Conditions": " Conditions ", - "TheDayMove": "The Day Move", - "TheNightMove": "The Night Move", - "TheMeddlingMove": "The Meddling Move", - "TheOccultMove": "The Occult Move", - "TheCozyMove": "The Cozy Move", - "TheGoldCrownMysteriesMove": "The Gold Crown Mysteries Move", - "Theorize": "Theorize", - "daybest": "On a 12+, you do what you intended or you hold steady, and the Keeper will tell you some extra benefit or advantage you receive. Describe what it looks like.", - "daysuccess": "On a 10+, you do what you intended or you hold steady; describe what it looks like.", - "daypartial": "On a 7–9, the Keeper will tell you how your actions would leave you vulnerable, and you can choose to back down or go through with it. If you go through with it, the Keeper describes what it looks like.", - "daymiss": "On a miss, what you're afraid will happen if you fail or lose your nerve happens.", - "nightbest": "On a 12+, you do what you intended or you hold steady, and the Keeper will tell you some extra benefit or advantage you receive. Describe what it looks like.", - "nightsuccess": "On a 10+, you do what you intended or you hold steady; describe what it looks like.", - "nightpartial": "On a 7–9, you do it or hold steady, but there is a complication or cost; the Keeper describes what it looks like.", - "nightmiss": "On a miss, something worse what you're afraid will happen if you fail or lose your nerve happens.", - "meddlingbest": "On a hit, you find a Clue. The Keeper will tell you what it is. On a 12+, you also find a Void Clue OR you learn something about the dark conspiracy in Brindlewood Bay (Keeper’s choice).", - "meddlingsuccess": "On a hit, you find a Clue. The Keeper will tell you what it is.", - "meddlingpartial": "On a hit, you find a Clue. The Keeper will tell you what it is. On a 7–9, there’s a complication—either with the Clue itself, or a complication you encounter while searching. The Keeper will tell you what the complication is.", - "meddlingmiss": "On a miss, the keeper makes a move against you.", - "occultsuccess": "On a hit, it works; work with the Keeper to write the move—it is now a move all Mavens can use for the rest of the game and your roll stands.", - "occultpartial": "On a hit, it works; work with the Keeper to write the move—it is now a move all Mavens can use for the rest of the game and your roll stands. You must also mark The Crown of the Void.", - "occultmiss": "On a miss, it’s not something the Mavens can ever do and you also mark The Crown of the Void.", - "cozydesc": "When you have an intimate moment with another Maven while one of you is engaged in your cozy activity, choose two from below if it’s your cozy activity. Otherwise, choose one.
  • You may ask the other player a question about their Maven which they must answer truthfully and completely.
  • The other Maven agrees on a particular course of action, or give them a condition if they refuse.
  • Clear an appropriate condition (can be chosen twice).
Alternatively, if it’s your cozy activity, you may:
  • Stumble on a Clue relevant to an active mystery. Tell the Keeper what it is. The Clue cannot conclusively solve the mystery by itself.
", - "goldcrowndesc": "Once per session, when any Maven says “This reminds me of something that happened to Amanda Delacourt!”, work with the other players to describe how something that is happening in the situation reminds the Mavens of an event from one of The Gold Crown Mysteries. At a minimum, you must provide the following information:
  • The name of the Gold Crown Mystery in question (no repeats, please!).
  • The problem or situation Amanda found herself in that is similar to what the Mavens are experiencing.
  • How Amanda eventually overcame the problem or resolved the situation.
Then, take a 12+ to a single relevant roll OR state a fact about the current situation that the Keeper must incorporate. Note: Generally-speaking, this move can only be used once per session, per group.", - "theorizebest": "On a 10+, it’s the correct solution. The Keeper will present an opportunity to take down the culprit or otherwise save the day. On a 12+, a person involved in the dark conspiracy of Brindlewood Bay also reveals themselves to the Mavens.", - "theorizesuccess": "On a 10+, it’s the correct solution. The Keeper will present an opportunity to take down the culprit or otherwise save the day.", - "theorizepartial": "On a 7–9, the solution is correct, but the Keeper will either add an unwelcome complication to the solution itself, or present a complicated or dangerous opportunity to take down the culprit or save the day.", - "theorizemiss": "On a 6-, the solution is incorrect, and the Keeper reacts.", - "ACozyLittlePlace": "A Cozy Little Place", - "Vitality": "Vitality", - "Composure": "Composure", - "Reason": "Reason", - "Presence": "Presence", - "Sensitivity": "Sensitivity", - "CrownOfTheQueen": "Crown of the Queen", - "CrowQueenOption1": "A flashback of your fondest memory of your late partner.", - "CrowQueenOption2": "A flashback showing how you were an imperfect sister or daughter.", - "CrowQueenOption3": "A flashback showing how you were an imperfect mother.", - "CrowQueenOption4": "A flashback of your fondest memory with one of your children.", - "CrowQueenOption5": "A scene in the present day showing a private side of you very few get to see.", - "CrowQueenOption6": "A scene in the present day showing a burgeoning romance.", - "CrowQueenOption7": "A scene in the present day showing how you satisfy your physical desires.", - "CrowOfTheVoid": "Crown of the Void", - "CrowVoidOption1": " A Shadow in the Garden. Hereafter, during cozy vignettes focused on you or Cozy Move scenes involving you, you must also narrate how dark entities subtly reveal themselves in the scene.", - "CrowVoidOption2": " The Chariot. Your Reason modifier is reduced by 1 and your Sensitivity modifier is increased by 1.", - "CrowVoidOption3": " The Pallid Mask. Hereafter, during any intimate conversation with another character, you must make a casual reference to death, dying, the afterlife, or the End of All Things—no matter the subject at-hand.", - "CrowVoidOption4": " The Pomegranate Kernel. You gain the condition “Obsessed with the Void.” It can never be removed.", - "CrowVoidOption5": " The Void. Retire your character in a way that shows how they are lost to the Void.", - "with": "With ", - "result": "Result: ", - "mildsuccess": "Mild Success", - "miss": "Miss", - "greatsuccess": "Great Success", - "massivesuccess": "Massive Success" + "Conditions": " Condiciones ", + "TheDayMove": "El Movimiento Diurno", + "TheNightMove": "El Movimiento Nocturno", + "TheMeddlingMove": "El Movimiento Metomentodo", + "TheOccultMove": "El Movimiento Ocultista", + "TheCozyMove": "El Movimiento Afable", + "TheGoldCrownMysteriesMove": "El Movimiento Misterios de la Corona", + "Theorize": "Teorizar", + "daybest": "Con 12+, haces lo que pretendías o mantienes la calma y la Guardiana te concede algún beneficio extra o ventaja. Describe lo que sucede.", + "daysuccess": "Con un 10+, haces lo que pretendías o mantienes la calma; describe cómo es.", + "daypartial": "Entre 7 y 9, la Guardiana te dice de qué modo tus acciones te dejarían vulne- rable y tú eliges si echarte atrás o seguir delante de todos modos. Si sigues, la Guardiana describe la situación.", + "daymiss": "Si fallas, sucede lo que temes que suceda si fallas o pierdes los nervios.", + "nightbest": "Con 12+, haces lo que pretendías o mantienes la calma y la Guardiana te con- cede algún beneficio extra o ventaja. Describe lo que sucede.", + "nightsuccess": "Con un 10+, haces lo que pretendías o mantienes la calma; describe cómo es.", + "nightpartial": "Entre 7 y 9, lo consigues, pero hay un coste o una complicación; la Guardiana describe lo que ocurre.", + "nightmiss": "Si fallas, sucede algo peor de lo que temes si fallas o pierdes los nervios.", + "meddlingbest": "Con un éxito, encuentras una Pista. La Guardiana te dice lo que es. Con 12+, también encuentras una Pista del Vacío O descubres algo sobre la conspiración siniestra en Brindlewood Bay (a elección de la Guardiana).", + "meddlingsuccess": "Con un éxito, encuentras una Pista. La Guardiana te dice lo que es.", + "meddlingpartial": "Entre 7 y 9, surge una complicación, ya sea en la propia Pista o por algo que encuentras mientras buscas. La Guardiana te dirá lo que es.", + "meddlingmiss": "En un fallo, la Guardiana hace un movimiento contra ti.", + "occultsuccess": "Con un éxito, funciona. Describe el movimiento con la Guardiana: ahora pueden usarlo todas las Expertas durante el resto de la partida y tu tirada se conserva.", + "occultpartial": "Con un éxito, funciona. Describe el movimiento con la Guardiana: ahora pueden usarlo todas las Expertas durante el resto de la partida y tu tirada se conserva. Entre 7 y 9, también marcas la Corona del Vacío.", + "occultmiss": "Con un fallo, es algo que las Expertas nunca podrán hacer y también marcas la Corona del Vacío.", + "cozydesc": "Cuando compartas un momento de intimidad con otra Experta mientras una de las dos está afanada en su quehacer, puedes quitarte una Condición. Si se trata de tu quehacer, también das con una Pista relevante para el misterio activo. Dile a la Guardiana lo que es. La Pista no puede resolver el misterio por sí misma.", + "goldcrowndesc": "Una vez por partida, cuando cualquier Experta diga: «¡Esto me recuerda a lo que le ocurrió a Amanda Delacourt!», trabaja con los demás para describir qué aspecto de la situación en la que se encuentran les recuerda a un pasaje de Los misterios de la corona de Oro. Como mínimo, debéis proporcionar la siguiente información:
  • El nombre del misterio de la corona de oro en cuestión (¡no vale repetir, por favor!).
  • En qué es similar el problema o la situación en la que Amanda se encontraba a lo que las Expertas están viviendo.
  • Cómo resolvió el problema o superó la situación Amanda.
Después, considera que en una tirada relevante ha salido un 12+ o declara un hecho sobre la situación que la Guardiana debe incorporar.", + "theorizebest": "Con 10+, la solución es correcta. La Guardiana les presentará la oportunidad de atrapar al responsable o de arreglar la situación. Con 12+, además, una persona involucrada en la conspiración siniestra de Brindlewood Bay se da a conocer a las Expertas.", + "theorizesuccess": "Con 10+, la solución es correcta. La Guardiana les presentará la oportunidad de atrapar al responsable o de arreglar la situación.", + "theorizepartial": "Entre 7 y 9, la solución es correcta, pero la Guardiana añadirá una complicación molesta a la propia solución. También puede presentarles una oportunidad pro- blemática o peligrosa de atrapar al responsable o de arreglar la situación.", + "theorizemiss": "Con 6 o menos, la solución es incorrecta y la Guardiana reacciona en consecuencia.", + "ACozyLittlePlace": "Hogar, Dulce Hogar", + "Vitality": "Vitalidad", + "Composure": "Compostura", + "Reason": "Razón", + "Presence": "Presencia", + "Sensitivity": "Sensibilidad", + "CrownOfTheQueen": "La Corona de la Reina", + "CrowQueenOption1": "Narra tu recuerdo más preciado con tu pareja fallecida.", + "CrowQueenOption2": "Narra una escena que te muestre como una hermana o hija imperfecta.", + "CrowQueenOption3": "Narra una escena que te muestre como una madre imperfecta. ", + "CrowQueenOption4": " Narra tu recuerdo más preciado con tus hijos. ", + "CrowQueenOption5": "Narra una escena del presente que muestre un aspecto privado tuyo que pocas personas conocen.", + "CrowQueenOption6": "Narra una escena del presente que muestre un romance floreciente.", + "CrowQueenOption7": "Narra una escena del presente que muestre cómo satisfaces tus deseos físicos.", + "CrowOfTheVoid": "La Corona del Vacío", + "CrowVoidOption1": "Una sombra en el jardín. A partir de ahora, durante\nlos Retazos de una vida agradable o las escenas con\nmovimientos Afables centrados en ti, también tienes\nque narrar cómo se revelan, de manera sutil, oscuras\nentidades. ", + "CrowVoidOption2": "El carruaje. Tu modificador de Razón se reduce en 1\ny tu modificador de Sensibilidad aumenta en 1.", + "CrowVoidOption3": "La pálida máscara. De ahora en adelante, durante una\nconversación íntima con otro personaje, debes hacer una\nreferencia casual a la muerte, el envejecimiento, el más\nallá o El Fin De Todas Las Cosas, sin importar de qué se\nesté hablando.", + "CrowVoidOption4": "Pepitas de granada. Obtienes la Condición «Obsesionada\ncon el Vacío». No puede eliminarse.", + "CrowVoidOption5": "El Vacío. Retira a tu personaje de una forma que muestre\ncuán perdida está en el Vacío.", + "with": "Con", + "result": "Resultado:", + "mildsuccess": "Éxito moderado", + "miss": "Fallo", + "greatsuccess": "Gran Éxito", + "massivesuccess": "Éxito Masivo" } \ No newline at end of file diff --git a/Bunkers&Badasses/bnb.css b/Bunkers&Badasses/bnb.css new file mode 100644 index 0000000000..507bc3faf7 --- /dev/null +++ b/Bunkers&Badasses/bnb.css @@ -0,0 +1,152 @@ +/* Set the min-width so that when the window is resized the look will stay consistant */ + +.charsheet { + background-color: #fff; + min-width: 100%; + border-style:inset; +} +.charsheet label { + margin-top: 10px; +} + +/* Universal styling applied to all elements of these types */ + +h2 { + font-size: 2em; + text-align: center; + width: 100%; +} + +label { + text-align: center !important; +} + +img { + max-height: 100px; +} + +.center { +padding-bottom: 10px; +text-align: center !important; +border-spacing: 10px !important; +background-color: antiquewhite !important; +} +.inputmargin { +text-align: center !important; + width: 100%; +} +.wide { + width: 45% !important; +} + +.center2 { +padding-bottom: 10px; +text-align: center !important; +border-spacing: 10px !important; +background-color: antiquewhite !important; +} +.ui-dialog .charsheet { +} +.charsheet { + min-width: 80%; + max-width: 95%; + border-style: inset; +background-color: antiquewhite; + +} +.option { + overflow-wrap: break-word; +} + +div.sheet-hunter, +div.sheet-stats, +div.sheet-combat, +div.sheet-weapons, +div.sheet-skills, +div.sheet-items, +div.sheet-levels, +div.sheet-feats, +div.sheet-traits { display: none; } +input.sheet-tab1:unchecked ~ div.sheet-hunter { display: none; } +input.sheet-tab2:unchecked ~ div.sheet-stats { display: none; } +input.sheet-tab3:unchecked ~ div.sheet-combat { display: none; } +input.sheet-tab4:unchecked ~ div.sheet-weapons { display: none; } +input.sheet-tab5:unchecked ~ div.sheet-skills { display: none; } +input.sheet-tab6:unchecked ~ div.sheet-items { display: none; } +input.sheet-tab7:unchecked ~ div.sheet-levels { display: none; } +input.sheet-tab8:unchecked ~ div.sheet-feats { display: none; } +input.sheet-tab9:unchecked ~ div.sheet-traits { display: none; } + +input.sheet-tab1:checked ~ div.sheet-hunter { display: block; border-style: double} +input.sheet-tab2:checked ~ div.sheet-stats { display: block; border-style: double } +input.sheet-tab3:checked ~ div.sheet-combat { display: block; border-style: double } +input.sheet-tab4:checked ~ div.sheet-weapons { display: block; border-style: double } +input.sheet-tab5:checked ~ div.sheet-skills { display: block; border-style: double } +input.sheet-tab6:checked ~ div.sheet-items { display: block; border-style: double } +input.sheet-tab7:checked ~ div.sheet-levels { display: block; border-style: double } +input.sheet-tab8:checked ~ div.sheet-feats { display: block; border-style: double } +input.sheet-tab9:checked ~ div.sheet-traits { display: block; border-style: double } + +.div{ + +background-color: antiquewhite; +} +.container { + display: flex; /* or inline-flex */ + flex-flow:wrap; + flex-direction: row; + justify-content: center; + align-items:flex-start; + width: 90%; +} +.containercol { + display: flex; /* or inline-flex */ + flex-flow: column; + flex-direction: column; + justify-content: center; + width: 100%; +} +.containercol4 { + display: flex; /* or inline-flex */ + flex-flow: column; + flex-direction: column; + align-items: stretch; + justify-content:center; + width: 20%; +} +.containercol2 { + display: flex; /* or inline-flex */ + flex-flow: column; + flex-direction: column; + align-items: stretch; + justify-content:center; + width: 50%; +} +.containerrow { + display: flex; /* or inline-flex */ + flex-flow: row; + flex-direction: row; + align-items: stretch; + justify-content:center; + width: auto; +} +.item { + flex-grow: 1; /* default 0 */ +padding-right: 5px; +padding-left: 5px; +background-color: antiquewhite; +} + +.item4 { + flex-grow: 1; /* default 0 */ +padding-right: 5px; +padding-left: 5px; +background-color: antiquewhite; +width: 100%; +} +.sheet-bnb-logo { + height: 116px; +} +.input, .sheet-short { + width: 25px; +} \ No newline at end of file diff --git a/Bunkers&Badasses/bnb.html b/Bunkers&Badasses/bnb.html new file mode 100644 index 0000000000..634d201f99 --- /dev/null +++ b/Bunkers&Badasses/bnb.html @@ -0,0 +1,1124 @@ + +
+
+ Hunter + Stats + Combat + Skills + Weapons + Items + Levels + Feats + Traits + + +
+ +

Vault Hunter

+ +
+

Welcome Vault Hunter. Below you will begin your journey. Pick your Archetype, Class and Background. All hunters start at level 1 in both Level and BadAss Rank. Your class will tell you what your melee die which will also be your health die as you level up. *NOTE* Use the boxes in the uper left to hide and show sections as preferred!

+
+
+
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ +
+
+
+
+ + +
+
+

Stats and Checks

+ +

Be sure and apply your Archetype and Class base stats to the DMG,ACC,MST,SPD as well as any background or trait modifiers where they are needed.

+
+
+
+ +
+
+ +
+
+ + + + +
+ +
+ +
+
+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ +
+
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+
+
+ +
+ +
+ +
+
+ +
+
+ +
+
+ + +
+
+
+
+
+ + +
+ +
+

Combat

+ +
+

When in combat your shield takes damage first. If you go a round without damage it will recharge based on its recharge rate each round without taking damage.

+ + +
+
+ + +
+

Move: 3 + SPD Mod

+

Attack: Ranged or Melee

+

Activate Class Action Skill

+

Throw: an item or grenade

+

Drink Potion

+

Reload: Skip attack and reload

+ +
+ +
+
+

Extra Movement: 3 + SPD Mod

+

Extra Attack: Ranged or Melee

+

Swap Guns

+

Attempt a Check: Failed check results in 2 mayhem points

+

Handoff Item

+

Reload: A reload is required after a crit fail

+ +
+ +
+
+ + +
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+ +
+

Class Action

+ +
+

Choose the action for your class. Note how many times used per day.

+
+ +
+
+
+
+
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + +
+ + +
+

Skills

+ Available Points + / Used +
+ +
+

When choosing a skill please add the number to your "Used" box above. Some skills can be gained multiple times (3 is max). Use the S/L to fill in how many times you have bought this skill and apply the skill level to any call out in the text for S/L
+ + +
+
+
+
+
+
+
+
+ + +
+
+
+ +
+ +
+

Weapons

+ +
+

When using weapons, roll you 1d20 and add your ACC Mod for hit and DMG Mod for damage only if it is favored. When rolling damage roll the guns DMG Die for every Hit correlating to your Atk roll, Roll 1d12 for every crit, and add an additional 1d12 for a natural 20, and add your DMG Mod to the final value if favored. Don't forget to review the details of the gun for special effects or bonuses.

+
+
+ +
+
+
+ + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+ +
+
+
+ + +
+
+
+
+
+
+
+ + +
+
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+ +
+

Items

+ +
+

Track any miscellaneous items below. Give a name, description and amount. example: GOLD - DELICIOUS AMAZING GOLD - 5 not enough...

+
+
+ +
+
+ + + +
+
+
+
+
+ +
+
+

Levels

+ +
+

When you gain a level in your archetype add it in here and add stats or roll hit die as needed. You can branch into another archetype after level 5.

+
+
+
+ +
+
+
+
+ +
+
+

Feats

+ +
+

Gain your Archetype Feats here when a level notes "+ Archetype Feat". *Note* Some Feats have level or other requirements. Look for these in the description.

+
+
+ +
+ +
+
+
+
+ +
+

Character Traits

+ +
+

Your character gets 2 traits when being created. You get to choose one trait that you like and have the second one randomly selected by FATE! Roll a d100 (or 2 d10) and have it randomly selected with 1 reroll allowed.

+
+
+ +
+ +
+
+
+ \ No newline at end of file diff --git a/Bunkers&Badasses/bnb.png b/Bunkers&Badasses/bnb.png new file mode 100644 index 0000000000..50b5482ad8 Binary files /dev/null and b/Bunkers&Badasses/bnb.png differ diff --git a/Bunkers&Badasses/sheet.json b/Bunkers&Badasses/sheet.json new file mode 100644 index 0000000000..8cdbc35ba2 --- /dev/null +++ b/Bunkers&Badasses/sheet.json @@ -0,0 +1,9 @@ +{ + "html": "bnb.html", + "css": "bnb.css", + "authors": "Shawn-M (ryuaced)", + "roll20userid": "4170820", + "preview": "bnb.png", + "instructions": "Bunkers & Borderlands character sheet with some automation.\n\nVersion: 1.0\n\nIf you find bugs or have suggestions, please use the [Github issue tracker](https://github.com/ryuaced/roll20-character-sheets/issues) for this sheet.\n\n", + "legacy": false +} diff --git a/CWOD-DAV20/translations/fr.json b/CWOD-DAV20/translations/fr.json index 94aea9e699..564fec006d 100644 --- a/CWOD-DAV20/translations/fr.json +++ b/CWOD-DAV20/translations/fr.json @@ -28,15 +28,15 @@ "damage-u": "Dommage", "lethality-u": "Létalité", "conceal-u": "Cacher", - "bashing-u": "Bashing", + "bashing-u": "Contondant", "lethal-u": "Létal", - "aggravated-u": "Aggravée", + "aggravated-u": "Aggravé", "rangedweapons-u": "Armes à distance", - "range-u": "Range", + "range-u": "Portée", "rate-u": "Taux", - "clip-u": "Clip", + "clip-u": "Rech.", "armorshields-u": "Armures & Boucliers", - "onq-u": "Sur?", + "onq-u": "Sur ?", "class-u": "Classe", "rating-u": "Évaluation", "penalty-u": "Pénalité", @@ -52,8 +52,8 @@ "player-u": "Joueur :", "chronicle-u": "Chronique :", "nature-u": "Nature :", - "demeanor-u": "Attitude:", - "concept-u": "Concept:", + "demeanor-u": "Attitude :", + "concept-u": "Concept :", "clan-u": "Clan :", "generation-u": "Génération :", "sire-u": "Sire :", @@ -63,7 +63,7 @@ "mental-u": "Mentaux", "strength-u": "Force", "dexterity-u": "Dextérité", - "stamina-u": "Vigeur", + "stamina-u": "Vigueur", "charisma-u": "Charisme", "manipulation-u": "Manipulation", "appearance-u": "Apparence", @@ -135,7 +135,7 @@ "attributeability-u": "Attribut            Capacité", "health-u": "Santé", "bruised-u": "Contusion", - "hurt-u": "Blessure légére", + "hurt-u": "Blessure légère", "injured-u": "Blessure moyenne", "wounded-u": "Blessure Grave", "mauled-u": "Handicap", diff --git a/Das Schwarze Auge (TDE) 5 OFFICIAL by Ulisses/translations/fr.json b/Das Schwarze Auge (TDE) 5 OFFICIAL by Ulisses/translations/fr.json index f32bb16833..85b2b12ef6 100644 --- a/Das Schwarze Auge (TDE) 5 OFFICIAL by Ulisses/translations/fr.json +++ b/Das Schwarze Auge (TDE) 5 OFFICIAL by Ulisses/translations/fr.json @@ -4,7 +4,7 @@ "1-kategorie": "1 cat.", "2-kategorie": "2 cat.", "2-attacke": "2e attaque", - "AP": "AP", + "AP": "PA", "CH": "CH", "FF": "DE", "GE": "AG", @@ -117,7 +117,7 @@ "gross": "grand", "groesse": "Taille", "grundwert": "Valeur de base", - "freigeschalten": "Freigeschalten", + "freigeschalten": "Activé", "grundwerte": "Valeurs de base", "gs": "VIT", "haarfarbe": "Couleur des cheveux", @@ -458,7 +458,7 @@ "karmale-sonderfertigkeit": "Capacité spéciale karmique", "effekt-durch-wirken": "Effet du sort/acte divin", "traditionsartefakt": "Artefact de tradition", - "recalcSheet": "Daten neu berechnen bei Öffnen des Charakterblatts:", + "recalcSheet": "Recalculer les données à l'ouverture de la feuille de personnage :", "abzug-gs": "Malus VIT", "abzug-ini": "Malus INI", "angelegt": "Attaché", diff --git a/Das_Schwarze_Auge_4-1/dsa4_1_character_sheet_roll20.css b/Das_Schwarze_Auge_4-1/dsa4_1_character_sheet_roll20.css index f04b0f8088..952c4c0cf1 100644 --- a/Das_Schwarze_Auge_4-1/dsa4_1_character_sheet_roll20.css +++ b/Das_Schwarze_Auge_4-1/dsa4_1_character_sheet_roll20.css @@ -91,6 +91,13 @@ h4 { margin-top: 1em; } +h5 { + font-size: 1.1em; + font-weight: 700; + margin-bottom: 0.3em; + margin-top: 0.8em; +} + /* Tables */ .charsheet div.sheet-excess-width-table { overflow-x: auto; @@ -507,15 +514,26 @@ The solution: convert the s to type="text" and make them look like normal font-size: 1em; } +.sheet-section-info .sheet-inline-heading, +.sheet-section-info .sheet-highlight { + font-weight: 700; +} + p + p { margin-top: 0.3em; margin-bottom: 0em; } -.sheet-developer:not(:checked) + div.sheet-section-developer{ +.sheet-developer:not(:checked) + div.sheet-config-developer{ display: none; } +.sheet-developer:checked + div.sheet-config-developer{ + margin-top: 0.5em; + border-top: 0.2em solid #806940; + padding-top: 1em; +} + /*-------------------------------------------------Tabs--------------------------------------*/ .charsheet div[class^="sheet-section"] { @@ -765,7 +783,7 @@ p + p { } .charsheet .sheet-talent-name { - width: 18em !important; + width: 22em !important; } .charsheet .sheet-talent-eigenschaften { @@ -798,10 +816,13 @@ p + p { } .charsheet .sheet-talent-spez { - width: 14em !important; + width: 10em !important; +} + +.charsheet .sheet-talent-ebe { + width: 10em !important; } -.charsheet .sheet-talent-ebe, .charsheet .sheet-talent-probe { width: 6em !important; } @@ -1350,7 +1371,11 @@ p + p { .sheet-rolltemplate-DSA-Kampf-Treffer-gezielt table, .sheet-rolltemplate-DSA-Fernkampf-Patzer table, .sheet-rolltemplate-DSA-Nahkampf-Patzer table, -.sheet-rolltemplate-DSA-Kampf-SP table { +.sheet-rolltemplate-DSA-Kampf-SP table, +.sheet-rolltemplate-talent table, +.sheet-rolltemplate-talent-ebe table, +.sheet-rolltemplate-zauber table, +.sheet-rolltemplate-liturgie table { min-width: 8em; max-width: 20em; border-style: solid; @@ -1365,21 +1390,33 @@ p + p { border-color: #b3b3b3; } -/* 1d20: success, critical, confirmed (1 and check succeeded) */ +/* +1d20: success, critical, confirmed (1 and check succeeded) +3d20: triple 1 +*/ .sheet-rolltemplate-DSA-Nahkampf-AT table.sheet-templates-succ-crc, .sheet-rolltemplate-DSA-Nahkampf-PA table.sheet-templates-succ-crc, .sheet-rolltemplate-DSA-Kampf-Ausweichen table.sheet-templates-succ-crc, .sheet-rolltemplate-DSA-Fernkampf-AT table.sheet-templates-succ-crc, -.sheet-rolltemplate-DSA-Eigenschaft table.sheet-templates-succ-crc { +.sheet-rolltemplate-DSA-Eigenschaft table.sheet-templates-succ-crc, +.sheet-rolltemplate-talent table.sheet-templates-succ-crit2, +.sheet-rolltemplate-talent-ebe table.sheet-templates-succ-crit2, +.sheet-rolltemplate-zauber table.sheet-templates-succ-crit2 { background-color: #e8cdf2; border-color: #ab97b3; } -/* 1d20: success, critical, unconfirmed (1 and check failed) */ +/* +1d20: success, critical, unconfirmed (1 and check failed) +3d20: double 1 +*/ .sheet-rolltemplate-DSA-Nahkampf-AT table.sheet-templates-succ-cru, .sheet-rolltemplate-DSA-Nahkampf-PA table.sheet-templates-succ-cru, .sheet-rolltemplate-DSA-Kampf-Ausweichen table.sheet-templates-succ-cru, -.sheet-rolltemplate-DSA-Fernkampf-AT table.sheet-templates-succ-cru { +.sheet-rolltemplate-DSA-Fernkampf-AT table.sheet-templates-succ-cru, +.sheet-rolltemplate-talent table.sheet-templates-succ-crit1, +.sheet-rolltemplate-talent-ebe table.sheet-templates-succ-crit1, +.sheet-rolltemplate-zauber table.sheet-templates-succ-crit1 { background-color: #cdf2f1; border-color: #97b3b2; } @@ -1395,7 +1432,11 @@ p + p { .sheet-rolltemplate-DSA-Kampf-Ausweichen table.sheet-templates-succ-uncr, .sheet-rolltemplate-DSA-Fernkampf-AT table.sheet-templates-succ-uncr, .sheet-rolltemplate-DSA-Kampf-Treffer table.sheet-templates-succ-uncr, -.sheet-rolltemplate-DSA-Kampf-Treffer-gezielt table.sheet-templates-succ-uncr { +.sheet-rolltemplate-DSA-Kampf-Treffer-gezielt table.sheet-templates-succ-uncr, +.sheet-rolltemplate-talent table.sheet-templates-succ-uncr, +.sheet-rolltemplate-talent-ebe table.sheet-templates-succ-uncr, +.sheet-rolltemplate-zauber table.sheet-templates-succ-uncr, +.sheet-rolltemplate-liturgie table.sheet-templates-succ-uncr { background-color: #d7f2cd; border-color: #9fb397 } @@ -1411,29 +1452,45 @@ p + p { .sheet-rolltemplate-DSA-Kampf-Ausweichen table.sheet-templates-fail-uncr, .sheet-rolltemplate-DSA-Fernkampf-AT table.sheet-templates-fail-uncr, .sheet-rolltemplate-DSA-Kampf-Treffer table.sheet-templates-fail-uncr, -.sheet-rolltemplate-DSA-Kampf-Treffer-gezielt table.sheet-templates-fail-uncr { +.sheet-rolltemplate-DSA-Kampf-Treffer-gezielt table.sheet-templates-fail-uncr, +.sheet-rolltemplate-talent table.sheet-templates-fail-uncr, +.sheet-rolltemplate-talent-ebe table.sheet-templates-fail-uncr, +.sheet-rolltemplate-zauber table.sheet-templates-fail-uncr, +.sheet-rolltemplate-liturgie table.sheet-templates-fail-uncr { background-color: #f2f1cd; border-color: #b39797; } -/* 1d20: failure, critical, unconfirmed (20 and check succeeded) */ +/* +1d20: failure, critical, unconfirmed (20 and check succeeded) +3d20: double 20 +*/ .sheet-rolltemplate-DSA-Nahkampf-AT table.sheet-templates-fail-cru, .sheet-rolltemplate-DSA-Nahkampf-PA table.sheet-templates-fail-cru, .sheet-rolltemplate-DSA-Kampf-Ausweichen table.sheet-templates-fail-cru, -.sheet-rolltemplate-DSA-Fernkampf-AT table.sheet-templates-fail-cru { +.sheet-rolltemplate-DSA-Fernkampf-AT table.sheet-templates-fail-cru, +.sheet-rolltemplate-talent table.sheet-templates-fail-crit1, +.sheet-rolltemplate-talent-ebe table.sheet-templates-fail-crit1, +.sheet-rolltemplate-zauber table.sheet-templates-fail-crit1 { background-color: #f2e3cd; border-color: #b3a797; } -/* 1d20: failure, critical, confirmed (20 and check failed) - critical failure effect table */ +/* +1d20: failure, critical, confirmed (20 and check failed) +critical failure effect table +3d20: triple 20 +*/ .sheet-rolltemplate-DSA-Nahkampf-AT table.sheet-templates-fail-crc, .sheet-rolltemplate-DSA-Nahkampf-PA table.sheet-templates-fail-crc, .sheet-rolltemplate-DSA-Kampf-Ausweichen table.sheet-templates-fail-crc, .sheet-rolltemplate-DSA-Fernkampf-AT table.sheet-templates-fail-crc, .sheet-rolltemplate-DSA-Nahkampf-Patzer table.sheet-templates-fail-crc, .sheet-rolltemplate-DSA-Fernkampf-Patzer table.sheet-templates-fail-crc, -.sheet-rolltemplate-DSA-Eigenschaft table.sheet-templates-fail-crc { +.sheet-rolltemplate-DSA-Eigenschaft table.sheet-templates-fail-crc, +.sheet-rolltemplate-talent table.sheet-templates-fail-crit2, +.sheet-rolltemplate-talent-ebe table.sheet-templates-fail-crit2, +.sheet-rolltemplate-zauber table.sheet-templates-fail-crit2 { background-color: #f2cdcd; border-color: #b39797; } @@ -1452,7 +1509,11 @@ p + p { .sheet-rolltemplate-DSA-Kampf-Treffer-gezielt th, .sheet-rolltemplate-DSA-Nahkampf-Patzer th, .sheet-rolltemplate-DSA-Fernkampf-Patzer th, -.sheet-rolltemplate-DSA-Kampf-SP th { +.sheet-rolltemplate-DSA-Kampf-SP th, +.sheet-rolltemplate-talent th, +.sheet-rolltemplate-talent-ebe th, +.sheet-rolltemplate-zauber th, +.sheet-rolltemplate-liturgie th { font-variant: small-caps; font-weight: 700; padding: 0.2em; @@ -1473,7 +1534,11 @@ p + p { .sheet-rolltemplate-DSA-Kampf-Treffer-gezielt td, .sheet-rolltemplate-DSA-Nahkampf-Patzer td, .sheet-rolltemplate-DSA-Fernkampf-Patzer td, -.sheet-rolltemplate-DSA-Kampf-SP td { +.sheet-rolltemplate-DSA-Kampf-SP td, +.sheet-rolltemplate-talent td, +.sheet-rolltemplate-talent-ebe td, +.sheet-rolltemplate-zauber td, +.sheet-rolltemplate-liturgie td { padding: 0.2em; } @@ -1489,7 +1554,11 @@ p + p { .sheet-rolltemplate-DSA-Kampf-Treffer td.sheet-templates-result, .sheet-rolltemplate-DSA-Kampf-Treffer-gezielt td.sheet-templates-result, .sheet-rolltemplate-DSA-Nahkampf-Patzer td.sheet-templates-result, -.sheet-rolltemplate-DSA-Fernkampf-Patzer td.sheet-templates-result { +.sheet-rolltemplate-DSA-Fernkampf-Patzer td.sheet-templates-result, +.sheet-rolltemplate-talent td.sheet-templates-result, +.sheet-rolltemplate-talent-ebe td.sheet-templates-result, +.sheet-rolltemplate-zauber td.sheet-templates-result, +.sheet-rolltemplate-liturgie td.sheet-templates-result { font-variant: small-caps; } @@ -1535,7 +1604,11 @@ p + p { .sheet-rolltemplate-DSA-Kampf-Treffer td.sheet-templates-warning, .sheet-rolltemplate-DSA-Kampf-Treffer-gezielt td.sheet-templates-warning, .sheet-rolltemplate-DSA-Nahkampf-Patzer td.sheet-templates-warning, -.sheet-rolltemplate-DSA-Fernkampf-Patzer td.sheet-templates-warning { +.sheet-rolltemplate-DSA-Fernkampf-Patzer td.sheet-templates-warning, +.sheet-rolltemplate-talent td.sheet-templates-warning, +.sheet-rolltemplate-talent-ebe td.sheet-templates-warning, +.sheet-rolltemplate-zauber td.sheet-templates-warning, +.sheet-rolltemplate-liturgie td.sheet-templates-warning { background-color: #f2f2f2; } @@ -1553,7 +1626,11 @@ p + p { .sheet-rolltemplate-DSA-Kampf-Treffer-gezielt span.sheet-abbr, .sheet-rolltemplate-DSA-Nahkampf-Patzer span.sheet-abbr, .sheet-rolltemplate-DSA-Fernkampf-Patzer span.sheet-abbr, -.sheet-rolltemplate-DSA-Kampf-SP span.sheet-abbr { +.sheet-rolltemplate-DSA-Kampf-SP span.sheet-abbr, +.sheet-rolltemplate-talent span.sheet-abbr, +.sheet-rolltemplate-talent-ebe span.sheet-abbr, +.sheet-rolltemplate-zauber span.sheet-abbr, +.sheet-rolltemplate-liturgie span.sheet-abbr { text-decoration-line: underline; text-decoration-style: dotted; } @@ -1573,6 +1650,10 @@ p + p { .sheet-rolltemplate-DSA-Nahkampf-Patzer .inlinerollresult, .sheet-rolltemplate-DSA-Fernkampf-Patzer .inlinerollresult, .sheet-rolltemplate-DSA-Kampf-SP .inlinerollresult, +.sheet-rolltemplate-talent .inlinerollresult, +.sheet-rolltemplate-talent-ebe .inlinerollresult, +.sheet-rolltemplate-zauber .inlinerollresult, +.sheet-rolltemplate-liturgie .inlinerollresult, .sheet-rolltemplate-DSA-Eigenschaft .inlinerollresult.fullcrit, .sheet-rolltemplate-DSA-Liturgien .inlinerollresult.fullcrit, .sheet-rolltemplate-DSA-Zauber .inlinerollresult.fullcrit, @@ -1588,6 +1669,10 @@ p + p { .sheet-rolltemplate-DSA-Nahkampf-Patzer .inlinerollresult.fullcrit, .sheet-rolltemplate-DSA-Fernkampf-Patzer .inlinerollresult.fullcrit, .sheet-rolltemplate-DSA-Kampf-SP .inlinerollresult.fullcrit, +.sheet-rolltemplate-talent .inlinerollresult.fullcrit, +.sheet-rolltemplate-talent-ebe .inlinerollresult.fullcrit, +.sheet-rolltemplate-zauber .inlinerollresult.fullcrit, +.sheet-rolltemplate-liturgie .inlinerollresult.fullcrit, .sheet-rolltemplate-DSA-Eigenschaft .inlinerollresult.fullfail, .sheet-rolltemplate-DSA-Liturgien .inlinerollresult.fullfail, .sheet-rolltemplate-DSA-Zauber .inlinerollresult.fullfail, @@ -1603,6 +1688,10 @@ p + p { .sheet-rolltemplate-DSA-Nahkampf-Patzer .inlinerollresult.fullfail, .sheet-rolltemplate-DSA-Fernkampf-Patzer .inlinerollresult.fullfail, .sheet-rolltemplate-DSA-Kampf-SP .inlinerollresult.fullfail, +.sheet-rolltemplate-talent .inlinerollresult.fullfail, +.sheet-rolltemplate-talent-ebe .inlinerollresult.fullfail, +.sheet-rolltemplate-zauber .inlinerollresult.fullfail, +.sheet-rolltemplate-liturgie .inlinerollresult.fullfail, .sheet-rolltemplate-DSA-Eigenschaft .inlinerollresult.importantroll, .sheet-rolltemplate-DSA-Liturgien .inlinerollresult.importantroll, .sheet-rolltemplate-DSA-Zauber .inlinerollresult.importantroll, @@ -1617,7 +1706,11 @@ p + p { .sheet-rolltemplate-DSA-Kampf-Treffer-gezielt .inlinerollresult.importantroll, .sheet-rolltemplate-DSA-Nahkampf-Patzer .inlinerollresult.importantroll, .sheet-rolltemplate-DSA-Fernkampf-Patzer .inlinerollresult.importantroll, -.sheet-rolltemplate-DSA-Kampf-SP .inlinerollresult.importantroll { +.sheet-rolltemplate-DSA-Kampf-SP .inlinerollresult.importantroll, +.sheet-rolltemplate-talent .inlinerollresult.importantroll, +.sheet-rolltemplate-talent-ebe .inlinerollresult.importantroll, +.sheet-rolltemplate-zauber .inlinerollresult.importantroll, +.sheet-rolltemplate-liturgie .inlinerollresult.importantroll { border: none; padding: 0; background-color: unset; @@ -1815,3 +1908,30 @@ table.sheet-wound-effects-table td,{ font-weight: bold; } +/* Beta Features */ +.sheet-beta-feature::after { + content: " (β)"; + font-style: italic; + font-weight: 700; + color: #3030DD; +} + +span.sheet-beta-feature { + display: none; +} + +button.sheet-beta-feature-crp-crit-rolls { + display: none; +} + +.sheet-beta-feature-crp-crit-rolls:checked ~ * > * button.sheet-beta-feature-crp-crit-rolls { + display: inline-block; +} + +.sheet-beta-feature-crp-crit-rolls:checked + span.sheet-beta-feature { + display: inline; +} + +.sheet-beta-feature-crp-crit-rolls > span.sheet-beta-feature { + display: inline; +} diff --git a/Das_Schwarze_Auge_4-1/dsa4_1_character_sheet_roll20.html b/Das_Schwarze_Auge_4-1/dsa4_1_character_sheet_roll20.html index 198a49e4d1..06460bc21a 100644 --- a/Das_Schwarze_Auge_4-1/dsa4_1_character_sheet_roll20.html +++ b/Das_Schwarze_Auge_4-1/dsa4_1_character_sheet_roll20.html @@ -136,7 +136,7 @@ - + @@ -309,6 +309,29 @@
+ + + + + + + + + + + + + + + + + + + + + + +
Berücksichtigte Vor- und Nachteile (?)
@@ -1002,6 +1025,7 @@
+
-
+ + +
-
+ + +
@@ -1059,7 +1087,9 @@
-
+ + +
-
+ + +
@@ -1101,7 +1133,9 @@
-
+ + +
-
+ + +
@@ -1143,7 +1179,9 @@
-
+ + +
-
+ + +
@@ -1185,7 +1225,9 @@
-
+ + +
-
+ + +
@@ -1227,7 +1271,9 @@
-
+ + +
-
+ + +
@@ -1269,7 +1317,9 @@
-
+ + +
-
+ + +
@@ -1311,7 +1363,9 @@
-
+ + +
-
+ + +
@@ -1353,7 +1409,9 @@
-
+ + +
-
+ + +
@@ -1395,7 +1455,9 @@
-
+ + +
-
+ + +
-
+ + +
@@ -1479,7 +1545,9 @@
-
+ + +
-
+ + +
@@ -1521,7 +1591,9 @@
-
+ + +
-
+ + +
-
+ + +
@@ -1605,7 +1681,9 @@
-
+ + +
-
+ + +
@@ -1647,7 +1727,9 @@
-
+ + +
-
+ + +
@@ -1689,7 +1773,9 @@
-
+ + +
-
+ + +
@@ -1731,7 +1819,9 @@
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
@@ -3593,7 +3769,9 @@
-
+ + +
@@ -3601,7 +3779,9 @@
-
+ + +
@@ -3609,7 +3789,9 @@
-
+ + +
@@ -3617,7 +3799,9 @@
-
+ + +
@@ -3625,7 +3809,9 @@
-
+ + +
@@ -3633,7 +3819,9 @@
-
+ + +
@@ -3641,7 +3829,9 @@
-
+ + +
@@ -3649,7 +3839,9 @@
-
+ + +
@@ -3657,7 +3849,9 @@
-
+ + +
@@ -3665,7 +3859,9 @@
-
+ + +
@@ -3673,7 +3869,9 @@
-
+ + +
@@ -3681,7 +3879,9 @@
-
+ + +
@@ -3689,7 +3889,9 @@
-
+ + +
@@ -3697,7 +3899,9 @@
-
+ + +
@@ -3705,7 +3909,9 @@
-
+ + +
@@ -3713,7 +3919,9 @@
-
+ + +
@@ -3721,7 +3929,9 @@
-
+ + +
@@ -3729,7 +3939,9 @@
-
+ + +
@@ -3737,7 +3949,9 @@
-
+ + +
@@ -3745,7 +3959,9 @@
-
+ + +
@@ -3753,7 +3969,9 @@
-
+ + +
@@ -3761,7 +3979,9 @@
-
+ + +
@@ -3769,7 +3989,9 @@
-
+ + +
@@ -3777,7 +3999,9 @@
-
+ + +
@@ -3785,7 +4009,9 @@
-
+ + +
@@ -3793,7 +4019,9 @@
-
+ + +
@@ -3801,7 +4029,9 @@
-
+ + +
@@ -3809,7 +4039,9 @@
-
+ + +
@@ -3817,7 +4049,9 @@
-
+ + +
@@ -3825,7 +4059,9 @@
-
+ + +
@@ -3833,7 +4069,9 @@
-
+ + +
@@ -3841,7 +4079,9 @@
-
+ + +
@@ -3849,7 +4089,9 @@
-
+ + +
@@ -3857,7 +4099,9 @@
-
+ + +
@@ -3865,7 +4109,9 @@
-
+ + +
@@ -3873,7 +4119,9 @@
-
+ + +
@@ -3958,7 +4206,9 @@
-
+ + +
@@ -3966,7 +4216,9 @@
-
+ + +
@@ -3974,7 +4226,9 @@
-
+ + +
@@ -3982,7 +4236,9 @@
-
+ + +
@@ -3990,7 +4246,9 @@
-
+ + +
@@ -3998,7 +4256,9 @@
-
+ + +
@@ -4006,7 +4266,9 @@
-
+ + +
@@ -4014,7 +4276,9 @@
-
+ + +
@@ -4022,7 +4286,9 @@
-
+ + +
@@ -4030,7 +4296,9 @@
-
+ + +
@@ -4038,7 +4306,9 @@
-
+ + +
@@ -4046,7 +4316,9 @@
-
+ + +
@@ -4054,7 +4326,9 @@
-
+ + +
@@ -4062,7 +4336,9 @@
-
+ + +
@@ -4070,7 +4346,9 @@
-
+ + +
@@ -4078,7 +4356,9 @@
-
+ + +
@@ -4086,7 +4366,9 @@
-
+ + +
@@ -4094,7 +4376,9 @@
-
+ + +
@@ -4102,7 +4386,9 @@
-
+ + +
@@ -4110,7 +4396,9 @@
-
+ + +
@@ -4118,7 +4406,9 @@
-
+ + +
@@ -4126,7 +4416,9 @@
-
+ + +
@@ -4134,7 +4426,9 @@
-
+ + +
@@ -4185,6 +4479,7 @@
+
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +
-
+ + +

-
Repräsentation +
+ Repräsentation
-
+ + +
KL/KL/FF + Mod.
@@ -6412,7 +6804,9 @@
-
+ + +
KL/CH/FF + Mod.
@@ -6422,7 +6816,9 @@
-
+ + +
KL/FF/KO
@@ -6432,7 +6828,9 @@
-
+ + +
KL/IN/FF
@@ -6442,7 +6840,9 @@
-
+ + +
MU/IN/GE
@@ -6452,7 +6852,9 @@
-
+ + +
KL/CH/KO
@@ -6462,7 +6864,9 @@
-
+ + +
MU/KO/KK
@@ -6472,7 +6876,9 @@
-
+ + +
MU/IN/KO
@@ -6482,7 +6888,9 @@
-
+ + +
KL/IN/GE
@@ -6492,7 +6900,9 @@
-
+ + +
MU/CH/KO + Mod.
@@ -6502,7 +6912,9 @@
-
+ + +
MU/CH/GE + MR
@@ -6512,7 +6924,9 @@
-
+ + +
KL/KL/IN + Mod.
@@ -6522,7 +6936,9 @@
-
+ + +
MU/IN/CH
@@ -6532,7 +6948,9 @@
-
+ + +
KL/FF/GE
@@ -6542,7 +6960,9 @@
-
+ + +
KL/FF/FF
@@ -6552,7 +6972,9 @@
-
+ + +
KL/FF/KO
@@ -6562,7 +6984,9 @@
-
+ + +
MU/IN/KK + MR
@@ -6572,7 +6996,9 @@
-
+ + +
MU/IN/KO
@@ -6582,7 +7008,9 @@
-
+ + +
MU/IN/CH
@@ -6592,7 +7020,9 @@
-
+ + +
KL/KL/FF
@@ -6602,7 +7032,9 @@
-
+ + +
KL/FF/KO
@@ -6612,7 +7044,9 @@
-
+ + +
MU/IN/KO
@@ -6622,7 +7056,9 @@
-
+ + +
IN/GE/KO
@@ -6632,7 +7068,9 @@
-
+ + +
MU/KO/KK + MR
@@ -6642,7 +7080,9 @@
-
+ + +
KL/CH/
-
+ + +
CH/KO/KK + MR
@@ -6674,7 +7116,9 @@
-
+ + +
MU/KO/KK
@@ -6684,7 +7128,9 @@
-
+ + +
IN/CH/FF
@@ -6694,7 +7140,9 @@
-
+ + +
KL/CH/FF
@@ -6704,7 +7152,9 @@
-
+ + +
KL/GE/KO
@@ -6714,7 +7164,9 @@
-
+ + +
KL/IN/CH + Mod.
@@ -6724,7 +7176,9 @@
-
+ + +
KL/CH/KK + MR
@@ -6734,7 +7188,9 @@
-
+ + +
IN/CH/CH + MR
@@ -6744,7 +7200,9 @@
-
+ + +
MU/KO/KK + Mod.
@@ -6754,7 +7212,9 @@
-
+ + +
KL/IN/CH + Mod.
@@ -6764,7 +7224,9 @@
-
+ + +
MU/CH/KO + Mod.
@@ -6774,7 +7236,9 @@
-
+ + +
MU/IN/CH + Mod.
@@ -6784,7 +7248,9 @@
-
+ + +
KL/IN/FF + Mod.
@@ -6794,7 +7260,9 @@
-
+ + +
MU/CH/CH
@@ -6804,7 +7272,9 @@
-
+ + +
IN/CH/GE
@@ -6814,7 +7284,9 @@
-
+ + +
KL/IN/CH + MR
@@ -6824,7 +7296,9 @@
-
+ + +
MU/IN/CH + MR
@@ -6834,7 +7308,9 @@
-
+ + +
KL/KL/CH + MR
@@ -6844,7 +7320,9 @@
-
+ + +
KL/KL/IN + Mod.
@@ -6854,7 +7332,9 @@
-
+ + +
KL/IN/GE + MR
@@ -6864,7 +7344,9 @@
-
+ + +
MU/CH/CH + MR
@@ -6874,7 +7356,9 @@
-
+ + +
MU/KL/KO
@@ -6884,7 +7368,9 @@
-
+ + +
IN/CH/KO
@@ -6894,7 +7380,9 @@
-
+ + +
IN/CH/GE
@@ -6904,7 +7392,9 @@
-
+ + +
KL/IN/KO + Mod.
@@ -6914,7 +7404,9 @@
-
+ + +
KL/IN/KO + Mod.
@@ -6924,7 +7416,9 @@
-
+ + +
MU/CH/KO + Mod.
@@ -6934,7 +7428,9 @@
-
+ + +
KL/FF/KK
@@ -6944,7 +7440,9 @@
-
+ + +
KL/KO/KK + MR
@@ -6954,7 +7452,9 @@
-
+ + +
CH/GE/KO + MR
@@ -6964,7 +7464,9 @@
-
+ + +
KL/KL/IN
@@ -6974,7 +7476,9 @@
-
+ + +
KL/FF/FF
@@ -6984,7 +7488,9 @@
-
+ + +
MU/CH/KO + Mod.
@@ -6994,7 +7500,9 @@
-
+ + +
KL/CH/FF
@@ -7004,7 +7512,9 @@
-
+ + +
KL/KO/KK
@@ -7014,7 +7524,9 @@
-
+ + +
KL/KL/FF + Mod.
@@ -7024,7 +7536,9 @@
-
+ + +
KL/IN/CH + MR
@@ -7034,7 +7548,9 @@
-
+ + +
MU/KL/CH + Mod.
@@ -7044,7 +7560,9 @@
-
+ + +
KL/KL/FF
@@ -7054,7 +7572,9 @@
-
+ + +
KL/CH/GE + Mod.
@@ -7064,7 +7584,9 @@
-
+ + +
MU/KL/KO
@@ -7074,7 +7596,9 @@
-
+ + +
KL/IN/CH + Mod.
@@ -7084,7 +7608,9 @@
-
+ + +
MU/IN/CH + MR
@@ -7094,7 +7620,9 @@
-
+ + +
IN/CH/CH + Mod.
@@ -7104,7 +7632,9 @@
-
+ + +
IN/GE/KO
@@ -7114,7 +7644,9 @@
-
+ + +
KL/CH/GE
@@ -7124,7 +7656,9 @@
-
+ + +
MU/IN/KO
@@ -7134,7 +7668,9 @@
-
+ + +
MU/IN/KK
@@ -7144,7 +7680,9 @@
-
+ + +
IN/CH/KO + Mod.
@@ -7154,7 +7692,9 @@
-
+ + +
MU/KL/CH + Mod.
@@ -7164,7 +7704,9 @@
-
+ + +
IN/CH/KO
@@ -7174,7 +7716,9 @@
-
+ + +
KL/CH/KO + MR
@@ -7184,7 +7728,9 @@
-
+ + +
MU/IN/CH + MR
@@ -7194,7 +7740,9 @@
-
+ + +
KL/IN/IN
@@ -7204,7 +7752,9 @@
-
+ + +
IN/FF/GE
@@ -7214,7 +7764,9 @@
-
+ + +
IN/CH/FF
@@ -7224,7 +7776,9 @@
-
+ + +
KL/IN/KK + MR
@@ -7234,7 +7788,9 @@
-
+ + +
IN/CH/KO
@@ -7244,7 +7800,9 @@
-
+ + +
MU/IN/KK
@@ -7254,7 +7812,9 @@
-
+ + +
MU/KL/GE
@@ -7264,7 +7824,9 @@
-
+ + +
KL/KL/FF
@@ -7274,7 +7836,9 @@
-
+ + +
MU/KL/CH + MR
@@ -7284,7 +7848,9 @@
-
+ + +
KL/KL/FF + Mod.
@@ -7294,7 +7860,9 @@
-
+ + +
IN/KO/KK
@@ -7304,7 +7872,9 @@
-
+ + +
KL/FF/KO
@@ -7314,7 +7884,9 @@
-
+ + +
MU/IN/KO
@@ -7324,7 +7896,9 @@
-
+ + +
IN/GE/KO
@@ -7334,7 +7908,9 @@
-
+ + +
KL/IN/KO
@@ -7344,7 +7920,9 @@
-
+ + +
MU/CH/KO
@@ -7354,7 +7932,9 @@
-
+ + +
KL/IN/CH
@@ -7364,7 +7944,9 @@
-
+ + +
MU/KL/KO
@@ -7374,7 +7956,9 @@
-
+ + +
KL/IN/GE + Mod.
@@ -7384,7 +7968,9 @@
-
+ + +
MU/MU/CH + Mod.
@@ -7394,7 +7980,9 @@
-
+ + +
MU/MU/CH + Mod.
@@ -7404,7 +7992,9 @@
-
+ + +
CH/FF/KK
@@ -7414,7 +8004,9 @@
-
+ + +
IN/GE/KO
@@ -7424,7 +8016,9 @@
-
+ + +
MU/KL/CH
@@ -7434,7 +8028,9 @@
-
+ + +
MU/CH/KO + MR
@@ -7444,7 +8040,9 @@
-
+ + +
KL/CH/FF
@@ -7454,7 +8052,9 @@
-
+ + +
KL/KL/CH + MR
@@ -7464,7 +8064,9 @@
-
+ + +
KL/KL/CH + MR
@@ -7474,7 +8076,9 @@
-
+ + +
KL/IN/CH + MR
@@ -7484,7 +8088,9 @@
-
+ + +
KL/CH/GE
@@ -7494,7 +8100,9 @@
-
+ + +
MU/KL/KK
@@ -7504,7 +8112,9 @@
-
+ + +
CH/FF/KO
@@ -7514,7 +8124,9 @@
-
+ + +
KL/CH/KK + MR
@@ -7524,7 +8136,9 @@
-
+ + +
KL/CH/FF + Mod.
@@ -7534,7 +8148,9 @@
-
+ + +
KL/IN/CH + MR
@@ -7544,7 +8160,9 @@
-
+ + +
MU/IN/CH + Mod.
@@ -7554,7 +8172,9 @@
-
+ + +
MU/MU/CH + MR
@@ -7564,7 +8184,9 @@
-
+ + +
MU/CH/KK + MR
@@ -7574,7 +8196,9 @@
-
+ + +
MU/MU/IN + Mod.
@@ -7584,7 +8208,9 @@
-
+ + +
IN/IN/CH
@@ -7594,7 +8220,9 @@
-
+ + +
MU/IN/CH
@@ -7604,7 +8232,9 @@
-
+ + +
KL/FF/KK
@@ -7614,7 +8244,9 @@
-
+ + +
KL/IN/CH
@@ -7624,7 +8256,9 @@
-
+ + +
MU/IN/KO
@@ -7634,7 +8268,9 @@
-
+ + +
IN/CH/FF
@@ -7644,7 +8280,9 @@
-
+ + +
MU/IN/CH + MR
@@ -7654,7 +8292,9 @@
-
+ + +
KL/CH/KO + MR
@@ -7664,7 +8304,9 @@
-
+ + +
IN/IN/FF
@@ -7674,7 +8316,9 @@
-
+ + +
MU/CH/CH
@@ -7684,7 +8328,9 @@
-
+ + +
MU/IN/CH + Mod.
@@ -7694,7 +8340,9 @@
-
+ + +
KL/FF/KO
@@ -7704,7 +8352,9 @@
-
+ + +
MU/IN/KO
@@ -7714,7 +8364,9 @@
-
+ + +
KL/FF/KO
@@ -7724,7 +8376,9 @@
-
+ + +
MU/KL/KO
@@ -7734,7 +8388,9 @@
-
+ + +
MU/FF/KO
@@ -7744,7 +8400,9 @@
-
+ + +
MU/FF/KO
@@ -7754,7 +8412,9 @@
-
+ + +
MU/IN/KO
@@ -7764,7 +8424,9 @@
-
+ + +
KL/CH/KK + MR
@@ -7774,7 +8436,9 @@
-
+ + +
MU/IN/KO
@@ -7784,7 +8448,9 @@
-
+ + +
IN/CH/GE
@@ -7794,7 +8460,9 @@
-
+ + +
KL/IN/CH + Mod.
@@ -7804,7 +8472,9 @@
-
+ + +
MU/CH/KO
@@ -7814,7 +8484,9 @@
-
+ + +
KL/CH/CH + MR
@@ -7824,7 +8496,9 @@
-
+ + +
KL/IN/FF + Mod.
@@ -7834,7 +8508,9 @@
-
+ + +
KL/CH/KO + Mod.
@@ -7844,7 +8520,9 @@
-
+ + +
MU/IN/FF
@@ -7854,7 +8532,9 @@
-
+ + +
MU/MU/CH + Mod.
@@ -7864,7 +8544,9 @@
-
+ + +
MU/MU/CH + Mod.
@@ -7874,7 +8556,9 @@
-
+ + +
MU/MU/IN + MR
@@ -7884,7 +8568,9 @@
-
+ + +
MU/IN/CH + MR
@@ -7894,7 +8580,9 @@
-
+ + +
MU/IN/CH + MR
@@ -7904,7 +8592,9 @@
-
+ + +
KL/FF/KO
@@ -7914,7 +8604,9 @@
-
+ + +
KL/KL/CH + Mod.
@@ -7924,7 +8616,9 @@
-
+ + +
KL/FF/KK
@@ -7934,7 +8628,9 @@
-
+ + +
IN/CH/FF + MR
@@ -7944,7 +8640,9 @@
-
+ + +
MU/CH/CH
@@ -7954,7 +8652,9 @@
-
+ + +
IN/IN/CH
@@ -7964,7 +8664,9 @@
-
+ + +
MU/KL/IN
@@ -7974,7 +8676,9 @@
-
+ + +
MU/MU/CH
@@ -7984,7 +8688,9 @@
-
+ + +
KL/KO/KK
@@ -7994,7 +8700,9 @@
-
+ + +
IN/CH/KO
@@ -8004,7 +8712,9 @@
-
+ + +
MU/CH/CH
@@ -8014,7 +8724,9 @@
-
+ + +
IN/GE/KK
@@ -8024,7 +8736,9 @@
-
+ + +
MU/IN/FF
@@ -8034,7 +8748,9 @@
-
+ + +
MU/IN/CH + MR
@@ -8044,7 +8760,9 @@
-
+ + +
IN/CH/CH
@@ -8054,7 +8772,9 @@
-
+ + +
CH/CH/FF + MR
@@ -8064,7 +8784,9 @@
-
+ + +
CH/GE/KK + MR
@@ -8074,7 +8796,9 @@
-
+ + +
IN/CH/KO + MR
@@ -8084,7 +8808,9 @@
-
+ + +
IN/CH/KO
@@ -8094,7 +8820,9 @@
-
+ + +
MU/IN/GE
@@ -8104,7 +8832,9 @@
-
+ + +
MU/KL/GE
@@ -8114,7 +8844,9 @@
-
+ + +
MU/KL/GE
@@ -8124,7 +8856,9 @@
-
+ + +
MU/GE/KK
@@ -8134,7 +8868,9 @@
-
+ + +
MU/MU/GE
@@ -8144,7 +8880,9 @@
-
+ + +
MU/GE/KK
@@ -8154,7 +8892,9 @@
-
+ + +
MU/IN/KO
@@ -8164,7 +8904,9 @@
-
+ + +
IN/CH/CH + MR
@@ -8174,7 +8916,9 @@
-
+ + +
KL/IN/KO + Mod.
@@ -8184,7 +8928,9 @@
-
+ + +
IN/CH/FF
@@ -8194,17 +8940,21 @@
-
+ + +
IN/CH/KO
169
- +
-
+ + +
MU/KL/IN
@@ -8214,7 +8964,9 @@
-
+ + +
MU/KL/KO + MR
@@ -8224,7 +8976,9 @@
-
+ + +
MU/IN/KK
@@ -8234,7 +8988,9 @@
-
+ + +
MU/IN/KK
@@ -8244,7 +9000,9 @@
-
+ + +
KL/IN/CH + Mod.
@@ -8254,7 +9012,9 @@
-
+ + +
MU/KL/CH + Mod.
@@ -8264,7 +9024,9 @@
-
+ + +
MU/CH/CH
@@ -8274,7 +9036,9 @@
-
+ + +
KL/IN/CH + Mod. + MR
@@ -8284,7 +9048,9 @@
-
+ + +
KL/KL/IN
@@ -8294,7 +9060,9 @@
-
+ + +
KL/CH/FF
@@ -8304,7 +9072,9 @@
-
+ + +
KL/KL/KO + Mod.
@@ -8314,7 +9084,9 @@
-
+ + +
KL/FF/KK
@@ -8324,7 +9096,9 @@
-
+ + +
KL/FF/KK
@@ -8334,7 +9108,9 @@
-
+ + +
KL/FF/KK
@@ -8344,7 +9120,9 @@
-
+ + +
IN/GE/KO
@@ -8354,7 +9132,9 @@
-
+ + +
IN/IN/FF + Mod.
@@ -8364,7 +9144,9 @@
-
+ + +
KL/IN/FF + Mod.
@@ -8374,7 +9156,9 @@
-
+ + +
MU/IN/KO
@@ -8384,7 +9168,9 @@
-
+ + +
KL/FF/KO
@@ -8394,7 +9180,9 @@
-
+ + +
MU/KL/CH
@@ -8404,7 +9192,9 @@
-
+ + +
KL/KO/KK
@@ -8414,7 +9204,9 @@
-
+ + +
MU/KL/CH
@@ -8424,7 +9216,9 @@
-
+ + +
KL/FF/KO
@@ -8434,7 +9228,9 @@
-
+ + +
KL/KL/KK
@@ -8444,7 +9240,9 @@
-
+ + +
KL/IN/CH
@@ -8454,7 +9252,9 @@
-
+ + +
KL/IN/FF + Mod.
@@ -8464,7 +9264,9 @@
-
+ + +
KL/IN/CH
@@ -8474,7 +9276,9 @@
-
+ + +
KL/IN/IN + Mod.
@@ -8484,7 +9288,9 @@
-
+ + +
KL/FF/KO
@@ -8494,7 +9300,9 @@
-
+ + +
MU/IN/KO
@@ -8504,7 +9312,9 @@
-
+ + +
MU/MU/CH + Mod.
@@ -8514,7 +9324,9 @@
-
+ + +
MU/CH/CH
@@ -8524,7 +9336,9 @@
-
+ + +
IN/IN/FF + MR
@@ -8534,7 +9348,9 @@
-
+ + +
IN/CH/KK + MR
@@ -8544,7 +9360,9 @@
-
+ + +
KL/CH/FF
@@ -8554,7 +9372,9 @@
-
+ + +
KL/KL/KO
@@ -8564,7 +9384,9 @@
-
+ + +
MU/MU/CH + Mod.
@@ -8574,7 +9396,9 @@
-
+ + +
KL/IN/CH + Mod.
@@ -8584,7 +9408,9 @@
-
+ + +
KL/IN/CH
@@ -8594,7 +9420,9 @@
-
+ + +
KL/IN/CH
@@ -8604,7 +9432,9 @@
-
+ + +
KL/IN/CH
@@ -8614,7 +9444,9 @@
-
+ + +
KL/IN/CH
@@ -8624,7 +9456,9 @@
-
+ + +
KL/IN/CH
@@ -8634,7 +9468,9 @@
-
+ + +
KL/IN/CH
@@ -8644,7 +9480,9 @@
-
+ + +
MU/MU/KO
@@ -8654,7 +9492,9 @@
-
+ + +
CH/GE/KK + MR
@@ -8664,7 +9504,9 @@
-
+ + +
MU/IN/CH + Mod.
@@ -8674,7 +9516,9 @@
-
+ + +
KL/CH/KO
@@ -8684,7 +9528,9 @@
-
+ + +
MU/KL/KO
@@ -8694,7 +9540,9 @@
-
+ + +
MU/CH/KO
@@ -8704,7 +9552,9 @@
-
+ + +
KL/CH/FF
@@ -8714,7 +9564,9 @@
-
+ + +
MU/IN/CH
@@ -8724,7 +9576,9 @@
-
+ + +
MU/IN/CH + MR
@@ -8734,7 +9588,9 @@
-
+ + +
KL/IN/CH
@@ -8744,7 +9600,9 @@
-
+ + +
KL/CH/KO
@@ -8754,7 +9612,9 @@
-
+ + +
KL/CH/KO + MR
@@ -8764,7 +9624,9 @@
-
+ + +
MU/CH/CH + MR
@@ -8774,7 +9636,9 @@
-
+ + +
KL/CH/FF
@@ -8784,7 +9648,9 @@
-
+ + +
IN/CH/CH
@@ -8794,7 +9660,9 @@
-
+ + +
KL/IN/CH + MR
@@ -8804,7 +9672,9 @@
-
+ + +
MU/IN/KO + Mod.
@@ -8814,7 +9684,9 @@
-
+ + +
IN/FF/GE
@@ -8824,7 +9696,9 @@
-
+ + +
MU/IN/CH + Mod.
@@ -8834,7 +9708,9 @@
-
+ + +
IN/CH/GE
@@ -8844,7 +9720,9 @@
-
+ + +
IN/CH/CH + MR
@@ -8854,7 +9732,9 @@
-
+ + +
MU/CH/CH
@@ -8864,7 +9744,9 @@
-
+ + +
KL/KL/FF
@@ -8874,7 +9756,9 @@
-
+ + +
MU/CH/KO + MR
@@ -8884,7 +9768,9 @@
-
+ + +
MU/IN/CH + MR
@@ -8894,7 +9780,9 @@
-
+ + +
MU/MU/KO + MR
@@ -8904,7 +9792,9 @@
-
+ + +
IN/IN/CH + MR
@@ -8914,7 +9804,9 @@
-
+ + +
MU/CH/KO + Mod.
@@ -8924,7 +9816,9 @@
-
+ + +
IN/FF/FF
@@ -8934,7 +9828,9 @@
-
+ + +
KL/IN/CH + MR
@@ -8944,7 +9840,9 @@
-
+ + +
MU/IN/GE
@@ -8954,7 +9852,9 @@
-
+ + +
KL/IN/CH + MR
@@ -8964,7 +9864,9 @@
-
+ + +
MU/CH/GE
@@ -8974,7 +9876,9 @@
-
+ + +
KL/IN/CH
@@ -8984,7 +9888,9 @@
-
+ + +
KL/IN/FF
@@ -8994,7 +9900,9 @@
-
+ + +
MU/MU/CH + Mod.
@@ -9004,7 +9912,9 @@
-
+ + +
IN/KO/KK
@@ -9014,7 +9924,9 @@
-
+ + +
KL/CH/CH + MR
@@ -9024,7 +9936,9 @@
-
+ + +
MU/KL/FF
@@ -9034,7 +9948,9 @@
-
+ + +
IN/GE/KK
@@ -9044,7 +9960,9 @@
-
+ + +
IN/FF/KO
@@ -9054,7 +9972,9 @@
-
+ + +
MU/CH/CH
@@ -9064,7 +9984,9 @@
-
+ + +
IN/GE/GE
@@ -9074,7 +9996,9 @@
-
+ + +
IN/FF/GE
@@ -9084,7 +10008,9 @@
-
+ + +
MU/KL/CH + Mod.
@@ -9094,7 +10020,9 @@
-
+ + +
MU/KL/CH
@@ -9104,7 +10032,9 @@
-
+ + +
MU/CH/KK + Mod.
@@ -9114,7 +10044,9 @@
-
+ + +
MU/IN/GE
@@ -9124,7 +10056,9 @@
-
+ + +
MU/IN/IN
@@ -9134,7 +10068,9 @@
-
+ + +
MU/IN/KK
@@ -9144,7 +10080,9 @@
-
+ + +
IN/CH/FF
@@ -9154,7 +10092,9 @@
-
+ + +
MU/CH/CH + Mod.
@@ -9164,7 +10104,9 @@
-
+ + +
IN/FF/KO
@@ -9174,7 +10116,9 @@
-
+ + +
MU/KL/KK + Mod.
@@ -9184,7 +10128,9 @@
-
+ + +
MU/CH/KO + Mod.
@@ -9194,7 +10140,9 @@
-
+ + +
MU/IN/CH + Mod.
@@ -9204,7 +10152,9 @@
-
+ + +
MU/IN/CH + MR
@@ -9214,7 +10164,9 @@
-
+ + +
MU/CH/CH
@@ -9224,7 +10176,9 @@
-
+ + +
MU/IN/GE
@@ -9234,7 +10188,9 @@
-
+ + +
MU/CH/KO + Mod.
@@ -9244,7 +10200,9 @@
-
+ + +
KL/FF/KK + Mod.
@@ -9254,7 +10212,9 @@
-
+ + +
CH/GE/KO + MR
@@ -9264,7 +10224,9 @@
-
+ + +
KL/IN/KO
@@ -9274,7 +10236,9 @@
-
+ + +
IN/CH/CH + MR
@@ -9284,7 +10248,9 @@
-
+ + +
MU/IN/GE
@@ -9294,7 +10260,9 @@
-
+ + +
KL/FF/KO + Mod.
@@ -9304,7 +10272,9 @@
-
+ + +
IN/CH/KO
@@ -9314,7 +10284,9 @@
-
+ + +
KL/IN/FF
@@ -9324,7 +10296,9 @@
-
+ + +
IN/FF/GE
@@ -9334,7 +10308,9 @@
-
+ + +
IN/GE/KO
@@ -9344,7 +10320,9 @@
-
+ + +
KL/IN/KO + Mod.
@@ -9354,7 +10332,9 @@
-
+ + +
IN/CH/GE
@@ -9364,7 +10344,9 @@
-
+ + +
KL/KL/IN + MR
@@ -9374,7 +10356,9 @@
-
+ + +
KL/CH/FF + Mod.
@@ -9384,7 +10368,9 @@
-
+ + +
MU/MU/CH + MR
@@ -9394,7 +10380,9 @@
-
+ + +
KL/IN/GE
@@ -9404,7 +10392,9 @@
-
+ + +
KL/CH/FF
@@ -9414,7 +10404,9 @@
-
+ + +
MU/IN/GE
@@ -9424,7 +10416,9 @@
-
+ + +
MU/KL/CH
@@ -9434,7 +10428,9 @@
-
+ + +
MU/KL/CH
@@ -9444,7 +10440,9 @@
-
+ + +
MU/IN/IN
@@ -9454,7 +10452,9 @@
-
+ + +
MU/KL/KK
@@ -9464,7 +10464,9 @@
-
+ + +
MU/KL/KO
@@ -9474,7 +10476,9 @@
-
+ + +
MU/KL/CH
@@ -9484,7 +10488,9 @@
-
+ + +
MU/KL/KK
@@ -9494,7 +10500,9 @@
-
+ + +
IN/CH/FF
@@ -9504,7 +10512,9 @@
-
+ + +
MU/IN/KO + Mod.
@@ -9514,7 +10524,9 @@
-
+ + +
MU/IN/KO + Mod.
@@ -9524,7 +10536,9 @@
-
+ + +
KL/IN/CH
@@ -9534,7 +10548,9 @@
-
+ + +
MU/GE/GE
@@ -9544,7 +10560,9 @@
-
+ + +
MU/CH/GE + Mod.
@@ -9554,7 +10572,9 @@
-
+ + +
MU/IN/GE
@@ -9564,7 +10584,9 @@
-
+ + +
MU/KL/CH
@@ -9574,7 +10596,9 @@
-
+ + +
KL/IN/IN
@@ -9584,7 +10608,9 @@
-
+ + +
MU/IN/KK
@@ -9594,7 +10620,9 @@
-
+ + +
KL/CH/KK + Mod.
@@ -9604,7 +10632,9 @@
-
+ + +
MU/IN/GE
@@ -9614,7 +10644,9 @@
-
+ + +
KL/KL/IN
@@ -9624,7 +10656,9 @@
-
+ + +
IN/CH/FF
@@ -9634,7 +10668,9 @@
-
+ + +
IN/IN/FF
@@ -9644,7 +10680,9 @@
-
+ + +
KL/FF/KO
@@ -9654,7 +10692,9 @@
-
+ + +
MU/MU/KO + Mod.
@@ -9664,7 +10704,9 @@
-
+ + +
MU/IN/CH
@@ -9674,7 +10716,9 @@
-
+ + +
MU/CH/CH + MR
@@ -9684,7 +10728,9 @@
-
+ + +
MU/CH/KO + Mod.
@@ -9694,7 +10740,9 @@
-
+ + +
MU/CH/FF + MR
@@ -9704,7 +10752,9 @@
-
+ + +
MU/KL/CH + MR
@@ -9890,7 +10940,7 @@ - + @@ -11359,11 +12409,15 @@ +
Attacke
- +
+ + +
@@ -11416,7 +12470,10 @@
Parade-Aktionen
- +
+ + +
@@ -11623,12 +12680,14 @@ + @@ -12002,19 +13061,10 @@
Fernkampfangriff
+
- + - - - - - - - - - - +
Relevante Vor- und Nachteile (?)Relevante Vor- und Nachteile (?)
Dieser Abschnitt ist umgezogen. Sie finden sich im „Fertigkeiten“-Tab (zwischen dem „Grundwerte“- und dem „Inventar“-Tab) unter dem neuen Namen „berücksichtigte Vor- und Nachteile“.

Kampfsonderfertigkeiten

@@ -12668,45 +13718,45 @@
- - Anzeige - -
- -
- -
- -
- -
- -
- -
- -
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ -
+
+
AT-Wert aus aktiver Waffe (bei Wahl mehrerer aktiver Waffen wird addiert!) @@ -12738,6 +13788,48 @@

+

Update auf Version 20220116

+
+
Einführung von Betafeatures
+

+

    +
  • Betafeatures sind neue Funktionen, die neben den alten Funktionen zum Testen für die Allgemeinheit eingebaut werden. Somit können die neuen Funktionen von einer größeren Gruppe an Spielern getestet und Fehler gemeldet werden, bevor die neuen Funktionen die alten ersetzen. Die Teilnahme am Funktionstest ist zwar freiwillig, wer allerdings einen Fehler entdeckt und nicht meldet, sollte nicht davon ausgehen, dass er von anderen Spielern oder mir ebenfalls gefunden wurde. Ungemeldete Fehler können daher durch die Betaphase rutschen.
  • +
  • Die Betaphase soll verhindern, dass ein übersehener Fehler bei tiefgreifenden oder weitreichenden Veränderungen den gesamten Charakterbogen unbenutzbar macht oder den Spielspaß anderweitig stark trübt.
  • +
  • Betafeatures können an- und wieder abgeschaltet werden. Gibt es also Probleme, kann mit ausgeschaltetem Feature wie zuvor weitergespielt werden.
  • +
  • Alle Teile von Betafeatures werden mit „“ als Betafeature gekennzeichnet und sollten sich so leicht von den alten Teilen des Charakterbogens unterscheiden lassen.
  • +
  • Die Dauer der Betaphase ist nicht festgelegt und richtet sich vor allem danach, ob und, wenn ja, wie viele Fehler gemeldet werden. Am Ende der Betaphase ersetzt das Betafeature gegebenenfalls bestehende Teile des Charakterbogens und neue Teile werden fester Bestandteil für alle Spieler.
  • +
+

+
Neues Betafeature „Erkennung von Doppel/Dreifach-1/20 in 3W20-Proben“
+

+

    +
  • Unter „Konfiguration“ ist der Punkt „Betafeature testen: Erkennung von Doppel/Dreifach-1/20 in 3W20-Proben“ hinzugekommen.
  • +
  • Angeschaltet werden folgende Änderungen am Charakterbogen benutzbar: +
      +
    • Fertigkeiten-Tab: Die vier Vor- und Nachteile „Feste Matrix“, „Spruchhemmung“, „Tollpatsch“ und „Wilde Magie“ können für den Charakter gewählt werden.
    • +
    • Talente-Tab, Untertabs für Körper-, Gesellschafts-, Natur-, Wissens- und Handwerkstalente und Sprachen und Schriften: Links neben jedem Würfelknopf findet sich ein nur mit dem Betasymbol beschrifteter Würfelknopf, der die Funktionalität des danebenstehenden Würfelknopfes mittels neuer Methoden nachbildet und so ohne weitere Nutzerinteraktion korrekt erkennt, wie viele der drei Würfel kritische Erfolge oder Misserfolge waren und das Ergebnis entsprechend anzeigt. „Tollpatsch“ wird berücksichtigt. Spezialisierungsknöpfe, Metatalente und Gaben sind vorerst noch ausgenommen, werden aber nach Abschluss der Betaphase nachgezogen.
    • +
    • Magie-Tab, Untertab Zauberbogen: Links neben jedem Zauberknopf findet sich ein nur mit dem Betasymbol beschrifteter Würfelknopf, der die Funktionalität des danebenstehenden Würfelknopfes mittels neuer Methoden nachbildet und so ohne weitere Nutzerinteraktion korrekt erkennt, wie viele der drei Würfel kritische Erfolge oder Misserfolge waren und das Ergebnis entsprechend anzeigt. „Feste Matrix“, „Spruchhemmung“ und „Wilde Magie“ werden berücksichtigt. Spezialisierungsknöpfe sind vorerst noch ausgenommen, werden aber nach Abschluss der Betaphase nachgezogen.
    • +
    • Kampf-Tab, Nahkampf-Untertab und Fernkampf-Untertab: Links neben der gewöhnlichen Attacke, der gewöhnlichen Parade und dem gewöhnlichen Fernkampfangriff finden sich nur mit dem Betasymbol beschriftete Würfelknöpfe, die veränderte Werte für kritische Erfolge/Misserfolge berücksichtigen. Aktuell bedeutet dies nur, dass „Tollpatsch“ berücksichtigt wird. Anders als bei den Knöpfen für 3W20-Proben werden hier keine neuen Methoden verwendet. Diese Knöpfe sind ein Nebenprodukt der Arbeiten an den 3W20-Proben, die ich euch aber nicht vorenthalten wollte.
    • +
    +
  • +
  • Empfehlung: Video dazu anschauen.
  • +
+

+
Design
+

+

    +
  • Die unter „Kampf/VN & SF“ vorhandene Auswahl „Relevante Vor- und Nachteile“ ist umgezogen. Sie findet sich unter dem neuen Namen „Berücksichtigte Vor- und Nachteile“ im Fertigkeiten-Tab.
  • +
  • Das Konfigurationstab enthielt bislang genau ein Untertab „Anzeige“. Da dies ohnehin funktionslos war, wurde das Untertab entfernt und alle Inhalte sind direkt im Konfigurationstab zu finden. Vermutlich würde dies niemandem auffallen, wenn es hier nicht stehen würde.
  • +
+

+
Fehlerbehebungen
+

+

    +
  • Schreibung von „Lunge des Leviatan“ korrigiert
  • +
+

+
+

Update auf Version 20211218

Fehlerbehebungen @@ -12747,7 +13839,6 @@ Dieser Fehler war seit Anbeginn des Charakterbogens vorhanden und wurde von „bb-froggy“ gemeldet und in erster Version behoben. Vielen Dank dafür.

-

Update auf Version 20211101

@@ -13003,9 +14094,256 @@
- „Das Schwarze Auge“-Heldenbogen für Roll20.net, Version + „Das Schwarze Auge“-Heldenbogen für Roll20.net, Version
+ +3W20: {{computed::roll}} (Stats: {{computed::stats}}), Result: {{computed::result}}, Criticality {{computed::criticality}} +{{#rollBetween() computed::criticality 2 2}}Doppel-1!{{/rollBetween() computed::criticality 2 2}} +{{#rollBetween() computed::criticality 3 3}}Dreifach-1!{{/rollBetween() computed::criticality 3 3}} +{{#rollBetween() computed::criticality -2 -2}}Doppel-20!{{/rollBetween() computed::criticality -2 -2}} +{{#rollBetween() computed::criticality -3 -3}}Dreifach-20!{{/rollBetween() computed::criticality -3 -3}} + + + +{{#rollBetween() computed::criticality -1 1}} + {{#rollBetween() computed::result 1 1}} + + {{/rollBetween() computed::result 1 1}} + {{#rollBetween() computed::result 0 0}} +
+ {{/rollBetween() computed::result 0 0}} +{{/rollBetween() computed::criticality -1 1}} + +{{#rollBetween() computed::criticality 2 2}} +
+{{/rollBetween() computed::criticality 2 2}} +{{#rollBetween() computed::criticality 3 3}} +
+{{/rollBetween() computed::criticality 3 3}} +{{#rollBetween() computed::criticality -2 -2}} +
+{{/rollBetween() computed::criticality -2 -2}} +{{#rollBetween() computed::criticality -3 -3}} +
+{{/rollBetween() computed::criticality -3 -3}} + + + + + + + + + + + +
{{name}}
+ Talentprobe + {{#rollLess() mod 0}}{{mod}}{{/rollLess() mod 0}} + {{#rollTotal() mod 0}}±{{mod}}{{/rollTotal() mod 0}} + {{#rollGreater() mod 0}}+{{mod}}{{/rollGreater() mod 0}} + + {{#rollBetween() computed::criticality -1 1}} + {{#rollBetween() computed::result 1 1}} + gelungen + {{/rollBetween() computed::result 1 1}} + {{#rollBetween() computed::result 0 0}} + misslungen + {{/rollBetween() computed::result 0 0}} + {{/rollBetween() computed::criticality -1 1}} + {{#rollBetween() computed::criticality 2 2}} + automatisch gelungen („Doppel-1“) + {{/rollBetween() computed::criticality 2 2}} + {{#rollBetween() computed::criticality 3 3}} + automatisch und zusätzlich mit positiven Zusatzeffekten gelungen („Dreifach-1“!) + {{/rollBetween() computed::criticality 3 3}} + {{#rollBetween() computed::criticality -2 -2}} + automatisch misslungen („Doppel-20“) + {{/rollBetween() computed::criticality -2 -2}} + {{#rollBetween() computed::criticality -3 -3}} + automatisch und zusätzlich mit negativen Zusatzeffekten misslungen („Dreifach-20“!) + {{/rollBetween() computed::criticality -3 -3}} + ({{computed::roll}} TaP*).
TaW: {{wert}}Eigenschaften: {{computed::stats}}
+
+ + +{{#rollBetween() computed::criticality -1 1}} + {{#rollBetween() computed::result 1 1}} + + {{/rollBetween() computed::result 1 1}} + {{#rollBetween() computed::result 0 0}} +
+ {{/rollBetween() computed::result 0 0}} +{{/rollBetween() computed::criticality -1 1}} + +{{#rollBetween() computed::criticality 2 2}} +
+{{/rollBetween() computed::criticality 2 2}} +{{#rollBetween() computed::criticality 3 3}} +
+{{/rollBetween() computed::criticality 3 3}} +{{#rollBetween() computed::criticality -2 -2}} +
+{{/rollBetween() computed::criticality -2 -2}} +{{#rollBetween() computed::criticality -3 -3}} +
+{{/rollBetween() computed::criticality -3 -3}} + + + + + + + + + + + + + + + +
{{name}}
+ Talentprobe + {{#rollLess() mod 0}}{{mod}}{{/rollLess() mod 0}} + {{#rollTotal() mod 0}}±{{mod}}{{/rollTotal() mod 0}} + {{#rollGreater() mod 0}}+{{mod}}{{/rollGreater() mod 0}} + + {{#rollBetween() computed::criticality -1 1}} + {{#rollBetween() computed::result 1 1}} + gelungen + {{/rollBetween() computed::result 1 1}} + {{#rollBetween() computed::result 0 0}} + misslungen + {{/rollBetween() computed::result 0 0}} + {{/rollBetween() computed::criticality -1 1}} + {{#rollBetween() computed::criticality 2 2}} + automatisch gelungen („Doppel-1“) + {{/rollBetween() computed::criticality 2 2}} + {{#rollBetween() computed::criticality 3 3}} + automatisch und zusätzlich mit positiven Zusatzeffekten gelungen („Dreifach-1“!) + {{/rollBetween() computed::criticality 3 3}} + {{#rollBetween() computed::criticality -2 -2}} + automatisch misslungen („Doppel-20“) + {{/rollBetween() computed::criticality -2 -2}} + {{#rollBetween() computed::criticality -3 -3}} + automatisch und zusätzlich mit negativen Zusatzeffekten misslungen („Dreifach-20“!) + {{/rollBetween() computed::criticality -3 -3}} + ({{computed::roll}} TaP*).
TaW: {{wert}}Eigenschaften: {{computed::stats}}
Mod.: {{computed::mod}}eBE: {{ebe}}
+
+ + +{{#rollBetween() computed::criticality -1 1}} + {{#rollBetween() computed::result 1 2}} + + {{/rollBetween() computed::result 1 2}} + {{#rollBetween() computed::result -1 0}} +
+ {{/rollBetween() computed::result -1 0}} +{{/rollBetween() computed::criticality -1 1}} + +{{#rollBetween() computed::criticality 2 2}} +
+{{/rollBetween() computed::criticality 2 2}} +{{#rollBetween() computed::criticality 3 3}} +
+{{/rollBetween() computed::criticality 3 3}} +{{#rollBetween() computed::criticality -2 -2}} +
+{{/rollBetween() computed::criticality -2 -2}} +{{#rollBetween() computed::criticality -3 -3}} +
+{{/rollBetween() computed::criticality -3 -3}} + +{{#rollBetween() computed::criticality -4 -4}} +
+{{/rollBetween() computed::criticality -4 -4}} + + + + + + + + + + + + {{#rollBetween() computed::result 2 2}} + + + + {{/rollBetween() computed::result 2 2}} + {{#rollBetween() computed::result -1 -1}} + + + + {{/rollBetween() computed::result -1 -1}} +
{{name}}
+ Zauberprobe + {{#rollLess() mod 0}}{{mod}}{{/rollLess() mod 0}} + {{#rollTotal() mod 0}}±{{mod}}{{/rollTotal() mod 0}} + {{#rollGreater() mod 0}}+{{mod}}{{/rollGreater() mod 0}} + + {{#rollBetween() computed::criticality -1 1}} + {{#rollBetween() computed::result 1 2}} + gelungen + {{/rollBetween() computed::result 1 2}} + {{#rollBetween() computed::result -1 0}} + misslungen + {{/rollBetween() computed::result -1 0}} + {{/rollBetween() computed::criticality -1 1}} + {{#rollBetween() computed::criticality 2 2}} + automatisch gelungen („Doppel-1“) + {{/rollBetween() computed::criticality 2 2}} + {{#rollBetween() computed::criticality 3 3}} + automatisch und zusätzlich mit positiven Zusatzeffekten gelungen („Dreifach-1“!) + {{/rollBetween() computed::criticality 3 3}} + {{#rollBetween() computed::criticality -2 -2}} + automatisch misslungen („Doppel-20“) + {{/rollBetween() computed::criticality -2 -2}} + {{#rollBetween() computed::criticality -3 -3}} + automatisch und zusätzlich mit negativen Zusatzeffekten misslungen („Dreifach-20“!) + {{/rollBetween() computed::criticality -3 -3}} + {{#rollBetween() computed::criticality -4 -4}} + automatisch und mit vollen Kosten misslungen (Spruchhemmung) + {{/rollBetween() computed::criticality -4 -4}} + ({{computed::roll}} ZfP*).
ZfW: {{wert}}Eigenschaften: {{computed::stats}}
Feste Matrix hat Schlimmeres verhindert!
Feste Matrix hat Schlimmeres verhindert!
+
+ + +{{#rollBetween() computed::result 1 1}} + +{{/rollBetween() computed::result 1 1}} +{{#rollBetween() computed::result 0 0}} +
+{{/rollBetween() computed::result 0 0}} + + + + + + + + + + +
{{name}}
+ Mirakelprobe + {{#rollLess() mod 0}}{{mod}}{{/rollLess() mod 0}} + {{#rollTotal() mod 0}}±{{mod}}{{/rollTotal() mod 0}} + {{#rollGreater() mod 0}}+{{mod}}{{/rollGreater() mod 0}} + + {{#rollBetween() computed::result 1 1}} + gelungen + {{/rollBetween() computed::result 1 1}} + {{#rollBetween() computed::result 0 0}} + misslungen + {{/rollBetween() computed::result 0 0}} + + ({{computed::roll}} LkP*).
LkW: {{wert}}Eigenschaften: {{computed::stats}}
+
{{#rollGreater() Talent -1}} @@ -16077,6 +17415,107 @@ on("change:mu change:kl change:in change:ch change:ff change:ge change:ko change }); }); +on( +"change:beta_crp_crit_rolls " + +"change:safe-sheet-open " + +"change:n_tollpatsch " + +"change:n_wildemagie", function(eventInfo) { + var caller = "Action Listener (Crit Level Updater)"; + var trigger = eventInfo["triggerName"]; + var newValue = eventInfo["newValue"]; + const attrsToGet = [ + "n_tollpatsch", + "n_wildemagie" + ]; + safeGetAttrs(attrsToGet, function(v) { + // If the beta is turned off, return all cs/cf values to the old default 20 + if (trigger === "beta_crp_crit_rolls" && newValue === "0") + { + v['n_tollpatsch'] = "0"; + v['n_wildemagie'] = "0"; + } + var results = calcCritLevels({'Tollpatsch': v['n_tollpatsch'], 'wilde Magie': v['n_wildemagie']}); + var attrsToChange = { + 'cs_talent': results['talent']['success'], + 'cf_talent': results['talent']['failure'], + 'cs_kampf_at': results['kampf_at']['success'], + 'cf_kampf_at': results['kampf_at']['failure'], + 'cs_kampf_pa': results['kampf_pa']['success'], + 'cf_kampf_pa': results['kampf_pa']['failure'], + 'cs_kampf_fk': results['kampf_fk']['success'], + 'cf_kampf_fk': results['kampf_fk']['failure'], + 'cs_zauber': results['zauber']['success'], + 'cf_zauber': results['zauber']['failure'], + 'cs_ritual': results['ritual']['success'], + 'cf_ritual': results['ritual']['failure'] + } + safeSetAttrs(attrsToChange); + }); +}); + +on( +"change:safe-sheet-open " + +"change:v_festematrix " + +"change:n_spruchhemmung " + +"change:n_wildemagie", function(eventInfo) { + var caller = "Action Listener (Firm Matrix/Spell Inhibition/Clumsy Fellow/Wild Magic)"; + const attrsToGet = [ + "v_festematrix", + "n_spruchhemmung", + "n_wildemagie" + ]; + + safeGetAttrs(attrsToGet, function(v) { + var trigger = eventInfo["sourceAttribute"]; + var newValue = eventInfo["newValue"]; + var festeMatrix = v["v_festematrix"]; + var spruchhemmung = v["n_spruchhemmung"]; + var wildeMagie = v["n_wildemagie"]; + + var attrsToChange = {}; + // Firm Matrix cannot be taken with either Spell Inhibition or Wild Magic + if (trigger === "v_festematrix" && newValue === "1") + { + attrsToChange["n_spruchhemmung"] = "0"; + attrsToChange["n_wildemagie"] = "0"; + } + if ( + (trigger === "n_spruchhemmung" || trigger === "n_wildemagie") + && + newValue === "1" + ) + { + attrsToChange["v_festematrix"] = "0"; + } + + // If this is triggered by sheet opening and we find an impossible situation, rectify it. + if (trigger === "safe-sheet-open" && festeMatrix === "1") + { + if ( + (spruchhemmung === "1" && wildeMagie === "0") || + (spruchhemmung === "0" && wildeMagie === "1") + ) + { + attrsToChange["n_spruchhemmung"] = "0"; + attrsToChange["n_wildemagie"] = "0"; + } else if (spruchhemmung === "1" && wildeMagie === "1") + { + attrsToChange["v_festematrix"] = "0"; + } + } + + if ( + !( + Object.keys(attrsToChange).length === 0 && + Object.getPrototypeOf(attrsToChange) === Object.prototype + ) + ) + { + safeSetAttrs(attrsToChange); + } + }); +}); + on("change:ap_gesamt change:ap_ausgegeben", function(eventInfo) { safeGetAttrs(["ap_gesamt", "ap_ausgegeben"], function(v) { safeSetAttrs({ @@ -16195,7 +17634,8 @@ var versionsWithMigrations = [ 20200809, 20210413, 20210718, - 20211010 + 20211010, + 20220116 ] /* @@ -16649,7 +18089,7 @@ function migrateTo20210718 (migrationChain) { safeGetAttrs(requirements, function(values) { results = checkRequiredProperties(requirements, values); if (results["errors"] >= 1) { - debugLog(caller, "Missing properties: '" + results["missing"] + "'. Using default values. 0 for 'Ges_BE', 'BE_Last', 'BE_TaW' and 'sf_rustungsgewohnungIII'."); + debugLog(caller, "Missing properties: '" + results["missing"].toString() + "'. Using default values. 0 for 'Ges_BE', 'BE_Last', 'BE_TaW' and 'sf_rustungsgewohnungIII'."); for (req of requirements) { if (!values.hasOwnProperty(req)) { values[req] = defaultValue; @@ -16700,6 +18140,58 @@ function migrateTo20211010(migrationChain) { }); } +/* + Migration steps: + - Initialize new attributes for critical success/failure to default + - Build beta roll button ability calls +*/ +function migrateTo20220116(migrationChain) { + var caller = "migrateTo20220116"; + debugLog(caller, "Invoked."); + + var results = calcCritLevels({'Tollpatsch': 0, 'wilde Magie': 0}); + var attrsToChange = { + 'cs_talent': results['talent']['success'], + 'cf_talent': results['talent']['failure'], + 'cs_kampf_at': results['kampf_at']['success'], + 'cf_kampf_at': results['kampf_at']['failure'], + 'cs_kampf_pa': results['kampf_pa']['success'], + 'cf_kampf_pa': results['kampf_pa']['failure'], + 'cs_kampf_fk': results['kampf_fk']['success'], + 'cf_kampf_fk': results['kampf_fk']['failure'], + 'cs_zauber': results['zauber']['success'], + 'cf_zauber': results['zauber']['failure'], + 'cs_ritual': results['ritual']['success'], + 'cf_ritual': results['ritual']['failure'] + } + + // Build list of attributes + var attrsToGet = ["character_name"]; + var ebeTalents = [] + for(talent of talents_ebe) + { + ebeTalents.push(talent + "-ebe"); + } + for(attr of [].concat(talents, ebeTalents, spells)) + { + attrsToGet.push(attr + "_action"); + } + safeGetAttrs(attrsToGet, function(v) { + for (attr of attrsToGet) + { + // No action buttons for character name and combat techniques required + if (attr.match("t_ka_") || attr === "character_name") continue; + attrsToChange[attr] = "%{" + v["character_name"] + "|" + attr.replace(/_action$/gm, "") + "-action}"; + } + + attrsToChange["eidsegen_action"] = "%{" + v["character_name"] + "|eidsegen-action}"; + + debugLog(caller, attrsToChange); + safeSetAttrs(attrsToChange, {}, function(){ + callNextMigration(migrationChain); + }); + }); +} on("sheet:opened", function() { migrationCheck(); @@ -17299,7 +18791,7 @@ function calculateAEBase(values) { var reqCheck = checkRequiredProperties(requiredProperties, values); if (reqCheck["errors"] > 0) { - debugLog(func, "Error:", func, "stopped due to missing properties in input. Nothing returned. Missing properties:", reqCheck["missing"]); + debugLog(func, "Error:", func, "stopped due to missing properties in input. Nothing returned. Missing properties:", reqCheck["missing"].toString()); return; } @@ -17513,7 +19005,7 @@ function calculateWoundModifiers(values) { var reqCheck = checkRequiredProperties(requiredProperties, values); if (reqCheck["errors"] > 0) { - debugLog(func, "Error:", func, "stopped due to", reqCheck["errors"], "missing properties in input. Nothing returned. Missing properties:", reqCheck["missing"]); + debugLog(func, "Error:", func, "stopped due to", reqCheck["errors"], "missing properties in input. Nothing returned. Missing properties:", reqCheck["missing"].toString()); return; } @@ -18064,7 +19556,7 @@ function checkRequiredProperties(properties, values) { missing.push(req); } } - return { "errors": errors, "missing": missing.toString() }; + return { "errors": errors, "missing": missing }; } /* @@ -18127,4 +19619,1881 @@ function prettifyMod(uglyModifier) { } return prettyModifier; } + +/* + calcCritLevels +Calculates the required d20 rolls for critical success/failure by check type +effects (object): + Tollpatsch + wilde Magie + // effects below not yet used, added for completeness and later implementation + Axxeleratus, Blitzgeschwind + Murks und Patz + Reversalis(Murks und Patz) + Standfest Katzengleich + Stillstand + Reversalis(Stillstand) + Thalionmels Schlachtgesang + // effects below ignored and not added due to complex implementation + Sensattaco + Reversalis(Sensattaco) + Reversalis(Standfest) +It outputs an object with one property per check type containing one object with + maximum roll triggering critical success (default: 1) + minimum roll triggering critical failure (default: 20) +Note: No critical success/failure for liturgies (see Wege der Götter, p. 242). +*/ +function calcCritLevels (effects) { + const caller = 'calcCritLevels'; + var result = { + 'talent': {'success': 1, 'failure': 20}, + 'kampf_at': {'success': 1, 'failure': 20}, + 'kampf_pa': {'success': 1, 'failure': 20}, + 'kampf_fk': {'success': 1, 'failure': 20}, + 'zauber': {'success': 1, 'failure': 20}, + 'ritual': {'success': 1, 'failure': 20} + }; + const types = [ + 'talent', + 'kampf_at', 'kampf_pa', 'kampf_fk', + 'zauber', 'ritual' + ]; + const effectList = [ + 'Tollpatsch', + 'wilde Magie', + 'Axxeleratus, Blitzgeschwind', + 'Murks und Patz', + 'Reversalis(Murks und Patz)', + 'Standfest Katzengleich', + 'Stillstand', + 'Reversalis(Stillstand)', + 'Thalionmels Schlachtgesang' + ]; + // Check type, per check type list influence on critical success/failure per effect + // Higher values for critical success = good (+2 means 1, 2, 3 are success) + // Lower values for critical failure = bad (-2 means 18, 19, 20 are failure) + // Values outside of d20 results (< 1, > 20): critical not possible + // Karmic effects trump magic effects + const effectMatrix = { + 'talent': { + 'Tollpatsch': { 'success': 0, 'failure': -1 }, + 'wilde Magie': { 'success': 0, 'failure': 0 }, + 'Axxeleratus, Blitzgeschwind': { 'success': 0, 'failure': 0 }, + 'Murks und Patz': { 'success': 0, 'failure': 0 }, + 'Reversalis(Murks und Patz)': { 'success': 0, 'failure': 0 }, + 'Standfest Katzengleich': { 'success': 0, 'failure': 0 }, + 'Stillstand': { 'success': 0, 'failure': 0 }, + 'Reversalis(Stillstand)': { 'success': 0, 'failure': 0 }, + 'Thalionmels Schlachtgesang': { 'success': 0, 'failure': 0 } + }, + 'kampf_at': { + 'Tollpatsch': { 'success': 0, 'failure': -1 }, + 'wilde Magie': { 'success': 0, 'failure': 0 }, + 'Axxeleratus, Blitzgeschwind': { 'success': 0, 'failure': -2 }, + 'Murks und Patz': { 'success': -50, 'failure': -50 }, + 'Reversalis(Murks und Patz)': { 'success': 50, 'failure': 50 }, + 'Standfest Katzengleich': { 'success': 0, 'failure': 50 }, + 'Stillstand': { 'success': 0, 'failure': 50 }, + 'Reversalis(Stillstand)': { 'success': 0, 'failure': -2 }, + 'Thalionmels Schlachtgesang': { 'success': 0, 'failure': 100 } + }, + 'kampf_pa': { + 'Tollpatsch': { 'success': 0, 'failure': -1 }, + 'wilde Magie': { 'success': 0, 'failure': 0 }, + 'Axxeleratus, Blitzgeschwind': { 'success': 0, 'failure': -2 }, + 'Murks und Patz': { 'success': -50, 'failure': -50 }, + 'Reversalis(Murks und Patz)': { 'success': 50, 'failure': 50 }, + 'Standfest Katzengleich': { 'success': 0, 'failure': 50 }, + 'Stillstand': { 'success': 0, 'failure': 50 }, + 'Reversalis(Stillstand)': { 'success': 0, 'failure': -2 }, + 'Thalionmels Schlachtgesang': { 'success': 0, 'failure': 100 } + }, + 'kampf_fk': { + 'Tollpatsch': { 'success': 0, 'failure': -1 }, + 'wilde Magie': { 'success': 0, 'failure': 0 }, + 'Axxeleratus, Blitzgeschwind': { 'success': 0, 'failure': -2 }, + 'Murks und Patz': { 'success': -50, 'failure': -50 }, + 'Reversalis(Murks und Patz)': { 'success': 50, 'failure': 50 }, + 'Standfest Katzengleich': { 'success': 0, 'failure': 0 }, + 'Stillstand': { 'success': 0, 'failure': 50 }, + 'Reversalis(Stillstand)': { 'success': 0, 'failure': -2 }, + 'Thalionmels Schlachtgesang': { 'success': 0, 'failure': 0 } + }, + 'zauber': { + 'Tollpatsch': { 'success': 0, 'failure': 0 }, + 'wilde Magie': { 'success': 0, 'failure': -1 }, + 'Axxeleratus, Blitzgeschwind': { 'success': 0, 'failure': 0 }, + 'Murks und Patz': { 'success': 0, 'failure': 0 }, + 'Reversalis(Murks und Patz)': { 'success': 0, 'failure': 0 }, + 'Standfest Katzengleich': { 'success': 0, 'failure': 0 }, + 'Stillstand': { 'success': 0, 'failure': 0 }, + 'Reversalis(Stillstand)': { 'success': 0, 'failure': 0 }, + 'Thalionmels Schlachtgesang': { 'success': 0, 'failure': 0 } + }, + 'ritual': { + 'Tollpatsch': { 'success': 0, 'failure': 0 }, + 'wilde Magie': { 'success': 0, 'failure': -1 }, + 'Axxeleratus, Blitzgeschwind': { 'success': 0, 'failure': 0 }, + 'Murks und Patz': { 'success': 0, 'failure': 0 }, + 'Reversalis(Murks und Patz)': { 'success': 0, 'failure': 0 }, + 'Standfest Katzengleich': { 'success': 0, 'failure': 0 }, + 'Stillstand': { 'success': 0, 'failure': 0 }, + 'Reversalis(Stillstand)': { 'success': 0, 'failure': 0 }, + 'Thalionmels Schlachtgesang': { 'success': 0, 'failure': 0 } + } + }; + /* Input Sanitation */ + // Effects + var propertyCheck = checkRequiredProperties(effectList, effects); + if (propertyCheck['errors'] >= 1) + { + debugLog(caller, 'Missing properties:', propertyCheck['missing'], '. Missing values added with default value 0.'); + for (property of propertyCheck['missing']) + { + effects[property] = 0; + } + } + + // Assumption: safeGetAttrs() used, so no undefined or NaN + // Correct values: 0 or 1 + for (property of effectList) + { + if (isNaN(parseInt(effects[property]))) + { + debugLog(caller, 'Property not a number:', property, 'with value', effects[property] + '. Assuming 0.'); + effects[property] = 0; + } else { + if (parseInt(effects[property]) < 0) + { + effects[property] = 0; + } else if (parseInt(effects[property]) > 1) { + effects[property] = 1; + } + } + } + debugLog(caller, 'Inputs sanitized: effects:', effects); + + /* Calculations */ + for (type of types) + { + for (effect of effectList) + { + for (crit of ['success', 'failure']) + result[type][crit] += effects[effect] * effectMatrix[type][effect][crit]; + } + } + + debugLog(caller, 'Result:', result); + return result; +} + +/* + Constants for internally used talent and spell names + +t: Talent + t_ka: Kampftechnik + t_ko: Körpertalent + t_ge: Gesellschaftstalent + t_n: Naturtalent + t_w: Wissenstalent + t_sp: Sprache + t_sc: Schrift + t_h: Handwerk + t_ga: Gabe + t_m: Metatalent +z: Zauber +Individual spell names are generally based on a/the short name. One of the exceptions: Spells from Dark Ages have their full names. + +*/ +const talents = [ + 't_ka_anderthalbhaender', + 't_ka_armbrust', + 't_ka_belagerungswaffen', + 't_ka_blasrohr', + 't_ka_bogen', + 't_ka_diskus', + 't_ka_dolche', + 't_ka_fechtwaffen', + 't_ka_hiebwaffen', + 't_ka_infanteriewaffen', + 't_ka_kettenstaebe', + 't_ka_kettenwaffen', + 't_ka_lanzenreiten', + 't_ka_peitsche', + 't_ka_raufen', + 't_ka_ringen', + 't_ka_saebel', + 't_ka_schleuder', + 't_ka_schwerter', + 't_ka_speere', + 't_ka_staebe', + 't_ka_wurfbeile', + 't_ka_wurfmesser', + 't_ka_wurfspeere', + 't_ka_zweihandflegel', + 't_ka_zweihandhiebwaffen', + 't_ka_zweihandschwerter', + 't_ko_akrobatik', + 't_ko_athletik', + 't_ko_fliegen', + 't_ko_gaukeleien', + 't_ko_klettern', + 't_ko_koerperbeherrschung', + 't_ko_reiten', + 't_ko_schleichen', + 't_ko_schwimmen', + 't_ko_selbstbeherrschung', + 't_ko_sichverstecken', + 't_ko_singen', + 't_ko_sinnenschaerfe', + 't_ko_skifahren', + 't_ko_stimmenimitieren', + 't_ko_tanzen', + 't_ko_taschendiebstahl', + 't_ko_zechen', + 't_ge_betoeren', + 't_ge_etikette', + 't_ge_gassenwissen', + 't_ge_lehren', + 't_ge_menschenkenntnis', + 't_ge_schauspielerei', + 't_ge_schriftlicherausdruck', + 't_ge_sichverkleiden', + 't_ge_ueberreden', + 't_ge_ueberzeugen', + 't_n_faehrtensuchen', + 't_n_fallenstellen', + 't_n_fesseln', + 't_n_fischenangeln', + 't_n_orientierung', + 't_n_wettervorhersage', + 't_n_wildnisleben', + 't_w_anatomie', + 't_w_baukunst', + 't_w_brettspiel', + 't_w_geographie', + 't_w_geschichtswissen', + 't_w_gesteinskunde', + 't_w_goetterkulte', + 't_w_heraldik', + 't_w_huettenkunde', + 't_w_kriegskunst', + 't_w_kryptographie', + 't_w_magiekunde', + 't_w_mechanik', + 't_w_pflanzenkunde', + 't_w_philosophie', + 't_w_rechnen', + 't_w_rechtskunde', + 't_w_sagenlegenden', + 't_w_schaetzen', + 't_w_sprachenkunde', + 't_w_staatskunst', + 't_w_sternkunde', + 't_w_tierkunde', + 't_sp_garethi', + 't_sp_bosparano', + 't_sp_aureliani', + 't_sp_zyklopaeisch', + 't_sp_tulamidya', + 't_sp_urtulamidya', + 't_sp_zelemja', + 't_sp_alaani', + 't_sp_zhulchammaqra', + 't_sp_ferkina', + 't_sp_ruuz', + 't_sp_alteskemi', + 't_sp_rabensprache', + 't_sp_thorwalsch', + 't_sp_hjaldingsch', + 't_sp_isdira', + 't_sp_asdharia', + 't_sp_rogolan', + 't_sp_angram', + 't_sp_ologhaijan', + 't_sp_oloarkh', + 't_sp_mahrisch', + 't_sp_rissoal', + 't_sp_drachisch', + 't_sp_goblinisch', + 't_sp_grolmisch', + 't_sp_koboldisch', + 't_sp_molochisch', + 't_sp_neckergesang', + 't_sp_nujuka', + 't_sp_rssahh', + 't_sp_trollisch', + 't_sp_waldmenschensprachen', + 't_sp_zlit', + 't_sp_zhayad', + 't_sp_atak', + 't_sp_fuechsisch', + 't_sc_altesalaani', + 't_sc_alteskemi', + 't_sc_amulashtra', + 't_sc_angram', + 't_sc_arkanil', + 't_sc_chrmk', + 't_sc_chuchas', + 't_sc_drakhardzinken', + 't_sc_draknedglyphen', + 't_sc_geheiligteglyphenvonunau', + 't_sc_gimaril', + 't_sc_gjalskisch', + 't_sc_hjaldingscherunen', + 't_sc_imperialezeichen', + 't_sc_isdiraasdharia', + 't_sc_kuslikerzeichen', + 't_sc_mahrischeglyphen', + 't_sc_nanduria', + 't_sc_rogolan', + 't_sc_trollischeraumbilderschrift', + 't_sc_tulamidya', + 't_sc_urtulamidya', + 't_sc_zhayad', + 't_h_abrichten', + 't_h_ackerbau', + 't_h_alchimie', + 't_h_bergbau', + 't_h_bogenbau', + 't_h_bootefahren', + 't_h_brauer', + 't_h_drucker', + 't_h_fahrzeuglenken', + 't_h_falschspiel', + 't_h_feinmechanik', + 't_h_feuersteinbearbeitung', + 't_h_fleischer', + 't_h_gerber', + 't_h_glaskunst', + 't_h_grobschmied', + 't_h_handel', + 't_h_hauswirtschaft', + 't_h_heilkundegift', + 't_h_heilkundekrankheiten', + 't_h_heilkundeseele', + 't_h_heilkundewunden', + 't_h_holzbearbeitung', + 't_h_instrumentenbauer', + 't_h_kartographie', + 't_h_kochen', + 't_h_kristallzucht', + 't_h_lederarbeiten', + 't_h_malenzeichnen', + 't_h_maurer', + 't_h_metallguss', + 't_h_musizieren', + 't_h_schloesserknacken', + 't_h_schnapsbrennen', + 't_h_schneidern', + 't_h_seefahrt', + 't_h_seiler', + 't_h_steinmetz', + 't_h_steinschneider', + 't_h_stellmacher', + 't_h_stoffefaerben', + 't_h_taetowieren', + 't_h_toepfern', + 't_h_viehzucht', + 't_h_webkunst', + 't_h_winzer', + 't_h_zimmermann' +]; + +const talents_ebe = [ + 't_ko_akrobatik', + 't_ko_athletik', + 't_ko_fliegen', + 't_ko_gaukeleien', + 't_ko_klettern', + 't_ko_koerperbeherrschung', + 't_ko_reiten', + 't_ko_schleichen', + 't_ko_schwimmen', + 't_ko_sichverstecken', + 't_ko_singen', + 't_ko_skifahren', + 't_ko_stimmenimitieren', + 't_ko_tanzen', + 't_ko_taschendiebstahl' +]; + +const spells = [ + 'z_abvenenum', + 'z_accuratum', + 'z_adamantium', + 'z_adlerauge', + 'z_adlerschwinge', + 'z_aeolitus', + 'z_aerofugo', + 'z_aerogelo', + 'z_aeropulvis', + 'z_alpgestalt', + 'z_analys', + 'z_aengstelindern', + 'z_animatio', + 'z_applicatus', + 'z_aquafaxius', + 'z_aquaqueris', + 'z_aquasphaero', + 'z_arachnea', + 'z_arcanovi', + 'z_archofaxius', + 'z_archosphaero', + 'z_armatrutz', + 'z_atemnot', + 'z_attributo', + 'z_aufgeblasen', + 'z_augedeslimbus', + 'z_aureolus', + 'z_aurisnasusoculus', + 'z_axxeleratus', + 'z_balsam', + 'z_bandundfessel', + 'z_bannbaladin', + 'z_baerenruhe', + 'z_beherrschungbrechen', + 'z_beschwoerungvereiteln', + 'z_bewegungstoeren', + 'z_blendwerk', + 'z_blickaufswesen', + 'z_blickdurchfremdeaugen', + 'z_blickindiegedanken', + 'z_blickindievergangenheit', + 'z_blitz', + 'z_boeserblick', + 'z_brenne', + 'z_caldofrigo', + 'z_chamaelioni', + 'z_chimaeroform', + 'z_chronoklassis', + 'z_chrononautos', + 'z_claudibus', + 'z_corpofesso', + 'z_corpofrigo', + 'z_cryptographo', + 'z_custodosigil', + 'z_daemonenbann', + 'z_delicioso', + 'z_desintegratus', + 'z_destructibo', + 'z_dichterunddenker', + 'z_dschinnenruf', + 'z_dunkelheit', + 'z_duplicatus', + 'z_dz_agrimothbann', + 'z_dz_belzhorashbann', + 'z_dz_bienenschwarm', + 'z_dz_entfesselungdesgetiers', + 'z_dz_gebieterdertiefe', + 'z_dz_geschossderniederhoellen', + 'z_dz_grolmenseele', + 'z_dz_hauchdertiefentochter', + 'z_dz_hexagrammadschinnenbann', + 'z_dz_hornissenruf', + 'z_dz_igniflumenflammenspur', + 'z_dz_igniquerisfeuerkragen', + 'z_dz_leibaustausendfliegen', + 'z_dz_schlangenruf', + 'z_dz_seelenfeuerlichterloh', + 'z_dz_sphaerovisioschreckensbild', + 'z_dz_spinnennetz', + 'z_dz_spinnenruf', + 'z_dz_tanzdererloesung', + 'z_dz_thargunitothbann', + 'z_dz_tierruf', + 'z_dz_unsichtbareglut', + 'z_dz_valetudolebenskraft', + 'z_dz_weisheitdersteine', + 'z_ecliptifactus', + 'z_eigenschaftwiederherstellen', + 'z_eigneaengste', + 'z_einflussbannen', + 'z_einsmitdernatur', + 'z_eisenrost', + 'z_eiseskaelte', + 'z_eiswirbel', + 'z_elementarbann', + 'z_elementarerdiener', + 'z_elfenstimme', + 'z_erinnerungverlassedich', + 'z_exposami', + 'z_falkenauge', + 'z_favilludo', + 'z_fesselranken', + 'z_feuermaehne', + 'z_feuersturm', + 'z_firnlauf', + 'z_flimflam', + 'z_fluchderpestilenz', + 'z_foramen', + 'z_fortifex', + 'z_frigifaxius', + 'z_frigisphaero', + 'z_fulminictus', + 'z_gardianum', + 'z_gedankenbilder', + 'z_gefaessderjahre', + 'z_gefunden', + 'z_geisterbann', + 'z_geisterruf', + 'z_glacoflumen', + 'z_gletscherwand', + 'z_granitundmarmor', + 'z_grossegier', + 'z_grosseverwirrung', + 'z_halluzination', + 'z_harmlosegestalt', + 'z_hartesschmelze', + 'z_haselbusch', + 'z_heilkraftbannen', + 'z_hellsichttrueben', + 'z_herbeirufungvereiteln', + 'z_herrueberdastierreich', + 'z_herzschlagruhe', + 'z_hexenblick', + 'z_hexengalle', + 'z_hexenholz', + 'z_hexenknoten', + 'z_hexenkrallen', + 'z_hexenspeichel', + 'z_hilfreichetatze', + 'z_hoellenpein', + 'z_holterdipolter', + 'z_horriphobus', + 'z_humofaxius', + 'z_humosphaero', + 'z_ignifaxius', + 'z_ignifugo', + 'z_ignimorpho', + 'z_igniplano', + 'z_ignisphaero', + 'z_ignorantia', + 'z_illusionaufloesen', + 'z_immortalis', + 'z_imperavi', + 'z_impersona', + 'z_infinitum', + 'z_invercano', + 'z_invocatiomaior', + 'z_invocatiominor', + 'z_iribaarshand', + 'z_juckreiz', + 'z_karnifilo', + 'z_katzenaugen', + 'z_klarumpurum', + 'z_klickeradomms', + 'z_koboldgeschenk', + 'z_koboldovision', + 'z_koerperlosereise', + 'z_kommkoboldkomm', + 'z_krabbelnderschrecken', + 'z_kraftdeserzes', + 'z_kraftdeshumus', + 'z_kraehenruf', + 'z_kroetensprung', + 'z_kulminatio', + 'z_kusch', + 'z_lachdichgesund', + 'z_lachkrampf', + 'z_langerlulatsch', + 'z_lastdesalters', + 'z_leibdererde', + 'z_leibderwogen', + 'z_leibdeseises', + 'z_leibdeserzes', + 'z_leibdesfeuers', + 'z_leibdeswindes', + 'z_leidensbund', + 'z_levthansfeuer', + 'z_limbusversiegeln', + 'z_lockruf', + 'z_lungedesleviatan', + 'z_madasspiegel', + 'z_magischerraub', + 'z_mahlstrom', + 'z_malmkreis', + 'z_manifesto', + 'z_meisterderelemente', + 'z_meisterminderergeister', + 'z_memorabia', + 'z_memorans', + 'z_menetekel', + 'z_metamagieneutralisieren', + 'z_metamorphogletscherform', + 'z_metamorphofelsenform', + 'z_motoricus', + 'z_movimento', + 'z_murksundpatz', + 'z_nackedei', + 'z_nebelleib', + 'z_nebelwand', + 'z_nekropathia', + 'z_nihilogravo', + 'z_nuntiovolo', + 'z_objectoobscuro', + 'z_objectofixo', + 'z_objectovoco', + 'z_objektentzaubern', + 'z_oculus', + 'z_odem', + 'z_orcanofaxius', + 'z_orcanosphaero', + 'z_pandaemonium', + 'z_panik', + 'z_papperlapapp', + 'z_paralysis', + 'z_pectetondo', + 'z_penetrizzel', + 'z_pentagramma', + 'z_pestilenzerspueren', + 'z_pfeilderluft', + 'z_pfeildeseises', + 'z_pfeildeserzes', + 'z_pfeildesfeuers', + 'z_pfeildeshumus', + 'z_pfeildeswassers', + 'z_planastrale', + 'z_plumbumbarum', + 'z_projektimago', + 'z_protectionis', + 'z_psychostabilis', + 'z_radau', + 'z_reflectimago', + 'z_reptilea', + 'z_respondami', + 'z_reversalis', + 'z_ruhekoerper', + 'z_salander', + 'z_sanftmut', + 'z_sapefacta', + 'z_satuariasherrlichkeit', + 'z_schabernack', + 'z_schadenszauberbannen', + 'z_schelmenkleister', + 'z_schelmenlaune', + 'z_schelmenmaske', + 'z_schelmenrausch', + 'z_schleierderunwissenheit', + 'z_schwarzerschrecken', + 'z_schwarzundrot', + 'z_seelentiererkennen', + 'z_seelenwanderung', + 'z_seidenweich', + 'z_seidenzunge', + 'z_sensattacco', + 'z_sensibar', + 'z_serpentialis', + 'z_silentium', + 'z_sinesigil', + 'z_skelettarius', + 'z_solidirid', + 'z_somnigravis', + 'z_spinnenlauf', + 'z_spurlos', + 'z_standfest', + 'z_staubwandle', + 'z_steinwandle', + 'z_steinmauer', + 'z_stillstand', + 'z_stimmendeswindes', + 'z_sumpfstrudel', + 'z_sumuselixiere', + 'z_tauschrausch', + 'z_tempusstasis', + 'z_tierebesprechen', + 'z_tiergedanken', + 'z_tlalucsodem', + 'z_toteshandle', + 'z_transformatio', + 'z_transmutare', + 'z_transversalis', + 'z_traumgestalt', + 'z_umbraporta', + 'z_unberuehrt', + 'z_unitatio', + 'z_unsichtbarerjaeger', + 'z_veraenderungaufheben', + 'z_verschwindibus', + 'z_verstaendigungstoeren', + 'z_verwandlungbeenden', + 'z_vipernblick', + 'z_visibli', + 'z_vocolimbo', + 'z_vogelzwitschern', + 'z_wandausdornen', + 'z_wandausflammen', + 'z_warmesblut', + 'z_warmesgefriere', + 'z_wasseratem', + 'z_wasserwall', + 'z_weicheserstarre', + 'z_weihrauchwolke', + 'z_weisheitderbaeume', + 'z_weissemaehn', + 'z_wellenlauf', + 'z_wettermeisterschaft', + 'z_widerwille', + 'z_windbarriere', + 'z_windgefluester', + 'z_windhose', + 'z_windstille', + 'z_wipfellauf', + 'z_xenographus', + 'z_zagibu', + 'z_zappenduster', + 'z_zauberklinge', + 'z_zaubernahrung', + 'z_zauberwesen', + 'z_zauberzwang', + 'z_zornderelemente', + 'z_zungelaehmen', + 'z_zwingtanz' +]; + +/* + Constants for translating (new) internal name to (old) internal name and UI name + +In the long run, all attributes should be migrated to the new ones. +*/ +const talentsData = { + 't_ka_anderthalbhaender': {'internal': "Anderthalbhander", 'ui': "Anderthalbhänder"}, + 't_ka_armbrust': {'internal': "armbrust", 'ui': "Armbrust"}, + 't_ka_belagerungswaffen': {'internal': "belagerungswaffen", 'ui': "Belagerungswaffen"}, + 't_ka_blasrohr': {'internal': "blasrohr", 'ui': "Blasrohr"}, + 't_ka_bogen': {'internal': "bogen", 'ui': "Bogen"}, + 't_ka_diskus': {'internal': "diskus", 'ui': "Diskus"}, + 't_ka_dolche': {'internal': "dolche", 'ui': "Dolche"}, + 't_ka_fechtwaffen': {'internal': "fechtwaffen", 'ui': "Fechtwaffen"}, + 't_ka_hiebwaffen': {'internal': "hiebwaffen", 'ui': "Hiebwaffen"}, + 't_ka_infanteriewaffen': {'internal': "infanteriewaffen", 'ui': "Infanteriewaffen"}, + 't_ka_kettenstaebe': {'internal': "kettenstabe", 'ui': "Kettenstäbe"}, + 't_ka_kettenwaffen': {'internal': "kettenwaffen", 'ui': "Kettenwaffen"}, + 't_ka_lanzenreiten': {'internal': "lanzenreiten", 'ui': "Lanzenreiten"}, + 't_ka_peitsche': {'internal': "peitsche", 'ui': "Peitsche"}, + 't_ka_raufen': {'internal': "raufen", 'ui': "Raufen"}, + 't_ka_ringen': {'internal': "ringen", 'ui': "Ringen"}, + 't_ka_saebel': {'internal': "sabel", 'ui': "Säbel"}, + 't_ka_schleuder': {'internal': "schleuder", 'ui': "Schleuder"}, + 't_ka_schwerter': {'internal': "schwerter", 'ui': "Schwerter"}, + 't_ka_speere': {'internal': "speere", 'ui': "Speere"}, + 't_ka_staebe': {'internal': "stabe", 'ui': "Stäbe"}, + 't_ka_wurfbeile': {'internal': "wurfbeile", 'ui': "Wurfbeile"}, + 't_ka_wurfmesser': {'internal': "wurfmesser", 'ui': "Wurfmesser"}, + 't_ka_wurfspeere': {'internal': "wurfspeere", 'ui': "Wurfspeere"}, + 't_ka_zweihandflegel': {'internal': "zweihandflegel", 'ui': "Zweihandflegel"}, + 't_ka_zweihandhiebwaffen': {'internal': "zweihand-hiebwaffen", 'ui': "Zweihandhiebwaffen"}, + 't_ka_zweihandschwerter': {'internal': "zweihandschwerter", 'ui': "Zweihandschwerter"}, + 't_ko_akrobatik': {'internal': "akrobatik", 'ui': "Akrobatik"}, + 't_ko_athletik': {'internal': "athletik", 'ui': "Athletik"}, + 't_ko_fliegen': {'internal': "fliegen", 'ui': "Fliegen"}, + 't_ko_gaukeleien': {'internal': "gaukeleien", 'ui': "Gaukeleien"}, + 't_ko_klettern': {'internal': "klettern", 'ui': "Klettern"}, + 't_ko_koerperbeherrschung': {'internal': "korperbeherrschung", 'ui': "Körperbeherrschung"}, + 't_ko_reiten': {'internal': "reiten", 'ui': "Reiten"}, + 't_ko_schleichen': {'internal': "schleichen", 'ui': "Schleichen"}, + 't_ko_schwimmen': {'internal': "schwimmen", 'ui': "Schwimmen"}, + 't_ko_selbstbeherrschung': {'internal': "selbstbeherrschung", 'ui': "Selbstbeherrschung"}, + 't_ko_sichverstecken': {'internal': "sichverstecken", 'ui': "Sich verstecken"}, + 't_ko_singen': {'internal': "singen", 'ui': "Singen"}, + 't_ko_sinnenschaerfe': {'internal': "sinnesscharfe", 'ui': "Sinnenschärfe"}, + 't_ko_skifahren': {'internal': "skifahren", 'ui': "Skifahren"}, + 't_ko_stimmenimitieren': {'internal': "stimmenimmitieren", 'ui': "Stimmenimitieren"}, + 't_ko_tanzen': {'internal': "tanzen", 'ui': "Tanzen"}, + 't_ko_taschendiebstahl': {'internal': "taschendiebstahl", 'ui': "Taschendiebstahl"}, + 't_ko_zechen': {'internal': "zechen", 'ui': "Zechen"}, + 't_ge_betoeren': {'internal': "betoren", 'ui': "Betören"}, + 't_ge_etikette': {'internal': "etikette", 'ui': "Etikette"}, + 't_ge_gassenwissen': {'internal': "gassenwissen", 'ui': "Gassenwissen"}, + 't_ge_lehren': {'internal': "lehren", 'ui': "Lehren"}, + 't_ge_menschenkenntnis': {'internal': "menschenkenntnis", 'ui': "Menschenkenntnis"}, + 't_ge_schauspielerei': {'internal': "schauspielerei", 'ui': "Schauspielerei"}, + 't_ge_schriftlicherausdruck': {'internal': "schriftlicherausdruck", 'ui': "Schriftlicher Ausdruck"}, + 't_ge_sichverkleiden': {'internal': "sichverkleiden", 'ui': "Sich verkleiden"}, + 't_ge_ueberreden': {'internal': "uberreden", 'ui': "Überreden"}, + 't_ge_ueberzeugen': {'internal': "uberzeugen", 'ui': "Überzeugen"}, + 't_n_faehrtensuchen': {'internal': "fahrtensuchen", 'ui': "Fährtensuchen"}, + 't_n_fallenstellen': {'internal': "fallenstellen", 'ui': "Fallenstellen"}, + 't_n_fesseln': {'internal': "fesseln", 'ui': "Fesseln"}, + 't_n_fischenangeln': {'internal': "fischen", 'ui': "Fischenangeln"}, + 't_n_orientierung': {'internal': "orientierung", 'ui': "Orientierung"}, + 't_n_wettervorhersage': {'internal': "wettervorhersage", 'ui': "Wettervorhersage"}, + 't_n_wildnisleben': {'internal': "wildnisleben", 'ui': "Wildnisleben"}, + 't_w_anatomie': {'internal': "anatomie", 'ui': "Anatomie"}, + 't_w_baukunst': {'internal': "baukunst", 'ui': "Baukunst"}, + 't_w_brettspiel': {'internal': "brettspiel", 'ui': "Brettspiel"}, + 't_w_geographie': {'internal': "geographie", 'ui': "Geographie"}, + 't_w_geschichtswissen': {'internal': "geschichtswissen", 'ui': "Geschichtswissen"}, + 't_w_gesteinskunde': {'internal': "gesteinskunde", 'ui': "Gesteinskunde"}, + 't_w_goetterkulte': {'internal': "gotter", 'ui': "Götter/Kulte"}, + 't_w_heraldik': {'internal': "heraldik", 'ui': "Heraldik"}, + 't_w_huettenkunde': {'internal': "huttenkunde", 'ui': "Hüttenkunde"}, + 't_w_kriegskunst': {'internal': "kriegskunst", 'ui': "Kriegskunst"}, + 't_w_kryptographie': {'internal': "kryptographie", 'ui': "Kryptographie"}, + 't_w_magiekunde': {'internal': "magiekunde", 'ui': "Magiekunde"}, + 't_w_mechanik': {'internal': "mechanik", 'ui': "Mechanik"}, + 't_w_pflanzenkunde': {'internal': "pflanzenkunde", 'ui': "Pflanzenkunde"}, + 't_w_philosophie': {'internal': "philosophie", 'ui': "Philosophie"}, + 't_w_rechnen': {'internal': "rechnen", 'ui': "Rechnen"}, + 't_w_rechtskunde': {'internal': "rechtskunde", 'ui': "Rechtskunde"}, + 't_w_sagenlegenden': {'internal': "sagenlegenden", 'ui': "Sagen/Legenden"}, + 't_w_schaetzen': {'internal': "schatzen", 'ui': "Schätzen"}, + 't_w_sprachenkunde': {'internal': "sprachenkunde", 'ui': "Sprachenkunde"}, + 't_w_staatskunst': {'internal': "staatskunst", 'ui': "Staatskunst"}, + 't_w_sternkunde': {'internal': "sternkunde", 'ui': "Sternkunde"}, + 't_w_tierkunde': {'internal': "tierkunde", 'ui': "Tierkunde"}, + 't_sp_garethi': {'internal': "garethi", 'ui': "Garethi"}, + 't_sp_bosparano': {'internal': "bosparano", 'ui': "Bosparano"}, + 't_sp_aureliani': {'internal': "aureliani", 'ui': "Aureliani"}, + 't_sp_zyklopaeisch': {'internal': "zyklopaisch", 'ui': "Zyklopäisch"}, + 't_sp_tulamidya': {'internal': "tulamidya", 'ui': "Tulamidya"}, + 't_sp_urtulamidya': {'internal': "urtulamidya", 'ui': "Urtulamidya"}, + 't_sp_zelemja': {'internal': "zelemja", 'ui': "Zelemja"}, + 't_sp_alaani': {'internal': "alaani", 'ui': "Alaani"}, + 't_sp_zhulchammaqra': {'internal': "zhulchammaqra", 'ui': "Zhulchammaqra"}, + 't_sp_ferkina': {'internal': "ferkina", 'ui': "Ferkina"}, + 't_sp_ruuz': {'internal': "ruuz", 'ui': "Ruuz"}, + 't_sp_alteskemi': {'internal': "alteskemi", 'ui': "Altes Kemi"}, + 't_sp_rabensprache': {'internal': "rabensprache", 'ui': "Rabensprache"}, + 't_sp_thorwalsch': {'internal': "thorwalsch", 'ui': "Thorwalsch"}, + 't_sp_hjaldingsch': {'internal': "hjaldingsch", 'ui': "Hjaldingsch"}, + 't_sp_isdira': {'internal': "isdira", 'ui': "Isdira"}, + 't_sp_asdharia': {'internal': "asdharia", 'ui': "Asdharia"}, + 't_sp_rogolan': {'internal': "rogolan", 'ui': "Rogolan"}, + 't_sp_angram': {'internal': "angram", 'ui': "Angram"}, + 't_sp_ologhaijan': {'internal': "ologhaijan", 'ui': "Ologhaijan"}, + 't_sp_oloarkh': {'internal': "oloarkh", 'ui': "Oloarkh"}, + 't_sp_mahrisch': {'internal': "mahrisch", 'ui': "Mahrisch"}, + 't_sp_rissoal': {'internal': "rissoal", 'ui': "Rissoal"}, + 't_sp_drachisch': {'internal': "drachisch", 'ui': "Drachisch"}, + 't_sp_goblinisch': {'internal': "goblinisch", 'ui': "Goblinisch"}, + 't_sp_grolmisch': {'internal': "grolmisch", 'ui': "Grolmisch"}, + 't_sp_koboldisch': {'internal': "koboldisch", 'ui': "Koboldisch"}, + 't_sp_molochisch': {'internal': "molochisch", 'ui': "Molochisch"}, + 't_sp_neckergesang': {'internal': "neckergesang", 'ui': "Neckergesang"}, + 't_sp_nujuka': {'internal': "nujuka", 'ui': "Nujuka"}, + 't_sp_rssahh': {'internal': "rssahh", 'ui': "Rssahh"}, + 't_sp_trollisch': {'internal': "trollisch", 'ui': "Trollisch"}, + 't_sp_waldmenschensprachen': {'internal': "waldmenschensprache", 'ui': "Waldmenschensprachen"}, + 't_sp_zlit': {'internal': "zlit", 'ui': "Z'Lit"}, + 't_sp_zhayad': {'internal': "zhayad", 'ui': "Zhayad"}, + 't_sp_atak': {'internal': "atak", 'ui': "Atak"}, + 't_sp_fuechsisch': {'internal': "fuchsisch", 'ui': "Füchsisch"}, + 't_sc_altesalaani': {'internal': "schrift_altesalaani", 'ui': "Altes Alaani"}, + 't_sc_alteskemi': {'internal': "schrift_alteskemi", 'ui': "Altes Kemi"}, + 't_sc_amulashtra': {'internal': "schrift_amulashtra", 'ui': "Amulashtra"}, + 't_sc_angram': {'internal': "schrift_angram", 'ui': "Angram"}, + 't_sc_arkanil': {'internal': "schrift_arkanil", 'ui': "Arkanil"}, + 't_sc_chrmk': {'internal': "schrift_chrmk", 'ui': "Chrmk"}, + 't_sc_chuchas': {'internal': "schrift_chuchas", 'ui': "Chuchas"}, + 't_sc_drakhardzinken': {'internal': "schrift_drakhardzinken", 'ui': "Drakhard-Zinken"}, + 't_sc_draknedglyphen': {'internal': "schrift_draknedglyphen", 'ui': "Drakned-Glyphen"}, + 't_sc_geheiligteglyphenvonunau': {'internal': "schrift_glyphenvonunau", 'ui': "Geheiligte Glyphen von Unau"}, + 't_sc_gimaril': {'internal': "schrift_gimaril", 'ui': "Gimaril"}, + 't_sc_gjalskisch': {'internal': "schrift_gjalskisch", 'ui': "Gjalskisch"}, + 't_sc_hjaldingscherunen': {'internal': "schrift_hjaldingscherunen", 'ui': "Hjaldingsche Runen"}, + 't_sc_imperialezeichen': {'internal': "schrift_imperialezeichen", 'ui': "Imperiale Zeichen"}, + 't_sc_isdiraasdharia': {'internal': "schrift_isdira", 'ui': "Isdira/Asdharia"}, + 't_sc_kuslikerzeichen': {'internal': "schrift_kuslikerzeichen", 'ui': "Kusliker Zeichen"}, + 't_sc_mahrischeglyphen': {'internal': "schrift_mahrischeglyphen", 'ui': "Mahrische Glyphen"}, + 't_sc_nanduria': {'internal': "schrift_nanduria", 'ui': "Nanduria"}, + 't_sc_rogolan': {'internal': "schrift_rogolan", 'ui': "Rogolan"}, + 't_sc_trollischeraumbilderschrift': {'internal': "schrift_troll", 'ui': "Trollische 'Raumbilderschrift'"}, + 't_sc_tulamidya': {'internal': "schrift_tulamidya", 'ui': "Tulamidya"}, + 't_sc_urtulamidya': {'internal': "schrift_urtulamidya", 'ui': "Urtulamidya"}, + 't_sc_zhayad': {'internal': "schrift_zhayad", 'ui': "Zhayad"}, + 't_h_abrichten': {'internal': "abrichten", 'ui': "Abrichten"}, + 't_h_ackerbau': {'internal': "ackerbau", 'ui': "Ackerbau"}, + 't_h_alchimie': {'internal': "alchimie", 'ui': "Alchimie"}, + 't_h_bergbau': {'internal': "bergbau", 'ui': "Bergbau"}, + 't_h_bogenbau': {'internal': "bogenbau", 'ui': "Bogenbau"}, + 't_h_bootefahren': {'internal': "bootefahren", 'ui': "Bootefahren"}, + 't_h_brauer': {'internal': "brauer", 'ui': "Brauer"}, + 't_h_drucker': {'internal': "drucker", 'ui': "Drucker"}, + 't_h_fahrzeuglenken': {'internal': "fahrzeuglenken", 'ui': "Fahrzeuglenken"}, + 't_h_falschspiel': {'internal': "falschspiel", 'ui': "Falschspiel"}, + 't_h_feinmechanik': {'internal': "feinmechanik", 'ui': "Feinmechanik"}, + 't_h_feuersteinbearbeitung': {'internal': "feuersteinbearbeitung", 'ui': "Feuersteinbearbeitung"}, + 't_h_fleischer': {'internal': "fleischer", 'ui': "Fleischer"}, + 't_h_gerber': {'internal': "gerber", 'ui': "Gerber"}, + 't_h_glaskunst': {'internal': "glaskunst", 'ui': "Glaskunst"}, + 't_h_grobschmied': {'internal': "grobschmied", 'ui': "Grobschmied"}, + 't_h_handel': {'internal': "handel", 'ui': "Handel"}, + 't_h_hauswirtschaft': {'internal': "hauswirtschaft", 'ui': "Hauswirtschaft"}, + 't_h_heilkundegift': {'internal': "heilkundegift", 'ui': "Heilkunde Gift"}, + 't_h_heilkundekrankheiten': {'internal': "heilkundekrankheiten", 'ui': "Heilkunde Krankheiten"}, + 't_h_heilkundeseele': {'internal': "heilkundeseele", 'ui': "Heilkunde Seele"}, + 't_h_heilkundewunden': {'internal': "heilkundewunden", 'ui': "Heilkunde Wunden"}, + 't_h_holzbearbeitung': {'internal': "holzbearbeitung", 'ui': "Holzbearbeitung"}, + 't_h_instrumentenbauer': {'internal': "instrumentenbauer", 'ui': "Instrumentenbauer"}, + 't_h_kartographie': {'internal': "karthographie", 'ui': "Kartographie"}, + 't_h_kochen': {'internal': "kochen", 'ui': "Kochen"}, + 't_h_kristallzucht': {'internal': "kristallzucht", 'ui': "Kristallzucht"}, + 't_h_lederarbeiten': {'internal': "lederarbeiten", 'ui': "Lederarbeiten"}, + 't_h_malenzeichnen': {'internal': "malenzeichnen", 'ui': "Malen/Zeichnen"}, + 't_h_maurer': {'internal': "maurer", 'ui': "Maurer"}, + 't_h_metallguss': {'internal': "metallguss", 'ui': "Metallguss"}, + 't_h_musizieren': {'internal': "musizieren", 'ui': "Musizieren"}, + 't_h_schloesserknacken': {'internal': "schlosserknacken", 'ui': "Schlösserknacken"}, + 't_h_schnapsbrennen': {'internal': "schnapsbrennen", 'ui': "Schnapsbrennen"}, + 't_h_schneidern': {'internal': "schneidern", 'ui': "Schneidern"}, + 't_h_seefahrt': {'internal': "seefahrt", 'ui': "Seefahrt"}, + 't_h_seiler': {'internal': "seiler", 'ui': "Seiler"}, + 't_h_steinmetz': {'internal': "steinmetz", 'ui': "Steinmetz"}, + 't_h_steinschneider': {'internal': "steinschneider", 'ui': "Steinschneider"}, + 't_h_stellmacher': {'internal': "stellmacher", 'ui': "Stellmacher"}, + 't_h_stoffefaerben': {'internal': "stoffefarben", 'ui': "Stoffefärben"}, + 't_h_taetowieren': {'internal': "tatowieren", 'ui': "Tätowieren"}, + 't_h_toepfern': {'internal': "topfern", 'ui': "Töpfern"}, + 't_h_viehzucht': {'internal': "viehzucht", 'ui': "Viehzucht"}, + 't_h_webkunst': {'internal': "webkunst", 'ui': "Webkunst"}, + 't_h_winzer': {'internal': "winzer", 'ui': "Winzer"}, + 't_h_zimmermann': {'internal': "zimmermann", 'ui': "Zimmermann"} +}; +const spellsData = { + 'z_abvenenum': {'internal': "abvenenum", 'ui': "Abvenenum Reine Speise", 'stats': ['KL', 'KL', 'FF']}, + 'z_accuratum': {'internal': "accuratum", 'ui': "Accuratum Zaubernadel", 'stats': ['KL', 'CH', 'FF']}, + 'z_adamantium': {'internal': "adamantium", 'ui': "Adamantium Erzstruktur", 'stats': ['KL', 'FF', 'KO']}, + 'z_adlerauge': {'internal': "adlerauge", 'ui': "Adlerauge Luchsenohr", 'stats': ['KL', 'IN', 'FF']}, + 'z_adlerschwinge': {'internal': "adlerschwinge", 'ui': "Adlerschwinge Wolfsgestalt", 'stats': ['MU', 'IN', 'GE']}, + 'z_aengstelindern': {'internal': "angste", 'ui': "Ängste lindern", 'stats': ['MU', 'IN', 'CH']}, + 'z_aeolitus': {'internal': "aeolitus", 'ui': "Aeolitus Windgebraus", 'stats': ['KL', 'CH', 'KO']}, + 'z_aerofugo': {'internal': "aerofugo", 'ui': "Aerofugo Vakuum", 'stats': ['MU', 'KO', 'KK']}, + 'z_aerogelo': {'internal': "aerogelo", 'ui': "Aerogelo Atemqual", 'stats': ['MU', 'IN', 'KO']}, + 'z_aeropulvis': {'internal': "aeropulvis", 'ui': "Aeropulvis Sanfter Fall", 'stats': ['KL', 'IN', 'GE']}, + 'z_dz_agrimothbann': {'internal': "agrimothbann", 'ui': "Agrimothbann", 'stats': ['MU', 'CH', 'KO']}, + 'z_alpgestalt': {'internal': "alpgestalt", 'ui': "Alpgestalt", 'stats': ['MU', 'CH', 'GE']}, + 'z_analys': {'internal': "analys", 'ui': "Analys Arcanstruktur", 'stats': ['KL', 'KL', 'IN']}, + 'z_animatio': {'internal': "animato", 'ui': "Animatio Stummer Diener", 'stats': ['KL', 'FF', 'GE']}, + 'z_applicatus': {'internal': "applicatus", 'ui': "Applicatus Zauberspeicher", 'stats': ['KL', 'FF', 'FF']}, + 'z_aquafaxius': {'internal': "aquafaxius", 'ui': "Aquafaxius", 'stats': ['KL', 'FF', 'KO']}, + 'z_aquaqueris': {'internal': "aquaqueris", 'ui': "Aquaqueris Wasserfluch", 'stats': ['MU', 'IN', 'KK']}, + 'z_aquasphaero': {'internal': "aquasphaero", 'ui': "Aquasphaero", 'stats': ['MU', 'IN', 'KO']}, + 'z_arachnea': {'internal': "arachnea", 'ui': "Arachnea Krabbeltier", 'stats': ['MU', 'IN', 'CH']}, + 'z_arcanovi': {'internal': "arcanovi", 'ui': "Arcanovi Artefakt", 'stats': ['KL', 'KL', 'FF']}, + 'z_archofaxius': {'internal': "archofaxius", 'ui': "Archofaxius", 'stats': ['KL', 'FF', 'KO']}, + 'z_archosphaero': {'internal': "archosphaero", 'ui': "Archosphaero", 'stats': ['MU', 'IN', 'KO']}, + 'z_armatrutz': {'internal': "armatrutz", 'ui': "Armatrutz", 'stats': ['IN', 'GE', 'KO']}, + 'z_atemnot': {'internal': "atemnot", 'ui': "Atemnot", 'stats': ['MU', 'KO', 'KK']}, + 'z_attributo': {'internal': "attributo", 'ui': "Attributo", 'stats': ['KL', 'CH', 'Eigenschaft_Attributo']}, + 'z_aufgeblasen': {'internal': "aufgeblasen", 'ui': "Aufgeblasen Abgehoben", 'stats': ['CH', 'KO', 'KK']}, + 'z_augedeslimbus': {'internal': "auge", 'ui': "Auge des Limbus", 'stats': ['MU', 'KO', 'KK']}, + 'z_aureolus': {'internal': "aureolus", 'ui': "Aureolus Güldenglanz", 'stats': ['IN', 'CH', 'FF']}, + 'z_aurisnasusoculus': {'internal': "auris", 'ui': "Auris Nasus Oculus", 'stats': ['KL', 'CH', 'FF']}, + 'z_axxeleratus': {'internal': "axxeleratus", 'ui': "Axxeleratus Blitzgeschwind", 'stats': ['KL', 'GE', 'KO']}, + 'z_baerenruhe': {'internal': "barenruhe", 'ui': "Bärenruhe Winterschlaf", 'stats': ['MU', 'KK', 'KO']}, + 'z_balsam': {'internal': "balsam", 'ui': "Balsam Salabunde", 'stats': ['KL', 'IN', 'CH']}, + 'z_bandundfessel': {'internal': "band", 'ui': "Band und Fessel", 'stats': ['KL', 'CH', 'KK']}, + 'z_bannbaladin': {'internal': "bannbaladin", 'ui': "Bannbaladin", 'stats': ['IN', 'CH', 'CH']}, + 'z_beherrschungbrechen': {'internal': "beherrschung", 'ui': "Beherrschung brechen", 'stats': ['KL', 'IN', 'CH']}, + 'z_dz_belzhorashbann': {'internal': "belzhorashbann", 'ui': "Belzhorashbann", 'stats': ['MU', 'CH', 'KO']}, + 'z_beschwoerungvereiteln': {'internal': "beschworung", 'ui': "Beschwörung vereiteln", 'stats': ['MU', 'IN', 'CH']}, + 'z_bewegungstoeren': {'internal': "bewegung", 'ui': "Bewegung stören", 'stats': ['KL', 'IN', 'FF']}, + 'z_dz_bienenschwarm': {'internal': "bienenschwarm", 'ui': "Bienenschwarm", 'stats': ['MU', 'CH', 'CH']}, + 'z_blendwerk': {'internal': "blendwerk", 'ui': "Blendwerk", 'stats': ['IN', 'CH', 'GE']}, + 'z_blickaufswesen': {'internal': "blickaufswesen", 'ui': "Blick auf's Wesen", 'stats': ['KL', 'IN', 'CH']}, + 'z_blickdurchfremdeaugen': {'internal': "blickdurchfremdeaugen", 'ui': "Blick durch fremde Augen", 'stats': ['MU', 'IN', 'CH']}, + 'z_blickindiegedanken': {'internal': "blickindiegedanken", 'ui': "Blick in die Gedanken", 'stats': ['KL', 'KL', 'CH']}, + 'z_blickindievergangenheit': {'internal': "blickindievergangenheit", 'ui': "Blick in die Vergangenheit", 'stats': ['KL', 'KL', 'IN']}, + 'z_blitz': {'internal': "blitz", 'ui': "Blitz dich find", 'stats': ['KL', 'IN', 'GE']}, + 'z_boeserblick': {'internal': "boser", 'ui': "Böser Blick", 'stats': ['MU', 'CH', 'CH']}, + 'z_brenne': {'internal': "brenne", 'ui': "Brenne, toter Stoff!", 'stats': ['MU', 'KL', 'KO']}, + 'z_caldofrigo': {'internal': "caldofrigo", 'ui': "Caldofrigo Heiß und Kalt", 'stats': ['IN', 'CH', 'KO']}, + 'z_chamaelioni': {'internal': "chamaelioni", 'ui': "Chamaelioni Mimikry", 'stats': ['IN', 'CH', 'GE']}, + 'z_chimaeroform': {'internal': "chimaeroform", 'ui': "Chimaeroform Hybridgestalt", 'stats': ['KL', 'IN', 'KO']}, + 'z_chronoklassis': {'internal': "chronoklassis", 'ui': "Chronoklassis Urfossil", 'stats': ['KL', 'IN', 'KO']}, + 'z_chrononautos': {'internal': "chrononautos", 'ui': "Chrononautos Zeitenfahrt", 'stats': ['MU', 'CH', 'KO']}, + 'z_claudibus': {'internal': "claudibus", 'ui': "Claudibus Clavistibor", 'stats': ['KL', 'FF', 'KK']}, + 'z_corpofesso': {'internal': "corpofesso", 'ui': "Corpofesso Gliederschmerz", 'stats': ['KL', 'KO', 'KK']}, + 'z_corpofrigo': {'internal': "corpofrigo", 'ui': "Corpofrigo Kälteschock", 'stats': ['CH', 'GE', 'KO']}, + 'z_cryptographo': {'internal': "cryptographo", 'ui': "Cryptographo Zauberschrift", 'stats': ['KL', 'KL', 'IN']}, + 'z_custodosigil': {'internal': "custodosigil", 'ui': "Custodosigil Diebesbann", 'stats': ['KL', 'FF', 'FF']}, + 'z_daemonenbann': {'internal': "damonenbann", 'ui': "Dämonenbann", 'stats': ['MU', 'CH', 'KO']}, + 'z_delicioso': {'internal': "delicioso", 'ui': "Delicioso Gaumenschmaus", 'stats': ['KL', 'CH', 'FF']}, + 'z_desintegratus': {'internal': "desintegratus", 'ui': "Desintegratus Pulverstaub", 'stats': ['KL', 'KO', 'KK']}, + 'z_destructibo': {'internal': "destructibo", 'ui': "Destructibo Arcanitas", 'stats': ['KL', 'KL', 'FF']}, + 'z_dichterunddenker': {'internal': "dichter", 'ui': "Dichter und Denker", 'stats': ['KL', 'IN', 'CH']}, + 'z_dschinnenruf': {'internal': "dschinnenruf", 'ui': "Dschinnenruf", 'stats': ['MU', 'KL', 'CH']}, + 'z_dunkelheit': {'internal': "dunkelheit", 'ui': "Dunkelheit", 'stats': ['KL', 'KL', 'FF']}, + 'z_duplicatus': {'internal': "duplicatus", 'ui': "Duplicatus Doppelbild", 'stats': ['KL', 'CH', 'GE']}, + 'z_ecliptifactus': {'internal': "ecliptifactus", 'ui': "Ecliptifactus Schattenkraft", 'stats': ['MU', 'KL', 'KO']}, + 'z_eigenschaftwiederherstellen': {'internal': "eigenschaft", 'ui': "Eigenschaft wiederherstellen", 'stats': ['KL', 'IN', 'CH']}, + 'z_eigneaengste': {'internal': "eigne", 'ui': "Eigne Ängste quälen dich!", 'stats': ['MU', 'IN', 'CH']}, + 'z_einflussbannen': {'internal': "einfluss", 'ui': "Einfluss bannen", 'stats': ['IN', 'CH', 'CH']}, + 'z_einsmitdernatur': {'internal': "eins", 'ui': "Eins mit der Natur", 'stats': ['IN', 'GE', 'KO']}, + 'z_eisenrost': {'internal': "eisenrost", 'ui': "Eisenrost und Patina", 'stats': ['KL', 'CH', 'GE']}, + 'z_eiseskaelte': {'internal': "eiseskalte", 'ui': "Eiseskälte Kämpferherz", 'stats': ['MU', 'IN', 'KO']}, + 'z_eiswirbel': {'internal': "eiswirbel", 'ui': "Eiswirbel", 'stats': ['MU', 'IN', 'KK']}, + 'z_elementarbann': {'internal': "elementarbann", 'ui': "Elementarbann", 'stats': ['IN', 'CH', 'KO']}, + 'z_elementarerdiener': {'internal': "elementarer", 'ui': "Elementarer Diener", 'stats': ['MU', 'KL', 'CH']}, + 'z_elfenstimme': {'internal': "elfenstimme", 'ui': "Elfenstimme Flötenton", 'stats': ['IN', 'CH', 'KO']}, + 'z_dz_entfesselungdesgetiers': {'internal': "Entfesselung_des_Getiers", 'ui': "Entfesselung des Getiers", 'stats': ['KL', 'CH', 'KO']}, + 'z_erinnerungverlassedich': {'internal': "erinnerung", 'ui': "Erinnerung verlasse dich!", 'stats': ['MU', 'IN', 'CH']}, + 'z_exposami': {'internal': "exposami", 'ui': "Exposami Lebenskraft", 'stats': ['KL', 'IN', 'IN']}, + 'z_falkenauge': {'internal': "falkenauge", 'ui': "Falkenauge Meisterschuss", 'stats': ['IN', 'FF', 'GE']}, + 'z_favilludo': {'internal': "favilludo", 'ui': "Favilludo Funkentanz", 'stats': ['IN', 'CH', 'FF']}, + 'z_fesselranken': {'internal': "fesselranken", 'ui': "Fesselranken", 'stats': ['KL', 'IN', 'KK']}, + 'z_feuermaehne': {'internal': "feuermaehne", 'ui': "Feuermähne Flammenhuf", 'stats': ['IN', 'CH', 'KO']}, + 'z_feuersturm': {'internal': "feuersturm", 'ui': "Feuersturm", 'stats': ['MU', 'IN', 'KK']}, + 'z_firnlauf': {'internal': "firnlauf", 'ui': "Firnlauf", 'stats': ['MU', 'KL', 'GE']}, + 'z_flimflam': {'internal': "flim", 'ui': "Flim Flam Funkel", 'stats': ['KL', 'KL', 'FF']}, + 'z_fluchderpestilenz': {'internal': "fluch", 'ui': "Fluch der Pestilenz", 'stats': ['MU', 'KL', 'CH']}, + 'z_foramen': {'internal': "foramen", 'ui': "Foramen Foraminor", 'stats': ['KL', 'KL', 'FF']}, + 'z_fortifex': {'internal': "fortifex", 'ui': "Fortifex Arkane Wand", 'stats': ['IN', 'KO', 'KK']}, + 'z_frigifaxius': {'internal': "frigifaxius", 'ui': "Frigifaxius", 'stats': ['KL', 'FF', 'KO']}, + 'z_frigisphaero': {'internal': "frigisphaero", 'ui': "Frigisphaero", 'stats': ['MU', 'IN', 'KO']}, + 'z_fulminictus': {'internal': "fulminictus", 'ui': "Fulminictus Donnerkeiö", 'stats': ['IN', 'GE', 'KO']}, + 'z_gardianum': {'internal': "gardianum", 'ui': "Gardianum Zauberschild", 'stats': ['KL', 'IN', 'KO']}, + 'z_dz_gebieterdertiefe': {'internal': "Gebieter_der_Tiefe", 'ui': "Gebieter der Tiefe", 'stats': ['MU', 'CH', 'KO']}, + 'z_gedankenbilder': {'internal': "gedankenbilder", 'ui': "Gedankenbilder Elfenruf", 'stats': ['KL', 'IN', 'CH']}, + 'z_gefaessderjahre': {'internal': "gefass", 'ui': "Gefäß der Jahre", 'stats': ['MU', 'KL', 'KO']}, + 'z_gefunden': {'internal': "gefunden", 'ui': "Gefunden!", 'stats': ['KL', 'IN', 'GE']}, + 'z_geisterbann': {'internal': "geisterbann", 'ui': "Geisterbann", 'stats': ['MU', 'MU', 'CH']}, + 'z_geisterruf': {'internal': "geisterruf", 'ui': "Geisterruf", 'stats': ['MU', 'MU', 'CH']}, + 'z_dz_geschossderniederhoellen': {'internal': "Geschoss_der_Niederhoellen", 'ui': "Geschoss der Niederhöllen", 'stats': ['CH', 'FF', 'KK']}, + 'z_glacoflumen': {'internal': "glacoflumen", 'ui': "Glacoflumen Fluss aus Eis", 'stats': ['IN', 'GE', 'KO']}, + 'z_gletscherwand': {'internal': "gletscherwand", 'ui': "Gletscherwand", 'stats': ['MU', 'KL', 'CH']}, + 'z_granitundmarmor': {'internal': "granit", 'ui': "Granit und Marmor", 'stats': ['MU', 'CH', 'KO']}, + 'z_dz_grolmenseele': {'internal': "Grolmenseele", 'ui': "Grolmenseele", 'stats': ['KL', 'CH', 'FF']}, + 'z_grossegier': {'internal': "grossegier", 'ui': "Große Gier", 'stats': ['KL', 'KL', 'CH']}, + 'z_grosseverwirrung': {'internal': "grosseverwirrung", 'ui': "Große Verwirrung", 'stats': ['KL', 'KL', 'CH']}, + 'z_halluzination': {'internal': "halluzination", 'ui': "Halluzination", 'stats': ['KL', 'IN', 'CH']}, + 'z_harmlosegestalt': {'internal': "harmlose", 'ui': "Harmlose Gestalt", 'stats': ['KL', 'CH', 'GE']}, + 'z_hartesschmelze': {'internal': "hartes", 'ui': "Hartes schmelze!", 'stats': ['MU', 'KL', 'KK']}, + 'z_haselbusch': {'internal': "haselbusch", 'ui': "Haselbusch und Ginsterkraut", 'stats': ['CH', 'FF', 'KO']}, + 'z_dz_hauchdertiefentochter': {'internal': "Hauch_der_Tiefen_Tochter", 'ui': "Hauch der Tiefen Tochter", 'stats': ['KL', 'CH', 'KK']}, + 'z_heilkraftbannen': {'internal': "heilkraft", 'ui': "Heilkraft bannen", 'stats': ['KL', 'CH', 'FF']}, + 'z_hellsichttrueben': {'internal': "hellsicht", 'ui': "Hellsicht trüben", 'stats': ['KL', 'IN', 'CH']}, + 'z_herbeirufungvereiteln': {'internal': "herbeirufung", 'ui': "Herbeirufung vereiteln", 'stats': ['MU', 'IN', 'CH']}, + 'z_herrueberdastierreich': {'internal': "herr", 'ui': "Herr über das Tierreich", 'stats': ['MU', 'MU', 'CH']}, + 'z_herzschlagruhe': {'internal': "herzschlag", 'ui': "Herzschlag ruhe!", 'stats': ['MU', 'CH', 'KK']}, + 'z_dz_hexagrammadschinnenbann': {'internal': "Hexagramma_Dschinnenbann", 'ui': "Hexagramma Dschinnenbann", 'stats': ['MU', 'MU', 'IN']}, + 'z_hexenblick': {'internal': "hexenblick", 'ui': "Hexenblick", 'stats': ['IN', 'IN', 'CH']}, + 'z_hexengalle': {'internal': "hexengalle", 'ui': "Hexengalle", 'stats': ['MU', 'IN', 'CH']}, + 'z_hexenholz': {'internal': "hexenholz", 'ui': "Hexenholz", 'stats': ['KL', 'FF', 'KK']}, + 'z_hexenknoten': {'internal': "hexenknoten", 'ui': "Hexenknoten", 'stats': ['KL', 'IN', 'CH']}, + 'z_hexenkrallen': {'internal': "hexenkrallen", 'ui': "Hexenkrallen", 'stats': ['MU', 'IN', 'KO']}, + 'z_hexenspeichel': {'internal': "hexenspeichel", 'ui': "Hexenspeichel", 'stats': ['IN', 'CH', 'FF']}, + 'z_hilfreichetatze': {'internal': "hilfreiche", 'ui': "Hilfreiche Tatze, rettende Schwinge", 'stats': ['MU', 'IN', 'CH']}, + 'z_hoellenpein': {'internal': "hollenpein", 'ui': "Höllenpein zerreiße dich!", 'stats': ['KL', 'CH', 'KO']}, + 'z_holterdipolter': {'internal': "holterdipolter", 'ui': "Holterdipolter", 'stats': ['IN', 'IN', 'FF']}, + 'z_dz_hornissenruf': {'internal': "hornissenruf", 'ui': "Hornissenruf", 'stats': ['MU', 'CH', 'CH']}, + 'z_horriphobus': {'internal': "horriphobus", 'ui': "Horriphobus Schreckgestalt", 'stats': ['MU', 'IN', 'CH']}, + 'z_humofaxius': {'internal': "humofaxius", 'ui': "Humofaxius", 'stats': ['KL', 'FF', 'KO']}, + 'z_humosphaero': {'internal': "humosphaero", 'ui': "Humosphaero", 'stats': ['MU', 'IN', 'KO']}, + 'z_ignifaxius': {'internal': "ignifaxius", 'ui': "Ignifaxius Flammenstrahl", 'stats': ['KL', 'FF', 'KO']}, + 'z_dz_igniflumenflammenspur': {'internal': "Igniflumen_Flammenspur", 'ui': "Igniflumen Flammenspur", 'stats': ['MU', 'KL', 'KO']}, + 'z_ignifugo': {'internal': "ignifugo", 'ui': "Ignifugo Feuerbann", 'stats': ['MU', 'FF', 'KO']}, + 'z_ignimorpho': {'internal': "ignimorpho", 'ui': "Ignimorpho Feuerform", 'stats': ['MU', 'FF', 'KO']}, + 'z_igniplano': {'internal': "igniplano", 'ui': "Igniplano Flächenbrand", 'stats': ['MU', 'IN', 'KO']}, + 'z_dz_igniquerisfeuerkragen': {'internal': "Igniqueris_Feuerkragen", 'ui': "Igniqueris Feuerkragen", 'stats': ['KL', 'CH', 'KK']}, + 'z_ignisphaero': {'internal': "ignisphaero", 'ui': "Ignisphaero Feuerball", 'stats': ['MU', 'IN', 'KO']}, + 'z_ignorantia': {'internal': "ignorantia", 'ui': "Ignorantia Ungesehn", 'stats': ['IN', 'CH', 'GE']}, + 'z_illusionaufloesen': {'internal': "illusion", 'ui': "Illusion auflösen", 'stats': ['KL', 'IN', 'CH']}, + 'z_immortalis': {'internal': "immortalis", 'ui': "Immortalis Lebenszeit", 'stats': ['MU', 'CH', 'KO']}, + 'z_imperavi': {'internal': "imperavi", 'ui': "Imperavi Handlungszwang", 'stats': ['KL', 'CH', 'CH']}, + 'z_impersona': {'internal': "impersona", 'ui': "Impersona Maskenbild", 'stats': ['KL', 'IN', 'FF']}, + 'z_infinitum': {'internal': "infinitum", 'ui': "Infinitum Immerdar", 'stats': ['KL', 'CH', 'KO']}, + 'z_invercano': {'internal': "invercano", 'ui': "Invercano Spiegeltrick", 'stats': ['MU', 'IN', 'FF']}, + 'z_invocatiomaior': {'internal': "invocatiomaior", 'ui': "Invocatio Maior", 'stats': ['MU', 'MU', 'CH']}, + 'z_invocatiominor': {'internal': "invocatiominor", 'ui': "Invocatio Minor", 'stats': ['MU', 'MU', 'CH']}, + 'z_iribaarshand': {'internal': "iribaars", 'ui': "Iribaars Hand", 'stats': ['MU', 'MU', 'IN']}, + 'z_juckreiz': {'internal': "juckreiz", 'ui': "Juckreiz, dämlicher!", 'stats': ['MU', 'IN', 'CH']}, + 'z_karnifilo': {'internal': "karnifilo", 'ui': "Karnifilo Raserei", 'stats': ['MU', 'IN', 'CH']}, + 'z_katzenaugen': {'internal': "katzenaugen", 'ui': "Katzenaugen", 'stats': ['KL', 'FF', 'KO']}, + 'z_klarumpurum': {'internal': "klarum", 'ui': "Klarum Purum", 'stats': ['KL', 'KL', 'CH']}, + 'z_klickeradomms': {'internal': "klickeradomms", 'ui': "Klickeradomms", 'stats': ['KL', 'FF', 'KK']}, + 'z_koboldgeschenk': {'internal': "koboldgeschenk", 'ui': "Koboldgeschenk", 'stats': ['IN', 'CH', 'FF']}, + 'z_koboldovision': {'internal': "koboldovision", 'ui': "Koboldovision", 'stats': ['MU', 'CH', 'CH']}, + 'z_koerperlosereise': {'internal': "koerperlose", 'ui': "Körperlose Reise", 'stats': ['MU', 'KL', 'IN']}, + 'z_kommkoboldkomm': {'internal': "komm", 'ui': "Komm Kobold komm", 'stats': ['IN', 'IN', 'CH']}, + 'z_krabbelnderschrecken': {'internal': "krabbelnder", 'ui': "Krabbelnder Schrecken", 'stats': ['MU', 'MU', 'CH']}, + 'z_kraehenruf': {'internal': "krahenruf", 'ui': "Krähenruf", 'stats': ['MU', 'CH', 'CH']}, + 'z_kraftdeserzes': {'internal': "kraft", 'ui': "Kraft des Erzes", 'stats': ['KL', 'KO', 'KK']}, + 'z_kraftdeshumus': {'internal': "kraft_humus", 'ui': "Kraft des Humus", 'stats': ['IN', 'CH', 'KO']}, + 'z_kroetensprung': {'internal': "krotensprung", 'ui': "Krötensprung", 'stats': ['IN', 'GE', 'KK']}, + 'z_kulminatio': {'internal': "kulminatio", 'ui': "Kulminatio Kugelblitz", 'stats': ['MU', 'IN', 'FF']}, + 'z_kusch': {'internal': "kusch", 'ui': "Kusch!", 'stats': ['MU', 'IN', 'CH']}, + 'z_lachdichgesund': {'internal': "lach", 'ui': "Lach dich gesund", 'stats': ['IN', 'CH', 'CH']}, + 'z_lachkrampf': {'internal': "lachkrampf", 'ui': "Lachkrampf", 'stats': ['CH', 'CH', 'FF']}, + 'z_langerlulatsch': {'internal': "langer", 'ui': "Langer Lulatsch", 'stats': ['CH', 'GE', 'KK']}, + 'z_lastdesalters': {'internal': "last", 'ui': "Last des Alters", 'stats': ['IN', 'CH', 'KO']}, + 'z_dz_leibaustausendfliegen': {'internal': "Leib_aus_tausend_Fliegen", 'ui': "Leib aus tausend Fliegen", 'stats': ['IN', 'CH', 'KO']}, + 'z_leibdererde': {'internal': "leibdererde", 'ui': "Leib der Erde", 'stats': ['MU', 'IN', 'GE']}, + 'z_leibderwogen': {'internal': "leibderwogen", 'ui': "Leib der Wogen", 'stats': ['MU', 'KL', 'GE']}, + 'z_leibdeseises': {'internal': "leibdeseises", 'ui': "Leib des Eises", 'stats': ['MU', 'KL', 'GE']}, + 'z_leibdeserzes': {'internal': "leibdeserzes", 'ui': "Leib des Erzes", 'stats': ['MU', 'GE', 'KK']}, + 'z_leibdesfeuers': {'internal': "leibdesfeuers", 'ui': "Leib des Feuers", 'stats': ['MU', 'MU', 'GE']}, + 'z_leibdeswindes': {'internal': "leibdeswindes", 'ui': "Leib des Windes", 'stats': ['MU', 'GE', 'KK']}, + 'z_leidensbund': {'internal': "leidensbund", 'ui': "Leidensbund", 'stats': ['MU', 'IN', 'KO']}, + 'z_levthansfeuer': {'internal': "levthans", 'ui': "Levthans Feuer", 'stats': ['IN', 'CH', 'CH']}, + 'z_limbusversiegeln': {'internal': "limbus", 'ui': "Limbus versiegeln", 'stats': ['KL', 'IN', 'KO']}, + 'z_lockruf': {'internal': "lockruf", 'ui': "Lockruf und Feenfüße", 'stats': ['IN', 'CH', 'FF']}, + 'z_lungedesleviatan': {'internal': "lunge", 'ui': "Lunge des Leviatan", 'stats': ['IN', 'CH', 'KO']}, + 'z_madasspiegel': {'internal': "madas", 'ui': "Madas Spiegel", 'stats': ['MU', 'KL', 'IN']}, + 'z_magischerraub': {'internal': "magischer", 'ui': "Magischer Raub", 'stats': ['MU', 'KL', 'KO']}, + 'z_mahlstrom': {'internal': "mahlstrom", 'ui': "Mahlstrom", 'stats': ['MU', 'IN', 'KK']}, + 'z_malmkreis': {'internal': "malmkreis", 'ui': "Malmkreis", 'stats': ['MU', 'IN', 'KK']}, + 'z_manifesto': {'internal': "manifesto", 'ui': "Manifesto Element", 'stats': ['KL', 'IN', 'CH']}, + 'z_meisterderelemente': {'internal': "meisterderelemente", 'ui': "Meister der Elemente", 'stats': ['MU', 'KL', 'CH']}, + 'z_meisterminderergeister': {'internal': "meisterminderergeister", 'ui': "Meister minderer Geister", 'stats': ['MU', 'CH', 'CH']}, + 'z_memorabia': {'internal': "memorabia", 'ui': "Memorabia Falsifir", 'stats': ['KL', 'IN', 'CH']}, + 'z_memorans': {'internal': "memorans", 'ui': "Memorans Gedächtniskraft", 'stats': ['KL', 'KL', 'IN']}, + 'z_menetekel': {'internal': "menetekel", 'ui': "Menetekel Flammenschrift", 'stats': ['KL', 'CH', 'FF']}, + 'z_metamagieneutralisieren': {'internal': "metamagie", 'ui': "Metamagie neutralisieren", 'stats': ['KL', 'KL', 'KO']}, + 'z_metamorphofelsenform': {'internal': "metamorpho_felsenform", 'ui': "Metamorpho Felsenform", 'stats': ['KL', 'FF', 'KK']}, + 'z_metamorphogletscherform': {'internal': "metamorpho", 'ui': "Metamorpho Gletscherform", 'stats': ['KL', 'FF', 'KK']}, + 'z_motoricus': {'internal': "motoricus", 'ui': "Motoricus Geisterhand", 'stats': ['KL', 'FF', 'KK']}, + 'z_movimento': {'internal': "movimento", 'ui': "Movimento Dauerlauf", 'stats': ['IN', 'GE', 'KO']}, + 'z_murksundpatz': {'internal': "murks", 'ui': "Murks und Patz", 'stats': ['IN', 'IN', 'FF']}, + 'z_nackedei': {'internal': "nackedei", 'ui': "Nackedei", 'stats': ['KL', 'IN', 'FF']}, + 'z_nebelleib': {'internal': "nebelleib", 'ui': "Nebelleib", 'stats': ['MU', 'IN', 'KO']}, + 'z_nebelwand': {'internal': "nebelwand", 'ui': "Nebelwand und Morgendunst", 'stats': ['KL', 'FF', 'KO']}, + 'z_nekropathia': {'internal': "nekropathia", 'ui': "Nekropathia Seelenreise", 'stats': ['MU', 'KL', 'CH']}, + 'z_nihilogravo': {'internal': "nihilogravo", 'ui': "Nihilogravo Schwerelos", 'stats': ['KL', 'KO', 'KK']}, + 'z_nuntiovolo': {'internal': "nuntiovolo", 'ui': "Nuntiovolo Botenvogel", 'stats': ['MU', 'KL', 'CH']}, + 'z_objectofixo': {'internal': "objectofixo", 'ui': "Objectofixo", 'stats': ['KL', 'KL', 'KK']}, + 'z_objectoobscuro': {'internal': "objecto", 'ui': "Objecto obscuro", 'stats': ['KL', 'FF', 'KO']}, + 'z_objectovoco': {'internal': "objectovoco", 'ui': "Objectovoco", 'stats': ['KL', 'IN', 'CH']}, + 'z_objektentzaubern': {'internal': "objekt", 'ui': "Objekt entzaubern", 'stats': ['KL', 'IN', 'FF']}, + 'z_oculus': {'internal': "oculus", 'ui': "Oculus Astralis", 'stats': ['KL', 'IN', 'CH']}, + 'z_odem': {'internal': "odem", 'ui': "Odem Arcanum", 'stats': ['KL', 'IN', 'IN']}, + 'z_orcanofaxius': {'internal': "orcanofaxius", 'ui': "Orcanofaxius", 'stats': ['KL', 'FF', 'KO']}, + 'z_orcanosphaero': {'internal': "orcanosphaero", 'ui': "Orcanosphaero", 'stats': ['MU', 'IN', 'KO']}, + 'z_pandaemonium': {'internal': "pandaemonium", 'ui': "Pandaemonium", 'stats': ['MU', 'MU', 'CH']}, + 'z_panik': {'internal': "panik", 'ui': "Panik überkomme euch!", 'stats': ['MU', 'CH', 'CH']}, + 'z_papperlapapp': {'internal': "papperlapapp", 'ui': "Papperlapapp", 'stats': ['IN', 'IN', 'FF']}, + 'z_paralysis': {'internal': "paralys", 'ui': "Paralysis starr wie Stein", 'stats': ['IN', 'CH', 'KK']}, + 'z_pectetondo': {'internal': "pectetondo", 'ui': "Pectetondo Zauberhaar", 'stats': ['KL', 'CH', 'FF']}, + 'z_penetrizzel': {'internal': "penetrizzel", 'ui': "Penetrizzel Tiefenblick", 'stats': ['KL', 'KL', 'KO']}, + 'z_pentagramma': {'internal': "pentagramma", 'ui': "Pentagramma Sphärenbann", 'stats': ['MU', 'MU', 'CH']}, + 'z_pestilenzerspueren': {'internal': "pestilenz", 'ui': "Pestilenz erspüren", 'stats': ['KL', 'IN', 'CH']}, + 'z_pfeilderluft': {'internal': "pfeilderluft", 'ui': "Pfeil der Luft", 'stats': ['KL', 'IN', 'CH']}, + 'z_pfeildeseises': {'internal': "pfeildeseises", 'ui': "Pfeil des Eises", 'stats': ['KL', 'IN', 'CH']}, + 'z_pfeildeserzes': {'internal': "pfeildeserzes", 'ui': "Pfeil des Erzes", 'stats': ['KL', 'IN', 'CH']}, + 'z_pfeildesfeuers': {'internal': "pfeildesfeuers", 'ui': "Pfeil des Feuers", 'stats': ['KL', 'IN', 'CH']}, + 'z_pfeildeshumus': {'internal': "pfeildeshumus", 'ui': "Pfeil des Humus", 'stats': ['KL', 'IN', 'CH']}, + 'z_pfeildeswassers': {'internal': "pfeildeswassers", 'ui': "Pfeil des Wassers", 'stats': ['KL', 'IN', 'CH']}, + 'z_planastrale': {'internal': "planastrale", 'ui': "Planastrale Anderwelt", 'stats': ['MU', 'MU', 'KO']}, + 'z_plumbumbarum': {'internal': "plumbumbarum", 'ui': "Plumbumbarum schwerer Arm", 'stats': ['CH', 'GE', 'KK']}, + 'z_projektimago': {'internal': "projektimago", 'ui': "Projektimago Ebenbild", 'stats': ['MU', 'IN', 'CH']}, + 'z_protectionis': {'internal': "protectionis", 'ui': "Protectionis Kontrabann", 'stats': ['KL', 'CH', 'KO']}, + 'z_psychostabilis': {'internal': "psychostabilis", 'ui': "Psychostabilis", 'stats': ['MU', 'KL', 'KO']}, + 'z_radau': {'internal': "radau", 'ui': "Radau", 'stats': ['MU', 'CH', 'KO']}, + 'z_reflectimago': {'internal': "reflectimago", 'ui': "Reflectimago Spiegelschein", 'stats': ['KL', 'CH', 'FF']}, + 'z_reptilea': {'internal': "reptilea", 'ui': "Reptilea Natternnest", 'stats': ['MU', 'IN', 'CH']}, + 'z_respondami': {'internal': "respondami", 'ui': "Respondami Wahrheitszwang", 'stats': ['MU', 'IN', 'CH']}, + 'z_reversalis': {'internal': "reversalis", 'ui': "Reversalis Revidum", 'stats': ['KL', 'IN', 'CH']}, + 'z_ruhekoerper': {'internal': "ruhe", 'ui': "Ruhe Körper, ruhe Geist", 'stats': ['KL', 'CH', 'KO']}, + 'z_salander': {'internal': "salander", 'ui': "Salander Mutander", 'stats': ['KL', 'CH', 'KO']}, + 'z_sanftmut': {'internal': "sanftmut", 'ui': "Sanftmut", 'stats': ['MU', 'CH', 'CH']}, + 'z_sapefacta': {'internal': "sapefacta", 'ui': "Sapefacta Zauberschwamm", 'stats': ['KL', 'CH', 'FF']}, + 'z_satuariasherrlichkeit': {'internal': "satuarias", 'ui': "Satuarias Herrlichkeit", 'stats': ['IN', 'CH', 'CH']}, + 'z_schabernack': {'internal': "schabernack", 'ui': "Schabernack", 'stats': ['KL', 'IN', 'CH']}, + 'z_schadenszauberbannen': {'internal': "schadenszauber", 'ui': "Schadenszauber bannen", 'stats': ['MU', 'IN', 'KO']}, + 'z_schelmenkleister': {'internal': "schelmenkleister", 'ui': "Schelmenkleister", 'stats': ['IN', 'GE', 'FF']}, + 'z_schelmenlaune': {'internal': "schelmenlaune", 'ui': "Schelmenlaune", 'stats': ['MU', 'IN', 'CH']}, + 'z_schelmenmaske': {'internal': "schelmenmaske", 'ui': "Schelmenmaske", 'stats': ['IN', 'CH', 'GE']}, + 'z_schelmenrausch': {'internal': "schelmenrausch", 'ui': "Schelmenrausch", 'stats': ['IN', 'CH', 'CH']}, + 'z_dz_schlangenruf': {'internal': "schlangenruf", 'ui': "Schlangenruf", 'stats': ['MU', 'CH', 'CH']}, + 'z_schleierderunwissenheit': {'internal': "schleier", 'ui': "Schleier der Unwissenheit", 'stats': ['KL', 'KL', 'FF']}, + 'z_schwarzerschrecken': {'internal': "schwarzerschrecken", 'ui': "Schwarzer Schrecken", 'stats': ['MU', 'IN', 'CH']}, + 'z_schwarzundrot': {'internal': "schwarzundrot", 'ui': "Schwarz und Rot", 'stats': ['MU', 'CH', 'KO']}, + 'z_dz_seelenfeuerlichterloh': {'internal': "Seelenfeuer_Lichterloh", 'ui': "Seelenfeuer Lichterloh", 'stats': ['MU', 'MU', 'KO']}, + 'z_seelentiererkennen': {'internal': "seelentier", 'ui': "Seelentier erkennen", 'stats': ['IN', 'IN', 'CH']}, + 'z_seelenwanderung': {'internal': "seelenwanderung", 'ui': "Seelenwanderung", 'stats': ['MU', 'CH', 'KO']}, + 'z_seidenweich': {'internal': "seidenweich", 'ui': "Seidenweich Schuppengleich", 'stats': ['IN', 'FF', 'FF']}, + 'z_seidenzunge': {'internal': "seidenzunge", 'ui': "Seidenzunge Elfenwort", 'stats': ['KL', 'IN', 'CH']}, + 'z_sensattacco': {'internal': "sensattacco", 'ui': "Sensattacco Meisterstreich", 'stats': ['MU', 'IN', 'GE']}, + 'z_sensibar': {'internal': "sensibar", 'ui': "Sensibar Empathicus", 'stats': ['KL', 'IN', 'CH']}, + 'z_serpentialis': {'internal': "serpentialis", 'ui': "Serpentialis Schlangenleib", 'stats': ['MU', 'CH', 'GE']}, + 'z_silentium': {'internal': "silentium", 'ui': "Silentium Schweigekreis", 'stats': ['KL', 'IN', 'CH']}, + 'z_sinesigil': {'internal': "sinesigil", 'ui': "Sinesigil Unerkannt", 'stats': ['KL', 'IN', 'FF']}, + 'z_skelettarius': {'internal': "skelettarius", 'ui': "Skelettarius Totenherr", 'stats': ['MU', 'MU', 'CH']}, + 'z_solidirid': {'internal': "solidirid", 'ui': "Solidirid Weg aus Licht", 'stats': ['IN', 'KO', 'KK']}, + 'z_somnigravis': {'internal': "somnigravis", 'ui': "Somnigravis tiefer Schlaf", 'stats': ['KL', 'CH', 'CH']}, + 'z_dz_sphaerovisioschreckensbild': {'internal': "Sphaerovisio_Schreckensbild", 'ui': "Sphärovisio Schreckensbild", 'stats': ['MU', 'KL', 'FF']}, + 'z_spinnenlauf': {'internal': "spinnenlauf", 'ui': "Spinnenlauf", 'stats': ['IN', 'GE', 'KK']}, + 'z_dz_spinnennetz': {'internal': "spinnennetz", 'ui': "Spinnennetz", 'stats': ['IN', 'FF', 'KO']}, + 'z_dz_spinnenruf': {'internal': "spinnenruf", 'ui': "Spinnenruf", 'stats': ['MU', 'CH', 'CH']}, + 'z_spurlos': {'internal': "spurlos", 'ui': "Spurlos Trittlos", 'stats': ['IN', 'GE', 'GE']}, + 'z_standfest': {'internal': "standfest", 'ui': "Standfest Katzengleich", 'stats': ['IN', 'GE', 'FF']}, + 'z_staubwandle': {'internal': "staub", 'ui': "Staub wandle!", 'stats': ['MU', 'KL', 'CH']}, + 'z_steinmauer': {'internal': "steinmauer", 'ui': "Steinmauer", 'stats': ['MU', 'KL', 'CH']}, + 'z_steinwandle': {'internal': "stein", 'ui': "Stein wandle!", 'stats': ['MU', 'CH', 'KK']}, + 'z_stillstand': {'internal': "stillstand", 'ui': "Stillstand", 'stats': ['MU', 'IN', 'GE']}, + 'z_stimmendeswindes': {'internal': "stimmen_des_windes", 'ui': "Stimmen des Windes", 'stats': ['MU', 'IN', 'IN']}, + 'z_sumpfstrudel': {'internal': "sumpfstrudel", 'ui': "Sumpfstrudel", 'stats': ['MU', 'IN', 'KK']}, + 'z_sumuselixiere': {'internal': "sumus", 'ui': "Sumus Elixiere", 'stats': ['IN', 'CH', 'FF']}, + 'z_dz_tanzdererloesung': {'internal': "Tanz_der_Erloesung", 'ui': "Tanz der Erlösung", 'stats': ['MU', 'CH', 'CH']}, + 'z_tauschrausch': {'internal': "tauschrausch", 'ui': "Tauschrausch", 'stats': ['IN', 'FF', 'KO']}, + 'z_tempusstasis': {'internal': "tempus", 'ui': "Tempus Stasis", 'stats': ['MU', 'KL', 'KK']}, + 'z_dz_thargunitothbann': {'internal': "Thargunitothbann", 'ui': "Thargunitothbann", 'stats': ['MU', 'CH', 'KO']}, + 'z_tierebesprechen': {'internal': "tiere", 'ui': "Tiere besprechen", 'stats': ['MU', 'IN', 'CH']}, + 'z_tiergedanken': {'internal': "tiergedanken", 'ui': "Tiergedanken", 'stats': ['MU', 'IN', 'CH']}, + 'z_dz_tierruf': {'internal': "tierruf", 'ui': "Tierruf", 'stats': ['MU', 'CH', 'CH']}, + 'z_tlalucsodem': {'internal': "tlalucs", 'ui': "Tlalucs Odem Pestgestank", 'stats': ['MU', 'IN', 'GE']}, + 'z_toteshandle': {'internal': "totes", 'ui': "Totes handle!", 'stats': ['MU', 'CH', 'KO']}, + 'z_transformatio': {'internal': "transformatio", 'ui': "Transformatio Formgestalt", 'stats': ['KL', 'FF', 'KK']}, + 'z_transmutare': {'internal': "transmutare", 'ui': "Transmutare Körperform", 'stats': ['CH', 'GE', 'KO']}, + 'z_transversalis': {'internal': "transversalis", 'ui': "Transversalis Teleport", 'stats': ['KL', 'IN', 'KO']}, + 'z_traumgestalt': {'internal': "traumgestalt", 'ui': "Traumgestalt", 'stats': ['IN', 'CH', 'CH']}, + 'z_umbraporta': {'internal': "umbraporta", 'ui': "Umbraporta Schattentür", 'stats': ['MU', 'IN', 'GE']}, + 'z_unberuehrt': {'internal': "unberuhrt", 'ui': "Unberührt von Satinav", 'stats': ['KL', 'FF', 'KO']}, + 'z_unitatio': {'internal': "unitatio", 'ui': "Unitatio Geistesbund", 'stats': ['IN', 'CH', 'KO']}, + 'z_dz_unsichtbareglut': {'internal': "Unsichtbare_Glut", 'ui': "Unsichtbare Glut", 'stats': ['KL', 'IN', 'FF']}, + 'z_unsichtbarerjaeger': {'internal': "unsichtbarer", 'ui': "Unsichtbarer Jäger", 'stats': ['IN', 'FF', 'GE']}, + 'z_dz_valetudolebenskraft': {'internal': "Valetudo_Lebenskraft", 'ui': "Valetudo Lebenskraft", 'stats': ['IN', 'GE', 'KO']}, + 'z_veraenderungaufheben': {'internal': "veranderung", 'ui': "Veränderung aufheben", 'stats': ['KL', 'IN', 'KO']}, + 'z_verschwindibus': {'internal': "verschwindibus", 'ui': "Verschwindibus", 'stats': ['IN', 'CH', 'GE']}, + 'z_verstaendigungstoeren': {'internal': "verstandigung", 'ui': "Verständigung stören", 'stats': ['KL', 'KL', 'IN']}, + 'z_verwandlungbeenden': {'internal': "verwandlung", 'ui': "Verwandlung beenden", 'stats': ['KL', 'CH', 'FF']}, + 'z_vipernblick': {'internal': "vipernblick", 'ui': "Vipernblick", 'stats': ['MU', 'MU', 'CH']}, + 'z_visibli': {'internal': "visibli", 'ui': "Visibli Vanitar", 'stats': ['KL', 'IN', 'GE']}, + 'z_vocolimbo': {'internal': "vocolimbo", 'ui': "Vocolimbo hohler Klang", 'stats': ['KL', 'CH', 'FF']}, + 'z_vogelzwitschern': {'internal': "vogelzwitschern", 'ui': "Vogelzwitschern Glockenspiel", 'stats': ['MU', 'IN', 'GE']}, + 'z_wandausdornen': {'internal': "wandausdornen", 'ui': "Wand aus Dornen", 'stats': ['MU', 'KL', 'CH']}, + 'z_wandausflammen': {'internal': "wand_aus_flammen", 'ui': "Wand aus Flammen", 'stats': ['MU', 'KL', 'CH']}, + 'z_warmesblut': {'internal': "warmes", 'ui': "Warmes Blut", 'stats': ['MU', 'IN', 'IN']}, + 'z_warmesgefriere': {'internal': "warmes_gefriere", 'ui': "Warmes gefriere", 'stats': ['MU', 'KL', 'KK']}, + 'z_wasseratem': {'internal': "wasseratem", 'ui': "Wasseratem", 'stats': ['MU', 'KL', 'KO']}, + 'z_wasserwall': {'internal': "wasserwall", 'ui': "Wasserwall", 'stats': ['MU', 'KL', 'CH']}, + 'z_weicheserstarre': {'internal': "weiches", 'ui': "Weiches erstarre!", 'stats': ['MU', 'KL', 'KK']}, + 'z_weihrauchwolke': {'internal': "weihrauchwolke", 'ui': "Weihrauchwolke Wohlgeruch", 'stats': ['IN', 'CH', 'FF']}, + 'z_weisheitderbaeume': {'internal': "weisheit", 'ui': "Weisheit der Bäume", 'stats': ['MU', 'IN', 'KO']}, + 'z_dz_weisheitdersteine': {'internal': "Weisheit_der_Steine", 'ui': "Weisheit der Steine", 'stats': ['MU', 'IN', 'KO']}, + 'z_weissemaehn': {'internal': "weisse", 'ui': "Weiße Mähn' und Gold'ner Huf", 'stats': ['KL', 'IN', 'CH']}, + 'z_wellenlauf': {'internal': "wellenlauf", 'ui': "Wellenlauf", 'stats': ['MU', 'GE', 'GE']}, + 'z_wettermeisterschaft': {'internal': "wettermeisterschaft", 'ui': "Wettermeisterschaft", 'stats': ['MU', 'CH', 'GE']}, + 'z_widerwille': {'internal': "widerwille", 'ui': "Widerwille Ungemacht", 'stats': ['MU', 'IN', 'GE']}, + 'z_windbarriere': {'internal': "windbarriere", 'ui': "Windbarriere", 'stats': ['MU', 'KL', 'CH']}, + 'z_windgefluester': {'internal': "windgefluester", 'ui': "Windgeflüster", 'stats': ['KL', 'IN', 'IN']}, + 'z_windhose': {'internal': "windhose", 'ui': "Windhose", 'stats': ['MU', 'IN', 'KK']}, + 'z_windstille': {'internal': "windstille", 'ui': "Windstille", 'stats': ['KL', 'CH', 'KK']}, + 'z_wipfellauf': {'internal': "wipfellauf", 'ui': "Wipfellauf", 'stats': ['MU', 'IN', 'GE']}, + 'z_xenographus': {'internal': "xenographus", 'ui': "Xenographus Schriftenkunde", 'stats': ['KL', 'KL', 'IN']}, + 'z_zagibu': {'internal': "zagibu", 'ui': "Zagibu Ubigaz", 'stats': ['IN', 'CH', 'FF']}, + 'z_zappenduster': {'internal': "zappenduster", 'ui': "Zappenduster", 'stats': ['IN', 'IN', 'FF']}, + 'z_zauberklinge': {'internal': "zauberklinge", 'ui': "Zauberklinge Geisterspeer", 'stats': ['KL', 'FF', 'KO']}, + 'z_zaubernahrung': {'internal': "zaubernahrung", 'ui': "Zaubernahrung Hungerbann", 'stats': ['MU', 'MU', 'KO']}, + 'z_zauberwesen': {'internal': "zauberwesen", 'ui': "Zauberwesen der Natur", 'stats': ['MU', 'IN', 'CH']}, + 'z_zauberzwang': {'internal': "zauberzwang", 'ui': "Zauberzwang", 'stats': ['MU', 'CH', 'CH']}, + 'z_zornderelemente': {'internal': "zorn", 'ui': "Zorn der Elemente", 'stats': ['MU', 'CH', 'KO']}, + 'z_zungelaehmen': {'internal': "zunge", 'ui': "Zunge lähmen", 'stats': ['MU', 'CH', 'FF']}, + 'z_zwingtanz': {'internal': "zwingtanz", 'ui': "Zwingtanz", 'stats': ['MU', 'KL', 'CH']} +}; +/* + Constants for effective encumbrance for talent/spell checks +*/ +const effectiveEncumbrance = { + "t_ko_akrobatik": { "value": 2, "type": "factor" }, + "t_ko_athletik": { "value": 2, "type": "factor" }, + "t_ko_fliegen": { "value": 1, "type": "factor" }, + "t_ko_gaukeleien": { "value": 2, "type": "factor" }, + "t_ko_klettern": { "value": 2, "type": "factor" }, + "t_ko_koerperbeherrschung": { "value": 2, "type": "factor" }, + "t_ko_reiten": { "value": -2, "type": "summand" }, + "t_ko_schleichen": { "value": 1, "type": "factor" }, + "t_ko_schwimmen": { "value": 2, "type": "factor" }, + "t_ko_sichverstecken": { "value": -2, "type": "summand" }, + "t_ko_singen": { "value": -3, "type": "summand" }, + "t_ko_skifahren": { "value": -2, "type": "summand" }, + "t_ko_stimmenimitieren": { "value": -4, "type": "summand" }, + "t_ko_tanzen": { "value": 2, "type": "factor" }, + "t_ko_taschendiebstahl": { "value": 2, "type": "factor" } +} + +on("sheet:opened change:character_name", function(eventInfo) { + var func = "Action Listener for Updating Roll Button Actions on Character Name Updates"; + // Build list of attributes + var attrsToGet = ["character_name"]; + var ebeTalents = [] + for(talent of talents_ebe) + { + ebeTalents.push(talent + "-ebe"); + } + for(attr of [].concat(talents, ebeTalents, spells)) + { + attrsToGet.push(attr + "_action"); + } + safeGetAttrs(attrsToGet, function(v) { + var attrsToChange = {}; + + for (attr of attrsToGet) + { + // No action buttons for character name and combat techniques required + if (attr.match("t_ka_") || attr === "character_name") continue; + attrsToChange[attr] = "%{" + v["character_name"] + "|" + attr.replace(/_action$/gm, "") + "-action}"; + } + + attrsToChange["eidsegen_action"] = "%{" + v["character_name"] + "|eidsegen-action}"; + + debugLog(func, attrsToChange); + safeSetAttrs(attrsToChange); + }); +}); + +on(talents.map(talent => "clicked:" + talent + "-action").join(" "), async (info) => { + var func = "Action Listener for Talent Roll Buttons"; + var trigger = info["triggerName"].replace(/clicked:([^-]+)-action/, '$1'); + var nameInternal = talentsData[trigger]["internal"]; + var nameUI = talentsData[trigger]["ui"]; + debugLog(func, trigger, talentsData[trigger]); + + // Build Roll Macro + var rollMacro = ""; + + rollMacro += + "@{gm_roll_opt} " + + "&{template:talent} " + + "{{name=" + nameUI + "}} " + + "{{wert=[[@{TaW_" + nameInternal + "}d1cs0cf2]]}} " + + "{{mod=[[?{Erleichterung (−) oder Erschwernis (+)|0}d1cs0cf2]]}} "; + // All languages (sp) and scripts (sc) use the same attributes, so no layer of indirection via talent name required/possible. + if (trigger.replace(/t_([^_]+)_.*/, '$1') === "sp") + { + rollMacro += + "{{stats=[[ " + + "[Eigenschaft 1:] [[@{KL}]]d1cs0cf2 + " + + "[Eigenschaft 2:] [[@{IN}]]d1cs0cf2 + " + + "[Eigenschaft 3:] [[@{CH}]]d1cs0cf2" + + "]]}} "; + } else if (trigger.replace(/t_([^_]+)_.*/, '$1') === "sc") { + rollMacro += + "{{stats=[[ " + + "[Eigenschaft 1:] [[@{KL}]]d1cs0cf2 + " + + "[Eigenschaft 2:] [[@{KL}]]d1cs0cf2 + " + + "[Eigenschaft 3:] [[@{FF}]]d1cs0cf2" + + "]]}} "; + } else { + rollMacro += + "{{stats=[[ " + + "[Eigenschaft 1:] [[@{Eigenschaft1" + nameInternal + "}]]d1cs0cf2 + " + + "[Eigenschaft 2:] [[@{Eigenschaft2" + nameInternal + "}]]d1cs0cf2 + " + + "[Eigenschaft 3:] [[@{Eigenschaft3" + nameInternal + "}]]d1cs0cf2" + + "]]}} "; + } + + rollMacro += + "{{roll=[[3d20cs<@{cs_talent}cf>@{cf_talent}]]}} " + + "{{result=[[0]]}} " + + "{{criticality=[[0]]}} " + + "{{critThresholds=[[[[@{cs_talent}]]d1cs0cf2 + [[@{cf_talent}]]d1cs0cf2]]}} "; + debugLog(func, rollMacro); + + // Execute Roll + results = await startRoll(rollMacro); + debugLog(func, "test: info:", info, "results:", results); + + // Process Roll + var rollID = results.rollId; + results = results.results; + var TaW = results.wert.result; + var mod = results.mod.result; + var stats = [ + results.stats.rolls[0].dice, + results.stats.rolls[1].dice, + results.stats.rolls[2].dice + ]; + var rolls = results.roll.rolls[0].results; + var success = results.critThresholds.rolls[0].dice; + var failure = results.critThresholds.rolls[1].dice; + /* Result + 0 Failure + 1 Success + */ + var result = 0; + /* Criticality + -3 Triple 20 + -2 Double 20 + 0 no double 1/20 + +2 Double 1 + +3 Triple 1 + */ + var criticality = 0; + + /* + Doppel/Dreifach-1/20-Berechnung + Vor der TaP*-Berechnung, da diese damit gegebenenfalls hinfällig wird + */ + { + let successes = 0; + let failures = 0; + for (roll of rolls) + { + if (roll <= success) + { + successes += 1; + } else if (roll >= failure) { + failures += 1; + } + if (successes >= 2) + { + criticality = successes; + } else if (failures >= 2) { + criticality = -failures; + } + } + } + + /* + TaP*-Berechnung + */ + var effRolls = rolls; + var effTaW = TaW - mod; + var TaPstar = effTaW; + + // Negativer TaW: |effTaW| zu Teilwürfen addieren + if (criticality >= 2) + { + TaPstar = TaW; + result = 1; + } else { + if (effTaW < 0) + { + for (roll in rolls) + { + effRolls[roll] = rolls[roll] + Math.abs(effTaW); + } + TaPstar = 0; + } + + // TaP-Verbrauch für jeden Wurf + for (roll in effRolls) + { + TaPstar -= Math.max(0, effRolls[roll] - stats[roll]); + } + + // Max. TaP* = TaW + TaPstar = Math.min(TaW, TaPstar); + + // Ergebnis an Doppel/Dreifach-20 anpassen + if (Math.abs(criticality) <= 1) + { + result = TaPstar < 0 ? 0 : 1; + } else if (criticality <= -2) { + result = 0; + } + } + + finishRoll( + rollID, + { + roll: TaPstar, + result: result, + criticality: criticality, + stats: stats.toString().replaceAll(",", "/") + } + ); +}); + +on(talents_ebe.map(talent => "clicked:" + talent + "-ebe-action").join(" "), async (info) => { + var func = "Action Listener for Talent Roll Buttons With Encumbrance"; + var trigger = info["triggerName"].replace(/clicked:([^-]+)-ebe-action/, '$1'); + var nameInternal = talentsData[trigger]["internal"]; + var nameUI = talentsData[trigger]["ui"]; + debugLog(func, trigger, talentsData[trigger]); + + // Build Roll Macro + var rollMacro = ""; + var ebeMacro = "@{BE}"; + var talentEbeData = effectiveEncumbrance[trigger]; + console.log(talentEbeData); + if (talentEbeData["type"] === "factor") + { + ebeMacro = talentEbeData["value"].toString() + " * " + ebeMacro; + } else if (talentEbeData["type"] === "summand") { + ebeMacro += talentEbeData["value"].toString(); + } + + rollMacro += + "@{gm_roll_opt} " + + "&{template:talent-ebe} " + + "{{name=" + nameUI + "}} " + + "{{wert=[[@{TaW_" + nameInternal + "}d1cs0cf2]]}} " + + "{{mod=[[ 0d1 + ?{Erleichterung (−) oder Erschwernis (+)|0}d1cs0cf2 + [[{0d1 + " + ebeMacro + ", 0d1}kh1]]d1cs0cf2 ]]}} " + + "{{stats=[[ " + + "[Eigenschaft 1:] [[@{Eigenschaft1" + nameInternal + "}]]d1cs0cf2 + " + + "[Eigenschaft 2:] [[@{Eigenschaft2" + nameInternal + "}]]d1cs0cf2 + " + + "[Eigenschaft 3:] [[@{Eigenschaft3" + nameInternal + "}]]d1cs0cf2" + + "]]}} " + + "{{roll=[[3d20cs<@{cs_talent}cf>@{cf_talent}]]}} " + + "{{result=[[0]]}} " + + "{{criticality=[[0]]}} " + + "{{critThresholds=[[[[@{cs_talent}]]d1cs0cf2 + [[@{cf_talent}]]d1cs0cf2]]}} " + + "{{ebe=[[{0d1 + " + ebeMacro + ", 0d1}kh1]]}} "; + debugLog(func, rollMacro); + + // Execute Roll + results = await startRoll(rollMacro); + debugLog(func, "test: info:", info, "results:", results); + + // Process Roll + var rollID = results.rollId; + results = results.results; + var TaW = results.wert.result; + var mod = results.mod.result; + + // The result does not contain rolls of 0 dice (0d1cs0cf2), unmodified checks and checks with effective encumbrance 0 do not produce rolls (but still a roll result!). + var ebe = 0; + if (results.mod.rolls.length === 1) + { + ebe = mod; + } else if (results.mod.rolls.length === 2) { + ebe = results.mod.rolls[1].results.reduce((total, num) => {return total + num;}, 0); + } + var modonly = mod - ebe; + + var stats = [ + results.stats.rolls[0].dice, + results.stats.rolls[1].dice, + results.stats.rolls[2].dice + ]; + var rolls = results.roll.rolls[0].results; + var success = results.critThresholds.rolls[0].dice; + var failure = results.critThresholds.rolls[1].dice; + /* Result + 0 Failure + 1 Success + */ + var result = 0; + /* Criticality + -3 Triple 20 + -2 Double 20 + 0 no double 1/20 + +2 Double 1 + +3 Triple 1 + */ + var criticality = 0; + + /* + Doppel/Dreifach-1/20-Berechnung + Vor der TaP*-Berechnung, da diese damit gegebenenfalls hinfällig wird + */ + { + let successes = 0; + let failures = 0; + for (roll of rolls) + { + if (roll <= success) + { + successes += 1; + } else if (roll >= failure) { + failures += 1; + } + if (successes >= 2) + { + criticality = successes; + } else if (failures >= 2) { + criticality = -failures; + } + } + } + + /* + TaP*-Berechnung + */ + var effRolls = rolls; + var effTaW = TaW - mod; + var TaPstar = effTaW; + + // Negativer TaW: |effTaW| zu Teilwürfen addieren + if (criticality >= 2) + { + TaPstar = TaW; + result = 1; + } else { + if (effTaW < 0) + { + for (roll in rolls) + { + effRolls[roll] = rolls[roll] + Math.abs(effTaW); + } + TaPstar = 0; + } + + // TaP-Verbrauch für jeden Wurf + for (roll in effRolls) + { + TaPstar -= Math.max(0, effRolls[roll] - stats[roll]); + } + + // Max. TaP* = TaW + TaPstar = Math.min(TaW, TaPstar); + + // Ergebnis an Doppel/Dreifach-20 anpassen + if (Math.abs(criticality) <= 1) + { + result = TaPstar < 0 ? 0 : 1; + } else if (criticality <= -2) { + result = 0; + } + } + + finishRoll( + rollID, + { + mod: modonly, + roll: TaPstar, + result: result, + criticality: criticality, + stats: stats.toString().replaceAll(",", "/") + } + ); +}); + +on(spells.map(spell => "clicked:" + spell + "-action").join(" "), async (info) => { + var func = "Action Listener for Spell Roll Buttons"; + var trigger = info["triggerName"].replace(/clicked:([^-]+)-action/, '$1'); + var nameInternal = spellsData[trigger]["internal"]; + var nameUI = spellsData[trigger]["ui"]; + var stats = spellsData[trigger]["stats"]; + debugLog(func, trigger, spellsData[trigger]); + + // Build Roll Macro + var rollMacro = ""; + + rollMacro += + "@{gm_roll_opt} " + + "&{template:zauber} " + + "{{name=" + nameUI + "}} " + + "{{wert=[[@{ZfW_" + nameInternal + "}d1cs0cf2]]}} " + + "{{mod=[[?{Erleichterung (−) oder Erschwernis (+)|0}d1cs0cf2]]}} " + + "{{stats=[[ " + + "[Eigenschaft 1:] [[@{" + stats[0] + "}]]d1cs0cf2 + " + + "[Eigenschaft 2:] [[@{" + stats[1] + "}]]d1cs0cf2 + " + + "[Eigenschaft 3:] [[@{" + stats[2] + "}]]d1cs0cf2" + + "]]}} " + + "{{roll=[[3d20cs<@{cs_zauber}cf>@{cf_zauber}]]}} " + + "{{result=[[0]]}} " + + "{{criticality=[[0]]}} " + + "{{critThresholds=[[[[@{cs_zauber}]]d1cs0cf2 + [[@{cf_zauber}]]d1cs0cf2]]}} "; + debugLog(func, rollMacro); + + // Execute Roll + results = await startRoll(rollMacro); + console.log("test: info:", info, "results:", results); + var rollID = results.rollId; + results = results.results; + var TaW = results.wert.result; + var mod = results.mod.result; + var stats = [ + results.stats.rolls[0].dice, + results.stats.rolls[1].dice, + results.stats.rolls[2].dice + ]; + var rolls = results.roll.rolls[0].results; + var success = results.critThresholds.rolls[0].dice; + var failure = results.critThresholds.rolls[1].dice; + /* Result + -1 Failure (due to Firm Matrix) + 0 Failure + 1 Success + 2 Success (due to Firm Matrix) + */ + var result = 0; + /* Criticality + -4 Two or more dice same result (not 1, not 20); via Spell Stalling (Spruchhemmung) + -3 Triple 20 + -2 Double 20 + 0 no double 1/20 + +2 Double 1 + +3 Triple 1 + */ + var criticality = 0; + + safeGetAttrs(["v_festematrix", "n_spruchhemmung"], function(v) { + /* + Doppel/Dreifach-1/20-Berechnung + Vor der TaP*-Berechnung, da diese damit gegebenenfalls hinfällig wird + */ + /* + Variable, um festhalten zu können, dass ein + * normal misslungenes Ergebnis ohne Feste Matrix automatisch misslungen wäre und + * normal gelungenes Ergebnis ohne Feste Matrix automatisch misslungen wäre + */ + var festeMatrixSave = false; + { + let successes = 0; + let failures = 0; + let festeMatrix = v["v_festematrix"] === "0" ? false : true; + let spruchhemmung = v["n_spruchhemmung"] === "0" ? false : true; + + for (roll of rolls) + { + if (roll <= success) + { + successes += 1; + } else if (roll >= failure) { + failures += 1; + } + if (successes >= 2) + { + criticality = successes; + } else if (failures >= 2) { + criticality = -failures; + } + } + // feste Matrix + if (festeMatrix && criticality === -2) + { + criticality = -1; + festeMatrixSave = true; + + for (roll of rolls) + { + if ( + (roll > success) && + (roll < failure) && + ( + roll === 18 || roll === 19 + ) + ) + { + criticality -= 1; + festeMatrixSave = false; + } + } + } + // Spruchhemmung, soll nur auslösen, wenn eh nicht Doppel/Dreifach-1/20 + if ( + spruchhemmung && + criticality > -2 && + criticality < 2 && + ( + (rolls[0] === rolls[1]) || + (rolls[1] === rolls[2]) || + (rolls[2] === rolls[0]) + ) + ) + { + criticality = -4; + } + } + + /* + TaP*-Berechnung + */ + var effRolls = rolls; + var effTaW = TaW - mod; + var TaPstar = effTaW; + + // Negativer TaW: |effTaW| zu Teilwürfen addieren + if (criticality >= 2) + { + TaPstar = TaW; + result = 1; + } else { + if (effTaW < 0) + { + for (roll in rolls) + { + effRolls[roll] = rolls[roll] + Math.abs(effTaW); + } + TaPstar = 0; + } + + // TaP-Verbrauch für jeden Wurf + for (roll in effRolls) + { + TaPstar -= Math.max(0, effRolls[roll] - stats[roll]); + } + + // Max. TaP* = TaW + TaPstar = Math.min(TaW, TaPstar); + + // Ergebnis an Doppel/Dreifach-20 anpassen + if (Math.abs(criticality) <= 1) + { + result = TaPstar < 0 ? 0 : 1; + if (festeMatrixSave && result === 0) + { + result = -1; + } else if (festeMatrixSave && result === 1) + { + result = 2; + } + } else if (criticality <= -2) { + result = 0; + } + } + + finishRoll( + rollID, + { + roll: TaPstar, + result: result, + criticality: criticality, + stats: stats.toString().replaceAll(",", "/") + } + ); + }); +}); + +on('clicked:eidsegen-action', async (info) => { + results = await startRoll( + "@{gm_roll_opt} " + + "&{template:liturgie} " + + "{{name=Eidsegen}} " + + "{{wert=[[@{Liturgiekenntnis}d1cs0cf2]]}} " + + "{{mod=[[ ?{Erleichterung (−) oder Erschwernis (+)|0}d1cs0cf2 ]]}} " + + "{{stats=[[ [Eigenschaft 1:] [[@{MU}]]d1cs0cf2 + [Eigenschaft 2:] [[@{IN}]]d1cs0cf2 + [Eigenschaft 3:] [[@{CH}]]d1cs0cf2]]}} " + + "{{roll=[[3d20cs<0cf>21]]}} " + + "{{result=[[0]]}} " + ); + console.log("test: info:", info, "results:", results); + var rollID = results.rollId; + results = results.results; + var TaW = results.wert.result; + var mod = results.mod.result; + var stats = [ + results.stats.rolls[0].dice, + results.stats.rolls[1].dice, + results.stats.rolls[2].dice + ]; + var rolls = results.roll.rolls[0].results; + /* Result + 0 Failure + 1 Success + */ + var result = 0; + + /* + TaP*-Berechnung + */ + var effRolls = rolls; + var effTaW = TaW - mod; + var TaPstar = effTaW; + + // Negativer TaW: |effTaW| zu Teilwürfen addieren + if (effTaW < 0) + { + for (roll in rolls) + { + effRolls[roll] = rolls[roll] + Math.abs(effTaW); + } + TaPstar = 0; + } + + // TaP-Verbrauch für jeden Wurf + for (roll in effRolls) + { + TaPstar -= Math.max(0, effRolls[roll] - stats[roll]); + } + + // Max. TaP* = TaW + TaPstar = Math.min(TaW, TaPstar); + + // Ergebnis hängt nur von TaP* ab + result = TaPstar < 0 ? 0 : 1; + + finishRoll( + rollID, + { + roll: TaPstar, + result: result, + stats: stats.toString().replaceAll(",", "/") + } + ); +}); diff --git a/Earthdawn (FASA Official)/Earthdawn.css b/Earthdawn (FASA Official)/Earthdawn.css index b609bbcfd5..e8ac824ade 100644 --- a/Earthdawn (FASA Official)/Earthdawn.css +++ b/Earthdawn (FASA Official)/Earthdawn.css @@ -1,2537 +1,2537 @@ -/* Earthdawn.css */ -/* ############################################ css Reset ######################################################################### */ -/*v2.05 pushed 20211226*/ - -/* @import url('https://fonts.googleapis.com/css2?family=IM+Fell+English+SC&display=swap'); */ -@import url('https://fonts.googleapis.com/css2?family=Aladin&display=swap'); - - -input, -.charsheet input { - height: initial; -} -label, -.charsheet label { - color: initial; - display: inline-block; - font-size: inherit; - font-weight: normal; - height: auto; - line-height: 1em; - margin-bottom: initial; - padding-right: initial; - position: relative; - width: initial; -} -select, -.charsheet select { - margin: initial; - width: initial; - height: 20px; /*JBF 210317*/ - padding: 0; - font-weight: bold; - -} -textarea, -.charsheet textarea { - height: initial; - /* overflow-x: hidden; - overflow-y: auto; */ - resize: initial; - background-color: var( --bg-color ); - box-sizing: border-box; - border: 1px solid var( --outline-color ); - text-align: left; - overflow: auto; - pointer-events: initial; -} - - - - -/* ##### iconselect #### */ - -.sheet-testRepEditMode:not(:checked)~.repcontainer .sheet-iconselect-select, -.sheet-iconselect-span:not(:hover)>.sheet-iconselect-select-noedit, -.sheet-iconselect-span:not(:hover)>.sheet-iconselect-select{ - display: none; -} - -.charsheet .sheet-testRepEditMode:checked~.repcontainer .sheet-iconselect-span:hover>.sheet-iconselect-icon, -.charsheet .sheet-testRepEditMode:checked+.sheet-iconselect-span:hover>.sheet-iconselect-icon, -.charsheet .sheet-iconselect-span:hover>.sheet-iconselect-icon-noedit { - display: none; -} - -.charsheet .sheet-testRepEditMode:checked~.repcontainer .sheet-iconselect-span>.sheet-iconselect-icon, -.charsheet .sheet-testRepEditMode:checked+.sheet-iconselect-span>.sheet-iconselect-icon, -.charsheet .sheet-iconselect-span>.sheet-iconselect-icon-noedit { - background-color: var( --icon-color ); -} - - -.sheet-iconselect-icon, -.sheet-iconselect-span { - min-height: 20px; - min-width: 20px; -} -/* In order to have a correct initialization, it is absolutely necessary to have the iconselect-icon before the iconselect-select, and have the default value marked as checked/selected*/ - - -/* ############################################ Main section ####################################################################### */ -/* Colors: code description What used for. */ -.sheet-user-root { - --bg-color: rgb(255,242,201,0.15);/*Main background color ;*/ - --outline-color: #071840; /* Main border */ - --font-color: #071840; /* Color of fonts on the normal background */ - --header-font-color: white; /* Color of fonts on the header background */ - --highlight-font-color: #071840; /* Color of fonts on the icon background */ - --input-color: rgba(0, 0, 10, 0.1); /* Main section Input fields that are not disabled. */ - --hover-color: red; /* Color of active fields when hovered. */ - --hover-color-bg: rgba(255, 0, 0, 0.5); /* Color of active fields when hovered. */ - --locked-color: transparent; /* Main section Input fields that are locked */ - --control-secondary: #1473B4; /* header section background */ - --inactive-color: #1473B4; /* Color of the inactive tabs */ - --button-color: rgba(245, 245, 245, 1); /* button color */ - --icon-color: rgba(0, 0, 10, 0.1); /* actionable icons */ - -} - - - - - -xxxxx { - xxx: xx; /* * */ -} -/* For absolutely weird reason, we need this line to make the CSS work*/ - -/*.sheet-testAPI:not(:checked)~.sheet-api, Knacks tab is not inside a div */ -.sheet-testAPI:not([value="1"])~div .sheet-api, -.sheet-testAPI:not([value="1"])~div .sheet-Karma-ControlBox, -.sheet-testAPI[value="1"]~div .sheet-NoAPI, -.sheet-testCreation:not([value="1"])~div .sheet-Creation, -.sheet-testCreation[value="1"]~div .sheet-NotCreation, -.sheet-testEdition[value="-1"]~div .sheet-HideIf1879, -.sheet-testEdition:not([value="-1"])~div .sheet-HideIfNot1879, -.sheet-testEdition[value="3"]~div .sheet-HideIfEdition3, -.sheet-testEdition:not([value="3"])~div .sheet-HideIfNotEdition3, -.sheet-testEdition[value="4"]~div .sheet-HideIfEdition4, -.sheet-testEdition:not([value="4"])~div .sheet-HideIfNotEdition4, -.sheet-testPath[value="0"]~div .sheet-HideIfNotPath, -.sheet-testQuest[value="0"]~div .sheet-HideIfNotQuest, -.sheet-testNbDisc[value="0"]~div .sheet-HideIfZeroDisc, -.sheet-testNbDisc[value="1"]~div .sheet-HideIfOneDisc, -.sheet-testNbDisc[value="2"]~div .sheet-HideIfTwoDisc, -.sheet-testNbDisc[value="3"]~div .sheet-HideIfThreeDisc, -.sheet-testNPC:not([value="0"])~div .sheet-HideIfNotPC, -.sheet-testNPC[value="0"]~div .sheet-HideIfPC, -.sheet-testRace:not([value="Tskrang"])~div .sheet-HideIfNotTskrang, -.sheet-testRace:not([value="Other"])~div .sheet-HideIfNotCreature, -.sheet-testRace[value="Other"]~div .sheet-HideIfCreature, -.sheet-testStepDisplay:not([value="1"])~div .sheet-StepTotal, -.sheet-testStepDisplay[value="1"]~div .sheet-StepBase, -.sheet-testChecked:checked~.sheet-HideIfChecked, -.sheet-testChecked:not(:checked)~.sheet-HideIfNotChecked, -.sheet-testChecked:checked~div>.sheet-HideIfChecked, -.sheet-testChecked:not(:checked)~div>.sheet-HideIfNotChecked, -.sheet-testChecked:not(:checked)~span>.sheet-HideIfNotChecked, -.sheet-testChecked:checked~div>div>.sheet-HideIfChecked, -.sheet-testChecked:not(:checked)~div>div>.sheet-HideIfNotChecked, -.sheet-testChecked:checked~span>.sheet-HideIfChecked, -.sheet-testChecked:not(:checked)~.sheet-table-row>.sheet-HideIfNotChecked, -.sheet-testCloseChecked:checked+.sheet-HideIfCloseChecked, -.sheet-testCloseChecked:not(:checked)+.sheet-HideIfNotCloseChecked, -.sheet-testCloseChecked:not(:checked)+.sheet-HideIfCloseChecked+.sheet-HideIfNotCloseChecked, -.sheet-testNum[value="0"]+.sheet-HideIfZero, -.sheet-testNum:not([value="0"])+span+.sheet-HideIfNotZero, -.sheet-testNum[value="1"]+.sheet-HideIfOne, -.sheet-testNum[value="2"]+.sheet-HideIfTwo, -.sheet-testNum[value="3"]+.sheet-HideIfThree, -.sheet-testNum[value="0"]~ .sheet-HideIfZero, -.sheet-testNum[value="0"]~div .sheet-HideIfZero, -.sheet-testNum[value="1"]~div .sheet-HideIfOne, -.sheet-testNum[value="2"]~div .sheet-HideIfTwo, -.sheet-testNum[value="3"]~div .sheet-HideIfThree, -.sheet-testNum[value="0"]~ .sheet-HideIfLessThan1, -.sheet-testNum[value="0"]~div .sheet-HideIfLessThan1, -.sheet-testNum[value="1"]~div .sheet-HideIfLessThan2, -.sheet-testNum[value="2"]~div .sheet-HideIfLessThan3, -.sheet-testNum[value="3"]~div .sheet-HideIfLessThan4, -.sheet-testNum[value="4"]~div .sheet-HideIfLessThan5, -.sheet-testNum[value="5"]~div .sheet-HideIfLessThan6, -.sheet-testNum[value="6"]~div .sheet-HideIfLessThan7, -.sheet-testNum[value="7"]~div .sheet-HideIfLessThan8, -.sheet-testNum[value="8"]~div .sheet-HideIfLessThan9, -.sheet-testNum[value="9"]~div .sheet-HideIfLessThan10, -.sheet-testNum[value="10"]~div .sheet-HideIfLessThan11, -.sheet-testNum[value="11"]~div .sheet-HideIfLessThan12, -.sheet-testNum[value="12"]~div .sheet-HideIfLessThan13, -.sheet-testNum[value="13"]~div .sheet-HideIfLessThan14, -.sheet-testNum[value="14"]~div .sheet-HideIfLessThan15, -.sheet-testModType[value="(0)"]~span>.sheet-HideIfNoRoll, -.sheet-testModType[value="(0)"]~.sheet-HideIfNoRoll, -.sheet-testModType:not([value="(0)"])~span>.sheet-HideIfRoll, -.sheet-testModType:not([value="(0)"])~.sheet-HideIfRoll, -.sheet-testRecord[value="LP"]~.sheet-HideIfLP, -.sheet-testRecord[value="SP"]~.sheet-HideIfSP, -.sheet-testRecord[value="Other"]~.sheet-HideIfOther, -.sheet-testRepEditMode:checked~.repcontainer .sheet-HideIfEditMode, -.sheet-testRepEditMode:not(:checked)~.repcontainer .sheet-HideIfNotEditMode, -.sheet-testRepEditMode:checked~.sheet-HideIfEditMode, -.sheet-testRepEditMode:not(:checked)~.sheet-HideIfNotEditMode, -.sheet-testRepEditMode:checked~div>.sheet-HideIfEditMode, -.sheet-testRepEditMode:not(:checked)~div>.sheet-HideIfNotEditMode, -.sheet-testRepEditMode:checked~div>div>.sheet-HideIfEditMode, -.sheet-testRepEditMode:not(:checked)~div>div>.sheet-HideIfNotEditMode, -.sheet-testRepEditMode:checked~span>.sheet-HideIfEditMode, -.sheet-testRepEditMode:not(:checked)~span>.sheet-HideIfNotEditMode, -.sheet-testRepEditMode:checked~div>div>span>.sheet-HideIfEditMode, -.sheet-testRepEditMode:not(:checked)~div>div>span>.sheet-HideIfNotEditMode, -.sheet-testRepOption1:not(:checked)~.repcontainer .sheet-HideIfNotOption1, -.sheet-testRepOption2:not(:checked)~.repcontainer .sheet-HideIfNotOption2, -.sheet-testRepOption3:not(:checked)~.repcontainer .sheet-HideIfNotOption3, -.sheet-testRepOption4:not(:checked)~.repcontainer .sheet-HideIfNotOption4, -.sheet-testFreeOrThread[value*="-link"]+.sheet-HideIfFreeOrThread, -.sheet-testFreeOrThread:not([value*="-link"])+.sheet-HideIfNotFreeOrThread, -.sheet-testFreeOrThread:not([value*="-link"])+.sheet-HideIfFreeOrThread+.sheet-HideIfNotFreeOrThread, -.sheet-testPlaceholder:not(:placeholder-shown)~.sheet-hideIfNotPlaceholder, -.sheet-testPlaceholder:placeholder-shown~.sheet-hideIfPlaceholder, -.sheet-testPlaceholder:not(:placeholder-shown)~div .sheet-hideIfNotPlaceholder, -.sheet-testPlaceholder:not(:placeholder-shown)~span .sheet-hideIfNotPlaceholder, -.sheet-testPlaceholder:placeholder-shown~span .sheet-hideIfPlaceholder, -input[type="number"]:disabled.sheet-hidden, /* Need this bit of extra specificity here */ -.sheet-hidden { - display: none; -} - -.sheet-testCloseChecked:checked+.sheet-UnHideIfCloseChecked, -.sheet-testChecked:checked~.sheet-UnHideIfChecked, -.sheet-testDSPPath[value="81.0"]~div .sheet-UnHideIfDSPPath, -.sheet-testDSPPath[value="83.0"]~div .sheet-UnHideIfDSPPath, -.sheet-testNum:not([value="0"])+.sheet-UnhideIfNotZero, -.sheet-testNum:not([value="0"])+.sheet-testNum+.sheet-UnhideIfNotZero, -.sheet-testDevotion[value^="QD-"]+.sheet-UnhideIfDevotion -{ display: inline-block; } - -.sheet-testNum2[value="1"]~div .sheet-UnhideIf1, -.sheet-testNum2[value="2"]~div .sheet-UnhideIf2, -.sheet-testNum2[value="3"]~div .sheet-UnhideIf3, -.sheet-testNum2[value="4"]~div .sheet-UnhideIf4, -.sheet-testNum2[value="5"]~div .sheet-UnhideIf5, -.sheet-testNum2[value="6"]~div .sheet-UnhideIf6, -.sheet-testNum2[value="7"]~div .sheet-UnhideIf7, -.sheet-testNum2[value="8"]~div .sheet-UnhideIf8, -.sheet-testNum2[value="9"]~div .sheet-UnhideIf9, -.sheet-testNum2[value="10"]~div .sheet-UnhideIf10, -.sheet-testNum2[value="11"]~div .sheet-UnhideIf11, -.sheet-testNum2[value="12"]~div .sheet-UnhideIf12, -.sheet-testNum2[value="13"]~div .sheet-UnhideIf13, -.sheet-testNum2[value="14"]~div .sheet-UnhideIf14, -.sheet-testNum2[value="15"]~div .sheet-UnhideIf15 -{ display: inline-block; } - - - - - -/* ################ JBF 210104 Global formatting (inputs, select ...) ############ */ - - -input[type="text"], -input[type="number"] { - color: var( --font-color ); - background-color: var( --input-color ); - border: 1px solid transparent; - padding: 1px; - font-weight: bold; - text-align: center; -} - -input.sheet-HideSpinners::-webkit-inner-spin-button, -input.sheet-HideSpinners::-webkit-outer-spin-button, -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - opacity: 0.1; -} - -input.sheet-HideSpinners:hover::-webkit-inner-spin-button, -input.sheet-HideSpinners:hover::-webkit-outer-spin-button, -input[type="number"]:hover::-webkit-inner-spin-button, -input[type="number"]:hover::-webkit-outer-spin-button { - opacity: 1; -} - -input:hover, -input.sheet-HideSpinners:hover { - -moz-appearance: auto; - background-color: var( --hover-color-bg); - border : 1px solid var( --hover-color); -} - -input[type="number"], -input.sheet-HideSpinners { - -moz-appearance: textfield; -} - - -textarea.sheet-details { - height: 100px; - resize: vertical; - margin-bottom : 1px; -} - -textarea.sheet-details-small { - height: 50px; - resize: vertical; - margin-bottom : 1px; -} - -textarea.sheet-details-big { - height: 400px; - resize: vertical; - margin-bottom : 1px; -} - -textarea.sheet-details-oneline { - height: 25px; - resize: none; - margin-bottom : 1px; - background: var(--input-color); - -} - -textarea.sheet-textimport { - height: 23px; - width: 10em; - resize: none; - overflow: none; - margin-bottom : 0px; - background-color: var( --input-color ); - border : 1px solid var(--outline-color); -} - -span.sheet-buttonlabel, -input.sheet-buttonlabel { - background : transparent; - border-style: none; - text-align: left; - padding: 0; - margin: 0; - font-family: 'Aladin', "Helvetica Neue", Helvetica, sans-serif; - font-weight: normal; - color: var( --font-color ); - -} -button:hover span.sheet-buttonlabel, -button:hover input.sheet-buttonlabel { - color : var( --hover-color ); - cursor: pointer; -} - - - -select { - background-color: var( --input-color ); - border-left: none; - border-top: none; - border-right-style: none; - border-bottom: 1px solid var( --outline-color ); - text-align: center; -} - - - -[readonly], -.sheet-Locked, -input[type="text"][readonly], -input[type="number"][readonly], -input[type="number"][readonly]:hover, -input[type="number"].sheet-Locked, /* Sometime need this bit of extra specificity */ -input[type="text"].sheet-Locked, -.sheet-testKarmaAuto:not([value="1"])~div .sheet-Karma-ControlBox, -.sheet-testLocked:checked~.sheet-LockIfChecked, -.sheet-testLocked:checked~span .sheet-LockIfChecked, -.sheet-testLocked:checked~div .sheet-LockIfChecked, -.sheet-testLocked:checked~label .sheet-LockIfChecked, -.sheet-testLocked:not(:checked)~.sheet-LockIfNotChecked, -.sheet-testLocked:not(:checked)~span .sheet-LockIfNotChecked, -.sheet-testLocked:not(:checked)~label .sheet-LockIfNotChecked, -.sheet-testLocked:not(:checked)~div .sheet-LockIfNotChecked { - background-color: var( --locked-color ); - pointer-events: none; - -moz-appearance: textfield; - font-family: 'Aladin', "Helvetica Neue", Helvetica, sans-serif; - font-weight: normal; -} - -.sheet-testRepEditMode:checked~.repcontainer .sheet-LockIfEditMode, -.sheet-testRepEditMode:not(:checked)~.repcontainer .sheet-LockIfNotEditMode, -.sheet-testRepEditMode:checked~.sheet-LockIfEditMode, -.sheet-testRepEditMode:not(:checked)~.sheet-LockIfNotEditMode, -.sheet-testRepEditMode:checked~div>.sheet-LockIfEditMode, -.sheet-testRepEditMode:not(:checked)~div>.sheet-LockIfNotEditMode, -.sheet-testRepEditMode:checked~div>div>.sheet-LockIfEditMode, -.sheet-testRepEditMode:not(:checked)~div>div>.sheet-LockIfNotEditMode, -.sheet-testRepEditMode:not(:checked)~div>span>.sheet-LockIfNotEditMode, -.sheet-testRepEditMode:checked~span>.sheet-LockIfEditMode, -.sheet-testRepEditMode:not(:checked)~span>.sheet-LockIfNotEditMode, -.sheet-testRepEditMode:checked~div>div>span>.sheet-LockIfEditMode, -.sheet-testRepEditMode:not(:checked)~div>div>span>.sheet-LockIfNotEditMode { - background-color: var( --locked-color ); - pointer-events: none; - font-style : italic; - -moz-appearance: textfield; -} - - -.sheet-testNum[value="7"]+.sheet-UnlockIf7, -.sheet-testNum[value="99"]+.sheet-UnlockIf99, -.sheet-testLocked:checked~.sheet-UnlockIfChecked, -.sheet-testLocked:checked~span .sheet-UnlockIfChecked, -.sheet-testLocked:checked~label .sheet-UnlockIfChecked, -.sheet-testLocked:not(:checked)~.sheet-UnlockIfNotChecked, -.sheet-testLocked:not(:checked)~label .sheet-UnlockIfNotChecked, -.sheet-testLocked:not(:checked)~span .sheet-UnlockIfNotChecked { - background-color: var( --input-color ); - color: var( --font-color ); - pointer-events: initial; -} - - - -input:disabled, -input:disabled::-webkit-inner-spin-button, -input:disabled::-webkit-outer-spin-button, -input[readonly]::-webkit-inner-spin-button, -input[readonly]::-webkit-outer-spin-button, -.sheet-fakeCalc input:not(.sheet-hidden) { - pointer-events: none; - font-style: italic; - display: inline-block; - -moz-appearance: textfield; /*Was none before*/ - -webkit-appearance: none; -} - - -input.sheet-nospinner, -input.sheet-nospinner::-webkit-inner-spin-button, -input.sheet-nospinner::-webkit-outer-spin-button { - -moz-appearance: textfield; /*Was none before*/ - -webkit-appearance: none; -} - - - - -.sheet-floatRight { - float: right; - clear: right; -} - -.sheet-text-left { - text-align: left !important; -} - -.sheet-text-center { - text-align: center !important; -} - - -.sheet-fancyfont { - font-family: 'Aladin', "Helvetica Neue", Helvetica, sans-serif; - font-weight: normal; -} - - -.sheet-Elementalist-section, -.sheet-Illusionist-section, -.sheet-Nethermancer-section, -.sheet-Wizard-section { -} /* Need a class here just to keep .sheet-section from inheriting, even if the class is empty */ - -.sheet-label { - line-height: 10px; - font-size: 85%; - padding-right: 2em; - font-weight: bold; - text-align: center; - white-space: nowrap; -} - -.sheet-label-flex { - font-size: 85%; - font-weight: bold; -} - - - -.sheet-repeat-counter-reset { - counter-reset: sheet-rep-items; -} - -.sheet-repeat-count::before -{ - counter-increment: sheet-rep-items; - content: counter(sheet-rep-items) !important; - padding: 0.7em; -} - - -.sheet-text-button { - border-bottom: 1px solid black; - border-right: 1px solid transparent; - border-left: 1px solid transparent; - border-top: 1px solid transparent; - -} - -.sheet-text-button { - color: var( --font-color ); - background-color: var( --button-color ); -} - -.sheet-text-button-header { - color: var( --header-font-color ); - background-color: var( --outline-color ); -} - -.charsheet button[type="roll"].sheet-helpbutton { - color:black; - background-color: maroon ; - background-image: -moz-linear-gradient(top,#fff,maroon); - background-image: -ms-linear-gradient(top,#fff,maroon); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#fff),to(maroon)); - background-image: -webkit-linear-gradient(top,#fff,maroon); - background-image: -o-linear-gradient(top,#fff,maroon); - background-image: linear-gradient(top,#fff,maroon); - background-repeat: repeat-x; - width: 20px; - size:130%; -} - - -/* JBF@JBF 210106 trials for transparent button */ - -.charsheet button[type="roll"], -.charsheet button[type="action"] { - border-bottom: 1px solid var( --outline-color); - border-right: 1px solid transparent; - border-left: 1px solid transparent; - border-top: 1px solid transparent; - border-radius: 5px; - margin-left: 1px; - margin-right: 1px; - background-color: var( --button-color ); - background-image: -moz-linear-gradient(top,#fff,#e6e6e6); - background-image: -ms-linear-gradient(top,#fff,#e6e6e6); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6)); - background-image: -webkit-linear-gradient(top,#fff,#e6e6e6); - background-image: -o-linear-gradient(top,#fff,#e6e6e6); - background-image: linear-gradient(top,#fff,#e6e6e6); - background-repeat: repeat-x; - padding : 2px; -} - -button[type="roll"].sheet-text-button-header { - background-image: none; - background-color: var( --outline-color); - border-bottom: 1px solid white; - border-right: 1px solid white; - border-left: 1px solid white; - border-top: 1px solid white; -} - - -.charsheet button[type="roll"]:hover, -.charsheet button[type="roll"]:active, -.charsheet button[type="action"]:hover, -.charsheet button[type="action"]:active { - color: var( --hover-color ); - background-color: #e6e6e6; - background-position: 0 -15px; - background-position-x: 0px; - background-position-y: -15px; - -webkit-transition: background-position .1s linear; - -moz-transition: background-position .1s linear; - -ms-transition: background-position .1s linear; - -o-transition: background-position .1s linear; - transition: background-position .1s linear; - transition-property: background-position; - transition-duration: 0.1s; - transition-timing-function: linear; - transition-delay: 0s; - border: 1px solid red; -} - - -input[name*="combatOption"]:checked + b, -input[name*="condition"]:checked + b { - background-color: var( --outline-color ); - color: white; - border-radius: 5px; - padding-right: 5px; - padding-bottom: 1px; - padding-top: 1px; -} - - - -.charsheet button[type=roll].sheet-button-nodice:before { - content: none; -} - - -input[type="number"].sheet-attrCostsRed { - background-color: maroon; - color: white; -} - - -.sheet-testAttrCosts[value="0"]~div .sheet-attrCostsRed -{ - background-color: Green; - color: white; -} - -input[type="number"].sheet-attrCostsGreen { - background-color: green; -} - -.sheet-testAttrCosts[value="0"]~div input[type="number"].sheet-attrCostsGreen, -.sheet-testAttrCosts[value="1"]~div input[type="number"].sheet-attrCostsGreen, -.sheet-testAttrCosts[value="2"]~div input[type="number"].sheet-attrCostsGreen { - background-color: white; -} - - -/* ######## Steps and StepSpan ###### */ - -.charsheet input[type="number"].sheet-StepBig, -.sheet-StepBig { - font-size : 150%; - padding: 0; - margin-left: 0; - margin-right: -3px; - margin-bottom: -14px; - text-align: center; - width: 1.3em ; -} - -.charsheet span.sheet-stepSpan, -.sheet-stepSpan { - height: 26px; - padding-bottom: 2px ; - margin-left: 14px ; - margin-right: 19px ; - display: inline-block; - white-space: nowrap; -} - -.sheet-buffSmall { - transform: scale(0.8) ; /*JBF : transform instead of the font size adresses the spinners*/ -} - - -.charsheet input[type="number"].sheet-buffLeft, -.charsheet input[type="number"].sheet-buffRight { - vertical-align: top; - padding: 0px; - margin-top: 0px; - margin-bottom: 0px; -} - -.charsheet b.sheet-buffSignLeft, -.charsheet b.sheet-buffSignRight { - vertical-align: top; - padding: 0px; - margin-top: 0px; - margin-bottom: 0px; - width: 0.3em; - text-align: right; -} - - -.charsheet b.sheet-buffSignRight{ - margin-right: -2px; - margin-left: -1px; -} - -.charsheet input[type="number"].sheet-buffRight { - margin-left: -4px; - margin-right: -20px; - text-align: left; - width: 2.5em; -} - -.charsheet b.sheet-buffSignLeft { - margin-right: -15px; - margin-left: -2px; -} - -.charsheet input[type="number"].sheet-buffLeft { - text-align: right; - margin-left: 0px; - margin-right: -8px; - width: 1.8em; -} - -.sheet-buffRight::-webkit-inner-spin-button, -.sheet-buffRight::-webkit-outer-spin-button { - opacity: 0; -} - -.sheet-buffRight { - -moz-appearance: textfield; -} - -span:hover .sheet-buffRight::-webkit-inner-spin-button, -span:hover .sheet-buffRight::-webkit-outer-spin-button { - opacity:1; -} - -span:hover .sheet-buffRight{ - -moz-appearance: auto; -} - - -.sheet-testCloseChecked:checked+.sheet-InvisibleIfCloseChecked { - opacity: 0; -} - -.sheet-testCloseChecked:checked+.sheet-PartlyInvisibleIfCloseChecked { - color: transparent; -} - -.sheet-testCloseChecked:not(:checked)+.sheet-PartlyInvisibleIfNotCloseChecked { - color: transparent ; -} - -.sheet-redGreen ~ input, -.sheet-redGreen ~ b { - color: green; -} - - - -.sheet-redGreen[value^="-"] ~ input { - color: red; -} -.sheet-greenRed ~ input, -.sheet-greenRed ~ b { - color: red; -} -.sheet-greenRed[value^="-"] ~ input { - color: green; -} - - -.sheet-redGreen[value^="-"]~ b, -.sheet-greenRed[value^="-"]~ b, -.sheet-redGreen[value="0"] ~ input, -.sheet-greenRed[value="0"] ~ input, -.sheet-redGreen[value="0"] ~ b, -.sheet-greenRed[value="0"] ~ b { - color: transparent; -} - - -.sheet-testKarReq:not([value="0"]) ~ .sheet-Kar_0_3, -.sheet-testKarReq:not([value="0"]) ~ .sheet-Kar_0_2, -.sheet-testKarReq:not([value="1"]) ~ .sheet-Kar_1_2, -.sheet-testKarReq:not([value="1"]) ~ .sheet-Kar_1_3, -.sheet-testKarMax:not([value="2"]) ~ .sheet-Kar_1_2, -.sheet-testKarMax:not([value="2"]) ~ .sheet-Kar_0_2, -.sheet-testKarMax:not([value="3"]) ~ .sheet-Kar_1_3, -.sheet-testKarMax:not([value="3"]) ~ .sheet-Kar_0_3, -.sheet-testKarMax:not([value="0"],[value="1"],[value="2"],[value="3"]) ~ .sheet-Kar_lessthan3, -.sheet-testKarMax:not(:not([value="0"],[value="1"],[value="2"],[value="3"])) ~ .sheet-Kar_morethan3, -.sheet-testKarMax:not([value="4"]) ~ .sheet-Kar_4, -.sheet-testKarMax:not([value="5"]) ~ .sheet-Kar_5, -.sheet-testKarMax:not([value="6"]) ~ .sheet-Kar_6, -.sheet-testKarMax:not([value="7"]) ~ .sheet-Kar_7, -.sheet-testKarMax:not([value="8"]) ~ .sheet-Kar_8, -.sheet-testKarMax:not([value="9"]) ~ .sheet-Kar_9, -.sheet-testKarMax:not([value="10"]) ~ .sheet-Kar_10, -.sheet-testKarMax:not([value="11"]) ~ .sheet-Kar_11, -.sheet-testKarMax:not([value="12"]) ~ .sheet-Kar_12, -.sheet-testKarMax:not([value="13"]) ~ .sheet-Kar_13, -.sheet-testKarMax:not([value="14"]) ~ .sheet-Kar_14, -.sheet-testKarMax:not([value="15"]) ~ .sheet-Kar_15 { - display: none !important; -} - - - -/* ############################################# JBF Header Flex Containers ######################################################### */ - -.sheet-header-flex-container { - display: flex; - align-items: flex-start; - justify-content: flex-start; - flex-wrap: wrap; - overflow: hidden; -} - - -.sheet-header-box { - height: 75px; - border: 1px solid var(--outline-color); - border-radius: 10px; - display: flex; - align-items: center; - margin-right: 1px; - flex-flow: column; - opacity: 1; - overflow: hidden; - max-width: 280px; -} - -.sheet-header-modbox { - margin-top : 9px; - margin-bottom: 7px; - margin-left: 0px; - margin-right: 0px; -} - - -.sheet-header-flex-container:not(:hover) .sheet-testNum[value="0"]+.sheet-testNum[value="0"]+.sheet-header-hidden, -.sheet-header-flex-container:not(:hover) .sheet-testNum[value="0"]+.sheet-testNum[value="0"]+.sheet-testNum[value="0"]+.sheet-header-hidden { - height : 0px; - max-width: 0px; - overflow: hidden; - opacity: 0.5; - padding: 0px; - margin: 0px; - border: 1px solid transparent; -} - -.sheet-header-box, -.sheet-iconlabel-header, -.sheet-iconlabel-header-invert, -.sheet-iconlabelbig, -.sheet-header-hidden { - transition: height 0.5s, flex-grow 0.5s, min-width 0.5s, flex-basis 0.5s, width 0.5s, max-width 0.5s , margin 0.5s, padding 0.5s; - /* transition-delay: 1.5s; */ - overflow: hidden; -} - - - -.sheet-header-iconbox { - flex-grow: 1; /* it can grow */ - flex-shrink: 1; /* it can shrink */ - /* flex-basis: 30px; /* arbitrary depending on design */ */ - /* min-width: 30px; /* equal to flex-basis */ */ - /*max-width: 100%; JBF@JBF 210228 (100% - margins)/number of boxes */ - text-align: center; - transition: flex-grow, 0.5s; - transition: min-width 0.5s; - /* transition-delay: 1.5s; */ -} - -.sheet-header-flex-container:not(:hover) .sheet-header-iconbox { - /* flex-grow: 0.0000000001; /* it cant grow anymore... We want it to collapse */ */ - /* flex-basis: 30px; */ - /* width: auto; - min-width: 30px; */ - /* padding: 0px !important; */ - transition: flex-grow, 0.5s, min-width 0.5s; - /* transition-delay: 1.5s; */ -} - -.sheet-header-logo-Earthdawn { - background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Earthdawn-Logo.png); -/* background-image: url(https://s3.amazonaws.com/files.staging.d20.io/images/258659/43tgLdtfozFTvZrPGMv-uw/med.png?1539148273); */ -} -.sheet-header-logo-1879 { - background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/1879-Logo.png); -/* background-image: url(https://s3.amazonaws.com/files.d20.io/images/188531300/L18EvmQWIkcT_CKVGnPfqg/max.png?1609231596); */ -} - -.sheet-header-logo-Earthdawn, -.sheet-header-logo-1879 -{ - height: 76px; - background-repeat: no-repeat; - background-size: contain; - max-width: 200px; - width: calc(100% - 800px); /* Width of Logo =100%-2X where X = min-width of header-name*/ -} - -.sheet-testQuest:not([value="0"])~div .sheet-header-logo-1879, -.sheet-testQuest:not([value="0"])~div .sheet-header-logo-Earthdawn -{ - width: calc(100% - 1000px); /* If Questor, Logo needs to be smaller */ -} - -.sheet-testQuest:not([value="0"])~div .sheet-header-name { - min-width: min(500px, 25%); - width: calc(50% - 100px); -} - - -.sheet-header-name { - height: 70px; - border: 1px solid var(--outline-color); - border-radius: 10%; - min-width: min(400px, 25%); - width: calc(50% - 100px); - padding-top: 6px; - padding: 3px; - overflow: hidden; -} - - -/* ############################################ Colors and Margins ###################################################### */ - - -/* JBF 210103 To be identified */ -.ui-widget-content, -.charsheet { - position: absolute; - padding: 0 !important; - left: 0; - top: 46px; -} -/* JBF 210103 To be identified */ - - -.sheet-user-root { -/*Normal Background*/ -background-color: var( --bg-color ); - background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Border-left-nobottom.png),url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Border-right-nobottom.png),url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Border-left-nobottom3.png),url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Border-right-nobottom3.png); - background-repeat: no-repeat, no-repeat,no-repeat, no-repeat; - background-blend-mode: multiply, multiply,multiply, multiply; - background-position: -17px -15px,calc(100% + 23px) -10px,-17px 1356px,calc(100% + 23px) 1362px; - background-size : 250px 1372px, 250px 1372px,250px 1372px, 250px 1372px; - padding-left: 13px; - padding-right: 13px; - padding-top: 10px; - margin-top: 0px; - margin-left: 0px; - margin-right: 0px; -} - -.sheet-user-root-in { - margin-left: 0px; - margin-right: 0px; - min-width: 500px; /*JBF@JBF : to be reworked according to final layout*/ - border-left: 2px groove var( --outline-color ); - border-right: 2px groove var( --outline-color ); - border-bottom: 2px groove var( --outline-color ); - border-top: none; - background-color: var( --bg-color ); -} - - -.sheet-section { - background-color: var( --bg-color ); -} - -.sheet-content { - padding: 2px; -} - - -.sheet-bordered { - border : 1px solid var(--outline-color) !important; -} - -.sheet-bordered-bottom { - border-top: none !important; - border-left: none !important; - border-right: none !important; - border-bottom: 1px solid var(--outline-color) !important; -} - -.sheet-notbordered { - border: none !important; -} - -.sheet-header { - min-height: 30px; -} - - -.sheet-imgbox { - text-align: center; - align-items: center; - justify-content: center; - height: 50px; - width: 50px; - position: relative; -} - - -.sheet-imgbox::before { - text-align: center; - align-items: center; - justify-content: center; - content: ""; - position: absolute; - background-repeat: no-repeat; - background-size: 40px 40px; - background-position: top center; - top: 0px; - right: 0px; - bottom: 0px; - left: 0px; - height: 50px; - width: 50px; - opacity: 0.2; - z-index: 1; -} - -.sheet-imgbox-content { - z-index: 99; - position: relative; -} - - -.sheet-imgbox-defense { - /*size of your image*/ - text-align: center; - align-items: center; - justify-content: center; - vertical-align: middle; - height: 43px; - width: 43px; - padding-left: 8px; - padding-bottom: 16px; - position: relative; -} - - -.sheet-imgbox-defense::before { - text-align: center; - align-items: center; - justify-content: center; - content: ""; - position: absolute; - background-repeat: no-repeat; - background-size: 45px 45px; - background-position: 50% 25%; - top: 0px; - right: 0px; - bottom: 0px; - left: 0px; - height: 45px; - width: 45px; - opacity: 0.4; - z-index: 1; - padding-left: 8px; - padding-bottom: 20px; -} - - -.sheet-sec-border-line { - background-color: var( --bg-color ); - margin-left: -7px; - margin-right: -7px; -} - -.sheet-sec-border-line { - border-top: 2px double var( --outline-color ); - padding-top: 3px; -} - - -/*JBF@JBF to be identified, maybe dead code, and in any case shouldn't be static color*/ - -.sheet-heading { - background-color: var( --control-secondary ); - color: var( --header-font-color ); - font-family: 'Aladin', "Helvetica Neue", Helvetica, sans-serif; - font-weight: normal; - margin: 1px; -} - - -/* ############################################ Tables and cells #################################################### */ - -.sheet-table { - display: table; - width: 100%; -} - -.sheet-table-left { - display: table; - border-collapse: collapse; -} - -span.sheet-table-left, -.sheet-table-left .sheet-table-row span { - border-style: hidden; - border-width: 2px; - text-align: left; -} - -.sheet-table-name { - display: table-caption; - text-align: center; - font-weight: bold; - color: var( --header-font-color ); - background-color: var( --outline-color ); - width: 100%; -} - -.charsheet .sheet-headerbar, -.sheet-headerbar { - vertical-align: bottom; - justify-content: center; - align-items: center; - text-align : center; - color: var( --header-font-color ); - /* font-weight: bold; */ - background-color: var(--outline-color); - font-size: 14px; - /* font-family: Papyrus, fantasy; */ - font-family: 'Aladin', "Helvetica Neue", Helvetica, sans-serif; - font-weight: normal; - width: 100%; - /* margin: auto; *//* JBF@JBF 210105*/ - min-height: 21px; - display: flex; -} - -.charsheet .sheet-headerbar-flex, -.sheet-headerbar-flex { - vertical-align: bottom; - justify-content: space-between; -} - - -.sheet-creation-order { -color: yellow; -font-size: 16px; -/*text-shadow: 1px 1px white;*/ -} - -.sheet-table-header { - display: table-cell; - text-align: center; - font-style: italic; - font-weight: bold; - color: var( --header-font-color ); - vertical-align: middle; - background-color: var( --outline-color ); -} - -.sheet-table-row { - display: table-row; - vertical-align: middle; - width: 100%; -} - -.sheet-table-data { - display: table-cell; - vertical-align: middle; - text-align: center; /*JBF 20201124*/ - white-space: nowrap; -} - -hr { - border-color: black; - margin: 5px 0; -} - -.sheet-w15 { - display: table-cell; - vertical-align: middle; - text-align: left; - width: 15%; -} - -.sheet-w20 { - display: table-cell; - vertical-align: middle; - text-align: left; - width: 20%; -} -.sheet-w30 { - display: inline-block; - text-align: left; - width: 30%; -} - -.sheet-w100p { - width: 100%; -} - -/*JBF@JBF useful ???*/ -.sheet-w50 { - width: 100%; -} - - -.sheet-notes{ -width: 28%; -/* padding-left: 5px; -padding-right: 5px; */ -/* padding-bottom: 10px; */ -margin: 1%; -} - - -.sheet-flex-container { - display: flex; - align-items: flex-start; - justify-content: space-between; -} - -.sheet-flexwrap { - flex-wrap: wrap; -} - -.sheet-glossary { - /* display: flex; - align-items: flex-start; - flex-wrap: wrap; - flex-direction: column; - max-height: 150px; - height : auto; */ - display: inline-block; -} - - -.sheet-flex1 { - flex: 1; -} -/*JBF@CD -- This is a trial, but gives interesting results*/ - - -.sheet-floatRight.sheet-header-flex-container, -.sheet-floatRight.sheet-flex-container { - justify-content: flex-end; -} - -.sheet-flexCenter { - display: flex; - justify-content: center; - align-items: center; -} - -/ ############################################# Attribute Boxes ########################################################## */ - -.sheet-Attrib-container { - padding: 5px; - margin-top: 3px; - display: flex; - align-items: center; -} - -.sheet-Attrib-box { - border: 1px solid black; - border-radius: 10px; - text-align: center; - display: inline-block; - width: 130px; - margin-bottom: 3px; -} - -.sheet-Attrib-header { - display: flex; - justify-content: space-around; - align-items: flex-start; - vertical-align: top; - text-align: center; - background-color: var(--outline-color); -} - -.sheet-Defense-box { - border: 1px solid black; - border-radius: 10px; - display: flex; - margin: 3px; - align-items: center; - flex-flow: column; - width: 100px; - min-height: 80px; -} - -.sheet-Shield-box { - border: 1px solid black; - border-radius: 10px; - display: flex; - margin: 3px; - padding: 3px; - align-items: center; - flex-flow: column; -} - - - -.sheet-Attrib-rightbox { - text-align: center; - display: inline-block; -} - - -.charsheet input[type="number"].sheet-AttribValue, -.sheet-AttribValue { - background: var( --outline-color ); - border-style: none; - border-radius: 70%; - color: var( --header-font-color ); - font-weight: bold; - text-align: center; -} - -.sheet-AttribValueDiv { - margin-top: 8px; -} - - -.charsheet input[type="number"].sheet-AttribStep, -.sheet-AttribStep -{ - color: var( --highlight-font-color ); - text-shadow: 2px 2px var( --bg-color ); - font-weight:bold; - font-size: 250%; /* JBF was important */ - padding: 0; /* JBF was important */ - margin-top: 0; /* JBF was important */ - margin-bottom: 0; /* JBF was important */ - margin-left: 0; /* JBF was important */ - margin-right: -11px; /* JBF was important */ - text-align: center; /* JBF was important */ - width: 1.3em; /* JBF was important */ - font-weight: bold; - -} - -.charsheet span.sheet-AttribStepSpan, -.sheet-AttribStepSpan -{ - padding: 4px; /* JBF was important */ - -} - -/* ############################################ Formating and Length ###################################################### */ - -.sheet-fixed-width { - white-space: nowrap; - display: inline-block; -} - - -.charsheet .sheet-matrix.sheet-filter-box { - margin: 0px; - margin-bottom: 2px; - margin-right: 2px; - border-radius: 5px; - padding: 0px; - border: 1px solid black; -} - - - -.sheet-nowrap0 { - white-space: nowrap; - display: inline-block; /*JBF@CD Trial for alignment*/ - vertical-align: middle; -} - -.sheet-nowrap, -.sheet-nowrap1 { - white-space: nowrap; - padding-right: 1em; -} - -.sheet-nowrap2 { - white-space: nowrap; - padding-right: 2em; -} - -.sheet-nowrap3 { - white-space: nowrap; - padding-right: 3em; -} - -.sheet-nowrap5 { - white-space: nowrap; - padding-right: 5em; -} - -.sheet-w7 { - display: inline-block; - min-width: 7em; - padding-right: 0em; -} - -/*JBF */ -.sheet-numShorter { width: 2em !important } -.sheet-numShort { width: 3em !important } -.sheet-numLong { width: 4em !important } -.sheet-selShort { width: 5em !important } -.sheet-selLong { width: 6em !important } -.sheet-txtShort { width: 8em !important } -.sheet-txtMed { width: 9em !important } -.sheet-txtMedplus { width: 11.5em !important } -.sheet-txtLong { width: 16em !important } -.sheet-txtLonger { width: 20em !important } -.sheet-txtEvenLonger { width: 27em !important } - - -.sheet-titlespan { - margin-left: 0px; - margin-right: 0px; - text-align: center; - vertical-align: middle; -} - - -.charsheet .sheet-w25px { width: 25px; } -.charsheet .sheet-w30px { width: 30px; } -.charsheet .sheet-w50px { width: 50px; } -.charsheet .sheet-w75px { width: 75px; } -.charsheet .sheet-w100px { width: 100px; } - -.charsheet .sheet-Big { font-size: 150%;} - -.charsheet input[type="number"].sheet-Bigger, - .sheet-Bigger { - font-size: 200%; - width: 2em; - text-align: center ; -} -.sheet-small { transform: scale(0.8); /*better results ?*/} - -.charsheet input[type="number"].sheet-numHighlight, -.sheet-numHighlight { - color: var( --highlight-font-color ); - text-shadow: 2px 2px var( --bg-color ); - font-weight: bold; -} - - -.sheet-vaBottom { - vertical-align: bottom; -} - -.sheet-middle { - display: inline-block; - padding-top: 6px; -} - -.sheet-minWidth3 { - min-width: 3em; -} - - - - -/* ############################################ Variable length text boxes ########################################################## */ -/* The next few blocks are for variable length text boxes that expand as needed. sheet-label-under2 is a tall box and has labels under the text input. -The form of the html is a label or span wrapper, an input box, an span that has the invisible auto-expanding field, and an optional span that has the label. - - -To have a label in front of the expanding field, use something like this. - -*/ - -/* This is the tag that wraps the entire thing. It can be a label or a span */ -.charsheet .sheet-autoexpand-wrap { - display: inline-block; - position: relative; - width: auto; - min-width: 2em; - max-width: 50em; - margin-right: 1em; - white-space: nowrap; -} - -.charsheet .sheet-autoexpand-min4 { - min-width: 4em; - width: auto; -} - -.charsheet .sheet-autoexpand-min { - min-width: 14em; - width: auto; -} - - - -.charsheet .sheet-autoexpand-wrap:not(.sheet-label-under2) { - height: 2em; - vertical-align: middle; -} - -.charsheet .sheet-label-under:not(button), -.charsheet .sheet-label-under2 { - display: inline-block; - height: 2.75em; - vertical-align: top; -} - -/* This is the input statement that is visible. */ -.charsheet .sheet-autoexpand-wrap input { - display: block; - overflow: hidden; - width: 100%; - position: absolute; - white-space: normal; -} - -/* This is the invisible copy of the input. This css changes this invisible fields size to the length of the text in the input. The outer wrapper then changes size to match this fields length. */ -.charsheet .sheet-autoexpand-wrap span.sheet-autoexpand { - visibility: hidden; - width: 100%; - white-space: pre; /* pre-wrap; for textarea which I never got working but "pre" should also work for spans */ - word-wrap: break-word; - overflow-wrap: break-word; - overflow: hidden; - font-weight: bold; - padding-right: 2em; /* We want the text box very slightly bigger than the text. JBF@CD was 0.7 em*/ - /* also here make sure the font size is the same or slightly bigger than the input font size */ -} - -/* This is the span that holds the label that we want small at the bottom. */ -.charsheet .sheet-label-under2 span:not(.sheet-autoexpand) { - display: block; - position: relative; /*JBF@CD Changed from absolute 0 to relative -10px*/ - bottom: -13px; - line-height: .75em; - font-size: 85%; - padding-left: .25em; -} - -/* When we have the label under the field, we don't want the label to ever be longer than the field */ -.charsheet .sheet-label-under, -.charsheet .sheet-label-under2 { - overflow: hidden; -} - -.charsheet .sheet-label-under2 span, -.charsheet .sheet-label-under span, -.charsheet .sheet-label-under-select span { - line-height: 10px; - display: block; - /* font-weight: lighter; */ - font-size: 85%; - padding-left: .25em; -} - - - - - -/* ########################################### Filterboxes ####################################################### -# Filterboxes are basically repitems. Except that Filterboxes have been formated to allow certain items to be hidden -# if they don't match the requirements to be displayed. -*/ - -.charsheet .repcontainer .repitem, /* A filterbox should look exactly like a repitem. */ -.sheet-filter-box { - padding: 0px; - margin: 0px; - border: none; - border-radius: 0px; -} - - - -fieldset.repeating_spell+.repcontainer>.repitem, /* A repitem within a spell list should functionally not exist, it's place is taken by a filterbox. */ -fieldset+.repcontainer .repitem, -fieldset+.repcontainer .repitem .sheet-filter-box { - vertical-align: top; -} - -.sheet-filterSpellEffect~.repcontrol, -.sheet-testRepEditMode:not(:checked)~.repcontrol, /*hide buttons in not Edit Mode*/ -.sheet-filter-box { /* By default, display no items of a filter box */ - display: none; -} - -fieldset.sheet-filterSpellEffect+.repcontainer { - display: inline-block; -} - -.repcontainer .repitem { - overflow: hidden; -} - -fieldset+.repcontainer .repitem { - display: block; -} - -fieldset.repeating_talents+.repcontainer .repitem, /*fieldset that we want to wrap have to be specified manually*/ -fieldset.repeating_skills+.repcontainer .repitem, -fieldset.repeating_knacks+.repcontainer .repitem, -fieldset.repeating_matrix+.repcontainer .repitem, -fieldset.repeating_personality+.repcontainer .repitem, -fieldset.repeating_maneuvers+.repcontainer .repitem, -fieldset.repeating_weapons+.repcontainer .repitem { - display: inline-block; - /* padding:5px; */ -} -/* -fieldset+.repcontainer>.repitem:nth-child(2n+2){ - background:lightgrey; -} */ - -/* fieldset+.repcontainer{ - column-width:auto; -} */ - -/* Decide which specific repitems to display. */ -input.sheet-tabGrim[value="0"]~.sheet-filter-box, /* Always display all spells of circle zero, since they have just been added and have not been assigned a circle yet. */ -.sheet-tabGrim[value="0"]~fieldset.repeating_spell+.repcontainer>.repitem .sheet-filter-box, /* When tab0 is checked, display everything no matter what which of the inner boxes are checked. */ -.sheet-tabGrim~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab0:checked~.sheet-filter-box, /*always display the Circle 0 spells*/ -.sheet-tabGrim[value="1"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab1:checked~.sheet-filter-box, -.sheet-tabGrim[value="2"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab2:checked~.sheet-filter-box, -.sheet-tabGrim[value="3"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab3:checked~.sheet-filter-box, -.sheet-tabGrim[value="4"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab4:checked~.sheet-filter-box, -.sheet-tabGrim[value="5"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab5:checked~.sheet-filter-box, -.sheet-tabGrim[value="6"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab6:checked~.sheet-filter-box, -.sheet-tabGrim[value="7"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab7:checked~.sheet-filter-box, -.sheet-tabGrim[value="8"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab8:checked~.sheet-filter-box, -.sheet-tabGrim[value="9"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab9:checked~.sheet-filter-box, -.sheet-tabGrim[value="10"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab10:checked~.sheet-filter-box, -.sheet-tabGrim[value="11"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab11:not(:checked)~.sheet-filter-box, -/* fieldset.sheet-filtershortlist+.repcontainer>.repitem input.sheet-combattab:checked~.sheet-filter-box, */ -input.sheet-tabMain[value="1"]~div .sheet-section-core fieldset+.repcontainer>.repitem input.sheet-combattab~.sheet-filter-box, -input.sheet-tabMain[value="2"]~div .sheet-section-combat fieldset+.repcontainer>.repitem input.sheet-combattab:checked~.sheet-filter-box, -input.sheet-tabMain[value="3"]~div fieldset+.repcontainer>.repitem input.sheet-combattab~.sheet-filter-box, -input.sheet-tabMain[value="4"]~div fieldset+.repcontainer>.repitem input.sheet-combattab~.sheet-filter-box, -input.sheet-tabMain[value="5"]~div fieldset+.repcontainer>.repitem input.sheet-combattab~.sheet-filter-box, -input.sheet-tabMain[value="6"]~div fieldset+.repcontainer>.repitem input.sheet-combattab~.sheet-filter-box, -.sheet-section-spells fieldset:not(.sheet-filterSpellEffect)+.repcontainer>.repitem input.sheet-spelltab[value^="SPL-"]~.sheet-filter-box, -input.sheet-testSpellEffect[value="Wil"]~fieldset.sheet-filterSpellEffect+.repcontainer>.repitem input.sheet-spelltab[value="SPL-Willforce"]~.sheet-filter-box { - display: inline-block; - border: none; /*JBF*/ -} -/*JBF@JBF@CD : For Skills, Knacks and Talents, in overview, everything is displayed, and in Combat, only the checked ones)*/ - -/*JBF@JBF@CD : Do not display the spellcasting Talent twice, i.e. shown only in spell section... except in creation mode*/ -.sheet-testCreation:not([value="1"])~input.sheet-tabMain[value="1"]~div .sheet-section-core~div fieldset+.repcontainer>.repitem input.sheet-spelltab[value^="SPL-"]+input.sheet-combattab~.sheet-filter-box, -input.sheet-tabMain[value="2"]~div .sheet-section-combat~div fieldset+.repcontainer>.repitem input.sheet-spelltab[value^="SPL-"]+input.sheet-combattab:checked~.sheet-filter-box { - display: none; -} - - - /* ############################################ Tabs ################################################################### */ - - div[class^="sheet-section"] { /* Every class that starts with "sheet-section" starts out hidden */ - visibility: hidden; - opacity: 0; - max-height: 0; - overflow: hidden; - max-width: 0; - padding: 0; -} - -.sheet-tabMain.sheet-tab1 { - margin-left: 10px; -} - -input.sheet-tabMain, -input.sheet-tabSpell, -input.sheet-tabGrim, -input.sheet-tabAdjust { - width: 70px; - height: 20px; - cursor: pointer; - position: relative; - opacity: 0; - z-index: 9999; - vertical-align: middle; - margin-right: 3px; -} - -input.sheet-tabMain { - margin-right: 4px; -} - -.sheet-tabMain::before, -.sheet-tabSpell::before, -.sheet-tabGrim::before, -.sheet-tabAdjust::before { - content: attr(title); - text-align: center; - display: inline-block; - width: 100%; - height: 100%; - background-color: var( --outline-color ); - color: var( --header-font-color ); - font-weight: bold; -} - -input.sheet-tabMain+span, -input.sheet-tabSpell+span, -input.sheet-tabGrim+span, -input.sheet-tabAdjust+span, -.sheet-tabSpan { - text-align: center; - display: inline-block; - font-size: 13px; - background-color: var( --inactive-color ); - color: var( --header-font-color ); - font-weight: bold; - width: 70px; - height: 20px; - border-radius: 10px 10px 0 0; - cursor: pointer; - position: relative; - margin-left: -75px; -} - -input.sheet-tabshort { - width: 40px; -} - -input.sheet-tabshort+span{ -width: 40px; -margin-left: -45px; -} - -.sheet-tabSpell, -.sheet-tabAdjust { - width: 80px; -} - -.sheet-tabSpell+span, -.sheet-tabAdjust+span { - width: 80px; - margin-left: -85px; -} - -.sheet-sec-spacer { /* When have two tabs right under each other, space them by this much. */ - height: 3px; -} - -/* Make the selected section visible */ -input.sheet-tabMain[value="1"]~div .sheet-section-core, -input.sheet-tabMain[value="2"]~div .sheet-section-combat, -input.sheet-tabMain[value="3"]~div .sheet-section-talents, -input.sheet-tabMain[value="4"]~div .sheet-section-knacks, -input.sheet-tabMain[value="5"]~div .sheet-section-skills, -input.sheet-tabMain[value="6"]~div .sheet-section-spells, -input.sheet-tabMain[value="7"]~div .sheet-section-equipment, -input.sheet-tabMain[value="8"]~div .sheet-section-gear, -input.sheet-tabMain[value="9"]~div .sheet-section-notes, -input.sheet-tabMain[value="10"]~div .sheet-section-record, -input.sheet-tabMain[value="11"]~div .sheet-section-adjustments, -input.sheet-tabSpell[value="1"]~.sheet-section-spells-talents, -input.sheet-tabSpell[value="2"]~.sheet-section-spells-matrices, -input.sheet-tabMain[value="1"]~div .sheet-section-spells-matrices, -input.sheet-tabMain[value="2"]~div .sheet-section-spells-matrices, -input.sheet-tabMain:not([value="2"]):not([value="1"])~div input.sheet-tabSpell[value="3"]~.sheet-section-spells-grimoire, -input.sheet-tabAdjust[value="1"]~.sheet-section-adjustments-common, -input.sheet-tabAdjust[value="2"]~.sheet-section-adjustments-maneuvers, -input.sheet-tabAdjust[value="3"]~.sheet-section-adjustments-advanced, -input.sheet-tabAdjust[value="4"]~.sheet-section-adjustments-release , -input.sheet-tabAdjust[value="5"]~.sheet-section-adjustments-help { - max-height: 999999px; - max-width: 999999px; - visibility: visible; - opacity: 1; - transition: opacity 0.5s linear 0s; - overflow: hidden; -} - - -input.sheet-tabMain[value="1"] ~ .sheet-show-leftpane-tab1:not([value="1"])~div .sheet-leftpane, -input.sheet-tabMain[value="2"] ~ .sheet-show-leftpane-tab2:not([value="1"])~div .sheet-leftpane, -input.sheet-tabMain[value="3"] ~ .sheet-show-leftpane-tab3:not([value="1"])~div .sheet-leftpane, -input.sheet-tabMain[value="4"] ~ .sheet-show-leftpane-tab4:not([value="1"])~div .sheet-leftpane, -input.sheet-tabMain[value="5"] ~ .sheet-show-leftpane-tab5:not([value="1"])~div .sheet-leftpane, -input.sheet-tabMain[value="6"] ~ .sheet-show-leftpane-tab6:not([value="1"])~div .sheet-leftpane, -input.sheet-tabMain[value="7"] ~ .sheet-show-leftpane-tab7:not([value="1"])~div .sheet-leftpane, -input.sheet-tabMain[value="8"] ~ .sheet-show-leftpane-tab8:not([value="1"])~div .sheet-leftpane, -input.sheet-tabMain[value="9"] ~ .sheet-show-leftpane-tab9:not([value="1"])~div .sheet-leftpane, -input.sheet-tabMain[value="10"] ~ .sheet-show-leftpane-tab10:not([value="1"])~div .sheet-leftpane, -input.sheet-tabMain[value="11"] ~ .sheet-show-leftpane-tab11:not([value="1"])~div .sheet-leftpane, -input.sheet-tabMain[value="1"] ~ .sheet-show-middlepane-tab1:not([value="1"])~div .sheet-middlepane, -input.sheet-tabMain[value="2"] ~ .sheet-show-middlepane-tab2:not([value="1"])~div .sheet-middlepane, -input.sheet-tabMain[value="3"] ~ .sheet-show-middlepane-tab3:not([value="1"])~div .sheet-middlepane, -input.sheet-tabMain[value="4"] ~ .sheet-show-middlepane-tab4:not([value="1"])~div .sheet-middlepane, -input.sheet-tabMain[value="5"] ~ .sheet-show-middlepane-tab5:not([value="1"])~div .sheet-middlepane, -input.sheet-tabMain[value="6"] ~ .sheet-show-middlepane-tab6:not([value="1"])~div .sheet-middlepane, -input.sheet-tabMain[value="7"] ~ .sheet-show-middlepane-tab7:not([value="1"])~div .sheet-middlepane, -input.sheet-tabMain[value="8"] ~ .sheet-show-middlepane-tab8:not([value="1"])~div .sheet-middlepane, -input.sheet-tabMain[value="9"] ~ .sheet-show-middlepane-tab9:not([value="1"])~div .sheet-middlepane, -input.sheet-tabMain[value="10"] ~ .sheet-show-middlepane-tab10:not([value="1"])~div .sheet-middlepane, -input.sheet-tabMain[value="11"] ~ .sheet-show-middlepane-tab11:not([value="1"])~div .sheet-middlepane, -input.sheet-tabMain[value="1"] ~ .sheet-show-rightpane-tab1:not([value="1"])~div .sheet-rightpane, -input.sheet-tabMain[value="2"] ~ .sheet-show-rightpane-tab2:not([value="1"])~div .sheet-rightpane, -input.sheet-tabMain[value="3"] ~ .sheet-show-rightpane-tab3:not([value="1"])~div .sheet-rightpane, -input.sheet-tabMain[value="4"] ~ .sheet-show-rightpane-tab4:not([value="1"])~div .sheet-rightpane, -input.sheet-tabMain[value="5"] ~ .sheet-show-rightpane-tab5:not([value="1"])~div .sheet-rightpane, -input.sheet-tabMain[value="6"] ~ .sheet-show-rightpane-tab6:not([value="1"])~div .sheet-rightpane, -input.sheet-tabMain[value="7"] ~ .sheet-show-rightpane-tab7:not([value="1"])~div .sheet-rightpane, -input.sheet-tabMain[value="8"] ~ .sheet-show-rightpane-tab8:not([value="1"])~div .sheet-rightpane, -input.sheet-tabMain[value="9"] ~ .sheet-show-rightpane-tab9:not([value="1"])~div .sheet-rightpane, -input.sheet-tabMain[value="10"] ~ .sheet-show-rightpane-tab10:not([value="1"])~div .sheet-rightpane, -input.sheet-tabMain[value="11"] ~ .sheet-show-rightpane-tab11:not([value="1"])~div .sheet-rightpane { - display:none; -} - - -.sheet-tabMain[value="1"]~div .sheet-testRepEditMode:not(:checked) ~ .repcontainer .sheet-HideIfOverviewNoEdit, -.sheet-testCreation:not([value="1"])~.sheet-tabMain[value="1"]~div .sheet-HideIfOverviewNoCreation, -.sheet-tabMain[value="1"]~div .sheet-testRepEditMode:not(:checked) ~ .sheet-HideIfOverviewNoEdit, -.sheet-tabMain[value="1"]~div .sheet-testRepEditMode:not(:checked)~div .sheet-HideIfOverviewNoEdit, -.sheet-tabMain[value="1"]~div .sheet-HideIfOverview, -.sheet-tabMain:not([value="1"])~div .sheet-HideIfNotOverview, -.sheet-tabMain[value="2"]~div .sheet-testRepEditMode:not(:checked) ~ .repcontainer .sheet-HideIfCombatNoEdit, -.sheet-tabMain[value="2"]~div .sheet-testRepEditMode:not(:checked) ~ .sheet-HideIfCombatNoEdit, -.sheet-tabMain[value="2"]~div .sheet-testRepEditMode:not(:checked) ~ div>.sheet-HideIfCombatNoEdit, -.sheet-tabMain[value="2"]~div .sheet-HideIfCombat, -.sheet-tabMain:not([value="2"])~div .sheet-HideIfNotCombat { - display: none; -/* border: 1px yellow solid; */ -} - - -/* Highlight the selected tab */ -input.sheet-tabMain:checked + span, -input.sheet-tabSpell:checked + span, -input.sheet-tabGrim:checked + span, -input.sheet-tabAdjust:checked + span, -input.sheet-tabMain:checked + .sheet-testCloseChecked + .sheet-HideIfCloseChecked, -input.sheet-tabMain:checked + .sheet-testCloseChecked + .sheet-HideIfCloseChecked + .sheet-HideIfNotCloseChecked { - background-color: var( --outline-color ); - color: var( --header-font-color ); - border: 1px solid black; -} - -/* ############################################ JBF Icons and images ################################################### */ - -.sheet-icon-damage-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Damage-background.png);} /*License Information*/ -.sheet-icon-devotion-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Devotion.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/angel-outfit.html#download*/ -.sheet-icon-initiative-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Initiative.png); } /*License Information*/ -.sheet-icon-interdiction-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Interdiction.png); } /*License Information*/ -.sheet-icon-karma-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Karma.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/entangled-typhoon.html*/ -.sheet-icon-MA-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/MA.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-MD-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/MD.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-PA-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/PA.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/chest-armor.html#download*/ -.sheet-icon-PD-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/PD.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/swords-emblem.html*/ -.sheet-icon-recovery-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Recovery.png); } /*Creative Commons :https://game-icons.net/1x1/delapouite/caduceus.html#download*/ -.sheet-icon-SD-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/SD.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-stun-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Stun.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-wounds-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Wounds-background.png);} /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ - - -.sheet-icon-action { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Action.png); } /*License Information*/ -.sheet-icon-action-free { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Action-Free.png); } /*Creative Commons : https://game-icons.net/1x1/lorc/fist.html#download*/ -.sheet-icon-action-simple { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Action-Simple.png); } /*Creative Commons : https://game-icons.net/1x1/lorc/fist.html#download*/ -.sheet-icon-action-standard { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Action-Standard.png); } /*Creative Commons : https://game-icons.net/1x1/lorc/fist.html#download*/ -.sheet-icon-action-sustained { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Action-Sustained.png); } /*Creative Commons : https://game-icons.net/1x1/lorc/fist.html#download*/ -.sheet-icon-action-white { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Action-white.png); } /*License Information*/ -.sheet-icon-action-na { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Action-NA.png); } /* https://findicons.com/files/icons/2610/flat_weather_icons/128/na.png */ -.sheet-icon-agressive { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Agressive.png); } /*Creative Commons : https://game-icons.net/1x1/lorc/fist.html#download*/ -.sheet-icon-ambush { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Ambush.png); } /*Creative Commons : https://game-icons.net/1x1/lorc/fist.html#download*/ -.sheet-icon-armor { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Armor.png); } /*Creative Commons : https://game-icons.net/1x1/lorc/fist.html#download*/ -.sheet-icon-ask { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Ask.png); } /*License Information*/ -.sheet-icon-attacks { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Attacks.png); } /*Creative Commons: https://game-icons.net/1x1/sbed/falling.html#download*/ -.sheet-icon-attacks-cc { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Attacks-cc.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/blade-drag.html#download*/ -.sheet-icon-blindsided { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Blindsided.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/backstab.html#download*/ -.sheet-icon-blindsiding { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Blindsiding.png); } /*Creative Commons: https://game-icons.net/1x1/darkzaitzev/hooded-assassin.html#download*/ -.sheet-icon-calledshot { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/CalledShot.png); } /*Creative Commons: https://game-icons.net/1x1/darkzaitzev/hooded-assassin.html#download*/ -.sheet-icon-charging { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Charging.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/rhinoceros-horn.html#download*/ -.sheet-icon-coin { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Coin.png); } /*Creative Commons: https://game-icons.net/1x1/darkzaitzev/hooded-assassin.html#download*/ -.sheet-icon-coin-copper { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Coin-Copper.png); } /*Creative Commons: https://game-icons.net/1x1/darkzaitzev/hooded-assassin.html#download*/ -.sheet-icon-coin-silver { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Coin-Silver.png); } /*Creative Commons: https://game-icons.net/1x1/darkzaitzev/hooded-assassin.html#download*/ -.sheet-icon-coin-gold { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Coin-Gold.png); } /*Creative Commons: https://game-icons.net/1x1/darkzaitzev/hooded-assassin.html#download*/ -.sheet-icon-cover { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Cover.png); } /*Creative Commons: https://game-icons.net/1x1/heavenly-dog/defensive-wall.html#download*/ -.sheet-icon-cover99 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Cover-99.png); } /*Creative Commons: https://game-icons.net/1x1/heavenly-dog/defensive-wall.html#download*/ -.sheet-icon-damage-cc { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Damage-cc.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/dripping-knife.html#download*/ -.sheet-icon-damage { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Damage.png); } /*Creative Commons: https://game-icons.net/1x1/sbed/falling.html#download*/ -.sheet-icon-death { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Death.png); } /*Creative Commons :https://game-icons.net/1x1/heavenly-dog/defensive-wall.html#download*/ -.sheet-icon-defenses { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Defenses.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/shield-echoes.html#download*/ -.sheet-icon-defenses-white { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Defenses-White.png); } /*Creative Commons :https://game-icons.net/1x1/heavenly-dog/defensive-wall.html#download*/ -.sheet-icon-defensive { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Defensive.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/arrows-shield.html#download*/ -.sheet-icon-defensive-exc { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Defensive-exc.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/arrows-shield.html#download*/ -.sheet-icon-devotion { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Devotion.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/angel-outfit.html#download*/ -.sheet-icon-devotion-on { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Devotion-On.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/angel-outfit.html#download*/ -.sheet-icon-devotion-ask { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Devotion-Ask.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/angel-outfit.html#download*/ -.sheet-icon-devotion2 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Devotion2.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/angel-outfit.html#download*/ -.sheet-icon-devotion3 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Devotion3.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/angel-outfit.html#download*/ -.sheet-icon-dice { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Dice.png); } /* https://static.thenounproject.com/png/1279708-200.png */ -.sheet-icon-edit { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Edit.png); } /*License Information*/ -.sheet-icon-edit-white { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Edit-White.png); } /*License Information*/ -.sheet-icon-effect { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Effect.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/star-swirl.html#download*/ -.sheet-icon-effect-white { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Effect-white.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/star-swirl.html#download*/ -.sheet-icon-entangled { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Entangled.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/fishing-net.html*/ -.sheet-icon-flying { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Flying.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/fishing-net.html*/ -.sheet-background-frame1 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame1.jpg); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-background-frame2 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame2.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-background-frame3 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame3.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-background-frame4 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame4.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-background-frame5 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame5.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-background-frame6 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame6.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-background-frame7 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame7.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-background-frame8 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame8.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-background-frame9 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame9.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-grimoire { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Grimoire.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/fishing-net.html*/ -.sheet-icon-harried { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Harried.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/screaming.html#download*/ -.sheet-icon-harried3 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Harried3.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/screaming.html#download*/ -.sheet-icon-harried4 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Harried4.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/screaming.html#download*/ -.sheet-icon-harried5 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Harried5.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/screaming.html#download*/ -.sheet-icon-impaired { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Impaired.png); } /*Creative Commons: https://game-icons.net/1x1/sbed/falling.html#download*/ -.sheet-icon-impaired4 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Impaired4.png); } /*Creative Commons: https://game-icons.net/1x1/sbed/falling.html#download*/ -.sheet-icon-initiative { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Initiative.png); } /*License Information*/ -.sheet-icon-initiative-noarmor { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Initiative-NoArmor.png);}/*https://static.thenounproject.com/png/539377-200.png */ -.sheet-icon-interdiction { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Interdiction.png); } /*License Information*/ -.sheet-icon-inventory { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Inventory.png); } /*License Information*/ -.sheet-icon-jumpup { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/JumpUp.png); } /*License Information*/ -.sheet-icon-karma { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Karma.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/entangled-typhoon.html*/ -.sheet-icon-karma2 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Karma2.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/entangled-typhoon.html*/ -.sheet-icon-karma3 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Karma3.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/entangled-typhoon.html*/ -.sheet-icon-karma-ask { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Karma-Ask.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/entangled-typhoon.html*/ -.sheet-icon-karma-on { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Karma-On.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/entangled-typhoon.html*/ -.sheet-icon-kit { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Kit.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/entangled-typhoon.html*/ -.sheet-icon-knockeddown { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Knockdown.png); } /*Creative Commons: https://game-icons.net/1x1/sbed/falling.html#download*/ -.sheet-icon-leftpane { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/LeftPane-White.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-link { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Link.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-link-out { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Link-out.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-link-in { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Link-in.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-link-in-out { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Link-In-Out.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-MA { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/MA.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-maneuver-creature { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Maneuver-Creature.png);} /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-maneuver-opponent { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Maneuver-Opponent.png);} /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-maneuver-show { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Maneuver-Show.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-matrix { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Matrix.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-matrix-attune { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Matrix-Attune.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-matrix-enhanced { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Matrix-Enhanced.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-matrix-armored { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Matrix-Armored.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-matrix-shared { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Matrix-Shared.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-MD { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/MD.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-move-based { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Move-Based.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-naked { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Naked.png); } /*https://game-icons.net/1x1/delapouite/chat-bubble.html#download*/ -.sheet-icon-naked-white { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Naked-white.png); } /*https://game-icons.net/1x1/delapouite/chat-bubble.html#download*/ -.sheet-icon-newday { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/NewDay.png); } /*https://game-icons.net/1x1/delapouite/chat-bubble.html#download*/ -.sheet-icon-notes { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Notes.png); } /*https://game-icons.net/1x1/delapouite/chat-bubble.html#download*/ -.sheet-icon-noshield { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/NoShield.png); } /*https://game-icons.net/1x1/skoll/shield-disabled.html#downloadd*/ -.sheet-icon-PA { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/PA.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/chest-armor.html#download*/ -.sheet-icon-parameter { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Parameter.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-parameter-white { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Parameter-white.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-partialcover { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/PartialCover.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-PD { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/PD.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/swords-emblem.html*/ -.sheet-icon-poisoned { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Poisoned.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-potion { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Potion.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-rangelong { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/RangeLong.png); } /*Creative Commons: https://game-icons.net/1x1/sbed/falling.html#download*/ -.sheet-icon-ration { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Ration.png); } /*Creative Commons: https://game-icons.net/1x1/sbed/falling.html#download*/ -.sheet-icon-recovery { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Recovery.png); } /*Creative Commons :https://game-icons.net/1x1/delapouite/caduceus.html#download*/ -.sheet-icon-reserved { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Reserved.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-resistance { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Resistance.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-rolltype-ask { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Rolltype-ask.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-rolltype-public { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Rolltype-Public.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-rolltype-PGM { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Rolltype-PGM.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-rolltype-GM { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Rolltype-GM.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-SD { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/SD.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-shield { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Shield.png); } /*Creative Commons : https://game-icons.net/1x1/lorc/fist.html#download*/ -.sheet-icon-split { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Split.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-stealthy { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Stealthy.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ -.sheet-icon-strain { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Strain.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-strain1 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Strain1.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-strain2 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Strain2.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-strain3 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Strain3.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-stun { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Stun.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-stun-white { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Stun-white.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-sum { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Sum.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-surprised { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Surprised.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-tail { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Tail.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-tips-edit { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Tips-Edit.gif); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-tips-mods { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Tips-Mods.gif); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-tips-tooltip { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Tips-Tooltip.gif); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-tknactn { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/TknActn.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-TN { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/TN.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-vision { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Vision.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-vision4 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Vision4.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-vision-based { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Vision-Based.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-weapon { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Weapon.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-wealth { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Wealth.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-weave { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Weave.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-weave-extra { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Weave.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ -.sheet-icon-willforce { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Willforce.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ - -/* Elsewhere in this file there are url's describing Strain.png, Frame20.png, - and two logo's that are stored on on amazon servers instead of github. - a few hundred lines down also find .sheet-rolltemplate-icon-ask and about 15 other definitions, but they all use icons already defined above. -*/ - -.sheet-frame { - background-size: 100% 100%; - /* Temporarly disabled to work on the color palette */ - /* background-size: 0% 0%; */ -} - - - - - -.sheet-frameBig { - /* background-size: 110% 110%; Temporarly disabled to work on the color palette*/ - background-size: 0% 0%; -} - -.sheet-iconlabel-white.sheet-iconpaddedright, -.sheet-iconlabel-header.sheet-iconpaddedright, -.sheet-iconpaddedright { - padding-right: 3px ; /* JBF was important*/ - margin-left: -3px ; /* JBF was important*/ - padding-top: 0px ; /* JBF was important*/ - padding-bottom: 0px ; /* JBF was important*/ - border: 1px solid transparent; - vertical-align: middle; -} -.sheet-iconlabel-white.sheet-iconpaddedleft, -.sheet-iconlabel-header.sheet-iconpaddedleft, -.sheet-iconpaddedleft { - padding-left: 3px ; /* JBF was important*/ - margin-right: -3px ; /* JBF was important*/ - padding-top: 0px ; /* JBF was important*/ - padding-bottom: 0px ; /* JBF was important*/ - vertical-align: middle; -} - -.sheet-undernumber { - padding-top: 0px; - margin-top: -4px; -} - - -.sheet-Karma-ControlBox { - white-space: nowrap; - display: inline-block; - width: 30px; - text-align: center; - vertical-align: middle; - padding: 0; - margin: 1px; -} - -/* ############################################ JBF : Icon checkboxes Management #################################### */ -.charsheet input.sheet-iconcheckbox { - display:none; -} - -.sheet-iconlabel-header-invert, -.sheet-iconlabel-invert, -.sheet-iconlabel-header, -.sheet-iconlabel { - display: inline-block; - padding: 1px; - height: 20px; - width: 20px; - margin: 0px; - vertical-align: middle; - border-radius: 5px; - opacity: 0.7; - border: 1px solid transparent; - background-color: var( --icon-color); -} - - -.sheet-iconlabel-white { - display: inline-block; - padding: 2px; - opacity: 0.5; - height: 20px; - width: 20px; - margin: 0px; - border: 1px solid transparent; - vertical-align: middle; -} - -.sheet-iconlabelsmall { - display: inline-block; - vertical-align: middle; - padding: 0px; - opacity: 0.7; - width: 15px; - margin: 0px; - border: 1px solid transparent; -} - -.sheet-iconlabelCC { - display: inline-block; - vertical-align: middle; - padding: 0px; - opacity: 1; - width: 20px; - margin: 0px; - border: 1px solid transparent; - background-color: var( --icon-color); -} - -.sheet-iconlabelbig { - display: inline-block; - vertical-align: middle; - padding: 1px; - opacity: 1; - width: 30px; - margin: 0px; - border: 1px solid transparent; - background-color: var( --icon-color); -} - -.sheet-iconstatic { - width: 20px; - text-align: center; - vertical-align: middle; - padding: 0px; - margin: 0px; -} - -.sheet-iconstaticsmall { - width: 15px; - text-align: center; - vertical-align: middle; - padding: 0px; - margin: 0px; -} - -.sheet-iconstaticBig { - width: 30px; - text-align: center; - vertical-align: middle; - padding: 0px; - margin: 0px; - margin-right: -5px; -} - -input.sheet-iconcheckbox:not(:checked) + .sheet-iconlabel-header-invert, -input.sheet-iconcheckbox:not(:checked) + .sheet-iconlabel-invert, -input.sheet-iconcheckbox:checked + .sheet-iconlabel-header, -input.sheet-iconcheckbox:checked + .sheet-iconlabelsmall, -input.sheet-iconcheckbox:checked + .sheet-iconlabel { - opacity: 1; - border: 1px solid black; -} - - - - -input.sheet-iconcheckbox:checked + .sheet-iconlabel-white, -input.sheet-iconcheckbox:not(:checked) + .sheet-iconlabelbig { - opacity: 1; - border: 1px solid transparent; -} - -input[type="checkbox"].sheet-iconcheckbox + .sheet-iconlabel-invert:hover, -input[type="checkbox"].sheet-iconcheckbox + .sheet-iconlabel-header-invert:hover, -input[type="checkbox"].sheet-iconcheckbox + .sheet-iconlabel-header:hover, -input[type="checkbox"].sheet-iconcheckbox + .sheet-iconlabelCC:hover, -input[type="checkbox"].sheet-iconcheckbox + .sheet-iconlabelbig:hover, -input[type="checkbox"].sheet-iconcheckbox + .sheet-iconlabelsmall:hover, -input[type="checkbox"].sheet-iconcheckbox + .sheet-iconlabel:hover, -input[type="radio"].sheet-iconcheckbox:not(:checked) + .sheet-iconlabel:hover { - background-color: var( --hover-color-bg ); - background-position: 0 -15px; - background-position-x: 0px; - background-position-y: -15px; - -webkit-transition: background-position .1s linear; - -moz-transition: background-position .1s linear; - -ms-transition: background-position .1s linear; - -o-transition: background-position .1s linear; - transition: background-position .1s linear; - transition-property: background-position; - transition-duration: 0.1s; - transition-timing-function: linear; - transition-delay: 0s; - border : 1px solid var( --hover-color ); -} - -input[type="checkbox"].sheet-iconcheckbox + .sheet-iconlabel-white:hover, -input[type="radio"].sheet-iconcheckbox:not(:checked) + .sheet-iconlabel-white:hover { - border : 1px solid red; - opacity: 0.8; -} - -/*JBF@JBF : logic hiding unchecked icons when the header is not hovered*/ - -.sheet-header-flex-container:not(:hover) .sheet-iconcheckbox:checked+.sheet-iconlabel-header-invert, -.sheet-header-flex-container:not(:hover) .sheet-iconcheckbox:not(:checked)+.sheet-iconlabel-header { - height: 0px; - /* width:0px; */ - border: 1px solid transparent; - background : transparent; - /* padding: 0px; */ - margin: 0px; -} - -/*JBF@JBF : logic collapsing the icon container */ -.sheet-iconlabel2 { - margin: 0px !important; - padding: 0px !important; - min-width: 0px !important; - flex-grow: 0; /* it cant grow anymore... We want it to collapse */ - flex-shrink: 1; -} - - -/* ####################################### JBF : Strain icon */ -/* JBF version with the drop of blood */ -input[type="text"].sheet-strainicon { - background: var(--locked-color); - background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Strain.png); - background-repeat: no-repeat; - width: 2.5em; - height: 2.5em; - background-position: 0px -3px; - background-size: cover; - color: var( --header-font-color ); - font-size: 11px; - font-family : initial; -} - -.sheet-info { - float: right; - margin-top: -6px; - height: 30px; - font-family: "Pictos"; - font-size: 24px; -} - - -/* ############################################ Roll Templates & colors ###################################################### */ -/* For some weird Reason, the Print format must be in between the roll templates and the API buttons. DO NOT MOVE */ - -.sheet-rolltemplate-chatrecord { -/* background-color: LightBlue; */ -} - - - -.sheet-rolltemplate-chatrecord table, -.sheet-rolltemplate-rolltargetnumber table { - width: 100%; - border: 1px solid black; - color: black; - font-size: 1em; - font-family: "Helvetica Neue", Helvetica, sans-serif; -} - -.sheet-rolltemplate-chatrecord thead, -.sheet-rolltemplate-rolltargetnumber thead { - border-bottom: 1px solid black; - line-height: 1.6em; - font-size: 1.2em; - /* font-family: Papyrus, fantasy; */ - font-family: 'Aladin', "Helvetica Neue", Helvetica, sans-serif; - font-weight: normal; -} - -.sheet-rolltemplate-chatrecord th { - background-color: #660066; - color: white; - padding-left: 5px; - vertical-align: middle; -} - -.sheet-rolltemplate-rolltargetnumber th { - background-color: #000066; - padding-left: 5px; - vertical-align: middle; - color: white; -} - -.sheet-rolltemplate-chatrecord td, -.sheet-rolltemplate-rolltargetnumber td { - padding: 5px; - border-bottom: 1px solid black; -} - -.sheet-rolltemplate-chatrecord tr:nth-child(odd), -.sheet-rolltemplate-rolltargetnumber tr:nth-child(odd) { - background-color: rgba(217, 217, 214, 1); -} - -.sheet-rolltemplate-chatrecord tr:nth-child(even), -.sheet-rolltemplate-rolltargetnumber tr:nth-child(even) { - background-color: rgba(233, 233, 233, 1); -} - -.sheet-rolltemplate-chatrecord td:first-child, -.sheet-rolltemplate-rolltargetnumber td:first-child { - text-align: right; - font-weight: bold; -} - - -.sheet-rolltemplate-chatrecord a[href^="!"] { - border: 0.8px; - padding: 5px; - background-color: PaleGreen; - color: black; -} - - -/* These are all tries for formatting the API roll templates*/ -.sheet-rolltemplate-sect{ - background-color: white; - background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame20.png); - background-size : 103% 103%; - background-position: 55% 53%; - border: solid 2px black; - padding: 13px; - border-radius: 5px; - overflow: hidden; - width: 90%; -} - -.sheet-rolltemplate-body { - text-align: left; - padding-left: 5px; - padding-right: 0px; - padding-bottom: 2px; - line-height: 1.5em; -} - -.sheet-rolltemplate-subheadertext { -line-height: 0.9em; -font-size: 0.9em; -font-weight: lighter; -color: black; -background: transparent; -text-align: center; -margin-top: -0.1em; -margin-bottom: 0.2em; -} - -.sheet-rolltemplate-header { - font-weight: bold; - text-align: center; - color: black; - background: white; - /* font-family: Papyrus, fantasy; */ - font-family: 'Aladin', Papyrus, "Helvetica Neue", Helvetica, sans-serif; - vertical-align: middle; - line-height: 1.2em; - font-size: 1.2em; - margin-bottom: 3px; -} - -.sheet-rolltemplate-header::before { - content: ""; - display: inline-block; - /* background: url("https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Long-Range.png") no-repeat; */ - background-size: 20px !important; - background-repeat: no-repeat; - width: 20px; - height: 20px; - margin: 0 6px 0 0; -} - -.sheet-rolltemplate-button { - background-color: firebrick !important; - color: white !important; - padding: 1px 8px !important; - border: 1px solid black !important; - margin: 2px 5px !important; - min-width: auto; - border-radius: 5px; -} - -.sheet-rolltemplate-icon-ask, -.sheet-rolltemplate-icon-pd, -.sheet-rolltemplate-icon-md, -.sheet-rolltemplate-icon-sd, -.sheet-rolltemplate-icon-action, -.sheet-rolltemplate-icon-attacks, -.sheet-rolltemplate-icon-attackcc, -.sheet-rolltemplate-icon-init, -.sheet-rolltemplate-icon-initrep, -.sheet-rolltemplate-icon-weave, -.sheet-rolltemplate-icon-knockdown { - color: darkgreen; - border-bottom: 4px darkgreen solid; -} - -.sheet-rolltemplate-icon-effect, -.sheet-rolltemplate-icon-damage, -.sheet-rolltemplate-icon-damagecc { - color: firebrick; - border-bottom: 4px firebrick solid; -} - -.sheet-rolltemplate-icon-recovery { - color: darkgoldenrod; - border-bottom: 4px darkgoldenrod solid; -} - - - - -.sheet-rolltemplate-icon-ask::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Ask.png);} -.sheet-rolltemplate-icon-pd::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/PD.png);} -.sheet-rolltemplate-icon-md::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/MD.png);} -.sheet-rolltemplate-icon-sd::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/SD.png);} -.sheet-rolltemplate-icon-action::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Action.png);} -.sheet-rolltemplate-icon-effect::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Effect.png);} -.sheet-rolltemplate-icon-attacks::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Attacks.png);} -.sheet-rolltemplate-icon-attackcc::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Attacks-cc.png);} -.sheet-rolltemplate-icon-damage::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Damage.png);} -.sheet-rolltemplate-icon-damagecc::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Damage-cc.png);} -.sheet-rolltemplate-icon-init::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Initiative.png);} -.sheet-rolltemplate-icon-initrep::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Initiative.png);} -.sheet-rolltemplate-icon-recovery::before, -.sheet-rolltemplate-icon-recoveryrep::before{ background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Recovery.png);} -.sheet-rolltemplate-icon-weave::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Weave.png);} -.sheet-rolltemplate-icon-knockdown::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Knockdown.png);} - - - -/* ####################### Print Format ################# */ - -/* For some weird Reason, the Print format must be in between the roll templates and the API buttons. DO NOT MOVE */ - -@media print { - /* All your print styles go here */ - /* .sheet-buffSignLeft, - .sheet-buffSignRight, - .sheet-buffLeft, - .sheet-buffRight - { display: none !important; } */ - - .sheet-ShowIfPrint { - display: inline-block !important; - } - - .ui-dialog { - position: static !important; - } - - .sheet-redGreen[value^="-"]~ b, - .sheet-greenRed[value^="-"]~ b, - .sheet-redGreen[value="0"] ~ input, - .sheet-greenRed[value="0"] ~ input, - .sheet-redGreen[value="0"] ~ b, - .sheet-greenRed[value="0"] ~ b { - /* color: transparent !important; */ - } - - -/*Manage the display of the different sections*/ - - .sheet-tabGrim~fieldset.repeating_spell+.repcontainer>.repitem .sheet-filter-box /* display everything no matter what which of the inner boxes are checked. */ - { - display: block; - border: none; /*JBF*/ - } - /*JBF@JBF@CD : For Skills, Knacks and Talents, in overview, everything is displayed, and in Combat, only the checked ones)*/ - - - - input.sheet-tabMain~div .sheet-section-core, - input.sheet-tabMain~div .sheet-section-talents, - input.sheet-tabMain~div .sheet-section-knacks, - input.sheet-tabMain~div .sheet-section-skills, - input.sheet-tabMain~div .sheet-section-spells, - input.sheet-tabMain~div .sheet-section-equipment, - input.sheet-tabMain~div .sheet-section-gear, - input.sheet-tabMain~div .sheet-section-notes, - input.sheet-tabMain~div .sheet-section-record, - input.sheet-tabSpell~.sheet-section-spells-talents, - input.sheet-tabSpell~.sheet-section-spells-matrices, - input.sheet-tabSpell~.sheet-section-spells-grimoire { - max-height: 999999px; - max-width: 999999px; - visibility: visible; - opacity: 1; - transition: opacity 0.5s linear 0s; - break-after: auto; - /* border-top: 2px double var(--outline-color); */ - } - - .sheet-tabMain~div .repcontainer .sheet-HideIfOverviewNoEdit, - .sheet-tabMain~div .sheet-HideIfOverviewNoEdit, - .sheet-tabMain~div .sheet-HideIfOverview, - .sheet-tabMain~div .sheet-HideIfNotOverview, - .sheet-tabMain~div .repcontainer .sheet-HideIfCombatNoEdit, - .sheet-tabMain~div .sheet-HideIfCombatNoEdit, - .sheet-tabMain~div .sheet-HideIfCombat, - .sheet-tabMain~div .sheet-HideIfNotCombat { - display: inline-block !important; - } - - #macrobar, - #macrobar_macros, - #edit-button, - #playerzone, - .sheet-icon-link-in, - .sheet-icon-link-out, - .sheet-icon-link-in-out, - .repcontrol, - .sheet-testEdition[value="3"]~div .sheet-HideIfEdition3, - .sheet-testEdition:not([value="3"])~div .sheet-HideIfNotEdition3, - .sheet-testEdition[value="4"]~div .sheet-HideIfEdition4, - .sheet-testEdition:not([value="4"])~div .sheet-HideIfNotEdition4, - .sheet-testCloseChecked:checked+.sheet-HideIfCloseChecked, - .sheet-testCloseChecked:not(:checked)+.sheet-HideIfNotCloseChecked, - .sheet-testCloseChecked:not(:checked)+.sheet-HideIfCloseChecked+.sheet-HideIfNotCloseChecked, - .nav-tabs, - .nav, - .sheet-Creation, - .sheet-HideIfPrint, - .sheet-tabMain~div .repcontainer .sheet-HideIfOverviewNoEdit.sheet-HideIfPrint, - .sheet-tabMain~div .sheet-HideIfOverviewNoEdit.sheet-HideIfPrint, - .sheet-tabMain~div .sheet-HideIfOverview.sheet-HideIfPrint, - .sheet-tabMain~div .sheet-HideIfNotOverview.sheet-HideIfPrint, - .sheet-tabMain~div .repcontainer .sheet-HideIfCombatNoEdit.sheet-HideIfPrint, - .sheet-tabMain~div .sheet-HideIfCombatNoEdit.sheet-HideIfPrint, - .sheet-tabMain~div .sheet-HideIfCombat.sheet-HideIfPrint, - .sheet-tabMain~div .sheet-HideIfNotCombat.sheet-HideIfPrint, - .sheet-testAPI:not([value="1"])~div .sheet-api, - .sheet-testAPI:[value="1"]~div .sheet-NoAPI { - display: none !important; - } - - .sheet-headerbar { - color : white !important; - background-color : var(--outline-color) !important; - /* font-family: Papyrus, fantasy; */ - font-family: 'Aladin', "Helvetica Neue", Helvetica, sans-serif; - font-weight: normal; - } - - .sheet-text-button-header { - color : var(--input-color) !important; - background-color : var(--outline-color) !important; - /* font-family: Papyrus, fantasy; */ - font-family: 'Aladin', "Helvetica Neue", Helvetica, sans-serif; - font-weight: normal; - } - - - .sheet-leftpane, - .sheet-middlepane { - width:200px; - } - - .sheet-flex-container { - display: flex; - align-items: flex-start; - justify-content: space-between; - } - -} /* end media print */ - -/* ####################### API Format ################# */ -/* For some weird Reason, the Print format must be in between the roll templates and the API buttons. DO NOT MOVE */ -a.sheet-chatbutton, -.textchatcontainer a[href^="!"].sheet-chatbutton, -a.textchatcontainer a.sheet-chatbutton { - padding: 0px 3px !important; - border: 1px solid black !important; - border-radius: 5px; - margin: 1px 0px !important; - min-width: auto; - white-space: nowrap; - background-color: grey; - color: white; -} - -/* ########################### End ############################### */ +/* Earthdawn.css */ +/* ############################################ css Reset ######################################################################### */ +/*v2.05 pushed 20211226*/ + +/* @import url('https://fonts.googleapis.com/css2?family=IM+Fell+English+SC&display=swap'); */ +@import url('https://fonts.googleapis.com/css2?family=Aladin&display=swap'); + + +input, +.charsheet input { + height: initial; +} +label, +.charsheet label { + color: initial; + display: inline-block; + font-size: inherit; + font-weight: normal; + height: auto; + line-height: 1em; + margin-bottom: initial; + padding-right: initial; + position: relative; + width: initial; +} +select, +.charsheet select { + margin: initial; + width: initial; + height: 20px; /*JBF 210317*/ + padding: 0; + font-weight: bold; + +} +textarea, +.charsheet textarea { + height: initial; + /* overflow-x: hidden; + overflow-y: auto; */ + resize: initial; + background-color: var( --bg-color ); + box-sizing: border-box; + border: 1px solid var( --outline-color ); + text-align: left; + overflow: auto; + pointer-events: initial; +} + + + + +/* ##### iconselect #### */ + +.sheet-testRepEditMode:not(:checked)~.repcontainer .sheet-iconselect-select, +.sheet-iconselect-span:not(:hover)>.sheet-iconselect-select-noedit, +.sheet-iconselect-span:not(:hover)>.sheet-iconselect-select{ + display: none; +} + +.charsheet .sheet-testRepEditMode:checked~.repcontainer .sheet-iconselect-span:hover>.sheet-iconselect-icon, +.charsheet .sheet-testRepEditMode:checked+.sheet-iconselect-span:hover>.sheet-iconselect-icon, +.charsheet .sheet-iconselect-span:hover>.sheet-iconselect-icon-noedit { + display: none; +} + +.charsheet .sheet-testRepEditMode:checked~.repcontainer .sheet-iconselect-span>.sheet-iconselect-icon, +.charsheet .sheet-testRepEditMode:checked+.sheet-iconselect-span>.sheet-iconselect-icon, +.charsheet .sheet-iconselect-span>.sheet-iconselect-icon-noedit { + background-color: var( --icon-color ); +} + + +.sheet-iconselect-icon, +.sheet-iconselect-span { + min-height: 20px; + min-width: 20px; +} +/* In order to have a correct initialization, it is absolutely necessary to have the iconselect-icon before the iconselect-select, and have the default value marked as checked/selected*/ + + +/* ############################################ Main section ####################################################################### */ +/* Colors: code description What used for. */ +.sheet-user-root { + --bg-color: rgb(255,242,201,0.15);/*Main background color ;*/ + --outline-color: #071840; /* Main border */ + --font-color: #071840; /* Color of fonts on the normal background */ + --header-font-color: white; /* Color of fonts on the header background */ + --highlight-font-color: #071840; /* Color of fonts on the icon background */ + --input-color: rgba(0, 0, 10, 0.1); /* Main section Input fields that are not disabled. */ + --hover-color: red; /* Color of active fields when hovered. */ + --hover-color-bg: rgba(255, 0, 0, 0.5); /* Color of active fields when hovered. */ + --locked-color: transparent; /* Main section Input fields that are locked */ + --control-secondary: #1473B4; /* header section background */ + --inactive-color: #1473B4; /* Color of the inactive tabs */ + --button-color: rgba(245, 245, 245, 1); /* button color */ + --icon-color: rgba(0, 0, 10, 0.1); /* actionable icons */ + +} + + + + + +xxxxx { + xxx: xx; /* * */ +} +/* For absolutely weird reason, we need this line to make the CSS work*/ + +/*.sheet-testAPI:not(:checked)~.sheet-api, Knacks tab is not inside a div */ +.sheet-testAPI:not([value="1"])~div .sheet-api, +.sheet-testAPI:not([value="1"])~div .sheet-Karma-ControlBox, +.sheet-testAPI[value="1"]~div .sheet-NoAPI, +.sheet-testCreation:not([value="1"])~div .sheet-Creation, +.sheet-testCreation[value="1"]~div .sheet-NotCreation, +.sheet-testEdition[value="-1"]~div .sheet-HideIf1879, +.sheet-testEdition:not([value="-1"])~div .sheet-HideIfNot1879, +.sheet-testEdition[value="3"]~div .sheet-HideIfEdition3, +.sheet-testEdition:not([value="3"])~div .sheet-HideIfNotEdition3, +.sheet-testEdition[value="4"]~div .sheet-HideIfEdition4, +.sheet-testEdition:not([value="4"])~div .sheet-HideIfNotEdition4, +.sheet-testPath[value="0"]~div .sheet-HideIfNotPath, +.sheet-testQuest[value="0"]~div .sheet-HideIfNotQuest, +.sheet-testNbDisc[value="0"]~div .sheet-HideIfZeroDisc, +.sheet-testNbDisc[value="1"]~div .sheet-HideIfOneDisc, +.sheet-testNbDisc[value="2"]~div .sheet-HideIfTwoDisc, +.sheet-testNbDisc[value="3"]~div .sheet-HideIfThreeDisc, +.sheet-testNPC:not([value="0"])~div .sheet-HideIfNotPC, +.sheet-testNPC[value="0"]~div .sheet-HideIfPC, +.sheet-testRace:not([value="Tskrang"])~div .sheet-HideIfNotTskrang, +.sheet-testRace:not([value="Other"])~div .sheet-HideIfNotCreature, +.sheet-testRace[value="Other"]~div .sheet-HideIfCreature, +.sheet-testStepDisplay:not([value="1"])~div .sheet-StepTotal, +.sheet-testStepDisplay[value="1"]~div .sheet-StepBase, +.sheet-testChecked:checked~.sheet-HideIfChecked, +.sheet-testChecked:not(:checked)~.sheet-HideIfNotChecked, +.sheet-testChecked:checked~div>.sheet-HideIfChecked, +.sheet-testChecked:not(:checked)~div>.sheet-HideIfNotChecked, +.sheet-testChecked:not(:checked)~span>.sheet-HideIfNotChecked, +.sheet-testChecked:checked~div>div>.sheet-HideIfChecked, +.sheet-testChecked:not(:checked)~div>div>.sheet-HideIfNotChecked, +.sheet-testChecked:checked~span>.sheet-HideIfChecked, +.sheet-testChecked:not(:checked)~.sheet-table-row>.sheet-HideIfNotChecked, +.sheet-testCloseChecked:checked+.sheet-HideIfCloseChecked, +.sheet-testCloseChecked:not(:checked)+.sheet-HideIfNotCloseChecked, +.sheet-testCloseChecked:not(:checked)+.sheet-HideIfCloseChecked+.sheet-HideIfNotCloseChecked, +.sheet-testNum[value="0"]+.sheet-HideIfZero, +.sheet-testNum:not([value="0"])+span+.sheet-HideIfNotZero, +.sheet-testNum[value="1"]+.sheet-HideIfOne, +.sheet-testNum[value="2"]+.sheet-HideIfTwo, +.sheet-testNum[value="3"]+.sheet-HideIfThree, +.sheet-testNum[value="0"]~ .sheet-HideIfZero, +.sheet-testNum[value="0"]~div .sheet-HideIfZero, +.sheet-testNum[value="1"]~div .sheet-HideIfOne, +.sheet-testNum[value="2"]~div .sheet-HideIfTwo, +.sheet-testNum[value="3"]~div .sheet-HideIfThree, +.sheet-testNum[value="0"]~ .sheet-HideIfLessThan1, +.sheet-testNum[value="0"]~div .sheet-HideIfLessThan1, +.sheet-testNum[value="1"]~div .sheet-HideIfLessThan2, +.sheet-testNum[value="2"]~div .sheet-HideIfLessThan3, +.sheet-testNum[value="3"]~div .sheet-HideIfLessThan4, +.sheet-testNum[value="4"]~div .sheet-HideIfLessThan5, +.sheet-testNum[value="5"]~div .sheet-HideIfLessThan6, +.sheet-testNum[value="6"]~div .sheet-HideIfLessThan7, +.sheet-testNum[value="7"]~div .sheet-HideIfLessThan8, +.sheet-testNum[value="8"]~div .sheet-HideIfLessThan9, +.sheet-testNum[value="9"]~div .sheet-HideIfLessThan10, +.sheet-testNum[value="10"]~div .sheet-HideIfLessThan11, +.sheet-testNum[value="11"]~div .sheet-HideIfLessThan12, +.sheet-testNum[value="12"]~div .sheet-HideIfLessThan13, +.sheet-testNum[value="13"]~div .sheet-HideIfLessThan14, +.sheet-testNum[value="14"]~div .sheet-HideIfLessThan15, +.sheet-testModType[value="(0)"]~span>.sheet-HideIfNoRoll, +.sheet-testModType[value="(0)"]~.sheet-HideIfNoRoll, +.sheet-testModType:not([value="(0)"])~span>.sheet-HideIfRoll, +.sheet-testModType:not([value="(0)"])~.sheet-HideIfRoll, +.sheet-testRecord[value="LP"]~.sheet-HideIfLP, +.sheet-testRecord[value="SP"]~.sheet-HideIfSP, +.sheet-testRecord[value="Other"]~.sheet-HideIfOther, +.sheet-testRepEditMode:checked~.repcontainer .sheet-HideIfEditMode, +.sheet-testRepEditMode:not(:checked)~.repcontainer .sheet-HideIfNotEditMode, +.sheet-testRepEditMode:checked~.sheet-HideIfEditMode, +.sheet-testRepEditMode:not(:checked)~.sheet-HideIfNotEditMode, +.sheet-testRepEditMode:checked~div>.sheet-HideIfEditMode, +.sheet-testRepEditMode:not(:checked)~div>.sheet-HideIfNotEditMode, +.sheet-testRepEditMode:checked~div>div>.sheet-HideIfEditMode, +.sheet-testRepEditMode:not(:checked)~div>div>.sheet-HideIfNotEditMode, +.sheet-testRepEditMode:checked~span>.sheet-HideIfEditMode, +.sheet-testRepEditMode:not(:checked)~span>.sheet-HideIfNotEditMode, +.sheet-testRepEditMode:checked~div>div>span>.sheet-HideIfEditMode, +.sheet-testRepEditMode:not(:checked)~div>div>span>.sheet-HideIfNotEditMode, +.sheet-testRepOption1:not(:checked)~.repcontainer .sheet-HideIfNotOption1, +.sheet-testRepOption2:not(:checked)~.repcontainer .sheet-HideIfNotOption2, +.sheet-testRepOption3:not(:checked)~.repcontainer .sheet-HideIfNotOption3, +.sheet-testRepOption4:not(:checked)~.repcontainer .sheet-HideIfNotOption4, +.sheet-testFreeOrThread[value*="-link"]+.sheet-HideIfFreeOrThread, +.sheet-testFreeOrThread:not([value*="-link"])+.sheet-HideIfNotFreeOrThread, +.sheet-testFreeOrThread:not([value*="-link"])+.sheet-HideIfFreeOrThread+.sheet-HideIfNotFreeOrThread, +.sheet-testPlaceholder:not(:placeholder-shown)~.sheet-hideIfNotPlaceholder, +.sheet-testPlaceholder:placeholder-shown~.sheet-hideIfPlaceholder, +.sheet-testPlaceholder:not(:placeholder-shown)~div .sheet-hideIfNotPlaceholder, +.sheet-testPlaceholder:not(:placeholder-shown)~span .sheet-hideIfNotPlaceholder, +.sheet-testPlaceholder:placeholder-shown~span .sheet-hideIfPlaceholder, +input[type="number"]:disabled.sheet-hidden, /* Need this bit of extra specificity here */ +.sheet-hidden { + display: none; +} + +.sheet-testCloseChecked:checked+.sheet-UnHideIfCloseChecked, +.sheet-testChecked:checked~.sheet-UnHideIfChecked, +.sheet-testDSPPath[value="81.0"]~div .sheet-UnHideIfDSPPath, +.sheet-testDSPPath[value="83.0"]~div .sheet-UnHideIfDSPPath, +.sheet-testNum:not([value="0"])+.sheet-UnhideIfNotZero, +.sheet-testNum:not([value="0"])+.sheet-testNum+.sheet-UnhideIfNotZero, +.sheet-testDevotion[value^="QD-"]+.sheet-UnhideIfDevotion +{ display: inline-block; } + +.sheet-testNum2[value="1"]~div .sheet-UnhideIf1, +.sheet-testNum2[value="2"]~div .sheet-UnhideIf2, +.sheet-testNum2[value="3"]~div .sheet-UnhideIf3, +.sheet-testNum2[value="4"]~div .sheet-UnhideIf4, +.sheet-testNum2[value="5"]~div .sheet-UnhideIf5, +.sheet-testNum2[value="6"]~div .sheet-UnhideIf6, +.sheet-testNum2[value="7"]~div .sheet-UnhideIf7, +.sheet-testNum2[value="8"]~div .sheet-UnhideIf8, +.sheet-testNum2[value="9"]~div .sheet-UnhideIf9, +.sheet-testNum2[value="10"]~div .sheet-UnhideIf10, +.sheet-testNum2[value="11"]~div .sheet-UnhideIf11, +.sheet-testNum2[value="12"]~div .sheet-UnhideIf12, +.sheet-testNum2[value="13"]~div .sheet-UnhideIf13, +.sheet-testNum2[value="14"]~div .sheet-UnhideIf14, +.sheet-testNum2[value="15"]~div .sheet-UnhideIf15 +{ display: inline-block; } + + + + + +/* ################ JBF 210104 Global formatting (inputs, select ...) ############ */ + + +input[type="text"], +input[type="number"] { + color: var( --font-color ); + background-color: var( --input-color ); + border: 1px solid transparent; + padding: 1px; + font-weight: bold; + text-align: center; +} + +input.sheet-HideSpinners::-webkit-inner-spin-button, +input.sheet-HideSpinners::-webkit-outer-spin-button, +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + opacity: 0.1; +} + +input.sheet-HideSpinners:hover::-webkit-inner-spin-button, +input.sheet-HideSpinners:hover::-webkit-outer-spin-button, +input[type="number"]:hover::-webkit-inner-spin-button, +input[type="number"]:hover::-webkit-outer-spin-button { + opacity: 1; +} + +input:hover, +input.sheet-HideSpinners:hover { + -moz-appearance: auto; + background-color: var( --hover-color-bg); + border : 1px solid var( --hover-color); +} + +input[type="number"], +input.sheet-HideSpinners { + -moz-appearance: textfield; +} + + +textarea.sheet-details { + height: 100px; + resize: vertical; + margin-bottom : 1px; +} + +textarea.sheet-details-small { + height: 50px; + resize: vertical; + margin-bottom : 1px; +} + +textarea.sheet-details-big { + height: 400px; + resize: vertical; + margin-bottom : 1px; +} + +textarea.sheet-details-oneline { + height: 25px; + resize: none; + margin-bottom : 1px; + background: var(--input-color); + +} + +textarea.sheet-textimport { + height: 23px; + width: 10em; + resize: none; + overflow: none; + margin-bottom : 0px; + background-color: var( --input-color ); + border : 1px solid var(--outline-color); +} + +span.sheet-buttonlabel, +input.sheet-buttonlabel { + background : transparent; + border-style: none; + text-align: left; + padding: 0; + margin: 0; + font-family: 'Aladin', "Helvetica Neue", Helvetica, sans-serif; + font-weight: normal; + color: var( --font-color ); + +} +button:hover span.sheet-buttonlabel, +button:hover input.sheet-buttonlabel { + color : var( --hover-color ); + cursor: pointer; +} + + + +select { + background-color: var( --input-color ); + border-left: none; + border-top: none; + border-right-style: none; + border-bottom: 1px solid var( --outline-color ); + text-align: center; +} + + + +[readonly], +.sheet-Locked, +input[type="text"][readonly], +input[type="number"][readonly], +input[type="number"][readonly]:hover, +input[type="number"].sheet-Locked, /* Sometime need this bit of extra specificity */ +input[type="text"].sheet-Locked, +.sheet-testKarmaAuto:not([value="1"])~div .sheet-Karma-ControlBox, +.sheet-testLocked:checked~.sheet-LockIfChecked, +.sheet-testLocked:checked~span .sheet-LockIfChecked, +.sheet-testLocked:checked~div .sheet-LockIfChecked, +.sheet-testLocked:checked~label .sheet-LockIfChecked, +.sheet-testLocked:not(:checked)~.sheet-LockIfNotChecked, +.sheet-testLocked:not(:checked)~span .sheet-LockIfNotChecked, +.sheet-testLocked:not(:checked)~label .sheet-LockIfNotChecked, +.sheet-testLocked:not(:checked)~div .sheet-LockIfNotChecked { + background-color: var( --locked-color ); + pointer-events: none; + -moz-appearance: textfield; + font-family: 'Aladin', "Helvetica Neue", Helvetica, sans-serif; + font-weight: normal; +} + +.sheet-testRepEditMode:checked~.repcontainer .sheet-LockIfEditMode, +.sheet-testRepEditMode:not(:checked)~.repcontainer .sheet-LockIfNotEditMode, +.sheet-testRepEditMode:checked~.sheet-LockIfEditMode, +.sheet-testRepEditMode:not(:checked)~.sheet-LockIfNotEditMode, +.sheet-testRepEditMode:checked~div>.sheet-LockIfEditMode, +.sheet-testRepEditMode:not(:checked)~div>.sheet-LockIfNotEditMode, +.sheet-testRepEditMode:checked~div>div>.sheet-LockIfEditMode, +.sheet-testRepEditMode:not(:checked)~div>div>.sheet-LockIfNotEditMode, +.sheet-testRepEditMode:not(:checked)~div>span>.sheet-LockIfNotEditMode, +.sheet-testRepEditMode:checked~span>.sheet-LockIfEditMode, +.sheet-testRepEditMode:not(:checked)~span>.sheet-LockIfNotEditMode, +.sheet-testRepEditMode:checked~div>div>span>.sheet-LockIfEditMode, +.sheet-testRepEditMode:not(:checked)~div>div>span>.sheet-LockIfNotEditMode { + background-color: var( --locked-color ); + pointer-events: none; + font-style : italic; + -moz-appearance: textfield; +} + + +.sheet-testNum[value="7"]+.sheet-UnlockIf7, +.sheet-testNum[value="99"]+.sheet-UnlockIf99, +.sheet-testLocked:checked~.sheet-UnlockIfChecked, +.sheet-testLocked:checked~span .sheet-UnlockIfChecked, +.sheet-testLocked:checked~label .sheet-UnlockIfChecked, +.sheet-testLocked:not(:checked)~.sheet-UnlockIfNotChecked, +.sheet-testLocked:not(:checked)~label .sheet-UnlockIfNotChecked, +.sheet-testLocked:not(:checked)~span .sheet-UnlockIfNotChecked { + background-color: var( --input-color ); + color: var( --font-color ); + pointer-events: initial; +} + + + +input:disabled, +input:disabled::-webkit-inner-spin-button, +input:disabled::-webkit-outer-spin-button, +input[readonly]::-webkit-inner-spin-button, +input[readonly]::-webkit-outer-spin-button, +.sheet-fakeCalc input:not(.sheet-hidden) { + pointer-events: none; + font-style: italic; + display: inline-block; + -moz-appearance: textfield; /*Was none before*/ + -webkit-appearance: none; +} + + +input.sheet-nospinner, +input.sheet-nospinner::-webkit-inner-spin-button, +input.sheet-nospinner::-webkit-outer-spin-button { + -moz-appearance: textfield; /*Was none before*/ + -webkit-appearance: none; +} + + + + +.sheet-floatRight { + float: right; + clear: right; +} + +.sheet-text-left { + text-align: left !important; +} + +.sheet-text-center { + text-align: center !important; +} + + +.sheet-fancyfont { + font-family: 'Aladin', "Helvetica Neue", Helvetica, sans-serif; + font-weight: normal; +} + + +.sheet-Elementalist-section, +.sheet-Illusionist-section, +.sheet-Nethermancer-section, +.sheet-Wizard-section { +} /* Need a class here just to keep .sheet-section from inheriting, even if the class is empty */ + +.sheet-label { + line-height: 10px; + font-size: 85%; + padding-right: 2em; + font-weight: bold; + text-align: center; + white-space: nowrap; +} + +.sheet-label-flex { + font-size: 85%; + font-weight: bold; +} + + + +.sheet-repeat-counter-reset { + counter-reset: sheet-rep-items; +} + +.sheet-repeat-count::before +{ + counter-increment: sheet-rep-items; + content: counter(sheet-rep-items) !important; + padding: 0.7em; +} + + +.sheet-text-button { + border-bottom: 1px solid black; + border-right: 1px solid transparent; + border-left: 1px solid transparent; + border-top: 1px solid transparent; + +} + +.sheet-text-button { + color: var( --font-color ); + background-color: var( --button-color ); +} + +.sheet-text-button-header { + color: var( --header-font-color ); + background-color: var( --outline-color ); +} + +.charsheet button[type="roll"].sheet-helpbutton { + color:black; + background-color: maroon ; + background-image: -moz-linear-gradient(top,#fff,maroon); + background-image: -ms-linear-gradient(top,#fff,maroon); + background-image: -webkit-gradient(linear,0 0,0 100%,from(#fff),to(maroon)); + background-image: -webkit-linear-gradient(top,#fff,maroon); + background-image: -o-linear-gradient(top,#fff,maroon); + background-image: linear-gradient(top,#fff,maroon); + background-repeat: repeat-x; + width: 20px; + size:130%; +} + + +/* JBF@JBF 210106 trials for transparent button */ + +.charsheet button[type="roll"], +.charsheet button[type="action"] { + border-bottom: 1px solid var( --outline-color); + border-right: 1px solid transparent; + border-left: 1px solid transparent; + border-top: 1px solid transparent; + border-radius: 5px; + margin-left: 1px; + margin-right: 1px; + background-color: var( --button-color ); + background-image: -moz-linear-gradient(top,#fff,#e6e6e6); + background-image: -ms-linear-gradient(top,#fff,#e6e6e6); + background-image: -webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6)); + background-image: -webkit-linear-gradient(top,#fff,#e6e6e6); + background-image: -o-linear-gradient(top,#fff,#e6e6e6); + background-image: linear-gradient(top,#fff,#e6e6e6); + background-repeat: repeat-x; + padding : 2px; +} + +button[type="roll"].sheet-text-button-header { + background-image: none; + background-color: var( --outline-color); + border-bottom: 1px solid white; + border-right: 1px solid white; + border-left: 1px solid white; + border-top: 1px solid white; +} + + +.charsheet button[type="roll"]:hover, +.charsheet button[type="roll"]:active, +.charsheet button[type="action"]:hover, +.charsheet button[type="action"]:active { + color: var( --hover-color ); + background-color: #e6e6e6; + background-position: 0 -15px; + background-position-x: 0px; + background-position-y: -15px; + -webkit-transition: background-position .1s linear; + -moz-transition: background-position .1s linear; + -ms-transition: background-position .1s linear; + -o-transition: background-position .1s linear; + transition: background-position .1s linear; + transition-property: background-position; + transition-duration: 0.1s; + transition-timing-function: linear; + transition-delay: 0s; + border: 1px solid red; +} + + +input[name*="combatOption"]:checked + b, +input[name*="condition"]:checked + b { + background-color: var( --outline-color ); + color: white; + border-radius: 5px; + padding-right: 5px; + padding-bottom: 1px; + padding-top: 1px; +} + + + +.charsheet button[type=roll].sheet-button-nodice:before { + content: none; +} + + +input[type="number"].sheet-attrCostsRed { + background-color: maroon; + color: white; +} + + +.sheet-testAttrCosts[value="0"]~div .sheet-attrCostsRed +{ + background-color: Green; + color: white; +} + +input[type="number"].sheet-attrCostsGreen { + background-color: green; +} + +.sheet-testAttrCosts[value="0"]~div input[type="number"].sheet-attrCostsGreen, +.sheet-testAttrCosts[value="1"]~div input[type="number"].sheet-attrCostsGreen, +.sheet-testAttrCosts[value="2"]~div input[type="number"].sheet-attrCostsGreen { + background-color: white; +} + + +/* ######## Steps and StepSpan ###### */ + +.charsheet input[type="number"].sheet-StepBig, +.sheet-StepBig { + font-size : 150%; + padding: 0; + margin-left: 0; + margin-right: -3px; + margin-bottom: -14px; + text-align: center; + width: 1.3em ; +} + +.charsheet span.sheet-stepSpan, +.sheet-stepSpan { + height: 26px; + padding-bottom: 2px ; + margin-left: 14px ; + margin-right: 19px ; + display: inline-block; + white-space: nowrap; +} + +.sheet-buffSmall { + transform: scale(0.8) ; /*JBF : transform instead of the font size adresses the spinners*/ +} + + +.charsheet input[type="number"].sheet-buffLeft, +.charsheet input[type="number"].sheet-buffRight { + vertical-align: top; + padding: 0px; + margin-top: 0px; + margin-bottom: 0px; +} + +.charsheet b.sheet-buffSignLeft, +.charsheet b.sheet-buffSignRight { + vertical-align: top; + padding: 0px; + margin-top: 0px; + margin-bottom: 0px; + width: 0.3em; + text-align: right; +} + + +.charsheet b.sheet-buffSignRight{ + margin-right: -2px; + margin-left: -1px; +} + +.charsheet input[type="number"].sheet-buffRight { + margin-left: -4px; + margin-right: -20px; + text-align: left; + width: 2.5em; +} + +.charsheet b.sheet-buffSignLeft { + margin-right: -15px; + margin-left: -2px; +} + +.charsheet input[type="number"].sheet-buffLeft { + text-align: right; + margin-left: 0px; + margin-right: -8px; + width: 1.8em; +} + +.sheet-buffRight::-webkit-inner-spin-button, +.sheet-buffRight::-webkit-outer-spin-button { + opacity: 0; +} + +.sheet-buffRight { + -moz-appearance: textfield; +} + +span:hover .sheet-buffRight::-webkit-inner-spin-button, +span:hover .sheet-buffRight::-webkit-outer-spin-button { + opacity:1; +} + +span:hover .sheet-buffRight{ + -moz-appearance: auto; +} + + +.sheet-testCloseChecked:checked+.sheet-InvisibleIfCloseChecked { + opacity: 0; +} + +.sheet-testCloseChecked:checked+.sheet-PartlyInvisibleIfCloseChecked { + color: transparent; +} + +.sheet-testCloseChecked:not(:checked)+.sheet-PartlyInvisibleIfNotCloseChecked { + color: transparent ; +} + +.sheet-redGreen ~ input, +.sheet-redGreen ~ b { + color: green; +} + + + +.sheet-redGreen[value^="-"] ~ input { + color: red; +} +.sheet-greenRed ~ input, +.sheet-greenRed ~ b { + color: red; +} +.sheet-greenRed[value^="-"] ~ input { + color: green; +} + + +.sheet-redGreen[value^="-"]~ b, +.sheet-greenRed[value^="-"]~ b, +.sheet-redGreen[value="0"] ~ input, +.sheet-greenRed[value="0"] ~ input, +.sheet-redGreen[value="0"] ~ b, +.sheet-greenRed[value="0"] ~ b { + color: transparent; +} + + +.sheet-testKarReq:not([value="0"]) ~ .sheet-Kar_0_3, +.sheet-testKarReq:not([value="0"]) ~ .sheet-Kar_0_2, +.sheet-testKarReq:not([value="1"]) ~ .sheet-Kar_1_2, +.sheet-testKarReq:not([value="1"]) ~ .sheet-Kar_1_3, +.sheet-testKarMax:not([value="2"]) ~ .sheet-Kar_1_2, +.sheet-testKarMax:not([value="2"]) ~ .sheet-Kar_0_2, +.sheet-testKarMax:not([value="3"]) ~ .sheet-Kar_1_3, +.sheet-testKarMax:not([value="3"]) ~ .sheet-Kar_0_3, +.sheet-testKarMax:not([value="0"],[value="1"],[value="2"],[value="3"]) ~ .sheet-Kar_lessthan3, +.sheet-testKarMax:not(:not([value="0"],[value="1"],[value="2"],[value="3"])) ~ .sheet-Kar_morethan3, +.sheet-testKarMax:not([value="4"]) ~ .sheet-Kar_4, +.sheet-testKarMax:not([value="5"]) ~ .sheet-Kar_5, +.sheet-testKarMax:not([value="6"]) ~ .sheet-Kar_6, +.sheet-testKarMax:not([value="7"]) ~ .sheet-Kar_7, +.sheet-testKarMax:not([value="8"]) ~ .sheet-Kar_8, +.sheet-testKarMax:not([value="9"]) ~ .sheet-Kar_9, +.sheet-testKarMax:not([value="10"]) ~ .sheet-Kar_10, +.sheet-testKarMax:not([value="11"]) ~ .sheet-Kar_11, +.sheet-testKarMax:not([value="12"]) ~ .sheet-Kar_12, +.sheet-testKarMax:not([value="13"]) ~ .sheet-Kar_13, +.sheet-testKarMax:not([value="14"]) ~ .sheet-Kar_14, +.sheet-testKarMax:not([value="15"]) ~ .sheet-Kar_15 { + display: none !important; +} + + + +/* ############################################# JBF Header Flex Containers ######################################################### */ + +.sheet-header-flex-container { + display: flex; + align-items: flex-start; + justify-content: flex-start; + flex-wrap: wrap; + overflow: hidden; +} + + +.sheet-header-box { + height: 75px; + border: 1px solid var(--outline-color); + border-radius: 10px; + display: flex; + align-items: center; + margin-right: 1px; + flex-flow: column; + opacity: 1; + overflow: hidden; + max-width: 280px; +} + +.sheet-header-modbox { + margin-top : 9px; + margin-bottom: 7px; + margin-left: 0px; + margin-right: 0px; +} + + +.sheet-header-flex-container:not(:hover) .sheet-testNum[value="0"]+.sheet-testNum[value="0"]+.sheet-header-hidden, +.sheet-header-flex-container:not(:hover) .sheet-testNum[value="0"]+.sheet-testNum[value="0"]+.sheet-testNum[value="0"]+.sheet-header-hidden { + height : 0px; + max-width: 0px; + overflow: hidden; + opacity: 0.5; + padding: 0px; + margin: 0px; + border: 1px solid transparent; +} + +.sheet-header-box, +.sheet-iconlabel-header, +.sheet-iconlabel-header-invert, +.sheet-iconlabelbig, +.sheet-header-hidden { + transition: height 0.5s, flex-grow 0.5s, min-width 0.5s, flex-basis 0.5s, width 0.5s, max-width 0.5s , margin 0.5s, padding 0.5s; + /* transition-delay: 1.5s; */ + overflow: hidden; +} + + + +.sheet-header-iconbox { + flex-grow: 1; /* it can grow */ + flex-shrink: 1; /* it can shrink */ + /* flex-basis: 30px; /* arbitrary depending on design */ */ + /* min-width: 30px; /* equal to flex-basis */ */ + /*max-width: 100%; JBF@JBF 210228 (100% - margins)/number of boxes */ + text-align: center; + transition: flex-grow, 0.5s; + transition: min-width 0.5s; + /* transition-delay: 1.5s; */ +} + +.sheet-header-flex-container:not(:hover) .sheet-header-iconbox { + /* flex-grow: 0.0000000001; /* it cant grow anymore... We want it to collapse */ */ + /* flex-basis: 30px; */ + /* width: auto; + min-width: 30px; */ + /* padding: 0px !important; */ + transition: flex-grow, 0.5s, min-width 0.5s; + /* transition-delay: 1.5s; */ +} + +.sheet-header-logo-Earthdawn { + background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Earthdawn-Logo.png); +/* background-image: url(https://s3.amazonaws.com/files.staging.d20.io/images/258659/43tgLdtfozFTvZrPGMv-uw/med.png?1539148273); */ +} +.sheet-header-logo-1879 { + background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/1879-Logo.png); +/* background-image: url(https://s3.amazonaws.com/files.d20.io/images/188531300/L18EvmQWIkcT_CKVGnPfqg/max.png?1609231596); */ +} + +.sheet-header-logo-Earthdawn, +.sheet-header-logo-1879 +{ + height: 76px; + background-repeat: no-repeat; + background-size: contain; + max-width: 200px; + width: calc(100% - 800px); /* Width of Logo =100%-2X where X = min-width of header-name*/ +} + +.sheet-testQuest:not([value="0"])~div .sheet-header-logo-1879, +.sheet-testQuest:not([value="0"])~div .sheet-header-logo-Earthdawn +{ + width: calc(100% - 1000px); /* If Questor, Logo needs to be smaller */ +} + +.sheet-testQuest:not([value="0"])~div .sheet-header-name { + min-width: min(500px, 25%); + width: calc(50% - 100px); +} + + +.sheet-header-name { + height: 70px; + border: 1px solid var(--outline-color); + border-radius: 10%; + min-width: min(400px, 25%); + width: calc(50% - 100px); + padding-top: 6px; + padding: 3px; + overflow: hidden; +} + + +/* ############################################ Colors and Margins ###################################################### */ + + +/* JBF 210103 To be identified */ +.ui-widget-content, +.charsheet { + position: absolute; + padding: 0 !important; + left: 0; + top: 46px; +} +/* JBF 210103 To be identified */ + + +.sheet-user-root { +/*Normal Background*/ +background-color: var( --bg-color ); + background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Border-left-nobottom.png),url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Border-right-nobottom.png),url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Border-left-nobottom3.png),url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Border-right-nobottom3.png); + background-repeat: no-repeat, no-repeat,no-repeat, no-repeat; + background-blend-mode: multiply, multiply,multiply, multiply; + background-position: -17px -15px,calc(100% + 23px) -10px,-17px 1356px,calc(100% + 23px) 1362px; + background-size : 250px 1372px, 250px 1372px,250px 1372px, 250px 1372px; + padding-left: 13px; + padding-right: 13px; + padding-top: 10px; + margin-top: 0px; + margin-left: 0px; + margin-right: 0px; +} + +.sheet-user-root-in { + margin-left: 0px; + margin-right: 0px; + min-width: 500px; /*JBF@JBF : to be reworked according to final layout*/ + border-left: 2px groove var( --outline-color ); + border-right: 2px groove var( --outline-color ); + border-bottom: 2px groove var( --outline-color ); + border-top: none; + background-color: var( --bg-color ); +} + + +.sheet-section { + background-color: var( --bg-color ); +} + +.sheet-content { + padding: 2px; +} + + +.sheet-bordered { + border : 1px solid var(--outline-color) !important; +} + +.sheet-bordered-bottom { + border-top: none !important; + border-left: none !important; + border-right: none !important; + border-bottom: 1px solid var(--outline-color) !important; +} + +.sheet-notbordered { + border: none !important; +} + +.sheet-header { + min-height: 30px; +} + + +.sheet-imgbox { + text-align: center; + align-items: center; + justify-content: center; + height: 50px; + width: 50px; + position: relative; +} + + +.sheet-imgbox::before { + text-align: center; + align-items: center; + justify-content: center; + content: ""; + position: absolute; + background-repeat: no-repeat; + background-size: 40px 40px; + background-position: top center; + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; + height: 50px; + width: 50px; + opacity: 0.2; + z-index: 1; +} + +.sheet-imgbox-content { + z-index: 99; + position: relative; +} + + +.sheet-imgbox-defense { + /*size of your image*/ + text-align: center; + align-items: center; + justify-content: center; + vertical-align: middle; + height: 43px; + width: 43px; + padding-left: 8px; + padding-bottom: 16px; + position: relative; +} + + +.sheet-imgbox-defense::before { + text-align: center; + align-items: center; + justify-content: center; + content: ""; + position: absolute; + background-repeat: no-repeat; + background-size: 45px 45px; + background-position: 50% 25%; + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; + height: 45px; + width: 45px; + opacity: 0.4; + z-index: 1; + padding-left: 8px; + padding-bottom: 20px; +} + + +.sheet-sec-border-line { + background-color: var( --bg-color ); + margin-left: -7px; + margin-right: -7px; +} + +.sheet-sec-border-line { + border-top: 2px double var( --outline-color ); + padding-top: 3px; +} + + +/*JBF@JBF to be identified, maybe dead code, and in any case shouldn't be static color*/ + +.sheet-heading { + background-color: var( --control-secondary ); + color: var( --header-font-color ); + font-family: 'Aladin', "Helvetica Neue", Helvetica, sans-serif; + font-weight: normal; + margin: 1px; +} + + +/* ############################################ Tables and cells #################################################### */ + +.sheet-table { + display: table; + width: 100%; +} + +.sheet-table-left { + display: table; + border-collapse: collapse; +} + +span.sheet-table-left, +.sheet-table-left .sheet-table-row span { + border-style: hidden; + border-width: 2px; + text-align: left; +} + +.sheet-table-name { + display: table-caption; + text-align: center; + font-weight: bold; + color: var( --header-font-color ); + background-color: var( --outline-color ); + width: 100%; +} + +.charsheet .sheet-headerbar, +.sheet-headerbar { + vertical-align: bottom; + justify-content: center; + align-items: center; + text-align : center; + color: var( --header-font-color ); + /* font-weight: bold; */ + background-color: var(--outline-color); + font-size: 14px; + /* font-family: Papyrus, fantasy; */ + font-family: 'Aladin', "Helvetica Neue", Helvetica, sans-serif; + font-weight: normal; + width: 100%; + /* margin: auto; *//* JBF@JBF 210105*/ + min-height: 21px; + display: flex; +} + +.charsheet .sheet-headerbar-flex, +.sheet-headerbar-flex { + vertical-align: bottom; + justify-content: space-between; +} + + +.sheet-creation-order { +color: yellow; +font-size: 16px; +/*text-shadow: 1px 1px white;*/ +} + +.sheet-table-header { + display: table-cell; + text-align: center; + font-style: italic; + font-weight: bold; + color: var( --header-font-color ); + vertical-align: middle; + background-color: var( --outline-color ); +} + +.sheet-table-row { + display: table-row; + vertical-align: middle; + width: 100%; +} + +.sheet-table-data { + display: table-cell; + vertical-align: middle; + text-align: center; /*JBF 20201124*/ + white-space: nowrap; +} + +hr { + border-color: black; + margin: 5px 0; +} + +.sheet-w15 { + display: table-cell; + vertical-align: middle; + text-align: left; + width: 15%; +} + +.sheet-w20 { + display: table-cell; + vertical-align: middle; + text-align: left; + width: 20%; +} +.sheet-w30 { + display: inline-block; + text-align: left; + width: 30%; +} + +.sheet-w100p { + width: 100%; +} + +/*JBF@JBF useful ???*/ +.sheet-w50 { + width: 100%; +} + + +.sheet-notes{ +width: 28%; +/* padding-left: 5px; +padding-right: 5px; */ +/* padding-bottom: 10px; */ +margin: 1%; +} + + +.sheet-flex-container { + display: flex; + align-items: flex-start; + justify-content: space-between; +} + +.sheet-flexwrap { + flex-wrap: wrap; +} + +.sheet-glossary { + /* display: flex; + align-items: flex-start; + flex-wrap: wrap; + flex-direction: column; + max-height: 150px; + height : auto; */ + display: inline-block; +} + + +.sheet-flex1 { + flex: 1; +} +/*JBF@CD -- This is a trial, but gives interesting results*/ + + +.sheet-floatRight.sheet-header-flex-container, +.sheet-floatRight.sheet-flex-container { + justify-content: flex-end; +} + +.sheet-flexCenter { + display: flex; + justify-content: center; + align-items: center; +} + +/ ############################################# Attribute Boxes ########################################################## */ + +.sheet-Attrib-container { + padding: 5px; + margin-top: 3px; + display: flex; + align-items: center; +} + +.sheet-Attrib-box { + border: 1px solid black; + border-radius: 10px; + text-align: center; + display: inline-block; + width: 130px; + margin-bottom: 3px; +} + +.sheet-Attrib-header { + display: flex; + justify-content: space-around; + align-items: flex-start; + vertical-align: top; + text-align: center; + background-color: var(--outline-color); +} + +.sheet-Defense-box { + border: 1px solid black; + border-radius: 10px; + display: flex; + margin: 3px; + align-items: center; + flex-flow: column; + width: 100px; + min-height: 80px; +} + +.sheet-Shield-box { + border: 1px solid black; + border-radius: 10px; + display: flex; + margin: 3px; + padding: 3px; + align-items: center; + flex-flow: column; +} + + + +.sheet-Attrib-rightbox { + text-align: center; + display: inline-block; +} + + +.charsheet input[type="number"].sheet-AttribValue, +.sheet-AttribValue { + background: var( --outline-color ); + border-style: none; + border-radius: 70%; + color: var( --header-font-color ); + font-weight: bold; + text-align: center; +} + +.sheet-AttribValueDiv { + margin-top: 8px; +} + + +.charsheet input[type="number"].sheet-AttribStep, +.sheet-AttribStep +{ + color: var( --highlight-font-color ); + text-shadow: 2px 2px var( --bg-color ); + font-weight:bold; + font-size: 250%; /* JBF was important */ + padding: 0; /* JBF was important */ + margin-top: 0; /* JBF was important */ + margin-bottom: 0; /* JBF was important */ + margin-left: 0; /* JBF was important */ + margin-right: -11px; /* JBF was important */ + text-align: center; /* JBF was important */ + width: 1.3em; /* JBF was important */ + font-weight: bold; + +} + +.charsheet span.sheet-AttribStepSpan, +.sheet-AttribStepSpan +{ + padding: 4px; /* JBF was important */ + +} + +/* ############################################ Formating and Length ###################################################### */ + +.sheet-fixed-width { + white-space: nowrap; + display: inline-block; +} + + +.charsheet .sheet-matrix.sheet-filter-box { + margin: 0px; + margin-bottom: 2px; + margin-right: 2px; + border-radius: 5px; + padding: 0px; + border: 1px solid black; +} + + + +.sheet-nowrap0 { + white-space: nowrap; + display: inline-block; /*JBF@CD Trial for alignment*/ + vertical-align: middle; +} + +.sheet-nowrap, +.sheet-nowrap1 { + white-space: nowrap; + padding-right: 1em; +} + +.sheet-nowrap2 { + white-space: nowrap; + padding-right: 2em; +} + +.sheet-nowrap3 { + white-space: nowrap; + padding-right: 3em; +} + +.sheet-nowrap5 { + white-space: nowrap; + padding-right: 5em; +} + +.sheet-w7 { + display: inline-block; + min-width: 7em; + padding-right: 0em; +} + +/*JBF */ +.sheet-numShorter { width: 2em !important } +.sheet-numShort { width: 3em !important } +.sheet-numLong { width: 4em !important } +.sheet-selShort { width: 5em !important } +.sheet-selLong { width: 6em !important } +.sheet-txtShort { width: 8em !important } +.sheet-txtMed { width: 9em !important } +.sheet-txtMedplus { width: 11.5em !important } +.sheet-txtLong { width: 16em !important } +.sheet-txtLonger { width: 20em !important } +.sheet-txtEvenLonger { width: 27em !important } + + +.sheet-titlespan { + margin-left: 0px; + margin-right: 0px; + text-align: center; + vertical-align: middle; +} + + +.charsheet .sheet-w25px { width: 25px; } +.charsheet .sheet-w30px { width: 30px; } +.charsheet .sheet-w50px { width: 50px; } +.charsheet .sheet-w75px { width: 75px; } +.charsheet .sheet-w100px { width: 100px; } + +.charsheet .sheet-Big { font-size: 150%;} + +.charsheet input[type="number"].sheet-Bigger, + .sheet-Bigger { + font-size: 200%; + width: 2em; + text-align: center ; +} +.sheet-small { transform: scale(0.8); /*better results ?*/} + +.charsheet input[type="number"].sheet-numHighlight, +.sheet-numHighlight { + color: var( --highlight-font-color ); + text-shadow: 2px 2px var( --bg-color ); + font-weight: bold; +} + + +.sheet-vaBottom { + vertical-align: bottom; +} + +.sheet-middle { + display: inline-block; + padding-top: 6px; +} + +.sheet-minWidth3 { + min-width: 3em; +} + + + + +/* ############################################ Variable length text boxes ########################################################## */ +/* The next few blocks are for variable length text boxes that expand as needed. sheet-label-under2 is a tall box and has labels under the text input. +The form of the html is a label or span wrapper, an input box, an span that has the invisible auto-expanding field, and an optional span that has the label. + + +To have a label in front of the expanding field, use something like this. + +*/ + +/* This is the tag that wraps the entire thing. It can be a label or a span */ +.charsheet .sheet-autoexpand-wrap { + display: inline-block; + position: relative; + width: auto; + min-width: 2em; + max-width: 50em; + margin-right: 1em; + white-space: nowrap; +} + +.charsheet .sheet-autoexpand-min4 { + min-width: 4em; + width: auto; +} + +.charsheet .sheet-autoexpand-min { + min-width: 14em; + width: auto; +} + + + +.charsheet .sheet-autoexpand-wrap:not(.sheet-label-under2) { + height: 2em; + vertical-align: middle; +} + +.charsheet .sheet-label-under:not(button), +.charsheet .sheet-label-under2 { + display: inline-block; + height: 2.75em; + vertical-align: top; +} + +/* This is the input statement that is visible. */ +.charsheet .sheet-autoexpand-wrap input { + display: block; + overflow: hidden; + width: 100%; + position: absolute; + white-space: normal; +} + +/* This is the invisible copy of the input. This css changes this invisible fields size to the length of the text in the input. The outer wrapper then changes size to match this fields length. */ +.charsheet .sheet-autoexpand-wrap span.sheet-autoexpand { + visibility: hidden; + width: 100%; + white-space: pre; /* pre-wrap; for textarea which I never got working but "pre" should also work for spans */ + word-wrap: break-word; + overflow-wrap: break-word; + overflow: hidden; + font-weight: bold; + padding-right: 2em; /* We want the text box very slightly bigger than the text. JBF@CD was 0.7 em*/ + /* also here make sure the font size is the same or slightly bigger than the input font size */ +} + +/* This is the span that holds the label that we want small at the bottom. */ +.charsheet .sheet-label-under2 span:not(.sheet-autoexpand) { + display: block; + position: relative; /*JBF@CD Changed from absolute 0 to relative -10px*/ + bottom: -13px; + line-height: .75em; + font-size: 85%; + padding-left: .25em; +} + +/* When we have the label under the field, we don't want the label to ever be longer than the field */ +.charsheet .sheet-label-under, +.charsheet .sheet-label-under2 { + overflow: hidden; +} + +.charsheet .sheet-label-under2 span, +.charsheet .sheet-label-under span, +.charsheet .sheet-label-under-select span { + line-height: 10px; + display: block; + /* font-weight: lighter; */ + font-size: 85%; + padding-left: .25em; +} + + + + + +/* ########################################### Filterboxes ####################################################### +# Filterboxes are basically repitems. Except that Filterboxes have been formated to allow certain items to be hidden +# if they don't match the requirements to be displayed. +*/ + +.charsheet .repcontainer .repitem, /* A filterbox should look exactly like a repitem. */ +.sheet-filter-box { + padding: 0px; + margin: 0px; + border: none; + border-radius: 0px; +} + + + +fieldset.repeating_spell+.repcontainer>.repitem, /* A repitem within a spell list should functionally not exist, it's place is taken by a filterbox. */ +fieldset+.repcontainer .repitem, +fieldset+.repcontainer .repitem .sheet-filter-box { + vertical-align: top; +} + +.sheet-filterSpellEffect~.repcontrol, +.sheet-testRepEditMode:not(:checked)~.repcontrol, /*hide buttons in not Edit Mode*/ +.sheet-filter-box { /* By default, display no items of a filter box */ + display: none; +} + +fieldset.sheet-filterSpellEffect+.repcontainer { + display: inline-block; +} + +.repcontainer .repitem { + overflow: hidden; +} + +fieldset+.repcontainer .repitem { + display: block; +} + +fieldset.repeating_talents+.repcontainer .repitem, /*fieldset that we want to wrap have to be specified manually*/ +fieldset.repeating_skills+.repcontainer .repitem, +fieldset.repeating_knacks+.repcontainer .repitem, +fieldset.repeating_matrix+.repcontainer .repitem, +fieldset.repeating_personality+.repcontainer .repitem, +fieldset.repeating_maneuvers+.repcontainer .repitem, +fieldset.repeating_weapons+.repcontainer .repitem { + display: inline-block; + /* padding:5px; */ +} +/* +fieldset+.repcontainer>.repitem:nth-child(2n+2){ + background:lightgrey; +} */ + +/* fieldset+.repcontainer{ + column-width:auto; +} */ + +/* Decide which specific repitems to display. */ +input.sheet-tabGrim[value="0"]~.sheet-filter-box, /* Always display all spells of circle zero, since they have just been added and have not been assigned a circle yet. */ +.sheet-tabGrim[value="0"]~fieldset.repeating_spell+.repcontainer>.repitem .sheet-filter-box, /* When tab0 is checked, display everything no matter what which of the inner boxes are checked. */ +.sheet-tabGrim~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab0:checked~.sheet-filter-box, /*always display the Circle 0 spells*/ +.sheet-tabGrim[value="1"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab1:checked~.sheet-filter-box, +.sheet-tabGrim[value="2"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab2:checked~.sheet-filter-box, +.sheet-tabGrim[value="3"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab3:checked~.sheet-filter-box, +.sheet-tabGrim[value="4"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab4:checked~.sheet-filter-box, +.sheet-tabGrim[value="5"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab5:checked~.sheet-filter-box, +.sheet-tabGrim[value="6"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab6:checked~.sheet-filter-box, +.sheet-tabGrim[value="7"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab7:checked~.sheet-filter-box, +.sheet-tabGrim[value="8"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab8:checked~.sheet-filter-box, +.sheet-tabGrim[value="9"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab9:checked~.sheet-filter-box, +.sheet-tabGrim[value="10"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab10:checked~.sheet-filter-box, +.sheet-tabGrim[value="11"]~fieldset.repeating_spell+.repcontainer>.repitem input.sheet-grim-tab11:not(:checked)~.sheet-filter-box, +/* fieldset.sheet-filtershortlist+.repcontainer>.repitem input.sheet-combattab:checked~.sheet-filter-box, */ +input.sheet-tabMain[value="1"]~div .sheet-section-core fieldset+.repcontainer>.repitem input.sheet-combattab~.sheet-filter-box, +input.sheet-tabMain[value="2"]~div .sheet-section-combat fieldset+.repcontainer>.repitem input.sheet-combattab:checked~.sheet-filter-box, +input.sheet-tabMain[value="3"]~div fieldset+.repcontainer>.repitem input.sheet-combattab~.sheet-filter-box, +input.sheet-tabMain[value="4"]~div fieldset+.repcontainer>.repitem input.sheet-combattab~.sheet-filter-box, +input.sheet-tabMain[value="5"]~div fieldset+.repcontainer>.repitem input.sheet-combattab~.sheet-filter-box, +input.sheet-tabMain[value="6"]~div fieldset+.repcontainer>.repitem input.sheet-combattab~.sheet-filter-box, +.sheet-section-spells fieldset:not(.sheet-filterSpellEffect)+.repcontainer>.repitem input.sheet-spelltab[value^="SPL-"]~.sheet-filter-box, +input.sheet-testSpellEffect[value="Wil"]~fieldset.sheet-filterSpellEffect+.repcontainer>.repitem input.sheet-spelltab[value="SPL-Willforce"]~.sheet-filter-box { + display: inline-block; + border: none; /*JBF*/ +} +/*JBF@JBF@CD : For Skills, Knacks and Talents, in overview, everything is displayed, and in Combat, only the checked ones)*/ + +/*JBF@JBF@CD : Do not display the spellcasting Talent twice, i.e. shown only in spell section... except in creation mode*/ +.sheet-testCreation:not([value="1"])~input.sheet-tabMain[value="1"]~div .sheet-section-core~div fieldset+.repcontainer>.repitem input.sheet-spelltab[value^="SPL-"]+input.sheet-combattab~.sheet-filter-box, +input.sheet-tabMain[value="2"]~div .sheet-section-combat~div fieldset+.repcontainer>.repitem input.sheet-spelltab[value^="SPL-"]+input.sheet-combattab:checked~.sheet-filter-box { + display: none; +} + + + /* ############################################ Tabs ################################################################### */ + + div[class^="sheet-section"] { /* Every class that starts with "sheet-section" starts out hidden */ + visibility: hidden; + opacity: 0; + max-height: 0; + overflow: hidden; + max-width: 0; + padding: 0; +} + +.sheet-tabMain.sheet-tab1 { + margin-left: 10px; +} + +input.sheet-tabMain, +input.sheet-tabSpell, +input.sheet-tabGrim, +input.sheet-tabAdjust { + width: 70px; + height: 20px; + cursor: pointer; + position: relative; + opacity: 0; + z-index: 9999; + vertical-align: middle; + margin-right: 3px; +} + +input.sheet-tabMain { + margin-right: 4px; +} + +.sheet-tabMain::before, +.sheet-tabSpell::before, +.sheet-tabGrim::before, +.sheet-tabAdjust::before { + content: attr(title); + text-align: center; + display: inline-block; + width: 100%; + height: 100%; + background-color: var( --outline-color ); + color: var( --header-font-color ); + font-weight: bold; +} + +input.sheet-tabMain+span, +input.sheet-tabSpell+span, +input.sheet-tabGrim+span, +input.sheet-tabAdjust+span, +.sheet-tabSpan { + text-align: center; + display: inline-block; + font-size: 13px; + background-color: var( --inactive-color ); + color: var( --header-font-color ); + font-weight: bold; + width: 70px; + height: 20px; + border-radius: 10px 10px 0 0; + cursor: pointer; + position: relative; + margin-left: -75px; +} + +input.sheet-tabshort { + width: 40px; +} + +input.sheet-tabshort+span{ +width: 40px; +margin-left: -45px; +} + +.sheet-tabSpell, +.sheet-tabAdjust { + width: 80px; +} + +.sheet-tabSpell+span, +.sheet-tabAdjust+span { + width: 80px; + margin-left: -85px; +} + +.sheet-sec-spacer { /* When have two tabs right under each other, space them by this much. */ + height: 3px; +} + +/* Make the selected section visible */ +input.sheet-tabMain[value="1"]~div .sheet-section-core, +input.sheet-tabMain[value="2"]~div .sheet-section-combat, +input.sheet-tabMain[value="3"]~div .sheet-section-talents, +input.sheet-tabMain[value="4"]~div .sheet-section-knacks, +input.sheet-tabMain[value="5"]~div .sheet-section-skills, +input.sheet-tabMain[value="6"]~div .sheet-section-spells, +input.sheet-tabMain[value="7"]~div .sheet-section-equipment, +input.sheet-tabMain[value="8"]~div .sheet-section-gear, +input.sheet-tabMain[value="9"]~div .sheet-section-notes, +input.sheet-tabMain[value="10"]~div .sheet-section-record, +input.sheet-tabMain[value="11"]~div .sheet-section-adjustments, +input.sheet-tabSpell[value="1"]~.sheet-section-spells-talents, +input.sheet-tabSpell[value="2"]~.sheet-section-spells-matrices, +input.sheet-tabMain[value="1"]~div .sheet-section-spells-matrices, +input.sheet-tabMain[value="2"]~div .sheet-section-spells-matrices, +input.sheet-tabMain:not([value="2"]):not([value="1"])~div input.sheet-tabSpell[value="3"]~.sheet-section-spells-grimoire, +input.sheet-tabAdjust[value="1"]~.sheet-section-adjustments-common, +input.sheet-tabAdjust[value="2"]~.sheet-section-adjustments-maneuvers, +input.sheet-tabAdjust[value="3"]~.sheet-section-adjustments-advanced, +input.sheet-tabAdjust[value="4"]~.sheet-section-adjustments-release , +input.sheet-tabAdjust[value="5"]~.sheet-section-adjustments-help { + max-height: 999999px; + max-width: 999999px; + visibility: visible; + opacity: 1; + transition: opacity 0.5s linear 0s; + overflow: hidden; +} + + +input.sheet-tabMain[value="1"] ~ .sheet-show-leftpane-tab1:not([value="1"])~div .sheet-leftpane, +input.sheet-tabMain[value="2"] ~ .sheet-show-leftpane-tab2:not([value="1"])~div .sheet-leftpane, +input.sheet-tabMain[value="3"] ~ .sheet-show-leftpane-tab3:not([value="1"])~div .sheet-leftpane, +input.sheet-tabMain[value="4"] ~ .sheet-show-leftpane-tab4:not([value="1"])~div .sheet-leftpane, +input.sheet-tabMain[value="5"] ~ .sheet-show-leftpane-tab5:not([value="1"])~div .sheet-leftpane, +input.sheet-tabMain[value="6"] ~ .sheet-show-leftpane-tab6:not([value="1"])~div .sheet-leftpane, +input.sheet-tabMain[value="7"] ~ .sheet-show-leftpane-tab7:not([value="1"])~div .sheet-leftpane, +input.sheet-tabMain[value="8"] ~ .sheet-show-leftpane-tab8:not([value="1"])~div .sheet-leftpane, +input.sheet-tabMain[value="9"] ~ .sheet-show-leftpane-tab9:not([value="1"])~div .sheet-leftpane, +input.sheet-tabMain[value="10"] ~ .sheet-show-leftpane-tab10:not([value="1"])~div .sheet-leftpane, +input.sheet-tabMain[value="11"] ~ .sheet-show-leftpane-tab11:not([value="1"])~div .sheet-leftpane, +input.sheet-tabMain[value="1"] ~ .sheet-show-middlepane-tab1:not([value="1"])~div .sheet-middlepane, +input.sheet-tabMain[value="2"] ~ .sheet-show-middlepane-tab2:not([value="1"])~div .sheet-middlepane, +input.sheet-tabMain[value="3"] ~ .sheet-show-middlepane-tab3:not([value="1"])~div .sheet-middlepane, +input.sheet-tabMain[value="4"] ~ .sheet-show-middlepane-tab4:not([value="1"])~div .sheet-middlepane, +input.sheet-tabMain[value="5"] ~ .sheet-show-middlepane-tab5:not([value="1"])~div .sheet-middlepane, +input.sheet-tabMain[value="6"] ~ .sheet-show-middlepane-tab6:not([value="1"])~div .sheet-middlepane, +input.sheet-tabMain[value="7"] ~ .sheet-show-middlepane-tab7:not([value="1"])~div .sheet-middlepane, +input.sheet-tabMain[value="8"] ~ .sheet-show-middlepane-tab8:not([value="1"])~div .sheet-middlepane, +input.sheet-tabMain[value="9"] ~ .sheet-show-middlepane-tab9:not([value="1"])~div .sheet-middlepane, +input.sheet-tabMain[value="10"] ~ .sheet-show-middlepane-tab10:not([value="1"])~div .sheet-middlepane, +input.sheet-tabMain[value="11"] ~ .sheet-show-middlepane-tab11:not([value="1"])~div .sheet-middlepane, +input.sheet-tabMain[value="1"] ~ .sheet-show-rightpane-tab1:not([value="1"])~div .sheet-rightpane, +input.sheet-tabMain[value="2"] ~ .sheet-show-rightpane-tab2:not([value="1"])~div .sheet-rightpane, +input.sheet-tabMain[value="3"] ~ .sheet-show-rightpane-tab3:not([value="1"])~div .sheet-rightpane, +input.sheet-tabMain[value="4"] ~ .sheet-show-rightpane-tab4:not([value="1"])~div .sheet-rightpane, +input.sheet-tabMain[value="5"] ~ .sheet-show-rightpane-tab5:not([value="1"])~div .sheet-rightpane, +input.sheet-tabMain[value="6"] ~ .sheet-show-rightpane-tab6:not([value="1"])~div .sheet-rightpane, +input.sheet-tabMain[value="7"] ~ .sheet-show-rightpane-tab7:not([value="1"])~div .sheet-rightpane, +input.sheet-tabMain[value="8"] ~ .sheet-show-rightpane-tab8:not([value="1"])~div .sheet-rightpane, +input.sheet-tabMain[value="9"] ~ .sheet-show-rightpane-tab9:not([value="1"])~div .sheet-rightpane, +input.sheet-tabMain[value="10"] ~ .sheet-show-rightpane-tab10:not([value="1"])~div .sheet-rightpane, +input.sheet-tabMain[value="11"] ~ .sheet-show-rightpane-tab11:not([value="1"])~div .sheet-rightpane { + display:none; +} + + +.sheet-tabMain[value="1"]~div .sheet-testRepEditMode:not(:checked) ~ .repcontainer .sheet-HideIfOverviewNoEdit, +.sheet-testCreation:not([value="1"])~.sheet-tabMain[value="1"]~div .sheet-HideIfOverviewNoCreation, +.sheet-tabMain[value="1"]~div .sheet-testRepEditMode:not(:checked) ~ .sheet-HideIfOverviewNoEdit, +.sheet-tabMain[value="1"]~div .sheet-testRepEditMode:not(:checked)~div .sheet-HideIfOverviewNoEdit, +.sheet-tabMain[value="1"]~div .sheet-HideIfOverview, +.sheet-tabMain:not([value="1"])~div .sheet-HideIfNotOverview, +.sheet-tabMain[value="2"]~div .sheet-testRepEditMode:not(:checked) ~ .repcontainer .sheet-HideIfCombatNoEdit, +.sheet-tabMain[value="2"]~div .sheet-testRepEditMode:not(:checked) ~ .sheet-HideIfCombatNoEdit, +.sheet-tabMain[value="2"]~div .sheet-testRepEditMode:not(:checked) ~ div>.sheet-HideIfCombatNoEdit, +.sheet-tabMain[value="2"]~div .sheet-HideIfCombat, +.sheet-tabMain:not([value="2"])~div .sheet-HideIfNotCombat { + display: none; +/* border: 1px yellow solid; */ +} + + +/* Highlight the selected tab */ +input.sheet-tabMain:checked + span, +input.sheet-tabSpell:checked + span, +input.sheet-tabGrim:checked + span, +input.sheet-tabAdjust:checked + span, +input.sheet-tabMain:checked + .sheet-testCloseChecked + .sheet-HideIfCloseChecked, +input.sheet-tabMain:checked + .sheet-testCloseChecked + .sheet-HideIfCloseChecked + .sheet-HideIfNotCloseChecked { + background-color: var( --outline-color ); + color: var( --header-font-color ); + border: 1px solid black; +} + +/* ############################################ JBF Icons and images ################################################### */ + +.sheet-icon-damage-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Damage-background.png);} /*License Information*/ +.sheet-icon-devotion-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Devotion.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/angel-outfit.html#download*/ +.sheet-icon-initiative-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Initiative.png); } /*License Information*/ +.sheet-icon-interdiction-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Interdiction.png); } /*License Information*/ +.sheet-icon-karma-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Karma.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/entangled-typhoon.html*/ +.sheet-icon-MA-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/MA.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-MD-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/MD.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-PA-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/PA.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/chest-armor.html#download*/ +.sheet-icon-PD-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/PD.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/swords-emblem.html*/ +.sheet-icon-recovery-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Recovery.png); } /*Creative Commons :https://game-icons.net/1x1/delapouite/caduceus.html#download*/ +.sheet-icon-SD-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/SD.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-stun-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Stun.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-wounds-background::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Wounds-background.png);} /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ + + +.sheet-icon-action { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Action.png); } /*License Information*/ +.sheet-icon-action-free { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Action-Free.png); } /*Creative Commons : https://game-icons.net/1x1/lorc/fist.html#download*/ +.sheet-icon-action-simple { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Action-Simple.png); } /*Creative Commons : https://game-icons.net/1x1/lorc/fist.html#download*/ +.sheet-icon-action-standard { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Action-Standard.png); } /*Creative Commons : https://game-icons.net/1x1/lorc/fist.html#download*/ +.sheet-icon-action-sustained { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Action-Sustained.png); } /*Creative Commons : https://game-icons.net/1x1/lorc/fist.html#download*/ +.sheet-icon-action-white { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Action-white.png); } /*License Information*/ +.sheet-icon-action-na { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Action-NA.png); } /* https://findicons.com/files/icons/2610/flat_weather_icons/128/na.png */ +.sheet-icon-agressive { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Agressive.png); } /*Creative Commons : https://game-icons.net/1x1/lorc/fist.html#download*/ +.sheet-icon-ambush { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Ambush.png); } /*Creative Commons : https://game-icons.net/1x1/lorc/fist.html#download*/ +.sheet-icon-armor { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Armor.png); } /*Creative Commons : https://game-icons.net/1x1/lorc/fist.html#download*/ +.sheet-icon-ask { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Ask.png); } /*License Information*/ +.sheet-icon-attacks { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Attacks.png); } /*Creative Commons: https://game-icons.net/1x1/sbed/falling.html#download*/ +.sheet-icon-attacks-cc { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Attacks-cc.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/blade-drag.html#download*/ +.sheet-icon-blindsided { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Blindsided.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/backstab.html#download*/ +.sheet-icon-blindsiding { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Blindsiding.png); } /*Creative Commons: https://game-icons.net/1x1/darkzaitzev/hooded-assassin.html#download*/ +.sheet-icon-calledshot { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/CalledShot.png); } /*Creative Commons: https://game-icons.net/1x1/darkzaitzev/hooded-assassin.html#download*/ +.sheet-icon-charging { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Charging.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/rhinoceros-horn.html#download*/ +.sheet-icon-coin { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Coin.png); } /*Creative Commons: https://game-icons.net/1x1/darkzaitzev/hooded-assassin.html#download*/ +.sheet-icon-coin-copper { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Coin-Copper.png); } /*Creative Commons: https://game-icons.net/1x1/darkzaitzev/hooded-assassin.html#download*/ +.sheet-icon-coin-silver { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Coin-Silver.png); } /*Creative Commons: https://game-icons.net/1x1/darkzaitzev/hooded-assassin.html#download*/ +.sheet-icon-coin-gold { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Coin-Gold.png); } /*Creative Commons: https://game-icons.net/1x1/darkzaitzev/hooded-assassin.html#download*/ +.sheet-icon-cover { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Cover.png); } /*Creative Commons: https://game-icons.net/1x1/heavenly-dog/defensive-wall.html#download*/ +.sheet-icon-cover99 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Cover-99.png); } /*Creative Commons: https://game-icons.net/1x1/heavenly-dog/defensive-wall.html#download*/ +.sheet-icon-damage-cc { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Damage-cc.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/dripping-knife.html#download*/ +.sheet-icon-damage { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Damage.png); } /*Creative Commons: https://game-icons.net/1x1/sbed/falling.html#download*/ +.sheet-icon-death { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Death.png); } /*Creative Commons :https://game-icons.net/1x1/heavenly-dog/defensive-wall.html#download*/ +.sheet-icon-defenses { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Defenses.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/shield-echoes.html#download*/ +.sheet-icon-defenses-white { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Defenses-White.png); } /*Creative Commons :https://game-icons.net/1x1/heavenly-dog/defensive-wall.html#download*/ +.sheet-icon-defensive { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Defensive.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/arrows-shield.html#download*/ +.sheet-icon-defensive-exc { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Defensive-exc.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/arrows-shield.html#download*/ +.sheet-icon-devotion { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Devotion.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/angel-outfit.html#download*/ +.sheet-icon-devotion-on { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Devotion-On.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/angel-outfit.html#download*/ +.sheet-icon-devotion-ask { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Devotion-Ask.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/angel-outfit.html#download*/ +.sheet-icon-devotion2 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Devotion2.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/angel-outfit.html#download*/ +.sheet-icon-devotion3 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Devotion3.png); } /*Creative Commons :https://game-icons.net/1x1/lorc/angel-outfit.html#download*/ +.sheet-icon-dice { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Dice.png); } /* https://static.thenounproject.com/png/1279708-200.png */ +.sheet-icon-edit { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Edit.png); } /*License Information*/ +.sheet-icon-edit-white { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Edit-White.png); } /*License Information*/ +.sheet-icon-effect { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Effect.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/star-swirl.html#download*/ +.sheet-icon-effect-white { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Effect-white.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/star-swirl.html#download*/ +.sheet-icon-entangled { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Entangled.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/fishing-net.html*/ +.sheet-icon-flying { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Flying.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/fishing-net.html*/ +.sheet-background-frame1 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame1.jpg); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-background-frame2 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame2.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-background-frame3 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame3.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-background-frame4 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame4.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-background-frame5 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame5.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-background-frame6 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame6.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-background-frame7 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame7.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-background-frame8 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame8.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-background-frame9 { background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame9.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-grimoire { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Grimoire.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/fishing-net.html*/ +.sheet-icon-harried { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Harried.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/screaming.html#download*/ +.sheet-icon-harried3 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Harried3.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/screaming.html#download*/ +.sheet-icon-harried4 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Harried4.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/screaming.html#download*/ +.sheet-icon-harried5 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Harried5.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/screaming.html#download*/ +.sheet-icon-impaired { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Impaired.png); } /*Creative Commons: https://game-icons.net/1x1/sbed/falling.html#download*/ +.sheet-icon-impaired4 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Impaired4.png); } /*Creative Commons: https://game-icons.net/1x1/sbed/falling.html#download*/ +.sheet-icon-initiative { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Initiative.png); } /*License Information*/ +.sheet-icon-initiative-noarmor { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Initiative-NoArmor.png);}/*https://static.thenounproject.com/png/539377-200.png */ +.sheet-icon-interdiction { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Interdiction.png); } /*License Information*/ +.sheet-icon-inventory { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Inventory.png); } /*License Information*/ +.sheet-icon-jumpup { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/JumpUp.png); } /*License Information*/ +.sheet-icon-karma { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Karma.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/entangled-typhoon.html*/ +.sheet-icon-karma2 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Karma2.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/entangled-typhoon.html*/ +.sheet-icon-karma3 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Karma3.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/entangled-typhoon.html*/ +.sheet-icon-karma-ask { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Karma-Ask.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/entangled-typhoon.html*/ +.sheet-icon-karma-on { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Karma-On.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/entangled-typhoon.html*/ +.sheet-icon-kit { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Kit.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/entangled-typhoon.html*/ +.sheet-icon-knockeddown { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Knockdown.png); } /*Creative Commons: https://game-icons.net/1x1/sbed/falling.html#download*/ +.sheet-icon-leftpane { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/LeftPane-White.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-link { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Link.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-link-out { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Link-out.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-link-in { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Link-in.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-link-in-out { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Link-In-Out.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-MA { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/MA.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-maneuver-creature { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Maneuver-Creature.png);} /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-maneuver-opponent { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Maneuver-Opponent.png);} /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-maneuver-show { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Maneuver-Show.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-matrix { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Matrix.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-matrix-attune { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Matrix-Attune.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-matrix-enhanced { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Matrix-Enhanced.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-matrix-armored { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Matrix-Armored.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-matrix-shared { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Matrix-Shared.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-MD { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/MD.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-move-based { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Move-Based.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-naked { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Naked.png); } /*https://game-icons.net/1x1/delapouite/chat-bubble.html#download*/ +.sheet-icon-naked-white { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Naked-white.png); } /*https://game-icons.net/1x1/delapouite/chat-bubble.html#download*/ +.sheet-icon-newday { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/NewDay.png); } /*https://game-icons.net/1x1/delapouite/chat-bubble.html#download*/ +.sheet-icon-notes { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Notes.png); } /*https://game-icons.net/1x1/delapouite/chat-bubble.html#download*/ +.sheet-icon-noshield { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/NoShield.png); } /*https://game-icons.net/1x1/skoll/shield-disabled.html#downloadd*/ +.sheet-icon-PA { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/PA.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/chest-armor.html#download*/ +.sheet-icon-parameter { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Parameter.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-parameter-white { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Parameter-white.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-partialcover { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/PartialCover.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-PD { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/PD.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/swords-emblem.html*/ +.sheet-icon-poisoned { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Poisoned.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-potion { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Potion.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-rangelong { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/RangeLong.png); } /*Creative Commons: https://game-icons.net/1x1/sbed/falling.html#download*/ +.sheet-icon-ration { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Ration.png); } /*Creative Commons: https://game-icons.net/1x1/sbed/falling.html#download*/ +.sheet-icon-recovery { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Recovery.png); } /*Creative Commons :https://game-icons.net/1x1/delapouite/caduceus.html#download*/ +.sheet-icon-reserved { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Reserved.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-resistance { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Resistance.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-rolltype-ask { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Rolltype-ask.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-rolltype-public { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Rolltype-Public.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-rolltype-PGM { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Rolltype-PGM.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-rolltype-GM { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Rolltype-GM.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-SD { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/SD.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-shield { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Shield.png); } /*Creative Commons : https://game-icons.net/1x1/lorc/fist.html#download*/ +.sheet-icon-split { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Split.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-stealthy { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Stealthy.png); } /*Creative Commons: https://game-icons.net/1x1/lorc/bolt-shield.html#download*/ +.sheet-icon-strain { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Strain.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-strain1 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Strain1.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-strain2 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Strain2.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-strain3 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Strain3.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-stun { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Stun.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-stun-white { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Stun-white.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-sum { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Sum.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-surprised { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Surprised.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-tail { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Tail.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-tips-edit { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Tips-Edit.gif); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-tips-mods { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Tips-Mods.gif); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-tips-tooltip { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Tips-Tooltip.gif); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-tknactn { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/TknActn.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-TN { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/TN.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-vision { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Vision.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-vision4 { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Vision4.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-vision-based { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Vision-Based.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-weapon { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Weapon.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-wealth { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Wealth.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-weave { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Weave.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-weave-extra { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Weave.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ +.sheet-icon-willforce { content: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Willforce.png); } /*Creative Commons: https://game-icons.net/1x1/delapouite/knocked-out-stars.html#download*/ + +/* Elsewhere in this file there are url's describing Strain.png, Frame20.png, + and two logo's that are stored on on amazon servers instead of github. + a few hundred lines down also find .sheet-rolltemplate-icon-ask and about 15 other definitions, but they all use icons already defined above. +*/ + +.sheet-frame { + background-size: 100% 100%; + /* Temporarly disabled to work on the color palette */ + /* background-size: 0% 0%; */ +} + + + + + +.sheet-frameBig { + /* background-size: 110% 110%; Temporarly disabled to work on the color palette*/ + background-size: 0% 0%; +} + +.sheet-iconlabel-white.sheet-iconpaddedright, +.sheet-iconlabel-header.sheet-iconpaddedright, +.sheet-iconpaddedright { + padding-right: 3px ; /* JBF was important*/ + margin-left: -3px ; /* JBF was important*/ + padding-top: 0px ; /* JBF was important*/ + padding-bottom: 0px ; /* JBF was important*/ + border: 1px solid transparent; + vertical-align: middle; +} +.sheet-iconlabel-white.sheet-iconpaddedleft, +.sheet-iconlabel-header.sheet-iconpaddedleft, +.sheet-iconpaddedleft { + padding-left: 3px ; /* JBF was important*/ + margin-right: -3px ; /* JBF was important*/ + padding-top: 0px ; /* JBF was important*/ + padding-bottom: 0px ; /* JBF was important*/ + vertical-align: middle; +} + +.sheet-undernumber { + padding-top: 0px; + margin-top: -4px; +} + + +.sheet-Karma-ControlBox { + white-space: nowrap; + display: inline-block; + width: 30px; + text-align: center; + vertical-align: middle; + padding: 0; + margin: 1px; +} + +/* ############################################ JBF : Icon checkboxes Management #################################### */ +.charsheet input.sheet-iconcheckbox { + display:none; +} + +.sheet-iconlabel-header-invert, +.sheet-iconlabel-invert, +.sheet-iconlabel-header, +.sheet-iconlabel { + display: inline-block; + padding: 1px; + height: 20px; + width: 20px; + margin: 0px; + vertical-align: middle; + border-radius: 5px; + opacity: 0.7; + border: 1px solid transparent; + background-color: var( --icon-color); +} + + +.sheet-iconlabel-white { + display: inline-block; + padding: 2px; + opacity: 0.5; + height: 20px; + width: 20px; + margin: 0px; + border: 1px solid transparent; + vertical-align: middle; +} + +.sheet-iconlabelsmall { + display: inline-block; + vertical-align: middle; + padding: 0px; + opacity: 0.7; + width: 15px; + margin: 0px; + border: 1px solid transparent; +} + +.sheet-iconlabelCC { + display: inline-block; + vertical-align: middle; + padding: 0px; + opacity: 1; + width: 20px; + margin: 0px; + border: 1px solid transparent; + background-color: var( --icon-color); +} + +.sheet-iconlabelbig { + display: inline-block; + vertical-align: middle; + padding: 1px; + opacity: 1; + width: 30px; + margin: 0px; + border: 1px solid transparent; + background-color: var( --icon-color); +} + +.sheet-iconstatic { + width: 20px; + text-align: center; + vertical-align: middle; + padding: 0px; + margin: 0px; +} + +.sheet-iconstaticsmall { + width: 15px; + text-align: center; + vertical-align: middle; + padding: 0px; + margin: 0px; +} + +.sheet-iconstaticBig { + width: 30px; + text-align: center; + vertical-align: middle; + padding: 0px; + margin: 0px; + margin-right: -5px; +} + +input.sheet-iconcheckbox:not(:checked) + .sheet-iconlabel-header-invert, +input.sheet-iconcheckbox:not(:checked) + .sheet-iconlabel-invert, +input.sheet-iconcheckbox:checked + .sheet-iconlabel-header, +input.sheet-iconcheckbox:checked + .sheet-iconlabelsmall, +input.sheet-iconcheckbox:checked + .sheet-iconlabel { + opacity: 1; + border: 1px solid black; +} + + + + +input.sheet-iconcheckbox:checked + .sheet-iconlabel-white, +input.sheet-iconcheckbox:not(:checked) + .sheet-iconlabelbig { + opacity: 1; + border: 1px solid transparent; +} + +input[type="checkbox"].sheet-iconcheckbox + .sheet-iconlabel-invert:hover, +input[type="checkbox"].sheet-iconcheckbox + .sheet-iconlabel-header-invert:hover, +input[type="checkbox"].sheet-iconcheckbox + .sheet-iconlabel-header:hover, +input[type="checkbox"].sheet-iconcheckbox + .sheet-iconlabelCC:hover, +input[type="checkbox"].sheet-iconcheckbox + .sheet-iconlabelbig:hover, +input[type="checkbox"].sheet-iconcheckbox + .sheet-iconlabelsmall:hover, +input[type="checkbox"].sheet-iconcheckbox + .sheet-iconlabel:hover, +input[type="radio"].sheet-iconcheckbox:not(:checked) + .sheet-iconlabel:hover { + background-color: var( --hover-color-bg ); + background-position: 0 -15px; + background-position-x: 0px; + background-position-y: -15px; + -webkit-transition: background-position .1s linear; + -moz-transition: background-position .1s linear; + -ms-transition: background-position .1s linear; + -o-transition: background-position .1s linear; + transition: background-position .1s linear; + transition-property: background-position; + transition-duration: 0.1s; + transition-timing-function: linear; + transition-delay: 0s; + border : 1px solid var( --hover-color ); +} + +input[type="checkbox"].sheet-iconcheckbox + .sheet-iconlabel-white:hover, +input[type="radio"].sheet-iconcheckbox:not(:checked) + .sheet-iconlabel-white:hover { + border : 1px solid red; + opacity: 0.8; +} + +/*JBF@JBF : logic hiding unchecked icons when the header is not hovered*/ + +.sheet-header-flex-container:not(:hover) .sheet-iconcheckbox:checked+.sheet-iconlabel-header-invert, +.sheet-header-flex-container:not(:hover) .sheet-iconcheckbox:not(:checked)+.sheet-iconlabel-header { + height: 0px; + /* width:0px; */ + border: 1px solid transparent; + background : transparent; + /* padding: 0px; */ + margin: 0px; +} + +/*JBF@JBF : logic collapsing the icon container */ +.sheet-iconlabel2 { + margin: 0px !important; + padding: 0px !important; + min-width: 0px !important; + flex-grow: 0; /* it cant grow anymore... We want it to collapse */ + flex-shrink: 1; +} + + +/* ####################################### JBF : Strain icon */ +/* JBF version with the drop of blood */ +input[type="text"].sheet-strainicon { + background: var(--locked-color); + background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Strain.png); + background-repeat: no-repeat; + width: 2.5em; + height: 2.5em; + background-position: 0px -3px; + background-size: cover; + color: var( --header-font-color ); + font-size: 11px; + font-family : initial; +} + +.sheet-info { + float: right; + margin-top: -6px; + height: 30px; + font-family: "Pictos"; + font-size: 24px; +} + + +/* ############################################ Roll Templates & colors ###################################################### */ +/* For some weird Reason, the Print format must be in between the roll templates and the API buttons. DO NOT MOVE */ + +.sheet-rolltemplate-chatrecord { +/* background-color: LightBlue; */ +} + + + +.sheet-rolltemplate-chatrecord table, +.sheet-rolltemplate-rolltargetnumber table { + width: 100%; + border: 1px solid black; + color: black; + font-size: 1em; + font-family: "Helvetica Neue", Helvetica, sans-serif; +} + +.sheet-rolltemplate-chatrecord thead, +.sheet-rolltemplate-rolltargetnumber thead { + border-bottom: 1px solid black; + line-height: 1.6em; + font-size: 1.2em; + /* font-family: Papyrus, fantasy; */ + font-family: 'Aladin', "Helvetica Neue", Helvetica, sans-serif; + font-weight: normal; +} + +.sheet-rolltemplate-chatrecord th { + background-color: #660066; + color: white; + padding-left: 5px; + vertical-align: middle; +} + +.sheet-rolltemplate-rolltargetnumber th { + background-color: #000066; + padding-left: 5px; + vertical-align: middle; + color: white; +} + +.sheet-rolltemplate-chatrecord td, +.sheet-rolltemplate-rolltargetnumber td { + padding: 5px; + border-bottom: 1px solid black; +} + +.sheet-rolltemplate-chatrecord tr:nth-child(odd), +.sheet-rolltemplate-rolltargetnumber tr:nth-child(odd) { + background-color: rgba(217, 217, 214, 1); +} + +.sheet-rolltemplate-chatrecord tr:nth-child(even), +.sheet-rolltemplate-rolltargetnumber tr:nth-child(even) { + background-color: rgba(233, 233, 233, 1); +} + +.sheet-rolltemplate-chatrecord td:first-child, +.sheet-rolltemplate-rolltargetnumber td:first-child { + text-align: right; + font-weight: bold; +} + + +.sheet-rolltemplate-chatrecord a[href^="!"] { + border: 0.8px; + padding: 5px; + background-color: PaleGreen; + color: black; +} + + +/* These are all tries for formatting the API roll templates*/ +.sheet-rolltemplate-sect{ + background-color: white; + background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Frame20.png); + background-size : 103% 103%; + background-position: 55% 53%; + border: solid 2px black; + padding: 13px; + border-radius: 5px; + overflow: hidden; + width: 90%; +} + +.sheet-rolltemplate-body { + text-align: left; + padding-left: 5px; + padding-right: 0px; + padding-bottom: 2px; + line-height: 1.5em; +} + +.sheet-rolltemplate-subheadertext { +line-height: 0.9em; +font-size: 0.9em; +font-weight: lighter; +color: black; +background: transparent; +text-align: center; +margin-top: -0.1em; +margin-bottom: 0.2em; +} + +.sheet-rolltemplate-header { + font-weight: bold; + text-align: center; + color: black; + background: white; + /* font-family: Papyrus, fantasy; */ + font-family: 'Aladin', Papyrus, "Helvetica Neue", Helvetica, sans-serif; + vertical-align: middle; + line-height: 1.2em; + font-size: 1.2em; + margin-bottom: 3px; +} + +.sheet-rolltemplate-header::before { + content: ""; + display: inline-block; + /* background: url("https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Long-Range.png") no-repeat; */ + background-size: 20px !important; + background-repeat: no-repeat; + width: 20px; + height: 20px; + margin: 0 6px 0 0; +} + +.sheet-rolltemplate-button { + background-color: firebrick !important; + color: white !important; + padding: 1px 8px !important; + border: 1px solid black !important; + margin: 2px 5px !important; + min-width: auto; + border-radius: 5px; +} + +.sheet-rolltemplate-icon-ask, +.sheet-rolltemplate-icon-pd, +.sheet-rolltemplate-icon-md, +.sheet-rolltemplate-icon-sd, +.sheet-rolltemplate-icon-action, +.sheet-rolltemplate-icon-attacks, +.sheet-rolltemplate-icon-attackcc, +.sheet-rolltemplate-icon-init, +.sheet-rolltemplate-icon-initrep, +.sheet-rolltemplate-icon-weave, +.sheet-rolltemplate-icon-knockdown { + color: darkgreen; + border-bottom: 4px darkgreen solid; +} + +.sheet-rolltemplate-icon-effect, +.sheet-rolltemplate-icon-damage, +.sheet-rolltemplate-icon-damagecc { + color: firebrick; + border-bottom: 4px firebrick solid; +} + +.sheet-rolltemplate-icon-recovery { + color: darkgoldenrod; + border-bottom: 4px darkgoldenrod solid; +} + + + + +.sheet-rolltemplate-icon-ask::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Ask.png);} +.sheet-rolltemplate-icon-pd::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/PD.png);} +.sheet-rolltemplate-icon-md::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/MD.png);} +.sheet-rolltemplate-icon-sd::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/SD.png);} +.sheet-rolltemplate-icon-action::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Action.png);} +.sheet-rolltemplate-icon-effect::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Effect.png);} +.sheet-rolltemplate-icon-attacks::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Attacks.png);} +.sheet-rolltemplate-icon-attackcc::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Attacks-cc.png);} +.sheet-rolltemplate-icon-damage::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Damage.png);} +.sheet-rolltemplate-icon-damagecc::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Damage-cc.png);} +.sheet-rolltemplate-icon-init::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Initiative.png);} +.sheet-rolltemplate-icon-initrep::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Initiative.png);} +.sheet-rolltemplate-icon-recovery::before, +.sheet-rolltemplate-icon-recoveryrep::before{ background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Recovery.png);} +.sheet-rolltemplate-icon-weave::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Weave.png);} +.sheet-rolltemplate-icon-knockdown::before { background-image: url(https://raw.githubusercontent.com/roll20/roll20-character-sheets/master/Earthdawn%20%28FASA%20Official%29/Images/Knockdown.png);} + + + +/* ####################### Print Format ################# */ + +/* For some weird Reason, the Print format must be in between the roll templates and the API buttons. DO NOT MOVE */ + +@media print { + /* All your print styles go here */ + /* .sheet-buffSignLeft, + .sheet-buffSignRight, + .sheet-buffLeft, + .sheet-buffRight + { display: none !important; } */ + + .sheet-ShowIfPrint { + display: inline-block !important; + } + + .ui-dialog { + position: static !important; + } + + .sheet-redGreen[value^="-"]~ b, + .sheet-greenRed[value^="-"]~ b, + .sheet-redGreen[value="0"] ~ input, + .sheet-greenRed[value="0"] ~ input, + .sheet-redGreen[value="0"] ~ b, + .sheet-greenRed[value="0"] ~ b { + /* color: transparent !important; */ + } + + +/*Manage the display of the different sections*/ + + .sheet-tabGrim~fieldset.repeating_spell+.repcontainer>.repitem .sheet-filter-box /* display everything no matter what which of the inner boxes are checked. */ + { + display: block; + border: none; /*JBF*/ + } + /*JBF@JBF@CD : For Skills, Knacks and Talents, in overview, everything is displayed, and in Combat, only the checked ones)*/ + + + + input.sheet-tabMain~div .sheet-section-core, + input.sheet-tabMain~div .sheet-section-talents, + input.sheet-tabMain~div .sheet-section-knacks, + input.sheet-tabMain~div .sheet-section-skills, + input.sheet-tabMain~div .sheet-section-spells, + input.sheet-tabMain~div .sheet-section-equipment, + input.sheet-tabMain~div .sheet-section-gear, + input.sheet-tabMain~div .sheet-section-notes, + input.sheet-tabMain~div .sheet-section-record, + input.sheet-tabSpell~.sheet-section-spells-talents, + input.sheet-tabSpell~.sheet-section-spells-matrices, + input.sheet-tabSpell~.sheet-section-spells-grimoire { + max-height: 999999px; + max-width: 999999px; + visibility: visible; + opacity: 1; + transition: opacity 0.5s linear 0s; + break-after: auto; + /* border-top: 2px double var(--outline-color); */ + } + + .sheet-tabMain~div .repcontainer .sheet-HideIfOverviewNoEdit, + .sheet-tabMain~div .sheet-HideIfOverviewNoEdit, + .sheet-tabMain~div .sheet-HideIfOverview, + .sheet-tabMain~div .sheet-HideIfNotOverview, + .sheet-tabMain~div .repcontainer .sheet-HideIfCombatNoEdit, + .sheet-tabMain~div .sheet-HideIfCombatNoEdit, + .sheet-tabMain~div .sheet-HideIfCombat, + .sheet-tabMain~div .sheet-HideIfNotCombat { + display: inline-block !important; + } + + #macrobar, + #macrobar_macros, + #edit-button, + #playerzone, + .sheet-icon-link-in, + .sheet-icon-link-out, + .sheet-icon-link-in-out, + .repcontrol, + .sheet-testEdition[value="3"]~div .sheet-HideIfEdition3, + .sheet-testEdition:not([value="3"])~div .sheet-HideIfNotEdition3, + .sheet-testEdition[value="4"]~div .sheet-HideIfEdition4, + .sheet-testEdition:not([value="4"])~div .sheet-HideIfNotEdition4, + .sheet-testCloseChecked:checked+.sheet-HideIfCloseChecked, + .sheet-testCloseChecked:not(:checked)+.sheet-HideIfNotCloseChecked, + .sheet-testCloseChecked:not(:checked)+.sheet-HideIfCloseChecked+.sheet-HideIfNotCloseChecked, + .nav-tabs, + .nav, + .sheet-Creation, + .sheet-HideIfPrint, + .sheet-tabMain~div .repcontainer .sheet-HideIfOverviewNoEdit.sheet-HideIfPrint, + .sheet-tabMain~div .sheet-HideIfOverviewNoEdit.sheet-HideIfPrint, + .sheet-tabMain~div .sheet-HideIfOverview.sheet-HideIfPrint, + .sheet-tabMain~div .sheet-HideIfNotOverview.sheet-HideIfPrint, + .sheet-tabMain~div .repcontainer .sheet-HideIfCombatNoEdit.sheet-HideIfPrint, + .sheet-tabMain~div .sheet-HideIfCombatNoEdit.sheet-HideIfPrint, + .sheet-tabMain~div .sheet-HideIfCombat.sheet-HideIfPrint, + .sheet-tabMain~div .sheet-HideIfNotCombat.sheet-HideIfPrint, + .sheet-testAPI:not([value="1"])~div .sheet-api, + .sheet-testAPI:[value="1"]~div .sheet-NoAPI { + display: none !important; + } + + .sheet-headerbar { + color : white !important; + background-color : var(--outline-color) !important; + /* font-family: Papyrus, fantasy; */ + font-family: 'Aladin', "Helvetica Neue", Helvetica, sans-serif; + font-weight: normal; + } + + .sheet-text-button-header { + color : var(--input-color) !important; + background-color : var(--outline-color) !important; + /* font-family: Papyrus, fantasy; */ + font-family: 'Aladin', "Helvetica Neue", Helvetica, sans-serif; + font-weight: normal; + } + + + .sheet-leftpane, + .sheet-middlepane { + width:200px; + } + + .sheet-flex-container { + display: flex; + align-items: flex-start; + justify-content: space-between; + } + +} /* end media print */ + +/* ####################### API Format ################# */ +/* For some weird Reason, the Print format must be in between the roll templates and the API buttons. DO NOT MOVE */ +a.sheet-chatbutton, +.textchatcontainer a[href^="!"].sheet-chatbutton, +a.textchatcontainer a.sheet-chatbutton { + padding: 0px 3px !important; + border: 1px solid black !important; + border-radius: 5px; + margin: 1px 0px !important; + min-width: auto; + white-space: nowrap; + background-color: grey; + color: white; +} + +/* ########################### End ############################### */ diff --git a/Fallout-Vaults-and-Deathclaws/Fallout-VnV.html b/Fallout-Vaults-and-Deathclaws/Fallout-VnV.html index 746983f14c..a7724ec1e6 100644 --- a/Fallout-Vaults-and-Deathclaws/Fallout-VnV.html +++ b/Fallout-Vaults-and-Deathclaws/Fallout-VnV.html @@ -127,6 +127,13 @@ +
+
+ + + + +
diff --git a/GammaWorld4e/gw4sheet.css b/GammaWorld4e/gw4sheet.css new file mode 100644 index 0000000000..b036bc317e --- /dev/null +++ b/GammaWorld4e/gw4sheet.css @@ -0,0 +1,369 @@ +/* Set the min-width so that when the window is resized the look will stay consistant */ + +.charsheet { + background-color: #ddd; + min-width: 800px; +} + +input[type=number]::-webkit-inner-spin-button, +input[type=number]::-webkit-outer-spin-button { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + margin: 0; +} + +input[type=number] { + -moz-appearance: textfield; + margin: 0 !important; +} + +input{ + box-shadow: 0px 0px 0px 0px #000000 inset; + position: center; + padding: 0.2em; +} + +div.sheet-tab-content { display: none; } + +input.sheet-tab1:checked ~ div.sheet-tab1, +input.sheet-tab2:checked ~ div.sheet-tab2, +input.sheet-tab3:checked ~ div.sheet-tab3, +input.sheet-tab4:checked ~ div.sheet-tab4 +{ + display: block; +} +input.sheet-tab +{ + width: 150px; + height: 20px; + position: relative; + top: 5px; + left: 6px; + margin: -1.5px; + cursor: pointer; + z-index: 1; +} +input.sheet-tab::before +{ + content: attr(title); + + + border: solid 1px #a8a8a8; + border-bottom-color: black; + text-align: center; + display: inline-block; + + background: #C7C7C7; + + width: 150px; + height: 20px; + font-size: 18px; +} +input.sheet-tab:checked::before +{ + background-color: white; +} + +input.sheet-tab:not(:first-child)::before +{ + border-left: none; +} + +div.sheet-tab-content +{ +} + +.sheet-title{ + font-size: 3em; + text-align: center; + height: 100%; + font-weight: bolder; +} + +.sheet-general-line1-container{ + display: grid; + grid-template-columns: auto 1fr auto 1fr; + column-gap: 10px; + padding: 1px 1px 1px 1px ; +} +.sheet-general-line2-container{ + display: grid; + grid-template-columns: auto 1fr auto 1fr auto 1fr auto 1fr; + column-gap: 10px; + padding: 1px 1px 1px 1px ; +} + +.sheet-basic-stat-container{ + display: grid; + grid-template-columns: auto 45px auto 45px 5px 45px auto 45px 5px 45px auto 60px auto 30px; + column-gap: 5px; + padding-top: 10px; + padding-bottom: 10px; +} + +.sheet-two-column-container{ + display: grid; + grid-template-columns: 1fr 200px; + column-gap: 8px; +} + +.sheet-attributes-container{ + display: grid; + grid-template-columns: 30px 30px 35px 35px 30px 1fr 30px 30px 1fr 30px 1fr 30px; + padding-top: 10px; + padding-bottom: 10px; + background-color: darkseagreen; + +} + +.sheet-npc-label, +.sheet-movement-label, +.sheet-attribute-label{ + font-size: 12; + font-weight: bolder; + vertical-align: bottom; + padding: 1px; + padding-top: 3px; + height: 100%; +} + +.sheet-stat-field{ + width: 70%; + padding: 1px 1px 1px 1px ; + height: 100% + } +.sheet-attribute-field{ + width: 90% !important; + padding: 1px 1px 1px 1px ; + height: 100%; + text-align: center; +} + +input.sheet-attribute-field[type=number]{ + margin:0 ; +} + +.sheet-general-field, +.sheet-armor-field, +.sheet-attribute-special-field{ + width: 90%; + padding: 1px 1px 1px 1px ; + height: 100%; + background-color: transparent; + border-color: transparent; + border-bottom-color: black; + border-radius:0; +} +.sheet-skill-grid-container{ + display: grid; + grid-template-columns: 1fr 30px 30px; + background-color: darkSeaGreen; + column-gap: 5px; + padding-left: 5px; +} + +.sheet-skills-header{ + font-size: 16; + text-align: left; + height: 16; + font-weight: bolder; + +} + +.sheet-class-skill-field{ + width: 100%; +} + +.sheet-movement-container{ + display: grid; + grid-template-columns: auto 40px 40px 40px; + column-gap: 10px; + border-color: black; + border-style: solid; + border-width: 2px; + background-color: lightgray; + +} +.sheet-movement-field{ + width: 90%; + padding: 1px 1px 1px 1px ; + height: 100%; + text-align: center; +} + +.sheet-mutation-grid-container{ + display: grid; + grid-template-columns: 1fr 50px 50px 1fr 30px; + background-color: darkseagreen; + padding-left: 5px; + padding-right: 5px; +} + +.sheet-mutation-header{ + font-size: 16; + text-align: left; + height: 16; + font-weight: bolder; +} + +.sheet-mutation-field{ + width: 100%; + padding: 1px 1px 1px 1px ; + height: 100%; +} + +.sheet-general-label, +.sheet-artifact-label, +.sheet-equip-label, +.sheet-skills-label, +.sheet-npc-atk-label, +.sheet-attack-label, +.sheet-mutation-label{ + font-size: 10; + text-align: left; + height: 10; + font-weight: bold; + padding-left: 10px; + vertical-align: bottom; + +} + +.sheet-sk-label, +.sheet-mv-label, +.sheet-eq-label, +.sheet-mp-label{ + font-size: 10; + text-align: center; + height: 10; + font-weight: bold; +} + +.sheet-armor-container{ + display: grid; + grid-template-columns: auto 45px 45px auto 45px 45px auto 60px; + column-gap: 10px; + padding-left: 10px; + padding-bottom: 10px; + vertical-align: bottom; + padding-top: 10px; +} +.sheet-equipment-container{ + display: grid; + grid-template-columns: 1fr 50px 50px 50px 50px 50px 50px 50px 1fr 30px; + background-color: darkseagreen; +} +.sheet-artifacts-container{ + display: grid; + grid-template-columns: 1fr 50px 50px 50px 3fr 30px; + background-color: darkseagreen; +} + +.sheet-armor-val, +.sheet-movement-val, +.sheet-class-skill-val, +.sheet-npc-atk-val, +.sheet-mutation-val, +.sheet-equip-val, +.sheet-artifact-val{ + font-size: 10; + text-align: center; + height: 10; + width: 100%; +} + +.sheet-npc-atk-field, +.sheet-artifact-field, +.sheet-equip-field{ + font-size: 10; + height: 10; + width: 100%; +} + +textarea.sheet-general-notes{ + resize: none; +} + +/* NPC Sheet Section */ + +.sheet-npc-columns{ + display:grid; + grid-template-columns: 4fr 6fr; + column-gap: 10px; + padding-bottom: 10px; +} + +.sheet-npc-container{ + display: grid; + grid-template-columns: 1fr 50px 1fr 50px; + padding-left: 10px; + column-gap: 10px; + row-gap: 2px; + background-color: lightgray; + padding: 5px; +} +.sheet-npc-name-field{ + font-size: 10; + height: 10; + padding-left: 10px; +} +.sheet-npc-field{ + font-size: 10; + height: 10; + width: 100%; + padding-left: 10px; +} +.sheet-npc-attack-container{ + display: grid; + grid-template-columns: 1fr 50px 50px 1fr 30px; + background-color: darkseagreen; + column-gap: 5px; +} + + +/* Template */ +rolltemplate.sheet-rolltemplate-mutation { + margin-left: -37px; +} + +.sheet-rolltemplate-mutation .sheet-container { + border: 1px solid; + border-color: Black; +} +.sheet-rolltemplate-mutation .sheet-header { + background-color: darkseagreen; + text-align: center; + color: black; + padding: 5px; +} +.sheet-rolltemplate-mutation .sheet-title { + font-size:1.1em; + font-weight: bold; +} +.sheet-rolltemplate-mutation .sheet-subtitle { + font-size:.9em; +} +.sheet-rolltemplate-mutation .sheet-content { + display: grid; + background: #FFF; + grid-template-columns: auto auto; + line-height:1.4em; +} +.sheet-rolltemplate-mutation .sheet-desc { + grid-column: span 2; + padding: 5px; + text-align: left +} +.sheet-rolltemplate-mutation .sheet-content .sheet-key { + font-weight: bold; + padding-right: 8px; + text-align: right; +} +.sheet-rolltemplate-mutation .sheet-value { + padding-left: 4px; +} +.sheet-rolltemplate-mutation .sheet-content :nth-child(4n+3), + +.sheet-rolltemplate-mutation .sheet-content :nth-child(4n) { + background:#EEE; +} \ No newline at end of file diff --git a/GammaWorld4e/gw4sheet.html b/GammaWorld4e/gw4sheet.html new file mode 100644 index 0000000000..688733d14a --- /dev/null +++ b/GammaWorld4e/gw4sheet.html @@ -0,0 +1,243 @@ +
Gamma World
+ + + + + +

+
+ +
+
Character Name:
+
Genotype:
+
+
+
Class:
+
Level:
+
XP:
+
Tech Lvl:
+
+
+
AC:
+
Hit Points:
/
+
Force Field:
/
+
Domars:
+
Initiative
+
+
+ + +
PS
+
THAC Melee:
+
Damage Bonus:
+
Max Lift (kg)
+ + +
DX
+
THAC Ranged:
+
Stealth:
+
Base AC:
+ + +
CN
+
Health:
+
+ + + +
MS
+
Mental Defense:
+
+ + +
IN
+
Use Artifacts:
+
Remain Unseen:
+
+ + +
CH
+
Robot Recognition:
+
+ + +
SN
+
Perception
+
+ +
+
+
+ +
+
+
Character Class Skills
+ +
+
Skill Name
Score
+
+ +
+
+ + +
+
+
+
+
Movement Rates
+ +
+
Light
Med
Heavy
+
Walk
+
Trot
+
Run
+
Fly
+
Swim
+
+
+
+ +
+
+
Physical Mutations
+
+ +
+
Power
MP
Mod
Description
+
+
+
+ + +
+
+ +
+
+
Mental Mutations
+
+
+
Power
MP
Mod
Description
+
+ +
+
+ + +
+
+
+ + +
+
+
Armor:
AC:
Weight
Shield:
AC:
Weight
+ + +
Domars:
+
+
Weapons/Attacks
+
+
Item
THAC
Dmg
Ammo
Cap
Range
RoF
Weight
Description
+
+
+
+ + + + +
+
+ +
+
+
Artifacts
+
+
Item
Tech
Comp
Weight
Description
+
+
+
+ + +
+
+
+
Other equipment
+ +
+
Notes
+ + +
+ + +
+
+
+
+
Name:
+
+
+
AC
+
Level
+
Hit Points
+
Hit Dice
+
MD
+
Perception
+
Health
+
Stealth/RU
+
Speed
+
Int
+ +
Morale
+
THAC
+
Size
+
Attacks
+
XP Value
+
+
+
+
+
Attacks
+
+
Attack
THAC
Dmg
Notes
+
+
+
+ + +
+
+
+
+
+
Mutations
+
+
Power
MP
Mod
Description
+
+
+
+ + +
+
+
+ + + +
+
+ {{#title}}
{{title}}
{{/title}} + {{#subtitle}}
{{subtitle}}
{{/subtitle}} +
+
+ {{#allprops() title subtitle desc color}} +
{{key}}
+
{{value}}
+ {{/allprops() title subtitle desc color}} + {{#desc}}
{{desc}}
{{/desc}} +
+
+
+ diff --git a/GammaWorld4e/gw4sheetPreview.PNG b/GammaWorld4e/gw4sheetPreview.PNG new file mode 100644 index 0000000000..a0ab79fbee Binary files /dev/null and b/GammaWorld4e/gw4sheetPreview.PNG differ diff --git a/GammaWorld4e/sheet.json b/GammaWorld4e/sheet.json new file mode 100644 index 0000000000..656a1066ae --- /dev/null +++ b/GammaWorld4e/sheet.json @@ -0,0 +1,9 @@ +{ + "html": "gw4sheet.html", + "css": "gw4sheet.css", + "authors": "Tyson W", + "roll20userid": "1130676", + "preview": "gw4sheetPreview.PNG", + "instructions": "Character sheet for the Gamma World RPG, 4th edition, by TSR/Wizards of the Coast", + "legacy": true +} \ No newline at end of file diff --git a/Ironsworn-Starforged/src/package-lock.json b/Ironsworn-Starforged/src/package-lock.json index 83f8401b5c..6e182ab3e7 100644 --- a/Ironsworn-Starforged/src/package-lock.json +++ b/Ironsworn-Starforged/src/package-lock.json @@ -8,7 +8,7 @@ "name": "ironsworn-starforged", "version": "2.2.0", "dependencies": { - "axios": "^0.21.1", + "axios": "^0.21.2", "gulp": "4.0.2", "gulp-pug": "5.0.0", "gulp-stylus": "2.7.0", @@ -515,11 +515,11 @@ } }, "node_modules/axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.2.tgz", + "integrity": "sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg==", "dependencies": { - "follow-redirects": "^1.10.0" + "follow-redirects": "^1.14.0" } }, "node_modules/babel-runtime": { @@ -1586,9 +1586,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.2.tgz", - "integrity": "sha512-yLR6WaE2lbF0x4K2qE2p9PEXKLDjUjnR/xmjS3wHAYxtlsI9MLLBJUZirAHKzUZDGLxje7w/cXR49WOUo4rbsA==", + "version": "1.14.7", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", + "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==", "funding": [ { "type": "individual", @@ -2485,6 +2485,11 @@ "node": ">=0.10.0" } }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, "node_modules/husky": { "version": "4.3.8", "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz", @@ -3475,11 +3480,6 @@ "validate-npm-package-license": "^3.0.1" } }, - "node_modules/normalize-package-data/node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" - }, "node_modules/normalize-package-data/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -3790,9 +3790,9 @@ } }, "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-root": { "version": "0.1.1", @@ -4602,9 +4602,9 @@ } }, "node_modules/semver-regex": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz", - "integrity": "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.3.tgz", + "integrity": "sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ==", "engines": { "node": ">=8" }, @@ -6160,11 +6160,11 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.2.tgz", + "integrity": "sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg==", "requires": { - "follow-redirects": "^1.10.0" + "follow-redirects": "^1.14.0" } }, "babel-runtime": { @@ -7054,9 +7054,9 @@ } }, "follow-redirects": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.2.tgz", - "integrity": "sha512-yLR6WaE2lbF0x4K2qE2p9PEXKLDjUjnR/xmjS3wHAYxtlsI9MLLBJUZirAHKzUZDGLxje7w/cXR49WOUo4rbsA==" + "version": "1.14.7", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", + "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==" }, "for-in": { "version": "1.0.2", @@ -7758,6 +7758,11 @@ "parse-passwd": "^1.0.0" } }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, "husky": { "version": "4.3.8", "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz", @@ -8553,11 +8558,6 @@ "validate-npm-package-license": "^3.0.1" }, "dependencies": { - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -8779,9 +8779,9 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-root": { "version": "0.1.1", @@ -9487,9 +9487,9 @@ } }, "semver-regex": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz", - "integrity": "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.3.tgz", + "integrity": "sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ==" }, "set-blocking": { "version": "2.0.0", diff --git a/Ironsworn-Starforged/src/package.json b/Ironsworn-Starforged/src/package.json index 86da9da6c6..89e26f4c8f 100644 --- a/Ironsworn-Starforged/src/package.json +++ b/Ironsworn-Starforged/src/package.json @@ -14,7 +14,7 @@ }, "author": "Ayethin", "dependencies": { - "axios": "^0.21.1", + "axios": "^0.21.2", "gulp": "4.0.2", "gulp-pug": "5.0.0", "gulp-stylus": "2.7.0", diff --git a/Ironsworn/src/package-lock.json b/Ironsworn/src/package-lock.json index 0b2cbb9771..fbceb2eae5 100644 --- a/Ironsworn/src/package-lock.json +++ b/Ironsworn/src/package-lock.json @@ -2487,6 +2487,11 @@ "node": ">=0.10.0" } }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, "node_modules/husky": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz", @@ -3451,11 +3456,6 @@ "validate-npm-package-license": "^3.0.1" } }, - "node_modules/normalize-package-data/node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" - }, "node_modules/normalize-package-data/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -7712,6 +7712,11 @@ "parse-passwd": "^1.0.0" } }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, "husky": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz", @@ -8493,11 +8498,6 @@ "validate-npm-package-license": "^3.0.1" }, "dependencies": { - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", diff --git a/Ironsworn/translations/de.json b/Ironsworn/translations/de.json index 812d0a8a86..4bc6a368e7 100644 --- a/Ironsworn/translations/de.json +++ b/Ironsworn/translations/de.json @@ -21,7 +21,7 @@ "nav-settings": "Einstellungen", "page-info-close": "Schließen", "page-select": "Wähle die Art des Bogens", - "page-name-character": "Charakter", + "page-name-character": "CHARAKTER", "page-name-shared": "Geteilt", "page-summary-vows": " EIDE ", "page-summary-debilities": " SCHWÄCHEN ", @@ -1364,36 +1364,36 @@ "locationLocation-21": "Ravine", "locationLocation-22": "Road", "locationLocation-23": "Tree", - "locationLocation-24": "Pond", - "locationLocation-25": "Fields", - "locationLocation-26": "Marsh", - "locationLocation-27": "Steading", - "locationLocation-28": "Rapids", - "locationLocation-29": "Pass", - "locationLocation-30": "Trail", - "locationLocation-31": "Glade", - "locationLocation-32": "Plain", - "locationLocation-33": "Ridge", - "locationLocation-34": "Cliff", - "locationLocation-35": "Grove", - "locationLocation-36": "Village", + "locationLocation-24": "Teich", + "locationLocation-25": "Felder", + "locationLocation-26": "Sumpf", + "locationLocation-27": "Gehöft", + "locationLocation-28": "Stromschnellen", + "locationLocation-29": "Gebirgspass", + "locationLocation-30": "Pfad", + "locationLocation-31": "Lichtung", + "locationLocation-32": "Ebene", + "locationLocation-33": "Grat", + "locationLocation-34": "Klippe", + "locationLocation-35": "Hain", + "locationLocation-36": "Dorf", "locationLocation-37": "Moor", - "locationLocation-38": "Thicket", - "locationLocation-39": "River Ford", - "locationLocation-40": "Valley", - "locationLocation-41": "Bay/Fjord", - "locationLocation-42": "Foothills", - "locationLocation-43": "Lake", - "locationLocation-44": "River", - "locationLocation-45": "Forest", - "locationLocation-46": "Coast", - "locationLocation-47": "Hill", - "locationLocation-48": "Mountain", - "locationLocation-49": "Woods", - "locationLocation-50": "Anomaly", - "locationQuickSettlementNamePrefix-0": "Bleak", + "locationLocation-38": "Dickicht", + "locationLocation-39": "Furt", + "locationLocation-40": "Tal", + "locationLocation-41": "Bucht/Fjord", + "locationLocation-42": "Vorgebirge", + "locationLocation-43": "See", + "locationLocation-44": "Fluss", + "locationLocation-45": "Wald", + "locationLocation-46": "Küste", + "locationLocation-47": "Hügel", + "locationLocation-48": "Berg", + "locationLocation-49": "Wälder", + "locationLocation-50": "Besonderer Ort", + "locationQuickSettlementNamePrefix-0": "Bleich-", "locationQuickSettlementNamePrefix-1": "Grün", - "locationQuickSettlementNamePrefix-2": "Wolf", + "locationQuickSettlementNamePrefix-2": "Wolfs-", "locationQuickSettlementNamePrefix-3": "Raben", "locationQuickSettlementNamePrefix-4": "Grau", "locationQuickSettlementNamePrefix-5": "Rot", @@ -1404,43 +1404,43 @@ "locationQuickSettlementNamePrefix-10": "Weiss", "locationQuickSettlementNamePrefix-11": "Sturm", "locationQuickSettlementNamePrefix-12": "Schwarz", - "locationQuickSettlementNamePrefix-13": "Mourn", + "locationQuickSettlementNamePrefix-13": "Klage-", "locationQuickSettlementNamePrefix-14": "Neu", "locationQuickSettlementNamePrefix-15": "Stein", - "locationQuickSettlementNamePrefix-16": "Grim", - "locationQuickSettlementNamePrefix-17": "Lost", + "locationQuickSettlementNamePrefix-16": "Finster-", + "locationQuickSettlementNamePrefix-17": "Verlorene/r/s", "locationQuickSettlementNamePrefix-18": "Hoch", "locationQuickSettlementNamePrefix-19": "Felsen", "locationQuickSettlementNamePrefix-20": "Schild", "locationQuickSettlementNamePrefix-21": "Schwert", - "locationQuickSettlementNamePrefix-22": "Frost", + "locationQuickSettlementNamePrefix-22": "Frost-", "locationQuickSettlementNamePrefix-23": "Dornen", "locationQuickSettlementNamePrefix-24": "Lang", "locationQuickSettlementNameSuffix-0": "moor", - "locationQuickSettlementNameSuffix-1": "ford", + "locationQuickSettlementNameSuffix-1": "-furt", "locationQuickSettlementNameSuffix-2": "fels", "locationQuickSettlementNameSuffix-3": "wacht", - "locationQuickSettlementNameSuffix-4": "hope", + "locationQuickSettlementNameSuffix-4": "-schimmer", "locationQuickSettlementNameSuffix-5": "wald", "locationQuickSettlementNameSuffix-6": "grat", "locationQuickSettlementNameSuffix-7": "stein", - "locationQuickSettlementNameSuffix-8": "haven", - "locationQuickSettlementNameSuffix-9": "fall(s)", + "locationQuickSettlementNameSuffix-8": "-hafen", + "locationQuickSettlementNameSuffix-9": "-fall", "locationQuickSettlementNameSuffix-10": "fluss", "locationQuickSettlementNameSuffix-11": "feld", "locationQuickSettlementNameSuffix-12": "hügel", "locationQuickSettlementNameSuffix-13": "brück", "locationQuickSettlementNameSuffix-14": "mark", - "locationQuickSettlementNameSuffix-15": "cairn", + "locationQuickSettlementNameSuffix-15": "-bach", "locationQuickSettlementNameSuffix-16": "land", - "locationQuickSettlementNameSuffix-17": "hall", - "locationQuickSettlementNameSuffix-18": "mount", - "locationQuickSettlementNameSuffix-19": "rock", - "locationQuickSettlementNameSuffix-20": "brook", - "locationQuickSettlementNameSuffix-21": "barrow", - "locationQuickSettlementNameSuffix-22": "stead", - "locationQuickSettlementNameSuffix-23": "home", - "locationQuickSettlementNameSuffix-24": "wick", + "locationQuickSettlementNameSuffix-17": "-halle", + "locationQuickSettlementNameSuffix-18": "-berg", + "locationQuickSettlementNameSuffix-19": "-fels", + "locationQuickSettlementNameSuffix-20": "-quell", + "locationQuickSettlementNameSuffix-21": "-bruch", + "locationQuickSettlementNameSuffix-22": "-hof", + "locationQuickSettlementNameSuffix-23": "-heim", + "locationQuickSettlementNameSuffix-24": "-wall", "locationRegion-0": "Barrier Islands", "locationRegion-1": "Ragged Coast", "locationRegion-2": "Deep Wilds", diff --git a/Knight/knight.html b/Knight/knight.html index 294f4f3b64..26c1647468 100644 --- a/Knight/knight.html +++ b/Knight/knight.html @@ -11680,7 +11680,7 @@ berserkIlluminationRollSimple.forEach((button) => { /* eslint-disable camelcase */ /* eslint-disable max-len */ /* eslint-disable no-undef */ -const rollCombatAutre = ['repeating_armeautre:armeautrepj']; +const rollCombatAutre = ['repeating_armeautre:armeautrepj', 'repeating_armeautre:armeautrepjvehicule']; rollCombatAutre.forEach((button) => { on(`clicked:${button}`, async (info) => { @@ -11711,6 +11711,8 @@ rollCombatAutre.forEach((button) => { listAttrs.push(`${prefix}armeAutreBDegat`); listAttrs.push(`${prefix}armeAutreBViolence`); + listAttrs.push('energieVehicule'); + listAttrs = listAttrs.concat(effet, effetValue, AA, AAValue, special, specialValue); const attrs = await getAttrsAsync(listAttrs); @@ -11782,6 +11784,8 @@ rollCombatAutre.forEach((button) => { let isELumiere = false; let lumiereValue = 0; + const energie = attrs.energieVehicule; + let autresEffets = []; let autresAmeliorationsA = []; const autresSpecial = []; @@ -11890,6 +11894,10 @@ rollCombatAutre.forEach((button) => { const sEnergie = isApplied(attrs[`${prefix}energie`]); const sEnergieValue = attrs[`${prefix}energieValue`]; + let newEnergie = 0; + let pasEnergie = false; + let sEnergieText = ''; + if (sBonusDegats) { exec.push(`{{vMSpecialD=+${sBonusDegatsD6}D6+${sBonusDegatsFixe}}}`); diceDegats += Number(sBonusDegatsD6); @@ -11903,7 +11911,19 @@ rollCombatAutre.forEach((button) => { } if (sEnergie) { - autresSpecial.push(`^{energie} (${sEnergieValue})`); + if (button === 'repeating_armeautre:armeautrepjvehicule') { + autresSpecial.push(`${i18n_energieRetiree} (${sEnergieValue})`); + + newEnergie = Number(energie) - Number(sEnergieValue); + + if (newEnergie === 0) { + sEnergieText = i18n_plusEnergie; + } else if (newEnergie < 0) { + newEnergie = 0; + sEnergieText = i18n_pasEnergie; + pasEnergie = true; + } + } else { autresSpecial.push(`^{energie} (${sEnergieValue})`); } } // FIN DE GESTION DES BONUS SPECIAUX @@ -12041,45 +12061,61 @@ rollCombatAutre.forEach((button) => { exec = firstExec.concat(exec); // ROLL - const finalRoll = await startRoll(exec.join(' ')); - const tJet = finalRoll.results.jet.result; + let finalRoll; - const tBonus = finalRoll.results.bonus.result; - const tExploit = finalRoll.results.Exploit.result; + if (pasEnergie === false) { + finalRoll = await startRoll(exec.join(' ')); + const tJet = finalRoll.results.jet.result; - const rDegats = finalRoll.results.degats.dice; - const rViolence = finalRoll.results.violence.dice; + const tBonus = finalRoll.results.bonus.result; + const tExploit = finalRoll.results.Exploit.result; - const tDegats = finalRoll.results.degats.result; - const tViolence = finalRoll.results.violence.result; + const rDegats = finalRoll.results.degats.dice; + const rViolence = finalRoll.results.violence.dice; - const conditions = { - isTenebricide, - isDestructeur, - isFureur, - isSurprise, - isMeurtrier, - isUltraviolence, - }; + const tDegats = finalRoll.results.degats.result; + const tViolence = finalRoll.results.violence.result; - const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions); - - const finalComputed = { - jet: tJet + tBonus, - }; - - Object.assign(finalComputed, computed); - - finishRoll(finalRoll.rollId, finalComputed); - - if (tJet !== 0 && tJet === tExploit) { - const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`); - const tRExploit = exploitRoll.results.jet.result; - const exploitComputed = { - jet: tRExploit, + const conditions = { + isTenebricide, + isDestructeur, + isFureur, + isSurprise, + isMeurtrier, + isUltraviolence, }; - finishRoll(exploitRoll.rollId, exploitComputed); + const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions); + + const finalComputed = { + jet: tJet + tBonus, + }; + + Object.assign(finalComputed, computed); + + finishRoll(finalRoll.rollId, finalComputed); + + if (tJet !== 0 && tJet === tExploit) { + const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`); + const tRExploit = exploitRoll.results.jet.result; + const exploitComputed = { + jet: tRExploit, + }; + + finishRoll(exploitRoll.rollId, exploitComputed); + } + + if (sEnergie !== false && button === 'repeating_armeautre:armeautrepjvehicule') { + setAttrs({ energieVehicule: newEnergie }); + + if (newEnergie === 0) { + const noEnergieRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`); + finishRoll(noEnergieRoll.rollId, {}); + } + } + } else { + finalRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`); + finishRoll(finalRoll.rollId, {}); } }); }); @@ -51221,7 +51257,7 @@ on('clicked:rollVehicule', async (info) => {
- +
diff --git a/Knight/pug/html/tab/vehicule.html b/Knight/pug/html/tab/vehicule.html index 9d0b5171d5..79a6b03f9a 100644 --- a/Knight/pug/html/tab/vehicule.html +++ b/Knight/pug/html/tab/vehicule.html @@ -767,7 +767,7 @@
- +
diff --git a/Knight/pug/js/rolls/pj/combatAutre.js b/Knight/pug/js/rolls/pj/combatAutre.js index cbcb3a1162..8c9110fcc1 100644 --- a/Knight/pug/js/rolls/pj/combatAutre.js +++ b/Knight/pug/js/rolls/pj/combatAutre.js @@ -2,7 +2,7 @@ /* eslint-disable camelcase */ /* eslint-disable max-len */ /* eslint-disable no-undef */ -const rollCombatAutre = ['repeating_armeautre:armeautrepj']; +const rollCombatAutre = ['repeating_armeautre:armeautrepj', 'repeating_armeautre:armeautrepjvehicule']; rollCombatAutre.forEach((button) => { on(`clicked:${button}`, async (info) => { @@ -33,6 +33,8 @@ rollCombatAutre.forEach((button) => { listAttrs.push(`${prefix}armeAutreBDegat`); listAttrs.push(`${prefix}armeAutreBViolence`); + listAttrs.push('energieVehicule'); + listAttrs = listAttrs.concat(effet, effetValue, AA, AAValue, special, specialValue); const attrs = await getAttrsAsync(listAttrs); @@ -104,6 +106,8 @@ rollCombatAutre.forEach((button) => { let isELumiere = false; let lumiereValue = 0; + const energie = attrs.energieVehicule; + let autresEffets = []; let autresAmeliorationsA = []; const autresSpecial = []; @@ -212,6 +216,10 @@ rollCombatAutre.forEach((button) => { const sEnergie = isApplied(attrs[`${prefix}energie`]); const sEnergieValue = attrs[`${prefix}energieValue`]; + let newEnergie = 0; + let pasEnergie = false; + let sEnergieText = ''; + if (sBonusDegats) { exec.push(`{{vMSpecialD=+${sBonusDegatsD6}D6+${sBonusDegatsFixe}}}`); diceDegats += Number(sBonusDegatsD6); @@ -225,7 +233,19 @@ rollCombatAutre.forEach((button) => { } if (sEnergie) { - autresSpecial.push(`^{energie} (${sEnergieValue})`); + if (button === 'repeating_armeautre:armeautrepjvehicule') { + autresSpecial.push(`${i18n_energieRetiree} (${sEnergieValue})`); + + newEnergie = Number(energie) - Number(sEnergieValue); + + if (newEnergie === 0) { + sEnergieText = i18n_plusEnergie; + } else if (newEnergie < 0) { + newEnergie = 0; + sEnergieText = i18n_pasEnergie; + pasEnergie = true; + } + } else { autresSpecial.push(`^{energie} (${sEnergieValue})`); } } // FIN DE GESTION DES BONUS SPECIAUX @@ -363,45 +383,61 @@ rollCombatAutre.forEach((button) => { exec = firstExec.concat(exec); // ROLL - const finalRoll = await startRoll(exec.join(' ')); - const tJet = finalRoll.results.jet.result; + let finalRoll; - const tBonus = finalRoll.results.bonus.result; - const tExploit = finalRoll.results.Exploit.result; + if (pasEnergie === false) { + finalRoll = await startRoll(exec.join(' ')); + const tJet = finalRoll.results.jet.result; - const rDegats = finalRoll.results.degats.dice; - const rViolence = finalRoll.results.violence.dice; + const tBonus = finalRoll.results.bonus.result; + const tExploit = finalRoll.results.Exploit.result; - const tDegats = finalRoll.results.degats.result; - const tViolence = finalRoll.results.violence.result; + const rDegats = finalRoll.results.degats.dice; + const rViolence = finalRoll.results.violence.dice; - const conditions = { - isTenebricide, - isDestructeur, - isFureur, - isSurprise, - isMeurtrier, - isUltraviolence, - }; + const tDegats = finalRoll.results.degats.result; + const tViolence = finalRoll.results.violence.result; - const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions); - - const finalComputed = { - jet: tJet + tBonus, - }; - - Object.assign(finalComputed, computed); - - finishRoll(finalRoll.rollId, finalComputed); - - if (tJet !== 0 && tJet === tExploit) { - const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`); - const tRExploit = exploitRoll.results.jet.result; - const exploitComputed = { - jet: tRExploit, + const conditions = { + isTenebricide, + isDestructeur, + isFureur, + isSurprise, + isMeurtrier, + isUltraviolence, }; - finishRoll(exploitRoll.rollId, exploitComputed); + const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions); + + const finalComputed = { + jet: tJet + tBonus, + }; + + Object.assign(finalComputed, computed); + + finishRoll(finalRoll.rollId, finalComputed); + + if (tJet !== 0 && tJet === tExploit) { + const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`); + const tRExploit = exploitRoll.results.jet.result; + const exploitComputed = { + jet: tRExploit, + }; + + finishRoll(exploitRoll.rollId, exploitComputed); + } + + if (sEnergie !== false && button === 'repeating_armeautre:armeautrepjvehicule') { + setAttrs({ energieVehicule: newEnergie }); + + if (newEnergie === 0) { + const noEnergieRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`); + finishRoll(noEnergieRoll.rollId, {}); + } + } + } else { + finalRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`); + finishRoll(finalRoll.rollId, {}); } }); }); diff --git a/Masks - A New Generation/translations/es.json b/Masks - A New Generation/translations/es.json index a8ae808ae3..0cfe0756bc 100644 --- a/Masks - A New Generation/translations/es.json +++ b/Masks - A New Generation/translations/es.json @@ -1,56 +1,56 @@ { - "playbook:": "Playbook:", - "choose-playbook": "Choose Playbook", - "thebeacon": "The Beacon", - "thebull": "The Bull", - "thedelinquent": "The Delinquent", - "thedoomed": "The Doomed", - "thejanus": "The Janus", - "thelegacy": "The Legacy", - "thenova": "The Nova", - "theoutsider": "The Outsider", - "theprotege": "The Protégé", - "thetransformed": "The Transformed", - "thereformed": "The Reformed", - "thenewborn": "The Newborn", - "theinnocent": "The Innocent", - "thestar": "The Star", - "thejoined": "The Joined", - "thebrain": "The Brain", - "thesoldier": "The Soldier", - "theharbinger": "The Harbinger", - "thenomad": "The Nomad", - "thescion": "The Scion", - "custom": "Custom", - "somethingelse": "Something Else", - "halcyoncityherald": "Halcyon City Herald Collection", - "secretsofaegis": "Secrets of A.E.G.I.S.", + "playbook:": "Libreto:", + "choose-playbook": "Elige un libreto", + "thebeacon": "El Símbolo", + "thebull": "La Toro", + "thedelinquent": "El Delincuente", + "thedoomed": "La Condenada", + "thejanus": "La Janus", + "thelegacy": "El Heredero", + "thenova": "El Nova", + "theoutsider": "La Alienígena", + "theprotege": "La Protegida", + "thetransformed": "El Transformado", + "thereformed": "La Reformada", + "thenewborn": "El Recién Nacido", + "theinnocent": "El Inocente", + "thestar": "La Estrella", + "thejoined": "El Unido", + "thebrain": "El Cerebro", + "thesoldier": "El Soldado", + "theharbinger": "El Heraldo", + "thenomad": "El Nómada", + "thescion": "El Descendiente", + "custom": "Personalizado", + "somethingelse": "Algo más", + "halcyoncityherald": "Colección del Halcyon City Herald", + "secretsofaegis": "Secretos de A.E.G.I.S.", "unbound": "Unbound", - "danger": "Danger", - "danger:": "Danger:", - "freak": "Freak", - "freak:": "Freak:", - "savior": "Savior", - "savior:": "Savior:", + "danger": "Peligro", + "danger:": "Peligro:", + "freak": "Monstruo", + "freak:": "Monstruo:", + "savior": "Salvador", + "savior:": "Salvador:", "superior": "Superior", "superior:": "Superior:", - "mundane": "Mundane", - "mundane:": "Mundane:", - "sumof5labels": "Sum of 5 Labels:", - "sumof6labels": "Sum of 6 Labels:", + "mundane": "Mundano", + "mundane:": "Mundano:", + "sumof5labels": "Suma de 5 Etiquetas:", + "sumof6labels": "Suma de 6 Etiquetas:", "bydefault3": "(by default this should be a 3)", - "bydefault5": "(by default this should be 5)", + "bydefault5": "(por defecto debería ser 5)", "advancementmayincrease": "(advancement may increase this)", - "directlyengageathreat": "(directly engage a threat)", - "unleashyourpowers": "(unleash your powers)", - "comfortorsupport": "(comfort or support)", - "piercethemask": "(pierce the mask)", - "defend": "(defend)", - "assessthesituation": "(assess the situation)", - "provokesomeone": "(provoke someone)", - "flat2d6": "Flat 2d6", - "rejectsomeonesinfluence": "(reject someone's influence)", - "rejectinfluence": "Reject Influence", + "directlyengageathreat": "(enfrentarte directamente a una amenaza)", + "unleashyourpowers": "(desencadenar tus poderes)", + "comfortorsupport": "(reconfortar o apoyar)", + "piercethemask": "(traspasar la máscara)", + "defend": "(defender)", + "assessthesituation": "(valorar la situación)", + "provokesomeone": "(provocar a alguien)", + "flat2d6": "Simple 2d6", + "rejectsomeonesinfluence": "(rechazar influencia de alguien)", + "rejectinfluence": "Rechazar Influencia", "customrolls": "(custom rolls)", "doom-desc": "What brings your Doom closer? Choose two:", "doomcloser1": "overexerting yourself", diff --git a/Monster of the Week Official/translations/ca.json b/Monster of the Week Official/translations/ca.json index 791004f47e..64135cb18b 100644 --- a/Monster of the Week Official/translations/ca.json +++ b/Monster of the Week Official/translations/ca.json @@ -640,86 +640,86 @@ "Wronged-advance3": "Trobes el rastre del monstre (o monstres) específic responsable de la teva pèrdua. El Guardià ha de fer que el següent misteri sigui sobre ell.", "Wronged-advance4": "Canvia l’objectiu de la teva revenja. Tria una nova raça de monstre. Conec la meva presa s’aplica ara en aquesta.", "Gumshoe": "Detectiu", - "luck-special-gumshoe": "When you spend Luck, your next regular case will actually be a mystery for your hunter group, and the monster will focus their attention on you!", - "Gumshoe-Adv-harm": "Extra harm box", + "luck-special-gumshoe": "Quan gastis Sort, el teu proper cas serà, de fet, un misteri per al teu grup de caçadors, i el monstre centrarà la seva atenció en tu!", + "Gumshoe-Adv-harm": "Casella extra de mal", "gumshoeCode": "Codi de detectiu", - "gumshoeCode-description": "With the agreement of the Keeper, pick a one-sentence Code that you adhere to.", - "gumshoeCode-example": "Example Codes: Murders must be punished. Monsters must be destroyed. Innocents must be saved. Laws must be enforced. Evil must be exposed. The weak must be protected from the powerful. Etc.", - "gumshoeCode-explain": "This Code defines you. Any time you violate your Code, you forfeit all Code-related moves (The Postman Always Rings Twice, The Long Goodbye) and the ability to spend Luck. These forfeits last until either the next mystery or you make amends. As long as you follow the Code, people will sense your sincerity; you receive +1 ongoing for manipulate someone and you may not be possessed or charmed by any sort of supernatural, alien, or demonic entity or item.", - "Gumshoe-fixed-move1": "Occult Confidential: The first time in each mystery that you observe a monster, minion, or phenomenon in action, you may ask one question from the investigate a mystery list.", - "Gumshoe-fixed-move2": "The Naked City: You have lots of personal contacts wherever you go. Pick four contact types from the following areas (or from other areas agreed to between you and the Keeper)", - "Gumshoe-fixed-move2-examples": "Academics, Accountants, Artists, Bartenders, Clergy, Conspiracy Theorists, Construction, Courts, Criminals (organised), Criminals (street), Cultists, Engineers, Espionage, Film and TV, Forensic Scientists, Fringe Scientists, Hackers, Journalists, Lawyers, Mechanics, Media, Medical Practitioners, Military, Morgue, Occult, Police (local), Police (national), Politicians, Prisons, Private Security, Property Developers, Stage Magicians, Technologists, Transportation", - "Gumshoe-fixed-move2-continued": "You can hit them up for info (+1 to one investigate a mystery roll) or small favours - but there may be a small cost involved. Personal contacts can provide more significant help but the Keeper decides their price on a case-by-case basis.", - "Gumshoe-move1": "The Postman Always Rings Twice: Twice per mystery - as long as you follow your Code - you may reroll a roll.", - "Gumshoe-move2": "The Long Goodbye: You can't die with an open case. Specifically, you suffer all harm as normal but your death is postponed until you have either completed or abandoned the case, or you break your Code (then all bets are off).", - "Gumshoe-move3": "Jessica Jones Entry: When you double-talk your way into a secure location, roll +Charm. On a 10+ pick three, on a 7-9 pick two, on a fail pick one", - "Gumshoe-move3.1": "You don't leave any trace of what you searched.", - "Gumshoe-move3.2": "You find what you wanted.", - "Gumshoe-move3.3": "You find something else that's important.", - "Gumshoe-move3.4": "You don't piss anyone off.", - "Gumshoe-move3.5": "You aren't recognised.", - "Gumshoe-move4": "Out of the Past: You have a police buddy who will do you big favours. Get in touch with them when you need to redirect law enforcement attention, get a heads-up on what operations are planned, or access police files. You now owe them; expect them to collect on it soon.", - "Gumshoe-move5": "Asphalt Jungle: You heal faster than normal people. Any time your harm gets healed, heal 1 harm extra. You are immune to all the harm move effects under '0 harm' and '1 harm' (when the Keeper would apply these, you ignore them).", - "Gumshoe-move6": "Hacker with a Dragon Tattoo: When you hack into a computer system, roll +Sharp. On 10+ pick two, on a 7-9 pick one. You", - "Gumshoe-move6.1": "...leave no traces.", - "Gumshoe-move6.2": "...learn something important.", - "Gumshoe-move6.3": "...can leave misinformation in place.", - "Gumshoe-move6.4": "...gain access to somewhere you want to get in to.", - "Gumshoe-move7": "\"Just one more thing\": When you ask a suspect leading questions, roll +Charm. On a 10+ hold 2, on a 7-9 hold 1, on a miss hold 1 but something bad is going to happen too. Spend your hold 1-for-1 to ask questions from this list", - "Gumshoe-move7.1": "One question from the investigate a mystery list.", - "Gumshoe-move7.2": "Was that a lie?", - "Gumshoe-move7.3": "What is something you left out that you didn't want me to notice?", - "Gumshoe-move7.4": "Are you complicit with any ongoing criminal activity?", - "Gumshoe-move7.5": "Did you commit this specific crime?", - "Gumshoe-gear-base": "A laptop, and a liquor flask", - "Gumshoe-recording": "Recording Devices", - "Gumshoe-gear1": "Night vision camera", - "Gumshoe-gear2": "Tiny digital video camera", - "Gumshoe-gear3": "Film camera (8mm or 16mm)", - "Gumshoe-gear4": "Digital sound recorder", - "Gumshoe-gear5": "Cassette tape recorder", - "Gumshoe-gear6": "Remote-controlled camera drone", - "Gumshoe-gear7": "Laser microphone", - "Gumshoe-gear8": "SLR camera", - "Gumshoe-weapon": "P.I. Weapons", - "Gumshoe-gear9": "Brass knuckles (1 harm, hand, small)", - "Gumshoe-gear10": ".38 revolver (2 harm, close, reload, loud)", - "Gumshoe-gear11": "9mm (2 harm, close, loud)", - "Gumshoe-gear12": "Magnum (3 harm, close, reload, loud)", - "Gumshoe-gear13": "Shotgun (3 harm, close, messy, loud)", - "Gumshoe-gear14": "Switchblade (1-harm, hand, small)", - "Gumshoe-advance1": "Add an extra harm box on the Dying side", - "Gumshoe-advance2": "Gain a Haven (your office, perhaps), like the Expert, with two options", - "Gumshoe-advance3": "Add four additional or new contacts for Naked City", - "Gumshoe-advance4": "Turn one of your contacts into an ally", - "Hex": "Hex", - "luck-special-hex": "When you spend Luck, until the end of the mystery, backlash on your spells will be extra nasty.", - "hex-weapons": "Wizardly Weapons", - "hex-items": "Any magical items or amulets that you use to perform magic", - "hex-gear1": ".38 revolver (2 harm, close, reload, loud)", - "hex-gear2": "Shotgun (3 harm, close, messy, loud)", - "hex-gear3": "Athame (2 harm, hand, magic, silver)", - "hex-gear4": "Shillelagh (1 harm, hand, balanced)", - "hex-gear5": "Crossbow (2 harm, close, slow)", - "hex-gear6": "Staff (1 harm, hand, balanced, large)", - "hex-advmove": "Advanced Hex Moves", - "hex-advmove-desc": "When you take the corresponding Improvement, choose one of these", - "hex-advmove1": "Apotheosis: You become a terrifying fount of mystical power. Once per mystery, after you suffer loss or harm, you may enter a state where you have both immense power and zero interest in the well-being of others. While in this state, all of the following are true", - "hex-advmove1.1": "You can fly.", - "hex-advmove1.2": "Use +Weird to kick some ass instead of +Tough. For this, you use innate magic as a weapon with (3 harm and any properties you choose).", - "hex-advmove1.3": "Ignore the component costs of your rotes.", - "hex-advmove1.4": "Ignore one requirement of every spell you cast with use magic.", - "hex-advmove1.5": "You have +1 ongoing to do everything.", - "hex-advmove1.6": "You cannot use the protect someone move.", - "hex-advmove1.7": "You have all the Temptations, and you have to indulge them whenever a good opportunity presents itself.", - "hex-advmove1.8": "When you try to resist a Temptation, roll +Cool. On a 10+, Apotheosis ends. On a 7-9, it ends with you doing something dangerous or cruel. On a miss, it ends only after you harm someone (or something) you love.", - "hex-advmove2": "Synthesis: You manage to conciliate your dark power with your moral impulses. You lose your Temptation. Whenever you use magic to help out or protect someone, you mark experience. Mark a second experience if you do it at the expense of your own safety.", - "hex-fixed-move1": "Bad Luck Charm: Whenever you use magic and miss, the backlash never affects you directly if there's someone else around to hit. It'll go for allies, other hunters, and innocent bystanders. Sometimes, every so often, it might even hit an enemy.", - "hex-move1": "Burn Everything: When you use magic to inflict harm, you can choose to inflict (3 harm, area, magic, obvious) or (3 harm, ignore-armour, magic, obvious).", - "hex-move2": "Cast the Bones: Once per mystery, you may perform some kind of divination (tarot, casting the runes, reading entrails, or something like that) to glean information about the future. When you do, roll +Sharp. On a 10+ hold 2, on a 7-9 hold 1. On a miss, you get some information, but it's not what you want to hear. Spend the hold 1-for-1 to ask any question from the investigate a mystery list, or from the following list", - "hex-move2.1": "What can I gain from this person/place/thing/creature?", - "hex-move2.2": "Who has touched this person/place/thing/creature before me?", - "hex-move2.3": "The Keeper will answer truthfully, with either a direct answer or how to find out more.", + "gumshoeCode-description": "D'acord amb el Guardià, escolliu un Codi d'una frase al qual us adheriu.", + "gumshoeCode-example": "Codis d'exemple: els assassinats han de ser castigats. Els monstres han de ser destruïts. Cal salvar els innocents. Les lleis s'han de fer complir. El mal ha de ser mostrat. Cal protegir els febles dels poderosos. Etc.", + "gumshoeCode-explain": "Aquest codi et defineix. Cada vegada que infringeixis el teu Codi, perdràs tots els moviments relacionats amb el Codi (El carter sempre sona dues vegades, El llarg adéu) i la possibilitat de gastar Sort. Aquestes pèrdues duren fins al següent misteri o fins que ho esmenis. Mentre segueixis el Codi, la gent notarà la teva sinceritat; reps +1 en curs per manipular algú i no pots ser posseït ni encantat per cap mena d'entitat o objecte sobrenatural, alienígena o demoníac.", + "Gumshoe-fixed-move1": "Confidències Ocultistes: la primera vegada en cada misteri que observes un monstre, un esbirro o un fenomen en acció, pots fer una pregunta de la llista investigar un misteri", + "Gumshoe-fixed-move2": "La Ciutat Nua: tens contactes personals allà on vagis. Trieu quatre tipus de contacte de les àrees següents (o d'altres àrees acordades entre tu i el Guardià)", + "Gumshoe-fixed-move2-examples": "Acadèmics, comptables, artistes, cambrers, clergues, teòrics de la conspiració, construcció, jutjats, crim (organitzat), criminals (de carrer), cultistes, enginyers, espionatge, cinema i televisió, científics forenses, científics marginals, pirates informàtics, periodistes, advocats, mecànics , Mitjans de comunicació, metges, militars, morgue, ocultisme, policia (local), policia (nacional), polítics, presons, seguretat privada, promotors immobiliaris, mags escènics, tecnòlegs, transport", + "Gumshoe-fixed-move2-continued": "Pots trobar-los per obtenir informació (+1 a un investigar misteri) o petits favors, però pot haver-hi un petit cost. Els contactes personals poden proporcionar una ajuda més important, però el Guardià decideix el seu preu cas a cas.", + "Gumshoe-move1": "El carter sempre truca dues vegades: dues vegades per misteri, sempre que seguiu el vostre codi, podeu tornar a tirar una tirada.", + "Gumshoe-move2": "El llarg adéu: No pots morir amb un cas obert. Concretament, pateixes tots els danys amb normalitat, però la teva mort s'ajorna fins que hagis completat o abandonat el cas, o fins que trenquis el teu Codi (llavors totes les apostes perden).", + "Gumshoe-move3": "Entrada Jessica Jones: quan us dirigiu a una ubicació segura, feu clic a +Encant. Amb 10+ tria tres opcions, amb 7-9 dues, i fallant, una", + "Gumshoe-move3.1": "No deixes cap rastre del que has cercat.", + "Gumshoe-move3.2": "Trobes el que volies.", + "Gumshoe-move3.3": "Trobeu una altra cosa que és important.", + "Gumshoe-move3.4": "No emprenyes a ningú.", + "Gumshoe-move3.5": "No et reconeix ningú.", + "Gumshoe-move4": "Fora del passat: tens un amic policia que et farà grans favors. Posa't en contacte amb ell quan necessitis redirigir l'atenció de les forces de l'ordre, informar-te de les properes operacions planejades o accedir als fitxers policials. Ara n'hi deus una; saps que te la demanaran aviat.", + "Gumshoe-move5": "Jungla d'asfalt: et cures més de pressa que la gent normal. Cada vegada que et cures mal, cureu 1 Mal addicional. Ets immune a tots els moviments d'efecte a \"0 Mal\" i \"1 Mal\" (quan el Guardià els apliqui, tu els ignores).", + "Gumshoe-move6": "Hacker amb un tatuatge de drac: quan pirateges un sistema informàtic, feu clic a +Agudesa. Amb 10+ tria duess, amb 7-9 tria una. Tu", + "Gumshoe-move6.1": "...no deixes rastre.", + "Gumshoe-move6.2": "...aprens alguna cosa important.", + "Gumshoe-move6.3": "... pots desinformar a canvi.", + "Gumshoe-move6.4": "... obtens accés allà on volies entrar.", + "Gumshoe-move7": "\"Només una cosa més\": quan fas preguntes a un sospitós, feu clic a +Encant. En un 10+ influència 2, en un 7-9 influència 1, en un error influència 1, però també passarà alguna cosa dolenta. Canvia 1 influència per fer 1 pregunta d'aquesta llista", + "Gumshoe-move7.1": "Una pregunta de la llista investiga un misteri", + "Gumshoe-move7.2": "Era mentida?", + "Gumshoe-move7.3": "Què has deixat de banda que no volies que notés?", + "Gumshoe-move7.4": "Ets còmplice d'alguna activitat delictiva en curs?", + "Gumshoe-move7.5": "Heu comès aquest delicte?", + "Gumshoe-gear-base": "Un ordinador portàtil i una ampolla de licor", + "Gumshoe-recording": "Dispositius d'enregistrament", + "Gumshoe-gear1": "Càmera de visió nocturna", + "Gumshoe-gear2": "Càmera de vídeo digital petita", + "Gumshoe-gear3": "Càmera de filmar (8 mm o 16 mm)", + "Gumshoe-gear4": "Gravadora digital de so", + "Gumshoe-gear5": "Gravadora de casset", + "Gumshoe-gear6": "Dron amb càmera controlat a distància", + "Gumshoe-gear7": "Micròfon làser", + "Gumshoe-gear8": "Càmera SLR", + "Gumshoe-weapon": "Armes de detectiu", + "Gumshoe-gear9": "Puny americà (1-mal a-mà petit)", + "Gumshoe-gear10": "Revòlver .38 (2-mal a-prop recàrrega sorollós)", + "Gumshoe-gear11": "Pistola 9mm (2-mal a-prop sorollosa)", + "Gumshoe-gear12": "Màgnum (3-mal a-prop recàrrega sorollosa)", + "Gumshoe-gear13": "Escopeta (3-mal a-prop bruta sorollosa)", + "Gumshoe-gear14": "Navalla automàtica (1 dany, mà, petit)", + "Gumshoe-advance1": "Afegiu una casella de Mal al costat de Mort", + "Gumshoe-advance2": "Guanya un refugi (potser una oficina), com el de l’expert, amb dues\nopcions", + "Gumshoe-advance3": "Afegeix quatre contactes addicionals o nous per a Ciutat Nua", + "Gumshoe-advance4": "Converteix un dels teus contactes en un aliat", + "Hex": "Maleïr", + "luck-special-hex": "Quan gastes Sort la reacció als teus encanteris serà molt desagradable fins al final del misteri.", + "hex-weapons": "Armes de mag", + "hex-items": "Qualsevol objecte màgic o amulet que utilitzis per fer màgia", + "hex-gear1": "Revòlver .38 (2-mal a-prop recàrrega sorollós)", + "hex-gear2": "Escopeta (3-mal a-prop bruta sorollosa)", + "hex-gear3": "Athame (2-mal, mà, màgia, plata)", + "hex-gear4": "Shillelagh (1-mal a-mà equilibrada)", + "hex-gear5": "Ballesta (2-mal a-prop lenta)", + "hex-gear6": "Bastó (1-mal, mà, equilibrat, gran)", + "hex-advmove": "Moviments avançats del Maleït", + "hex-advmove-desc": "Quan aconsegueixis una Millora, tria una d'aquestes", + "hex-advmove1": "Apoteosi: et converteixes en una font terrorífica de poder místic. Una vegada per misteri, després de patir una pèrdua o mal, pots entrar en un estat on tens un poder immens i zero interès en el benestar dels altres. En aquest estat, tot el que segueix és cert", + "hex-advmove1.1": "Pots volar.", + "hex-advmove1.2": "Fes servir +Anomalia per fotre d'hòstiesl en lloc de +Duresa. Per fer això, uses la màgia innata com a arma amb (3-mal i les etiquetes que escullis).", + "hex-advmove1.3": "Ignora el cost en components de les teves Fórmules.", + "hex-advmove1.4": "Ignora un requisit de cada encanteri quan facis servir màgia.", + "hex-advmove1.5": "Tens +1 en curs per fer-ho tot.", + "hex-advmove1.6": "No pots utilitzar el moviment protegir algú.", + "hex-advmove1.7": "Tens totes les temptacionsi les has de satisfer sempre que es presenti una bona oportunitat.", + "hex-advmove1.8": "Quan intenteu resistir una Temptació, feu clic a +Serenitat. Amb un 10+, Apoteosi acaba. Amb un 7-9, acaba quan fas alguna cosa perillosa o cruel. En cas de fracàs, només acaba quan facis mal a algú (o alguna cosa) que estimes.", + "hex-advmove2": "Síntesi: aconsegueixes conciliar el teu poder fosc amb els teus impulsos morals. Perds la teva Temptació. Sempre que facis servir la màgia per ajudar o protegir algú, marca l'experiència. Marca una segona experiència si ho fas a costa de la teva pròpia seguretat.", + "hex-fixed-move1": "Amulet de mala sort: sempre que facis servir la màgia i fracassis, la reacció no t'afectarà directament si hi ha algú més a tocar. Anirà per als aliats, altres caçadors i espectadors innocents. De vegades, de tant en tant, fins i tot pot colpejar un enemic.", + "hex-move1": "Cremar-ho tot: quan facis servir la màgia per fer mal, pots triar infligir (3-mal, àrea, màgia, evident) o (3-mal, ignorar-armadura, màgia, evident).", + "hex-move2": "Tirar els ossos: una vegada per misteri, podeu fer algun tipus d'endevinació (tarot, llançament de runes, lectura de les entranyes o alguna cosa semblant) per obtenir informació sobre el futur. Quan ho facis, tira +Agudesa. Amb un 10+ influència 2, amb un 7-9, 1. Amb un fracàs, obtens informació, però no és el que vols escoltar. Gasta la influència 1 per 1 per fer qualsevol pregunta de la llista investigar un misteri o de la llista següent", + "hex-move2.1": "Què puc guanyar d'aquesta persona/lloc/cosa/criatura?", + "hex-move2.2": "Qui ha estat en contacte amb aquesta persona/lloc/cosa/criatura abans que jo?", + "hex-move2.3": "El guardià respondrà de manera veraç, amb una resposta directa o sobre com esbrinar més.", "hex-move3": "Force of Will: When you apply your will to dispelling a magical effect, blocking a spell, or suspending a Phenomenon, roll +Weird. On a hit, momentary magics are cancelled completely, and long-lasting spells and effects are suspended temporarily. On a 10+, you can also spend Luck to instantly snuff out a powerful spell or strange effect. On a 7-9, you take 1 harm as the strain of dismissing magic unravels you.", "hex-move4": "Luck of the Damned: After you use magic or cast a rote, take +1 forward.", "hex-move5": "Sympathetic Token: As long as you carry a personal object belonging to someone, such as a lock of hair, a full set of toenails, or a treasured family heirloom, you get +1 ongoing to use magic against them. You can also use magic against them at a distance. If you miss, the token is lost, destroyed, or loses its power.", @@ -736,7 +736,7 @@ "temptation5": "Carnage: Utilize magic to inflict gruesome violence.", "temptation6": "Secrets: Utilize magic to discover forbidden, dangerous knowledge.", "temptation7": "Glory: Utilize magic to steal someone’s thunder.", - "rotes": "Rotes", + "rotes": "Fórmules", "rote-desc1": "Whenever you use magic, you can decide afterwards that a particular spell is a Rote that you know. You know how to cast it off the top of your head. Write down in detail the name of the Rote, what it requires, and what it does on a 10+, a 7-9, and a miss. A Rote is a bit more powerful than a basic use magic spell; its glitches are less onerous and its effect may be a little bigger. Unlike regular use magic, the cost and consequences for failing a Rote are known to you in advance.", "rote-desc2": "Choose two fixed requirements for each Rote from this list", "rote-req1": "Magic words and ritual gestures.", @@ -745,7 +745,7 @@ "rote-req4": "Runes or symbols written or engraved on a surface (which must be prepared).", "rote-req5": "A spilling of blood (1 harm to you or a willing participant).", "rote-desc3": "After you cast it for the first time, treat each Rote as a custom move - a specialised version of use magic, which is built with the Keeper.", - "rote-list": "List of Rotes", + "rote-list": "Llista de fórmules", "rote-desc4": "You start out knowing up to one Rote, which you can choose when creating your character or during play. You can learn more by taking corresponding Improvements. When you do, you can choose the new Rote right away or in play.", "rote-desc5": "You roll +Weird to cast a Rote, which requires you to have the needed items at hand and the ability to physically use them.", "rote-name": "Rote Name", @@ -754,7 +754,7 @@ "hex-advance1": "Take another Rote", "hex-advance2": "or an additional Rote", "hex-advance3": "Gain a Haven, like the Expert, with two options", - "hex-advance4": "Take another two Rotes", + "hex-advance4": "Agafa dues Fórmules més", "hex-advance5": "Choose one Advanced Hex Move", "Pararomantic": "Pararomantic", "luck-special-pararomantic": "When you spend Luck, mark one Relationship Status box. The Keeper will bring Fate of your Love into play.", @@ -1198,7 +1198,7 @@ "starting": "Starting", "choose-starting-stats": "[Choose Set]", "stats-overwrite-warning": "Choose a starting set. (This will overwrite current stats values!)", - "current-hold": "Current Hold", + "current-hold": "Influència actual", "advanced": "Advanced", "instructions": "Instructions", "trigger-luck-special": "When you mark Luck, you trigger your playbook's Luck Special.", diff --git a/Nephilim-Legende/nephilim-legende.html b/Nephilim-Legende/nephilim-legende.html index 454e5ec4ae..9176563d97 100644 --- a/Nephilim-Legende/nephilim-legende.html +++ b/Nephilim-Legende/nephilim-legende.html @@ -1440,6 +1440,7 @@ + @@ -1907,6 +1908,7 @@ + diff --git a/Neuroshima/Inwentarz.html b/Neuroshima/Inwentarz.html new file mode 100644 index 0000000000..b170755f4f --- /dev/null +++ b/Neuroshima/Inwentarz.html @@ -0,0 +1,63 @@ +
+

INWENTARZ

+

Uzbrojenie

+
Broń Ręczna
+
+ + + +A + + +O + +
+ +
+
+
Broń Palna
+
+ + + Zacięcie + PP +
+ Mag/ +
+ Szybkostrzelność + +
+
+
+

Pancerz

+
+ +
+
+

Reputacja

+
+ +
+
+

Przyjaciele i znajomi

+
+ +
+
+

Przedmioty

+
+ + + kg + +
+ +
+

Notatki

+
+ +
+
+
\ No newline at end of file diff --git a/Neuroshima/Neuroshima.css b/Neuroshima/Neuroshima.css index 0994de096f..194f839a82 100644 --- a/Neuroshima/Neuroshima.css +++ b/Neuroshima/Neuroshima.css @@ -1,17 +1,664 @@ +@import url('https://fonts.googleapis.com/css?family=Special+Elite&family=Roboto+Condensed&family=Roboto+Mono:wght@500&display=swap'); + +/******************************************************************/ +/************************** COMMON & NAV **************************/ +.charsheet div.main { + width:100%; + max-width: 880px; +} + +/*Configure the tab buttons*/ +.charsheet .page-wspolczynniki, +.charsheet .page-umiejetnosci, +.charsheet .page-inwentarz { + display: none; + border:3px solid rgba(0,0,0,0.7); + +} + +.charsheet div.umiejetnosci-holder { + display: flex; + flex-direction: row; +} + +/* show the selected tab */ +.charsheet .sheet-tabstoggle[value="wspolczynniki"] ~ div.page-wspolczynniki, +.charsheet .sheet-tabstoggle[value="umiejetnosci"] ~ div.page-umiejetnosci, +.charsheet .sheet-tabstoggle[value="inwentarz"] ~ div.page-inwentarz { + display: block; +} + +.charsheet div.header { + display: flex; + flex-direction: row; + justify-content: space-between; + margin-bottom:-3px; +} + +.charsheet div.header button { + font-family: 'Roboto Mono', monospace; + background-color: transparent; + border:3px solid rgba(0,0,0,0.7); + color: rgba(0,0,0,0.8); + padding: 15px 32px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 21px; +} +/************************** COMMON & NAV **************************/ +/******************************************************************/ + +/* Remove +/- buttons from number input - we want number type for validation only */ +.charsheet input[type=number] { + -moz-appearance: textfield; +} +.charsheet input[type=number]::-webkit-outer-spin-button, +.charsheet input[type=number]::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + + +textarea, input { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.charsheet { + background-image: url("https://i.imgur.com/JabRfGu.png"); + background-repeat: repeat-y; +} + .character { font-size: 12px; font-weight: bolder; font-family: "Times New Roman"; } -textarea { - display:block; - resize:vertical; - min-height: 2em; - max-height: 2.5em; - height: 2em; +html,body { + height:100%; + } -html,body{ - height:100%; -} \ No newline at end of file + +.charsheet input.big-black-box, +.charsheet select.big-black-box, +.charsheet textarea.big-black-box { + background-color: transparent; + border:3px solid rgba(0,0,0,0.7); + color: rgba(0,0,0,0.8); + font-family: 'Special Elite', cursive; + font-weight: bold; + font-size:14px; + width:100%; + text-align:center; + height: 25px; + resize:none; + overflow:hidden; +} + +.charsheet input.big-inactive-box { + background-color: rgba(0,0,0,0.3); + border:3px solid rgba(0,0,0,0.7); + color: rgba(0,0,0,0.8); + font-family: 'Special Elite', cursive; + font-weight: bold; + font-size:14px; + width:100%; + text-align:center; + height: 25px; + resize:none; + overflow:hidden; +} + + +.charsheet input.subtle-black-box { + background-color: rgba(0,0,0,0.8); + border:0px none transparent; + color: rgba(255,255,255,1); + font-family: 'Special Elite', cursive; + font-size:14px; + width:100%; + text-align:left; + height: 25px; + resize:none; + overflow:hidden; +} + +.charsheet table.charinfo h5 { + font-family: 'Roboto Mono', monospace; + margin-bottom:-2px; + font-size:13px; +} +.charsheet table.charinfo { + width:400px; +} + +.charsheet table.charinfo td { + padding-left:4px; + padding-right:4px; +} + +/******************************************************************/ +/******************* FANCY HEADINGS WITH LINES ********************/ +.charsheet h1 { + overflow: hidden; + text-align: center; + margin-left:20px; + margin-right:20px; +} + +.charsheet h1:before, +.charsheet h1:after { + background-color: rgba(0,0,0,0.7); + content: ""; + display: inline-block; + height: 3px; + position: relative; + vertical-align: middle; + width: 50%; +} +.charsheet h1:before { + right: 0.5em; + margin-left: -50%; +} +.charsheet h1:after { + left: 0.5em; + margin-right: -50%; +} + + + +.charsheet h3 { + overflow: hidden; + text-align: center; +} +.charsheet h3:before, +.charsheet h3:after { + background-color: #000; + content: ""; + display: inline-block; + height: 1px; + position: relative; + vertical-align: middle; + width: 50%; +} +.charsheet h3:before { + right: 0.5em; + margin-left: -50%; +} +.charsheet h3:after { + left: 0.5em; + margin-right: -50%; +} +/******************* FANCY HEADINGS WITH LINES ********************/ +/******************************************************************/ + +/******************************************************************/ +/******************* BASE STATS / WSPOŁCZYNNIKI *******************/ +table.wspolczynniki { + text-align: center; + margin-left: auto; + margin-right: 10px; +} + +table.wspolczynniki td { + padding:0px; +} + +table.wspolczynniki td.label { + text-align: right; +} + +table.wspolczynniki h2 { + font-family: 'Roboto Mono', monospace; + font-size: 35px; +} + +table.wspolczynniki h5 { + font-family: 'Roboto Mono', monospace; + font-size: 14px; +} + +table.wspolczynniki h6 { + font-family: 'Roboto Mono', monospace; + font-size: 11px; +} + +table.wspolczynniki input[type=number] { + background-color: transparent; + text-align:center; + border-color: transparent; + background-position:center; + background-repeat:no-repeat; + text-align:center; + width:54px !important; + height:54px !important; + color: rgba(0,0,0,0.8); + font-family: 'Special Elite', cursive; + font-size:16px; +} + + + +table.wspolczynniki hr { + border: 2px solid rgba(0,0,0,0.7); + border-radius: 3px; + margin:0; +} + +table.wspolczynniki input[type=number].wsp_statbase { + background-image: url("https://i.imgur.com/0cJT0tA.png"); + font-family: 'Candal', sans-serif; + font-size:16px; +} + +table.wspolczynniki tr.wsp_modifier input[type=number] { + background-image: url("https://i.imgur.com/BpOcSEN.png"); + font-family: 'Candal', sans-serif; + color: rgba(0,0,0,0.8); + font-size:16px; +} + +table.wspolczynniki input[type=number].wsp-square-display { + background-image: url("https://i.imgur.com/cckAswO.png"); +} + +table.wspolczynniki input[type=number].wsp-circle-display { + background-image: url("https://i.imgur.com/E0rRVzN.png"); +} + +table.wspolczynniki input[type=number].wsp-star-display { + background-image: url("https://i.imgur.com/LlIa5Um.png"); +} + +.wsp-square-control[value*="-"] + .wsp-square-display, +.wsp-square-control[value="0"] + .wsp-square-display { + background-image: url("https://i.imgur.com/ZASLaaC.png") !important; + color: rgba(0,0,0,0); +} + +.wsp-circle-control[value*="-"] + .wsp-circle-display, +.wsp-circle-control[value="0"] + .wsp-circle-display { + background-image: url("https://i.imgur.com/YJ7jrGu.png") !important; + color: rgba(0,0,0,0); +} + +.wsp-star-control[value*="-"] + .wsp-star-display, +.wsp-star-control[value="0"] + .wsp-star-display { + background-image: url("https://i.imgur.com/ra0N7ru.png") !important; + color: rgba(0,0,0,0); +} +/******************* BASE STATS / WSPOŁCZYNNIKI *******************/ +/******************************************************************/ + + + +.charsheet table.health { + outline:3px solid rgba(0,0,0,0.8); + margin-top:10px; +} + +/* Suma Kar */ +.charsheet p.health_effects { + font-family: 'Roboto Mono', monospace; + color: rgba(0,0,0,0.8); + font-size: 16px; + margin:5px; +} + +.charsheet span.percent { + font-family: 'Roboto Mono', monospace; + color: rgba(0,0,0,0.8); + font-size: 18px; +} + +.charsheet span.bodypart_title { + font-family: 'Roboto Mono', monospace; + color: rgba(0,0,0,0.8); + font-size: 14px; +} + +.charsheet hr.bodypart_hr { + margin-left:2px; + margin-right:2px; + margin-top:-2px; + margin-bottom:0px; + border:1px solid rgba(0,0,0,0.8); +} + +/******************************************************************/ +/**************************** FIELDSETS ***************************/ +.charsheet .repcontrol[data-groupname=repeating_injuries-general], +.charsheet .repcontrol[data-groupname=repeating_injuries-head], +.charsheet .repcontrol[data-groupname=repeating_injuries-torso], +.charsheet .repcontrol[data-groupname=repeating_injuries-left-hand], +.charsheet .repcontrol[data-groupname=repeating_injuries-left-foot], +.charsheet .repcontrol[data-groupname=repeating_injuries-right-hand], +.charsheet .repcontrol[data-groupname=repeating_injuries-right-foot], +.charsheet .repcontrol[data-groupname=repeating_perks] +{ + width: 100%; + justify-content: space-between; + display:flex; + margin:3px; +} + +.charsheet [data-groupname=repeating_injuries-general] .repitem, +.charsheet [data-groupname=repeating_injuries-head] .repitem, +.charsheet [data-groupname=repeating_injuries-torso] .repitem, +.charsheet [data-groupname=repeating_injuries-left-hand] .repitem, +.charsheet [data-groupname=repeating_injuries-left-foot] .repitem, +.charsheet [data-groupname=repeating_injuries-right-hand] .repitem, +.charsheet [data-groupname=repeating_injuries-right-foot] .repitem, +.charsheet [data-groupname=repeating_perks] .repitem +{ + justify-content: space-around; + display:flex; + margin-top:4px; +} + +.charsheet .repcontrol[data-groupname=repeating_injuries-general] button.repcontrol_edit, +.charsheet .repcontrol[data-groupname=repeating_injuries-general] button.repcontrol_add, +.charsheet .repcontrol[data-groupname=repeating_injuries-head] button.repcontrol_edit, +.charsheet .repcontrol[data-groupname=repeating_injuries-head] button.repcontrol_add, +.charsheet .repcontrol[data-groupname=repeating_injuries-torso] button.repcontrol_edit, +.charsheet .repcontrol[data-groupname=repeating_injuries-torso] button.repcontrol_add, +.charsheet .repcontrol[data-groupname=repeating_injuries-left-hand] button.repcontrol_edit, +.charsheet .repcontrol[data-groupname=repeating_injuries-left-hand] button.repcontrol_add, +.charsheet .repcontrol[data-groupname=repeating_injuries-left-foot] button.repcontrol_edit, +.charsheet .repcontrol[data-groupname=repeating_injuries-left-foot] button.repcontrol_add, +.charsheet .repcontrol[data-groupname=repeating_injuries-right-hand] button.repcontrol_edit, +.charsheet .repcontrol[data-groupname=repeating_injuries-right-hand] button.repcontrol_add, +.charsheet .repcontrol[data-groupname=repeating_injuries-right-foot] button.repcontrol_edit, +.charsheet .repcontrol[data-groupname=repeating_injuries-right-foot] button.repcontrol_add, +.charsheet .repcontrol[data-groupname=repeating_perks] button.repcontrol_add, +.charsheet .repcontrol[data-groupname=repeating_perks] button.repcontrol_edit + { + font-family: 'Roboto Mono', monospace; + background: rgba(0,0,0,0.15); + border: 1px solid rgba(0,0,0,0.8); + color: rgba(0,0,0,0.8); + font-size: 11px; + box-shadow:none; + padding: 1px 10px 1px 10px; + margin: 0px 5px 0px 0px; + border-radius: 15px; +} +/**************************** FIELDSETS ***************************/ +/******************************************************************/ +/******************************************************************/ +/****************************** HEALTH ****************************/ +.charsheet table.health select { + font-family: 'Special Elite', cursive; + font-weight: bold; + background-color: rgba(0,0,0,0); + outline:2px solid rgba(0,0,0,0.8); + width:32px; + height:21px; + font-size:11px; + margin:0px; + padding:0px; + box-shadow:none; +} + +.charsheet table.health input[type=number] { + font-size:9px; + height:25px; + + background-color: transparent; + border:2px solid rgba(0,0,0,0.7); + color: rgba(0,0,0,0.8); + font-family: 'Special Elite', cursive; + font-size:15px; + width:36px; + text-align:center; + resize:none; + overflow:hidden; + margin-top: -2px; +} + +.charsheet table.health .health_section_right { + height:135px; + width:125px; + vertical-align:top; + text-align:left; +} + +.charsheet table.health .health_section_left { + height:135px; + width:125px; + vertical-align:top; + text-align:right; +} + +.charsheet textarea.effect { + background-color: transparent; + border:0px none transparent; + color: rgba(0,0,0,0.8); + font-family: 'Special Elite', cursive; + font-size:13px; + width:100%; + text-align:left; + height: 100px; + resize:none; + overflow:hidden; + -moz-appearance:none; + margin-top:5px; + padding:0px; +} + +.charsheet div.effectconfig { + width:135px; + justify-content: space-around; + display:flex; + margin-top:5px; +} +/****************************** HEALTH ****************************/ +/******************************************************************/ +/******************************************************************/ +/**************************** ABILITIES ***************************/ +.charsheet table.umj-table { + font-family: 'Roboto Mono', monospace; + color: black; + border-spacing: 5px; + border-collapse: separate; + width:100%; +} +.charsheet td.umj-stat-cell { + border-right:3px solid rgba(0,0,0,0.7); + width:30px; +} +.charsheet td.umj-group-cell { + width:160px; +} +.charsheet td.umj-skill-cell { + background-color: rgba(0,0,0,0.8); + color: white; + vertical-align:top; +} +.charsheet td.umj-skill-cell input[type=number] { + height: 100% !important; + width:26px !important; + background-color: transparent; + border: 0px none transparent; + color: rgba(255,255,255,1); + font-family: 'Special Elite', cursive; + font-size:14px; + font-weight: bolder; +} + +.charsheet span.umj-stat-span { + font-size:22px; +} +/**************************** ABILITIES ***************************/ +/******************************************************************/ +/******************************************************************/ +/************************** ROLL PARAMETERS ***********************/ +/* Configure a container for the radio buttons. */ +.charsheet .sheet-radios { + width:250px; + display: flex; + flex-direction: column; +} + +/* Configure the button styling. This example makes it look like a radio. */ +.charsheet button.sheet-radio { + padding: 5px; + display: flex; + justify-content: center; + align-items: center; + background: transparent; + border: 0px none transparent; + font-family: 'Roboto Mono', monospace; + color: rgba(0,0,0,0.8); + font-size: 22px; + font-weight: normal; +} + + + +.charsheet button.sheet-radio > span.sheet-checked { + color:red; + text-decoration:underline; +} +/* Hide the "checked" section of the radio if the attribute value does not match the radio */ +.charsheet input.sheet-radio:not([value="0"]) ~ button.sheet-radio-0 > span.sheet-checked, +.charsheet input.sheet-radio:not([value="1"]) ~ button.sheet-radio-1 > span.sheet-checked, +.charsheet input.sheet-radio:not([value="2"]) ~ button.sheet-radio-2 > span.sheet-checked, +.charsheet input.sheet-radio:not([value="3"]) ~ button.sheet-radio-3 > span.sheet-checked, +.charsheet input.sheet-radio:not([value="4"]) ~ button.sheet-radio-4 > span.sheet-checked, +.charsheet input.sheet-radio:not([value="5"]) ~ button.sheet-radio-5 > span.sheet-checked, +.charsheet input.sheet-radio:not([value="6"]) ~ button.sheet-radio-6 > span.sheet-checked +{ + color:black; + text-decoration:unset; +} + +.charsheet button.sheet-radio-selected > span.sheet-checked { + background-color: rgba(0,0,0,0.3); + font-weight: bold; + padding: 5px; + margin:-5px; +} +.charsheet input.sheet-radio-selected:not([value="0"]) ~ button.sheet-radio-0 > span.sheet-checked, +.charsheet input.sheet-radio-selected:not([value="1"]) ~ button.sheet-radio-1 > span.sheet-checked, +.charsheet input.sheet-radio-selected:not([value="2"]) ~ button.sheet-radio-2 > span.sheet-checked, +.charsheet input.sheet-radio-selected:not([value="3"]) ~ button.sheet-radio-3 > span.sheet-checked, +.charsheet input.sheet-radio-selected:not([value="4"]) ~ button.sheet-radio-4 > span.sheet-checked, +.charsheet input.sheet-radio-selected:not([value="5"]) ~ button.sheet-radio-5 > span.sheet-checked, +.charsheet input.sheet-radio-selected:not([value="6"]) ~ button.sheet-radio-6 > span.sheet-checked +{ + background-color: transparent; + font-weight: normal; +} + +.charsheet div.param-page { + width:200px; +} + +.charsheet div.params-holder { + display: flex; + flex-direction: row; + justify-content: flex-start; +} + +.charsheet div.param-row { + display: flex; + justify-content: space-between; +} + +.charsheet span.postfix { + font-family: 'Candal', sans-serif; + font-size: 40; +} + +.charsheet .layout-element { + visibility: hidden; +} + +.charsheet button.skill_test_button { + background: url("https://i.imgur.com/du7NH2W.png") no-repeat; + cursor: pointer; + height: 26px; + margin-left: 2px; + margin-top:2px; + padding-left: 30px; + border: none; + font-size: 12px; +} + +.charsheet button.wsp_test_button { + background: url("https://i.imgur.com/EiubfwU.png") no-repeat; + cursor: pointer; + height: 32px; + margin-left: 2px; + margin-top:2px; + padding-left: 30px; + border: none; + font-size: 12px; +} + + +/************************** ROLL PARAMETERS ***********************/ +/******************************************************************/ + +/******************************************************************/ +/*************************** ROLL TEMPLATES ***********************/ + +.sheet-rolltemplate-test div.sheet-template-container { + border: 2px solid #000 !important; + border-radius: 3px 3px 3px 3px; +} + +.sheet-rolltemplate-test .sheet-template-header { + background-color: rgba(112, 32, 130,1); + color: #000; + padding: 2px; + border-bottom: 1px solid black; + line-height: 1.6em; + font-size: 1.2em; +} + + + +/** +.sheet-rolltemplate-test div { + padding: 5px; + border-bottom: 1px solid black; +} + +.sheet-rolltemplate-test div:nth-child(odd) { + background-color: rgba(217, 217, 214,1); +} + +.sheet-rolltemplate-test div:nth-child(even) { + background-color: rgba(233, 233, 233,1); +} +**/ + +.sheet-rolltemplate-test .inlinerollresult { + display: inline-block; + min-width: 1.5em; + text-align: center; + border: 2px solid rgba(167, 168, 170,1); +} + + +/** Reverse 1 - 20 highlight from default (20 good) to 1 good **/ +.sheet-rolltemplate-test .fullfail, +.sheet-rolltemplate-test-wsp .fullfail { + border: 2px solid #3FB315 !important; + +} + +.sheet-rolltemplate-test .fullcrit, +.sheet-rolltemplate-test-wsp .fullcrit { + border: 2px solid #B31515 !important; +} + + +/*************************** ROLL TEMPLATES ***********************/ +/******************************************************************/ \ No newline at end of file diff --git a/Neuroshima/Neuroshima.html b/Neuroshima/Neuroshima.html index 46f487ac29..8ca9e29ef8 100644 --- a/Neuroshima/Neuroshima.html +++ b/Neuroshima/Neuroshima.html @@ -1,1099 +1,1688 @@ -

Karta Postaci

-
-
- +
+
+
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + +
Imie:
Pochodzenie: - -
Cecha Pochodzenia: - -
Profesja:
Cecha Profesji: - -
Specjalizacja:
Choroba:
Lek:
PD:
+
Ksywa:
+ +
+
Imię:
+ +
+
Nazwisko:
+ +
+
Specjalizacja:
+ +
+
Pochodzenie:
+ +
+
Profesja:
+ +
+
Choroba:
+ +
+
Lek:
+ +
+
PD:
+ +
+

Sztuczki

+
+
+ + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Zr

+
+

Pc

+
+

Ch

+
+

Sp

+
+

Bd

+
+
Współczynnik
+
+ + + + + + + + + +
+
Modyfikator
+
Choroby, efekty
+
+ + + + + + + + + +
+
+
+
Łatwy
+
<0 % +2
+
+ + + + + + + + + + + + + + +
+
Przeciętny
+
0 - 10 % 0
+
+ + + + + + + + + + + + + + +
+
Problematyczny
+
11 - 30 % -2
+
+ + + + + + + + + + + + + + +
+
Trudny
+
31 - 60 % -5
+
+ + + + + + + + + + + + + + +
+
Bardzo Trudny
+
61 - 90 % -8
+
+ + + + + + + + + + + + + + +
+
Cholernie Trudny
+
91 - 120 % -11
+
+ + + + + + + + + + + + + + +
+
Fart
+
121 - ... % -15
+
+ + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

KARY RANY EFEKTY

+
+ + +

+ Suma Kar: % +
+ Draśnięć: / 27 +

+
+ + Tułów + +
+
+ + + + % +
+
+ + Głowa + +
+
+ + + + % +
+
+ + Ręka Lewa + +
+
+ + + + % +
+
+ + Ręka Prawa + +
+
+ + + + % +
+
+ + Noga Lewa + +
+
+ + + + % +
+
+ + Noga Prawa + +
+
+ + + + % +
+
+

Inne kary i Efekty

+
+
+ + + % +
+ +
+
+
-
-
-

Inicjatywa

- -Inicjatywa: 3(d20-Zrecznosc), odrzuć najwyższy wynik. -
-
-

Współczynniki

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Zręczność:
Percepcja:
Charakter:
Spryt:
Budowa:
Szczęście:
+
+

Ustawienia rzutu

+ + +
+
+ + + + + + + + + +
+
+
+ +
+
+ +
+
+ + + % +
+
+ + + % +
+
+ + + % +
+
+
+ + + % +
+
+
+
+

=== TBD ===

+
+
-
-
-

Umiejętności

-
-
- - - - - - - +

Umiejętności

+ +
- Walka Wręcz - Bijatyka - -
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Zr +
+ +
Walka wręcz + + + + + + + + +
+ Broń Strzelecka + + + + + + + + + + + +
+ Broń Dystansowa + + + + + + + + + +
+ Prowadzenie Pojazdów + + + + + + + + + +
+ Zdolności Manualne + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Pc +
+ +
Orientacja w Terenie + + + + + + + + +
+ Spostrzegawczość + + + + + + + + + +
+ Kamuflaż + + + + + + + + + +
+ Przetrwanie + + + + + + + + + +
- Broń Ręczna - - - - + + + + + + + + + + + + + + + + + + + + + + +
+ Ch +
+ +
+ Negocjacje + + + + + + + + + +
+ Empatia + + + + + + + + + +
+ Siła woli + + + + + + + + + +
- Rzucanie - - - - - - - - Broń Strzelecka - - Pistolety - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Sp +
+ +
+ Medycyna + + + + + + + + + +
+ Technika + + + + + + + + + +
+ Sprzęt + + + + + + + + + +
+ Pirotechnika + + + + + + + + + +
- Karabiny - - - - + + + + + + + + + + + + + + + + +
+ Bd +
+ +
+ Sprawność + + + + + + + + + +
+ Jeździectwo + + + + + + + + + +
+

INWENTARZ

+

Uzbrojenie

+
Broń Ręczna
+
+ + + +A + + +O + +
+ +
+
+
Broń Palna
+
+ + + Zacięcie + PP +
+ Mag/ +
+ Szybkostrzelność + +
+
+
+

Pancerz

+
+ +
+
+

Reputacja

+
+ +
+
+

Przyjaciele i znajomi

+
+ +
+
+

Przedmioty

+
+ + + kg + +
- Broń Maszynowa - - - - - - - - Broń Dystansowa - - Łuk - - - - +
+

Notatki

+
+ +
+
+
+
+
+ + {{#rollTotal() computed::finaldifficulty 0}} +

Łatwy + {{/rollTotal() computed::finaldifficulty 0}} + {{#rollTotal() computed::finaldifficulty 1}} +

Przeciętny + {{/rollTotal() computed::finaldifficulty 1}} + {{#rollTotal() computed::finaldifficulty 2}} +

Problematyczny + {{/rollTotal() computed::finaldifficulty 2}} + {{#rollTotal() computed::finaldifficulty 3}} +

Trudny + {{/rollTotal() computed::finaldifficulty 3}} + {{#rollTotal() computed::finaldifficulty 4}} +

Bardzo Trudny + {{/rollTotal() computed::finaldifficulty 4}} + {{#rollTotal() computed::finaldifficulty 5}} +

Cholernie Trudny + {{/rollTotal() computed::finaldifficulty 5}} + {{#rollTotal() computed::finaldifficulty 6}} +

Fartowny + {{/rollTotal() computed::finaldifficulty 6}} + test {{skill-name}} na {{base_wsp_name}}

- Materiały Wybuchowe - - - - - + + {{#rollTotal() computed::roll1 0}}
{{/rollTotal() computed::roll1 0}} + {{#rollTotal() computed::roll1 1}}
{{/rollTotal() computed::roll1 1}} + {{#rollTotal() computed::roll1 2}}
{{/rollTotal() computed::roll1 2}} + {{#rollTotal() computed::roll1 3}}
{{/rollTotal() computed::roll1 3}} +

D1 = {{roll1}}

+
- - - Sprawność - - Pływanie - - - - + + {{#rollTotal() computed::roll2 0}}
{{/rollTotal() computed::roll2 0}} + {{#rollTotal() computed::roll2 1}}
{{/rollTotal() computed::roll2 1}} + {{#rollTotal() computed::roll2 2}}
{{/rollTotal() computed::roll2 2}} + {{#rollTotal() computed::roll2 3}}
{{/rollTotal() computed::roll2 3}} +

D2 = {{roll2}}

+
- Wspinaczka - - - - + + {{#rollTotal() computed::roll3 0}}
{{/rollTotal() computed::roll3 0}} + {{#rollTotal() computed::roll3 1}}
{{/rollTotal() computed::roll3 1}} + {{#rollTotal() computed::roll3 2}}
{{/rollTotal() computed::roll3 2}} + {{#rollTotal() computed::roll3 3}}
{{/rollTotal() computed::roll3 3}} +

D3 = {{roll3}}

+
- Kondycja - - - - - - - - - Jeździectwo - - Jazda Konna - - - - - - Powożenie - - - - - - Ujeżdżanie - - - - - - - - - Inne - - - - - - - - - - - - - - - - - - - - - - Inne - - - - - - - - - - - - - - - - - - - - - - +

Sukcesy = {{computed::successes}}

+
-
-
-

Rany

-
- -
-
-

Sztuczki

-
- -
-
-

Uzbrojenie

-
Broń Ręczna
-
- - - +A - - +O - -
- -
-
-
Broń Palna
-
- - - Zacięcie - PP -
- Mag/ -
- Szybkostrzelność - -
-
-
-

Pancerz

-
- -
-
-

Reputacja

-
- -
-
-

Przyjaciele i znajomi

-
- -
-
-

Przedmioty

-
- - - kg - -
+ -
-

Notatki

-
- -
-
+ +
+
+ + {{#rollTotal() computed::finaldifficulty 0}} +

Łatwy + {{/rollTotal() computed::finaldifficulty 0}} + {{#rollTotal() computed::finaldifficulty 1}} +

Przeciętny + {{/rollTotal() computed::finaldifficulty 1}} + {{#rollTotal() computed::finaldifficulty 2}} +

Problematyczny + {{/rollTotal() computed::finaldifficulty 2}} + {{#rollTotal() computed::finaldifficulty 3}} +

Trudny + {{/rollTotal() computed::finaldifficulty 3}} + {{#rollTotal() computed::finaldifficulty 4}} +

Bardzo Trudny + {{/rollTotal() computed::finaldifficulty 4}} + {{#rollTotal() computed::finaldifficulty 5}} +

Cholernie Trudny + {{/rollTotal() computed::finaldifficulty 5}} + {{#rollTotal() computed::finaldifficulty 6}} +

Fartowny + {{/rollTotal() computed::finaldifficulty 6}} + test {{wsp-name}}

+ + + {{#rollTotal() computed::roll1 0}}
{{/rollTotal() computed::roll1 0}} + {{#rollTotal() computed::roll1 1}}
{{/rollTotal() computed::roll1 1}} + {{#rollTotal() computed::roll1 2}}
{{/rollTotal() computed::roll1 2}} + {{#rollTotal() computed::roll1 3}}
{{/rollTotal() computed::roll1 3}} +

D1 = {{roll1}}

+
+ + + {{#rollTotal() computed::roll2 0}}
{{/rollTotal() computed::roll2 0}} + {{#rollTotal() computed::roll2 1}}
{{/rollTotal() computed::roll2 1}} + {{#rollTotal() computed::roll2 2}}
{{/rollTotal() computed::roll2 2}} + {{#rollTotal() computed::roll2 3}}
{{/rollTotal() computed::roll2 3}} +

D2 = {{roll2}}

+
+ + + {{#rollTotal() computed::roll3 0}}
{{/rollTotal() computed::roll3 0}} + {{#rollTotal() computed::roll3 1}}
{{/rollTotal() computed::roll3 1}} + {{#rollTotal() computed::roll3 2}}
{{/rollTotal() computed::roll3 2}} + {{#rollTotal() computed::roll3 3}}
{{/rollTotal() computed::roll3 3}} +

D3 = {{roll3}}

+
+ +

Sukcesy = {{computed::successes}}

+
+
+ \ No newline at end of file diff --git a/Neuroshima/Neuroshima.pug b/Neuroshima/Neuroshima.pug new file mode 100644 index 0000000000..6a25fd8078 --- /dev/null +++ b/Neuroshima/Neuroshima.pug @@ -0,0 +1,14 @@ +img(src="https://i.imgur.com/9rilIHq.png") +div(class="sheet-full-page") + div(class="main") + input(type="hidden" class="sheet-tabstoggle" name="attr_sheetTab" value="wspolczynniki") + div(class="header") + button(type="action" name="act_wspolczynniki") Współczynniki + button(type="action" name="act_umiejetnosci") Umiejętności + button(type="action" name="act_inwentarz") Inwentarz + include Wspolczynniki.html + include Umiejetnosci.html + include Inwentarz.html +script(type="text/worker") + include Script.js +include Templates.html \ No newline at end of file diff --git a/Neuroshima/NeuroshimaDesign.html b/Neuroshima/NeuroshimaDesign.html new file mode 100644 index 0000000000..82c9d17a83 --- /dev/null +++ b/Neuroshima/NeuroshimaDesign.html @@ -0,0 +1,2133 @@ +
+ +
+ +
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
Ksywa:
+ +
+
Imię:
+ +
+
Nazwisko:
+ +
+
Specjalizacja:
+ +
+
Pochodzenie:
+ +
+
Profesja:
+ +
+
Choroba:
+ +
+
Lek:
+ +
+
PD:
+ +
+

Sztuczki

+
+
+ + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Zr

+
+

Pc

+
+

Ch

+
+

Sp

+
+

Bd

+
+
Współczynnik
+
+ + + + + + + + + +
+
Modyfikator
+
Choroby, efekty
+
+ + + + + + + + + +
+
+
+
Łatwy
+
<0 % +2
+
+ + + + + + + + + + + + + + +
+
Przeciętny
+
0 - 10 % 0
+
+ + + + + + + + + + + + + + +
+
Problematyczny
+
11 - 30 % -2
+
+ + + + + + + + + + + + + + +
+
Trudny
+
31 - 60 % -5
+
+ + + + + + + + + + + + + + +
+
Bardzo Trudny
+
61 - 90 % -8
+
+ + + + + + + + + + + + + + +
+
Cholernie Trudny
+
91 - 120 % -11
+
+ + + + + + + + + + + + + + +
+
Fart
+
121 - 160 % -15
+
+ + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

KARY RANY EFEKTY

+
+ + +

+ Suma Kar: % +
+ Draśnięć: / 27 +

+
+ + Tułów + +
+
+ + + + % +
+
+ + Głowa + +
+
+ + + + % +
+
+ + Ręka Lewa + +
+
+ + + + % +
+
+ + Ręka Prawa + +
+
+ + + + % +
+
+ + Noga Lewa + +
+
+ + + + % +
+
+ + Noga Prawa + +
+
+ + + + % +
+
+

Inne kary i Efekty

+
+
+ + + % +
+ +
+
+
+
+
+
+

Ustawienia rzutu

+ +
+
+ + + + + + + +
+
+
+ +
+
+ +
+
+ + + % +
+
+ + + % +
+
+ + + % +
+
+
+ + + % +
+
+
+

Umiejętności

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Zr +
+ +
Walka wręcz + + + + + + Bijatyka + + + + Broń ręczna + + + + Rzucanie +
+ Broń Strzelecka + + + + + + Pistolety + + + + Karabiny + + + + Broń Maszynowa +
+ Broń Dystansowa + + + + Łuk + + + + Kusza + + + + Proca +
+ Prowadzenie Pojazdów + + + + Samochód + + + + Ciężarówka + + + + Motocykl +
+ Zdolności Manualne + + + + Kradzież k-sznk. + + + + Zwinne dłonie + + + + Otwn. zamków +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Pc +
+ +
Orientacja w Terenie + + + Wyczucie kierunku + + + + Tropienie + + + + Przygot. pułapki +
+ Spostrzegawczość + + + + Nasłuchiwanie + + + + Wypatrywanie + + + + Czujność +
+ Kamuflaż + + + + Skradanie się + + + + Ukrywanie się + + + + Maskowanie +
+ Przetrwanie + + + + Łowiectwo + + + + Zdobywanie wody + + + + Znajomość terenu +
+ + + + + + + + +
+

Inicjatywa

+ + Inicjatywa: 3(d20-Zrecznosc), odrzuć najwyższy wynik. +
+
+

Współczynniki

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Zręczność:
Percepcja:
Charakter:
Spryt:
Budowa:
Szczęście:
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Walka Wręcz + Bijatyka + + Broń Ręczna + + Rzucanie + +
+ Broń Strzelecka + Pistolety + + Karabiny + + Broń Maszynowa + +
+ Broń Dystansowa + Łuk + + Kusza + + Proca + +
+ Prowadzenie Pojazdów + Samochód + + Ciężarówka + + Motocykl + +
+ Zdolności Manualne + Kradzież Kieszonkowa + + Zwinne Dłonie + + Otwieranie Zamków + +
+ Orientacja w Terenie + Wyczucie Kierunku + + Tropienie + + Przygotowanie Pułapki + +
+ Spostrzegawczość + Nasłuchiwanie + + Wypatrywanie + + Czujność + +
+ Kamuflaż + Skradanie się + + Ukrywanie się + + Maskowanie + +
+ Przetrwanie + Łowiectwo + + Zdobywanie Wody + + Znajomość Terenu + +
+ Negocjacje + Perswazja + + Zastraszanie + + Zdolności Przywódcze + +
+ Empatia + Postrzeganie Emocji + + Blef + + Opieka nad Zwierzętami + +
+ Siła Woli + Odporność na Ból + + Niezłomność + + Morale + +
+ Medycyna + Leczenie Ran + + Leczenie Chorób + + Pierwsza Pomoc + +
+ Technika + Mechanika + + Elektronika + + Komputery + +
+ Wiedza Ogólna + + + + + + +
+ Sprzęt + Maszyny Ciężkie + + Wozy Bojowe + + Kutry + +
+ Pirotechnika + Rusznikarstwo + + Wyrzutnie + + Materiały Wybuchowe + +
+ Sprawność + Pływanie + + Wspinaczka + + Kondycja + +
+ Jeździectwo + Jazda Konna + + Powożenie + + Ujeżdżanie + +
+ Inne + + + + + + +
+ Inne + + + + + + +
+
+
+
+
+

INWENTARZ

+

Uzbrojenie

+
Broń Ręczna
+
+ + + +A + + +O + +
+ +
+
+
Broń Palna
+
+ + + Zacięcie + PP +
+ Mag/ +
+ Szybkostrzelność + +
+
+
+

Pancerz

+
+ +
+
+

Reputacja

+
+ +
+
+

Przyjaciele i znajomi

+
+ +
+
+

Przedmioty

+
+ + + kg + +
+ +
+

Notatki

+
+ +
+
+
+
+
+ + + + + + +
+

{{name}}

+
+

D1 = {{roll1}}

+

D2 = {{roll2}}

+

D3 = {{roll3}}

+

dice = {{dice::roll1}}

+

Custom Result = {{computed::roll1}}

+
+
+
+ +
+

{{name}}

+
+

Result = {{roll1}}

+

Custom Result = {{computed::roll1}}

+ {{#rollTotal() computed::roll1 0}} +
Total 0!
+ {{/rollTotal() computed::roll1 0}} + {{#rollGreater() computed::roll1 1}} +
Greater Than 1!
+ {{/rollGreater() computed::roll1 1}} + {{#rollLess() computed::roll1 2}} +
Less Than 2
+ {{/rollLess() computed::roll1 2}} + {{#rollBetween() computed::roll1 1 3}} +
Between 1 and 3
+ {{/rollBetween() computed::roll1 1 3}} +
+
+
\ No newline at end of file diff --git a/Neuroshima/Script.js b/Neuroshima/Script.js new file mode 100644 index 0000000000..f4e9bbfed9 --- /dev/null +++ b/Neuroshima/Script.js @@ -0,0 +1,585 @@ +/* ===== PARAMETERS ========== +destinations = the name of the attribute that stores the total quantity +section = name of repeating fieldset, without the repeating_ +fields = the name of the attribute field to be summed + can be a single attribute: 'weight' + or an array of attributes: ['weight','number','equipped'] +extras: everything after the fields parameter is optional and can be in any order: + 'ceil' + 'round' + 'floor' + 'ceil: 3' + 'round: -2' + 'round: equipment_weight, equipment_cost|2 + you want to round the final total. + If you supply a field name, it will round just that total. You can supply multiple fields, separated by commas. + If you supply a number, it will round to that many digits. + round:1 rounds to tenths; floor:-3 rounds down to thousands, so 3567 would be shown as 3000. + If you dont supply a number, it assumes 0, and returns an integer (whole numbers). + IMPORTANT: if you list ANY field, then ALL fields to be rounded must be specifically stated. + Don't do this: floor:equipment_weight|2, round, + + 'multiplier: 2' + 'multiplier:equipment_weight|2' + 'multiplier: equipment_weight|2, equipment_cost|3' + Multiplier will apply a multiple to the final total. You can multiple all fields, or specific fields. + It doesnt apply to attributes being added from outside the repeating section. + Multiplier can be negative, representing a subtraction. + + 'an_attribute' + 'an_attribute:-1' + 'an_attribute:0.5' + 'an_attribute:equipment_cost' + 'an_attribute:equipment_cost|-1' + 'an_attribute:equipment_cost|-1,equipment_weight|2' + You can also list attributes from outside the repeating section. Don't try to add attributes from other repeating sections. + by default, the listed attribute will be added to all fields. + You can list one or more fields, and it will only be added to those fields. + You can list a number: the attribute will be multiplied by that amount. So -1 subtracts the attribute. +*/ +const repeatingSum = (destinations, section, fields) => { + if (!Array.isArray(destinations)) destinations = [destinations.replace(/\s/g, '').split(',')]; + if (!Array.isArray(fields)) fields = [fields.replace(/\s/g, '').split(',')]; + getSectionIDs(`repeating_${section}`, idArray => { + const attrArray = idArray.reduce((m, id) => [...m, ...(fields.map(field => `repeating_${section}_${id}_${field}`))], []); + getAttrs([...attrArray], v => { + const getValue = (section, id, field) => v[`repeating_${section}_${id}_${field}`] === 'on' ? 1 : parseFloat(v[`repeating_${section}_${id}_${field}`]) || 0; + const commonMultipliers = (fields.length <= destinations.length) ? [] : fields.splice(destinations.length, fields.length - destinations.length); + const output = {}; + destinations.forEach((destination, index) => { + output[destination] = idArray.reduce((total, id) => total + getValue(section, id, fields[index]) * commonMultipliers.reduce((subtotal, mult) => subtotal * getValue(section, id, mult), 1), 0); + }); + setAttrs(output); + }); + }); +}; + +function clamp(number, min, max) { + return Math.max(min, Math.min(number, max)); +} + +/******************************************************************/ +/****************************** TABS ******************************/ +const buttonlist = ["wspolczynniki","umiejetnosci","inwentarz"]; + buttonlist.forEach(button => { + on(`clicked:${button}`, function() { + setAttrs({ + sheetTab: button + }); + }); + }); +/****************************** TABS ******************************/ +/******************************************************************/ +/******************************************************************/ +/**************************** FIELDSETS ***************************/ +on('change:repeating_injuries-general:injury_general_penalty remove:repeating_injuries-general', function() { + repeatingSum("total_wounds_general","injuries-general","injury_general_penalty"); +}); +on('change:repeating_injuries-head:injury_head_penalty remove:repeating_injuries-head', function() { + repeatingSum("total_wounds_head","injuries-head","injury_head_penalty"); +}); +on('change:repeating_injuries-torso:injury_torso_penalty remove:repeating_injuries-torso', function() { + repeatingSum("total_wounds_torso","injuries-torso","injury_torso_penalty"); +}); +on('change:repeating_injuries-left-hand:injury_left_hand_penalty remove:repeating_injuries-left-hand', function() { + repeatingSum("total_wounds_left_hand","injuries-left-hand","injury_left_hand_penalty"); +}); +on('change:repeating_injuries-left-foot:injury_left_foot_penalty remove:repeating_injuries-left-foot', function() { + repeatingSum("total_wounds_left_foot","injuries-left-foot","injury_left_foot_penalty"); +}); +on('change:repeating_injuries-right-hand:injury_right_hand_penalty remove:repeating_injuries-right-hand', function() { + repeatingSum("total_wounds_right_hand","injuries-right-hand","injury_right_hand_penalty"); +}); +on('change:repeating_injuries-right-foot:injury_right_foot_penalty remove:repeating_injuries-right-foot', function() { + repeatingSum("total_wounds_right_foot","injuries-right-foot","injury_right_foot_penalty"); +}); + +on('change:total_wounds_general change:total_wounds_head change:total_wounds_torso change:total_wounds_left_hand change:total_wounds_left_foot change:total_wounds_right_hand change:total_wounds_right_foot', function () { + getAttrs(["total_wounds_general", "total_wounds_head", "total_wounds_torso", "total_wounds_left_hand", + "total_wounds_left_foot", "total_wounds_right_hand", "total_wounds_right_foot"], function(values) { + let wounds = parseInt(values.total_wounds_general||0) + + parseInt(values.total_wounds_head||0) + + parseInt(values.total_wounds_torso||0) + + parseInt(values.total_wounds_left_hand||0) + + parseInt(values.total_wounds_left_foot||0) + + parseInt(values.total_wounds_right_hand||0) + + parseInt(values.total_wounds_right_foot||0); + setAttrs({"total_wounds":wounds}); + }); +}); + + +on('change:repeating_injuries-general:injury_general_type remove:repeating_injuries-general', function() { + repeatingSum("total_damage_general","injuries-general","injury_general_type"); +}); +on('change:repeating_injuries-head:injury_head_type remove:repeating_injuries-head', function() { + repeatingSum("total_damage_head","injuries-head","injury_head_type"); +}); +on('change:repeating_injuries-torso:injury_torso_type remove:repeating_injuries-torso', function() { + repeatingSum("total_damage_torso","injuries-torso","injury_torso_type"); +}); +on('change:repeating_injuries-left-hand:injury_left_hand_type remove:repeating_injuries-left-hand', function() { + repeatingSum("total_damage_left_hand","injuries-left-hand","injury_left_hand_type"); +}); +on('change:repeating_injuries-left-foot:injury_left_foot_type remove:repeating_injuries-left-foot', function() { + repeatingSum("total_damage_left_foot","injuries-left-foot","injury_left_foot_type"); +}); +on('change:repeating_injuries-right-hand:injury_right_hand_type remove:repeating_injuries-right-hand', function() { + repeatingSum("total_damage_right_hand","injuries-right-hand","injury_right_hand_type"); +}); +on('change:repeating_injuries-right-foot:injury_right_foot_type remove:repeating_injuries-right-foot', function() { + repeatingSum("total_damage_right_foot","injuries-right-foot","injury_right_foot_type"); +}); +on('change:total_damage_general change:total_damage_head change:total_damage_torso change:total_damage_left_hand change:total_damage_left_foot change:total_damage_right_hand change:total_damage_right_foot', function () { + getAttrs(["total_damage_general", "total_damage_head", "total_damage_torso", "total_damage_left_hand", + "total_damage_left_foot", "total_damage_right_hand", "total_damage_right_foot"], function(values) { + let damage = parseInt(values.total_damage_general||0) + + parseInt(values.total_damage_head||0) + + parseInt(values.total_damage_torso||0) + + parseInt(values.total_damage_left_hand||0) + + parseInt(values.total_damage_left_foot||0) + + parseInt(values.total_damage_right_hand||0) + + parseInt(values.total_damage_right_foot||0); + setAttrs({"total_damage":damage}); + }); +}); + +/**************************** FIELDSETS ***************************/ +/******************************************************************/ + +/******************************************************************/ +/******************* BASE STATS / WSPÓŁCZYNNIKI *******************/ +on("change:zrecznosc_base change:mod_zrecznosc change:percepcja_base change:mod_percepcja change:charakter_base change:mod_charakter change:spryt_base change:mod_spryt change:budowa_base change:mod_budowa sheet:opened", function() { + getAttrs([ "zrecznosc_base","mod_zrecznosc", + "percepcja_base","mod_percepcja", + "charakter_base","mod_charakter", + "spryt_base","mod_spryt", + "budowa_base", "mod_budowa"], function(values) { + let zr_b = clamp((parseInt(values.zrecznosc_base)||0), 1, 40); + let pc_b = clamp((parseInt(values.percepcja_base)||0), 1, 40); + let ch_b = clamp((parseInt(values.charakter_base)||0), 1, 40); + let sp_b = clamp((parseInt(values.spryt_base)||0), 1, 40); + let bd_b = clamp((parseInt(values.budowa_base)||0), 1, 40); + + let zr = zr_b + (parseInt(values.mod_zrecznosc)||0); + let pc = pc_b + (parseInt(values.mod_percepcja)||0); + let ch = ch_b + (parseInt(values.mod_charakter)||0); + let sp = sp_b + (parseInt(values.mod_spryt)||0); + let bd = bd_b + (parseInt(values.mod_budowa)||0); + setAttrs({ + "zr_df_0": zr+2, + "pc_df_0": pc+2, + "ch_df_0": ch+2, + "sp_df_0": sp+2, + "bd_df_0": bd+2, + + "zr_df_1": zr, + "pc_df_1": pc, + "ch_df_1": ch, + "sp_df_1": sp, + "bd_df_1": bd, + + "zrecznosc_base": zr_b, + "percepcja_base": pc_b, + "charakter_base": ch_b, + "spryt_base": sp_b, + "budowa_base": bd_b, + + "zrecznosc": zr, + "percepcja": pc, + "charakter": ch, + "spryt": sp, + "budowa": bd, + + "zr_df_2": zr-2, + "pc_df_2": pc-2, + "ch_df_2": ch-2, + "sp_df_2": sp-2, + "bd_df_2": bd-2, + + "zr_df_3": zr-5, + "pc_df_3": pc-5, + "ch_df_3": ch-5, + "sp_df_3": sp-5, + "bd_df_3": bd-5, + + "zr_df_4": zr-8, + "pc_df_4": pc-8, + "ch_df_4": ch-8, + "sp_df_4": sp-8, + "bd_df_4": bd-8, + + "zr_df_5": zr-11, + "pc_df_5": pc-11, + "ch_df_5": ch-11, + "sp_df_5": sp-11, + "bd_df_5": bd-11, + + "zr_df_6": zr-15, + "pc_df_6": pc-15, + "ch_df_6": ch-15, + "sp_df_6": sp-15, + "bd_df_6": bd-15, + }); + }); +}); +/******************* BASE STATS / WSPÓŁCZYNNIKI *******************/ +/******************************************************************/ +/******************************************************************/ +/************************** ROLL PARAMETERS ***********************/ +const startingPercent = [-20, 0, 11, 31, 61, 91, 121] +const lastPassingPercent = [-1,10,30,60,90,120,0xFFFFFF]; +const levelRadioValues = ["0","1","2","3","4","5","6"]; +const levelLabels = ["Łatwy", "Przeciętny", "Problematyczny", "Trudny", "Bardzo Trudny", "Cholernie Trudny", "Fart"]; + levelRadioValues.forEach(function(value) { + on(`clicked:level_${value}`, function() { + setAttrs({ + ["level"]: value + }); + }); +}); + +on("change:level change:modi_battle change:modi_open change:modi_penalties change:total_wounds change:modi_armor_penalties change:total_armor_penalties change:custom_penalty change:modi_custom_penalty", function() { + getAttrs([ "level", "modi_battle","modi_open", "modi_penalties","total_wounds", + "modi_armor_penalties","total_armor_penalties", "custom_penalty", "modi_custom_penalty"], function(values) { + let level = ((parseInt(values.level))||0); + let modi_penalties = (parseInt(values.modi_penalties)||0); + let total_wounds = (parseInt(values.total_wounds)||0); + let modi_armor_penalties = (parseInt(values.modi_armor_penalties)||0); + let total_armor_penalties = (parseInt(values.total_armor_penalties)||0); + let custom_penalty = (parseInt(values.custom_penalty)||0); + let modi_custom_penalty = (parseInt(values.modi_custom_penalty)||0); + + let final_test_penalty =( startingPercent[level] + + ( modi_penalties ? total_wounds : 0 ) + + ( modi_armor_penalties ? total_armor_penalties: 0 ) + + ( modi_custom_penalty ? custom_penalty : 0 ) + ); + let final_test_level = 0; + while( final_test_penalty > lastPassingPercent[final_test_level] ) { + final_test_level++; + if(final_test_level >= lastPassingPercent.length ) { + final_test_level = (lastPassingPercent.length - 1); + break; + } + } + let final_test_level_label = levelLabels[final_test_level]; + setAttrs({ + "final_test_level": final_test_level, + "final_test_penalty": final_test_penalty, + "final_test_level_display": final_test_level_label + }); + }); +}); +/************************** ROLL PARAMETERS ***********************/ +/******************************************************************/ +/******************************************************************/ +/*************************** ROLL HANDLERS ************************/ +const wsplist = [ + "zrecznosc", + "percepcja", + "charakter", + "spryt", + "budowa" +]; + +const W_ZR = "zrecznosc"; +const W_PC = "percepcja"; +const W_CH = "charakter"; +const W_SP = "spryt"; +const W_BD = "budowa"; + +const wsp2accusative = { + "zrecznosc":"zręczność", + "percepcja":"percepcję", + "charakter":"charakter", + "spryt":"spryt", + "budowa":"budowę" +}; + +const wsp2genitive = { + "zrecznosc":"zręczności", + "percepcja":"percepcji", + "charakter":"charakteru", + "spryt":"sprytu", + "budowa":"budowy" +} + +const statslist = [ + "bijatyka", "bron_reczna", "rzucanie", + "pistolety", "karabiny", "bron_maszynowa", + "luk", "kusza", "proca", + "samochod", "ciezarowka", "motocykl", + "kradziez_kieszonkowa", "zwinne_dlonie", "otwieranie_zamkow", + + "wyczucie_kierunku", "tropienie", "przygotowanie_pulapki", + "nasluchiwanie", "wypatrywanie", "czujnosc", + "skradanie_sie", "ukrywanie_sie", "maskowanie", + "lowiectwo", "zdobywanie_wody", "znajomosc_terenu", + + "perswazja", "zastraszanie", "zdolnosci_przywodcze", + "postrzeganie_emocji", "blef", "opieka_nad_zwierzetami", + "odpornosc_na_bol", "niezlomnosc", "morale", + + "leczenie_ran", "leczenie_chorob", "pierwsza_pomoc", + "mechanika", "elektronika", "komputery", + "maszyny_ciezkie", "wozy_bojowe", "kutry", + "rusznikarstwo", "wyrzutnie", "materialy_wybuchowe", + + "plywanie", "wspinaczka", "kondycja", + "jazda_konna", "powozenie", "ujezdzanie" +]; + +const stats2wsp = { + "bijatyka" : W_ZR, "bron_reczna":W_ZR, "rzucanie":W_ZR, + "pistolety":W_ZR, "karabiny": "zrecznosc", "bron_maszynowa":W_ZR, + "luk":W_ZR, "kusza":W_ZR, "proca":W_ZR, + "samochod":W_ZR, "ciezarowka":W_ZR, "motocykl":W_ZR, + "kradziez_kieszonkowa":W_ZR, "zwinne_dlonie":W_ZR, "otwieranie_zamkow":W_ZR, + + "wyczucie_kierunku":W_PC, "tropienie":W_PC, "przygotowanie_pulapki":W_PC, + "nasluchiwanie":W_PC, "wypatrywanie":W_PC, "czujnosc":W_PC, + "skradanie_sie":W_PC, "ukrywanie_sie":W_PC, "maskowanie":W_PC, + "lowiectwo":W_PC, "zdobywanie_wody":W_PC, "znajomosc_terenu":W_PC, + + "perswazja":W_CH, "zastraszanie":W_CH, "zdolnosci_przywodcze":W_CH, + "postrzeganie_emocji":W_CH, "blef":W_CH, "opieka_nad_zwierzetami":W_CH, + "odpornosc_na_bol":W_CH, "niezlomnosc":W_CH, "morale":W_CH, + + "leczenie_ran":W_SP, "leczenie_chorob":W_SP, "pierwsza_pomoc":W_SP, + "mechanika":W_SP, "elektronika":W_SP, "komputery":W_SP, + "maszyny_ciezkie":W_SP, "wozy_bojowe":W_SP, "kutry":W_SP, + "rusznikarstwo":W_SP, "wyrzutnie":W_SP, "materialy_wybuchowe":W_SP, + + "plywanie":W_BD, "wspinaczka":W_BD, "kondycja":W_BD, + "jazda_konna":W_BD, "powozenie":W_BD, "ujezdzanie":W_BD +}; + +const stats2genitive = { + "bijatyka":"bijatyki", "bron_reczna":"walki bronią białą", "rzucanie":"rzucania", + "pistolety":"strzelania z broni krótkiej", "karabiny":"strzelania z broni długiej", "bron_maszynowa":"strzelania z broni maszynowej", + "luk":"łucznictwa", "kusza":"kusznictwa", "proca":"procarstwa", + "samochod":"prowadzenia samochodu", "ciezarowka":"prowadzenia samochodu ciężarowego", "motocykl":"prowadzenia motocyklu", + "kradziez_kieszonkowa":"kradzieży kieszonkowej", "zwinne_dlonie":"zwinnych dłoni", "otwieranie_zamkow":"otwierania zamków", + + "wyczucie_kierunku":"wyczucia kierunku", "tropienie":"tropienia", "przygotowanie_pulapki":"przygotowania pułapki", + "nasluchiwanie":"nasłuchiwania", "wypatrywanie":"wypatrywania", "czujnosc":"czujności", + "skradanie_sie":"skradania się", "ukrywanie_sie":"ukrywania się", "maskowanie":"maskowania", + "lowiectwo":"łowiectwa", "zdobywanie_wody":"zdobywania wody", "znajomosc_terenu":"znajomości terenu", + + "perswazja":"persfazji", "zastraszanie":"zastraszania", "zdolnosci_przywodcze":"zdolności przywódczych", + "postrzeganie_emocji":"postrzegania emocji", "blef":"blefu", "opieka_nad_zwierzetami":"opieki nad zwierzętami", + "odpornosc_na_bol":"odporności na ból", "niezlomnosc":"niezłomności", "morale":"morale", + + "leczenie_ran":"leczenia ran", "leczenie_chorob":"leczenia chorób", "pierwsza_pomoc":"pierwszej pomocy", + "mechanika":"mechaniki", "elektronika":"elektroniki", "komputery":"komputerów", + "maszyny_ciezkie":"znajomości maszyn ciężkich", "wozy_bojowe":"prowadzenia wozów bojowych", "kutry":"sterowania kutrem", + "rusznikarstwo":"rusznikarstwa", "wyrzutnie":"obsługi wyrzutni", "materialy_wybuchowe":"znajomości materiałów wybuchowych", + + "plywanie":"pływania", "wspinaczka":"wspinaczki", "kondycja":"kondycji", + "jazda_konna":"jeździectwa", "powozenie":"powożenia", "ujezdzanie":"ujeżdżania", +} + +statslist.forEach((attribute) => { + on(`change:${attribute}`, () => { + getAttrs([attribute], (values) => { + let statval = (parseInt(values[attribute])||0); + statval = clamp(statval, 0, 20); + let dictionary = {}; + dictionary[attribute] = statval; + setAttrs(dictionary); + }); + }); + + on(`clicked:test_${attribute}`, (info) => { + let genitive = stats2genitive[attribute]; + let skill_wsp_name = stats2wsp[attribute]; + let wsp_name = wsp2accusative[skill_wsp_name] + startRoll(`&{template:test} {{base_wsp_name=${wsp_name}}} {{successes=[[0[computed value]]]}} {{finaldifficulty=[[0[computed value]]]}} {{skill-name=${genitive}}} {{roll1=[[1d20]]}} {{roll2=[[1d20]]}} {{roll3=[[1d20]]}}`, (results) => { + let base_wsp = stats2wsp[attribute]; + + getAttrs(["final_test_level", "modi_battle", "modi_open", base_wsp, attribute], function(values) { + let skill = (parseInt(values[attribute])||0); + let statbase = parseInt(values[base_wsp]); + let modi_battle = (parseInt(values.modi_battle)||0); + let modi_open = (parseInt(values.modi_open)||0); + + let skill_remaining = skill; + let final_test_level = (parseInt(values.final_test_level)||0); + + const vals = [results.results.roll1.result, results.results.roll2.result, results.results.roll3.result]; + let x = 0; + + if( !modi_battle ){ + // Slider - no skill means test is harder by 1 level. Git gud. + let advantage = skill ? parseInt(skill/4) : -1; + final_test_level -= advantage; + } + + // Critical rolls ( 1 / 20 ) + for (x=0; x<3; ++x) { + if(vals[x]==1) + { + final_test_level -= 1; + } + if(vals[x]==20) + { + final_test_level += 1; + } + } + + // Constrain + final_test_level = final_test_level < 0 ? 0 : (final_test_level > 6 ? 6 : final_test_level); + + // Successes and failures + + let dice_style = [3,3,3]; + let vals_s = vals.concat().sort(function(a, b){return a-b});; + const difficulties = [-2,0,2,5,8,11,15]; + let statreq = statbase - difficulties[final_test_level]; + let succ = 0; + let bumped = 0; + if (modi_open) { + let vals_sc = vals_s.concat(); + while ( skill_remaining > 0 ) { + if (vals_sc[0] == vals_sc[1]) { + vals_sc[0] -= 1; + bumped = 1; + } else { + vals_sc[1] -= 1; + if (bumped) { + dice_style[0] = 1; + } + } + skill_remaining -= 1; + } + dice_style[1] = 0; + vals_sc[1] = vals_sc[1] < 1 ? 1 : vals_sc[1]; + succ = statreq - vals_sc[1]; + } else { + for (x=0; x<3; ++x) { + if(vals_s[x] <= statreq) { + succ += 1; + dice_style[x] = 0; + } else { + if ( vals_s[x] - skill_remaining <= statreq && statreq > 0 ) { + skill_remaining -= (vals_s[x] - statreq); + succ += 1; + dice_style[x] = 1; + } else { + dice_style[x] = 2; + } + } + } + } + + let dice_unsort = [3,3,3]; + for(x=0; x<3; ++x) { + for(let y=0; y<3; ++y) { + if(vals[x]==vals_s[y]) { + dice_unsort[x] = dice_style[y]; + vals_s[y] = -1; + vals[x] = 0; + break; + } + } + } + + + finishRoll( + results.rollId, + { + roll1: dice_unsort[0] , + roll2: dice_unsort[1] , + roll3: dice_unsort[2] , + finaldifficulty: final_test_level, + successes : succ, + } + ); + }); + }); + }); +}); + + + +wsplist.forEach((wspolczyn) => { + on(`clicked:test_${wspolczyn}`, (info) => { + let genitive = wsp2genitive[wspolczyn]; + startRoll(`&{template:test-wsp} {{successes=[[0[computed value]]]}} {{finaldifficulty=[[0[computed value]]]}} {{wsp-name=${genitive}}} {{roll1=[[1d20]]}} {{roll2=[[1d20]]}} {{roll3=[[1d20]]}}`, (results) => { + getAttrs(["final_test_level", "modi_battle", "modi_open", wspolczyn], function(values) { + let statbase = parseInt(values[wspolczyn]); + let modi_battle = (parseInt(values.modi_battle)||0); + let modi_open = (parseInt(values.modi_open)||0); + + let final_test_level = (parseInt(values.final_test_level)||0); + + const vals = [results.results.roll1.result, results.results.roll2.result, results.results.roll3.result]; + let x = 0; + + // Critical rolls ( 1 / 20 ) + for (x=0; x<3; ++x) { + if(vals[x]==1) + { + final_test_level -= 1; + } + if(vals[x]==20) + { + final_test_level += 1; + } + } + + // Constrain + final_test_level = final_test_level < 0 ? 0 : (final_test_level > 6 ? 6 : final_test_level); + + // Successes and failures + + let dice_style = [3,3,3]; + let vals_s = vals.concat().sort(function(a, b){return a-b});; + const difficulties = [-2,0,2,5,8,11,15]; + let statreq = statbase - difficulties[final_test_level]; + let succ = 0; + if (modi_open) { + succ = statreq - vals_s[1]; + dice_style[1] = 0; + } else { + for (x=0; x<3; ++x) { + if(vals_s[x] <= statreq) { + succ += 1; + dice_style[x] = 0; + } else { + dice_style[x] = 2; + } + } + } + + let dice_unsort = [3,3,3]; + for(x=0; x<3; ++x) { + for(let y=0; y<3; ++y) { + if(vals[x]==vals_s[y]) { + dice_unsort[x] = dice_style[y]; + vals_s[y] = -1; + vals[x] = 0; + break; + } + } + } + + + finishRoll( + results.rollId, + { + roll1: dice_unsort[0] , + roll2: dice_unsort[1] , + roll3: dice_unsort[2] , + finaldifficulty: final_test_level, + successes : succ, + } + ); + }); + }); + }); +}); + +/*************************** ROLL HANDLERS ************************/ +/******************************************************************/ \ No newline at end of file diff --git a/Neuroshima/Templates.html b/Neuroshima/Templates.html new file mode 100644 index 0000000000..b0b2b60f62 --- /dev/null +++ b/Neuroshima/Templates.html @@ -0,0 +1,111 @@ + +
+
+ + {{#rollTotal() computed::finaldifficulty 0}} +

Łatwy + {{/rollTotal() computed::finaldifficulty 0}} + {{#rollTotal() computed::finaldifficulty 1}} +

Przeciętny + {{/rollTotal() computed::finaldifficulty 1}} + {{#rollTotal() computed::finaldifficulty 2}} +

Problematyczny + {{/rollTotal() computed::finaldifficulty 2}} + {{#rollTotal() computed::finaldifficulty 3}} +

Trudny + {{/rollTotal() computed::finaldifficulty 3}} + {{#rollTotal() computed::finaldifficulty 4}} +

Bardzo Trudny + {{/rollTotal() computed::finaldifficulty 4}} + {{#rollTotal() computed::finaldifficulty 5}} +

Cholernie Trudny + {{/rollTotal() computed::finaldifficulty 5}} + {{#rollTotal() computed::finaldifficulty 6}} +

Fartowny + {{/rollTotal() computed::finaldifficulty 6}} + test {{skill-name}} na {{base_wsp_name}}

+ + + {{#rollTotal() computed::roll1 0}}
{{/rollTotal() computed::roll1 0}} + {{#rollTotal() computed::roll1 1}}
{{/rollTotal() computed::roll1 1}} + {{#rollTotal() computed::roll1 2}}
{{/rollTotal() computed::roll1 2}} + {{#rollTotal() computed::roll1 3}}
{{/rollTotal() computed::roll1 3}} +

D1 = {{roll1}}

+
+ + + {{#rollTotal() computed::roll2 0}}
{{/rollTotal() computed::roll2 0}} + {{#rollTotal() computed::roll2 1}}
{{/rollTotal() computed::roll2 1}} + {{#rollTotal() computed::roll2 2}}
{{/rollTotal() computed::roll2 2}} + {{#rollTotal() computed::roll2 3}}
{{/rollTotal() computed::roll2 3}} +

D2 = {{roll2}}

+
+ + + {{#rollTotal() computed::roll3 0}}
{{/rollTotal() computed::roll3 0}} + {{#rollTotal() computed::roll3 1}}
{{/rollTotal() computed::roll3 1}} + {{#rollTotal() computed::roll3 2}}
{{/rollTotal() computed::roll3 2}} + {{#rollTotal() computed::roll3 3}}
{{/rollTotal() computed::roll3 3}} +

D3 = {{roll3}}

+
+ +

Sukcesy = {{computed::successes}}

+
+
+ + + +
+
+ + {{#rollTotal() computed::finaldifficulty 0}} +

Łatwy + {{/rollTotal() computed::finaldifficulty 0}} + {{#rollTotal() computed::finaldifficulty 1}} +

Przeciętny + {{/rollTotal() computed::finaldifficulty 1}} + {{#rollTotal() computed::finaldifficulty 2}} +

Problematyczny + {{/rollTotal() computed::finaldifficulty 2}} + {{#rollTotal() computed::finaldifficulty 3}} +

Trudny + {{/rollTotal() computed::finaldifficulty 3}} + {{#rollTotal() computed::finaldifficulty 4}} +

Bardzo Trudny + {{/rollTotal() computed::finaldifficulty 4}} + {{#rollTotal() computed::finaldifficulty 5}} +

Cholernie Trudny + {{/rollTotal() computed::finaldifficulty 5}} + {{#rollTotal() computed::finaldifficulty 6}} +

Fartowny + {{/rollTotal() computed::finaldifficulty 6}} + test {{wsp-name}}

+ + + {{#rollTotal() computed::roll1 0}}
{{/rollTotal() computed::roll1 0}} + {{#rollTotal() computed::roll1 1}}
{{/rollTotal() computed::roll1 1}} + {{#rollTotal() computed::roll1 2}}
{{/rollTotal() computed::roll1 2}} + {{#rollTotal() computed::roll1 3}}
{{/rollTotal() computed::roll1 3}} +

D1 = {{roll1}}

+
+ + + {{#rollTotal() computed::roll2 0}}
{{/rollTotal() computed::roll2 0}} + {{#rollTotal() computed::roll2 1}}
{{/rollTotal() computed::roll2 1}} + {{#rollTotal() computed::roll2 2}}
{{/rollTotal() computed::roll2 2}} + {{#rollTotal() computed::roll2 3}}
{{/rollTotal() computed::roll2 3}} +

D2 = {{roll2}}

+
+ + + {{#rollTotal() computed::roll3 0}}
{{/rollTotal() computed::roll3 0}} + {{#rollTotal() computed::roll3 1}}
{{/rollTotal() computed::roll3 1}} + {{#rollTotal() computed::roll3 2}}
{{/rollTotal() computed::roll3 2}} + {{#rollTotal() computed::roll3 3}}
{{/rollTotal() computed::roll3 3}} +

D3 = {{roll3}}

+
+ +

Sukcesy = {{computed::successes}}

+
+
+ \ No newline at end of file diff --git a/Neuroshima/Umiejetnosci.html b/Neuroshima/Umiejetnosci.html new file mode 100644 index 0000000000..12cc09bbe5 --- /dev/null +++ b/Neuroshima/Umiejetnosci.html @@ -0,0 +1,422 @@ +
+

Ustawienia rzutu

+ + +
+
+ + + + + + + + + +
+
+
+ +
+
+ +
+
+ + + % +
+
+ + + % +
+
+ + + % +
+
+
+ + + % +
+
+
+
+

=== TBD ===

+
+
+
+

Umiejętności

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Zr +
+ +
Walka wręcz + + + + + + + + +
+ Broń Strzelecka + + + + + + + + + + + +
+ Broń Dystansowa + + + + + + + + + +
+ Prowadzenie Pojazdów + + + + + + + + + +
+ Zdolności Manualne + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Pc +
+ +
Orientacja w Terenie + + + + + + + + +
+ Spostrzegawczość + + + + + + + + + +
+ Kamuflaż + + + + + + + + + +
+ Przetrwanie + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ Ch +
+ +
+ Negocjacje + + + + + + + + + +
+ Empatia + + + + + + + + + +
+ Siła woli + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Sp +
+ +
+ Medycyna + + + + + + + + + +
+ Technika + + + + + + + + + +
+ Sprzęt + + + + + + + + + +
+ Pirotechnika + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
+ Bd +
+ +
+ Sprawność + + + + + + + + + +
+ Jeździectwo + + + + + + + + + +
+
\ No newline at end of file diff --git a/Neuroshima/Wspolczynniki.html b/Neuroshima/Wspolczynniki.html new file mode 100644 index 0000000000..beda0e2b8c --- /dev/null +++ b/Neuroshima/Wspolczynniki.html @@ -0,0 +1,512 @@ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
Ksywa:
+ +
+
Imię:
+ +
+
Nazwisko:
+ +
+
Specjalizacja:
+ +
+
Pochodzenie:
+ +
+
Profesja:
+ +
+
Choroba:
+ +
+
Lek:
+ +
+
PD:
+ +
+

Sztuczki

+
+
+ + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Zr

+
+

Pc

+
+

Ch

+
+

Sp

+
+

Bd

+
+
Współczynnik
+
+ + + + + + + + + +
+
Modyfikator
+
Choroby, efekty
+
+ + + + + + + + + +
+
+
+
Łatwy
+
<0 % +2
+
+ + + + + + + + + + + + + + +
+
Przeciętny
+
0 - 10 % 0
+
+ + + + + + + + + + + + + + +
+
Problematyczny
+
11 - 30 % -2
+
+ + + + + + + + + + + + + + +
+
Trudny
+
31 - 60 % -5
+
+ + + + + + + + + + + + + + +
+
Bardzo Trudny
+
61 - 90 % -8
+
+ + + + + + + + + + + + + + +
+
Cholernie Trudny
+
91 - 120 % -11
+
+ + + + + + + + + + + + + + +
+
Fart
+
121 - ... % -15
+
+ + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

KARY RANY EFEKTY

+
+ + +

+ Suma Kar: % +
+ Draśnięć: / 27 +

+
+ + Tułów + +
+
+ + + + % +
+
+ + Głowa + +
+
+ + + + % +
+
+ + Ręka Lewa + +
+
+ + + + % +
+
+ + Ręka Prawa + +
+
+ + + + % +
+
+ + Noga Lewa + +
+
+ + + + % +
+
+ + Noga Prawa + +
+
+ + + + % +
+
+

Inne kary i Efekty

+
+
+ + + % +
+ +
+
+
+
+
\ No newline at end of file diff --git a/Neuroshima/neuroshima.PNG b/Neuroshima/neuroshima.PNG index c9c523024a..f26194d5ee 100644 Binary files a/Neuroshima/neuroshima.PNG and b/Neuroshima/neuroshima.PNG differ diff --git a/Neuroshima/package-lock.json b/Neuroshima/package-lock.json new file mode 100644 index 0000000000..f10d67a0b1 --- /dev/null +++ b/Neuroshima/package-lock.json @@ -0,0 +1,739 @@ +{ + "name": "Neuroshima", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "pug": "^3.0.2" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", + "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", + "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "node_modules/assert-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==" + }, + "node_modules/babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dependencies": { + "@babel/types": "^7.9.6" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "dependencies": { + "is-regex": "^1.0.3" + } + }, + "node_modules/constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dependencies": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "node_modules/doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=" + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dependencies": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=" + }, + "node_modules/jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/pug": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", + "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", + "dependencies": { + "pug-code-gen": "^3.0.2", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "node_modules/pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dependencies": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "node_modules/pug-code-gen": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", + "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", + "dependencies": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "node_modules/pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==" + }, + "node_modules/pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dependencies": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "node_modules/pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dependencies": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dependencies": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dependencies": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dependencies": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "node_modules/pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==" + }, + "node_modules/pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dependencies": { + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==" + }, + "node_modules/resolve": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", + "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", + "dependencies": { + "is-core-module": "^2.8.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=" + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dependencies": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + }, + "engines": { + "node": ">= 10.0.0" + } + } + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + }, + "@babel/parser": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", + "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==" + }, + "@babel/types": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", + "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "assert-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==" + }, + "babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "requires": { + "@babel/types": "^7.9.6" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "requires": { + "is-regex": "^1.0.3" + } + }, + "constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "requires": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "requires": { + "has": "^1.0.3" + } + }, + "is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "requires": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=" + }, + "jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", + "requires": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + }, + "pug": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", + "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", + "requires": { + "pug-code-gen": "^3.0.2", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "requires": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "pug-code-gen": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", + "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", + "requires": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==" + }, + "pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "requires": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "requires": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "requires": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "requires": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "requires": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==" + }, + "pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "requires": { + "pug-error": "^2.0.0" + } + }, + "pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==" + }, + "resolve": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", + "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", + "requires": { + "is-core-module": "^2.8.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=" + }, + "void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=" + }, + "with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "requires": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + } + } + } +} diff --git a/Neuroshima/package.json b/Neuroshima/package.json new file mode 100644 index 0000000000..87b4d298f3 --- /dev/null +++ b/Neuroshima/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "pug": "^3.0.2" + } +} diff --git a/Neuroshima/readme.md b/Neuroshima/readme.md new file mode 100644 index 0000000000..b7d2f814e9 --- /dev/null +++ b/Neuroshima/readme.md @@ -0,0 +1,7 @@ +# Neuroshima 1.5 character sheet +Designed for https://en.wikipedia.org/wiki/Neuroshima + + +## TODO +TODO: Move images to github +TODO: Design and build inventory section \ No newline at end of file diff --git a/Neuroshima/sheet.json b/Neuroshima/sheet.json index 5983a4cf18..38ae7215e8 100644 --- a/Neuroshima/sheet.json +++ b/Neuroshima/sheet.json @@ -1,9 +1,9 @@ { "html": "Neuroshima.html", "css": "Neuroshima.css", - "authors": "M_Bison,Akan73", + "authors": "Jacek Janiszewski, ussop, M_Bison, Akan73", "roll20userid": "2500534,2042140", "preview": "neuroshima.PNG", - "instructions": "Barebones Neuroshima Sheet, work in progress but it is currently usable. Polish language only since there is no english sourcebook. Green on rolls means always a success, red is always a failure, yellow is possible to reduce with abilities, blue is 1 or 20. ", - "legacy": true + "instructions": "Neuroshima Sheet, work in progress but it is currently usable. Polish language only since there is no english sourcebook.", + "legacy": false } \ No newline at end of file diff --git a/Official Savage Worlds/SavageWorldsCharSheet.html b/Official Savage Worlds/SavageWorldsCharSheet.html index 9e466c7f06..c8f9e18958 100644 --- a/Official Savage Worlds/SavageWorldsCharSheet.html +++ b/Official Savage Worlds/SavageWorldsCharSheet.html @@ -1,7 +1,7 @@ - + @@ -6465,7 +6468,7 @@ on( - +
@@ -6587,15 +6590,16 @@ on(

Attributes

- + + - + - + - + - +

Derived

@@ -7355,8 +7359,8 @@ on( - - + + @@ -8577,8 +8581,8 @@ on( - - + + @@ -8694,8 +8698,8 @@ on( - - + + @@ -8806,8 +8810,8 @@ on( - - + + @@ -8918,8 +8922,8 @@ on( - - + + @@ -9030,8 +9034,8 @@ on( - - + + @@ -9142,8 +9146,8 @@ on( - - + + @@ -9254,8 +9258,8 @@ on( - - + + @@ -9366,8 +9370,8 @@ on( - - + + @@ -9478,8 +9482,8 @@ on( - - + + @@ -9590,8 +9594,8 @@ on( - - + + @@ -9702,8 +9706,8 @@ on( - - + + @@ -9814,8 +9818,8 @@ on( - - + + @@ -9926,8 +9930,8 @@ on( - - + + @@ -10038,8 +10042,8 @@ on( - - + + @@ -10150,8 +10154,8 @@ on( - - + + @@ -10262,8 +10266,8 @@ on( - - + + @@ -10374,8 +10378,8 @@ on( - - + + @@ -10486,8 +10490,8 @@ on( - - + + @@ -10598,8 +10602,8 @@ on( - - + + @@ -10710,8 +10714,8 @@ on( - - + + @@ -10827,8 +10831,8 @@ on( - - + + @@ -10939,8 +10943,8 @@ on( - - + + @@ -11051,8 +11055,8 @@ on( - - + + @@ -11163,8 +11167,8 @@ on( - - + + @@ -11275,8 +11279,8 @@ on( - - + + @@ -11387,8 +11391,8 @@ on( - - + + @@ -11507,8 +11511,8 @@ on( - - + + @@ -11619,8 +11623,8 @@ on( - - + + @@ -11731,8 +11735,8 @@ on( - - + + @@ -11843,8 +11847,8 @@ on( - - + + @@ -11955,8 +11959,8 @@ on( - - + + @@ -12067,8 +12071,8 @@ on( - - + + @@ -12187,8 +12191,8 @@ on( - - + + @@ -12324,8 +12328,8 @@ on( - - + + @@ -14339,8 +14343,8 @@ on( - - + + @@ -14776,8 +14780,8 @@ on( - - + + @@ -15435,6 +15439,22 @@ on(

Release Notes

+ + + +
+

Bug Fix Release

+

This release focuses on Bug Fixes

+

Bugs Fixed

+
    +
  • Fixed a type on the Skill Wild Die Modifier description.
  • +
  • Fixed an issue where rolls were empty if made when the sheet was in statblock view.
  • +
  • Fixed an issue with the Fear Check button was making an empty roll.
  • +
+
@@ -113,8 +114,8 @@

- Combat         Trained?  -    Lvl  + Combat         Trained?  +    Lvl  Score  %
@@ -123,7 +124,7 @@    Trained?  -    Lvl  +    Lvl  Score  %
@@ -132,8 +133,8 @@

- Education      Trained?  -    Lvl  + Education      Trained?  +    Lvl  Score  %
@@ -142,7 +143,7 @@    Trained?  -    Lvl  +    Lvl  Score  %
@@ -152,36 +153,36 @@

Investigation  Trained?  -    Lvl  +    Lvl  Score  %
-
+
Larceny      Trained?  -    Lvl  +    Lvl  Score  %

Medicine    Trained?  -    Lvl  +    Lvl  Score  %

Mysticism   Trained?  -    Lvl  +    Lvl  Score  %

Social          Trained?  -    Lvl  +    Lvl  Score  %
@@ -190,7 +191,7 @@    Trained?  -    Lvl  +    Lvl  Score  %
@@ -199,14 +200,14 @@

- Survival       Trained?  -    Lvl  + Survival       Trained?  +    Lvl  Score  %

- Technical    Trained?  -    Lvl  + Technical    Trained?  +    Lvl  Score  %
@@ -215,18 +216,18 @@    Trained?  -    Lvl  +    Lvl  Score  %
-
- -
-
+ +
+ +

@@ -235,14 +236,14 @@ -

Melee / Ranged Attacks

+

Melee Attacks

*Input weapon name, attack skill value and damage including applicable damage bonus*

-
+
- Melee Damage Bonus:       + Melee Damage Bonus:  

@@ -253,15 +254,24 @@
- + % - - + + Range: + Conceal: + Notes:
+
+ +

Ranged Attacks

+
*Input weapon name, attack skill value and damage including applicable damage bonus*
+

+ +
@@ -274,10 +284,14 @@
- + % - - + + Range: + Ammo: + Conceal: + Notes: +
@@ -313,4 +327,4 @@ -

+

diff --git a/Skeleton 1st Edition/sheet.json b/Skeleton 1st Edition/sheet.json index f6d7340a79..c39cd2e901 100644 --- a/Skeleton 1st Edition/sheet.json +++ b/Skeleton 1st Edition/sheet.json @@ -4,6 +4,6 @@ "authors": "DrgnRanger", "roll20userid": "5432360", "preview": "skeleton_character_sheet_v1.41.png", - "instructions": "**Functionality:**\n\nAll attributes and skills can be assigned a d4-d12 dice value which is then used in all roll buttons to roll dice.There are sections for extra items, weapons, boons and curses which can be edited. The descriptions/resources for extra items, boons and curses can be accessed through the checkboxes which toggle them on/off.The configuration section only has two options currently, but there are more possible config options which can be added as needed.", + "instructions": "**Links:**\n\nhttps://linktr.ee/WarlockPrivateer\n\nFunctionality:**\n\nAll attributes and skills can be assigned a d4-d12 dice value which is then used in all roll buttons to roll dice.There are sections for extra items, weapons, boons and curses which can be edited. The descriptions/resources for extra items, boons and curses can be accessed through the checkboxes which toggle them on/off.The configuration section only has two options currently, but there are more possible config options which can be added as needed.", "legacy": false } diff --git a/Skeleton 1st Edition/skeletonsheet.css b/Skeleton 1st Edition/skeletonsheet.css index 880cd33d58..426e92df7c 100644 --- a/Skeleton 1st Edition/skeletonsheet.css +++ b/Skeleton 1st Edition/skeletonsheet.css @@ -427,7 +427,7 @@ input.sheet-toggle-hide:checked ~ div.sheet-bocu-resource { .sheet-weapon-content{ display: grid; - grid-template-columns: 202px 52px 102px 62px 87px 47px 48px 1fr; + grid-template-columns: 202px 52px 102px 67px 87px 47px 48px 1fr; } .sheet-repeating_weapons{ diff --git a/Skeleton 1st Edition/skeletonsheet.html b/Skeleton 1st Edition/skeletonsheet.html index 46f967cbde..a732793609 100644 --- a/Skeleton 1st Edition/skeletonsheet.html +++ b/Skeleton 1st Edition/skeletonsheet.html @@ -32,14 +32,14 @@ - - + @@ -63,7 +63,7 @@ - + @@ -76,14 +76,14 @@ - - + @@ -107,7 +107,7 @@ - + @@ -217,7 +217,7 @@ - + @@ -232,7 +232,7 @@ - + @@ -263,7 +263,7 @@ - + @@ -391,7 +391,7 @@
-

Attributes

+

Abilities

@@ -474,7 +474,7 @@ - +
@@ -562,7 +562,7 @@ - + diff --git a/The One Ring 2e/translations/es.json b/The One Ring 2e/translations/es.json index e010299f2c..cf196a634d 100644 --- a/The One Ring 2e/translations/es.json +++ b/The One Ring 2e/translations/es.json @@ -1,209 +1,209 @@ { - "sheet-type-Player-Character": "Player Character", - "sheet-type-LM-Character": "LM Character", - "sheet-type-Adversary": "Adversary", - "attribute-level": "Attribute Level", - "weary-state": "Weary State", - "weary-normal": "Not Weary", - "weary-weary": "Weary", - "endurance": "Endurance", - "endurance-short": "Endur.", - "current-endurance": "Current Endurance", - "hate": "Hate/Resolve", - "parry-and-shield": "Parry & Shield", - "armour": "Armour", - "helm": "Helm", - "armour-placeholder": "[Armour]", - "helm-placeholder": "[Helm]", - "skills": "Skills", - "personality": "Personality", - "survival": "Survival", - "movement": "Movement", - "custom": "Custom", - "perception": "Perception", - "vocation": "Vocation", - "weapon-skills": "Weapon Skills", - "weapon-name": "Name", - "weapon-rating": "Rating", - "weapon-damage": "Dmg.", - "weapon-edge": "Edge", - "weapon-injury": "Inj.", - "weapon-called-shot": "Called Shot", - "special-abilities": "Special Abilities", - "hope": "Hope", - "current-hope": "Current Hope", - "character-name": "Name", - "culture": "Culture", - "standard-of-living": "Living Std.", - "cultural-blessing": "Blessing", - "calling": "Calling", - "shadow-weakness": "Weakness", - "specialities": "Specialities", - "distinctive-features": "Dist. Features", - "attributes": "Attributes", - "body": "Body", - "body-description": "A character with a high Body score can be tough and fit, or tall and agile, or even attractive or imposing. Every aspect of a character that relies on vigour or physical well-being is represented in the game by Body.", - "favoured": "Favoured", - "heart": "Heart", - "heart-description": "Measures a character’s capacity for emotion, energy and enthusiasm. A hero with a high Heart score can be fiery, intense, and hard to demoralise. Activities that benefit from a passionate or energetic temper may be influenced by a character’s Heart score.", - "wits": "Wits", - "wits-description": "A hero with a high Wits rating can be clever, attentive and strong-willed. A sharp-witted person is a quick thinker, and probably alert and vigilant, so any action that calls upon these qualities benefits from a hero’s Wits score.", - "valour": "Valour", - "valour-description": "Valour is a measure of a character’s courage, as tempered by dangerous deeds. A man of valour is willing to place himself in danger for the safety of others. In a time where new threats arise each day, courage is highly prized, and a valiant adventurer is often esteemed above all other individuals. For this reason, a hero’s rank in Valour also reflects the level of renown he attained as a doer of great deeds.

When a player decides to favour Valour over Wisdom, his hero’s actions, not his judgement, will tend to prove his status in the eyes of others. From the lowliest start as a wandering adventurer, a hero might one day equal the repute and respect earned by a famous champion or king.", - "wisdom": "Wisdom", - "wisdom-description": "A character’s knowledge of his own capabilities, his self- confidence and capacity for good judgement changes and improves with struggles and strife. A characteristic with deeply personal implications, a hero’s rank in Wisdom also determines the stature of the hero in the eyes of those that prize these qualities.

When Wisdom is chosen over Valour when spending Experience points, it suggests that the hero’s adventures are affecting him subtly but profoundly. Starting as a more or less ingenuous individual with an adventurous spirit, the hero can achieve the maturity and sagacity of the Wise.", - "common-skills": "Common Skills", - "skill-groups": "Skill Groups", - "awe": "Awe", - "awe-description": "This skill measures a hero’s capacity to provoke respect in onlookers, and determines the impression a hero makes on someone he meets for the first time. Depending on the circumstances and the hero’s intentions or disposition, it can be used to instil wonderment, admiration, or even fear. Awe arises from a character’s native charisma, but can also be engineered with a dramatic entrance or impressive attire.

A successful use of the skill provokes the chosen effect. A failure fails to have any impact, or can even lead to the opposite result! Achieving a great success means that the hero has won the hearts of the onlookers, or cowed them into silent submission. An extraordinary success may produce open reverence, or panic.", - "inspire": "Inspire", - "inspire-description": "A hero able to Inspire others can instil positive feelings in others, urging them to act on the matter at hand. This is a feat achieved mainly through example, charisma and personal conviction, rather than through the effective use of words (which falls under Persuade, below). It can be used on individuals, but is especially effective in influencing crowds. Heroes with high Inspire ratings can be forceful orators, passionate agitators, and well- loved leaders of men

A successful Inspire roll awakens a chosen feeling in the subject, so long as it is not in opposition to their current mood. A great success is enough to influence wholly disinterested individuals, and an extraordinary success may turn rivals into supporters.", - "persuade": "Persuade", - "persuade-description": "This skill allows a hero to apply his or her reasoning to convince another individual of an idea or course of action. It can be used to influence small groups of listeners, but only if used in an appropriate context, such as a common hall. An attempt at persuasion requires more time than other Personality skills, but can have a more lasting impact on other characters’ actions. A high Persuade score denotes an uncommon eloquence, a love of speech and knowledge of its proper use and its effect on listeners. Wise men, advisors to chieftains and kings and their messengers all share this passion for the spoken word.

The successful use of the skill lets the hero convince his audience of the flaws in their current position. A great success convinces the subject of the quality of the hero’s stance, while an extraordinary success may turn the subject into an ardent believer.", - "personality-description": "A hero’s personality comes through in his capacity to impress, encourage and influence others. A good level of proficiency in all three skills in this group is the mark of a leader.", - "athletics": "Athletics", - "athletics-description": "Athletics is a broad skill, covering most of the physical activities that a hero might undertake while adventuring, including r unning, leaping, climbing, swimming and throwing stones or other small objects. Heroes with high Athletics skill scores exhibit a winning combination of physical prowess, grace and control, generally gained through continuous exercise and daily exertion.

A successful Athletics roll produces a satisfactory outcome in the physical activity, while a failed roll might even lead to serious harm, depending on the circumstances. A great or extraordinary result suggests a spectacular achievement.", - "travel": "Travel", - "travel-description": "In the Third Age, the cities, villages and towns of Middle- earth are often separated by many leagues of wild or deserted areas. Roads that used to lead safely to distant realms now end in broken trails that go nowhere.

When the company needs to cover a distance across uncertain territory, including by boat, every companion is required to perform one or more tests using the Travel skill to avoid becoming weary too soon. While certainly the product of exper ience, the use of Travel benef its mostly from a hero’s strength of spirit.", - "stealth": "Stealth", - "stealth-description": "A hero resorts to Stealth whenever he needs, or is forced, to act in a furtive or secret way. The skill includes hiding, moving quietly and shadowing others. These activities often rely on quickness and precision, so a stealthy hero combines practiced caution with the ability to judge the right moment to take a chance. Hunters, burglars, and solitary fighters use Stealth to prosper in their trade.

A successful Stealth roll indicates that the character has gone unnoticed, while a failure has almost certainly attracts unwanted attention.

A great or extraordinary success produces an outcome so flawless that it even be impossible to trace the hero’s actions after the fact.", - "movement-description": "Overcoming obstacles, enduring long journeys and moving secretly are the stuff adventurers are made of.", - "awareness": "Awareness", - "awareness-description": "The Awareness skill represents a hero’s readiness to react and his ability to notice something unexpected, out of the ordinary, or difficult to detect. High skill reflects both keen senses and the experience to understand what you see and hear.

A high Awareness rating expresses an extraordinar y watchfulness, and is extremely useful to a companion who ser ves as a look-out for the company.", - "insight": "Insight", - "insight-description": "Insight is the ability of a hero to see beyond appearances, recognising people’s hidden thoughts and beliefs. Heroes with Insight can recognise when someone is lying, and can draw useful conclusions about people’s motives. A hero with a high Insight score is often recognised as being a sensible and discerning individual, and many might seek his counsel. A successful Insight roll provides the hero with a faithful, if partial, portrait of the character observed. A great or extraordinary success reveals truths about an individual of which he himself is ignorant. Insight tests may be rolled in opposition to an adversary using Persuade or another Personality skill.", - "search": "Search", - "search-description": "Search is used when trying to find something by close examination. This skill may let a hero search a library to locate a piece of relevant information, look for concealed doors or hidden inscriptions, recognise a familiar face in a crowd or even search a suspected thief’s clothing. One roll is required for each inspection of a small area, such as a room. Search rolls are generally initiated by the player rather than the Loremaster; Awareness is used to see if the characters passively notice something. A successful Search roll generally lets the characters find what they are looking for if it is to be found. A great or extraordinary success usually means the object is found more quickly. If an item is particularly well hidden, the Loremaster could decide that a higher level of success is required to uncover it.", - "perception-description": "The ability to catch hidden details often pays off, be it noticing an odd noise that gives away an ambusher, catching the gleam in the eyes of a liar or spotting the crack in the wall that reveals a secret door.", - "explore": "Explore", - "explore-description": "Adventurers rely on their Explore skill when they move through an unfamiliar area of the Wild. An Explore test may be required during a journey to find the company’s heading, or to get back on track after a detour; to cope with adverse weather conditions or other natural hazards; to create paths through the wilderness suitable for others to follow; or to choose a suitable place to set up camp. A high Explore rating is an invaluable resource for a companion acting as a scout for his group of adventurers.", - "healing": "Healing", - "healing-description": "The knowledge of how to relieve pain and apply remedies to restore health to the suffering is an ancient one, and treatments differ from culture to culture. Almost all traditions, however, agree on the treatment of serious injuries, which must be immediately tended to keep from worsening.

The Healing skill includes bone setting and the use of herbs or salves, but the outcome relies on the ability of the healer to understand what ails the sufferer and determine what should be done.", - "hunting": "Hunting", - "hunting-description": "Knowing how to hunt is a fundamental skill common in much of Middle-earth. A Hunting roll may be required when pursuing a creature through wild areas, or to locate tracks and follow them, or to identify a quarry by its spoor. The skill also covers preparing traps and the training and use of hunting dogs or birds. In wilder areas, hunters learn to apply their trade to more dangerous quarry, such as Orcs, Spiders or Wargs, or else risk becoming the prey.", - "survival-description": "The three skills of this group, essential for a roving adventurer, make a hero an invaluable member of a company.", - "song": "Song", - "song-description": "Hobbits and Men, Elves and Dwarves, even Goblins and maybe Orcs: all the creatures of Middle-earth celebrate by playing music and singing songs. Great deeds and grim misfortunes are remembered in verse, and pleasant or even comic stories are told to ease spirits and find comfort.

Song is used to recite poems, sing songs or play instruments suitable to the character’s culture. It can also be used to learn new works or create original compositions.", - "courtesy": "Courtesy", - "courtesy-description": "The Free Peoples recognise common norms of decency and ancient conventions of behaviour. Observing these traditions demonstrates respect and is a way of quickly establishing a friendly footing even with complete strangers.

A hero succeeding in a Courtesy roll knows what to say at the right moment to make a good impression with their host, or is mindful of his manners when receiving guests.", - "riddle": "Riddle", - "riddle-description": "Owing its name to the ancient Game, the Riddle skill represents a hero’s ability to draw conclusions from seemingly unconnected scraps of information, by deduction, reasoning and intuition.

An adventurer also relies on Riddle whenever he is forced to talk about a subject but wants to conceal part of what he knows, for example to explain something about himself without revealing his true identity.

An accepted custom among many creatures, speaking in riddles is usually allowed among strangers meeting for the first time who want to speak guardedly. This skill is also used to gain helpful insight from a spoken or written riddle.", - "custom-description": "While heroes are often held to be uncivilised brutes by the common folk, their lives can sometimes depend on knowing the proper words, wisest song or cleverest answer. Excelling in these skills is considered a noble achievement.", - "craft": "Craft", - "craft-description": "The Craft skill doesn’t really cover the whole range of abilities of smiths, wrights and other artisans, but reflects the talent of a character for making or mending things by hand, although Traits like Smithcraft or Woodwright can be used to reflect proficiency in a specific craft. Craft could be used to attempt to repair the wheel of a cart, or construct an improvised raft with wood found on a river shore, or even when trying to start a fire on a windy hill.

A high Craft score may indicate that the hero was a craftsman before starting his life of adventure. Some races, such as the Dwar ves and Noldor Elves, revere crafts as the highest expression of creativity.", - "battle": "Battle", - "battle-description": "A hero’s proficiency in this skill shows his grasp of the rules of battle, and his ability to keep his head when involved in a violent confrontation. The Battle skill can be used to gain an advantage when involved in a fight with a group of foes, or to lead a company of men in open battle and maintain order in the midst of chaos (combat itself is covered by Weapon skills).", - "lore": "Lore", - "lore-description": "Lore expresses a hero’s love for learning, be it a fascination with descriptions of distant lands, or an interest in family genealogy. Whenever an action involves knowledge of some kind, a Lore roll is required. Heroes are considered to be knowledgeable in the traditions of their own people, and so the Loremaster should rarely require a player to make a Lore test for information regarding their character’s culture, background or the area they originally come from.", - "vocation-description": "Before his resolve hardened and pushed a hero on his road to adventure, he probably led a life much like an ordinary individual of his folk; learning a trade, defending his people and absorbing their accumulated wisdom.", - "weapon": "Weapon", - "weapon-encumbrance-abbreviation": "Enc", - "combat-values": "Combat Values", - "damage": "Damage", - "ranged": "Ranged", - "parry": "Parry", - "total-parry": "Total Parry", - "shield": "Shield", - "shield-placeholder": "[Shield]", - "head-gear": "Head Gear", - "gear": "Gear", - "description": "Description", - "encumbrance-abbreviation": "Enc", - "character-states": "Character States", - "total-fatigue": "Total Fatigue", - "encumbrance-fatigue": "Enc. Fatigue", - "travel-fatigue": "Travel Fatigue", - "total-shadow": "Total Shadow", - "temporal-shadow": "Temp. Shadow", - "permanent-shadow": "Perm. Shadow", - "miserable": "\nMiserable", - "wounded": "\nWounded", - "wound-treated": "\nWound Treated", - "rewards-and-virtues": "Rewards & Virtues", - "rewards": "Rewards", - "virtues": "Virtues", - "progress-and-keepings": "Progress & Holdings", - "fellowship-pool": "Fellowship", - "advancement-points": "Advancement Points", - "experience": "Experience", - "experience-description": "Experience is a measure of a character’s having been affected by or gained knowledge or skill through direct observation or participation over a period of time.", - "treasure": "Treasure", - "treasure-rating": "Treasure
Rating", - "standing": "Standing", - "background": "Background", - "notes": "Notes", - "company": "Company", - "guide": "Guide", - "scout": "Scout", - "huntsman": "Huntsman", - "look-out_man": "Look-out Man", - "fellowship-focus": "Fellowship Focus", - "fellowship-phase": "Fellowship Phase", - "sanctuaries": "Sanctuaries", - "patron": "Patron", - "tale-of-years": "Tale of Years", - "year": "Year", - "event-description": "Event Description", - "mount": "Mount", - "mount-name": "Name", - "mount-type": "Type", - "mount-size": "Size", - "mount-riding-mod": "Riding Mod.", - "mount-charge-bonus": "Charge Bonus", - "mount-arm-red": "Arm. Red.", - "mount-qualities": "Qualities", - "rolls-for": "rolls for", - "against-tn": "against TN", - "protection": "Protection", - "injury": "Injury", - "target-number": "Target Number", - "attacks-with": "attacks with", - "attacks-with-a": "attacks with a", - "charges-with": "charges with", - "an-attack": "to attack", - "might": "Might", - "combat-proficiency": "Combat Proficiency", - "fell-ability": "Fell Ability", - "special-damage": "Special Damage", + "sheet-type-Player-Character": "Personaje Jugador", + "sheet-type-LM-Character": "Personaje del MS", + "sheet-type-Adversary": "Adversario", + "attribute-level": "Nivel de atributo", + "weary-state": "Estado de cansancio", + "weary-normal": "No cansado", + "weary-weary": "Cansado", + "endurance": "Aguante", + "endurance-short": "Aguan.", + "current-endurance": "Aguante actual", + "hate": "Odio/Determinación", + "parry-and-shield": "Parada & Escudo", + "armour": "Armadura", + "helm": "Yelmo", + "armour-placeholder": "[Armadura]", + "helm-placeholder": "[Yelmo]", + "skills": "Habilidades", + "personality": "Personalidad", + "survival": "Supervivencia", + "movement": "Movimiento", + "custom": "Costumbres", + "perception": "Percepción", + "vocation": "Vocación", + "weapon-skills": "Habilidades de armas", + "weapon-name": "Nombre", + "weapon-rating": "Rango", + "weapon-damage": "Daño", + "weapon-edge": "Filo", + "weapon-injury": "Herida", + "weapon-called-shot": "Golpe apunt.", + "special-abilities": "Habilidades Especiales", + "hope": "Esperanza", + "current-hope": "Esperanza actual", + "character-name": "Nombre", + "culture": "Cultura", + "standard-of-living": "Nivel de Vida", + "cultural-blessing": "Bendición", + "calling": "Ocupación", + "shadow-weakness": "Debilidad", + "specialities": "Especialidades", + "distinctive-features": "Rasgos dist.", + "attributes": "Atributos", + "body": "Cuerpo", + "body-description": "Un personaje con una puntuación elevada de Cuerpo puede ser duro y vigoroso, o bien alto y ágil, o incluso atractivo o imponente. Todo aspecto de un personaje que se basa en el vigor o en el bienestar físico viene representado en el juego por el Cuerpo.", + "favoured": "Favorito", + "heart": "Corazón", + "heart-description": "Mide la capacidad de un personaje para la emoción, la energía, y el entusiasmo. Un héroe con una puntuación de Corazón elevada puede ser ardiente, intenso, y difícil de desanimar. Las actividades que se benefician de un carácter apasionado o enérgico pueden verse influenciadas por la puntuación de Corazón de un personaje.", + "wits": "Mente", + "wits-description": "Un héroe con una puntuación elevada de Mente puede ser inteligente, atento, y tenaz. Una persona perspicaz piensa rápido, y está probablemente alerta y vigilante, por lo que cualquier acción que exija dichas cualidades se suele beneficiar de la puntuación de Mente de un héroe.", + "valour": "Valor", + "valour-description": "El Valor es una medida del coraje de un personaje, que se templa mediante gestas peligrosas. Un hombre de valor está dispuesto a ponerse en peligro a cambio de la seguridad de otros. En una época en la que nuevas amenazas surgen cada día, el Valor es una virtud muy apreciada, y un aventurero valiente es a menudo estimado por encima de todos los demás individuos. Por esta razón, el rango de un héroe en Valor también refleja el nivel de renombre que ha alcanzado llevando a cabo grandes gestas.", + "wisdom": "Sabidura", + "wisdom-description": "El conocimiento de las propias capacidades de un personaje, su confianza en sí mismo, y su capacidad de buen juicio cambian y mejoran con las luchas y los conflictos. Una característica con profundas implicaciones personales, el rango de un héroe en Sabiduría es también un indicativo del estatus del mismo ante quieenes aprecian estas cualidades.", + "common-skills": "Habilidades comunes", + "skill-groups": "Grupos habil.", + "awe": "Impresionar", + "awe-description": "Esta habilidad mide la capacidad de un héroe para provocar respeto en los presentes, y a menudo determina la impresión que un héroe causa sobre alguien con quien se encuentra por vez primera. Dependiendo de las circunstancias, y de las intenciones o disposición del héroe, se puede utilizar para inspirar asombro, admiración, o incluso temor. Una determinada impresión puede derivar del carisma espontáneo de un personaje, pero puede ser activamente inducida por una entrada dramática o un atuendo impresionante.

Un uso con éxito de la habilidad provoca el efecto elegido. Un fallo puede no tener ningún efecto notable... ¡o llevar al resultado opuesto! Conseguir un gran éxito significa que el héroe se ha ganado los corazones de los presentes, o que les ha intimidado para que permanezcan sumisos y en silencio. Un éxito extraordinario puede producir la reverencia abierta, o el pánico.", + "inspire": "Inspirar", + "inspire-description": "Un héroe capaz de inspirar a otros puede instilarles un sentimiento positivo, impulsándoles a actuar en el asunto que se tenga entre manos. Esta es una proeza conseguida sobre todo a través del ejemplo, el carisma, y la convicción personal, más que a través del uso efectivo de las palabras (que entra dentro de la habilidad Persuadir, a la derecha). Puede utilizarse para empujar a la acción a individuos ociosos, pero es especialmente efectiva para influenciar multitudes. Los héroes con niveles elevados de Inspirar pueden ser oradores convincentes, agitadores apasionados, y líderes entrañables.

Una tirada de Inspirar con éxito despierta el sentimiento elegido en el objetivo, mientras no sea lo opuesto a su opinión o disposición actual. Un gran éxito basta para influenciar a individuos que antes no estaban interesados, y un éxito extraordinario puede convertir a rivales en partidarios.", + "persuade": "Persuadir", + "persuade-description": "Esta habilidad permite a un héroe aplicar su raciocinio para convencer a otro individuo de una idea o curso de acción. Puede utilzarse para influenciar a pequeños grupos de oyentes, pero sólo si se utiliza en un contexto o situación social apropiados (por ejemplo una sala común). Un intento de persuasión requiere más tiempo que otas habilidades de personalidad, porque es una acción más compleja. Un nivel alto de Persuadir denota una elocuencia poco común, amor por las palabras, y un conocimiento de su uso adecuado, y de sus efectos sobre quienes las escuchan. Los hombres sabios, los consejeros de los caudillos y de los reyes, y sus mensajeros, todos ellos comparten esta pasión por la palabra hablada.

El uso con éxito de la habilidad permite al héroe convencer a su audiencia de los fallos de su posición actual. Un gran éxito cocnvence al objetivo de la cualidad de la posición del héroe, mientas que un éxito extraordinario podría convertir al objetivo en un firme creyente.", + "personality-description": "La personalidad de un héroe aflora en términos de juego a través de su capacidad para impresionar, animar e influenciar a otros. Un buen nivel de competencia en las tres habilidades de este grupo es la marca de un líder.", + "athletics": "Atletismo", + "athletics-description": "El Atletismo es una habilidad amplia, puesto que cubre la mayoría de las actividades físicas que un héroe podría emprender durante sus aventuras, inclyendo correr, saltar, trepar, nadar, y lanzar piedras u otros objetos pequeños. Los héroes que poseen un nivel elevado de Atletismo muestran una combinación ganadora de habilidad física, elegancia y control, obtenidas por lo general a través del ejercicio continuo, y de una vigorosa actividad diaria.

Una tirada con éxito de Atletismo da lugar a un resultado satisfactorio en la actividad física, mientras que una tirada fallida podría incluso dar pie a graves daños, dependiendo de las circunstancias. Un éxito grande o extraordinario sugiere un resultado espectacular.", + "travel": "Viajar", + "travel-description": "En la Tercera Edad las ciudades, pueblos y aldeas de la Tierra Media están a menudo separados por muchas leguas de zonas salvajes o desérticas. Los camnios que antaño llevaban con seguridad a reinos distantes, a menudo acaban en senderos que no llevan a ninguna parte.

Cuando la compañía precisa cubrir una distancia a través de un territorio incierto, incluyendo cuando va en bote, se requiere que todo compañero lleve a cabo una o más pruebas de la habilidad Viajar para evitar cansarse demasiado pronto. Si bien ciertamente es producto de la experiencia, el uso de Viajar se beneficia sobre todo de la fuerza de espíritu de un héroe.", + "stealth": "Sigilo", + "stealth-description": "Un héroe recurre al Sigilo siempre que necesita o se ve obligado a actuar de forma furtiva o secreta. La habilidad incluye ocultarse o moverse en silencio, y seguir de cerca a individuos. Estas actividades se basan a menudo en la rapidez y en la precisión, por lo que un héroe sigiloso combina su precaución practicada con la capacidad de reconocer el momento adecuado para arriesgarse. Cazadores, saqueadores, y guerreros solitarios utilizan el Sigilo para prosperar en sus profesiones.

Una tirada de Sigilo con éxito indica que el personaje ha pasado desapercibido, mientras que un fallo ha atraído casi con certeza una atención no deseada.

Un éxito grande o extraordinario consigue un resultado tan impecable, que podría ser imposible rastrear las acciones del héroe tras el hecho.", + "movement-description": "La pasta de la que está hecho un aventurero veterano viene dada por su capacidad de salvar obstáculos, soportar largos viajes, y moverse en secreto.", + "awareness": "Alerta", + "awareness-description": "La habilidad Alerta representa la capacidad de un héroe para reacionar, y darse cuenta de algo inesperado, fuera de lo ordinario, o difícil de detectar. Refleja a la vez unos sentidos agudos y la experiencia necesaria para entender lo que ves y oyes.

Un nivel elevado de Alerta expresa una vigilancia extraordinaria, y es mu útil al miembro de la compañía que ocupa el papel de vigía.", + "insight": "Persipcacia", + "insight-description": "La Perspicacia es la capacidad de un héroe para ver más allá de las apariencias, reconociendo los pensamientos y creencias ocultos de la gente. Con Perspicacia los héroes puede reconocer cuando alguien les miente, y extraer conclusiones útiles acerca de los motivos de la gente. Un héroe con una puntuación elevada de Perspicacia es a menudo reconocido como un individuo sensible y con criterio, y muchos podrían buscar sus consejos.

Una tirada con éxito de Perspicacia proporciona al héroe un retrato fiel, aunque parcial, del personaje observado. Un éxito grande o extraordinario revela verdades acerca de un individuo que él mismo podría ignorar. Las pruebas de Perspicacia se pueden tirar en oposición a un adeversario que use Persuadir o cualquier otra habilidad de personalidad.", + "search": "Buscar", + "search-description": "Buscar se utiliza cuando se intenta encontrar algo examinando de cerca. Esta habilidad puede permitir a un héroe registrar una biblioteca para encontrar una información relevante, buscar puertas secretas o inscripciones ocultas, reconocer un rostro familiar en una multitud, o incluso registrar las ropas de un sospechoso de ser un ladrón. Se requiere una tirada por cada inspección de un área pequeña, como por ejemplo una habitación. Las tiradas de Buscar se llevan a cabo principalmente a instancias del jugador, en vez del Maestro del Saber, porque la percepción pasiva de los personajes se suele determinar mediante la Alerta.

Una tirada con éxito de Buscar permite por lo general a los personajes encontrar lo que están buscando, si se encuentra en la zona registrada. Un éxito grande o extraordinario suele indicar una resolución más rápida. Si el objeto está particularmente bien escondido, el Maestro del saber podría decidir que se requiere un nivel mayor de éxito para descubrirlo.", + "perception-description": "La capacidad de ser capaz de darse cuenta de detalles ocultos a menudo vale la pena, ya se trate de oír un ruido extraño que delata una emboscada, ser capaz de ver un leve brillo en los ojos de un mentiroso, o descubrir la grieta en un muro que revela una puerta secreta.", + "explore": "Explorar", + "explore-description": "Los aventureros confían en su habilidad de Explorar cuando recorren una zona poco familiar del Yermo. Una tirada de Explorar se puede requerir durante un viaje para mantenerse en la dirección correcta, o para volver a la ruta después de un desvío; para soportar unas condiciones climatológicas adversas, u otro tipo de obstáculos naturales; para crear sendas a través de las tierras salvajes que otros puedan seguir; o para elegir un lugar adecuado donde acampar. Un nivel elevado de Explorar es un recurso valiosísimo para el miembro de la compañía que haga de explorador para su grupo aventurero.", + "healing": "Curar", + "healing-description": "El conocimiento de cómo aliviar el dolor y aplicar remedios para restaurar la salud a los que sufren es antiguo, y los tratamientos difieren de una cultura a otra. Casi todas las tradiciones coinciden en el tratamiento de las heridas graves, que deben ser atendidas de inmediato y así impedir que empeoren.

La habilidad de Curar incluye reducir fracturas y usar hierbas o bálsamos, pero el desenlace se basa en la capacidad del sanador de comprender qué le sucede al doliente y determinar qué se tiene que hacer.", + "hunting": "Cazar", + "hunting-description": "Saber cazar es una habilidad fundamental familiar para la mayoría de habitantes de la Tierra Media. Se puede requerir una tirada de Cazar para cualquier tarea relacionada, como por ejemplo perseguir a una criatura por zonas salvajes, encontrar huellas y seguirlas, o identificar a una presa por su rastro.

La habilidad también cubre preparar trampas, y el entrenamiento y uso de los perros o aves de presa. En las áreas más alvajes, los cazadores aprenden a aplicar su oficio a presas más peligrosas, com por ejemplo orcos, arañas, o huargos puesto que si no, se arriesgan a convertirse en presa.", + "survival-description": "Las tres habilidades de este grupo, esenciales para un aventurero ambulante, hacen que un héroe se convierta en un miento muy valioso de una compañía.", + "song": "Cantar", + "song-description": "Los hobbits y los hombres, los elfos y los enanos, incluso los trasgos y quizá los orcos: todas las criaturas de la Tierra Media demuestran su alegría tocando instrumentos musicales o cantando. Las grandes gestas y las desventuras más amargas se recuerdan en verso, y relatos placenteros o incluso cómicos son repetidos una y otra vez para tranquilizar los espíritus y encontrar la calma. Cantar se utiliza para recitar un poema, cantar una canción, o tocar un instrumento que pertenezca a la cultura del usuario. También puede utilizarse para aprender nuevas obras o crear composiciones originales.", + "courtesy": "Cortesía", + "courtesy-description": "Los Pueblos Libres reconocen normas comunes de decencia, y antiguas convenciones de comportamiento. Observar estas tradiciones demuestra respeto, y es una forma de establecer rápidamente una base amistosa incluso entre completos desconocidos.

Un héroe que consiga una tirada de Cortesía sabe qué decir en el momento oportuno para causar una buena impresión en su anfitrión, o tiene cuidado con sus modales cuando recibe huéspedes.", + "riddle": "Acertijos", + "riddle-description": "Debiendo su nombre al antiguo juego, la habilidad Acertijos representa la capacidad de un héroe para sacar conclusiones de informaciones aparentemente inconexas, mediante deducción, razonamiento e intuición.

Un aventurero también confía en los Acertijos cuando se ve obligado a hablar de un tema, pero quiere omitir la mayor parte de lo que sabe, por ejemplo para explicar algo acerca de sí mismo sin revelar su auténtica identidad. Una costumbre aceptada entre muchas criuaturas, hablar en acertijos se suele permitir entre extraños que se encuentran por vez primera, y que quieren comunicarse sopesando mucho sus palabras. Esta habilidad también se utiliza cuando es el turno del héroe de extraer información útil de un acertijo hablado o escrito.", + "custom-description": "Si bien la gente común teme a menudo que los héroes sean brutos poco civilizados, las vidas de éstos pueden depender a veces de conocer las palabras, la canción, o la respuesta adecuadas. Destacar en estas habilidades se considera un logro notable.", + "craft": "Oficio", + "craft-description": "La habilidad Oficio no cubre realmente toda la gama de capacidades de herreros, constructores, u otros artesanos, sino que refleja el talento de un personaje para hacer o reparar cosas a mano, aunque hay rasgos como Herrería, Carpintería, que pueden utilizarse para reflejar la competencia en un oficio específico. Oficio puede utilizarse para intentar arreglar la rueda de un carro, construir una almadía improvisada con madera encontrada en la orilla de un río, o incluso para encender una fogata en una colina ventosa.

Un nivel de Oficio elevado podría indicar que el héroe era artesano antes de empezar su vida aventurera. Algunas razas, como los enanos y los elfos noldor, reverencian los oficios como la expresión más elevada de la creatividad de un individuo.", + "battle": "Guerrear", + "battle-description": "El nivel de competencia de un héroe en esta habilidad muestra su comprensión de las reglas de la batalla, y su capacidad de mantener la calma cuando está envuelto en una confrontación violenta. La habilidad de Guerrear puede utilizarse para obtener ventaja cuando se está envuelto en una lucha contra un grupo de enemigos, o para dirigir a una compañía de hombres en una batalla campal, y mantener el orden en medio del caos (el combate en sí lo cubren las habilidades de armas).", + "lore": "Saber", + "lore-description": "El Saber expresa el amor de un héroe por los conocimientos, ya sea una fascinación por las descripciones de tierras distantes, o un interés por la genealogía familiar. Cuando una acción implica conocimiento de algún tipo, se requiere una tirada de Saber.

Se considera que los héroes conocen las tradiciones de su propia gente, y por lo tanto el Maestro del saber raramente debería requerir que un jugador hiciera una prueba de Saber sobre información relativa a la cultura, el trasfondo, o la zona de la que originalmente procede su personaje.", + "vocation-description": "Antes de que su resolución se endureciera y empujara a un héroe por la senda de la aventura, probablemente llevara una vida muy parecida a la de un individuo ordinario de su pueblo; aprendiendo un oficio, defendiendo a su gente, y absorbiendo su Sabiduría acumulada.", + "weapon": "Arma", + "weapon-encumbrance-abbreviation": "Imp.", + "combat-values": "Valores de combate", + "damage": "Daño", + "ranged": "A dist.", + "parry": "Parada", + "total-parry": "Parada total", + "shield": "Escudo", + "shield-placeholder": "[Escudo]", + "head-gear": "Cubrecabeza", + "gear": "Equipo", + "description": "Descripción", + "encumbrance-abbreviation": "Imp", + "character-states": "Estados del personaje", + "total-fatigue": "Fatiga total", + "encumbrance-fatigue": "Fatiga de imp.", + "travel-fatigue": "Fatiga de viaje", + "total-shadow": "Sombra total", + "temporal-shadow": "Sombra temp.", + "permanent-shadow": "Sombra perm.", + "miserable": "\nDesanimado", + "wounded": "\nHerido", + "wound-treated": "\nHerida Tratada", + "rewards-and-virtues": "Recompensas & Virtudes", + "rewards": "Recompensas", + "virtues": "Virtudes", + "progress-and-keepings": "Progreso & Pertenencias", + "fellowship-pool": "Comunidad", + "advancement-points": "Puntos de avance", + "experience": "Experiencia", + "experience-description": "La experiencia es una medida de que un personaje se ha visto afectado o adquirido conocimientos o habilidades a través de la observación directa o la participación durante un período de tiempo.", + "treasure": "Tesoro", + "treasure-rating": "Rango
Tesoro", + "standing": "Estatus", + "background": "Trasfondo", + "notes": "Notas", + "company": "Compañía", + "guide": "Guía", + "scout": "Explorador ", + "huntsman": "Cazador", + "look-out_man": "Vigía", + "fellowship-focus": "Foco de comunidad", + "fellowship-phase": "Fase de comunidad", + "sanctuaries": "Santuarios", + "patron": "Patrones", + "tale-of-years": "Cómputo de los años", + "year": "Año", + "event-description": "Descripción del acontecimiento", + "mount": "Montura", + "mount-name": "Nombre", + "mount-type": "Tipo", + "mount-size": "Tam.", + "mount-riding-mod": "Mod. monta", + "mount-charge-bonus": "Bon. carga", + "mount-arm-red": "Red. Arm.", + "mount-qualities": "Cualidades", + "rolls-for": "tira", + "against-tn": "contra NO", + "protection": "Proteccion", + "injury": "Herida", + "target-number": "Número objetivo", + "attacks-with": "ataca con", + "attacks-with-a": "ataca con", + "charges-with": "carga con", + "an-attack": "para atacar", + "might": "Poder", + "combat-proficiency": "Competencia de combate", + "fell-ability": "Aptitud Terrible", + "special-damage": "Daño Especial", "general": "General", - "flaws": "Flaws", - "adventure-points": "Adventure
Points", - "skill-points": "Skill Points", - "adventure-points-total": "Adventure
Total", - "skill-points-total": "Skill Total", - "treasure-load-title": "Treasure Load (carried)", - "rating": "Rating", - "tn-strength": "TN", - "tn-heart": "TN", - "tn-wits": "TN", - "strength": "Strength", - "strength-description": "A character with a high Strength score can be tough and fit, or tall and agile, or even attractive or imposing. Every aspect of a character that relies on vigour or physical well-being is represented in the game by Strength.", - "endurance-max": "End. (max.)", - "hope-max": "Hope (max.)", - "load": "Load", - "fatigue": "Fatigue", - "shadow": "Shadow", - "scars": "Scars", - "age": "Age", - "scan": "Scan", - "scan-description": "Player-heroes can use the SCAN Skill when examining something closely or attentively. This Skill allows a Player-hero to skim through a book to locate a piece of relevant information, look for concealed doors or hidden inscriptions, recognise a familiar face in a crowd, or locate a set of tracks on the ground. SCAN rolls are generally initiated by the players rather than the Loremaster. One roll is required for each inspection of a small area, such as a room. AWARENESS, rather than SCAN, is used to see if a hero passively notices something. A successful SCAN roll generally lets Player-heroes find what they are looking for — if it is to be found at all. A superior success usually means the object is found more quickly.", - "enhearten": "Enhearten", - "enhearten-description": "Player-heroes can use the ENHEARTEN skill to instil positive feelings in others, urging them to act on the matter at hand. They achieve this mainly through example, charisma, and personal conviction, rather than through the effective use of words (which falls under PERSUADE below). This Skill can be used on individuals, but is particularly effective in influencing crowds. Player-heroes with high ENHEARTEN ratings can be forceful orators, passionate agitators, and well-loved leaders. A successful ENHEARTEN roll awakens a chosen feeling in the subject, as long as it is not in opposition to their current mood. A superior success is enough to influence wholly disinterested individuals, or turn rivals into supporters.", - "combat": "Combat", - "axes": "Axes", - "swords": "Swords", - "bows": "Bows", - "spears": "Spears", - "parsedroll-description": "When enabled the dice rolls will be parsed and calculated, with output displayed in a rolltemplate. This removes the need for roll tables.", - "tableroll-description": "When enabled the dice rolls will be using preconfigured rollable tables according to instructions for The One Ring 1st Edition, with output displayed in a rolltemplate. This removes the needed rollable tables to be preconfigured.", - "axes-description": "The AXES Combat Proficiency allows a Player-hero to use an axe, a great axe, a long-hafted axe, but also a mattock.", - "bows-description": "The BOWS Combat Proficiency enables a Player-hero to make ranged attacks using a bow or a great bow.", - "spears-description": "The SPEARS Combat Proficiency allows a hero to make and close combat attacks using a short spear or a spear, or to fight in close combat using a great spear.", - "swords-description": "The SWORDS Combat Proficiency enables a Player-hero to attack in close combat using short swords, swords, and long swords.", - "other-placeholder": "Other", - "close-fitting-description": "Close Fitting: When you make a parsed PROTECTION roll while wearing a close-­fitting armour or helm you add +2 to the result", - "cunning-make-description": "Cunning make: reduce the Load rating of the item by 2 (to a minimum of 0 Load)", - "reinforced-description": "Reinforced: add 1 to your shield’s Parry bonus.", - "stance-attack-modifier": "Attack Mod.", - "stance-attack-modifier-description": "Depending on stance the attack modifier will be forward:1/open:0/defensive:-1/rearward:0. This attack modifier is the default value for attack bonus dice. If a character is in defensive stance fighting against more then one adversary player can use the bonus dice query to set this to -2/-3 according to the number of adversaries. " + "flaws": "Defectos", + "adventure-points": "Puntos
Aventura", + "skill-points": "Puntos
Habilidad", + "adventure-points-total": "Total
Aventura", + "skill-points-total": "Total
Habilidad", + "treasure-load-title": "Carga del tesoro (transportado)", + "rating": "Rango", + "tn-strength": "NO", + "tn-heart": "NO", + "tn-wits": "NO", + "strength": "Fuerza", + "strength-description": "Un personaje con una puntuación alta en Fuerza puede ser duro y estar en forma, o ser alto y ágil, o incluso atractivo o imponente. Cada aspecto de un personaje que se basa en el vigor o el bienestar físico está representado en el juego por la Fuerza.", + "endurance-max": "Aguan. (max.)", + "hope-max": "Esperanza (máx.)", + "load": "Carga", + "fatigue": "Fatiga", + "shadow": "Sombra", + "scars": "Cicatr.", + "age": "Edad", + "scan": "Inspeccionar", + "scan-description": "Los aventureros pueden usar la Habilidad INSPECCIONAR cuando examinan algo de cerca o con atención. Esta habilidad le permite a un aventurero hojear un libro para ubicar información relevante, buscar puertas ocultas o inscripciones ocultas, reconocer una cara familiar en una multitud o ubicar un conjunto de huellas en el suelo. Las tiradas de INSPECIONAR son generalmente iniciadas por los jugadores en lugar de por el Mestro del Saber. Se requiere una Tirada para cada inspección de un área pequeña, como una habitación. ALERTA, en lugar de INSPECCIONAR, se usa para ver si un héroe nota algo pasivamente. Una tirada exitosa de EXAMINAR generalmente permite a los héroes encontrar lo que están buscando, si es que lo pueden encontrar. Un éxito superior generalmente significa que el objeto se encuentra más rápidamente.", + "enhearten": "Alentar", + "enhearten-description": "Los aventureros pueden usar la habilidad ALENTAR para inculcar sentimientos positivos en los demás, instándolos a actuar sobre el asunto en cuestión. Lo logran principalmente a través del ejemplo, el carisma y la convicción personal, más que a través del uso eficaz de las palabras (que se incluye en PERSUADIR). Esta Habilidad se puede usar en individuos, pero es particularmente efectiva para influir en multitudes. Los aventureros con alto valor de ALENTAR pueden ser oradores enérgicos, agitadores apasionados y líderes muy queridos. Una tirada exitosa de ALENTAR despierta un sentimiento elegido en el sujeto, siempre que no se oponga a su estado de ánimo actual. Un éxito superior es suficiente para influir en individuos totalmente desinteresados ​​o convertir a los rivales en seguidores.", + "combat": "Combate", + "axes": "Hachas", + "swords": "Espadas", + "bows": "Arcos", + "spears": "Lanzas", + "parsedroll-description": "Cuando está marcado, las tiradas de dados se analizarán y calcularán, mostrándose el resultado en una plantilla de tirada. Esto elimina la necesidad de tablas de tiradas.", + "tableroll-description": "Cuando está marcado, las tiradas de dados utilizarán tablas de tiradas pre configuradas de acuerdo con las instrucciones de El Anillo Único Primera Edición, con el resultado mostrándose en una plantilla de tirada. Esto elimina la necesidad de pre configurar tablas de tiradas.", + "axes-description": "La Habilidad de HACHAS permite al aventurero usar un hacha, un gran hacha, un hacha de mango largo, incluso una piqueta.", + "bows-description": "La Habilidad de ARCOS permite al aventurero realizar ataques a distancia un arco o un arco largo.", + "spears-description": "La Habilidad de LANZAS permite al aventurero usar una lanza o una lanza larga.", + "swords-description": "La Habilidad de ESPADAS permite al aventurero usar espadas cortas, espadas y espadas largas.", + "other-placeholder": "Otros", + "close-fitting-description": "Ajustado: cuando haces una tirada de PROTECCIÓN mientras usas una armadura o casco ajustado, sumas +2 al resultado.", + "cunning-make-description": "Hábilmente fabricado: reduce el valor de carga del objeto en 2 (hasta un mínimo de 0 carga)", + "reinforced-description": "Reforzado: añade 1 a tu bonificación de Parada con escudo.", + "stance-attack-modifier": "Mod. Ataque", + "stance-attack-modifier-description": "Dependiendo de la posición de combate, el modificador de ataque será vanguardia: 1/abierta: 0/defensiva: -1/retraguardia: 0. Este modificador de ataque es el valor predeterminado para los dados de bonificación de ataque. Si un personaje está en posición defensiva luchando contra más de un jugador adversario, puede usar la caja de consulta de dados de bonificación para establecer -2/-3 según la cantidad de adversarios." } \ No newline at end of file diff --git a/Vaesen/translations/de.json b/Vaesen/translations/de.json index 2f3e59600f..5255a51cd0 100644 --- a/Vaesen/translations/de.json +++ b/Vaesen/translations/de.json @@ -1,95 +1,95 @@ { - "character": "Character", - "headquarter": "Headquarter", - "character-sheet": "Character Sheet", + "character": "Charakter", + "headquarter": "Hauptquartier", + "character-sheet": "Charakterbogen", "name": "Name", - "age": "Age/Age group", - "archetype": "Archetype", + "age": "Alter/Altersgruppe", + "archetype": "Archetyp", "motivation": "Motivation", "trauma": "Trauma", - "dark-secret": "Dark Secret", - "relationships": "Relationships", - "relation": "Relation", - "talents": "Talents", - "insights-defects": "Insights & Defects", - "advantages": "Advantages", - "armor": "Armor", - "protection": "Protection", - "equipment": "Equipment", + "dark-secret": "Dunkles Geheimnis", + "relationships": "Beziehungen", + "relation": "Beziehung", + "talents": "Talente", + "insights-defects": "Erkenntnisse & Gebrechen", + "advantages": "Vorteile", + "armor": "Rüstung", + "protection": "Schutz", + "equipment": "Ausrüstung", "bonus": "Bonus", - "weapon": "Weapon", - "damage": "Damage", - "range": "Range", + "weapon": "Waffen", + "damage": "Schaden", + "range": "Reichweite", "memento": "Memento", - "roll": "Roll", - "roll-d66": "Roll D66", - "make-the-roll-secret": "Make the roll secret", - "dice-modificator-roll": "Dice modificator roll", - "attributes": "Attributes", - "physique": "Physique", - "precision": "Precision", - "logic": "Logic", - "empathy": "Empathy", - "resources": "Resources", - "conditions": "Conditions", - "physical": "Physical", - "exhausted": "Exhausted", - "battered": "Battered", - "wounded": "Wounded", - "broken": "Broken", - "mental": "Mental", - "angry": "Angry", - "frightened": "Frightened", - "hopeless": "Hopeless", - "skills": "Skills", + "roll": " Würfle ", + "roll-d66": "Würfle d66", + "make-the-roll-secret": "Geheimer Würfelwurf", + "dice-modificator-roll": "Würfel-Modifikator", + "attributes": "Attribute", + "physique": "Physis", + "precision": "Präzision", + "logic": "Logik", + "empathy": "Empathie", + "resources": "Vermögen", + "conditions": "Zustände", + "physical": "Körperlich", + "exhausted": "Erschöpft", + "battered": "Angeschlagen", + "wounded": "Verletzt", + "broken": "Gebrochen", + "mental": "Geistig", + "angry": "Wütend", + "frightened": "Verängstigt", + "hopeless": "Hoffnungslos", + "skills": "Fertigkeiten", "attribute": "Attribute", - "use": "Use", - "clear": "Clear", - "dice-modificator": "Dice modificator:", - "agility": "Agility", - "close-combat": "Close combat", - "force": "Force", - "medicine": "Medicine", - "ranged-combat": "Ranged Combat", - "stealth": "Stealth", - "investigation": "Investigation", - "learning": "Learning", - "vigilance": "Vigilance", + "use": "würfeln", + "clear": "Leeren", + "dice-modificator": "Würfelmodifikator:", + "agility": "Beweglichkeit", + "close-combat": "Nahkampf", + "force": "Kraft", + "medicine": "Medizin", + "ranged-combat": "Fernkampf", + "stealth": "Heimlichkeit", + "investigation": "Ermittlung", + "learning": "Bildung", + "vigilance": "Wachsamkeit", "inspiration": "Inspiration", "manipulation": "Manipulation", - "observation": "Observation", - "experience": "Experience", - "weapon-attack": "Weapon Attack", - "success": "Success", - "amount-of-dices": "Amount of Dices", - "condition-penalty": "Condition penalty", - "weapon-bonus": "Weapon Bonus", - "headquarter-sheet": "Headquarter Sheet", + "observation": "Beobachten", + "experience": "Erfahrung", + "weapon-attack": "Waffenangriff", + "success": "Erfolg", + "amount-of-dices": "Anzahl der Würfel", + "condition-penalty": "Zustand erhalten", + "weapon-bonus": "Waffenbonus", + "headquarter-sheet": "Hauptquartierblatt", "name-hq": "Name", - "type_of_building": "Type of building", - "location": "Location", - "development-points": "Development Points", - "history": "History", - "upgrades": "Upgrades", - "facilities": "Facilities", - "discovered-facilities": "Discovered Facilities", - "contacts": "Contacts", - "personel": "Personel", - "function": "Function", - "asset": "Asset", - "npc-sheet": "NPC sheet", - "physical-toughness": "Physical Toughness", - "mental-toughness": "Mental Toughness", - "notes": "Notes", - "skill-roll": "Skill Roll", - "vaesen-sheet": "Vaesen sheet", - "secret": "Secret", + "type_of_building": "Art des Gebäudes", + "location": "Standort", + "development-points": "Entwicklungspunkte", + "history": "Geschichte", + "upgrades": "Verbesserungen", + "facilities": "Ausbauten", + "discovered-facilities": "Entdeckte Ausbauten", + "contacts": "Kontakte", + "personel": "Personal", + "function": "Funktion", + "asset": "Vorzug", + "npc-sheet": "NSC Bogen", + "physical-toughness": "Körperliche Belastbarkeit", + "mental-toughness": "Geistige Belastbarkeit", + "notes": "Notizen", + "skill-roll": "Fertigkeitswurf", + "vaesen-sheet": "Vaesen-Blatt", + "secret": "Geheimnis", "ritual": "Ritual", - "might": "Might", - "body-control": "Body Control", - "magic": "Magic", - "fear": "Fear", - "attacks": "Attacks", + "might": "Macht", + "body-control": "Körperbeherrschung", + "magic": "Magie", + "fear": "Furcht", + "attacks": "Angriffe", "condition-name": "Name", - "abilities": "Abilities" + "abilities": "Fähigkeiten" } \ No newline at end of file diff --git a/Warhammer Fantasy Roleplay 4e Official/translations/es.json b/Warhammer Fantasy Roleplay 4e Official/translations/es.json index d5cb24fbfb..b05d3e969e 100644 --- a/Warhammer Fantasy Roleplay 4e Official/translations/es.json +++ b/Warhammer Fantasy Roleplay 4e Official/translations/es.json @@ -1,61 +1,61 @@ { "": "", "Name": "Nombre", - "Species": "especie", - "Human": "Human", - "Halfling": "Halfling", + "Species": "Raza", + "Human": "Humano", + "Halfling": "Mediano", "Dwarf": "Enano", - "Gnome": "Gnome", - "Class": "Class", - "Academic": "Académicas", - "Burgher": "Burgher", - "Courtier": "Corte", - "Peasant": "Peasant", - "Ranger": "Ranger", - "Riverfolk": "Riverfolk", - "Rogue": "Rogue", - "Warrior": "Warrior", - "Career": "Profesión", - "Status": "Status", - "Age": "Age", - "Height": "Height", - "Hair": "Hair", - "Eyes": "Eyes", + "Gnome": "Gnomo", + "Class": "Clase", + "Academic": "Académicos", + "Burgher": "Burgueses", + "Courtier": "Cortesanos", + "Peasant": "Campesinos", + "Ranger": "Rurales", + "Riverfolk": "Ribereños", + "Rogue": "Pícaros", + "Warrior": "Guerreros", + "Career": "Carrera", + "Status": "Estatus", + "Age": "Edad", + "Height": "Altura", + "Hair": "Cabello", + "Eyes": "Ojos", "Characteristics": "Características", "Initial": "Inicial", "Advances": "Avances", - "Modifier": "Modifier", - "Current": "Current", - "Bonus": "Bonus", - "WS": "WS", - "BS": "BS", - "S": "S", - "T": "T", - "I": "I", + "Modifier": "Modificador", + "Current": "Actual", + "Bonus": "Bonificador", + "WS": "HA", + "BS": "HP", + "S": "F", + "T": "R", + "I": "Ini", "Ag": "Ag", - "Dex": "Dex", + "Dex": "Des", "Int": "Int", - "WP": "WP", - "Fel": "Fel", + "WP": "V", + "Fel": "Emp", "W": "H", "M": "M", - "Fate": "Fate", - "Fortune": "Fortune", - "Resilience": "Aguante", - "Resolve": "Resolve", - "Motivation": "Motivation", - "Experience": "Experience", - "Current XP": "Current", + "Fate": "Destino", + "Fortune": "Fortuna", + "Resilience": "Resiliencia", + "Resolve": "Resolución", + "Motivation": "Motivación", + "Experience": "Experiencia", + "Current XP": "PX Actual", "Spent XP": "Gastados", - "Total XP": "Total", - "Movement": "Movement", - "Walk": "Walk", - "Run": "Run", - "Skills": "Skills", - "Characteristic": "Characteristic", - "Skill": "Skill", - "Athletics": "Athletics", - "Bribery": "Bribery", + "Total XP": "PX Total", + "Movement": "Movimiento", + "Walk": "Andar", + "Run": "Correr", + "Skills": "Habilidades", + "Characteristic": "Característica", + "Skill": "Habilidad", + "Athletics": "Atletismo", + "Bribery": "Sobornar", "Channelling": "Canalizar", "Azyr": "Azyr", "Aqshy": "Aqshy", @@ -75,32 +75,32 @@ "attr_Hysh": "attr_Hysh", "attr_Shyish": "attr_Shyish", "attr_Ulgu": "attr_Ulgu", - "Charm": "Charm", + "Charm": "Carisma", "Charm Animal": "Carisma Animal", "Animal Care": "Cría de animales", - "Animal Training": "Animal Training", - "Career Level": "Career Level", - "Career Path": "Career Path", + "Animal Training": "Adiestrar animales", + "Career Level": "Nivel de Carrera", + "Career Path": "Itinerario de Carrera", "High Elf": "Alto Elfo", "Wood Elf": "Elfo Silvano", - "Climb": "Climb", + "Climb": "Escalar", "Consume Alcohol": "Consumir alcohol", "Cool": "Frialdad", - "Dodge": "Esquiva", - "Drive": "Drive", - "Endurance": "Vigor", + "Dodge": "Esquivar", + "Drive": "Conducir", + "Endurance": "Aguante", "Entertain": "Entretener", - "Evaluate": "Evaluate", + "Evaluate": "Tasar", "Gamble": "Jugar", "Gossip": "Cotilleo", - "Haggle": "Haggle", - "Heal": "Heal", + "Haggle": "Regatear", + "Heal": "Sanar", "Intimidate": "Intimidar", - "Intuition": "Intuition", - "Language": "Language", - "Leadership": "Leadership", - "Lore": "Lore", - "Melee": "Melee", + "Intuition": "Intuicion", + "Language": "Hablar idioma", + "Leadership": "Mando", + "Lore": "Sabiduría académica", + "Melee": "Cuerpo a cuerpo", "attr_Basic": "attr_Basic", "attr_Brawling": "attr_Brawling", "attr_Cavalry": "attr_Cavalry", @@ -109,14 +109,14 @@ "attr_Parry": "attr_Parry", "attr_Polearm": "attr_Polearm", "attr_Two-Handed": "attr_Two-Handed", - "Navigation": "Navigation", + "Navigation": "Orientación", "Outdoor Survival": "Supervivencia", - "Perception": "Perception", - "Perform": "Interpretar", + "Perception": "Percepción", + "Perform": "Animar", "Pick Lock": "Forzar cerraduras", - "Play": "Reproducir", + "Play": "Jugar", "Pray": "Rezar", - "Ranged": "Ranged", + "Ranged": "A distancia", "attr_Blackpowder": "attr_Blackpowder", "attr_Bow": "attr_Bow", "attr_Crossbow": "attr_Crossbow", @@ -125,143 +125,143 @@ "attr_Explosives": "attr_Explosives", "attr_Sling": "attr_Sling", "attr_Throwing": "attr_Throwing", - "Research": "Research", - "Ride": "Ride", + "Research": "Investigar", + "Ride": "Montar", "Row": "Remar", - "Sail": "Sail", + "Sail": "Navegar", "Secret Signs": "Lengua secreta", "Set Trap": "Poner trampas", - "Sleight of Hand": "Sleight of Hand", - "Stealth": "Stealth", - "Swim": "Swim", - "Track": "Canción", - "Trade": "Trade", - "Talents": "Talents", + "Sleight of Hand": "Prestidigitación", + "Stealth": "Movimiento silencioso", + "Swim": "Nadar", + "Track": "Seguir", + "Trade": "Oficio", + "Talents": "Talentos", "Ranks": "Rangos", - "Ambitions": "Ambitions", - "Party": "Party", - "Armour": "Armour", + "Ambitions": "Ambiciones", + "Party": "Grupo", + "Armour": "Armadura", "Locations": "Localizaciones", "AP": "PA", - "Qualities": "Qualities", + "Qualities": "Cualidades", "Placeholder": "Placeholder", "Trappings": "Ornamentos", "Enc": "Imp.", "Max Enc.": "Carga max.", - "Psychology": "Psychology", - "Corruption & Mutations": "Corruption & Mutations", - "Corruption Points": "Corruption Points", - "Wealth": "Wealth", - "GC": "GC", - "SS": "SS", - "BP": "BP", - "Wounds": "Wounds", + "Psychology": "Psicología", + "Corruption & Mutations": "Corrupción y Mutaciones", + "Corruption Points": "Puntos de corrupción", + "Wealth": "Dinero", + "GC": "CO", + "SS": "CP", + "BP": "PF", + "Wounds": "Heridas", "Max Wounds": "Heridas Máx", - "Critical Wounds": "Critical Wounds", - "Conditions": "Conditions", - "Weapons": "Weapons", + "Critical Wounds": "Heridas Críticas", + "Conditions": "Estados", + "Weapons": "Armas", "Group": "Agrupar", "Range/Reach": "Rango/Alcance", - "Damage": "Damage", - "spells": "spells", - "Spells & Prayers": "Spells & Prayers", + "Damage": "Daño", + "spells": "hechizos", + "Spells & Prayers": "Hechizos y Plegarias", "CN": "NL", - "Range": "Range", + "Range": "Alcance", "Target/Rating": "Target/Rating", - "Duration": "Duration", + "Duration": "Duración", "Sin": "Pecado", - "Art": "Art", + "Art": "Arte", "Adv.": "Av.", "Total": "Total", - "Custom": "Custom", - "Custom Name": "Custom Name", - "Char.": "Car", - "Basic Skills": "Basic Skills", - "Advanced Skills": "Advanced Skills", - "Max": "Max", + "Custom": "Personalizado", + "Custom Name": "Nombre personalizado", + "Char.": "Car.", + "Basic Skills": "Habilidades Básicas", + "Advanced Skills": "Habilidades Avanzadas", + "Max": "Máx", "Test Type": "Test Type", - "Description": "Description", - "Characteristic Modifiers": "Characteristic Modifiers", + "Description": "Descripción", + "Characteristic Modifiers": "Modificadores de características", "None": "Nada", - "Weapon Skill": "Weapon Skill", - "Ballistic Skill": "Ballistic Skill", - "Strength": "Strength", - "Toughness": "Vigor", - "Initiative": "Initiative", - "Agility": "Agility", - "Dexterity": "Dexterity", - "Intelligence": "Intelligence", - "Willpower": "Willpower", - "Fellowship": "Fellowship", + "Weapon Skill": "Habilidad en Armas", + "Ballistic Skill": "Habilidad en Proyectiles", + "Strength": "Fuerza", + "Toughness": "Resistencia", + "Initiative": "Iniciativa", + "Agility": "Agilidad", + "Dexterity": "Destreza", + "Intelligence": "Inteligencia", + "Willpower": "Voluntad", + "Fellowship": "Empatía", "Out": "Inconsciente", "Global Penalty": "Global Penalty", "modifier": "modificador", - "name": "name", + "name": "nombre", "specialisation display": "specialisation display", "Basic": "Básico", - "Cavalry": "Cavalry", - "Flail": "Flail", - "Polearm": "Polearm", - "Brawling": "Brawling", + "Cavalry": "Caballería", + "Flail": "Mayales", + "Polearm": "Arma de asta", + "Brawling": "Pelea", "Fencing": "Esgrima", - "Parry": "Parry", + "Parry": "Parada", "Two-Handed": "Dos manos", - "Blackpowder": "Blackpowder", - "Crossbow": "Crossbow", - "Entangling": "Entangling", - "Sling": "Sling", + "Blackpowder": "Pólvora negra", + "Crossbow": "Ballesta", + "Entangling": "Enmarañar", + "Sling": "Honda", "Bow": "Arco", - "Engineering": "Engineering", - "Explosives": "Explosives", - "Throwing": "Throwing", - "Specialisation Name": "Specialisation Name", - "Short-term": "Short-term", - "Long-term": "Long-term", - "Party Name": "Party Name", - "Members": "Members", - "Modifiers": "Modifiers", - "Traits": "Traits", + "Engineering": "Ingeniería", + "Explosives": "Explosivos", + "Throwing": "Arrojadizas", + "Specialisation Name": "Nombre de la especialización", + "Short-term": "Corto plazo", + "Long-term": "Largo plazo", + "Party Name": "Nombre del Grupo", + "Members": "Miembros", + "Modifiers": "Modificadores", + "Traits": "Rasgos", "Type": "Tipo", - "Count Enc.": "Count Enc.", - "Armour Points": "Armour Points", - "Current Wounds": "Current Wounds", + "Count Enc.": "Suma Imp.", + "Armour Points": "Puntos de Armadura", + "Current Wounds": "Heridas Actuales", "Location": "Ubicación", - "Target": "Target", - "School / Deity": "School / Deity", - "Enc.": "Enc.", + "Target": "Objetivo", + "School / Deity": "Escuela / Deidad", + "Enc.": "Imp.", "Choose": "Elegir", - "Weapon": "Weapon", + "Weapon": "Arma", "Ammunition": "Munición", - "Pouch/Container": "Pouch/Container", - "Clothing/Accessory": "Clothing/Accessory", - "Pack/Container": "Pack/Container", - "Tool/Kit": "Tool/Kit", - "Book/Document": "Book/Document", - "Trade Tool/Workshop": "Trade Tool/Workshop", - "Animal/Vehicle": "Animal/Vehicle", - "Drug/Poison": "Drug/Poison", - "Herb/Draught": "Herb/Draught", - "Prosthetic": "Prosthetic", - "Current Enc.": "Current Enc.", - "Miscellaneous": "Miscelánea", + "Pouch/Container": "Mochilas y Recipientes", + "Clothing/Accessory": "Ropa y Accesorios", + "Pack/Container": "Mochilas y Recipientes", + "Tool/Kit": "Herramientas y Equipo", + "Book/Document": "Libros y Documentos", + "Trade Tool/Workshop": "Oficios y Talleres", + "Animal/Vehicle": "Animales y Vehículos", + "Drug/Poison": "Drogas y Venenos", + "Herb/Draught": "Hierbas y Pociones", + "Prosthetic": "Prótesis", + "Current Enc.": "Imp. actual", + "Miscellaneous": "Varios", "Roll Notes": "Roll Notes", - "Head": "Head", - "Left Arm": "Left Arm", - "Right Arm": "Right Arm", - "Body": "Body", - "Right Leg": "Right Leg", - "Left Leg": "Left Leg", - "Shield": "Shield", - "Next Level": "Next Level", + "Head": "Cabeza", + "Left Arm": "Brazo izquierdo", + "Right Arm": "Brazo derecho", + "Body": "Cuerpo", + "Right Leg": "Pierna derecha", + "Left Leg": "Pierna izquierda", + "Shield": "Escudo", + "Next Level": "Siguiente nivel", "Level": "Nivel", - "Careers": "Careers", - "Notes": "Notes", - "Characteristic Advances": "Characteristic Advances", - "Current Career": "Current Career", - "Level 1": "Level 1", - "Level 2": "Level 2", - "Level 3": "Level 3", - "Level 4": "Level 4", + "Careers": "Carrera", + "Notes": "Notas", + "Characteristic Advances": "Avances de Característica", + "Current Career": "Carrera Actual", + "Level 1": "Nivel 1", + "Level 2": "Nivel 2", + "Level 3": "Nivel 3", + "Level 4": "Nivel 4", "Skill 1": "Habilidad 1", "Skill 2": "Habilidad 2", "Skill 3": "Habilidad 3", @@ -270,45 +270,45 @@ "Skill 6": "Habilidad 6", "Skill 7": "Habilidad 7", "Skill 8": "Habilidad 8", - "Skill 9": "Skill 9", - "Skill 10": "Skill 10", - "Skill 11": "Skill 11", - "Skill 12": "Skill 12", - "Talent 1": "Talent 1", - "Talent 2": "Talent 2", - "Talent 3": "Talent 3", - "Talent 4": "Talent 4", - "Talent 5": "Talent 5", - "Talent 6": "Talent 6", - "Talent 7": "Talent 7", - "Talent 8": "Talent 8", - "Talent 9": "Talent 9", - "Talent 10": "Talent 10", + "Skill 9": "Habilidad 9", + "Skill 10": "Habilidad 10", + "Skill 11": "Habilidad 11", + "Skill 12": "Habilidad 12", + "Talent 1": "Talento 1", + "Talent 2": "Talento 2", + "Talent 3": "Talento", + "Talent 4": "Talento 4", + "Talent 5": "Talento 5", + "Talent 6": "Talento 6", + "Talent 7": "Talento 7", + "Talent 8": "Talento 8", + "Talent 9": "Talento 9", + "Talent 10": "Talento 10", "Skill Name": "Nombre de Habilidad", "Talent Name": "Nombre del Talento", - "Experience Awards": "Experience Awards", + "Experience Awards": "Recompensas de Experiencia", "Source": "Source", - "XP": "XP", + "XP": "PX", "Controls": "Controls", "Control Buttons": "Control Buttons", - "Critical Hit": "Critical Hit", - "Advantage": "Advantage", + "Critical Hit": "Golpe Crítico", + "Advantage": "Ventaja", "General": "General", - "Fumble": "Fumble", - "Character Size": "Character Size", - "Experience Mod": "Experience Mod", - "Wounds Mod": "Wounds Mod", - "Encumbrance Mod": "Encumbrance Mod", + "Fumble": "Pifia", + "Character Size": "Tamaño del Personaje", + "Experience Mod": "Modificador de PX", + "Wounds Mod": "Modificador de Heridas", + "Encumbrance Mod": "Modificador de Impedimenta", "Query Difficulty": "Query Difficulty", "Query Additional Bonuses": "Query Additional Bonuses", - "Automatic Success & Failure": "Automatic Success & Failure", + "Automatic Success & Failure": "Éxito y fracaso automáticos", "Combat Options": "Opciones de combate", - "Maximum Advantage": "Maximum Advantage", - "Ranged Damage Bonus": "Ranged Damage Bonus", - "Melee Damage Bonus": "Melee Damage Bonus", + "Maximum Advantage": "Máxima Ventaja", + "Ranged Damage Bonus": "Bono de daño a distancia", + "Melee Damage Bonus": "Bono de daño cuerpo a cuerpo", "Custom Modifiers": "Custom Modifiers", - "Non-Career Advances": "Non-Career Advances", - "Roll Options": "Roll Options", + "Non-Career Advances": "Avances No-de-Carrera", + "Roll Options": "Opciones de Tirada", "Tiny": "Tiny", "Little": "Menudo", "Small": "Pequeño", @@ -316,61 +316,61 @@ "Large": "Grande", "Enormous": "Enormous", "Monstrous": "Monstrous", - "On": "On", - "Off": "Off", + "On": "Activado", + "Off": "Desactivado", "Default": "Por defecto", - "Very Easy (+60)": "Very Easy (+60)", - "Easy (+40)": "Easy (+40)", - "Average (+20)": "Average (+20)", - "Challenging (0)": "Challenging (0)", - "Difficult (-10)": "Difficult (-10)", - "Hard (-20)": "Hard (-20)", - "Very Hard (-30)": "Very Hard (-30)", + "Very Easy (+60)": "Muy Fácil (+60)", + "Easy (+40)": "Fácil (+40)", + "Average (+20)": "Normal (+20)", + "Challenging (0)": "Desafiante (0)", + "Difficult (-10)": "Complicada (-10)", + "Hard (-20)": "Difícil (-20)", + "Very Hard (-30)": "Muy Difícil (-30)", "Target Number": "Número objetivo", - "Failure": "Failure", + "Failure": "Fallo", "Success": "Éxito", "Critical": "Crítico", "Success Level": "Nivel de Éxito", "SL Bonus": "SL Bonus", - "Magick": "Magick", - "Spell": "Spell", - "Prayer": "Prayer", + "Magick": "Magia", + "Spell": "Hechizo", + "Prayer": "Plegaria", "Deity": "Deidad", "School": "Escuela", - "Hit Location": "Hit Location", - "+SB": "+SB", + "Hit Location": "Ubicación de Impacto", + "+SB": "+BF", "Hide Control Buttons": "Hide Control Buttons", - "Switch": "Switch", + "Switch": "Cambiar", "Accepting compendium drop": "Accepting compendium drop", - "Consolidate Rewards": "Consolidate Rewards", - "Attacks": "Attacks", + "Consolidate Rewards": "Consolidar recompensas", + "Attacks": "Ataques", "Settings": "Configuración", - "NPC": "NPC", - "Whisper to GM": "Whisper to GM", + "NPC": "PNJ", + "Whisper to GM": "Susurrar al DJ", "Enabled": "Activado", "Optional Traits": "Optional Traits", - "Show Skills": "Show Skills", - "Show Trappings": "Show Trappings", - "Worn": "Worn", - "TB": "TB", - "Combat": "Combat", - "Channelling (Aqshy)": "Channelling (Aqshy)", - "Channelling (Azyr)": "Channelling (Azyr)", - "Channelling (Chamon)": "Channelling (Chamon)", - "Channelling (Custom)": "Channelling (Custom)", - "Channelling (Dhar)": "Channelling (Dhar)", - "Channelling (Ghur)": "Channelling (Ghur)", - "Channelling (Ghyran)": "Channelling (Ghyran)", - "Channelling (Hysh)": "Channelling (Hysh)", - "Channelling (Shyish)": "Channelling (Shyish)", - "Channelling (Ulgu)": "Channelling (Ulgu)", + "Show Skills": "Mostrar habilidades", + "Show Trappings": "Mostrar accesorios", + "Worn": "Equipado", + "TB": "BR", + "Combat": "Combate", + "Channelling (Aqshy)": "Canalización (Aqshy)", + "Channelling (Azyr)": "Canalización (Azyr)", + "Channelling (Chamon)": "Canalización (Chamon)", + "Channelling (Custom)": "Canalización (Personalizada)", + "Channelling (Dhar)": "Canalización (Dhar)", + "Channelling (Ghur)": "Canalización (Ghur)", + "Channelling (Ghyran)": "Canalización (Ghyran)", + "Channelling (Hysh)": "Canalización (Hysh)", + "Channelling (Shyish)": "Canalización (Shyish)", + "Channelling (Ulgu)": "Canalización (Ulgu)", "Language (Magick)": "Hablar idioma (magia)", "Melee (Basic)": "CC (Básico)", - "Melee (Brawling)": "CC (Lucha)", + "Melee (Brawling)": "CC (Pelea)", "Melee (Cavalry)": "CC (Montado)", "Melee (Fencing)": "CC (Esgrima)", - "Melee (Flail)": "CC (Mayal)", - "Melee (Parry)": "CC (Bloqueo)", + "Melee (Flail)": "CC (Mayales)", + "Melee (Parry)": "CC (Parada)", "Melee (Polearm)": "Cuerpo a cuerpo (armas de asta)", "Melee (Two-Handed)": "CC (Dos manos)", "Ranged (Blackpowder)": "Distancia (Pólvora)", @@ -381,43 +381,43 @@ "Ranged (Explosives)": "Distancia (Explosivas)", "Ranged (Sling)": "Distancia (Honda)", "Ranged (Throwing)": "Distancia (Lanzamiento)", - "Taken": "Taken", - "main": "main", - "combat": "combat", - "magic": "magic", - "advances": "advances", - "Experience Spends": "Experience Spends", - "Use": "Use", + "Taken": "Elegido", + "main": "principal", + "combat": "Combate", + "magic": "magia", + "advances": "avances", + "Experience Spends": "Gastos de experiencia", + "Use": "Uso", "Advance Career Tier": "Advance Career Tier", - "Change Career (Incomplete)": "Change Career (Incomplete)", - "Change Career (Complete)": "Change Career (Complete)", - "Skill Name (Specialisation)": "Skill Name (Specialisation)", - "Additional Skills": "Additional Skills", - "This sheet has pending advance changes. Click below to save these changes.": "This sheet has pending advance changes. Click below to save these changes.", - "Update": "Update", - "Show": "Show", - "Hide": "Hide", - "Initiative Roll Bonus": "Initiative Roll Bonus", - "settings_npc": "NPC", + "Change Career (Incomplete)": "Cambiar de carrera (incompleta)", + "Change Career (Complete)": "Cambiar de carrera (completa)", + "Skill Name (Specialisation)": "Nombre de la habilidad (Especialización)", + "Additional Skills": "Habilidades Adicionales", + "This sheet has pending advance changes. Click below to save these changes.": "Esta ficha tiene avances pendientes. Haga clic debajo para guardar estos cambios.", + "Update": "Actualizar", + "Show": "Mostrar", + "Hide": "Ocultar", + "Initiative Roll Bonus": "Bono de tirada de iniciativa", + "settings_npc": "PNJ", "settings_npc_desc": "The NPC option sets new characters to default to the NPC card style sheet. Useful if the player characters have already been created and all new character sheets added to the game will likely represent non player characters.", - "setting_whisper": "Whisper Rolls to GM", + "setting_whisper": "Mensajes privados al DJ", "settings_whisper_desc": "All sheet rolls are sent to all players in chat by default. If enabled, rolls from this sheet will be visible only to the GM.", "setting_diff_option": "Query Difficulty", - "settings_difficulty_desc": "This will enable or disable the difficulty query window when rolls are made. When off, all rolls are made at the base target number.", + "settings_difficulty_desc": "Esto habilitará o deshabilitará la ventana de consulta de dificultad cuando se realicen las tiradas. Cuando está desactivada, todas las tiradas se realizan en el número objetivo base.", "settings_bonuses": "Query Bonuses", "settings_bonuses_desc": "This will enable or disable the additional bonus and SL bonus windows when rolls are made.", - "settings_auto": "Automatic Success & Failure", - "settings_auto_desc": "This will change the boundaries for automatic success and failure on a roll. The default boundaries set the automatic success point at 01-05 and 96-100.", - "settings_initiative": "Initiative Roll", - "settings_initiative_desc": "This changes the way initiative will be sent to the turn tracker. In the default setting, a character's whole initiative characteristic will be sent to the turntracker. When using the other options, a d10 will be rolled and different configurations of characteristic bonuses will be added to it.", - "settings_maxadvantage": "Max Advantage", - "settings_bar1_value": "BAR 1 VALUE", - "settings_bar1_max": "BAR 1 MAX", - "settings_bar1_link": "BAR 1 LINK", - "settings_bar2_value": "BAR 2 VALUE", - "settings_bar2_max": "BAR 2 MAX", - "settings_bar2_link": "BAR 2 LINK", - "settings_bar3_value": "BAR 3 VALUE", - "settings_bar3_max": "BAR 3 MAX", - "settings_bar3_link": "BAR 3 LINK" + "settings_auto": "Éxito y fracaso automáticos", + "settings_auto_desc": "Esto cambiará los límites para el éxito y el fracaso automáticos en una tirada. Los límites predeterminados establecen el punto de éxito automático en 01-05 y 96-100.", + "settings_initiative": "Tirada de iniciativa", + "settings_initiative_desc": "Esto cambia la forma en que se enviará la iniciativa al rastreador de turnos. En la configuración predeterminada, la característica de iniciativa completa de un personaje se enviará al rastreador de turnos. Al usar las otras opciones, se lanzará un d10 y se le agregarán diferentes configuraciones de bonificaciones de características.", + "settings_maxadvantage": "Ventaja máxima", + "settings_bar1_value": "VALOR BARRA 1", + "settings_bar1_max": "MÁXIMO BARRA 1", + "settings_bar1_link": "ENLACE BARRA 1", + "settings_bar2_value": "VALOR BARRA 2", + "settings_bar2_max": "MÁXIMO BARRA 2", + "settings_bar2_link": "ENLACE BARRA 2", + "settings_bar3_value": "VALOR BARRA 3", + "settings_bar3_max": "MÁXIMO BARRA 3", + "settings_bar3_link": "ENLACE BARRA 3" } \ No newline at end of file diff --git a/Warhammer-Fantasy-Roleplay-2nd-Edition/translations/es.json b/Warhammer-Fantasy-Roleplay-2nd-Edition/translations/es.json index ce56a0fe88..85acd479ce 100644 --- a/Warhammer-Fantasy-Roleplay-2nd-Edition/translations/es.json +++ b/Warhammer-Fantasy-Roleplay-2nd-Edition/translations/es.json @@ -9,7 +9,7 @@ "XP": "EXP", "XP-EARNED": "PX Ganados", "XP-SPENT": "PX Gastados", - "XP-REST": "XP Rest", + "XP-REST": "XP Restante", "PUBLIC": "Hacer todas las tiradas públicas", "WHISPER": "Susurrar todas las tiradas al GM", "CORE-STATS": "Estadísticas", @@ -27,7 +27,7 @@ "ABBREVIATE-STRENGTH": "F", "ABBREVIATE-TOUGHNESS": "R", "ABBREVIATE-AGILITY": "Ag", - "ABBREVIATE-INTELLIGENCE": "Int", + "ABBREVIATE-INTELLIGENCE": "I", "ABBREVIATE-WILL-POWER": "V", "ABBREVIATE-FELLOWSHIP": "Emp", "STARTING": "Iniciales", @@ -159,24 +159,24 @@ "FATE-POINTS": "Puntos de Destino", "CAREER-SKILLS": "Habilidades", "CAREER-TALENTS": "Talentos", - "CAREER-SKILLS-AND-TALENTS": "Career Skills and Talents", - "SKILL-OR-TALENT": "Skill or Talent", + "CAREER-SKILLS-AND-TALENTS": "Habilidades y Talentos de Carrera", + "SKILL-OR-TALENT": "Habilidad o Talento", "CAREER-EXITS": "Salidas", - "TAKEN": "Taken", + "TAKEN": "Elegido", "MELEE-WEAPONS": "Armas cuerpo a cuerpo", - "MELEE": "Melee", + "MELEE": "Cuerpo a Cuerpo", "ABBREVIATE-PROFICIENCY": "Comp?", "WEAPON": "Nombre del Arma", "CRAFTSMANSHIP": "Calidad", - "ABBREVIATE-CRAFTSMANSHIP": "Craft", + "ABBREVIATE-CRAFTSMANSHIP": "Arte", "ABBREVIATE-ENCUMBRANCE": "Imp.", "WS-BONUS": "Bonus HA", "TO-HIT": "Acierto", "DAMAGE": "Daño", - "DAMAGE-INC-SB": "Melee damage already includes SB.", + "DAMAGE-INC-SB": "El daño cuerpo a cuerpo ya incluye BF.", "IMPACT": "Impact", "ABBREVIATE-IMPACT": "Impct.", - "DEFENSIVE": "Defensive", + "DEFENSIVE": "Defensiva", "ABBREVIATE-DEFENSIVE": "Def.", "QUALITIES": "Cualidades", "FRENZY-DESCRIPTION": "Check if you are using the Frenzy Talent", @@ -190,14 +190,14 @@ "ABBREVIATE-DAMAGE": "Daño", "ABBREVIATE-PARRY": "Bloq", "RANGED-WEAPONS": "Armas de Proyectil", - "RANGED": "Ranged", + "RANGED": "A Distancia", "BS-BONUS": "Bonus HP", "TYPE": "Tipo", "RELOAD": "Recarga", "RANGE": "Alcance", "ABBREVIATE-AMMUNITION": "Munición", - "ABBREVIATE-AMMUNITION-ENCUMBRANCE": "Ammo Enc", - "AMMO-ENCUMBRANCE-DESCRIPTION": "Note Encombrance value for 1 piece of ammo.", + "ABBREVIATE-AMMUNITION-ENCUMBRANCE": "Imp. munición", + "AMMO-ENCUMBRANCE-DESCRIPTION": "Impedimenta para 1 pieza de munición", "SHOOT": "Disparar", "THROW": "Lanzar", "FREE": "Libre", @@ -206,14 +206,14 @@ "CRITICAL": "Crítico", "CRITICAL-HIT": "Golpe Crítico", "CRITICAL-ROLL": "Dado Crítico", - "TOTAL-MELEE-WEAPON-ENCUMBRANCE": "Total Melee Weapon Encumbrance", - "TOTAL-RANGED-WEAPON-ENCUMBRANCE": "Total Ranged Weapon Encumbrance", - "TOTAL-WEAPON-ENCUMBRANCE": "Total Weapon Encumbrance", - "ULRICS-FURY": "Ulric's Fury!", - "FURY-TEST": "Fury Test", - "FURY-DAMAGE": "Fury Damage", - "ROLL-ULRICS-FURY": "Roll for Ulric's Fury!", - "FURY-FAILS": "Fury Fails", + "TOTAL-MELEE-WEAPON-ENCUMBRANCE": "Impedimenta Total de Armas Cuerpo a Cuerpo", + "TOTAL-RANGED-WEAPON-ENCUMBRANCE": "Impedimenta Total de Armas a Distancia", + "TOTAL-WEAPON-ENCUMBRANCE": "Impedimenta Total de Armas", + "ULRICS-FURY": "¡La furia de Ulric!", + "FURY-TEST": "Chequeo de Furia", + "FURY-DAMAGE": "Daño de Furia", + "ROLL-ULRICS-FURY": "¡Lanza por la Furia de Ulric!", + "FURY-FAILS": "La Furia Falla", "PETTY": "Pueril", "LESSER": "Menor", "ARCANE": "Arcana", @@ -221,7 +221,7 @@ "RUNES": "Runas", "RITUALS": "Rituales", "PERFORM-CHANNELLING": "Usa media acción para canalizar", - "SPELL": "Spell", + "SPELL": "Hechizo", "CASTING-NUMBER": "Factor de dificultad", "CASTING-TIME": "Tiempo de conjuración", "DURATION": "Duración", @@ -235,13 +235,13 @@ "SPELL-DAMAGE": "Daño", "SPELL-DESCRIPTION": "Descripción", "RITUAL": "Ritual", - "INGREDIENTS": "Ingredients", - "RITUAL-DESCRIPTION": "Ritual Description", - "ARCANE-LANGUAGE": "Arcane Language", + "INGREDIENTS": "Ingredientes", + "RITUAL-DESCRIPTION": "Descripción del ritual", + "ARCANE-LANGUAGE": "Lenguaje Arcano", "REQUIRED-MAGIC": "Required Magic", - "XP-COST": "XP Cost", + "XP-COST": "Coste PX", "CONDITIONS": "Conditions", - "CONSEQUENCES": "Consquences", + "CONSEQUENCES": "Consecuencias", "PETTY-SPELL": "Petty Spell", "LESSER-SPELL": "Lesser Spell", "ARCANE-SPELL": "Arcane Spell", @@ -258,8 +258,8 @@ "RUNE-TYPE": "Rune type", "TEMPORARY": "Temporary", "PERMANENT": "Permanent", - "MINUTES": "minute(s)", - "WEEKS": "week(s)", + "MINUTES": "minuto(s)", + "WEEKS": "semana(s)", "COIN-CARRIED": "Monedero", "BRASS-PENNIES-BP": "Peniques de latón (P)", "SILVER-SHILLINGS-SS": "Chelines de plata (C)", @@ -274,10 +274,10 @@ "CARRYING-CAPACITY": "Carga maxima", "PUSH-DRAG-LIFT": "Empujar/Tirar/Levantar", "ENCUMBERED": "Sobrecarga", - "ENCUMBERED-MOVEMENT-PENALTY": "Encumbered Movement penalty", + "ENCUMBERED-MOVEMENT-PENALTY": "Penalización de Movimiento por Impedimenta", "DWARF": "Enano", "DWARF-ENCUMBRANCE": "Los enanos pueden cargar el doble que otros personajes.", - "DWARF-ENCUMBRANCE-CHECK": "Check if you are a Dwarf.", + "DWARF-ENCUMBRANCE-CHECK": "Comprueba si eres un Enano.", "ENCUMBRANCE-DESCRIPTION": "La sobrecarga introducida en cada fila es :", "ENCUMBRANCE-CHOICE1": "El total de la carga de la fila (Ignorando cantidad)", "ENCUMBRANCE-CHOICE2": "La carga de cada objeto de la fila (La carga total de la fila = cantidad * carga)", @@ -296,31 +296,31 @@ "ARMOR-POINTS": "Puntos de Armadura", "ABBREVIATE-ARMOR-POINTS": "PA", "MAGIC-BONUS": "Bonus Magico", - "BONUS": "Bonus", + "BONUS": "Bonificador", "TOTAL-AP": "Total PA", - "LOCATION-DESCRIPTION": "H : Head / B : Body / A : Arms / L : Legs", - "TOTAL-ARMOR-ENCUMBRANCE": "Total Armor Encombrance", - "TOTAL-WEIGHT-MAX": "The maximum total encumbrance your character can carry without slowing.", - "MAX-PUSH-DRAG-LIFT": "This is the maximum encumbrance you can push/drag/lift. If the encumbrance you are pushing/dragging/lifting exceeds your maximum carrying capacity then your Movement drops to 1.", - "LEATHER": "Leather", - "MAIL": "Mail", - "PLATE": "Plate", + "LOCATION-DESCRIPTION": "C : Cabeza / Cu: Cuerpo / B: Brazos / P: Piernas", + "TOTAL-ARMOR-ENCUMBRANCE": "Impedimenta total de la armadura", + "TOTAL-WEIGHT-MAX": "La máxima impedimenta que tu personaje puede llevar sin afectar su velocidad.", + "MAX-PUSH-DRAG-LIFT": "Esta es la impedimenta máxima que puedes empujar/arrastrar/levantar. Si la impedimenta que estás empujando, arrastrando o levantando excede tu capacidad de carga máxima, entonces tu Movimiento se reduce a 1.", + "LEATHER": "Cuero", + "MAIL": "Malla", + "PLATE": "Placas", "LIGHT": "Ligera", "MEDIUM": "Medium", "HEAVY": "Pesado", - "LIGHT-ARMOR": "Light Armor", + "LIGHT-ARMOR": "Armadura ligera", "MEDIUM-ARMOR": "Medium Armor", "HEAVY-ARMOR": "Heavy Armor", "HIT-LOCATIONS": "Zonas de impacto", - "HEAD": "Head", - "BODY": "Body", + "HEAD": "Cabeza", + "BODY": "Cuerpo", "TORSO": "Cuerpo", "ARMS": "Arms", "LEGS": "Legs", - "ABBREVIATE-HEAD": "H", - "ABBREVIATE-BODY": "B", - "ABBREVIATE-ARMS": "A", - "ABBREVIATE-LEGS": "L", + "ABBREVIATE-HEAD": "C", + "ABBREVIATE-BODY": "Cu", + "ABBREVIATE-ARMS": "B", + "ABBREVIATE-LEGS": "P", "LEFT-ARM": "Brazo Izquierdo", "LEFT-LEG": "Pierna Izquierda", "RIGHT-ARM": "Brazo Derecho", @@ -334,7 +334,7 @@ "VARIOUS-SKILL": "Habilidad Diversa", "TARGET-NUMBER": "Objetivo", "TEST-RESULT": "Resultado Total", - "RESULT": "Result", + "RESULT": "Resultado", "OUTCOME": "Resultado", "SUCCESS": "Éxito", "FAILURE": "Fallo", @@ -360,9 +360,9 @@ "HIT-RIGHT-LEG": "Pierna Derecha", "HIT-LOCATION-NUMBER": "Localización {{0}}", "DAMAGE-NUMBER": "Daño {{0}}", - "CRITICAL-LOCATION": "Critical Location", - "CRITICAL-VALUE": "Critical Value", - "CRITICAL-EFFECT": "Critical Effect", + "CRITICAL-LOCATION": "Ubicación crítico", + "CRITICAL-VALUE": "Valor crítico", + "CRITICAL-EFFECT": "Efecto crítico", "CRITICAL-EFFECT-H1": "Disoriented by the blow. Character can only take a half action on his next turn.", "CRITICAL-EFFECT-H2": "Ears bashed causing ears to ring and head to spin. Character cannot take any actions for 1 round.", "CRITICAL-EFFECT-H3": "The blow inflicts a nasty scalp wound. Blood runs into eyes, causing character to suffer a 10% WS penalty until medical attention is received.", @@ -401,7 +401,7 @@ "CRITICAL-EFFECT-L9": "Major artery severed. After a fraction of a second, character collapses with blood pouring out of the ruins of his leg. Death from shock and blood loss is almost instantaneous.", "CRITICAL-EFFECT-10": "Killed in whatever spectacular and gore-drenched fashion the player or GM cares to describe.", "BLOOD-SURVIVE": "Survive one more round.", - "BLOOD-DEATH": "Death from blood loss!", + "BLOOD-DEATH": "¡Muerte por pérdida de sangre!", "OLD-TRAPPINGS": "Use old Trappings layout", "NEW-TRAPPINGS": "Use new Trappings layout", "DEFAULT-INITIATIVE": "Use default Initiative rules", @@ -409,7 +409,7 @@ "CHAOS-MANIFESTATION": "Chaos Manifestation", "ROLL-BASIC-TABLES": "Roll on Basic Chaos Manifestaion Tables", "ROLL-EXTENDED-TABLES": "Roll on Extended Chaos Manifestaion Tables", - "TZEENTCHS-CURSE": "Tzeentch's Curse", + "TZEENTCHS-CURSE": "La maldición de Tzeentch", "CHAOS-ROLL": "Chaos Roll", "CHAOS-TABLE": "Chaos Table", "MINOR-NORMAL": "Minor Normal", @@ -574,10 +574,10 @@ "MARK": "Mark", "MARK-OF": "Mark of", "BEASTS": "Beasts", - "DEATH": "Death", - "FIRE": "Fire", + "DEATH": "Muerte", + "FIRE": "Fuego", "HEAVENS": "the Heavens", - "LIFE": "Life", + "LIFE": "Vida", "METAL": "Metal", "SHADOW": "Shadow", "NO-LORE": "No Lore selected", @@ -587,7 +587,7 @@ "WRATH-TABLE": "Wrath Table", "WRATH": "Wrath", "VENGEANCE": "Vengeance", - "WRATH-OF-THE-GODS": "Wrath of the Gods", + "WRATH-OF-THE-GODS": "Ira de los dioses", "VENGEANCE-OF-THE-GODS": "Vengeance of the Gods", "DISFAVOR-POOL": "Disfavor Pool", "DISFAVOR-ROLL": "Disfavor Roll", diff --git a/World-of-the-Storytellers-WoS/img/browser-upload.svg b/World-of-the-Storytellers-WoS/img/browser-upload.svg new file mode 100644 index 0000000000..c95720ce72 --- /dev/null +++ b/World-of-the-Storytellers-WoS/img/browser-upload.svg @@ -0,0 +1,10 @@ + + + + + diff --git a/World-of-the-Storytellers-WoS/img/icon-luck.svg b/World-of-the-Storytellers-WoS/img/icon-luck.svg new file mode 100644 index 0000000000..79d258eb78 --- /dev/null +++ b/World-of-the-Storytellers-WoS/img/icon-luck.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/World-of-the-Storytellers-WoS/img/icon-right.svg b/World-of-the-Storytellers-WoS/img/icon-right.svg new file mode 100644 index 0000000000..c0aeebe2ec --- /dev/null +++ b/World-of-the-Storytellers-WoS/img/icon-right.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/World-of-the-Storytellers-WoS/img/toggles.svg b/World-of-the-Storytellers-WoS/img/toggles.svg new file mode 100644 index 0000000000..11104e9f5d --- /dev/null +++ b/World-of-the-Storytellers-WoS/img/toggles.svg @@ -0,0 +1,14 @@ + + + + + diff --git a/World-of-the-Storytellers-WoS/preview.png b/World-of-the-Storytellers-WoS/preview.png new file mode 100644 index 0000000000..6ac7860723 Binary files /dev/null and b/World-of-the-Storytellers-WoS/preview.png differ diff --git a/World-of-the-Storytellers-WoS/sheet.json b/World-of-the-Storytellers-WoS/sheet.json new file mode 100644 index 0000000000..bf345e7478 --- /dev/null +++ b/World-of-the-Storytellers-WoS/sheet.json @@ -0,0 +1,9 @@ +{ + "html": "wos.html", + "css": "wos.css", + "authors": "HD", + "roll20userid": "1188201", + "preview": "preview.png", + "instructions": "## 이야기꾼의 세계(WoS) \n\n\n Character sheet for the 'World of the Storytellers(이야기꾼의 세계)', which is a TRPG rule you can play for free. \n 모든 것을 위한 자유로운 TRPG, 이야기꾼의 세계는 Fate 시스템을 기반으로 제작된 창작 TRPG 룰입니다. \n\n [RULEBOOK LINK](https://github.com/n0n3x1573n7/World-of-the-Storytellers/blob/master/WoS.pdf)", + "legacy": "false" +} \ No newline at end of file diff --git a/World-of-the-Storytellers-WoS/translations/en.json b/World-of-the-Storytellers-WoS/translations/en.json new file mode 100644 index 0000000000..b385ece772 --- /dev/null +++ b/World-of-the-Storytellers-WoS/translations/en.json @@ -0,0 +1,45 @@ +{ + "name":"name", + "species":"species", + "hp":"hp", + "san":"san", + "likelihood":"likelihood", + "resistance":"resistance", + "basic stats":"basic stats", + "special stats":"special stats", + "speed":"speed", + "deception":"deception", + "notice":"notice", + "strength":"strength", + "stealth":"stealth", + "sympathy":"sympathy", + "taunt":"taunt", + "will":"will", + "fight":"fight", + "connection":"connection", + "manufacture":"manufacture", + "drive":"drive", + "knowledge":"knowledge", + "asset":"asset", + "shoot":"shoot", + "class":"class", + "story-name":"story name", + "stat+":"stat+", + "stat-":"stat-", + "cost":"cost", + "invasion":"invasion", + "power":"power", + "status-name":"status", + "countlength":"count/length", + "physical":"physical", + "mental":"mental", + "roll":"rolls", + "":"{{0}}", + "status":"status", + "desc_luck":"Dice rolling including luck(4df).", + "desc_stats":"Press the edit button to modify the name of the added special stat.", + "desc_likelihood_start":"For general character, maximum likelihood is starts at 80.", + "desc_likelihood_max":"This value decreases with the likelihood cost of the story.", + "desc_calc":"When clicked, HP and SAN automatically calculated from the default stats.", + "desc_tog_story":"Show or hide the power section of the story." +} \ No newline at end of file diff --git a/World-of-the-Storytellers-WoS/translations/ko.json b/World-of-the-Storytellers-WoS/translations/ko.json new file mode 100644 index 0000000000..857dc5f08f --- /dev/null +++ b/World-of-the-Storytellers-WoS/translations/ko.json @@ -0,0 +1,45 @@ +{ + "name":"이름", + "species":"종족", + "hp":"체력", + "san":"정신력", + "likelihood":"개연성", + "resistance":"저항도", + "basic stats":"스탯:기본", + "special stats":"스탯:특화", + "speed":"기민", + "deception":"기만", + "notice":"인식", + "strength":"근력", + "stealth":"은신", + "sympathy":"공감", + "taunt":"도발", + "will":"의지", + "fight":"전투", + "connection":"인맥", + "manufacture":"제작", + "drive":"운전", + "knowledge":"지식", + "asset":"자본", + "shoot":"사격", + "class":"구분", + "story-name":"이야기", + "stat+":"스탯+", + "stat-":"스탯-", + "cost":"코스트", + "invasion":"침범도", + "power":"능력", + "status-name" : "명칭", + "countlength" : "횟수/길이", + "physical" : "물리적", + "mental" : "정신적", + "roll" : "판정", + "" : "{{0}}", + "status" : "상태", + "desc_luck" : "행운 판정(4df)포함 롤", + "desc_stats" : "추가된 특화 스탯의 이름을 수정하려면 편집 버튼을 누르세요.", + "desc_likelihood_start" : "기본 최대 개연성. 일반적인 인물의 경우 80에서 시작합니다.", + "desc_likelihood_max" : "최대 개연성. 이야기의 개연성 비용으로 감소합니다.", + "desc_calc" : "클릭하면 기본 스탯에서 체력과 정신력을 자동으로 계산합니다.", + "desc_tog_story" : "이야기의 능력 란을 표시하거나 숨깁니다." +} \ No newline at end of file diff --git a/World-of-the-Storytellers-WoS/wos.css b/World-of-the-Storytellers-WoS/wos.css new file mode 100644 index 0000000000..d0e244c91b --- /dev/null +++ b/World-of-the-Storytellers-WoS/wos.css @@ -0,0 +1,1611 @@ +@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard-dynamic-subset.css"); +@import url("https://use.fontawesome.com/releases/v5.7.0/css/all.css"); +.displaynone { + display: none; +} + +.rule-name { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + color: #96A694; + font-size: 1.4rem; +} + +.sheet-by { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + font-size: 1.2rem; + color: #96A694; +} + +.sheet-by a { + color: inherit; +} + +.charsheet { + -webkit-box-sizing: border-box; + box-sizing: border-box; + font-family: 'Pretendard'; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + background-color: #f1eff0; + padding: 15px; + max-width: 776px; +} + +.section-box { + background: rgba(191, 187, 180, 0.6); + padding: 0 1rem 1rem 1rem; +} + +input, select, button, option, textarea { + font-size: 16px; + -webkit-transition: all 0.3s ease-in; + transition: all 0.3s ease-in; + outline: none; + border: none; +} + +input:hover, input:active, input:focus, select:hover, select:active, select:focus, button:hover, button:active, button:focus, option:hover, option:active, option:focus, textarea:hover, textarea:active, textarea:focus { + outline: none; + border: none; +} + +textarea, input[type="number"], input[type="number"]:active, input[type="number"]:hover, input[type="number"]:focus { + -webkit-appearance: none; + -moz-appearance: textfield; + outline: none; + border: none; + margin: 0; + background-color: transparent; + border-radius: 0; + resize: none; + padding: 0.4rem; +} + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; +} + +.section-row { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +button[type="roll"] { + outline: none; + border: none; + -webkit-box-shadow: none; + box-shadow: none; + text-shadow: none; + margin: 0; + padding: 0.1rem; + color: black; + width: 1.5rem; +} + +h2 { + font-size: 2.5rem; + font-weight: 800; + color: #F2EDE9; + background: #A65851; + position: relative; + top: 0; + padding: 0.2em 3rem 0.2em 2rem; + margin: 0; + -webkit-box-shadow: -0.1rem 0.2rem 0.3rem rgba(0, 0, 0, 0.3); + box-shadow: -0.1rem 0.2rem 0.3rem rgba(0, 0, 0, 0.3); + left: -1rem; +} + +h2::before, h2::after { + content: ""; + position: absolute; +} + +h2::before { + width: 0.7rem; + height: 100%; + top: 0; + left: -0.65rem; + padding: 0 0 0.7rem; + background: inherit; + border-radius: 0.5rem 0 0 0.5rem; +} + +h2::after { + width: 0.5rem; + height: 0.5rem; + bottom: -0.5rem; + left: -0.45rem; +} + +.section-info { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + gap: 10px; + padding-bottom: 20px; +} + +.section-info .section-col { + -webkit-box-flex: 1; + -ms-flex: 1 0 30%; + flex: 1 0 30%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-flow: column; + flex-flow: column; +} + +.section-info textarea.sheet-memo { + background: rgba(255, 255, 255, 0.8); + border: 1px solid #B3B5B3; + position: relative; + height: calc(100% - 10px); + width: -webkit-fill-available; + width: -moz-fill-available; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -ms-flex-preferred-size: 80px; + flex-basis: 80px; +} + +.section-info input[name='attr_character_name'] { + background: transparent; + font-size: 3rem; + font-weight: 800; + width: 100%; + color: #0F1D26; +} + +.section-info img { + max-width: 20rem; + max-height: 20rem; + min-width: 15rem; + min-height: 15rem; +} + +.section-info span.label { + -ms-flex-negative: 0; + flex-shrink: 0; + width: 4rem; + text-align: center; + line-height: 2em; +} + +.section-info .section-row { + padding: 0.5rem; + width: -webkit-fill-available; + width: -moz-fill-available; +} + +.section-char { + display: -ms-grid; + display: grid; + margin: 10px 0; + -ms-grid-columns: auto 1fr; + grid-template-columns: auto 1fr; + gap: 5px 0; + justify-items: stretch; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.section-char span { + padding-right: 3px; +} + +.section-char input { + background: rgba(255, 255, 255, 0.8); + width: -webkit-fill-available; + width: -moz-fill-available; +} + +.sheet-section { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + gap: 10px 5px; +} + +.sheet-section .section-item { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-line-pack: center; + align-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 2.5em; +} + +.sheet-section .section-item input { + text-align: center; + width: 3rem; + height: 100%; + position: relative; + left: -10px; + background: rgba(191, 187, 180, 0.6); +} + +.sheet-section .section-item input:last-of-type { + font-size: 1.5rem; + border-top-right-radius: 1rem; + border-bottom-right-radius: 1rem; +} + +.sheet-section .section-item input:first-of-type { + font-size: 2rem; + width: 5rem; + font-weight: 500; + text-align: right; + border-top-left-radius: 1rem; + border-bottom-left-radius: 1rem; +} + +.sheet-section .section-item input:hover, .sheet-section .section-item input:active, .sheet-section .section-item input:focus { + background: rgba(150, 166, 148, 0.5); +} + +.sheet-section .section-item span { + background: #A65851; + color: white; + padding: 2px 4px 0 4px; + z-index: 1; +} + +.section-stat, .repcontainer[data-groupname="repeating_repstat"] { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + gap: 1rem; +} + +.section-stat .sheet-label, .repcontainer[data-groupname="repeating_repstat"] .sheet-label { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); + text-align: center; + position: absolute; + left: 1rem; + bottom: 3.8rem; + border-radius: 2px; + font-size: 1.6rem; + background-color: #47594F; + color: #F2EDE9; + padding: 0.3rem 0.6rem; + z-index: 1; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + font-weight: 600; + background-image: unset; +} + +.section-stat .sheet-label::before, .repcontainer[data-groupname="repeating_repstat"] .sheet-label::before { + content: ""; +} + +.section-stat .sheet-label[name="attr_statname"], .repcontainer[data-groupname="repeating_repstat"] .sheet-label[name="attr_statname"] { + width: 95%; +} + +.section-stat .sheet-label + button.sheet-label, .repcontainer[data-groupname="repeating_repstat"] .sheet-label + button.sheet-label { + z-index: 2; + background-color: transparent; + color: transparent; + display: block; + width: 6.4rem; + height: 1.8rem; +} + +.section-stat.editmode .sheet-label + button.sheet-label, .repcontainer[data-groupname="repeating_repstat"].editmode .sheet-label + button.sheet-label { + display: none; +} + +.section-stat .stat-item, .section-stat .repitem, .repcontainer[data-groupname="repeating_repstat"] .stat-item, .repcontainer[data-groupname="repeating_repstat"] .repitem { + position: relative; + width: 8rem; + margin-bottom: 1rem; +} + +.section-stat .stat-item input[type="number"], .section-stat .repitem input[type="number"], .repcontainer[data-groupname="repeating_repstat"] .stat-item input[type="number"], .repcontainer[data-groupname="repeating_repstat"] .repitem input[type="number"] { + position: relative; + padding-top: 0.5em; + left: 2rem; + width: 6rem; + height: 6rem; + border-radius: 100%; + background-color: #f1eff0; + font-size: 2em; + text-align: center; + font-weight: bold; + -webkit-box-shadow: rgba(0, 0, 0, 0.2) 0px 20px 30px; + box-shadow: rgba(0, 0, 0, 0.2) 0px 20px 30px; +} + +.section-stat .stat-item input[type="number"]:hover, .section-stat .stat-item input[type="number"]:active, .section-stat .stat-item input[type="number"]:focus, .section-stat .repitem input[type="number"]:hover, .section-stat .repitem input[type="number"]:active, .section-stat .repitem input[type="number"]:focus, .repcontainer[data-groupname="repeating_repstat"] .stat-item input[type="number"]:hover, .repcontainer[data-groupname="repeating_repstat"] .stat-item input[type="number"]:active, .repcontainer[data-groupname="repeating_repstat"] .stat-item input[type="number"]:focus, .repcontainer[data-groupname="repeating_repstat"] .repitem input[type="number"]:hover, .repcontainer[data-groupname="repeating_repstat"] .repitem input[type="number"]:active, .repcontainer[data-groupname="repeating_repstat"] .repitem input[type="number"]:focus { + background: rgba(255, 255, 255, 0.8); +} + +.repcontainer[data-groupname="repeating_repstat"] .repcontrol_move { + display: none; +} + +.section-stat { + position: relative; +} + +.section-stat .repcontrol { + width: 100%; +} + +.section-stat:first-child { + margin-top: 0; +} + +.section-story, .section-status { + background: rgba(191, 187, 180, 0.6); + padding: 1rem; + padding-top: 0; + margin-top: 4rem; +} + +.section-story input[type="text"], .section-story textarea, .section-story select, .section-status input[type="text"], .section-status textarea, .section-status select { + background: transparent; + width: 100%; + height: 100%; + padding: 0.2rem 0.8rem; + vertical-align: middle; + line-height: 1.8em; +} + +.story-item, .status-item { + background: #f1eff0; + border-radius: 3px; + position: relative; + border: 1px solid #0F1D26; + display: -ms-grid; + display: grid; +} + +.story-item input[type="text"], .story-item select, .status-item input[type="text"], .status-item select { + height: 3rem; + border-right: dashed 1px #B3B5B3; + margin: 0; +} + +.story-item input:last-of-type, .status-item input:last-of-type { + border-right: none; +} + +.story-item .repitem, .status-item .repitem { + width: 100%; +} + +.story-item { + margin: 0.5rem 0 0.5rem 4rem; + -ms-grid-columns: 1fr 2fr 1fr 1fr 0.5fr 0.3fr; + grid-template-columns: 1fr 2fr 1fr 1fr 0.5fr 0.3fr; + -ms-grid-rows: auto; + grid-template-rows: auto; +} + +.story-item :last-child { + position: relative; + -ms-grid-column: 1; + -ms-grid-column-span: 6; + grid-column: 1/7; +} + +.story-item textarea { + border-top: dashed 1px #B3B5B3; + width: -webkit-fill-available; + width: -moz-fill-available; + height: auto; +} + +.story-item input[type="text"] { + border-radius: 0; +} + +.story-item button, .story-item input[type='checkbox'] { + margin-top: 0.2rem; + position: absolute; + right: calc(100% + 1rem); +} + +.story-item input[type='checkbox'] { + width: 1.5rem; + height: 1.5rem; + top: 3.3rem; + border: none; + background: #B3B5B3; +} + +.story-item input[type='checkbox']::after { + border: none; +} + +.story-item input[type='checkbox']:checked ~ * { + text-decoration: line-through; + background: #999; + color: #888; +} + +.story-item button[type='roll'] { + width: 3rem; + height: 3rem; + margin: 0; + font-size: 2.5rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; +} + +.story-item .displaynone { + display: none; +} + +input[type="text"]:hover, input[type="text"]:active, input[type="text"]:focus, textarea:hover, textarea:active, textarea:focus, input[type="number"]:hover, input[type="number"]:active, input[type="number"]:focus { + background: rgba(255, 255, 255, 0.8); +} + +.roll[type='action'] { + font-family: "dicefontd20"; +} + +.story-cost::after, .story-invasion::after { + color: #47594F; + position: absolute; + bottom: calc(100% + 5px); + width: 100%; + left: 0; + line-height: normal; +} + +.section-status .status-item { + margin: 0.5rem 0; + -ms-grid-columns: minmax(80px, 1fr) 5fr 4fr; + grid-template-columns: minmax(80px, 1fr) 5fr 4fr; +} + +.section-status .status-item :last-child { + border: none; +} + +.section-status .status-item select { + padding: 0.2rem; +} + +.sheet-head div { + position: relative; + background: #47594F; + text-align: center; + line-height: 2em; + font-weight: 600; + padding: 0.2rem 0.8rem; + color: rgba(241, 239, 240, 0.9); + border-right: 1px solid rgba(241, 239, 240, 0.2); +} + +.sheet-head div:last-child { + border-top: 1px solid rgba(241, 239, 240, 0.2); +} + +.sheet-head div.sheet-stroy-invasion { + border: none; +} + +.section-h2 { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + width: 100%; + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; + padding: 1rem 0 1.5rem 0; +} + +.section-h2 span { + font-size: 1.6rem; +} + +.section-h2 .sheet-pictos { + overflow: hidden; + font-family: 'Pictos'; + font-size: 1.8rem; +} + +.section-h2 button { + outline: none; + border: none; + padding: 0; + background: transparent; + width: 30px; + height: 30px; +} + +.section-h2 button img { + width: 100%; + fill: #0F1D26; +} + +.section-roll { + background: #0F1D26; + color: #f1eff0; + border-radius: 0.4rem; + overflow: hidden; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-bottom: 15px; + gap: 20px; + padding: 5px 10px; +} + +.section-roll > div { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 100%; + padding: 2px; +} + +.section-roll input { + background: #29333D; + color: inherit; + margin: 0; + line-height: normal; +} + +.section-roll input:hover, .section-roll input:active, .section-roll input:focus { + background-color: #29333D; + -webkit-box-shadow: inset 0 0 0 2px rgba(71, 89, 79, 0.8); + box-shadow: inset 0 0 0 2px rgba(71, 89, 79, 0.8); +} + +.section-roll input::-webkit-input-placeholder { + color: #96A694; + text-align: left; +} + +.section-roll input:-ms-input-placeholder { + color: #96A694; + text-align: left; +} + +.section-roll input::-ms-input-placeholder { + color: #96A694; + text-align: left; +} + +.section-roll input::placeholder { + color: #96A694; + text-align: left; +} + +.section-roll button.roll { + background: transparent; + padding: 0 5px; + position: relative; + font-size: 2.2rem; + font-family: "dicefontd20"; + outline: none; + border: none; + -webkit-box-shadow: none; + box-shadow: none; + text-shadow: none; +} + +.section-roll button.roll:hover, .section-roll button.roll:active, .section-roll button.roll:focus { + color: #96A694; +} + +.section-roll input[type="checkbox"] { + width: 2rem; + height: 2rem; +} + +.section-roll .sheet-is-luck { + width: 2.5rem; + height: 2.5rem; + margin-left: 0.5rem; + background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/World-of-the-Storytellers-WoS/img/icon-luck.svg); + background-repeat: no-repeat; + cursor: help; + margin-bottom: 0; +} + +.section-roll .displaynone { + display: none; +} + +.repcontrol { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + gap: 1rem; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; +} + +.repcontrol button { + float: none; + background: #96A694; + color: #0F1D26; + line-height: 0; + font-size: 0; + width: 3rem; + height: 3rem; + padding: 0; + text-shadow: none; +} + +.repcontrol button::after { + overflow: hidden; + font-family: 'Pictos'; + font-size: 3rem; + position: relative; + top: 0.4rem; +} + +.repcontrol button.repcontrol_edit::after { + content: 'x'; +} + +.repcontrol button.repcontrol_add::after { + content: '&'; +} + +.repcontrol button:hover, .repcontrol button:active, .repcontrol button:focus { + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); +} + +.repcontainer.editmode + .repcontrol button.repcontrol_edit::after { + content: "3"; +} + +.repcontainer.editmode .repitem .itemcontrol { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; + position: absolute; + bottom: 0; + left: 1rem; + background: transparent; + z-index: 1; +} + +.repcontainer.editmode .repitem .itemcontrol [class*="repcontrol"] { + float: none; + height: 2rem; + width: 2rem; + border-radius: 100%; + padding: 2px; +} + +@media (max-width: 399px) { + .ui-dialog .charsheet { + width: 400px; + } +} + +.sheet-rolltemplate-wos_story { + -webkit-box-sizing: border-box; + box-sizing: border-box; + background: transparent; + position: relative; + left: -15px; + border: 10px solid #47594F; + max-width: 300px; +} + +.sheet-rolltemplate-wos_story::after { + content: ''; + display: block; + position: absolute; + top: 0; + right: -10px; + height: 100%; + background-color: transparent; + border-right: 10px solid #47594F; +} + +.sheet-rolltemplate-wos_story .sheet-template-container { + -webkit-box-sizing: border-box; + box-sizing: border-box; + position: relative; + margin: 5px -20px; + height: auto; + background: #f1eff0; + border: 1px solid #47594F; + padding: 5px; + padding-right: 25px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px; + box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px; +} + +.sheet-rolltemplate-wos_story .sheet-template-container::before { + content: '"'; + font-family: 'Pictos'; + width: 30px; + height: 30px; + position: absolute; + top: 0; + left: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + background: #47594F; + font-size: 2rem; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + color: #f1eff0; +} + +.sheet-rolltemplate-wos_story .sheet-template-container h3 { + margin-top: -2px; + position: relative; + min-height: 30px; + margin-left: 36px; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + font-size: 2rem; +} + +.sheet-rolltemplate-wos_story .sheet-template-container .sheet-template-by { + font-size: 1.2rem; + font-style: italic; + color: #47594F; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + line-height: normal; + padding: 3px 0; +} + +.sheet-rolltemplate-wos_story .sheet-template-container .sheet-template-note { + font-size: 1.4rem; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + padding-top: 5px; + border-top: dashed 1px #96A694; +} + +.sheet-rolltemplate-wos_story .sheet-arrow { + width: 30px; + height: 30px; + background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/World-of-the-Storytellers-WoS/img/icon-right.svg"); + display: inline-block; + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; +} + +.sheet-rolltemplate-wos_story .sheet-template-stat-minus { + background: rgba(205, 26, 44, 0.2); + margin-left: 6px; +} + +.sheet-rolltemplate-wos_story .sheet-template-stat-minus::before { + content: "-"; + color: #CD1A2C; +} + +.sheet-rolltemplate-wos_story .sheet-template-stat-plus { + background: rgba(53, 113, 179, 0.2); +} + +.sheet-rolltemplate-wos_story .sheet-template-stat-plus::before { + content: "+"; + color: #3571b3; +} + +.sheet-rolltemplate-wos_story .sheet-template-stat-plus:empty + .sheet-template-stat-minus { + margin-left: 0; +} + +.sheet-rolltemplate-wos_story [class*="stat-"] { + padding: 1px 5px 2px 2px; + gap: 10px; + font-size: 1.2rem; + border-radius: 5px; + display: inline-block; + line-height: normal; + font-weight: bold; +} + +.sheet-rolltemplate-wos_story [class*="stat-"]::before { + font-size: 1.5rem; + font-family: 'Pictos'; + display: inline-block; + margin-right: 5px; + font-weight: normal; +} + +.sheet-rolltemplate-wos_story [class*="stat-"]:empty { + display: none; +} + +.sheet-rolltemplate-wos_story [class*="stat-"]:empty::before { + content: none; +} + +.sheet-rolltemplate-wos_stat { + -webkit-box-sizing: border-box; + box-sizing: border-box; + background: transparent; + position: relative; + left: -15px; + border: 10px solid #47594F; + max-width: 300px; +} + +.sheet-rolltemplate-wos_stat::after { + content: ''; + display: block; + position: absolute; + top: 0; + right: -10px; + height: 100%; + background-color: transparent; + border-right: 10px solid #47594F; +} + +.sheet-rolltemplate-wos_stat .sheet-template-container { + -webkit-box-sizing: border-box; + box-sizing: border-box; + position: relative; + margin: 5px -20px; + height: auto; + background: #f1eff0; + border: 1px solid #47594F; + padding: 5px; + padding-right: 25px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px; + box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px; +} + +.sheet-rolltemplate-wos_stat .sheet-template-container::before { + content: '"'; + font-family: 'Pictos'; + width: 30px; + height: 30px; + position: absolute; + top: 0; + left: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + background: #47594F; + font-size: 2rem; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + color: #f1eff0; +} + +.sheet-rolltemplate-wos_stat .sheet-template-container h3 { + margin-top: -2px; + position: relative; + min-height: 30px; + margin-left: 36px; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + font-size: 2rem; +} + +.sheet-rolltemplate-wos_stat .sheet-template-container .sheet-template-by { + font-size: 1.2rem; + font-style: italic; + color: #47594F; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + line-height: normal; + padding: 3px 0; +} + +.sheet-rolltemplate-wos_stat .sheet-template-container .sheet-template-note { + font-size: 1.4rem; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + padding-top: 5px; + border-top: dashed 1px #96A694; +} + +.sheet-rolltemplate-wos_stat .sheet-arrow { + width: 30px; + height: 30px; + background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/World-of-the-Storytellers-WoS/img/icon-right.svg"); + display: inline-block; + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; +} + +.sheet-rolltemplate-wos_stat h3 { + margin-bottom: 5px; +} + +.sheet-rolltemplate-wos_stat .sheet-template-title { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-left: 5px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + line-height: normal; +} + +.sheet-rolltemplate-wos_stat .sheet-template-title span:first-child { + font-size: 1.5rem; + background: #A65851; + color: #f1eff0; + padding: 2px 5px; + margin: 0; + font-size: 1.8rem; + font-weight: bold; + -webkit-transform: rotate(-4deg); + transform: rotate(-4deg); +} + +.sheet-rolltemplate-wos_stat .sheet-template-title span:last-child { + height: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + color: #47594F; +} + +.sheet-rolltemplate-wos_stat .sheet-arrow { + margin: 0 10px; + -webkit-box-ordinal-group: unset; + -ms-flex-order: unset; + order: unset; + -ms-flex-item-align: center; + -ms-grid-row-align: center; + align-self: center; +} + +.sheet-rolltemplate-wos_stat .sheet-template-dices { + line-height: normal; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-pack: distribute; + justify-content: space-around; + height: 5rem; +} + +.sheet-rolltemplate-wos_stat .sheet-template-dices span { + width: 50%; + height: 2.1rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-item-align: center; + align-self: center; + border-radius: 10px; + background: rgba(15, 29, 38, 0.2); + margin-right: 5px; + font-weight: bold; +} + +.sheet-rolltemplate-wos_stat .sheet-template-dices .sheet-dice-stat { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + background: rgba(15, 29, 38, 0.8); + color: #f1eff0; +} + +.sheet-rolltemplate-wos_stat .sheet-template-dices span[title="mod_0"] + .sheet-dice-stat, .sheet-rolltemplate-wos_stat .sheet-template-dices span[title="mod_"] + .sheet-dice-stat, .sheet-rolltemplate-wos_stat .sheet-template-dices .sheet-dice-sum > span { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-item-align: center; + align-self: center; + width: 5rem; + height: 5rem; + padding: 0; + margin: 0; + border: none; + font-size: 3rem; + border-radius: 100%; + background-color: rgba(150, 166, 148, 0.2); + color: #0F1D26; + text-align: center; + -webkit-box-shadow: rgba(150, 166, 148, 0.4) 5px 0, rgba(150, 166, 148, 0.5) 10px 0, rgba(150, 166, 148, 0.2) 15px 0, rgba(150, 166, 148, 0.1) 20px 0, rgba(150, 166, 148, 0.05) 25px 0; + box-shadow: rgba(150, 166, 148, 0.4) 5px 0, rgba(150, 166, 148, 0.5) 10px 0, rgba(150, 166, 148, 0.2) 15px 0, rgba(150, 166, 148, 0.1) 20px 0, rgba(150, 166, 148, 0.05) 25px 0; +} + +.sheet-rolltemplate-wos_stat .sheet-template-dices span[title="mod_0"], .sheet-rolltemplate-wos_stat .sheet-template-dices span[title="mod_"] { + display: none; +} + +.sheet-rolltemplate-wos_stat .sheet-template-dices span[title="mod_0"] ~ .sheet-dice-sum, .sheet-rolltemplate-wos_stat .sheet-template-dices span[title="mod_"] ~ .sheet-dice-sum { + display: none; +} + +.sheet-rolltemplate-wos_luck { + -webkit-box-sizing: border-box; + box-sizing: border-box; + background: transparent; + position: relative; + left: -15px; + border: 10px solid #47594F; + max-width: 300px; +} + +.sheet-rolltemplate-wos_luck::after { + content: ''; + display: block; + position: absolute; + top: 0; + right: -10px; + height: 100%; + background-color: transparent; + border-right: 10px solid #47594F; +} + +.sheet-rolltemplate-wos_luck .sheet-template-container { + -webkit-box-sizing: border-box; + box-sizing: border-box; + position: relative; + margin: 5px -20px; + height: auto; + background: #f1eff0; + border: 1px solid #47594F; + padding: 5px; + padding-right: 25px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px; + box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px; +} + +.sheet-rolltemplate-wos_luck .sheet-template-container::before { + content: '"'; + font-family: 'Pictos'; + width: 30px; + height: 30px; + position: absolute; + top: 0; + left: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + background: #47594F; + font-size: 2rem; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + color: #f1eff0; +} + +.sheet-rolltemplate-wos_luck .sheet-template-container h3 { + margin-top: -2px; + position: relative; + min-height: 30px; + margin-left: 36px; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + font-size: 2rem; +} + +.sheet-rolltemplate-wos_luck .sheet-template-container .sheet-template-by { + font-size: 1.2rem; + font-style: italic; + color: #47594F; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + line-height: normal; + padding: 3px 0; +} + +.sheet-rolltemplate-wos_luck .sheet-template-container .sheet-template-note { + font-size: 1.4rem; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + padding-top: 5px; + border-top: dashed 1px #96A694; +} + +.sheet-rolltemplate-wos_luck .sheet-arrow { + width: 30px; + height: 30px; + background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/World-of-the-Storytellers-WoS/img/icon-right.svg"); + display: inline-block; + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; +} + +.sheet-rolltemplate-wos_luck .sheet-template-container { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + gap: 5px; +} + +.sheet-rolltemplate-wos_luck .sheet-template-container .sheet-template-title { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + line-height: normal; +} + +.sheet-rolltemplate-wos_luck .sheet-template-container .sheet-template-title .sheet-template-statname { + display: inline-block; + font-size: 1.5rem; + background: #A65851; + color: #f1eff0; + padding: 2px 5px; + margin: 0; + font-size: 1.8rem; + font-weight: bold; +} + +.sheet-rolltemplate-wos_luck .sheet-template-container .sheet-template-title .sheet-template-statname span:last-child { + padding-left: 3px; + font-size: 1.5rem; + font-weight: normal; +} + +.sheet-rolltemplate-wos_luck .sheet-template-luck { + width: 2.5rem; + height: 2.5rem; + margin-left: 0.5rem; + background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/World-of-the-Storytellers-WoS/img/icon-luck.svg); + cursor: help; +} + +.sheet-rolltemplate-wos_luck .sheet-template-luck:empty { + background-image: none; + display: none; +} + +.sheet-rolltemplate-wos_luck .sheet-template-dices { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + gap: 4px; + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; +} + +.sheet-rolltemplate-wos_luck .sheet-template-dices .inlinerollresult { + background: transparent; + border: none; + padding: 0; + margin: 0; +} + +.sheet-rolltemplate-wos_luck .sheet-template-dices > .sheet-dice > span { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + border-radius: 0.5rem; + height: 2.5rem; + width: 2.5rem; + font-size: 2rem; + font-weight: bold; + background-color: rgba(150, 166, 148, 0.25); + border: none; + word-spacing: 0.5rem; + line-height: normal; +} + +.sheet-rolltemplate-wos_luck .sheet-template-dices > .sheet-dice-result { + margin-left: 0.4rem; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; + gap: 4px; +} + +.sheet-rolltemplate-wos_luck .sheet-template-dices > .sheet-dice-result > span { + width: 4rem; + height: 4rem; + font-size: 3rem; + background-color: rgba(150, 166, 148, 0.5); +} + +.sheet-rolltemplate-wos_luck .sheet-template-dices > .sheet-dice-result .sheet-arrow { + width: 30px; + height: 30px; + background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/World-of-the-Storytellers-WoS/img/icon-right.svg"); + display: inline-block; + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; +} + +.sheet-rolltemplate-wos_luck .sheet-template-dices .sheet-dice[title*="0 = 0"] { + display: none; +} + +.sheet-rolltemplate-wos_luck .sheet-template-dices > .sheet-dice-computed > span { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; + width: unset; + letter-spacing: 0.4rem; + background: transparent; + bottom: -3px; + position: relative; +} + +.sheet-rolltemplate-wos_luck .sheet-template-dices > span:first-child { + background-color: rgba(150, 166, 148, 0.5); + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + border-radius: 0.5rem; + font-size: 2.5rem; + font-weight: bold; + width: 3.5rem; + height: 3.5rem; +} + +.sheet-rolltemplate-wos_luck [title~="rollf"] + span { + color: #CD1A2C; +} + +.sheet-rolltemplate-wos_luck [title~="rollf"] + span + .sheet-dice-result > span { + color: #CD1A2C; + background: rgba(205, 26, 44, 0.2); +} + +.sheet-rolltemplate-wos_luck [title~="rollc"] + span { + color: #3571b3; +} + +.sheet-rolltemplate-wos_luck [title~="rollc"] + span + .sheet-dice-result > span { + color: #3571b3; + background: rgba(53, 113, 179, 0.2); +} + +.sheet-rolltemplate-wos_luck .sheet-displaynone { + display: none; +} + +.sheet-rolltemplate-wos_roll { + -webkit-box-sizing: border-box; + box-sizing: border-box; + background: transparent; + position: relative; + left: -15px; + border: 10px solid #47594F; + max-width: 300px; +} + +.sheet-rolltemplate-wos_roll::after { + content: ''; + display: block; + position: absolute; + top: 0; + right: -10px; + height: 100%; + background-color: transparent; + border-right: 10px solid #47594F; +} + +.sheet-rolltemplate-wos_roll .sheet-template-container { + -webkit-box-sizing: border-box; + box-sizing: border-box; + position: relative; + margin: 5px -20px; + height: auto; + background: #f1eff0; + border: 1px solid #47594F; + padding: 5px; + padding-right: 25px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px; + box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px; +} + +.sheet-rolltemplate-wos_roll .sheet-template-container::before { + content: '"'; + font-family: 'Pictos'; + width: 30px; + height: 30px; + position: absolute; + top: 0; + left: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + background: #47594F; + font-size: 2rem; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + color: #f1eff0; +} + +.sheet-rolltemplate-wos_roll .sheet-template-container h3 { + margin-top: -2px; + position: relative; + min-height: 30px; + margin-left: 36px; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + font-size: 2rem; +} + +.sheet-rolltemplate-wos_roll .sheet-template-container .sheet-template-by { + font-size: 1.2rem; + font-style: italic; + color: #47594F; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + line-height: normal; + padding: 3px 0; +} + +.sheet-rolltemplate-wos_roll .sheet-template-container .sheet-template-note { + font-size: 1.4rem; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + padding-top: 5px; + border-top: dashed 1px #96A694; +} + +.sheet-rolltemplate-wos_roll .sheet-arrow { + width: 30px; + height: 30px; + background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/World-of-the-Storytellers-WoS/img/icon-right.svg"); + display: inline-block; + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; +} + +.sheet-rolltemplate-wos_roll .sheet-template-container { + gap: 5px; +} + +.sheet-rolltemplate-wos_roll .sheet-box { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; + gap: 5px; +} + +.sheet-rolltemplate-wos_roll .sheet-arrow { + -webkit-box-ordinal-group: unset; + -ms-flex-order: unset; + order: unset; +} + +.sheet-rolltemplate-wos_roll .sheet-template-dices { + -webkit-box-flex: 0; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + border-radius: 10px; + overflow: hidden; + -ms-flex-line-pack: center; + align-content: center; + line-height: normal; +} + +.sheet-rolltemplate-wos_roll .sheet-template-dices > span, .sheet-rolltemplate-wos_roll .sheet-template-dices > span > span { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + background-color: transparent; + border: none; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + padding: 0px; +} + +.sheet-rolltemplate-wos_roll .sheet-template-dices > span:first-child { + padding: 4px; + background: rgba(15, 29, 38, 0.2); + font-size: 1.4rem; +} + +.sheet-rolltemplate-wos_roll .sheet-template-dices > span > span { + background: rgba(15, 29, 38, 0.8); + color: #f1eff0; + font-size: 1.5rem; + padding: 4px; + text-align: center; + font-weight: normal; +} + +.sheet-rolltemplate-wos_roll .sheet-template-dices > span > span.fullfail { + background: rgba(205, 26, 44, 0.8); + border: none; +} + +.sheet-rolltemplate-wos_roll .sheet-template-dices > span > span.fullcrit { + background: rgba(53, 113, 179, 0.8); + border: none; +} + +.sheet-rolltemplate-wos_roll .sheet-dice-result > span { + -ms-flex-item-align: end; + align-self: flex-end; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding: 0 0.3rem; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + min-width: 4rem; + height: 4rem; + font-size: 3rem; + border: none; + border-radius: 0.5rem; + background-color: rgba(150, 166, 148, 0.5); + line-height: normal; +} + +.sheet-rolltemplate-wos_roll .sheet-dice-result > span.fullfail { + color: #CD1A2C; + border: none; +} + +.sheet-rolltemplate-wos_roll .sheet-dice-result > span.fullcrit { + color: #3571b3; + border: none; +} \ No newline at end of file diff --git a/World-of-the-Storytellers-WoS/wos.html b/World-of-the-Storytellers-WoS/wos.html new file mode 100644 index 0000000000..815e8ccb8f --- /dev/null +++ b/World-of-the-Storytellers-WoS/wos.html @@ -0,0 +1,469 @@ + + + +
+
+ + +
+
+
World of the Storytellers : WoS
+
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+

스탯:기본

+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+

스탯:특화

+
추가된 특화 스탯의 이름을 수정하려면 편집 버튼을 누르세요.x
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + + +
+
+
+
+
+

이야기

+ +
+
+
구분
+
이야기
+
스탯+
+
스탯-
+
C
+
I
+
능력
+
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+
+ + + + + + + + + +
+
+
+
+
+

상태

+
+
+
구분
+
명칭
+
횟수/길이
+
+
+ + + +
+
+
+ + + +
+
+
+
+
rule designed by None(@n0n3x1573n7_WS)
+
sheet designed by HD(@HDTRPG)
+
+ +
+

{{name}}

+
+
{{mod}}{{statvalue}} +
{{sum}}
+
+
+
+ +
+

{{storyname}}

+
{{statplus}}
+
{{statminus}}
+
{{name}}가 이야기합니다.
+
{{note}}
+
+
+ +
+

{{name}}

+
+
+
{{luck}}
+
+
{{stat}}{{statmod}}{{computed::r1}} +
{{computed::sum}}
+
+
+
+ +
+

{{name}}

+
+
{{computed::exp}}{{computed::formula}}
+
{{formula}}
+
+
+
+ \ No newline at end of file diff --git a/approved.yaml b/approved.yaml index 25a5d77139..ac2a3dee67 100644 --- a/approved.yaml +++ b/approved.yaml @@ -4377,3 +4377,15 @@ sigilshadow: - Sigil-Shadow - Sigil & Shadow - Sigil & Shadow +gammaworld4e: +- GammaWorld4e +- Gamma World 4e +- Gamma World 4th Edition +worldofst: +- World-of-the-Storytellers-WoS +- World of Story Tellers +- Fate +bnb: +- Bunkers&Badasses +- Bunkers & Badasses +- Bunkers & Badasses