Part of the static PlayerCatalog. Builds four hardcoded historical player cards (Ibrahimović, Pirlo, Maldini, Buffon) and returns them by catalog id, with a separate map for the red-edition identities.
using System;
using System.Collections.Generic;
namespace Socer;
public static partial class PlayerCatalog
{
// Source identities for historical red editions. They are not ordinary
// pack/rival entries: the first wave has authored red artwork only.
static Dictionary<string,PlayerCard> historicalIdentities;
static PlayerCard FindHistorical(string id)
{
if(id is not ("PRO-54" or "PRO-55" or "PRO-56" or "PRO-57"))return null;
historicalIdentities??=BuildHistoricalIdentities();
return historicalIdentities[id];
}
static Dictionary<string,PlayerCard> BuildHistoricalIdentities()
{
var result=new Dictionary<string,PlayerCard>(StringComparer.Ordinal);
Add("PRO-54","Zlatan Ibrahimović","Sweden","SE","🇸🇪","НП","ST",84,92,82,90,36,93,83,12,88,94,195,4,5,1,0,5,0);
Add("PRO-55","Andrea Pirlo","Italy","IT","🇮🇹","ЦП","CM",70,82,94,88,66,69,85,12,64,95,177,4,4,1,0,1,0);
Add("PRO-56","Paolo Maldini","Italy","IT","🇮🇹","ЦЗ","CB",86,58,77,75,95,88,90,12,80,94,186,4,3,1,0,1,2);
Add("PRO-57","Gianluigi Buffon","Italy","IT","🇮🇹","ВР","GK",58,14,78,29,19,81,75,94,62,94,192,3,1,1,0,2,2);
return result;
void Add(string id,string name,string country,string code,string flag,string role,string preferred,
int pace,int shooting,int passing,int dribbling,int defence,int physical,int endurance,int keeping,int aggression,int composure,
int height,int weakFoot,int skillMoves,int skin,int hair,int style,int beard)
{
var card=new PlayerCard{CatalogId=id,Name=name,Country=country,CountryCode=code,Flag=flag,Position=role,PreferredPosition=preferred,
Pace=pace,Shooting=shooting,Passing=passing,Dribbling=dribbling,Defence=defence,Physical=physical,Endurance=endurance,
Keeping=keeping,Aggression=aggression,Composure=composure,HeightCm=height,Age=29,Foot="Right",WeakFoot=weakFoot,SkillMoves=skillMoves,
PortraitSkin=skin,PortraitHair=hair,PortraitStyle=style,PortraitBeard=beard};
CardDevelopment.Initialize(card);card.Details=PlayerCardDetails.Generate(card);result.Add(id,card);
}
}
}