ВНИМАНИЕ! Код приведенный здесь не работает, рабочая версия кода находится на несколько постов ниже.
Подвох, если все скрипты исполняются в одном процессе, то обмен данными можно организовать так:
Код:
// требуемые пространства имен
using System.Windows;
using System.Collections.Generic;
// при инициализации хост миссии создаем и регистрируем таблицу достижений пилотов
var table = new Dictionary<Player, int>();
Application.Current.Properties.Add("PlayerScoreTable", table);
// в процессе игры, в подмиссии, получаем количество очков пилота
if (Application.Current.Properties.Contains("PlayerScoreTable"))
{
// получаем таблицу
var tablex = (Dictionary<Player, int>)Application.Current.Properties["PlayerScoreTable"];
// блокируем таблицу на время использования
lock (tablex)
{
// тут получаем, не важно откуда, объект нужного нам игрока
Player player = GamePlay.gpPlayer();
// проверяем, есть ли в таблице запись для указанного игрока
if (tablex.ContainsKey(player))
{
// получаем количество очков
int score = tablex[player];
// добавляем указанному игроку 25 очков
tablex[player] += 25;
}
else
{
// добавляем в таблицу запись для указанного игрока
tablex.Add(player, 0);
}
}
}