'Blood', 'MANA' => 'Mana', 'ENERGY' => 'Energy', 'NONE' => 'None', 'HEALTH' => 'Health', 'RAGE' => 'Rage', 'COURAGE' => 'Courage', 'SHIELD' => 'Shield', 'FURY' => 'Fury', 'FEROCITY' => 'Ferocity', 'HEAT' => 'Heat', 'GRIT' => 'Grit', 'BLOODTHIRST' => 'Bloodthirst', 'FLOW' => 'Flow', 'SOUL_UNBOUND' => 'Soul Unbound', 'CRIMSON_RUSH' => 'Crimson Rush', ]; return $resourceTypes[$value]; } public function getAdaptiveTypeAttribute($value): string { $adaptiveTypes = [ 'ADAPTIVE_DAMAGE' => 'Adaptive', 'MAGIC_DAMAGE' => 'Magical', 'PHYSICAL_DAMAGE' => 'Physical', ]; return $adaptiveTypes[$value]; } public function sluggable(): array { return [ 'slug' => [ 'source' => 'name', ], ]; } public function getRouteKeyName(): string { return 'slug'; } public function skins(): HasMany { return $this->hasMany(ChampionSkin::class, 'champion_id', 'champion_id'); } public function lanes(): HasOne { return $this->hasOne(ChampionRoles::class, 'champion_id', 'champion_id'); } public function streamers() { return $this->hasMany(Streamer::class, 'champion_id', 'champion_id'); } public function getChampionImageAttribute(bool $uncentered = false): string { return getChampionImage($this->champion_id.'000', $uncentered ? 'uncentered_splash' : 'splash'); } public function getChampionImageTileAttribute(): string { return getChampionImage($this->champion_id.'000', 'tile'); } public function getChampionSquareImageAttribute(): string { return 'https://raw.communitydragon.org/pbe/plugins/rcp-be-lol-game-data/global/default/v1/champion-icons/'.$this->champion_id.'.png'; } // TODO: Implement Ability Icons in the DB and get them from there. public function getChampionAbilityIconQAttribute(): string { return 'https://cdn.communitydragon.org/latest/champion/'.$this->champion_id.'/ability-icon/q'; } public function getChampionAbilityIconWAttribute(): string { return 'https://cdn.communitydragon.org/latest/champion/'.$this->champion_id.'/ability-icon/w'; } public function getChampionAbilityIconEAttribute(): string { return 'https://cdn.communitydragon.org/latest/champion/'.$this->champion_id.'/ability-icon/e'; } public function getChampionAbilityIconRAttribute(): string { return 'https://cdn.communitydragon.org/latest/champion/'.$this->champion_id.'/ability-icon/r'; } public function getChampionAbilityIconPAttribute(): string { return 'https://cdn.communitydragon.org/latest/champion/'.$this->champion_id.'/ability-icon/p'; } protected function casts(): array { return [ 'roles' => 'array', ]; } }