Skip to content

Commit

Permalink
Merge pull request #412 from shadowfoundry/dev
Browse files Browse the repository at this point in the history
v11
  • Loading branch information
karmaroms committed May 29, 2023
2 parents aabda1a + 495a0dc commit 35b59df
Show file tree
Hide file tree
Showing 13 changed files with 220 additions and 153 deletions.
88 changes: 47 additions & 41 deletions lang/en.json
Original file line number Diff line number Diff line change
@@ -1,45 +1,51 @@
{
"ACTOR.TypeActoragent": "Agent",
"ACTOR.TypeActordevice": "Device",
"ACTOR.TypeActordrone": "Drone or Vehicle",
"ACTOR.TypeActorgrunt": "Grunt or Creature",
"ACTOR.TypeActorpc": "Character (PC, NPC, or Free Spirit)",
"ACTOR.TypeActorspirit": "Bound Spirit",
"ACTOR.TypeActorsprite": "Sprite",
"ITEM.TypeItemadeptpower": "Adept Power",
"ITEM.TypeItemammunition": "Ammunition",
"ITEM.TypeItemarmor": "Armor",
"ITEM.TypeItemaugmentation": "Augmentation",
"ITEM.TypeItemcomplexform": "Complex Form",
"ITEM.TypeItemcontact": "Contact",
"ITEM.TypeItemdevice": "Device (Commlink, deck...)",
"ITEM.TypeItemdrug": "Drug",
"ITEM.TypeItemecho": "Echo",
"ITEM.TypeItemeffect": "Effect",
"ITEM.TypeItemfocus": "Focus",
"ITEM.TypeItemgear": "Gear",
"ITEM.TypeItemkarma": "Karma (Reward or Advancement)",
"ITEM.TypeItemknowledge": "Knowledge Skill",
"ITEM.TypeItemlanguage": "Language",
"ITEM.TypeItemlifestyle": "Lifestyle",
"ITEM.TypeItemmark": "Mark",
"ITEM.TypeItemmartialart": "Martial Art",
"ITEM.TypeItemmetamagic": "Metamagic",
"ITEM.TypeItemnuyen": "Nuyen (Gain or Spending)",
"ITEM.TypeItempower": "Power",
"ITEM.TypeItempreparation": "Preparation",
"ITEM.TypeItemprogram": "Program",
"ITEM.TypeItemquality": "Quality",
"ITEM.TypeItemritual": "Ritual",
"ITEM.TypeItemsin": "SIN",
"ITEM.TypeItemspell": "Spell",
"ITEM.TypeItemspirit": "Spirit",
"ITEM.TypeItemsprite": "Sprite",
"ITEM.TypeItemspritepower": "Sprite Power",
"ITEM.TypeItemtradition": "Tradition",
"ITEM.TypeItemvehicle": "Vehicle",
"ITEM.TypeItemvehiclemod": "Vehicle Modification",
"ITEM.TypeItemweapon": "Weapon",
"TYPES": {
"Actor":{
"actorAgent": "Agent",
"actorDevice": "Device",
"actorDrone": "Drone or Vehicle",
"actorGrunt": "Grunt or Creature",
"actorPc": "Character (PC, NPC, or Free Spirit)",
"actorSpirit": "Spirit",
"actorSprite": "Sprite"
},
"Item":{
"itemAdeptPower": "Adept Power",
"itemAmmunition": "Ammunition",
"itemArmor": "Armor",
"itemAugmentation": "Augmentation",
"itemComplexForm": "Complex Form",
"itemContact": "Contact",
"itemDevice": "Device (Commlink, deck...)",
"itemDrug": "Drug",
"itemEcho": "Echo",
"itemEffect": "Effect",
"itemFocus": "Focus",
"itemGear": "Gear",
"itemKarma": "Karma (Reward or Advancement)",
"itemKnowledge": "Knowledge Skill",
"itemLanguage": "Language",
"itemLifestyle": "Lifestyle",
"itemMark": "Mark",
"itemMartialArt": "Martial Art",
"itemMetamagic": "Metamagic",
"itemNuyen": "Nuyen (Gain or Spending)",
"itemPower": "Power",
"itemPreparation": "Preparation",
"itemProgram": "Program",
"itemQuality": "Quality",
"itemRitual": "Ritual",
"itemSin": "SIN",
"itemSpell": "Spell",
"itemSpirit": "Spirit",
"itemSprite": "Sprite",
"itemSpritePower": "Sprite Power",
"itemTradition": "Tradition",
"itemVehicle": "Vehicle",
"itemVehicleMod": "Vehicle Modification",
"itemWeapon": "Weapon"
}
},
"SOURCE.AssassinPrimer": "Assassin's Primer",
"SOURCE.BetterThanBad": "Better Than Bad",
"SOURCE.BulletsAndBandages": "Bullets & Bandages",
Expand Down
88 changes: 47 additions & 41 deletions lang/fr.json
Original file line number Diff line number Diff line change
@@ -1,45 +1,51 @@
{
"ACTOR.TypeActoragent": "Agent",
"ACTOR.TypeActordevice": "Appareil",
"ACTOR.TypeActordrone": "Drone ou véhicule",
"ACTOR.TypeActorgrunt": "Brute ou créature",
"ACTOR.TypeActorpc": "Personnage",
"ACTOR.TypeActorspirit": "Esprit",
"ACTOR.TypeActorsprite": "Sprite",
"ITEM.TypeItemadeptpower": "Pouvoir d'adepte",
"ITEM.TypeItemammunition": "Munition",
"ITEM.TypeItemarmor": "Armure",
"ITEM.TypeItemaugmentation": "Augmentation",
"ITEM.TypeItemcomplexform": "Forme Complexe",
"ITEM.TypeItemcontact": "Contact",
"ITEM.TypeItemdevice": "Appareil (Commlink, console de rigger, cyberdeck ou persona incarné)",
"ITEM.TypeItemdrug": "Drogue",
"ITEM.TypeItemecho": "Écho",
"ITEM.TypeItemeffect": "Effet",
"ITEM.TypeItemfocus": "Focus",
"ITEM.TypeItemgear": "Équipement",
"ITEM.TypeItemkarma": "Karma (gain ou dépense)",
"ITEM.TypeItemknowledge": "Compétence de connaissance",
"ITEM.TypeItemlanguage": "Langue",
"ITEM.TypeItemlifestyle": "Style de vie",
"ITEM.TypeItemmark": "Mark",
"ITEM.TypeItemmartialart": "Art martial",
"ITEM.TypeItemmetamagic": "Métamagie",
"ITEM.TypeItemnuyen": "Nuyen (gain ou dépense)",
"ITEM.TypeItempower": "Pouvoir",
"ITEM.TypeItempreparation": "Préparation",
"ITEM.TypeItemprogram": "Programme",
"ITEM.TypeItemquality": "Trait",
"ITEM.TypeItemritual": "Rituel",
"ITEM.TypeItemsin": "SIN",
"ITEM.TypeItemspell": "Sort",
"ITEM.TypeItemspirit": "Esprit",
"ITEM.TypeItemsprite": "Sprite",
"ITEM.TypeItemspritepower": "Pouvoir de Sprite",
"ITEM.TypeItemtradition": "Tradition",
"ITEM.TypeItemvehicle": "Véhicule",
"ITEM.TypeItemvehiclemod": "Modification de véhicule",
"ITEM.TypeItemweapon": "Arme",
"TYPES": {
"Actor":{
"actorAgent": "Agent",
"actorDevice": "Appareil",
"actorDrone": "Drone ou véhicule",
"actorGrunt": "Brute ou créature",
"actorPc": "Personnage",
"actorSpirit": "Esprit",
"actorSprite": "Sprite"
},
"Item":{
"itemAdeptPower": "Pouvoir d'adepte",
"itemAmmunition": "Munition",
"itemArmor": "Armure",
"itemAugmentation": "Augmentation",
"itemComplexForm": "Forme Complexe",
"itemContact": "Contact",
"itemDevice": "Appareil (Commlink, console de rigger, cyberdeck ou persona incarné)",
"itemDrug": "Drogue",
"itemEcho": "Écho",
"itemEffect": "Effet",
"itemFocus": "Focus",
"itemGear": "Équipement",
"itemKarma": "Karma (gain ou dépense)",
"itemKnowledge": "Compétence de connaissance",
"itemLanguage": "Langue",
"itemLifestyle": "Style de vie",
"itemMark": "Mark",
"itemMartialArt": "Art martial",
"itemMetamagic": "Métamagie",
"itemNuyen": "Nuyen (gain ou dépense)",
"itemPower": "Pouvoir",
"itemPreparation": "Préparation",
"itemProgram": "Programme",
"itemQuality": "Trait",
"itemRitual": "Rituel",
"itemSin": "SIN",
"itemSpell": "Sort",
"itemSpirit": "Esprit",
"itemSprite": "Sprite",
"itemSpritePower": "Pouvoir de Sprite",
"itemTradition": "Tradition",
"itemVehicle": "Véhicule",
"itemVehicleMod": "Modification de véhicule",
"itemWeapon": "Arme"
}
},
"SOURCE.AssassinPrimer": "Manuel de l'assassin (VF)",
"SOURCE.BetterThanBad": "Better Than Bad (VO)",
"SOURCE.BulletsAndBandages": "Balles & Pansements (VF)",
Expand Down
90 changes: 45 additions & 45 deletions scripts/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -3220,11 +3220,11 @@ SR5.effectTypes = {
signalJam : "SR5.EffectSignalJam",
signalJammed : "SR5.EffectSignalJammed",
linkLock : "SR5.EffectLinkLockedConnection",
itemComplexForm : "ITEM.TypeItemcomplexform",
itemSpell : "ITEM.TypeItemspell",
itemAdeptPower : "ITEM.TypeItemadeptpower",
itemPreparation : "ITEM.TypeItempreparation",
itemPower : "ITEM.TypeItempower",
itemComplexForm : "TYPES.Item.itemComplexForm",
itemSpell : "TYPES.Item.itemSpell",
itemAdeptPower : "TYPES.Item.itemAdeptPower",
itemPreparation : "TYPES.Item.itemPreparation",
itemPower : "TYPES.Item.itemPower",
derezz : "SR5.Derezz",
toxinEffect : "SR5.Toxin",
toxinEffectDisorientation : "SR5.ToxinEffectDisorientation",
Expand Down Expand Up @@ -3482,53 +3482,53 @@ SR5.barrierTypes = {
//-----------------------------------//

SR5.itemTypes = {
itemAdeptPower : "ITEM.TypeItemadeptpower",
itemArmor : "ITEM.TypeItemarmor",
itemAugmentation : "ITEM.TypeItemaugmentation",
itemAmmunition : "ITEM.TypeItemammunition",
itemComplexForm : "ITEM.TypeItemcomplexform",
itemContact : "ITEM.TypeItemcontact",
itemDevice : "ITEM.TypeItemdevice",
itemEcho : "ITEM.TypeItemecho",
itemEffect : "ITEM.TypeItemeffect",
itemFocus : "ITEM.TypeItemfocus",
itemGear : "ITEM.TypeItemgear",
itemKarma : "ITEM.TypeItemkarma",
itemKnowledge : "ITEM.TypeItemknowledge",
itemLanguage : "ITEM.TypeItemlanguage",
itemLifestyle : "ITEM.TypeItemlifestyle",
itemMark : "ITEM.TypeItemmark",
itemMartialArt : "ITEM.TypeItemmartialart",
itemMetamagic : "ITEM.TypeItemmetamagic",
itemNuyen : "ITEM.TypeItemnuyen",
itemPower : "ITEM.TypeItempower",
itemPreparation : "ITEM.TypeItempreparation",
itemProgram : "ITEM.TypeItemprogram",
itemQuality : "ITEM.TypeItemquality",
itemRitual : "ITEM.TypeItemritual",
itemSin : "ITEM.TypeItemsin",
itemSpell : "ITEM.TypeItemspell",
itemSpirit : "ITEM.TypeItemspirit",
itemSprite : "ITEM.TypeItemsprite",
itemSpritePower : "ITEM.TypeItemspritepower",
itemTradition : "ITEM.TypeItemtradition",
itemVehicle : "ITEM.TypeItemvehicle",
itemVehicleMod : "ITEM.TypeItemvehiclemod",
itemWeapon : "ITEM.TypeItemweapon",
itemAdeptPower : "TYPES.Item.itemAdeptPower",
itemArmor : "TYPES.Item.itemArmor",
itemAugmentation : "TYPES.Item.itemAugmentation",
itemAmmunition : "TYPES.Item.itemAmmunition",
itemComplexForm : "TYPES.Item.itemComplexForm",
itemContact : "TYPES.Item.itemContact",
itemDevice : "TYPES.Item.itemDevice",
itemEcho : "TYPES.Item.itemEcho",
itemEffect : "TYPES.Item.itemEffect",
itemFocus : "TYPES.Item.itemFocus",
itemGear : "TYPES.Item.itemGear",
itemKarma : "TYPES.Item.itemKarma",
itemKnowledge : "TYPES.Item.itemKnowledge",
itemLanguage : "TYPES.Item.itemLanguage",
itemLifestyle : "TYPES.Item.itemLifestyle",
itemMark : "TYPES.Item.itemMark",
itemMartialArt : "TYPES.Item.itemMartialArt",
itemMetamagic : "TYPES.Item.itemMetamagic",
itemNuyen : "TYPES.Item.itemNuyen",
itemPower : "TYPES.Item.itemPower",
itemPreparation : "TYPES.Item.itemPreparation",
itemProgram : "TYPES.Item.itemProgram",
itemQuality : "TYPES.Item.itemQuality",
itemRitual : "TYPES.Item.itemRitual",
itemSin : "TYPES.Item.itemSin",
itemSpell : "TYPES.Item.itemSpell",
itemSpirit : "TYPES.Item.itemSpirit",
itemSprite : "TYPES.Item.itemSprite",
itemSpritePower : "TYPES.Item.itemSpritePower",
itemTradition : "TYPES.Item.itemTradition",
itemVehicle : "TYPES.Item.itemVehicle",
itemVehicleMod : "TYPES.Item.itemVehicleMod",
itemWeapon : "TYPES.Item.itemWeapon",
};

//-----------------------------------//
// ACTOR TYPES //
//-----------------------------------//

SR5.actorTypes = {
actorDevice : "ACTOR.TypeActordevice",
actorDrone : "ACTOR.TypeActordrone",
actorGrunt : "ACTOR.TypeActorgrunt",
actorPc : "ACTOR.TypeActorpc",
actorSpirit : "ACTOR.TypeActorspirit",
actorSprite : "ACTOR.TypeActorsprite",
actorAgent : "ACTOR.TypeActoragent",
actorDevice : "TYPES.Actor.actorDevice",
actorDrone : "TYPES.Actor.actorDrone",
actorGrunt : "TYPES.Actor.actorGrunt",
actorPc : "TYPES.Actor.actorPc",
actorSpirit : "TYPES.Actor.actorSpirit",
actorSprite : "TYPES.Actor.actorSprite",
actorAgent : "TYPES.Actor.actorAgent",
};

//-----------------------------------//
Expand Down
9 changes: 5 additions & 4 deletions scripts/entities/actors/entityActor-helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ export class SR5_ActorHelper {
actorData = actor.system;

for (let e of actor.effects){
if (e.flags.core?.statusId === "prone") return;
if (e.statuses.has("prone")) return;
}

//Currently, if duration is null, prone is comming from Damage
Expand All @@ -172,6 +172,7 @@ export class SR5_ActorHelper {
"system.value": 0,
"system.durationType": duration.type,
"system.duration": duration.duration,
"system.statuses": ["prone"]
}

let statusEffect = await _getSRStatusEffect("prone");
Expand All @@ -185,9 +186,9 @@ export class SR5_ActorHelper {

//Handle death effect
static async createDeadEffect(actorId){
let actor = SR5_EntityHelpers.getRealActorFromID(actorId);
let actor = SR5_EntityHelpers.getRealActorFromID(actorId);
for (let e of actor.effects){
if (e.flags.core?.statusId === "dead") return;
if (e.statuses === "dead") return;
}
let effect = await _getSRStatusEffect("dead");
await actor.createEmbeddedDocuments('ActiveEffect', [effect]);
Expand All @@ -198,7 +199,7 @@ export class SR5_ActorHelper {
static async createKoEffect(actorId){
let actor = SR5_EntityHelpers.getRealActorFromID(actorId);
for (let e of actor.effects){
if (e.flags.core?.statusId === "unconscious") return;
if (e.statuses === "unconscious") return;
}
let effect = await _getSRStatusEffect("unconscious")
await actor.createEmbeddedDocuments('ActiveEffect', [effect]);
Expand Down
2 changes: 1 addition & 1 deletion scripts/entities/actors/entityActor.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export class SR5Actor extends Actor {

// Collect data
const documentName = this.metadata.name;
const hiddenTypes = ["actorAgent"];
const hiddenTypes = ["actorAgent", "base"];
const originalTypes = game.system.documentTypes[documentName];
const types = originalTypes.filter((actorType) => !hiddenTypes.includes(actorType));
const folders = parent ? [] : game.folders.filter(f => (f.type === documentName) && f.displayed);
Expand Down
14 changes: 7 additions & 7 deletions scripts/entities/actors/utilityActor.js
Original file line number Diff line number Diff line change
Expand Up @@ -1626,17 +1626,17 @@ export class SR5_CharacterUtility extends Actor {
case "actorSprite":
SR5_EntityHelpers.updateModifier(initMat, game.i18n.localize('SR5.Level'), "linkedAttribute", actorData.level);
SR5_EntityHelpers.updateModifier(initMat, game.i18n.localize('SR5.DataProcessing'), "linkedAttribute", matrixAttributes.dataProcessing.value);
SR5_EntityHelpers.updateModifier(initMat.dice, game.i18n.localize(SR5.spriteTypes[actorData.type]), `${game.i18n.localize('ACTOR.TypeActorsprite')}`, 4);
SR5_EntityHelpers.updateModifier(initMat.dice, game.i18n.localize(SR5.spriteTypes[actorData.type]), `${game.i18n.localize('TYPES.Actor.actorsprite')}`, 4);
break;
case "actorAgent":
SR5_EntityHelpers.updateModifier(initMat,`${game.i18n.localize('SR5.Rating')}`, "linkedAttribute", actorData.rating);
SR5_EntityHelpers.updateModifier(initMat, `${game.i18n.localize('SR5.DataProcessing')}`, "linkedAttribute", matrixAttributes.dataProcessing.value);
SR5_EntityHelpers.updateModifier(initMat.dice, game.i18n.localize(SR5.spriteTypes[actorData.type]), `${game.i18n.localize('ACTOR.TypeActoragent')}`, 4);
SR5_EntityHelpers.updateModifier(initMat.dice, game.i18n.localize(SR5.spriteTypes[actorData.type]), `${game.i18n.localize('TYPES.Actor.actoragent')}`, 4);
break;
case "actorDevice":
SR5_EntityHelpers.updateModifier(initMat,`${game.i18n.localize('SR5.DeviceRating')}`, "linkedAttribute", actorData.matrix.deviceRating);
SR5_EntityHelpers.updateModifier(initMat,`${game.i18n.localize('SR5.DataProcessing')}`, "linkedAttribute", matrixAttributes.dataProcessing.value);
SR5_EntityHelpers.updateModifier(initMat.dice, `${game.i18n.localize(SR5.deviceTypes[actorData.matrix.deviceType])}`, `${game.i18n.localize('ACTOR.TypeActordevice')}`, 4);
SR5_EntityHelpers.updateModifier(initMat.dice, `${game.i18n.localize(SR5.deviceTypes[actorData.matrix.deviceType])}`, `${game.i18n.localize('TYPES.Actor.actordevice')}`, 4);
break;
default:
SR5_SystemHelpers.srLog(1, `Unknown actor type '${actor.type}' in 'updateInitiativeMatrix()'`);
Expand All @@ -1661,7 +1661,7 @@ export class SR5_CharacterUtility extends Actor {
// Switch Actor To New Initiative
static async switchToInitiative(entity, initiative) {
let actor;
if (entity.token) actor = entity.token.getActor();
if (entity.token) actor = entity.token.actor;
else actor = entity;

let actorData = duplicate(actor.system),
Expand Down Expand Up @@ -3845,9 +3845,9 @@ export class SR5_CharacterUtility extends Actor {
SR5_EntityHelpers.updateModifier(matrixResistances.matrixDamage, item.name, "deviceRating", actorData.matrix.deviceRating);
SR5_EntityHelpers.updateModifier(matrixResistances.matrixDamage, game.i18n.localize('SR5.Firewall'), "matrixAttribute", actorData.matrix.attributes.firewall.value);
} else if (actor.type === "actorSprite"){
SR5_EntityHelpers.updateModifier(matrixResistances.matrixDamage, game.i18n.localize('ACTOR.TypeActorsprite'), "level", matrix.deviceRating);
SR5_EntityHelpers.updateModifier(matrixResistances.matrixDamage, game.i18n.localize('TYPES.Actor.actorsprite'), "level", matrix.deviceRating);
SR5_EntityHelpers.updateModifier(matrixResistances.matrixDamage, game.i18n.localize('SR5.Firewall'), "matrixAttribute", matrixAttributes.firewall.value);
SR5_EntityHelpers.updateModifier(matrixResistances.dataBomb, game.i18n.localize('ACTOR.TypeActorsprite'), "level", matrix.deviceRating);
SR5_EntityHelpers.updateModifier(matrixResistances.dataBomb, game.i18n.localize('TYPES.Actor.actorsprite'), "level", matrix.deviceRating);
SR5_EntityHelpers.updateModifier(matrixResistances.dataBomb, game.i18n.localize('SR5.Firewall'), "matrixAttribute", matrixAttributes.firewall.value);
} else if (actor.type === "actorAgent"){
SR5_EntityHelpers.updateModifier(matrixResistances.matrixDamage, `${game.i18n.localize('SR5.ProgramTypeAgent')}`, "itemRating", actorData.rating);
Expand Down Expand Up @@ -4145,7 +4145,7 @@ export class SR5_CharacterUtility extends Actor {
}
}

static async updateMatrixEffect(actor){
static async updateMatrixEffect(actor){
let status, isStatusEffectOn, statusEffects = [];
isStatusEffectOn = actor.effects.find(e => e.flags.core?.statusId === "matrixInit");
if (!actor.system.isDirectlyConnected) {
Expand Down
Loading

0 comments on commit 35b59df

Please sign in to comment.