Minor changes

This commit is contained in:
LeRatierBretonnien 2023-02-20 10:16:17 +01:00
parent 46b129cf81
commit 7137de0983
16 changed files with 123 additions and 60 deletions

View File

@ -118,6 +118,7 @@
"WH.ui.details": "Details",
"WH.ui.magicschool": "Magic School",
"WH.ui.providedslot": "Provided slot",
"WH.ui.skilllevelacquired": "Acquired at level",
"WH.chat.save": "Save",
"WH.chat.mweaponmalus": "Multiple weapons malus ",
@ -128,5 +129,7 @@
"WH.chat.rollformula": "Roll Formula",
"WH.chat.useshield":"Use shield ?",
"WH.chat.power": "Power",
"WH.chat.powerlevel": "Power Level"
"WH.chat.powerlevel": "Power Level",
"WH.notif.skillmaxuse": "Maximum skill usage reach - Use is not allowed"
}

View File

@ -134,6 +134,15 @@ export class WarheroActorSheet extends ActorSheet {
const li = $(event.currentTarget).parents(".item");
this.actor.incDecQuantity( li.data("item-id"), +1 );
} );
html.find('.skill-use-minus').click(event => {
const li = $(event.currentTarget).parents(".item");
this.actor.incDecSkillUse( li.data("item-id"), -1 );
} );
html.find('.skill-use-plus').click(event => {
const li = $(event.currentTarget).parents(".item");
this.actor.incDecSkillUse( li.data("item-id"), +1 );
} );
html.find('.ammo-minus').click(event => {
const li = $(event.currentTarget).parents(".item")

View File

@ -461,12 +461,10 @@ export class WarheroActor extends Actor {
}
}
/* -------------------------------------------- */
getInitiativeScore(combatId, combatantId) {
if (this.type == 'character') {
this.rollMR(true, combatId, combatantId)
}
console.log("Init required !!!!")
return -1;
async getInitiativeScore(combatId, combatantId) {
let roll = new Roll("1d20+"+this.system.attributes.ini.value).roll({async: false})
await WarheroUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"))
return roll.total
}
/* -------------------------------------------- */
@ -547,7 +545,19 @@ export class WarheroActor extends Actor {
}
}
}
/* -------------------------------------------- */
async incDecSkillUse(skillId, value) {
let skill = this.items.get(skillId)
if (skill) {
let newUse = skill.system.currentuse + value
if (newUse > skill.system.maxuse) {
ui.notifications.warn(game.i18n.localize("WH.notif.skillmaxuse"))
return
}
newUse = Math.max(newUse, 0)
this.updateEmbeddedDocuments('Item', [{ _id: skill.id, 'system.currentuse': newUse }])
}
}
/* -------------------------------------------- */
async incDecQuantity(objetId, incDec = 0) {
let objetQ = this.items.get(objetId)
@ -625,12 +635,14 @@ export class WarheroActor extends Actor {
this.system.secondary.nblanguage.value = Math.floor(this.system.statistics.min.value / 2)
}
/* -------------------------------------------- */
spentMana(mana) {
if (Number(mana) > this.system.attributes.mana.value) {
spentMana(spentValue) {
let mana = duplicate(this.system.attributes.mana)
if (Number(spentValue) > mana.value) {
ui.notifications.warn("Not enough Mana points !")
return false
}
this.update({ 'system.attributes.mana.value': this.system.attributes.mana.value - mana })
mana.value -= Number(spentValue)
this.update({ 'system.attributes.mana': mana })
return true
}
/* -------------------------------------------- */
@ -651,6 +663,10 @@ export class WarheroActor extends Actor {
let rollData = this.getCommonRollData()
rollData.mode = rollType
rollData.stat = stat
if (stat && stat.stat)
{
rollData.statBonus = duplicate(this.system.statistics[stat.stat])
}
if (rollKey == "parrybonustotal") {
WarheroUtility.rollParry(rollData)
return
@ -678,7 +694,7 @@ export class WarheroActor extends Actor {
} else {
rollData.stat = duplicate(this.system.attributes.txcm)
}
rollData.usemWeaponMalus =
rollData.usemWeaponMalus = false
rollData.mWeaponMalus = this.system.secondary.malusmultiweapon.value
rollData.weapon = weapon
rollData.img = weapon.img
@ -707,7 +723,7 @@ export class WarheroActor extends Actor {
let rollData = this.getCommonRollData()
rollData.mode = "power"
rollData.power = power
rollData.powerLevel = power.system.level
rollData.powerLevel = Number(power.system.level)
rollData.img = power.img
rollData.hasBM = false
this.startRoll(rollData)

View File

@ -9,7 +9,7 @@ export class WarheroCombat extends Combat {
for (let cId = 0; cId < ids.length; cId++) {
const c = this.combatants.get(ids[cId]);
let id = c._id || c.id;
let initBonus = c.actor ? c.actor.getInitiativeScore( this.id, id ) : -1;
let initBonus = c.actor ? await c.actor.getInitiativeScore( this.id, id ) : -1;
await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: initBonus } ]);
}

View File

@ -71,16 +71,6 @@ Hooks.once("init", async function () {
WarheroUtility.init()
});
/* -------------------------------------------- */
function welcomeMessage() {
/*ChatMessage.create({
user: game.user.id,
whisper: [game.user.id],
content: `<div id="welcome-message-crucible"><span class="rdd-roll-part">
<strong>Welcome to the Warhero RPG.</strong>
` });*/
}
/* -------------------------------------------- */
/* Foundry VTT Initialization */
/* -------------------------------------------- */
@ -96,15 +86,14 @@ Hooks.once("ready", function () {
}
// CSS patch for v9
if (game.version) {
/*if (game.version) {
let sidebar = document.getElementById("sidebar");
sidebar.style.width = "min-content";
}
}*/
welcomeMessage();
//welcomeMessage();
WarheroUtility.ready()
WarheroCommands.init()
WarheroHotbar.initDropbar()
//WarheroHotbar.initDropbar()
})

View File

@ -552,7 +552,7 @@ export class WarheroUtility {
let actor = game.actors.get(rollData.actorId)
if (rollData.mode == "power") {
let manaCost = Array.from(rollData.powerLevel)[0]
let manaCost = rollData.powerLevel
if (actor.spentMana(manaCost)) {
let powerKey = "level" + rollData.powerLevel
rollData.powerText = rollData.power.system[powerKey]
@ -592,6 +592,9 @@ export class WarheroUtility {
if (rollData.stat) {
diceFormula += "+" + rollData.stat.value
}
if (rollData.statBonus) {
diceFormula += "+" + rollData.statBonus.value
}
}
if (rollData.usemWeaponMalus) {
diceFormula += "+" + rollData.mWeaponMalus

View File

@ -876,16 +876,36 @@ li {
/* background: rgb(105,85,65) url("../images/ui/texture_feuille_perso_onglets.webp") no-repeat right bottom;*/
#sidebar.collapsed {
height: 470px !important;
}
#sidebar-tabs > .collapsed,
#chat-controls .chat-control-icon {
color: rgba(220, 220, 220, 0.75);
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75);
}
#sidebar-tabs {
flex: 0 0 28px;
box-sizing: border-box;
margin: 0 0 3px;
border-bottom: 1px solid rgba(0,0,0,0);
box-shadow: inset 0 0 2rem rgba(0,0,0,0.5);
}
#sidebar-tabs > .item.active {
border: 1px solid rgba(114,98,72,1);
background: rgba(30, 25, 20, 0.75);
box-shadow: 0 0 6px inset rgba(114,98,72,1);
}
#sidebar #sidebar-tabs i{
width: 23px;
height: 23px;
display: inline-block;
background-position:center;
background-size:cover;
text-shadow: 1px 1px 0 rgba(0,0,0,0.75);
}
.sidebar-tab .directory-list .entity {
border-top: 1px dashed rgba(0, 0, 0, 0.25);
border-bottom: 0 none;
@ -1028,21 +1048,6 @@ li {
box-shadow: inset 0 0 2rem rgba(0, 0, 0, 0.5);
}
#sidebar-tabs > .item.active {
border: 1px solid rgba(114, 98, 72, 1);
background: rgba(30, 25, 20, 0.75);
box-shadow: 0 0 6px inset rgba(114, 98, 72, 1);
}
#sidebar #sidebar-tabs i {
width: 25px;
height: 25px;
display: inline-block;
background-position: center;
background-size: cover;
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75);
}
/*--------------------------------------------------------------------------*/
/* Control, Tool, hotbar & navigation */

View File

@ -107,7 +107,7 @@
"styles": [
"styles/simple.css"
],
"version": "10.0.29",
"version": "10.0.31",
"compatibility": {
"minimum": "10",
"verified": "10",
@ -115,7 +115,7 @@
},
"title": "Warhero RPG",
"manifest": "https://www.uberwald.me/gitea/public/fvtt-warhero/raw/branch/master/system.json",
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-warhero/archive/fvtt-warhero-10.0.29.zip",
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-warhero/archive/fvtt-warhero-10.0.31.zip",
"url": "https://www.uberwald.me/gitea/public/fvtt-warhero",
"background": "images/ui/warhero_welcome_page.webp",
"id": "fvtt-warhero"

View File

@ -111,6 +111,7 @@
"label": "WH.ui.Initiative",
"abbrev": "ini",
"style": "edit",
"roll": true,
"max": 1,
"value": 1
},
@ -180,9 +181,11 @@
},
"counterspell": {
"label": "WH.ui.counterspell",
"stat": "min",
"abbrev": "counterspell",
"style": "edit",
"hasmax": true,
"roll": true,
"max": 1,
"value": 0
},
@ -236,7 +239,8 @@
"power",
"language",
"condition",
"class"
"class",
"genericitem"
],
"templates": {
"commonclassrace": {
@ -260,6 +264,9 @@
}
}
},
"genericitem": {
"description": ""
},
"condition": {
"shortdescription": "",
"description": ""
@ -288,6 +295,7 @@
"skill": {
"classskill": false,
"unlimited": false,
"acquiredatlevel": 0,
"currentuse": 0,
"maxuse": 0,
"description": ""

View File

@ -191,7 +191,7 @@
src="{{weapon.img}}" /></a>
<span class="item-name-label-long"><a class="roll-weapon"><i class="fa-solid fa-dice-d20"></i>{{weapon.name}}</a></span>
<span class="item-field-label-medium">{{weapon.system.weapontype}}</span>
<span class="item-field-label-medium">{{localize (concat "WH.conf." weapon.system.weapontype)}}</span>
{{#if (eq system.weapontype "special")}}
<span class="item-field-label-medium"><a class="roll-damage"><i class="fa-solid fa-dice-d20"></i>{{weapon.system.damageformula}}</a></span>
@ -306,7 +306,9 @@
<span class="item-field-label-medium">N/A</span>
<span class="item-field-label-medium">N/A</span>
{{else}}
<span class="item-field-label-medium">{{skill.system.currentuse}}</span>
<span class="item-field-label-medium">{{skill.system.currentuse}}
(<a class="skill-use-minus plus-minus-button">&nbsp;-</a>/<a class="skill-use-plus plus-minus-button">+</a>)
</span>
<span class="item-field-label-medium">{{skill.system.maxuse}}</span>
{{/if}}

View File

@ -13,7 +13,7 @@
<div class="tab details" data-group="primary" data-tab="description">
<label class="generic-label">{{localize "WH.ui.description"}}</label>
<div class="medium-editor item-text-long-line">
<div class="editor item-text-long-line">
{{editor description target="system.description" button=true owner=owner editable=editable}}
</div>
</div>

View File

@ -0,0 +1,24 @@
<form class="{{cssClass}}" autocomplete="off">
<header class="sheet-header">
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}" />
<div class="header-fields">
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
</div>
</header>
{{> systems/fvtt-warhero/templates/partial-item-nav.html}}
{{!-- Sheet Body --}}
<section class="sheet-body">
{{> systems/fvtt-warhero/templates/partial-item-description.html}}
<div class="tab details" data-group="primary" data-tab="details">
<ul>
</ul>
</div>
</section>
</form>

View File

@ -13,7 +13,7 @@
<div class="tab details" data-group="primary" data-tab="description">
<label class="generic-label">Description</label>
<div class="medium-editor item-text-long-line">
<div class="editor item-text-long-line">
{{editor description target="system.description" button=true owner=owner editable=editable}}
</div>
</div>

View File

@ -23,6 +23,10 @@
<input type="checkbox" name="system.unlimited" {{checked system.unlimited}}/>
</li>
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.skilllevelacquired"}}</label>
<input type="text" class="item-field-label-medium " name="system.acquiredatlevel" value="{{system.acquiredatlevel}}" data-dtype="Number"/>
</li>
{{#if system.unlimited}}
{{else}}

View File

@ -1,7 +1,7 @@
<div class="tab description" data-group="primary" data-tab="description">
<div>
<label class="generic-label">{{localize "WH.ui.description"}}</label>
<div class="medium-editor item-text-long-line">
<div class="editor item-text-long-line">
{{editor description target="system.description" button=true owner=owner editable=editable}}
</div>
</div>

View File

@ -26,7 +26,7 @@
{{#if is2hands}}
<span class="item-field-label-vlong">{{weapon.damageFormula2Hands}}</span>
{{else}}
<span class="item-field-label-vlong">{{weapon.damage}}</span>
<span class="item-field-label-vlong">{{weapon.damageFormula}}</span>
{{/if}}
</div>
{{/if}}