Пример #1
0
    /// <summary>
    /// Возвращает имя и идентификатор объекта, который в данный момент доступен для игрока.
    /// Начинается всё со сцены истории story 1 потом битва и так далее пока не дойдёт до
    /// базы. Там будем разрабатывать систему миссий которая будет выглядеть несколько
    /// по-другому.
    /// </summary>
    /// <param name="steamId"></param>
    /// <returns></returns>
    public static StringAndInt NextStoryObject(string steamId)
    {
        int          playerId = PlayerId(steamId);
        StringAndInt curData  = PlayerStoryFlowHub.CurrentProgressElementForPlayer(playerId).ToStringAndInt();

        //Если битва еще не началась, то игрока надо кинуть на сцену рига корабля
        if (curData.StrValue == "battle")
        {
            int battleId = curData.IntValue;

            //Проверка на то, что битва уже идёт
            Battle curBattle = Battle.BattleByTypeId(playerId, battleId);

            //Если битва не идёт надо проверить нет ли уже готового рига под эту битву
            if (curBattle == null)
            {
                SpaceshipRig rig = SpaceshipRig.RigForBattle(playerId, battleId);
                if (rig == null)
                {
                    curData.StrValue = "rig";
                }
                else
                {
                    curData.StrValue = "launch battle";
                }
            }
        }

        //Если следующий объект истории - станция, тогда нужно поставить специальную пометку в профиль игрока что у него есть станция
        if (curData.StrValue == "station")
        {
            PlayerStoryFlowHub.SetStationAvailable(playerId);
        }

        return(curData);
    }
Пример #2
0
    public static StringAndInt RegisterStoryElementCompleted(string steamId)
    {
        int playerId = PlayerId(steamId);

        return(PlayerStoryFlowHub.RegisterPlayerProgress(playerId).ToStringAndInt());
    }