✨
This commit is contained in:
@@ -639,12 +639,45 @@
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.defenseBox {
|
||||
position: absolute;
|
||||
bottom: 5px;
|
||||
right: 10px
|
||||
}
|
||||
|
||||
.defenseTable {
|
||||
border-radius: 10px;
|
||||
border-radius: 5px;
|
||||
text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
|
||||
|
||||
th {
|
||||
border: 2px black;
|
||||
padding: 5px;
|
||||
padding: 3.5px;
|
||||
padding-right: 4.5px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.effectiveness0 {
|
||||
background-color: black;
|
||||
color: yellow;
|
||||
// text-shadow: none;
|
||||
}
|
||||
|
||||
.effectiveness½ {
|
||||
background-color: red;
|
||||
color: yellow;
|
||||
// text-shadow: none;
|
||||
}
|
||||
|
||||
.effectiveness1 {
|
||||
background-color: white;
|
||||
color: white;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.effectiveness½ {
|
||||
background-color: green;
|
||||
color: yellow;
|
||||
// text-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,332 @@
|
||||
const api = foundry.applications.api;
|
||||
const sheets = foundry.applications.sheets;
|
||||
|
||||
effectivenessChart = {
|
||||
"normal": {
|
||||
"normal": 1,
|
||||
"fire": 1,
|
||||
"water": 1,
|
||||
"electric": 1,
|
||||
"grass": 1,
|
||||
"ice": 1,
|
||||
"fighting": 1,
|
||||
"poison": 1,
|
||||
"ground": 1,
|
||||
"flying": 1,
|
||||
"psychic": 1,
|
||||
"bug": 1,
|
||||
"rock": 0.5,
|
||||
"ghost": 0,
|
||||
"dragon": 1,
|
||||
"dark": 1,
|
||||
"steel": 0.5
|
||||
},
|
||||
"fire": {
|
||||
"normal": 1,
|
||||
"fire": 0.5,
|
||||
"water": 0.5,
|
||||
"electric": 1,
|
||||
"grass": 2,
|
||||
"ice": 2,
|
||||
"fighting": 1,
|
||||
"poison": 1,
|
||||
"ground": 1,
|
||||
"flying": 1,
|
||||
"psychic": 1,
|
||||
"bug": 2,
|
||||
"rock": 0.5,
|
||||
"ghost": 1,
|
||||
"dragon": 0.5,
|
||||
"dark": 1,
|
||||
"steel": 2
|
||||
},
|
||||
"water": {
|
||||
"normal": 1,
|
||||
"fire": 2,
|
||||
"water": 0.5,
|
||||
"electric": 1,
|
||||
"grass": 0.5,
|
||||
"ice": 1,
|
||||
"fighting": 1,
|
||||
"poison": 1,
|
||||
"ground": 2,
|
||||
"flying": 1,
|
||||
"psychic": 1,
|
||||
"bug": 1,
|
||||
"rock": 2,
|
||||
"ghost": 1,
|
||||
"dragon": 0.5,
|
||||
"dark": 1,
|
||||
"steel": 1
|
||||
},
|
||||
"electric": {
|
||||
"normal": 1,
|
||||
"fire": 1,
|
||||
"water": 2,
|
||||
"electric": 0.5,
|
||||
"grass": 0.5,
|
||||
"ice": 1,
|
||||
"fighting": 1,
|
||||
"poison": 1,
|
||||
"ground": 0,
|
||||
"flying": 2,
|
||||
"psychic": 1,
|
||||
"bug": 1,
|
||||
"rock": 1,
|
||||
"ghost": 1,
|
||||
"dragon": 0.5,
|
||||
"dark": 1,
|
||||
"steel": 1
|
||||
},
|
||||
"grass": {
|
||||
"normal": 1,
|
||||
"fire": 0.5,
|
||||
"water": 2,
|
||||
"electric": 1,
|
||||
"grass": 0.5,
|
||||
"ice": 1,
|
||||
"fighting": 1,
|
||||
"poison": 0.5,
|
||||
"ground": 2,
|
||||
"flying": 0.5,
|
||||
"psychic": 1,
|
||||
"bug": 0.5,
|
||||
"rock": 2,
|
||||
"ghost": 1,
|
||||
"dragon": 0.5,
|
||||
"dark": 1,
|
||||
"steel": 0.5
|
||||
},
|
||||
"ice": {
|
||||
"normal": 1,
|
||||
"fire": 0.5,
|
||||
"water": 0.5,
|
||||
"electric": 1,
|
||||
"grass": 2,
|
||||
"ice": 0.5,
|
||||
"fighting": 1,
|
||||
"poison": 1,
|
||||
"ground": 2,
|
||||
"flying": 2,
|
||||
"psychic": 1,
|
||||
"bug": 1,
|
||||
"rock": 1,
|
||||
"ghost": 1,
|
||||
"dragon": 2,
|
||||
"dark": 1,
|
||||
"steel": 0.5
|
||||
},
|
||||
"fighting": {
|
||||
"normal": 2,
|
||||
"fire": 1,
|
||||
"water": 1,
|
||||
"electric": 1,
|
||||
"grass": 1,
|
||||
"ice": 2,
|
||||
"fighting": 1,
|
||||
"poison": 0.5,
|
||||
"ground": 1,
|
||||
"flying": 0.5,
|
||||
"psychic": 0.5,
|
||||
"bug": 0.5,
|
||||
"rock": 2,
|
||||
"ghost": 0,
|
||||
"dragon": 1,
|
||||
"dark": 2,
|
||||
"steel": 2
|
||||
},
|
||||
"poison": {
|
||||
"normal": 1,
|
||||
"fire": 1,
|
||||
"water": 1,
|
||||
"electric": 1,
|
||||
"grass": 2,
|
||||
"ice": 1,
|
||||
"fighting": 1,
|
||||
"poison": 0.5,
|
||||
"ground": 0.5,
|
||||
"flying": 1,
|
||||
"psychic": 1,
|
||||
"bug": 1,
|
||||
"rock": 0.5,
|
||||
"ghost": 0.5,
|
||||
"dragon": 1,
|
||||
"dark": 1,
|
||||
"steel": 0
|
||||
},
|
||||
"ground": {
|
||||
"normal": 1,
|
||||
"fire": 2,
|
||||
"water": 1,
|
||||
"electric": 2,
|
||||
"grass": 0.5,
|
||||
"ice": 1,
|
||||
"fighting": 1,
|
||||
"poison": 2,
|
||||
"ground": 1,
|
||||
"flying": 0,
|
||||
"psychic": 1,
|
||||
"bug": 0.5,
|
||||
"rock": 2,
|
||||
"ghost": 1,
|
||||
"dragon": 1,
|
||||
"dark": 1,
|
||||
"steel": 2
|
||||
},
|
||||
"flying": {
|
||||
"normal": 1,
|
||||
"fire": 1,
|
||||
"water": 1,
|
||||
"electric": 0.5,
|
||||
"grass": 2,
|
||||
"ice": 1,
|
||||
"fighting": 2,
|
||||
"poison": 1,
|
||||
"ground": 1,
|
||||
"flying": 1,
|
||||
"psychic": 1,
|
||||
"bug": 2,
|
||||
"rock": 0.5,
|
||||
"ghost": 1,
|
||||
"dragon": 1,
|
||||
"dark": 1,
|
||||
"steel": 0.5
|
||||
},
|
||||
"psychic": {
|
||||
"normal": 1,
|
||||
"fire": 1,
|
||||
"water": 1,
|
||||
"electric": 1,
|
||||
"grass": 1,
|
||||
"ice": 1,
|
||||
"fighting": 2,
|
||||
"poison": 2,
|
||||
"ground": 1,
|
||||
"flying": 1,
|
||||
"psychic": 0.5,
|
||||
"bug": 1,
|
||||
"rock": 1,
|
||||
"ghost": 1,
|
||||
"dragon": 1,
|
||||
"dark": 0,
|
||||
"steel": 0.5
|
||||
},
|
||||
"bug": {
|
||||
"normal": 1,
|
||||
"fire": 0.5,
|
||||
"water": 1,
|
||||
"electric": 1,
|
||||
"grass": 2,
|
||||
"ice": 1,
|
||||
"fighting": 0.5,
|
||||
"poison": 0.5,
|
||||
"ground": 1,
|
||||
"flying": 0.5,
|
||||
"psychic": 2,
|
||||
"bug": 1,
|
||||
"rock": 1,
|
||||
"ghost": 0.5,
|
||||
"dragon": 1,
|
||||
"dark": 2,
|
||||
"steel": 0.5
|
||||
},
|
||||
"rock": {
|
||||
"normal": 1,
|
||||
"fire": 2,
|
||||
"water": 1,
|
||||
"electric": 1,
|
||||
"grass": 1,
|
||||
"ice": 2,
|
||||
"fighting": 0.5,
|
||||
"poison": 1,
|
||||
"ground": 0.5,
|
||||
"flying": 2,
|
||||
"psychic": 1,
|
||||
"bug": 2,
|
||||
"rock": 1,
|
||||
"ghost": 1,
|
||||
"dragon": 1,
|
||||
"dark": 1,
|
||||
"steel": 0.5
|
||||
},
|
||||
"ghost": {
|
||||
"normal": 0,
|
||||
"fire": 1,
|
||||
"water": 1,
|
||||
"electric": 1,
|
||||
"grass": 1,
|
||||
"ice": 1,
|
||||
"fighting": 1,
|
||||
"poison": 1,
|
||||
"ground": 1,
|
||||
"flying": 1,
|
||||
"psychic": 2,
|
||||
"bug": 1,
|
||||
"rock": 1,
|
||||
"ghost": 2,
|
||||
"dragon": 1,
|
||||
"dark": 0.5,
|
||||
"steel": 0.5
|
||||
},
|
||||
"dragon": {
|
||||
"normal": 1,
|
||||
"fire": 1,
|
||||
"water": 1,
|
||||
"electric": 1,
|
||||
"grass": 1,
|
||||
"ice": 1,
|
||||
"fighting": 1,
|
||||
"poison": 1,
|
||||
"ground": 1,
|
||||
"flying": 1,
|
||||
"psychic": 1,
|
||||
"bug": 1,
|
||||
"rock": 1,
|
||||
"ghost": 1,
|
||||
"dragon": 2,
|
||||
"dark": 1,
|
||||
"steel": 0.5
|
||||
},
|
||||
"dark": {
|
||||
"normal": 1,
|
||||
"fire": 1,
|
||||
"water": 1,
|
||||
"electric": 1,
|
||||
"grass": 1,
|
||||
"ice": 1,
|
||||
"fighting": 0.5,
|
||||
"poison": 1,
|
||||
"ground": 1,
|
||||
"flying": 1,
|
||||
"psychic": 2,
|
||||
"bug": 1,
|
||||
"rock": 1,
|
||||
"ghost": 2,
|
||||
"dragon": 1,
|
||||
"dark": 0.5,
|
||||
"steel": 0.5
|
||||
},
|
||||
"steel": {
|
||||
"normal": 1,
|
||||
"fire": 0.5,
|
||||
"water": 0.5,
|
||||
"electric": 0.5,
|
||||
"grass": 1,
|
||||
"ice": 2,
|
||||
"fighting": 1,
|
||||
"poison": 1,
|
||||
"ground": 1,
|
||||
"flying": 1,
|
||||
"psychic": 1,
|
||||
"bug": 1,
|
||||
"rock": 2,
|
||||
"ghost": 1,
|
||||
"dragon": 1,
|
||||
"dark": 1,
|
||||
"steel": 0.5
|
||||
}
|
||||
}
|
||||
|
||||
export default class pokemonCharacterSheet extends api.HandlebarsApplicationMixin(sheets.ActorSheetV2) {
|
||||
|
||||
sheetContext = {};
|
||||
@@ -84,13 +410,25 @@ export default class pokemonCharacterSheet extends api.HandlebarsApplicationMixi
|
||||
context.system.spArmorClass += 2;
|
||||
}
|
||||
|
||||
context.defenses = ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"]
|
||||
context.defenses = context.types.map(type => this.calcEffectiveness(context, type));
|
||||
|
||||
context.system.speed = 30+5*context.system.stats.speed;
|
||||
|
||||
return context;
|
||||
}
|
||||
|
||||
calcEffectiveness(context, type) {
|
||||
effectiveness = 1
|
||||
|
||||
effectiveness *= effectivenessChart[type][context.system.type1]
|
||||
|
||||
if (context.system.type2 != "") {
|
||||
effectiveness *= effectivenessChart[type][context.system.type2]
|
||||
}
|
||||
|
||||
return effectiveness
|
||||
}
|
||||
|
||||
/** @override */
|
||||
_onRender(context, options) {
|
||||
const tabs = new foundry.applications.ux.Tabs({navSelector: ".tabs", contentSelector: ".content", initial: this.tab});
|
||||
|
||||
29
pokemon.css
29
pokemon.css
@@ -533,10 +533,35 @@
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.pokemon.sheet.characterSheet .defenseBox {
|
||||
position: absolute;
|
||||
bottom: 5px;
|
||||
right: 10px;
|
||||
}
|
||||
.pokemon.sheet.characterSheet .defenseTable {
|
||||
border-radius: 10px;
|
||||
border-radius: 5px;
|
||||
text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
|
||||
}
|
||||
.pokemon.sheet.characterSheet .defenseTable th {
|
||||
border: 2px black;
|
||||
padding: 5px;
|
||||
padding: 3.5px;
|
||||
padding-right: 4.5px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.pokemon.sheet.characterSheet .effectiveness0 {
|
||||
background-color: black;
|
||||
color: yellow;
|
||||
}
|
||||
.pokemon.sheet.characterSheet .effectiveness½ {
|
||||
background-color: red;
|
||||
color: yellow;
|
||||
}
|
||||
.pokemon.sheet.characterSheet .effectiveness1 {
|
||||
background-color: white;
|
||||
color: white;
|
||||
text-shadow: none;
|
||||
}
|
||||
.pokemon.sheet.characterSheet .effectiveness½ {
|
||||
background-color: green;
|
||||
color: yellow;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "0.1.9",
|
||||
"version": "0.1.10",
|
||||
"id": "pokemon",
|
||||
"title": "Pokémon TTRPG",
|
||||
"description": "A Pokémon TTRPG",
|
||||
|
||||
BIN
system.zip
BIN
system.zip
Binary file not shown.
@@ -58,6 +58,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="defenseBox">
|
||||
<span class="header">Defenses</span>
|
||||
|
||||
<table class="defenseTable">
|
||||
<tr>
|
||||
{{#each types}}
|
||||
|
||||
Reference in New Issue
Block a user