@ -154,13 +154,13 @@ export class ActorSheetKH extends ActorSheet {
icon : '<i class="far dice"></i>' ,
callback : ( li ) => {
let itemId = li . data ( "itemId" ) ;
let _item = this . actor . items . find ( ( element ) => element . _ id == itemId ) ;
let _item = this . actor . items . find ( ( element ) => element . id == itemId ) ;
// Retrieve skill based on name
let skill = this . actor . items . find ( ( element ) => element . name === _item . data . data . skill. value ) ;
let skill = this . actor . items . find ( ( element ) => element . name === _item . data . skill . value ) ;
let skillName = skill . name
let skillValue = skill . data . data . value
let skillValue = skill . data . value
let showValue = false
if ( this . actor . data . type === "character" ) {
@ -186,10 +186,10 @@ export class ActorSheetKH extends ActorSheet {
icon : '<i class="far dice"></i>' ,
callback : ( li ) => {
let itemId = li . data ( "itemId" ) ;
let _item = this . actor . items . find ( ( element ) => element . _ id == itemId ) ;
let _item = this . actor . items . find ( ( element ) => element . id == itemId ) ;
let skillName = _item . name
let skillValue = _item . data . data . value
let skillValue = _item . data . value
let showValue = false
if ( this . actor . data . type === "character" ) {
@ -214,14 +214,14 @@ export class ActorSheetKH extends ActorSheet {
name : game . i18n . localize ( "MENU.SHOWROLLDIALOG" ) ,
icon : '<i class="far dice"></i>' ,
callback : ( li ) => {
let itemId = li . data ( "itemI d" ) ;
let _item = this . actor . items . find ( ( element ) => element . _ id == itemId ) ;
let itemId = li . data ( "item-i d" ) ;
let _item = this . actor . items . find ( ( element ) => element . id == itemId ) ;
if ( ! _item ) {
_item = game . items . get ( itemId ) ;
if ( ! _item ) {
console . log ( "IMPORT ERROR" )
console . log ( "IMPORT ERROR 1 " )
return
}
}
@ -233,7 +233,7 @@ export class ActorSheetKH extends ActorSheet {
showValue = true
}
switch ( _item . data . data . d ifficulty . value ) {
switch ( _item . data . difficulty . value ) {
case "simple" :
difficulty = 5
break ;
@ -248,24 +248,24 @@ export class ActorSheetKH extends ActorSheet {
break ;
}
if ( _item . data . data . roll. value === "roll" || _item . data . data . roll . value === "attackroll" ) {
if ( _item . data . roll . value === "roll" || _item . data . roll . value === "attackroll" ) {
// Retrieve skill based on name
let skill = this . actor . items . find ( ( element ) => element . name === _item . data . data . roll. skill ) ;
let skill = this . actor . items . find ( ( element ) => element . name === _item . data . roll . skill ) ;
let skillName = _item . name
let skillValue = skill . data . data . value
let skillValue = skill . data . value
if ( this . actor . data . type === "character" ) {
skillName = _item . name + " (" + skill . name + ")"
}
this . khRoller . rollSkillDialogInChat ( skillName , skillValue , showValue , this . actor , difficulty )
} else if ( _item . data . data . roll. value === "opposite" ) {
} else if ( _item . data . roll . value === "opposite" ) {
// Retrieve skill based on name
let skill = this . actor . items . find ( ( element ) => element . name === _item . data . data . roll. skill ) ;
let skill = this . actor . items . find ( ( element ) => element . name === _item . data . roll . skill ) ;
let skillName = _item . name
let skillValue = skill . data . data . value
let skillValue = skill . data . value
if ( this . actor . data . type === "character" ) {
skillName = _item . name + " (" + skill . name + ")"
@ -274,62 +274,62 @@ export class ActorSheetKH extends ActorSheet {
let opposite = [ ]
// Retrieve skill based on name
if ( _item . data . data . roll. oppositeskill !== "" ) {
let skill1 = this . actor . items . find ( ( element ) => element . name === _item . data . data . roll. oppositeskill ) ;
if ( _item . data . roll . oppositeskill !== "" ) {
let skill1 = this . actor . items . find ( ( element ) => element . name === _item . data . roll . oppositeskill ) ;
opposite . push ( skill1 . name )
}
if ( _item . data . data . roll. oppositeskilltwo !== "" ) {
let skill2 = this . actor . items . find ( ( element ) => element . name === _item . data . data . roll. oppositeskilltwo ) ;
if ( _item . data . roll . oppositeskilltwo !== "" ) {
let skill2 = this . actor . items . find ( ( element ) => element . name === _item . data . roll . oppositeskilltwo ) ;
opposite . push ( skill2 . name )
}
this . khRoller . rollSkillDialogInChat ( skillName , skillValue , showValue , this . actor , difficulty , opposite )
} else if ( _item . data . data . roll. value === "ritual" ) {
} else if ( _item . data . roll . value === "ritual" ) {
let skills = [ ]
if ( _item . data . data . roll. ritual . skillone !== "" ) {
let skill1 = this . actor . items . find ( ( element ) => element . name === _item . data . data . roll. ritual . skillone ) ;
if ( _item . data . roll . ritual . skillone !== "" ) {
let skill1 = this . actor . items . find ( ( element ) => element . name === _item . data . roll . ritual . skillone ) ;
skills . push ( {
name : skill1 . name ,
value : skill1 . data . data . value
value : skill1 . data . value
} ) ;
}
if ( _item . data . data . roll. ritual . skilltwo !== "" ) {
let skill2 = this . actor . items . find ( ( element ) => element . name === _item . data . data . roll. ritual . skilltwo ) ;
if ( _item . data . roll . ritual . skilltwo !== "" ) {
let skill2 = this . actor . items . find ( ( element ) => element . name === _item . data . roll . ritual . skilltwo ) ;
skills . push ( {
name : skill2 . name ,
value : skill2 . data . data . value
value : skill2 . data . value
} ) ;
}
if ( _item . data . data . roll. ritual . skillthree !== "" ) {
let skill3 = this . actor . items . find ( ( element ) => element . name === _item . data . data . roll. ritual . skillthree ) ;
if ( _item . data . roll . ritual . skillthree !== "" ) {
let skill3 = this . actor . items . find ( ( element ) => element . name === _item . data . roll . ritual . skillthree ) ;
skills . push ( {
name : skill3 . name ,
value : skill3 . data . data . value
value : skill3 . data . value
} ) ;
}
if ( _item . data . data . roll. ritual . skillfour !== "" ) {
let skill4 = this . actor . items . find ( ( element ) => element . name === _item . data . data . roll. ritual . skillfour ) ;
if ( _item . data . roll . ritual . skillfour !== "" ) {
let skill4 = this . actor . items . find ( ( element ) => element . name === _item . data . roll . ritual . skillfour ) ;
skills . push ( {
name : skill4 . name ,
value : skill4 . data . data . value
value : skill4 . data . value
} ) ;
}
if ( _item . data . data . roll. ritual . skillfive !== "" ) {
let skill5 = this . actor . items . find ( ( element ) => element . name === _item . data . data . roll. ritual . skillfive ) ;
if ( _item . data . roll . ritual . skillfive !== "" ) {
let skill5 = this . actor . items . find ( ( element ) => element . name === _item . data . roll . ritual . skillfive ) ;
skills . push ( {
name : skill5 . name ,
value : skill5 . data . data . value
value : skill5 . data . value
} ) ;
}
@ -388,6 +388,7 @@ export class ActorSheetKH extends ActorSheet {
] ) ;
html . find ( ".feature" ) . click ( async ( ev ) => {
console . log ( "feature" )
const featureName = $ ( ev . currentTarget ) . data ( "feature" ) ;
const featureValue = this . actor . data . data . feature [ featureName ] . value ;
if ( featureName === "one" ) {
@ -406,7 +407,7 @@ export class ActorSheetKH extends ActorSheet {
html . find ( ".item-delete" ) . click ( ( ev ) => {
let parent = $ ( ev . currentTarget ) . data ( "parent" )
const li = $ ( ev . currentTarget ) . parents ( parent ) ;
const item = this . actor . getOwnedItem ( li . data ( "itemId" ) ) ;
const item = this . actor . items . get ( li . data ( "itemId" ) ) ;
if ( item ) {
if ( item . type === "armor" ) {
@ -417,10 +418,10 @@ export class ActorSheetKH extends ActorSheet {
this . actor . items . map ( ( i ) => {
if ( i . type === "armor" ) {
if ( i . _ id !== item . _ id && i . data . data . equipable . equipped && i . data ? . data ? . modifications ) {
for ( let k of Object . keys ( i . data . data . modifications) ) {
if ( i . data . data . modifications[ k ] . modtype === "init" ) {
initValue = i . data . data . modifications[ k ] . value ;
if ( i . id !== item . id && i . data . equipable . equipped && i . data ? . data ? . modifications ) {
for ( let k of Object . keys ( i . data . modifications ) ) {
if ( i . data . modifications [ k ] . modtype === "init" ) {
initValue = i . data . modifications [ k ] . value ;
}
}
}
@ -434,23 +435,26 @@ export class ActorSheetKH extends ActorSheet {
}
}
this . actor . deleteOwnedItem ( li . data ( "itemId" ) ) ;
this . actor . deleteEmbeddedDocuments ( "Item" , [ li . data ( "itemId" ) ] ) ;
//this.actor.deleteOwnedItem(li.data("itemId"));
li . slideUp ( 200 , ( ) => this . render ( false ) ) ;
} ) ;
// Edit Inventory Item
html . find ( ".item-edit" ) . click ( async ( ev ) => {
console . log ( "item-edit" )
let parent = $ ( ev . currentTarget ) . data ( "parent" )
let li = $ ( ev . currentTarget ) . parents ( parent ) ;
let itemId = li . data ( "itemId" ) ;
let item = this . actor . getOwnedItem ( itemId ) ;
let item = this . actor . items . get ( itemId ) ;
if ( ! item ) {
item = game . items . get ( itemId ) ;
if ( ! item ) {
console . log ( "IMPORT ERROR" )
console . log ( "IMPORT ERROR 2 " )
}
}
@ -463,13 +467,13 @@ export class ActorSheetKH extends ActorSheet {
html . find ( ".roll-spell-cost" ) . click ( ( ev ) => {
const li = $ ( ev . currentTarget ) . parents ( ".item-spell" ) ;
let itemId = li . data ( "itemId" ) ;
let spell = this . actor . getOwnedItem ( itemId ) ;
let spell = this . actor . items . get ( itemId ) ;
if ( ! spell ) {
spell = game . items . get ( itemId ) ;
if ( ! spell ) {
console . log ( "IMPORT ERROR" )
console . log ( "IMPORT ERROR 3 " )
return
}
}
@ -486,14 +490,14 @@ export class ActorSheetKH extends ActorSheet {
html . find ( ".roll-spell-skill" ) . click ( ( ev ) => {
const li = $ ( ev . currentTarget ) . parents ( ".item-spell" ) ;
let itemId = li . data ( "itemI d" ) ;
let spell = this . actor . getOwnedItem ( itemId ) ;
let itemId = li . data ( "item-i d" ) ;
let spell = this . actor . items . get ( itemId ) ;
if ( ! spell ) {
spell = game . items . get ( itemId ) ;
if ( ! spell ) {
console . log ( "IMPORT ERROR" )
console . log ( "IMPORT ERROR 4 " )
return
}
}
@ -614,8 +618,8 @@ export class ActorSheetKH extends ActorSheet {
/* Roll skill */
html . find ( ".roll-skill" ) . click ( ( ev ) => {
const li = $ ( ev . currentTarget ) . parents ( ".item-skill" ) ;
let itemId = li . data ( "itemI d" ) ;
let _item = this . actor . items . find ( ( element ) => element . _ id == itemId ) ;
let itemId = li . data ( "item-i d" ) ;
let _item = this . actor . items . find ( ( element ) => element . id = == itemId ) ;
let skillName = _item . name
let skillValue = _item . data . data . value
@ -632,13 +636,13 @@ export class ActorSheetKH extends ActorSheet {
html . find ( ".roll-weapon-skill" ) . click ( ( ev ) => {
const li = $ ( ev . currentTarget ) . parents ( ".item-weapon" ) ;
let itemId = li . data ( "itemId" ) ;
let weapon = this . actor . getOwnedItem ( itemId ) ;
let weapon = this . actor . items . get ( itemId ) ;
if ( ! weapon ) {
weapon = game . items . get ( itemId ) ;
if ( ! weapon ) {
console . log ( "IMPORT ERROR" )
console . log ( "IMPORT ERROR 5 " )
return
}
}
@ -661,13 +665,13 @@ export class ActorSheetKH extends ActorSheet {
html . find ( ".roll-damage" ) . click ( ( ev ) => {
const li = $ ( ev . currentTarget ) . parents ( ".item-weapon" ) ;
let itemId = li . data ( "itemId" ) ;
let weapon = this . actor . getOwnedItem ( itemId ) ;
let weapon = this . actor . items . get ( itemId ) ;
if ( ! weapon ) {
weapon = game . items . get ( itemId ) ;
if ( ! weapon ) {
console . log ( "IMPORT ERROR" )
console . log ( "IMPORT ERROR 6 " )
return
}
}
@ -686,13 +690,13 @@ export class ActorSheetKH extends ActorSheet {
html . find ( ".roll-armor" ) . click ( ( ev ) => {
const li = $ ( ev . currentTarget ) . parents ( ".item" ) ;
let itemId = li . data ( "itemId" ) ;
let armor = this . actor . getOwnedItem ( itemId ) ;
let armor = this . actor . items . get ( itemId ) ;
if ( ! armor ) {
armor = game . items . get ( itemId ) ;
if ( ! armor ) {
console . log ( "IMPORT ERROR" )
console . log ( "IMPORT ERROR 7 " )
return
}
}
@ -747,13 +751,13 @@ export class ActorSheetKH extends ActorSheet {
html . find ( ".roll-attack-damage" ) . click ( ( ev ) => {
const li = $ ( ev . currentTarget ) . parents ( ".item-attack" ) ;
let itemId = li . data ( "itemId" ) ;
let weapon = this . actor . getOwnedItem ( itemId ) ;
let weapon = this . actor . items . get ( itemId ) ;
if ( ! weapon ) {
weapon = game . items . get ( itemId ) ;
if ( ! weapon ) {
console . log ( "IMPORT ERROR" )
console . log ( "IMPORT ERROR 8 " )
return
}
}
@ -807,6 +811,12 @@ export class ActorSheetKH extends ActorSheet {
// Add or Remove relationship
html . find ( ".learning-control" ) . click ( this . _onClickLearningControl . bind ( this ) ) ;
html . find ( ".learning-delete" ) . click ( async ( event ) => {
event . preventDefault ( ) ;
const a = event . currentTarget . closest ( ".learning" ) ;
const id = a . dataset [ "attribute" ] ;
this . object . update ( { "data.learning" : { [ "-=" + id ] : null } } ) ;
} ) ;
html . find ( ".learning-click" ) . click ( this . _onClickLearingLearned . bind ( this ) ) ;
/* Hjältarnas Tid specefic */
@ -818,6 +828,7 @@ export class ActorSheetKH extends ActorSheet {
}
async _onClickLearingLearned ( event ) {
console . log ( "_onClickLearingLearned" )
event . stopPropagation ( ) ;
const li1 = $ ( event . currentTarget ) ;
const li2 = $ ( event . currentTarget ) . parents ( ".learning" ) ;
@ -837,13 +848,11 @@ export class ActorSheetKH extends ActorSheet {
async _onClickLearningControl ( event ) {
event . preventDefault ( ) ;
const a = event . currentTarget ;
const action = a . dataset . action ;
const attrs = this . object . data . data . learning ;
const form = this . form ;
const action = event . currentTarget . dataset . action ;
// Add new modification
if ( action === "create" ) {
const form = this . form ;
const nk = new Date ( ) . getTime ( ) ;
let newKey = document . createElement ( "div" ) ;
@ -853,41 +862,43 @@ export class ActorSheetKH extends ActorSheet {
await this . _onSubmit ( event ) ;
}
/ *
// Remove existing modification
else if ( action === "delete" ) {
const li = a . closest ( ".learning" ) ;
li . parentElement . removeChild ( li ) ;
await this . _onSubmit ( event ) ;
const a = eventan>. currentTarget . closest ( ".learning" ) ;
const id = a . dataset [ "attribute" ] ;
this . object . update ( { "data.learning" : { [ "-=" + id ] : null } } ) ;
}
* /
}
async _onClickRelationshipControl ( event ) {
console . log ( "_onClickRelationshipControl" )
event . preventDefault ( ) ;
const a = event . currentTarget ;
const action = a . dataset . action ;
const attrs = this . object . data . data . relationships ;
const form = this . form ;
const action = event . currentTarget . dataset . action ;
// Add new modification
if ( action === "create" ) {
const form = this . form ;
const nk = new Date ( ) . getTime ( ) ;
let newKey = document . createElement ( "div" ) ;
newKey . innerHTML = ` <input class="relation-key" type="text" name="data.relationships.attr ${ nk } .key" value="attr ${ nk } " style="display: none;" /><input class="relation-key" type="text" name="data.relationships.attr ${ nk } .value" value="" style="display: none;" /> ` ;
form . appendChild ( newKey ) ;
await this . _onSubmit ( event ) ;
}
// Remove existing modification
else if ( action === "delete" ) {
const li = a . closest ( ".relation" ) ;
li . parentElement . removeChild ( li ) ;
await this . _onSubmit ( event ) ;
const ability = $ ( event . currentTarget ) . closest ( ".relation" ) . data ( "attribute" ) ;
await this . object . update ( { "data.relationships" : { [ "-=" + ability ] : null } } ) ;
}
await this . _onSubmit ( event ) ;
}
async _onClickRelationshipUsed ( event ) {
console . log ( "_onClickRelationshipUsed" )
event . stopPropagation ( ) ;
const li = $ ( event . currentTarget ) . parents ( ".relation" ) ;
@ -905,8 +916,9 @@ export class ActorSheetKH extends ActorSheet {
}
async _toggleEquippedItem ( event ) {
console . log ( "_toggleEquippedItem" )
const li = $ ( event . currentTarget ) ;
const item = this . actor . getOwnedItem ( li . data ( "itemId" ) ) ;
const item = this . actor . items . get ( li . data ( "itemId" ) ) ;
const actor = this . actor ;
if ( item ) {
@ -918,7 +930,7 @@ export class ActorSheetKH extends ActorSheet {
actor . items . map ( ( i ) => {
if ( i . type === "armor" ) {
if ( i . _ id !== item . _ id && i . data . data . equipable . equipped && i . data ? . data ? . modifications ) {
if ( i . id !== item . id && i . data . data . equipable . equipped && i . data ? . data ? . modifications ) {
for ( let k of Object . keys ( i . data . data . modifications ) ) {
if ( i . data . data . modifications [ k ] . modtype === "init" ) {
initValue = i . data . data . modifications [ k ] . value ;
@ -949,28 +961,30 @@ export class ActorSheetKH extends ActorSheet {
}
async _increaseQuantity ( event ) {
console . log ( "_increaseQuantity" )
event . stopPropagation ( ) ;
const li = $ ( event . currentTarget ) . parents ( ".item" ) ;
let itemId = li . data ( "itemId" ) ;
let item = this . actor . getOwnedItem ( itemId ) ;
let item = this . actor . items . get ( itemId ) ;
if ( ! item ) {
console . log ( "IMPORT ERROR" )
console . log ( "IMPORT ERROR 9 " )
}
item . update ( { [ "data.quantity.value" ] : item . data . data . quantity . value + 1 } ) ;
}
async _decreaseQuantity ( event ) {
console . log ( "_decreaseQuantity" )
event . stopPropagation ( ) ;
const li = $ ( event . currentTarget ) . parents ( ".item" ) ;
let itemId = li . data ( "itemId" ) ;
let item = this . actor . getOwnedItem ( itemId ) ;
let item = this . actor . items . get ( itemId ) ;
if ( ! item ) {
console . log ( "IMPORT ERROR" )
console . log ( "IMPORT ERROR 10 " )
}
let count = item . data . data . quantity . value - 1 > 0 ? item . data . data . quantity . value - 1 : 0 ;
@ -979,25 +993,27 @@ export class ActorSheetKH extends ActorSheet {
}
async _onChangeSkillValue ( event ) {
console . log ( "_decreaseQuantity" )
event . preventDefault ( ) ;
const itemId = $ ( event . currentTarget ) . data ( "item-id" ) ;
let _item = this . actor . items . find ( ( element ) => element . _ id == itemId ) ;
let _item = this . actor . items . find ( ( element ) => element . id == itemId ) ;
if ( _item ) {
let update = {
_id : _item . _ id,
_id : _item . id ,
data : { value : $ ( event . currentTarget ) . val ( ) } ,
} ;
await this . actor . updateEmbeddedEntity ( "Owned Item" , update ) ;
await this . actor . updateEmbeddedDocuments ( "Item" , [ update ] ) ;
}
}
async _onClickSkill ( event ) {
console . log ( "_onClickSkill" )
event . preventDefault ( ) ;
const itemId = $ ( event . currentTarget ) . data ( "item-id" ) ;
let _item = this . actor . items . find ( ( element ) => element . _ id == itemId ) ;
let _item = this . actor . items . find ( ( element ) => element . id == itemId ) ;
if ( _item ) {
let newVal = true ;
@ -1007,10 +1023,10 @@ export class ActorSheetKH extends ActorSheet {
}
let update = {
_id : _item . _ id,
_id : _item . id ,
data : { used : newVal } ,
} ;
await this . actor . updateEmbeddedEntity ( "Owned Item" , update ) ;
await this . actor . updateEmbeddedDocuments ( "Item" , [ update ] ) ;
}
}
@ -1026,14 +1042,15 @@ export class ActorSheetKH extends ActorSheet {
* @ private
* /
async _itemDetailsToChat ( itemId ) {
let item = this . actor . getOwnedItem ( itemId ) ;
console . log ( "_itemDetailsToChat" )
let item = this . actor . items . get ( itemId ) ;
if ( ! item ) {
item = game . items . get ( itemId ) ;
}
if ( ! item ) {
console . log ( "IMPORT ERROR" )
console . log ( "IMPORT ERROR 11 " )
return
}
@ -1041,11 +1058,11 @@ export class ActorSheetKH extends ActorSheet {
const html = await renderTemplate ( "systems/kopparhavet/templates/chat/item-card.html" , itemDetails ) ;
const messageData = {
user : game . user . _ id,
user : game . user . id ,
type : CONST . CHAT_MESSAGE_TYPES . OTHER ,
content : html ,
speaker : {
actor : this . actor . _ id,
actor : this . actor . id ,
token : this . actor . token ,
alias : this . actor . name ,
} ,