Ho programmato per molti anni e questa è una specie di strana esigenza e non ho mai visto nulla di simile ma ho un gioco in cui ci sono abilità che puoi fare. Esiste una classe di abilità che memorizza dati come Name, DamageType, DamageValue, Cooldown, CurrentCooldown. È una classe molto generica in cui le istanze che faccio definiscono davvero l'abilità.
La cosa è roba come Name, DamageType, DamageValue, & I cooldown sono valori che possono essere definiti una sola volta per l'abilità stessa e non cambiano mai dopo che l'istanza è stata creata. Tuttavia, CurrentCooldown sarebbe proprietario specifico. Se 2 attori usano questa abilità, ognuno di essi avrebbe bisogno della propria istanza di CurrentCooldown ma non della propria istanza degli altri campi. Sì, potrei fare solo 2 istanze di questa Abilità, ma non c'è un reale bisogno di ciò poiché quegli altri campi non cambieranno.
Idealmente vorrei fare una lista di abilità e solo rendere ogni abilità 1 volta, e quindi dire a ciascun attore quale abilità hanno. Tutti i dettagli per quell'abilità sono lì e saranno uguali e condivisi, ma il CurrentCooldown deve essere istanziato per attore.
Sarebbe bello poter rendere alcuni campi "proprietari" specifici. Credo che una soluzione sarebbe quella di creare un dizionario in cui il nome dell'abilità che l'attore ha è la chiave e il valore è il tempo di recupero per quello. Mi chiedo se ci siano altre idee intorno a questo che le persone hanno e io non sono in grado di pensare?