diff --git a/app/Models/Champion.php b/app/Models/Champion.php
index 71b0741..9fcc98c 100644
--- a/app/Models/Champion.php
+++ b/app/Models/Champion.php
@@ -5,6 +5,7 @@ namespace App\Models;
use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\Relations\HasMany;
class Champion extends Model
{
@@ -40,52 +41,52 @@ class Champion extends Model
];
}
- public function skins()
+ public function skins(): HasMany
{
return $this->hasMany(ChampionSkin::class);
}
- public function getChampionImageAttribute()
+ public function getChampionImageAttribute(): string
{
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/splash-art';
}
- public function getChampionImageLoadingAttribute()
+ public function getChampionImageLoadingAttribute(): string
{
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/portrait';
}
- public function getChampionImageTileAttribute()
+ public function getChampionImageTileAttribute(): string
{
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/tile';
}
- public function getChampionSquareImageAttribute()
+ public function getChampionSquareImageAttribute(): string
{
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/square';
}
- public function getChampionAbilityIconQAttribute()
+ public function getChampionAbilityIconQAttribute(): string
{
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/ability-icon/q';
}
- public function getChampionAbilityIconWAttribute()
+ public function getChampionAbilityIconWAttribute(): string
{
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/ability-icon/w';
}
- public function getChampionAbilityIconEAttribute()
+ public function getChampionAbilityIconEAttribute(): string
{
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/ability-icon/e';
}
- public function getChampionAbilityIconRAttribute()
+ public function getChampionAbilityIconRAttribute(): string
{
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/ability-icon/r';
}
- public function getChampionAbilityIconPAttribute()
+ public function getChampionAbilityIconPAttribute(): string
{
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/ability-icon/p';
}
diff --git a/app/Models/ChampionRoles.php b/app/Models/ChampionRoles.php
index 7f39b18..cc63dab 100644
--- a/app/Models/ChampionRoles.php
+++ b/app/Models/ChampionRoles.php
@@ -24,7 +24,7 @@ class ChampionRoles extends Model
return $this->belongsTo(Champion::class);
}
- public function getRolesAttribute($value)
+ public function getRolesAttribute($value): array
{
$value = json_decode($value);
diff --git a/app/Models/ChampionSkin.php b/app/Models/ChampionSkin.php
index db334a0..7f324d5 100644
--- a/app/Models/ChampionSkin.php
+++ b/app/Models/ChampionSkin.php
@@ -5,6 +5,8 @@ namespace App\Models;
use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
+use Illuminate\Database\Eloquent\Relations\HasMany;
class ChampionSkin extends Model
{
@@ -47,28 +49,33 @@ class ChampionSkin extends Model
];
}
- public function champion()
+ public function champion(): BelongsTo
{
return $this->belongsTo(Champion::class);
}
- public function chromas()
+ public function chromas(): HasMany
{
return $this->hasMany(SkinChroma::class, 'full_skin_id', 'full_skin_id');
}
- public function getSkinImageAttribute()
+ public function getSkinImageAttribute(bool $pbe = false): string
{
+ if ($pbe) {
+ return 'https://raw.communitydragon.org/pbe/plugins/rcp-be-lol-game-data/global/default/v1/champion-splashes/' . $this->champion_id . '/' . $this->full_skin_id . '.jpg';
+ }
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/splash-art/centered/skin/' . $this->skin_id;
}
- public function getSkinImageLoadingAttribute()
+ public function getSkinImageLoadingAttribute(): string
{
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/portrait/skin/' . $this->skin_id;
}
- public function getSkinImageTileAttribute()
+ public function getSkinImageTileAttribute(): string
{
return 'https://cdn.communitydragon.org/latest/champion/' . $this->champion_id . '/tile/skin/' . $this->skin_id;
}
+
+
}
diff --git a/app/Models/SkinChroma.php b/app/Models/SkinChroma.php
index 25f1290..df24186 100644
--- a/app/Models/SkinChroma.php
+++ b/app/Models/SkinChroma.php
@@ -5,6 +5,7 @@ namespace App\Models;
use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
class SkinChroma extends Model
{
@@ -25,7 +26,6 @@ class SkinChroma extends Model
public function sluggable(): array
{
- // chroma name + skin name
return [
'slug' => [
'source' => ['chroma_name', 'skin_name'],
@@ -33,7 +33,7 @@ class SkinChroma extends Model
];
}
- public function skin()
+ public function skin(): BelongsTo
{
return $this->belongsTo(Skin::class);
}
diff --git a/app/View/Components/home/Upcoming_skins.php b/app/View/Components/home/Upcoming_skins.php
new file mode 100644
index 0000000..7b18b1e
--- /dev/null
+++ b/app/View/Components/home/Upcoming_skins.php
@@ -0,0 +1,18 @@
+
+
+
+ Check out upcoming skins in League of Legends.
+ @if ($skin->rp_price == '99999')
+ Not Available for RP
+ @else
+ {{ $skin->rp_price }} RP
+ @endif
+
+
+ @if ($skin->loot_eligible)
+ Can be obtained from loot
+ @endif
+
+ Upcoming Skins
+
+
+ Data is updated roughly every 12 hours.
+
+
{{ $skin->skin_name }}
+