public void ResetDataForNewPlayer(Player player)
 {
     foreach (KeyValuePair <ushort, ICreativePower> item in _powersById)
     {
         IPersistentPerPlayerContent persistentPerPlayerContent = item.Value as IPersistentPerPlayerContent;
         if (persistentPerPlayerContent != null)
         {
             persistentPerPlayerContent.Reset();
             persistentPerPlayerContent.ResetDataForNewPlayer(player);
         }
     }
 }
 public void SaveToPlayer(Player player, BinaryWriter writer)
 {
     foreach (KeyValuePair <ushort, ICreativePower> item in _powersById)
     {
         IPersistentPerPlayerContent persistentPerPlayerContent = item.Value as IPersistentPerPlayerContent;
         if (persistentPerPlayerContent != null)
         {
             writer.Write(value: true);
             writer.Write(item.Key);
             persistentPerPlayerContent.Save(player, writer);
         }
     }
     writer.Write(value: false);
 }