@@ -180,12 +181,12 @@
+ [ngClass]="{'small' : action.small,'text-white' : !textBlack && !right}">
0">
@@ -195,12 +196,12 @@
+ [ngClass]="{'small' : action.small,'text-white' : !textBlack && !right}">
0">
@@ -208,15 +209,15 @@
-
0">
@@ -225,15 +226,15 @@
-
+
0">
@@ -243,12 +244,12 @@
+ [ngClass]="{'small' : action.small,'text-white' : !textBlack && !right}">
0;">
@@ -261,7 +262,7 @@
1 ? +(values[1]) : subActions.length)); let index = index;">
0">,
0">
{{action.value}}:
+ [inline]="inline" [right]="right" [textBlack]="textBlack" [hexSize]="hexSize"
+ [interactiveAbilities]="interactiveAbilities" [interactiveActions]="interactiveActions"
+ (interactiveActionsChange)="onInteractiveActionsChange($event)" [relative]="relative || forceRelative"
+ [statsCalculation]="statsCalculation" [index]="actionIndex" [style]="style">
@@ -479,7 +480,7 @@
*ngFor="let subAction of (statsCalculation && additionalSubActions.length > 0 ? additionalSubActions : subActions) | slice:(hasAOE ? 1 : 0); let index = index;">
0">,
0 ? additionalSubActions : subActions)[0]"
- [monster]="monster" [objective]="objective" [inline]="inline" [right]="right" [hexSize]="hexSize"
- [interactiveAbilities]="interactiveAbilities" [interactiveActions]="interactiveActions"
+ [monster]="monster" [objective]="objective" [inline]="inline" [right]="right" [textBlack]="textBlack"
+ [hexSize]="hexSize" [interactiveAbilities]="interactiveAbilities" [interactiveActions]="interactiveActions"
(interactiveActionsChange)="onInteractiveActionsChange($event)" [relative]="relative || forceRelative"
[statsCalculation]="statsCalculation" [monsterType]="monsterType" [style]="style">
@@ -504,10 +505,11 @@
+ [textBlack]="textBlack" [hexSize]="hexSize" [interactiveAbilities]="interactiveAbilities"
+ [interactiveActions]="interactiveActions" (interactiveActionsChange)="onInteractiveActionsChange($event)"
+ [relative]="relative || forceRelative" [statsCalculation]="statsCalculation"
+ [index]="(actionIndex ? actionIndex + '-' : '') + getOrigIndex(subAction)" [monsterType]="monsterType"
+ [style]="style">
diff --git a/src/app/ui/figures/actions/action.scss b/src/app/ui/figures/actions/action.scss
index 7247fd0a9..e39b0939c 100644
--- a/src/app/ui/figures/actions/action.scss
+++ b/src/app/ui/figures/actions/action.scss
@@ -889,8 +889,6 @@
}
&.right {
- color: var(--ghs-color-black);
- filter: none;
justify-content: flex-end;
text-align: right;
@@ -927,11 +925,38 @@
align-items: flex-end;
align-self: flex-end;
}
+ }
+ }
- .ghs-svg {
- filter: none;
- }
+ &.text-black {
+ color: var(--ghs-color-black);
+ filter: none !important;
+
+ .ghs-svg,
+ .placeholder-action .icon {
+ filter: none !important;
+ }
+
+ .action-default,
+ .action-custom,
+ .action-grant,
+ .action-trigger,
+ .action-specialTarget,
+ .action-condition {
+ filter: none !important;
}
+
+ .type,
+ .value,
+ .condition-value,
+ .custom-value,
+ .grant-value,
+ .special-target-value,
+ .monster-type,
+ .summon-value {
+ filter: none !important;
+ }
+
}
.subactions,
@@ -1095,6 +1120,20 @@
}
}
+ &.text-black {
+ .subactions,
+ .condition-subactions,
+ .monster-type-subactions,
+ .subaction-custom .custom-subactions,
+ .subaction-grant .grant-subactions,
+ .subaction-specialTarget .special-target-subactions {
+
+ &::before {
+ opacity: 0.5;
+ }
+ }
+ }
+
.action-concatenation {
.action-concatenation-item {
margin: 0;
diff --git a/src/app/ui/figures/actions/action.ts b/src/app/ui/figures/actions/action.ts
index 74c9541d7..d5152c946 100644
--- a/src/app/ui/figures/actions/action.ts
+++ b/src/app/ui/figures/actions/action.ts
@@ -27,6 +27,7 @@ export class ActionComponent implements OnInit, OnDestroy {
@Input('action') origAction!: Action | undefined;
@Input() relative: boolean = false;
@Input() inline: boolean = false;
+ @Input() textBlack: boolean = false;
@Input() right: boolean = false;
@Input() highlight: boolean = false;
@Input() interactiveAbilities: boolean = false;
diff --git a/src/app/ui/figures/actions/actions.html b/src/app/ui/figures/actions/actions.html
index eb512ae80..745a6261c 100644
--- a/src/app/ui/figures/actions/actions.html
+++ b/src/app/ui/figures/actions/actions.html
@@ -2,8 +2,10 @@
0 && !divider[index]}">
diff --git a/src/app/ui/figures/actions/actions.ts b/src/app/ui/figures/actions/actions.ts
index ba719a1d9..49304d4b4 100644
--- a/src/app/ui/figures/actions/actions.ts
+++ b/src/app/ui/figures/actions/actions.ts
@@ -21,6 +21,7 @@ export class ActionsComponent implements OnInit, OnDestroy {
@Input() actions!: Action[];
@Input() relative: boolean = false;
@Input() inline: boolean = false;
+ @Input() textBlack: boolean = false;
@Input() right: boolean = false;
@Input() statsCalculation: boolean = false;
@Input() interactiveAbilities: boolean = false;
diff --git a/src/app/ui/figures/actions/summon/action-summon.html b/src/app/ui/figures/actions/summon/action-summon.html
index 27e40b793..cb2981fea 100644
--- a/src/app/ui/figures/actions/summon/action-summon.html
+++ b/src/app/ui/figures/actions/summon/action-summon.html
@@ -8,11 +8,11 @@
[ngClass]="{'action-interactive' : isInteractiveApplicableAction(), 'action-interactive-highlight': highlightAction()}">
(
1">
diff --git a/src/app/ui/figures/actions/summon/action-summon.ts b/src/app/ui/figures/actions/summon/action-summon.ts
index 78feb3c0b..652d6c85c 100644
--- a/src/app/ui/figures/actions/summon/action-summon.ts
+++ b/src/app/ui/figures/actions/summon/action-summon.ts
@@ -25,6 +25,7 @@ export class ActionSummonComponent implements OnChanges, OnDestroy {
@Input() monsterType: MonsterType | undefined;
@Input() objective: ObjectiveContainer | undefined;
@Input() action!: Action;
+ @Input() textBlack: boolean = false;
@Input() right: boolean = false;
@Input('spawn') isSpawn: boolean = false;
@Input() additional: boolean = false;
diff --git a/src/app/ui/figures/character/character.ts b/src/app/ui/figures/character/character.ts
index a66d36a47..c42069e00 100644
--- a/src/app/ui/figures/character/character.ts
+++ b/src/app/ui/figures/character/character.ts
@@ -288,12 +288,12 @@ export class CharacterComponent implements OnInit, OnDestroy {
dragTokenEnd(value: number) {
if (this.token != 0) {
if (this.character.primaryToken < 0) {
- gameManager.stateManager.before("setCharacterToken", gameManager.characterManager.characterName(this.character), '' + (this.character.token + this.token));
+ gameManager.stateManager.before("setCharacterToken", gameManager.characterManager.characterName(this.character), (this.character.token + this.token));
this.character.token += this.token;
this.token = 0;
gameManager.stateManager.after();
} else {
- gameManager.stateManager.before("setCharacterTokenValue", gameManager.characterManager.characterName(this.character), '%data.characterToken.' + this.character.name + '.' + this.character.tokens[this.character.primaryToken] + '%', '' + (this.character.token + this.token));
+ gameManager.stateManager.before("setCharacterTokenValue", gameManager.characterManager.characterName(this.character), '%data.characterToken.' + this.character.name + '.' + this.character.tokens[this.character.primaryToken] + '%', (this.character.token + this.token));
this.character.tokenValues[this.character.primaryToken] += this.token;
if (this.character.tags.find((tag) => tag === 'time_tokens') && this.character.primaryToken == 0 && this.character.tokenValues[0] > 5) {
diff --git a/src/app/ui/figures/character/dialogs/summondialog.html b/src/app/ui/figures/character/dialogs/summondialog.html
index 8c08b0e4f..f6f7d11bb 100644
--- a/src/app/ui/figures/character/dialogs/summondialog.html
+++ b/src/app/ui/figures/character/dialogs/summondialog.html
@@ -35,7 +35,7 @@
diff --git a/src/app/ui/figures/character/dialogs/summondialog.ts b/src/app/ui/figures/character/dialogs/summondialog.ts
index 7ece0d6af..06732a8b8 100644
--- a/src/app/ui/figures/character/dialogs/summondialog.ts
+++ b/src/app/ui/figures/character/dialogs/summondialog.ts
@@ -97,7 +97,7 @@ export class CharacterSummonDialog {
}
addCustomSummon() {
- gameManager.stateManager.before("addCustomSummon", gameManager.characterManager.characterName(this.character), '' + this.summonNumber, this.summonColor);
+ gameManager.stateManager.before("addCustomSummon", gameManager.characterManager.characterName(this.character), this.summonNumber, this.summonColor);
let summon: Summon = new Summon(uuidv4(), this.summonName, "", this.character.level, this.summonNumber, this.summonColor);
summon.state = SummonState.new;
gameManager.characterManager.addSummon(this.character, summon);
diff --git a/src/app/ui/figures/character/event-effects/event-effects.ts b/src/app/ui/figures/character/event-effects/event-effects.ts
index 227a7daf1..acfff5c97 100644
--- a/src/app/ui/figures/character/event-effects/event-effects.ts
+++ b/src/app/ui/figures/character/event-effects/event-effects.ts
@@ -297,7 +297,7 @@ export class EventEffectsDialog implements OnInit, OnDestroy {
next: (result: unknown) => {
if (result) {
const itemData = result as ItemData;
- gameManager.stateManager.before("eventEffect.drawRandomItem" + (blueprint ? 'Blueprint' : ''), '' + itemData.id, itemData.edition, itemData.name);
+ gameManager.stateManager.before("eventEffect.drawRandomItem" + (blueprint ? 'Blueprint' : ''), itemData.id, itemData.edition, itemData.name);
gameManager.game.party.unlockedItems.push(new CountIdentifier('' + itemData.id, itemData.edition));
gameManager.stateManager.after();
}
@@ -320,7 +320,7 @@ export class EventEffectsDialog implements OnInit, OnDestroy {
const scenarioData = result as ScenarioData;
if (section) {
const unlocks = scenarioData.unlocks ? scenarioData.unlocks.map((unlock) => '%data.scenarioNumber:' + unlock + '%').join(', ') : '';
- gameManager.stateManager.before("eventEffect.drawRandomScenarioSection", '' + scenarioData.index, scenarioData.edition, scenarioData.name, unlocks);
+ gameManager.stateManager.before("eventEffect.drawRandomScenarioSection", scenarioData.index, scenarioData.edition, scenarioData.name, unlocks);
gameManager.game.party.conclusions.push(new GameScenarioModel('' + scenarioData.index, scenarioData.edition, scenarioData.group));
if (scenarioData.unlocks) {
scenarioData.unlocks.forEach((unlock) => {
@@ -329,7 +329,7 @@ export class EventEffectsDialog implements OnInit, OnDestroy {
}
gameManager.stateManager.after();
} else {
- gameManager.stateManager.before("eventEffect.drawRandomScenario", '' + scenarioData.index, scenarioData.edition, scenarioData.name);
+ gameManager.stateManager.before("eventEffect.drawRandomScenario", scenarioData.index, scenarioData.edition, scenarioData.name);
gameManager.game.party.manualScenarios.push(new GameScenarioModel(scenarioData.index, scenarioData.edition, scenarioData.group));
gameManager.stateManager.after();
}
diff --git a/src/app/ui/figures/character/sheet/character-sheet.html b/src/app/ui/figures/character/sheet/character-sheet.html
index bc30b52a1..a6e0fbc02 100644
--- a/src/app/ui/figures/character/sheet/character-sheet.html
+++ b/src/app/ui/figures/character/sheet/character-sheet.html
@@ -70,7 +70,7 @@
+ [ghs-label-args]="[character.progress.donations]">
:
diff --git a/src/app/ui/figures/character/sheet/character-sheet.ts b/src/app/ui/figures/character/sheet/character-sheet.ts
index 48260e5f6..b4edd040c 100644
--- a/src/app/ui/figures/character/sheet/character-sheet.ts
+++ b/src/app/ui/figures/character/sheet/character-sheet.ts
@@ -314,7 +314,7 @@ export class CharacterSheetComponent implements OnInit, AfterViewInit {
value--;
}
- gameManager.stateManager.before("setPQProgress", gameManager.characterManager.characterName(this.character), '' + (index + 1), '' + value);
+ gameManager.stateManager.before("setPQProgress", gameManager.characterManager.characterName(this.character), (index + 1), value);
this.character.progress.personalQuestProgress[index] = value;
gameManager.stateManager.after();
}
diff --git a/src/app/ui/figures/character/sheet/move-resources.ts b/src/app/ui/figures/character/sheet/move-resources.ts
index 49fb38067..862efa34d 100644
--- a/src/app/ui/figures/character/sheet/move-resources.ts
+++ b/src/app/ui/figures/character/sheet/move-resources.ts
@@ -59,7 +59,7 @@ export class CharacterMoveResourcesDialog implements OnInit {
}
if (value > 0) {
- gameManager.stateManager.before("moveResource", gameManager.characterManager.characterName(this.character), "game.loot." + lootType, value + '');
+ gameManager.stateManager.before("moveResource", gameManager.characterManager.characterName(this.character), "game.loot." + lootType, value);
gameManager.game.party.loot[lootType] = (gameManager.game.party.loot[lootType] || 0) + value;
this.character.progress.loot[lootType] = (this.character.progress.loot[lootType] || 0) - value;
gameManager.stateManager.after();
diff --git a/src/app/ui/figures/character/sheet/retirement-dialog.ts b/src/app/ui/figures/character/sheet/retirement-dialog.ts
index 18bf282d3..0ae02e41f 100644
--- a/src/app/ui/figures/character/sheet/retirement-dialog.ts
+++ b/src/app/ui/figures/character/sheet/retirement-dialog.ts
@@ -1,14 +1,15 @@
-import { DialogRef, DIALOG_DATA, Dialog } from "@angular/cdk/dialog";
+import { Dialog, DIALOG_DATA, DialogRef } from "@angular/cdk/dialog";
import { Component, Inject } from "@angular/core";
import { gameManager, GameManager } from "src/app/game/businesslogic/GameManager";
+import { SettingsManager, settingsManager } from "src/app/game/businesslogic/SettingsManager";
+import { BuildingModel } from "src/app/game/model/Building";
import { Character } from "src/app/game/model/Character";
-import { CharacterMoveResourcesDialog } from "./move-resources";
+import { BuildingData } from "src/app/game/model/data/BuildingData";
+import { PersonalQuest } from "src/app/game/model/data/PersonalQuest";
import { ScenarioData } from "src/app/game/model/data/ScenarioData";
import { ScenarioSummaryComponent } from "src/app/ui/footer/scenario/summary/scenario-summary";
-import { PersonalQuest } from "src/app/game/model/data/PersonalQuest";
-import { SettingsManager, settingsManager } from "src/app/game/businesslogic/SettingsManager";
import { ghsDialogClosingHelper } from "src/app/ui/helper/Static";
-import { BuildingData, BuildingModel } from "src/app/game/model/data/BuildingData";
+import { CharacterMoveResourcesDialog } from "./move-resources";
@Component({
selector: 'ghs-character-retirement-dialog',
diff --git a/src/app/ui/figures/entity-menu/entity-menu-dialog.html b/src/app/ui/figures/entity-menu/entity-menu-dialog.html
index 29f82038b..4fdf232c4 100644
--- a/src/app/ui/figures/entity-menu/entity-menu-dialog.html
+++ b/src/app/ui/figures/entity-menu/entity-menu-dialog.html
@@ -482,6 +482,15 @@
+
+
+
+
+
+
+
+
+
figure instanceof Character && figure.progress.equippedItems.find((item) => item.edition == 'fh' && item.name == '247' && (!item.tags || item.tags.indexOf(ItemFlags.consumed) == -1))) == undefined;
+ }
}
this.dialogRef.closed.subscribe({
@@ -631,9 +640,9 @@ export class EntityMenuDialogComponent {
}
}
- dead() {
- if (this.data.figure instanceof Monster && this.data.entity instanceof MonsterEntity) {
- gameManager.stateManager.before("entityDead", "data.monster." + this.data.figure.name, "monster." + this.data.entity.type, "" + this.data.entity.number);
+ dead(catching: boolean = false, force: boolean = false) {
+ if (this.data.figure instanceof Monster && this.data.entity instanceof MonsterEntity && (!catching || this.catching && (!this.catchingDisabled || force))) {
+ gameManager.stateManager.before(catching ? 'buildings.stables.pets.catch' : "entityDead", "data.monster." + this.data.figure.name, "monster." + this.data.entity.type, "" + this.data.entity.number);
this.data.entity.dead = true;
if (this.data.figure.entities.every((monsterEntity) => monsterEntity.dead)) {
@@ -642,12 +651,25 @@ export class EntityMenuDialogComponent {
}
}
+ if (catching && gameManager.game.party.pets.find((value) => this.data.figure instanceof Monster && value.edition == this.data.figure.edition && value.name == this.data.figure.pet) == undefined) {
+ gameManager.game.party.pets.push(new PetIdentifier(this.data.figure.pet, this.data.figure.edition));
+ const character = gameManager.game.figures.find((figure) => figure instanceof Character && figure.progress.equippedItems.find((item) => item.edition == 'fh' && item.name == '247' && (!item.tags || item.tags.indexOf(ItemFlags.consumed) == -1))) as Character;
+ if (character) {
+ const item = character.progress.equippedItems.find((item) => item.edition == 'fh' && item.name == '247' && (!item.tags || item.tags.indexOf(ItemFlags.consumed) == -1));
+ if (item) {
+ item.tags = item.tags || [];
+ item.tags.push(ItemFlags.consumed);
+ }
+ }
+ }
+
setTimeout(() => {
if (this.data.figure instanceof Monster && this.data.entity instanceof MonsterEntity) {
gameManager.monsterManager.removeMonsterEntity(this.data.figure, this.data.entity);
gameManager.stateManager.after();
}
}, !settingsManager.settings.animations ? 0 : 1500);
+ ghsDialogClosingHelper(this.dialogRef, true)
} else if (this.data.figure instanceof Character && this.data.entity instanceof Summon) {
gameManager.stateManager.before("summonDead", gameManager.characterManager.characterName(this.data.figure), "data.summon." + this.data.entity.name);
this.data.entity.dead = true;
@@ -657,6 +679,7 @@ export class EntityMenuDialogComponent {
gameManager.stateManager.after();
}
}, !settingsManager.settings.animations ? 0 : 1500);
+ ghsDialogClosingHelper(this.dialogRef, true)
} else if (this.data.figure instanceof ObjectiveContainer && this.data.entity instanceof ObjectiveEntity) {
let name = this.data.figure.name;
if (!name) {
@@ -680,8 +703,8 @@ export class EntityMenuDialogComponent {
gameManager.stateManager.after();
}
}, !settingsManager.settings.animations || !this.data.figure.entities.some((entity) => gameManager.entityManager.isAlive(entity)) ? 0 : 1500);
+ ghsDialogClosingHelper(this.dialogRef, true)
}
- ghsDialogClosingHelper(this.dialogRef, true)
}
changeAttack(value: number) {
@@ -931,7 +954,7 @@ export class EntityMenuDialogComponent {
if (token < 0) {
token = 0;
}
- gameManager.stateManager.before("setCharacterToken", gameManager.characterManager.characterName(this.data.entity), '' + token);
+ gameManager.stateManager.before("setCharacterToken", gameManager.characterManager.characterName(this.data.entity), token);
this.data.entity.token = token;
this.characterToken = 0;
gameManager.stateManager.after();
@@ -943,7 +966,7 @@ export class EntityMenuDialogComponent {
if (tokenValue < 0) {
tokenValue = 0;
}
- gameManager.stateManager.before("setCharacterTokenValue", gameManager.characterManager.characterName(this.data.entity), '%data.characterToken.' + this.data.figure.name + '.' + this.data.entity.tokens[index] + '%', '' + tokenValue);
+ gameManager.stateManager.before("setCharacterTokenValue", gameManager.characterManager.characterName(this.data.entity), '%data.characterToken.' + this.data.figure.name + '.' + this.data.entity.tokens[index] + '%', tokenValue);
this.data.entity.tokenValues[index] = tokenValue;
this.characterTokenValues[index] = 0;
gameManager.stateManager.after();
@@ -1227,7 +1250,7 @@ export class EntityMenuDialogComponent {
}
if (this.health != 0) {
- gameManager.stateManager.before("changeObjectiveEntityHP", this.data.figure.title || this.data.figure.name || this.data.figure.escort ? 'escort' : 'objective', '' + this.data.entity.number, ghsValueSign(this.health));
+ gameManager.stateManager.before("changeObjectiveEntityHP", this.data.figure.title || this.data.figure.name || this.data.figure.escort ? 'escort' : 'objective', this.data.entity.number, ghsValueSign(this.health));
gameManager.entityManager.changeHealth(this.data.entity, this.data.figure, this.health);
if (this.data.entity.health <= 0) {
gameManager.objectiveManager.removeObjectiveEntity(this.data.figure, this.data.entity);
@@ -1238,7 +1261,7 @@ export class EntityMenuDialogComponent {
const newId = this.data.entity.number + this.id;
if (newId != this.data.entity.number) {
- gameManager.stateManager.before("changeObjectiveEntityNumber", this.data.figure.title || this.data.figure.name || this.data.figure.escort ? 'escort' : 'objective', '' + this.data.entity.number, "" + newId);
+ gameManager.stateManager.before("changeObjectiveEntityNumber", this.data.figure.title || this.data.figure.name || this.data.figure.escort ? 'escort' : 'objective', this.data.entity.number, "" + newId);
this.data.entity.number = newId;
gameManager.stateManager.after();
}
@@ -1251,7 +1274,7 @@ export class EntityMenuDialogComponent {
const newMarker = OBJECTIV_MARKERS[ghsModulo(this.marker + OBJECTIV_MARKERS.indexOf(this.data.entity.marker), OBJECTIV_MARKERS.length)];
if (newMarker != this.data.entity.marker) {
- gameManager.stateManager.before("changeObjectiveEntityMarker", this.data.figure.title || this.data.figure.name || this.data.figure.escort ? 'escort' : 'objective', '' + this.data.entity.number, newMarker);
+ gameManager.stateManager.before("changeObjectiveEntityMarker", this.data.figure.title || this.data.figure.name || this.data.figure.escort ? 'escort' : 'objective', this.data.entity.number, newMarker);
this.data.entity.marker = newMarker;
gameManager.stateManager.after();
}
@@ -1307,7 +1330,7 @@ export class EntityMenuDialogComponent {
if (settingsManager.settings.characterShieldRetaliate && (this.data.entity instanceof Character || this.data.entity instanceof ObjectiveEntity) || settingsManager.settings.standeeShieldRetaliate && (this.data.entity instanceof Summon || this.data.entity instanceof MonsterEntity)) {
if (this.entityShield.value) {
if (!this.data.entity.shield || this.entityShield.value != this.data.entity.shield.value) {
- gameManager.stateManager.before(...gameManager.entityManager.undoInfos(this.data.entity, this.data.figure, "setEntityShield"), '' + this.entityShield.value);
+ gameManager.stateManager.before(...gameManager.entityManager.undoInfos(this.data.entity, this.data.figure, "setEntityShield"), this.entityShield.value);
this.data.entity.shield = this.entityShield;
gameManager.stateManager.after();
}
@@ -1320,7 +1343,7 @@ export class EntityMenuDialogComponent {
if (this.entityShieldPersistent.value) {
if (!this.data.entity.shieldPersistent || this.entityShieldPersistent.value != this.data.entity.shieldPersistent.value) {
- gameManager.stateManager.before(...gameManager.entityManager.undoInfos(this.data.entity, this.data.figure, "setEntityShieldPersistent"), '' + this.entityShield.value);
+ gameManager.stateManager.before(...gameManager.entityManager.undoInfos(this.data.entity, this.data.figure, "setEntityShieldPersistent"), this.entityShield.value);
this.data.entity.shieldPersistent = this.entityShieldPersistent;
gameManager.stateManager.after();
}
@@ -1373,14 +1396,14 @@ export class EntityMenuDialogComponent {
closeAMs() {
if (this.bless != 0) {
- gameManager.stateManager.before(...gameManager.entityManager.undoInfos(this.data.entity, this.data.figure, this.bless < 0 ? "removeCondition" + (this.bless < -1 ? 's' : '') : "addCondition" + (this.bless > 1 ? 's' : '')), AttackModifierType.bless, '' + (this.bless > 0 ? this.bless : this.bless * -1));
+ gameManager.stateManager.before(...gameManager.entityManager.undoInfos(this.data.entity, this.data.figure, this.bless < 0 ? "removeCondition" + (this.bless < -1 ? 's' : '') : "addCondition" + (this.bless > 1 ? 's' : '')), AttackModifierType.bless, (this.bless > 0 ? this.bless : this.bless * -1));
this.changeAttackModifier(AttackModifierType.bless, this.bless);
gameManager.stateManager.after();
this.bless = 0;
}
if (this.curse != 0) {
- gameManager.stateManager.before(...gameManager.entityManager.undoInfos(this.data.entity, this.data.figure, this.curse < 0 ? "removeCondition" + (this.curse < -1 ? 's' : '') : "addCondition" + (this.curse > 1 ? 's' : '')), AttackModifierType.curse, '' + (this.curse > 0 ? this.curse : this.curse * -1));
+ gameManager.stateManager.before(...gameManager.entityManager.undoInfos(this.data.entity, this.data.figure, this.curse < 0 ? "removeCondition" + (this.curse < -1 ? 's' : '') : "addCondition" + (this.curse > 1 ? 's' : '')), AttackModifierType.curse, (this.curse > 0 ? this.curse : this.curse * -1));
this.changeAttackModifier(AttackModifierType.curse, this.curse);
gameManager.stateManager.after();
this.curse = 0;
@@ -1388,7 +1411,7 @@ export class EntityMenuDialogComponent {
if (this.empower != 0) {
if (this.empowerChar || this.empower < 0) {
- gameManager.stateManager.before(...gameManager.entityManager.undoInfos(this.data.entity, this.data.figure, this.empower < 0 ? "removeCondition" + (this.empower < -1 ? 's' : '') : "addCondition" + (this.empower > 1 ? 's' : '')), AttackModifierType.empower, '' + (this.empower > 0 ? this.empower : this.empower * -1));
+ gameManager.stateManager.before(...gameManager.entityManager.undoInfos(this.data.entity, this.data.figure, this.empower < 0 ? "removeCondition" + (this.empower < -1 ? 's' : '') : "addCondition" + (this.empower > 1 ? 's' : '')), AttackModifierType.empower, (this.empower > 0 ? this.empower : this.empower * -1));
if (this.empowerChar && this.empower > 0) {
const additional = gameManager.attackModifierManager.getAdditional(this.empowerChar, AttackModifierType.empower);
for (let i = 0; i < Math.min(this.empower, additional.length); i++) {
@@ -1409,7 +1432,7 @@ export class EntityMenuDialogComponent {
if (this.enfeeble != 0) {
if (this.enfeebleChar || this.enfeeble < 0) {
- gameManager.stateManager.before(...gameManager.entityManager.undoInfos(this.data.entity, this.data.figure, this.enfeeble < 0 ? "removeCondition" + (this.enfeeble < -1 ? 's' : '') : "addCondition" + (this.enfeeble > 1 ? 's' : '')), AttackModifierType.enfeeble, '' + (this.enfeeble > 0 ? this.enfeeble : this.enfeeble * -1));
+ gameManager.stateManager.before(...gameManager.entityManager.undoInfos(this.data.entity, this.data.figure, this.enfeeble < 0 ? "removeCondition" + (this.enfeeble < -1 ? 's' : '') : "addCondition" + (this.enfeeble > 1 ? 's' : '')), AttackModifierType.enfeeble, (this.enfeeble > 0 ? this.enfeeble : this.enfeeble * -1));
if (this.enfeebleChar && this.enfeeble > 0) {
const additional = gameManager.attackModifierManager.getAdditional(this.enfeebleChar, AttackModifierType.enfeeble);
for (let i = 0; i < Math.min(this.enfeeble, additional.length); i++) {
diff --git a/src/app/ui/figures/items/brew/brew.html b/src/app/ui/figures/items/brew/brew.html
index a4f806d13..d246a75ba 100644
--- a/src/app/ui/figures/items/brew/brew.html
+++ b/src/app/ui/figures/items/brew/brew.html
@@ -76,9 +76,9 @@
0 || noChar">=
+ [ghs-label]="'game.items.brewing.item'" [ghs-label-args]="[item.id, item.name]">
0"
- [ghs-label]="'game.items.brewing.item'" [ghs-label-args]="['' + brewed.id, brewed.name]">
+ [ghs-label]="'game.items.brewing.item'" [ghs-label-args]="[brewed.id, brewed.name]">
@@ -87,7 +87,7 @@
+ [ghs-label-args]="[brewed.id, brewed.name, gameManager.characterManager.characterName(character,true) , otherCharacter ? gameManager.characterManager.characterName(otherCharacter,true): '']">
0">
diff --git a/src/app/ui/figures/items/brew/brew.ts b/src/app/ui/figures/items/brew/brew.ts
index 38e60f5b4..3fc4467e4 100644
--- a/src/app/ui/figures/items/brew/brew.ts
+++ b/src/app/ui/figures/items/brew/brew.ts
@@ -141,7 +141,7 @@ export class ItemsBrewDialog implements OnInit, OnDestroy {
brewInternal(character: Character, itemData: ItemData) {
this.otherCharacter = character != this.character ? character : undefined
- gameManager.stateManager.before(!this.otherCharacter ? 'brewPotion' : 'brewPotionOther', this.character.name, '' + itemData.id, itemData.name, character.name);
+ gameManager.stateManager.before(!this.otherCharacter ? 'brewPotion' : 'brewPotionOther', this.character.name, itemData.id, itemData.name, character.name);
this.herbs.forEach((herb) => {
if (this.fhSupportSpent[herb]) {
gameManager.game.party.loot[herb] = (gameManager.game.party.loot[herb] || 0) - (this.fhSupportSpent[herb] || 0);
diff --git a/src/app/ui/figures/items/character/item-character.ts b/src/app/ui/figures/items/character/item-character.ts
index c848b9787..28ff89747 100644
--- a/src/app/ui/figures/items/character/item-character.ts
+++ b/src/app/ui/figures/items/character/item-character.ts
@@ -38,7 +38,7 @@ export class CharacterItemComponent {
toggleEquippedItem(force: boolean = false) {
const owned = this.character.progress.items.find((identifier) => identifier.name == '' + this.item.id && identifier.edition == this.item.edition) != undefined;
if ((this.setup || force) && (owned || !this.bbBlocked() || force)) {
- gameManager.stateManager.before(this.equipped() ? 'unequipItem' : 'equipItem', gameManager.characterManager.characterName(this.character), '' + this.item.id, this.item.edition)
+ gameManager.stateManager.before(this.equipped() ? 'unequipItem' : 'equipItem', gameManager.characterManager.characterName(this.character), this.item.id, this.item.edition)
gameManager.itemManager.toggleEquippedItem(this.item, this.character, force);
if (gameManager.bbRules()) {
if (!this.equipped() && owned) {
@@ -72,7 +72,7 @@ export class CharacterItemComponent {
const equipped = this.equipped();
if (equipped) {
equipped.tags = equipped.tags || [];
- gameManager.stateManager.before((equipped.tags.indexOf(flag) == -1 ? 'characterItemApply.' : 'characterItemUnapply.') + flag, gameManager.characterManager.characterName(this.character), '' + this.item.id, this.item.edition, this.item.name)
+ gameManager.stateManager.before((equipped.tags.indexOf(flag) == -1 ? 'characterItemApply.' : 'characterItemUnapply.') + flag, gameManager.characterManager.characterName(this.character), this.item.id, this.item.edition, this.item.name)
if (equipped.tags.indexOf(flag) == -1) {
if (!force && gameManager.challengesManager.apply && gameManager.challengesManager.isActive(1507, 'fh') && flag == ItemFlags.spent) {
equipped.tags.push(ItemFlags.consumed);
@@ -104,7 +104,7 @@ export class CharacterItemComponent {
if (equipped) {
equipped.tags = equipped.tags || [];
const count = this.countFlag(flag);
- gameManager.stateManager.before((count <= index ? 'characterItemApply.' : 'characterItemUnapply.') + flag, gameManager.characterManager.characterName(this.character), '' + this.item.id, this.item.edition, this.item.name);
+ gameManager.stateManager.before((count <= index ? 'characterItemApply.' : 'characterItemUnapply.') + flag, gameManager.characterManager.characterName(this.character), this.item.id, this.item.edition, this.item.name);
if (count <= index) {
for (let i = count; i <= index; i++) {
equipped.tags.push(flag);
diff --git a/src/app/ui/figures/items/dialog/items-dialog.html b/src/app/ui/figures/items/dialog/items-dialog.html
index 103793ec9..73dccf72a 100644
--- a/src/app/ui/figures/items/dialog/items-dialog.html
+++ b/src/app/ui/figures/items/dialog/items-dialog.html
@@ -110,14 +110,14 @@
[ngClass]="{'disabled' : !selected || !gameManager.itemManager.canBuy(selected, character) && !gameManager.itemManager.canCraft(selected, character)}"
(click)="selected ? (selected.cost ? buyItem(selected): craftItem(selected)) : false"
[ghs-label]="'game.items.' + (selected ? (selected.cost ? 'buy' : 'craft') : 'choose')"
- [ghs-label-args]="selected ? ['%data.items.' + selected.edition + '-' + selected.id + '%', '' + (selected.cost + gameManager.itemManager.pricerModifier())] : []">
+ [ghs-label-args]="selected ? ['%data.items.' + selected.edition + '-' + selected.id + '%',(selected.cost + gameManager.itemManager.pricerModifier())] : []">
+ [ghs-label-args]="['%data.items.' + selected.edition + '-' + selected.id + '%', gameManager.itemManager.itemSellValue(selected)]">
diff --git a/src/app/ui/figures/items/dialog/items-dialog.ts b/src/app/ui/figures/items/dialog/items-dialog.ts
index 4330e8a4d..6b6e703f0 100644
--- a/src/app/ui/figures/items/dialog/items-dialog.ts
+++ b/src/app/ui/figures/items/dialog/items-dialog.ts
@@ -243,7 +243,7 @@ export class ItemsDialogComponent implements OnInit, OnDestroy {
if (this.unlocks.indexOf(item) != -1 && revealed) {
gameManager.game.party.unlockedItems = gameManager.game.party.unlockedItems || [];
if (!this.unlocked(item)) {
- gameManager.stateManager.before("addUnlockedItem", item.edition, '' + item.id, item.name);
+ gameManager.stateManager.before("addUnlockedItem", item.edition, item.id, item.name);
gameManager.game.party.unlockedItems.push(new CountIdentifier('' + item.id, item.edition));
gameManager.stateManager.after();
this.updateEditionItems();
@@ -253,7 +253,7 @@ export class ItemsDialogComponent implements OnInit, OnDestroy {
removeUnlocked(itemData: ItemData) {
if (this.unlocked(itemData)) {
- gameManager.stateManager.before("removeUnlockedItem", itemData.edition, '' + itemData.id, itemData.name);
+ gameManager.stateManager.before("removeUnlockedItem", itemData.edition, itemData.id, itemData.name);
gameManager.game.party.unlockedItems = gameManager.game.party.unlockedItems || [];
gameManager.game.party.unlockedItems = gameManager.game.party.unlockedItems.filter((identifier) => identifier.name != '' + itemData.id || identifier.edition != itemData.edition);
gameManager.stateManager.after();
diff --git a/src/app/ui/figures/items/items.ts b/src/app/ui/figures/items/items.ts
index e262ee158..ecee7f516 100644
--- a/src/app/ui/figures/items/items.ts
+++ b/src/app/ui/figures/items/items.ts
@@ -306,7 +306,7 @@ export class CharacterItemsComponent implements OnInit, OnDestroy {
toggleEquippedItem(itemData: ItemData, force: boolean = false) {
const disabled = gameManager.game.state != GameState.draw || gameManager.game.round > 0;
if ((!disabled || force) && this.character.progress.items.find((identifier) => identifier.name == '' + itemData.id && identifier.edition == itemData.edition) != undefined) {
- gameManager.stateManager.before(gameManager.itemManager.isEquipped(itemData, this.character) ? 'unequipItem' : 'equipItem', gameManager.characterManager.characterName(this.character), '' + itemData.id, itemData.edition)
+ gameManager.stateManager.before(gameManager.itemManager.isEquipped(itemData, this.character) ? 'unequipItem' : 'equipItem', gameManager.characterManager.characterName(this.character), itemData.id, itemData.edition)
gameManager.itemManager.toggleEquippedItem(itemData, this.character, force)
gameManager.stateManager.after();
}
diff --git a/src/app/ui/figures/loot/loot-card.ts b/src/app/ui/figures/loot/loot-card.ts
index a06598a2f..63f2a9445 100644
--- a/src/app/ui/figures/loot/loot-card.ts
+++ b/src/app/ui/figures/loot/loot-card.ts
@@ -142,7 +142,7 @@ export class LootComponent implements OnInit, OnChanges {
if (this.loot.type == LootType.random_item && name) {
randomItemIdentifier = charBefore.progress.equippedItems.find((value) => value.marker == "loot-random-item");
} else {
- gameManager.stateManager.before("removeLootCard", gameManager.characterManager.characterName(charBefore), "game.loot." + this.loot.type, gameManager.lootManager.getValue(this.loot) + '');
+ gameManager.stateManager.before("removeLootCard", gameManager.characterManager.characterName(charBefore), "game.loot." + this.loot.type, gameManager.lootManager.getValue(this.loot));
charBefore.lootCards = charBefore.lootCards.filter((index) => index != this.index);
if (this.loot.type == LootType.money || this.loot.type == LootType.special1 || this.loot.type == LootType.special2) {
charBefore.loot -= gameManager.lootManager.getValue(this.loot);
@@ -163,7 +163,7 @@ export class LootComponent implements OnInit, OnChanges {
const character = gameManager.game.figures.find((figure) => figure instanceof Character && figure.name == name);
if (character instanceof Character) {
if (this.loot.type != LootType.random_item) {
- gameManager.stateManager.before("addLootCard", gameManager.characterManager.characterName(character), "game.loot." + this.loot.type, gameManager.lootManager.getValue(this.loot) + '');
+ gameManager.stateManager.before("addLootCard", gameManager.characterManager.characterName(character), "game.loot." + this.loot.type, gameManager.lootManager.getValue(this.loot));
gameManager.lootManager.applyLoot(this.loot, character, this.index);
gameManager.stateManager.after();
} else {
@@ -179,7 +179,7 @@ export class LootComponent implements OnInit, OnChanges {
next: (result) => {
if (result) {
const item = result as ItemData;
- gameManager.stateManager.before("lootRandomItem", '' + item.id, item.edition, item.name, gameManager.characterManager.characterName(character));
+ gameManager.stateManager.before("lootRandomItem", item.id, item.edition, item.name, gameManager.characterManager.characterName(character));
let itemIdentifier: Identifier = new Identifier('' + item.id, item.edition);
gameManager.itemManager.addItemCount(item);
if (character.lootCards.indexOf(this.index) == -1) {
diff --git a/src/app/ui/figures/loot/loot-deck.ts b/src/app/ui/figures/loot/loot-deck.ts
index c68ba4f3f..91f4df858 100644
--- a/src/app/ui/figures/loot/loot-deck.ts
+++ b/src/app/ui/figures/loot/loot-deck.ts
@@ -184,7 +184,7 @@ export class LootDeckComponent implements OnInit, OnDestroy, OnChanges {
if (name) {
const character = gameManager.game.figures.find((figure) => figure instanceof Character && figure.name == name);
if (character instanceof Character) {
- gameManager.stateManager.before(loot.type == LootType.random_item ? "lootRandomItem" : "addResource", gameManager.characterManager.characterName(character), "game.loot." + loot.type, this.lootManager.getValue(loot) + '');
+ gameManager.stateManager.before(loot.type == LootType.random_item ? "lootRandomItem" : "addResource", gameManager.characterManager.characterName(character), "game.loot." + loot.type, this.lootManager.getValue(loot));
const result = gameManager.lootManager.applyLoot(loot, character, currentIndex);
gameManager.stateManager.after();
if (result) {
@@ -195,7 +195,7 @@ export class LootDeckComponent implements OnInit, OnDestroy, OnChanges {
next: (result) => {
if (result) {
const item = result as ItemData;
- gameManager.stateManager.before("lootRandomItem", '' + item.id, item.edition, item.name, gameManager.characterManager.characterName(character));
+ gameManager.stateManager.before("lootRandomItem", item.id, item.edition, item.name, gameManager.characterManager.characterName(character));
let itemIdentifier: Identifier = new Identifier('' + item.id, item.edition);
gameManager.itemManager.addItemCount(item);
if (character.lootCards.indexOf(currentIndex) == -1) {
@@ -243,7 +243,7 @@ export class LootDeckComponent implements OnInit, OnDestroy, OnChanges {
next: (result) => {
if (result) {
const item = result as ItemData;
- gameManager.stateManager.before("lootRandomItem", '' + item.id, item.edition, item.name, gameManager.characterManager.characterName(activeCharacter));
+ gameManager.stateManager.before("lootRandomItem", item.id, item.edition, item.name, gameManager.characterManager.characterName(activeCharacter));
let itemIdentifier: Identifier = new Identifier('' + item.id, item.edition);
gameManager.itemManager.addItemCount(item);
if (activeCharacter.lootCards.indexOf(this.current) == -1) {
diff --git a/src/app/ui/figures/monster/dialogs/numberpicker-dialog.html b/src/app/ui/figures/monster/dialogs/numberpicker-dialog.html
index efd6bd464..506443eb3 100644
--- a/src/app/ui/figures/monster/dialogs/numberpicker-dialog.html
+++ b/src/app/ui/figures/monster/dialogs/numberpicker-dialog.html
@@ -13,9 +13,9 @@
+ [ghs-label-args]="[entity.type, entity.number]">
0" [ghs-label]="'monster.setStandees'"
- [ghs-label-args]="[type, '' + entitiesLeft()]">
+ [ghs-label-args]="[type, entitiesLeft()]">
diff --git a/src/app/ui/figures/monster/stats/stats.html b/src/app/ui/figures/monster/stats/stats.html
index 7716d12d3..8643434f5 100644
--- a/src/app/ui/figures/monster/stats/stats.html
+++ b/src/app/ui/figures/monster/stats/stats.html
@@ -23,10 +23,12 @@
[]
-
+