defense rolls are also chatty now.
parent
71a15e83c9
commit
2e736ca8ca
|
|
@ -93,7 +93,15 @@ export class SkillDataModel extends BaseItem {
|
|||
targetNumber: this.at + owner.system.at.basis
|
||||
})
|
||||
} else {
|
||||
//targetNumber = this.pa + owner.system.pa.basis
|
||||
owner.rollDefense({
|
||||
skill: this.parent._id,
|
||||
target: owner._id,
|
||||
mod: 0,
|
||||
penalty: 0,
|
||||
actor: owner,
|
||||
circumstance: 0,
|
||||
targetNumber: this.pa + owner.system.pa.basis
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -477,25 +477,48 @@ export class Character extends Actor {
|
|||
const maneuver = data.manuever
|
||||
const weapon = this.itemTypes["Equipment"].find(p => p._id === data.weapon)
|
||||
const skill = data.skill !== "Ausweichen" ? this.itemTypes["Skill"].find(p => p._id === data.skill) : "Ausweichen"
|
||||
//const target = game.actors.get(game.scenes.current.tokens.find(p => p._id === data.target).actorId)
|
||||
|
||||
// TODO: Migrate to DSARoll
|
||||
const roll = new Roll("1d20cs<" + data.targetNumber)
|
||||
const evaluated1 = (await roll.evaluate())
|
||||
|
||||
let flavor = ''
|
||||
|
||||
if (skill === "Ausweichen") {
|
||||
flavor = `Versucht auszuweichen<br/>${data.modDescription}`
|
||||
} else {
|
||||
flavor = `Verteidigt sich gegen einen Angriff mit ${weapon.name} (${skill.name})<br/>${data.modDescription}`
|
||||
let target = 0
|
||||
try {
|
||||
target = game.actors.get(game.scenes.current.tokens.find(p => p._id === data.target).actorId)
|
||||
} catch (e) {
|
||||
target = game.actors.get(data.target)
|
||||
}
|
||||
|
||||
await evaluated1.toMessage({
|
||||
speaker: ChatMessage.getSpeaker({actor: this}),
|
||||
flavor,
|
||||
rollMode: "publicroll",
|
||||
let evaluated = await evaluateRoll("1d20", {
|
||||
value: data.targetNumber,
|
||||
mod: data.mod + data.penalty,
|
||||
owner: this,
|
||||
werte: [0]
|
||||
})
|
||||
|
||||
const context = {
|
||||
weapon: weapon.name,
|
||||
maneuver,
|
||||
target: this.name,
|
||||
attacker: this._id,
|
||||
mod: data.mod,
|
||||
penalty: data.penalty,
|
||||
circumstance: data.circumstance,
|
||||
die: evaluated.evaluated.terms[0].results[0].result,
|
||||
value: data.targetNumber,
|
||||
}
|
||||
|
||||
if (skill === "Ausweichen") {
|
||||
context.weapon = "Ausweichen"
|
||||
}
|
||||
|
||||
if (evaluated.tap>0) {
|
||||
context.remaining = evaluated.tap
|
||||
context.hit = true
|
||||
context.critical = evaluated.meisterlich
|
||||
} else {
|
||||
context.missing = evaluated.tap
|
||||
context.miss = true
|
||||
context.fumble = evaluated.patzer
|
||||
}
|
||||
|
||||
await displayRoll(evaluated.evaluated, game.user, data.actor, false, false, 'systems/DSA_4-1/templates/chat/attack-chat-message.hbs', context)
|
||||
}
|
||||
|
||||
async rollAttack(data) {
|
||||
|
|
@ -538,12 +561,6 @@ export class Character extends Actor {
|
|||
}
|
||||
|
||||
await displayRoll(evaluated.evaluated, game.user, data.actor, false, false, 'systems/DSA_4-1/templates/chat/attack-chat-message.hbs', context)
|
||||
|
||||
/*await evaluated1.toMessage({
|
||||
speaker: ChatMessage.getSpeaker({actor: this}),
|
||||
flavor: `Attackiert ${target.name} mit ${weapon.name} (${skill.name})<br/>${data.modDescription}`,
|
||||
rollMode: "publicroll",
|
||||
})*/
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
|
||||
<div>
|
||||
<div>{{weapon}} ({{value}})</div>
|
||||
<div>Gewürfelt: {{die}}</div>
|
||||
<div>Erschwernis: {{circumstance}}</div>
|
||||
<div>Modifikation: {{mod}}</div>
|
||||
<hr>
|
||||
{{#if missing}}
|
||||
<div>Gefehlt: {{missing}} {{#if fumble}}Patzer{{/if}}</div>
|
||||
{{else}}
|
||||
<div>Übrig: {{remaining}} {{#if critical}}Meisterlich{{/if}}</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
Loading…
Reference in New Issue