Skip to content

Commit

Permalink
- 0.4.1
Browse files Browse the repository at this point in the history
- add weapon dps, pdps and edps as filter
- add map tier, item quantity, item rarity and monster pack size as filter (#26)
- add influenced shaper, crusader, hunter, elder, redeemer and warlord as filter (#28)
- add auto-select for: corrupted, item level > 80, gem level, map tier, quality if gem, influenced and sockets (#33)
- add clipboard clear after item copying
- update gem level parser (#34)
- update base-item-types (#23, #25)
  • Loading branch information
Kyusung4698 committed Jan 9, 2020
1 parent 5f7d46e commit ba9da09
Show file tree
Hide file tree
Showing 19 changed files with 2,684 additions and 1,621 deletions.
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
## 0.4.1 (2020-01-09)

* add weapon dps, pdps and edps as filter
* add map tier, item quantity, item rarity and monster pack size as filter (#26)
* add influenced shaper, crusader, hunter, elder, redeemer and warlord as filter (#28)
* add auto-select for: corrupted, item level > 80, gem level, map tier, quality if gem, influenced and sockets (#33)
* add clipboard clear after item copying
* update gem level parser (#34)
* update base-item-types (#23, #25)

## 0.4.0 (2020-01-08)

* add offical poe trade api
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# PoE Overlay 0.4.0
# PoE Overlay 0.4.1

An Overlay for Path of Exile. The ***core aspect*** is to blend in with the game. Built with Electron and Angular.

Expand Down Expand Up @@ -68,8 +68,8 @@ These instructions will set you up to run and enjoy the overlay.

1. Head over to [Releases](https://github.com/Kyusung4698/PoE-Overlay/releases) and download the latest zip
2. Extract zip
3. Run `poe-overlay 0.4.0.exe`
4. Wait until you can see `POE Overlay 0.4.0` in the bottom left corner
3. Run `poe-overlay 0.4.1.exe`
4. Wait until you can see `POE Overlay 0.4.1` in the bottom left corner
5. Hit `f7` and set `Language` and `League` to meet your game settings
6. Start Path of Exile

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"author": {
"name": "Kyusung4698"
},
"version": "0.4.0",
"version": "0.4.1",
"scripts": {
"postinstall": "electron-builder install-app-deps",
"ng:serve": "ng serve",
Expand Down
1 change: 1 addition & 0 deletions src/app/layout/page/overlay/overlay.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ export class OverlayComponent implements OnInit, OnDestroy {
if (!this.userSettingsOpen) {
this.unregisterShortcuts();
this.userSettingsOpen = this.renderer.open('user-settings');

this.userSettingsOpen.subscribe(() => {
this.userSettingsOpen = null;
this.userSettingsService.get().subscribe(settings => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { WindowService } from '@app/service';
import { SnackBarService } from '@shared/module/material/service';
import { ItemSearchEvaluateService, ItemSearchService } from '@shared/module/poe/service';
import { CurrencyService } from '@shared/module/poe/service/currency/currency.service';
import { Item, ItemSearchEvaluateResult, Language } from '@shared/module/poe/type';
import { Item, ItemRarity, ItemSearchEvaluateResult, Language } from '@shared/module/poe/type';
import { BehaviorSubject, forkJoin, Observable, of, Subject } from 'rxjs';
import { debounceTime, flatMap, switchMap, takeUntil } from 'rxjs/operators';

Expand Down Expand Up @@ -54,16 +54,26 @@ export class EvaluateDialogComponent implements OnInit {

private initQueryItem(): void {
const item = this.data.item;
this.queryItem = {
const prop = item.properties;
const queryItem: Item = {
nameId: item.nameId,
typeId: item.typeId,
rarity: item.rarity,
corrupted: item.corrupted,
influences: item.influences || {},
level: (item.level && item.level > 80) ? item.level : undefined,
damage: {},
explicits: (item.explicits || []).map(x => []),
implicits: [],
properties: {},
properties: prop ? {
gemLevel: prop.gemLevel,
mapTier: prop.mapTier,
quality: item.rarity === ItemRarity.Gem ? prop.quality : undefined,
} : {},
requirements: {},
sockets: []
sockets: item.sockets || [],
};
this.queryItem = JSON.parse(JSON.stringify(queryItem));
this.queryItemChange = new Subject<Item>();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export class EvaluateDialogService {
},
backdropClass: 'backdrop-clear',
data,
width: `${width}px`,
width: `${width}px`
}).afterClosed().pipe(
tap(() => {
if (this.dialog.openDialogs.length === 0) {
Expand Down
8 changes: 7 additions & 1 deletion src/app/modules/evaluate/service/evaluate.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,13 @@ export class EvaluateService {
point = this.mouse.getCursorScreenPoint();
this.keyboard.setKeyboardDelay(50);
this.keyboard.keyTap('c', ['control']);
const text = this.clipboard.readText();

const text = this.clipboard.readText() || '';
this.clipboard.writeText('');
if (text.length <= 0) {
return this.snackbar.error('Clipboard text was empty. Make sure the game is focused.');
}

item = this.itemParser.parse(text);
} catch (e) {
return this.snackbar.error('An unexpected error occured while parsing the item.');
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<div class="content">
<span *ngIf="label">{{label}}:&nbsp;</span>
<span *ngIf="amount" class="amount"> {{amount | number : '1.2-2'}}&nbsp; </span>
<span *ngIf="amount !== undefined && amount !== null" class="amount"> {{amount | number : '1.2-2'}}&nbsp; </span>
<span *ngIf="currency">
<img [src]="'https://web.poecdn.com' + currency.image">
</span>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,38 @@
<div class="detail">
<!-- properties -->
<ng-container *ngIf="item.properties">
<ng-container *ngIf="item.damage">
<div *ngIf="item.damage.dps">
<app-item-frame-query [(property)]="queryItem.damage.dps" (propertyChange)="onPropertyChange()"
[value]="item.damage.dps">
<span> {{'DPS'}} </span>
<span class="white">&nbsp;{{item.damage.dps | number : '1.2-2'}}</span>
</app-item-frame-query>
</div>
<div *ngIf="item.damage.pdps">
<app-item-frame-query [(property)]="queryItem.damage.pdps" (propertyChange)="onPropertyChange()"
[value]="item.damage.pdps">
<span> {{'Physical DPS'}} </span>
<span class="white">&nbsp;{{item.damage.pdps | number : '1.2-2'}}</span>
</app-item-frame-query>
</div>
<div *ngIf="item.damage.edps">
<app-item-frame-query [(property)]="queryItem.damage.edps" (propertyChange)="onPropertyChange()"
[value]="item.damage.edps">
<span> {{'Elemental DPS'}} </span>
<span class="white">&nbsp;{{item.damage.edps | number : '1.2-2'}}</span>
</app-item-frame-query>
</div>
</ng-container>
<ng-container *ngFor="let property of properties">
<div *ngIf="item.properties[property] as prop">
<app-item-frame-query [(property)]="queryItem.properties[property]"
(propertyChange)="onPropertyChange()" [value]="prop">
<ng-container [ngSwitch]="property">
<span *ngSwitchCase="'weaponPhysicalDamage'">
{{'ItemDisplayWeaponPhysicalDamage' | clientString:language}}</span>
<span *ngSwitchCase="'weaponElementalDamage'">
{{'ItemDisplayWeaponElementalDamage' | clientString:language}}</span>
<span *ngSwitchCase="'weaponChaosDamage'">
{{'ItemDisplayWeaponChaosDamage' | clientString:language}}</span>
<span *ngSwitchCase="'weaponCriticalStrikeChance'">
{{'ItemDisplayWeaponCriticalStrikeChance' | clientString:language}}</span>
<span *ngSwitchCase="'weaponAttacksPerSecond'">
{{'ItemDisplayWeaponAttacksPerSecond' | clientString:language}}</span>
<span *ngSwitchCase="'weaponRange'">
{{'ItemDisplayWeaponRange' | clientString:language}}</span>
<span *ngSwitchCase="'shieldBlockChance'">
{{'ItemDisplayShieldBlockChance' | clientString:language}}</span>
<span *ngSwitchCase="'armourArmour'">
Expand All @@ -43,13 +58,21 @@
{{'Quality' | clientString:language}}</span>
<span *ngSwitchCase="'gemExperience'">
{{'Experience' | clientString:language}}</span>
<span *ngSwitchCase="'mapTier'">
{{'ItemDisplayMapTier' | clientString:language}}</span>
<span *ngSwitchCase="'mapQuantity'">
{{'ItemDisplayMapQuantityIncrease' | clientString:language}}</span>
<span *ngSwitchCase="'mapRarity'">
{{'ItemDisplayMapRarityIncrease' | clientString:language}}</span>
<span *ngSwitchCase="'mapPacksize'">
{{'ItemDisplayMapPackSizeIncrease' | clientString:language}}</span>
</ng-container>
<span [class]="prop.augmented ? 'purpel' : 'white'">&nbsp;{{prop.value}}</span>
</app-item-frame-query>
</div>
</ng-container>
<div class="separator"
*ngIf="item.level || item.requirements || (item.sockets && item.sockets.length > 0) || item.secondaryDescription || (item.implicits && item.implicits.length > 0) || (item.explicits && item.explicits.length > 0) || item.corrupted !== undefined || item.description || separator">
*ngIf="item.level || item.requirements || (item.sockets && item.sockets.length > 0) || item.secondaryDescription || (item.implicits && item.implicits.length > 0) || (item.explicits && item.explicits.length > 0) || item.corrupted !== undefined || item.description || separator || item.influences">
</div>
</ng-container>

Expand Down Expand Up @@ -97,7 +120,7 @@
</ng-container>
</div>
<div class="separator"
*ngIf="(item.sockets && item.sockets.length > 0) || item.secondaryDescription || (item.implicits && item.implicits.length > 0) || (item.explicits && item.explicits.length > 0) || item.corrupted !== undefined || item.description || separator">
*ngIf="(item.sockets && item.sockets.length > 0) || item.secondaryDescription || (item.implicits && item.implicits.length > 0) || (item.explicits && item.explicits.length > 0) || item.corrupted !== undefined || item.description || separator || item.influences">
</div>
</ng-container>

Expand All @@ -119,7 +142,7 @@
</ng-container>
</div>
<div class="separator"
*ngIf="item.secondaryDescription || (item.implicits && item.implicits.length > 0) || (item.explicits && item.explicits.length > 0) || item.corrupted !== undefined || item.description || separator">
*ngIf="item.secondaryDescription || (item.implicits && item.implicits.length > 0) || (item.explicits && item.explicits.length > 0) || item.corrupted !== undefined || item.description || separator || item.influences">
</div>
</ng-container>

Expand All @@ -128,7 +151,7 @@
{{item.secondaryDescription}}
</div>
<div class="separator"
*ngIf="(item.implicits && item.implicits.length > 0) || (item.explicits && item.explicits.length > 0) || item.corrupted !== undefined || item.description || separator">
*ngIf="(item.implicits && item.implicits.length > 0) || (item.explicits && item.explicits.length > 0) || item.corrupted !== undefined || item.description || separator || item.influences">
</div>
</ng-container>

Expand All @@ -140,7 +163,8 @@
</app-item-frame-query>
</div>
<div class="separator"
*ngIf="(item.explicits && item.explicits.length > 0) || item.corrupted !== undefined || item.description || separator"></div>
*ngIf="(item.explicits && item.explicits.length > 0) || item.corrupted !== undefined || item.description || separator || item.influences">
</div>
</ng-container>

<ng-container *ngIf="item.explicits && item.explicits.length > 0">
Expand All @@ -153,7 +177,9 @@
</span>
</app-item-frame-query>
</div>
<div class="separator" *ngIf="!last || item.corrupted !== undefined || item.description || separator"></div>
<div class="separator"
*ngIf="!last || item.corrupted !== undefined || item.description || separator|| item.influences">
</div>
</ng-container>
</ng-container>

Expand All @@ -162,6 +188,54 @@
[value]="item.corrupted">
<div class="red">{{'ItemPopupCorrupted' | clientString:language}}</div>
</app-item-frame-query>
<div class="separator" *ngIf="item.description || separator || item.influences"></div>
</ng-container>

<ng-container *ngIf="item.influences">
<ng-container *ngIf="item.influences.shaper">
<app-item-frame-query [(property)]="queryItem.influences.shaper" (propertyChange)="onPropertyChange()"
[value]="item.influences.shaper">
<span class="rose"> {{'ItemPopupShaperItem' | clientString:language}}</span>
</app-item-frame-query>
<span
*ngIf="item.influences.crusader || item.influences.hunter || item.influences.elder || item.influences.redeemer || item.influences.warlord">,&nbsp;</span>
</ng-container>
<ng-container *ngIf="item.influences.crusader">
<app-item-frame-query [(property)]="queryItem.influences.crusader" (propertyChange)="onPropertyChange()"
[value]="item.influences.crusader">
<span class="rose"> {{'ItemPopupCrusaderItem' | clientString:language}}</span>
</app-item-frame-query>
<span
*ngIf="item.influences.hunter || item.influences.elder || item.influences.redeemer || item.influences.warlord">,&nbsp;</span>
</ng-container>
<ng-container *ngIf="item.influences.hunter">
<app-item-frame-query [(property)]="queryItem.influences.hunter" (propertyChange)="onPropertyChange()"
[value]="item.influences.hunter">
<span class="rose"> {{'ItemPopupHunterItem' | clientString:language}}</span>
</app-item-frame-query>
<span
*ngIf="item.influences.elder || item.influences.redeemer || item.influences.warlord">,&nbsp;</span>
</ng-container>
<ng-container *ngIf="item.influences.elder">
<app-item-frame-query [(property)]="queryItem.influences.elder" (propertyChange)="onPropertyChange()"
[value]="item.influences.elder">
<span class="rose"> {{'ItemPopupElderItem' | clientString:language}}</span>
</app-item-frame-query>
<span *ngIf="item.influences.redeemer || item.influences.warlord">,&nbsp;</span>
</ng-container>
<ng-container *ngIf="item.influences.redeemer">
<app-item-frame-query [(property)]="queryItem.influences.redeemer" (propertyChange)="onPropertyChange()"
[value]="item.influences.redeemer">
<span class="rose"> {{'ItemPopupRedeemerItem' | clientString:language}}</span>
</app-item-frame-query>
<span *ngIf="item.influences.warlord">,&nbsp;</span>
</ng-container>
<ng-container *ngIf="item.influences.warlord">
<app-item-frame-query [(property)]="queryItem.influences.warlord" (propertyChange)="onPropertyChange()"
[value]="item.influences.warlord">
<span class="rose"> {{'ItemPopupWarlordItem' | clientString:language}}</span>
</app-item-frame-query>
</ng-container>
<div class="separator" *ngIf="item.description || separator"></div>
</ng-container>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,10 @@
color: #d20000;
}

.rose {
color: #e63244;
}

&.normal {
.header {
background: url(../../../../../../assets/poe/item/header-normal-left.png) top left no-repeat,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,18 @@ export class ItemFrameComponent implements OnInit {
@Input()
public separator = false;

// TODO: check if order is right
public properties = [
'weaponPhysicalDamage',
'weaponElementalDamage',
'weaponChaosDamage',
'weaponCriticalStrikeChance',
'weaponAttacksPerSecond',
'weaponRange',
'shieldBlockChance',
'armourArmour',
'armourEvasionRating',
'armourEnergyShield',
'gemLevel',
'mapTier',
'mapQuantity',
'mapRarity',
'mapPacksize',
'quality',
'gemExperience',
];
Expand Down
4 changes: 2 additions & 2 deletions src/app/shared/module/poe/poe.module.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { CurrencyFrameComponent } from './component/currency-frame/currency-frame.component';
import { ItemFrameQueryComponent } from './component/item-frame-query/item-frame-query.component';
import { ItemFrameComponent } from './component/item-frame/item-frame.component';
import { BaseItemTypePipe } from './pipe/base-item-type.pipe';
import { ClientStringPipe } from './pipe/client-string.pipe';
import { StatsDescriptionPipe } from './pipe/stats-description.pipe';
import { WordPipe } from './pipe/word.pipe';
import { ItemFrameQueryComponent } from './component/item-frame-query/item-frame-query.component';

@NgModule({
declarations: [
Expand All @@ -27,7 +27,7 @@ import { ItemFrameQueryComponent } from './component/item-frame-query/item-frame
ClientStringPipe,
StatsDescriptionPipe,
WordPipe,
BaseItemTypePipe,
BaseItemTypePipe
]
})
export class PoeModule { }
Loading

0 comments on commit ba9da09

Please sign in to comment.