Compare commits
No commits in common. "2e736ca8ca893589dea325854a68ff451158e04d" and "487994ff24776a78a872be594ca44d5e286b5528" have entirely different histories.
2e736ca8ca
...
487994ff24
|
|
@ -81,28 +81,49 @@ export class SkillDataModel extends BaseItem {
|
||||||
|
|
||||||
async #combatRoll(rollMode, mode) {
|
async #combatRoll(rollMode, mode) {
|
||||||
const owner = this.parent.parent
|
const owner = this.parent.parent
|
||||||
|
const rollData = owner.getRollData()
|
||||||
|
|
||||||
|
let targetNumber = 0
|
||||||
|
|
||||||
if (mode === this.SKILL_MODE.ATTACK) {
|
if (mode === this.SKILL_MODE.ATTACK) {
|
||||||
owner.rollAttack({
|
targetNumber = this.at + owner.system.at.basis
|
||||||
skill: this.parent._id,
|
|
||||||
target: owner._id,
|
|
||||||
mod: 0,
|
|
||||||
penalty: 0,
|
|
||||||
actor: owner,
|
|
||||||
circumstance: 0,
|
|
||||||
targetNumber: this.at + owner.system.at.basis
|
|
||||||
})
|
|
||||||
} else {
|
} else {
|
||||||
owner.rollDefense({
|
targetNumber = this.pa + owner.system.pa.basis
|
||||||
skill: this.parent._id,
|
|
||||||
target: owner._id,
|
|
||||||
mod: 0,
|
|
||||||
penalty: 0,
|
|
||||||
actor: owner,
|
|
||||||
circumstance: 0,
|
|
||||||
targetNumber: this.pa + owner.system.pa.basis
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Migrate to DSARoll
|
||||||
|
let roll1 = new Roll(`1d20cs<${targetNumber}`, owner.getRollData());
|
||||||
|
|
||||||
|
let evaluated1 = (await roll1.evaluate())
|
||||||
|
|
||||||
|
const rolledValue = evaluated1.terms[0].results[0].result
|
||||||
|
|
||||||
|
if (rolledValue === 1 || rolledValue === 20) { // TODO: Modify this target
|
||||||
|
// fill with actual evaluation (targetNumber should be reduced by X and roll against that again)
|
||||||
|
}
|
||||||
|
|
||||||
|
let message = ""
|
||||||
|
if (mode === this.SKILL_MODE.ATTACK) {
|
||||||
|
if (rolledValue <= targetNumber) {
|
||||||
|
message = `Würde treffen [${rolledValue}]`
|
||||||
|
} else {
|
||||||
|
message = `Verfehlt [${rolledValue}]`
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (rolledValue <= targetNumber) {
|
||||||
|
message = `Würde parrieren [${rolledValue}]`
|
||||||
|
} else {
|
||||||
|
message = `Verfehlt die parade [${rolledValue}]`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
evaluated1.toMessage({
|
||||||
|
speaker: ChatMessage.getSpeaker({actor: owner}),
|
||||||
|
flavor: message,
|
||||||
|
rollMode,
|
||||||
|
}, {
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async #talentRoll(rollMode) {
|
async #talentRoll(rollMode) {
|
||||||
|
|
|
||||||
|
|
@ -477,59 +477,32 @@ export class Character extends Actor {
|
||||||
const maneuver = data.manuever
|
const maneuver = data.manuever
|
||||||
const weapon = this.itemTypes["Equipment"].find(p => p._id === data.weapon)
|
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 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)
|
||||||
|
|
||||||
let target = 0
|
// TODO: Migrate to DSARoll
|
||||||
try {
|
const roll = new Roll("1d20cs<" + data.targetNumber)
|
||||||
target = game.actors.get(game.scenes.current.tokens.find(p => p._id === data.target).actorId)
|
const evaluated1 = (await roll.evaluate())
|
||||||
} catch (e) {
|
|
||||||
target = game.actors.get(data.target)
|
|
||||||
}
|
|
||||||
|
|
||||||
let evaluated = await evaluateRoll("1d20", {
|
let flavor = ''
|
||||||
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") {
|
if (skill === "Ausweichen") {
|
||||||
context.weapon = "Ausweichen"
|
flavor = `Versucht auszuweichen<br/>${data.modDescription}`
|
||||||
}
|
|
||||||
|
|
||||||
if (evaluated.tap>0) {
|
|
||||||
context.remaining = evaluated.tap
|
|
||||||
context.hit = true
|
|
||||||
context.critical = evaluated.meisterlich
|
|
||||||
} else {
|
} else {
|
||||||
context.missing = evaluated.tap
|
flavor = `Verteidigt sich gegen einen Angriff mit ${weapon.name} (${skill.name})<br/>${data.modDescription}`
|
||||||
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)
|
await evaluated1.toMessage({
|
||||||
|
speaker: ChatMessage.getSpeaker({actor: this}),
|
||||||
|
flavor,
|
||||||
|
rollMode: "publicroll",
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
async rollAttack(data) {
|
async rollAttack(data) {
|
||||||
const maneuver = data.manuever
|
const maneuver = data.manuever
|
||||||
const weapon = this.itemTypes["Equipment"].find(p => p._id === data.weapon) ?? this.itemTypes["Skill"].find(p => p._id === data.skill)
|
const weapon = this.itemTypes["Equipment"].find(p => p._id === data.weapon)
|
||||||
let target = 0
|
const skill = this.itemTypes["Skill"].find(p => p._id === data.skill)
|
||||||
try {
|
const target = game.actors.get(game.scenes.current.tokens.find(p => p._id === data.target).actorId)
|
||||||
target = game.actors.get(game.scenes.current.tokens.find(p => p._id === data.target).actorId)
|
|
||||||
} catch (e) {
|
|
||||||
target = game.actors.get(data.target)
|
|
||||||
}
|
|
||||||
|
|
||||||
let evaluated = await evaluateRoll("1d20", {
|
let evaluated = await evaluateRoll("1d20", {
|
||||||
value: data.targetNumber,
|
value: data.targetNumber,
|
||||||
|
|
@ -541,6 +514,7 @@ export class Character extends Actor {
|
||||||
const context = {
|
const context = {
|
||||||
weapon: weapon.name,
|
weapon: weapon.name,
|
||||||
maneuver,
|
maneuver,
|
||||||
|
skill: skill.name,
|
||||||
target: target.name,
|
target: target.name,
|
||||||
attacker: this._id,
|
attacker: this._id,
|
||||||
mod: data.mod,
|
mod: data.mod,
|
||||||
|
|
@ -561,6 +535,12 @@ 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 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",
|
||||||
|
})*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
<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