예제 #1
0
        /// <summary>
        /// Reads MissionData for each mission directory stored in the cached details.txt.
        /// </summary>
        public static void Initialize()
        {
            // Parse cached mission directories
            foreach (string directory in Directory.EnumerateDirectories(CachePath.GetCachePath()))
            {
                uint missionID;
                if (!uint.TryParse(new DirectoryInfo(directory).Name, out missionID))
                {
                    continue;
                }

                // Register all details for mission
                string detailsPath = CachePath.GetMissionDetailsFilePath(missionID);
                if (!File.Exists(detailsPath))
                {
                    // Folder is corrupted, delete it
                    Directory.Delete(directory, true);
                    continue;
                }
                string      json      = File.ReadAllText(detailsPath);
                MissionData localData = JsonUtility.FromJson <MissionData>(json);

                AddMissionData(localData);
            }
        }
예제 #2
0
        /// <summary>
        /// Unregisters mission data from cache details.
        /// If the mission's SDK version is no longer referenced, it will be deleted.
        /// </summary>
        public static void RemoveMissionData(uint missionID)
        {
            // Find and remove the mission
            int index = m_MissionList.FindIndex((mission) => mission.missionID == missionID);

            if (index < 0)
            {
                return;
            }

            MissionData missionData = m_MissionList[index];

            m_MissionList.RemoveAt(index);

            // Remove reference to SDK version
            string sdkVersion = CachePath.GetSDKVersion(missionData);

            if (string.IsNullOrEmpty(sdkVersion))
            {
                return;
            }

            if (RemoveReference(sdkVersion))
            {
                File.Delete(CachePath.GetSDKFilePath(sdkVersion));
            }
            if (RemoveReference("DotNetInterop"))
            {
                File.Delete(CachePath.GetInteropFilePath()); interopVersion = null;
            }
        }
    private void OnBtnPlayClick()
    {
        List <BaseSoldier> soldiers = new List <BaseSoldier>();

        for (int i = 0; i < _hiredSoldiers.Length; i++)
        {
            if (_hiredSoldiers[i] >= 0)
            {
                soldiers.Add(new BaseSoldier(_availableSoldiers[_hiredSoldiers[i]], Global.Instance.Player.City.GetSoldierUpgradesInfo(_availableSoldiers[_hiredSoldiers[i]].Key).Level));
            }
        }
        Global.Instance.CurrentMission.SelectedSoldiers = new ArrayRO <BaseSoldier>(soldiers.ToArray());

        //setup random units and map
        EUnitKey[] availableUnits = new EUnitKey[] { EUnitKey.Scout, EUnitKey.Trooper, EUnitKey.Jawa_1 };
        string[]   availableMaps  = new string[] { "battle1_forest_1", "battle1_forest_2" };

        EUnitKey[] units = new EUnitKey[Random.Range(1, 6)];
        units[0] = EUnitKey.Hero_Sniper;
        for (int i = 1; i < units.Length; i++)
        {
            units[i] = availableUnits[Random.Range(0, availableUnits.Length)];
        }

        MissionMapData mmd = new MissionMapData(units, availableMaps[Random.Range(0, availableMaps.Length)]);
        MissionData    md  = new MissionData(EMissionKey.None, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, new MissionMapData[] { mmd });

        FightManager.Setup(EFightMode.PvP, md);

        LoadingScreen.Instance.Show();
        LoadingScreen.Instance.SetProgress(0f);
        Application.LoadLevel("Fight");
    }
예제 #4
0
    public void OpenWindow(MissionData missionData)
    {
        ContentContainer.SetActive(true);
        Mission = missionData;
        for (int i = 0; i < ClientDishes.Length; i++)
        {
            int dish = missionData.Dishes [i];
            ClientDishes [i].text = dish.ToString();
            Image[]    stars      = Stars(i);
            DishRecipe dishRecipe = Restaurant.instance.DishRecipes [dish];
            foreach (var star in stars)
            {
                star.sprite = Player.instance.gameObject.GetComponent <Storage> ().StarSprites [0];
            }
            for (int j = 0; j < dishRecipe.Level; j++)
            {
                stars [j].sprite = Player.instance.gameObject.GetComponent <Storage> ().StarSprites [1];
            }
            int    cost           = dishRecipe.CostsByLevel [dishRecipe.Level - 1];
            int    additionalCost = cost - dishRecipe.CostsByLevel [0];
            string dishCostString = "$" + cost;
            if (additionalCost > 0)
            {
                dishCostString += " (+$" + additionalCost + ")";
            }
            GoldRewards [i].text = dishCostString;
        }
        string dropString = "Possible drop:\n";

        foreach (var item in missionData.ItemRewards)
        {
            dropString += "- " + Restaurant.instance.ItemNames [item] + "\n";
        }
        DropText.text = dropString;
    }
예제 #5
0
        private string GetLogRegex(MissionData data)
        {
            var speakerNames = string.Join("|", data.Speakers.Keys);
            var logRegex     = $"^(?<stamp>.. .. .. ..) (?<speaker>{speakerNames})";

            return(logRegex);
        }
예제 #6
0
    void LoadMission()
    {
        missionList = new List <MissionData>();
        string[] lines     = missionData.text.Split('\n');
        int      lineCount = lines.Length;

        for (int i = 1; i < lineCount; i++)
        {
            MissionData mission = new MissionData();
            string[]    splits  = lines[i].Split(',');
            mission.level         = int.Parse(splits[0]);
            mission.moveCount     = int.Parse(splits[1]);
            mission.redCount      = int.Parse(splits[2]);
            mission.redNo         = int.Parse(splits[3]);
            mission.orangeCount   = int.Parse(splits[4]);
            mission.orangeNo      = int.Parse(splits[5]);
            mission.yellowCount   = int.Parse(splits[6]);
            mission.yellowNo      = int.Parse(splits[7]);
            mission.greenCount    = int.Parse(splits[8]);
            mission.greenNo       = int.Parse(splits[9]);
            mission.blueCount     = int.Parse(splits[10]);
            mission.blueNo        = int.Parse(splits[11]);
            mission.gray          = int.Parse(splits[12]);
            mission.anyBlockCount = int.Parse(splits[13]);
            mission.anyBlockNo    = int.Parse(splits[14]);
            mission.bit           = int.Parse(splits[15]);
            mission.star1         = int.Parse(splits[16]);
            mission.star2         = int.Parse(splits[17]);
            mission.star3         = int.Parse(splits[18]);

            missionList.Add(mission);
        }
    }
예제 #7
0
    public void Init(MissionViewer owner, MissionData missionData)
    {
        //this.owner = owner;
        //MissionData = missionData;
        //prevValue = missionData.PrevValue;
        //currentValue = missionData.CurrentValue;

        //var isComplete = prevValue >= missionData.Info.TargetValue;
        //missionInfoParent.SetActive(!isComplete);
        //waitTimeInfoParent.SetActive(isComplete);

        //getNowButton.gameObject.SetActive(true);
        //if (MyGameManager.Instance.CurrentLevel < 6) getNowButton.gameObject.SetActive(false);

        //if (!isComplete)
        //{
        //    missionName.Text = MyMissionManager.GetDescription(missionData.Info);
        //    rewardCoinNum.Text = missionData.Info.RewardCoinNum.ToString();
        //    UpdateProgress(prevValue);

        //    skipButton.gameObject.SetActive(!missionData.IsClear);
        //    if (MyGameManager.Instance.CurrentLevel < 6) skipButton.gameObject.SetActive(false);
        //}
        //else
        //{
        //    waitTime.Text = string.Format("{0:hh\\:mm\\:ss}", missionData.GetTimeSpanWhenNextMissionUnlock());
        //}
    }
예제 #8
0
        void CreateSelectableMission(MissionData mission)
        {
            GameObject geo = Instantiate(selectableMissionPrefab, missionsGroup);
            SelectableMissionController controller = geo.GetComponent <SelectableMissionController>();

            controller.SetupSelecteableMission(mission);
        }
예제 #9
0
    public void RaidMission(MissionData mission)
    {
        if (/*Restaurant.instance.RaidTickets > 0 &&*/ Restaurant.instance.SpendEnergy(Restaurant.instance.EnergyCostPerMission))
        {
            mission.GoldReward = CalculateGoldForMission(mission);
            raidTickets--;             // эта проверка сейчас происходит в клиенте =\
            AddGold(mission.GoldReward);

            stars += 3;

            List <int> itemsWon = new List <int> ();
            for (int i = 0; i < mission.ItemRewards.Length; i++)
            {
                if (Random.Range(0.0f, 1.0f) < mission.ItemChances[i])
                {
                    AddItem(mission.ItemRewards [i]);
                    itemsWon.Add(mission.ItemRewards [i]);
                }
            }

            CheckoutClient(mission.gameObject.GetComponent <Client>());

            if (CurrentClients.Count == 0)
            {
                WelcomeClients();
            }

            OnMissionEnded(mission.GoldReward, itemsWon);

            OnRestaurantInfoChanged();
        }
    }
예제 #10
0
    private void UpdateRewardIcon(Transform cardTransform, MissionData gridData)
    {
        DeliveryRewardTable.DeliveryRewardData[] rewards = Singleton <DeliveryRewardTable> .I.GetDeliveryRewardTableData(gridData.deliveryData.id);

        int exp = 0;

        if (rewards != null && rewards.Length > 0)
        {
            SetGrid(cardTransform, UI.GRD_REWARD, string.Empty, rewards.Length, false, delegate(int index, Transform t, bool is_recycle)
            {
                DeliveryRewardTable.DeliveryRewardData.Reward reward = rewards[index].reward;
                bool is_visible = false;
                if (reward.type == REWARD_TYPE.EXP)
                {
                    exp += reward.num;
                }
                else
                {
                    is_visible        = true;
                    ItemIcon itemIcon = ItemIcon.CreateRewardItemIcon(reward.type, reward.item_id, t, reward.num, null, 0, false, -1, false, null, false, false, ItemIcon.QUEST_ICON_SIZE_TYPE.REWARD_DELIVERY_DETAIL);
                    SetMaterialInfo(itemIcon.transform, reward.type, reward.item_id, null);
                    itemIcon.SetRewardBG(true);
                }
                SetActive(t, is_visible);
            });
        }
    }
예제 #11
0
    //////////////
    public static void StartMission(MissionData mission)
    {
        m_CurrentMission = mission;
        m_CurrentStage   = 1;

        SceneManager.LoadScene(SceneName.BattleScene);
    }
예제 #12
0
    private void StartFight()
    {
        PlayerResources playerResources = Global.Instance.Player.Resources;
        MissionData     md = MissionsConfig.Instance.GetPlanet(EPlanetKey.PlanetA).GetMission(EMissionKey.PlanetA_Test1);

        if (playerResources.Fuel < md.FuelWinCost || playerResources.Fuel < md.FuelLoseCost ||
            playerResources.Credits < md.CreditsWinCost || playerResources.Credits < md.CreditsLoseCost ||
            playerResources.Minerals < md.MineralsWinCost || playerResources.Minerals < md.MineralsLoseCost)
        {
            Debug.LogWarning("Not enough resources");
            return;
        }

        BaseSoldier[] soldiers = new BaseSoldier[_hiredUnits.Count];
        for (int i = 0; i < soldiers.Length; i++)
        {
            soldiers[i] = new BaseSoldier(UnitsConfig.Instance.GetSoldierData(_hiredUnits[i]), Global.Instance.Player.City.GetSoldierUpgradesInfo(_hiredUnits[i]).Level);
        }

        Global.Instance.CurrentMission.PlanetKey        = EPlanetKey.PlanetA;
        Global.Instance.CurrentMission.MissionKey       = EMissionKey.PlanetA_Test1;
        Global.Instance.CurrentMission.SelectedSoldiers = new ArrayRO <BaseSoldier>(soldiers);

        FightManager.Setup(EFightMode.Campaign, MissionsConfig.Instance.GetPlanet(Global.Instance.CurrentMission.PlanetKey).GetMission(Global.Instance.CurrentMission.MissionKey));
        Application.LoadLevel("Fight");
    }
	private void SetupAttempts(MissionData md) {
		int attemptsUsed = Global.Instance.Player.StoryProgress.GetMissionAttemptsUsed(_planetKey, _missionKey);
		_txtAttemptsAmount.text = string.Format("{0}/{1}", md.AttemptsDaily - attemptsUsed, md.AttemptsDaily);
		if (attemptsUsed >= md.AttemptsDaily) {
			_btnPlay.interactable = false;
		}
	}
예제 #14
0
 private void TestMissionTaskContent(MissionData i_mission, MapAreaTypes i_areaType)
 {
     foreach (MissionTaskData taskData in i_mission.Tasks)
     {
         TestPowerForMission(taskData.PowerRequirement);
     }
 }
예제 #15
0
    ///////////////
    private void TryUpdateProgress(MissionData completedMission)
    {
        switch (completedMission.World)
        {
        case MissionWorld.Normal:
            int number = completedMission.Number;

            // если первый раз прошли миссию
            if (number == NormalWorldMissionNumber)
            {
                NormalWorldMissionNumber++;

                //
                // NOTE: имитация туториала, потом привести в нормальный вид
                //
                switch (number)
                {
                case 2:
                    InventoryContent.Instance.AddEquipmentItem("axe");
                    break;

                case 3:
                    InventoryContent.Instance.AddMaterial("ingot", 15);
                    break;
                }
            }
            break;
        }

        GameManager.Instance.SaveGame();
    }
예제 #16
0
    public void Clear()
    {
        _graphics.Unload(true);
        _currentMapIndex = 0;

        _missionData = null;
    }
    private void SetupEnemies(MissionData md)
    {
        float enemyImageWidth = _iconEnemy.UnitBG.transform.GetComponent <RectTransform>().rect.width;

        List <EUnitKey> unitKeys = new List <EUnitKey>();
        MissionMapData  mmd      = null;

        for (int i = 0; i < md.MapsCount; i++)
        {
            mmd = md.GetMap(i);
            for (int j = 0; j < mmd.Units.Length; j++)
            {
                if (unitKeys.IndexOf(mmd.Units[j]) == -1)
                {
                    unitKeys.Add(mmd.Units[j]);
                }
            }
        }
        _enemies = unitKeys.ToArray();

        _enemyIcons    = new UIBattlePreviewUnitInfo[_enemies.Length];
        _enemyIcons[0] = _iconEnemy;
        for (int i = 0; i < _enemies.Length; i++)
        {
            if (i > 0)
            {
                _enemyIcons[i] = (GameObject.Instantiate(_iconEnemy.gameObject) as GameObject).GetComponent <UIBattlePreviewUnitInfo>();
                _enemyIcons[i].transform.SetParent(_iconEnemy.transform.parent, false);
                _enemyIcons[i].UnitBG.rectTransform.anchoredPosition = _iconEnemy.UnitBG.rectTransform.anchoredPosition + new Vector2(i * (enemyImageWidth + _offsetImageEnemy), 0f);
            }
            _enemyIcons[i].Setup(_enemies[i]);
        }
    }
예제 #18
0
    private void UpdateReward(CardData cardData, MissionData missionData, bool isComplete = false)
    {
        UpdateRewardIcon(cardData.cardTransform, missionData);
        if (missionData is GridData)
        {
            GridData gridData = missionData as GridData;
            SetActive(cardData.cardTransform, UI.SPR_REWARD_GRID_ITEM, true);
            SetSprite(cardData.cardTransform, UI.SPR_REWARD_GRID_ITEM, gridData.spriteName);
        }
        else
        {
            SetActive(cardData.cardTransform, UI.SPR_REWARD_GRID_ITEM, false);
        }
        SetBannerActvie(cardData, false);
        SetActive(cardData.completeRewardTweenlRoot, false);
        SetActive(cardData.cardTransform, UI.OBJ_COMPLETE_MARK, missionData.isCompleted);
        DeliveryRewardTable.DeliveryRewardData[] deliveryRewardTableData = Singleton <DeliveryRewardTable> .I.GetDeliveryRewardTableData(missionData.deliveryData.id);

        if (deliveryRewardTableData != null && deliveryRewardTableData.Length > 0)
        {
            DeliveryRewardTable.DeliveryRewardData deliveryRewardData = deliveryRewardTableData[0];
            SetLabelText(cardData.cardTransform, UI.LBL_REWARD, missionData.deliveryData.npcComment);
            MonoBehaviourSingleton <DeliveryManager> .I.GetAllProgressDelivery((int)missionData.deliveryData.id, out int have, out int need);

            if (isComplete || missionData.isCompleted)
            {
                have = need;
            }
            SetActive(cardData.cardTransform, UI.LBL_REWRAD_COUNT, true);
            SetLabelText(cardData.cardTransform, UI.LBL_REWRAD_COUNT, have + "/" + need);
        }
    }
예제 #19
0
    //存檔
    void SaveMissionData()
    {
        //存檔案
        //取得目前所有任務資訊
        MissionClass[] missionClass = GameObject.FindObjectsOfType <MissionClass>();
        Debug.Log("存檔時任務數量:" + missionClass.Length);
        for (int i = 0; i < missionClass.Length; i++)
        {
        }

        if (missionDatas != null)
        {
            missionDatas.Clear();
        }

        foreach (MissionClass ms in missionClass)
        {
            MissionData _missiondata = new MissionData(ms.Type, ms.CurrentProgress, ms.Requirment, ms.ExpReward, ms.TotalScoreRequirment);

            if (missionDatas == null)
            {
                missionDatas = new List <MissionData>();
            }

            missionDatas.Add(_missiondata);
        }

        //SAVE
        Save_LoadSystem.SaveMissionData(missionDatas);
    }
예제 #20
0
        public void FillData()
        {
            SQLiteTableReader reader = new SQLiteTableReader(null, Program.DbPath);

            reader.Connect();
            DataTable missionTable = reader.ExecuteQuery("SELECT tm.id as id, tm.item_id as item_id, tm.item_num as item_num, t0.text as MissionText FROM (SELECT id, item_id, item_num FROM mission_data) as tm, (SELECT \"index\", text FROM text_data WHERE category=67) as t0 WHERE tm.id = t0.\"index\"");

            reader.Disconnect();
            for (int i = 0; i < missionTable.Rows.Count; i++)
            {
                MissionData data = new MissionData();
                data.Id        = (long)missionTable.Rows[i]["id"];
                data.ItemId    = (long)missionTable.Rows[i]["item_id"];
                data.ItemCount = (long)missionTable.Rows[i]["item_num"];
                data.SetMissionText(((string)missionTable.Rows[i]["MissionText"]).Replace("\\n", ""));
                if (!MissionDataList.Exists(a => a.MissionText.Equals(data.MissionText)))
                {
                    string transText = Program.TransDict.GetTranslation(transDict, data.MissionText);
                    if (string.IsNullOrEmpty(transText))
                    {
                        transText = string.Empty;
                    }
                    data.TransMissionText = transText;
                    MissionDataList.Add(data);
                }
            }
        }
예제 #21
0
    //////////////
    private void OnDisable()
    {
        Enemy.OnEnemyDeath        -= TryStartNextWave;
        m_PlayerHero.OnPlayerDied -= OnPlayerDied;

        m_CurrentMission = null;
    }
예제 #22
0
    public void Init(Level level)
    {
        if (Data.Instance.playMode == Data.PlayModes.SURVIVAL)
        {
            MissionActive = MissionsManager.Instance.videogames[3].missions[0].data[0];
            extraAreasManager.Init();
        }


        totalDistance = 0;
        this.level    = level;
        areasLength   = -4;
        StartNewMission();

        if (Data.Instance.isReplay && Data.Instance.playMode == Data.PlayModes.STORYMODE)
        {
            AddAreaByName("continue_Multiplayer");
        }
        else
        {
            //if (!Data.Instance.DEBUG && Data.Instance.playMode == Data.PlayModes.PARTYMODE)
            //	ShuffleMissions ();
            AddAreaByName("start_Multiplayer");
        }
    }
예제 #23
0
    /// <summary>
    /// Load the missions data from the scene.
    /// </summary>
    /// <returns>The missions data from the scene.</returns>
    private List <MissionData> LoadMissionsDataFromScene()
    {
        Debug.Log("Loading Missions Data from Scene");

        GameObject [] missions = GameObject.FindGameObjectsWithTag("Mission");

        if (missions == null)
        {
            Debug.Log("No Mission with 'Mission' tag found");
            return(null);
        }

        Mission       tempMission      = null;
        LevelsManager tempLevelManager = null;

        List <MissionData> tempMissionsData = new List <MissionData> ();
        MissionData        tempMissionData  = null;

        for (int i = 0; i < missions.Length; i++)
        {
            tempMission      = missions[i].GetComponent <Mission> ();
            tempLevelManager = missions[i].GetComponent <LevelsManager> ();
            tempMissionData  = new MissionData();
            if (i == 0)
            {
                tempMissionData.isLocked = false;
            }
            tempMissionData.ID         = tempMission.ID;
            tempMissionData.levelsData = GetLevelData(tempLevelManager.levels);

            tempMissionsData.Add(tempMissionData);
        }

        return(tempMissionsData);
    }
예제 #24
0
    public void Init()
    {
        areasetDataLoaded.Clear();
        if (Data.Instance.playMode == Data.PlayModes.STORYMODE && Data.Instance.isReplay)
        {
            offset -= 40;
        }

        videogamesData = GetComponent <VideogamesData>();
        data           = Data.Instance;

        if (Data.Instance.playMode == Data.PlayModes.SURVIVAL)
        {
            offset -= 40;
            MissionsManager.Instance.all = null;
            //MissionActive = MissionsManager.Instance.LoadDataFromMission("survival", "boyland").data[0];
            MissionActive = MissionsManager.Instance.videogames[3].missions[0].data[0];
            // extraAreasManager.Init();
        }
        else
        {
            data.events.StartMultiplayerRace += StartMultiplayerRace;
            data.events.ResetMissionsBlocked += ResetMissionsBlocked;
            data.events.OnMissionComplete    += OnMissionComplete;
            data.events.OnBossActive         += OnBossActive;
        }
    }
예제 #25
0
    /// <summary>
    /// 收到任务
    /// </summary>
    /// <param name="tid"></param>
    /// <param name="uid"></param>
    public void OnReciveMissionList(uint tid, ulong uid)
    {
        if (AllMissionList.ContainsKey(uid))
        {
            return;
        }

        MissionData mission = GetCfgMissionProxy().GetMissionByKey(tid);

        if (m_CanAcceptMissions.TryGetValue(tid, out MissionVO missionVO))
        {
            //从可接可借列表移除
            m_CanAcceptMissions.Remove(tid);
        }
        else        //如果不在可接列表的 (比如进入fb的时候 发来一个任务)
        {
            //创建任务
            missionVO = CreateMission(tid);
        }
        missionVO.Uid          = uid;
        missionVO.MissionState = MissionState.Going;
        AllMissionList.Add(uid, missionVO);
        AllMissionDic[(MissionType)mission.Type].Add(uid, missionVO);


        #region 音效
        ////HACK gaoyu
        //这是一个最终需求么? by 张子华
        if (missionVO.MissionMainConfig.HasValue && missionVO.MissionMainConfig.Value.StartBGM > 0)
        {
            WwiseUtil.PlaySound(missionVO.MissionMainConfig.Value.StartBGM, false, null);
        }
        #endregion
    }
예제 #26
0
        // Returns the SDK version specified in the .OPM file. Otherwise, returns null
        public static string GetSDKVersion(MissionData missionData)
        {
            string missionPath = Path.Combine(GetCachePath(), missionData.missionID.ToString());

            // DLL or OPM
            string dllName           = missionData.fileNames.FirstOrDefault((filename) => filename.IndexOf(".dll", System.StringComparison.OrdinalIgnoreCase) >= 0);
            string opmName           = missionData.fileNames.FirstOrDefault((filename) => filename.IndexOf(".opm", System.StringComparison.OrdinalIgnoreCase) >= 0);
            bool   isStandardMission = string.IsNullOrEmpty(dllName) && !string.IsNullOrEmpty(opmName);

            if (isStandardMission)
            {
                // Get the SDK version from the mission file
                try
                {
                    string      filePath = Path.Combine(missionPath, opmName);
                    MissionRoot root     = MissionReader.GetMissionData(filePath);
                    return(root.sdkVersion);
                }
                catch (System.Exception ex)
                {
                    Debug.LogError(ex);
                }
            }

            return(null);
        }
예제 #27
0
 void OnDestroy()
 {
     if (this == instance)
     {
         instance = null;
     }
 }
예제 #28
0
    public void Setup(EPlanetKey planetKey, EMissionKey missionKey)
    {
        _planetKey  = planetKey;
        _missionKey = missionKey;

        MissionData md = MissionsConfig.Instance.GetPlanet(planetKey).GetMission(missionKey);

        if (md != null)
        {
            _lblExpAmount.text = string.Format("+ {0}", md.RewardExperienceWin);

            Sprite heroBackIconResource = UIResourcesManager.Instance.GetResource <Sprite>(GameConstants.Paths.GetUnitBGIconResourcePath(Global.Instance.Player.Heroes.Current.Data.IconName));
            if (heroBackIconResource != null)
            {
                _imgHeroBG.sprite  = heroBackIconResource;
                _imgHeroBG.enabled = true;
            }
            else
            {
                _imgHeroBG.enabled = false;
            }
            Sprite heroIconResource = UIResourcesManager.Instance.GetResource <Sprite>(GameConstants.Paths.GetUnitIconResourcePath(Global.Instance.Player.Heroes.Current.Data.IconName));
            if (heroIconResource != null)
            {
                _imgHeroFG.sprite  = heroIconResource;
                _imgHeroFG.enabled = true;
            }
            else
            {
                _imgHeroFG.enabled = false;
            }
        }
    }
예제 #29
0
        private MissionItem CreateMissionItem(MissionData data)
        {
            var item = Instantiate(MissionItemPrefabs);

            item.SetMissionData(data);
            return(item);
        }
예제 #30
0
 public static void ResetSpaceData(MissionData missionData)
 {
     SpaceDataMap.Clear();
     int spaceID = missionData.scene;
     string spaceFileName = string.Concat("s", spaceID);
     ReadSpaceFile(spaceFileName);
 }
예제 #31
0
    /// <summary>
    /// Load the missions data from the scene.
    /// </summary>
    /// <returns>The missions data from the scene.</returns>
    private List <MissionData> LoadMissionsDataFromScene()
    {
        Debug.Log("Loading Missions Data");

        GameObject[] missions = GameObject.FindGameObjectsWithTag("Mission");

        if (missions == null)
        {
            Debug.Log("No Mission with 'Mission' tag found");
            return(null);
        }

        Mission       tempMission      = null;
        LevelsManager tempLevelManager = null;

        List <MissionData> tempMissionsData = new List <MissionData> ();
        MissionData        tempMissionData  = null;

        foreach (GameObject missionGameObject in missions)
        {
            tempMission      = missionGameObject.GetComponent <Mission> ();
            tempLevelManager = missionGameObject.GetComponent <LevelsManager> ();
            tempMissionData  = new MissionData();

            tempMissionData.ID         = tempMission.ID;
            tempMissionData.levelsData = GetLevelData(tempLevelManager.levels);

            tempMissionsData.Add(tempMissionData);
        }

        return(tempMissionsData);
    }
예제 #32
0
        private void Init()
        {
            Logger    = new MyLogger("Log.log");
            MsgHandle = new MessageHandler();
            m_data    = new MissionData();
            var updatables = new List <IUpdatableAfterSimulation>();
            var config     = GetConfiguration();

            Clean_Loaded = true;
            if (!MyAPIGateway.Multiplayer.IsServer)
            {
                return;
            }
            StopallShips();
            if (config.PirateGridDeletion_Enabled)
            {
                updatables.Add(new PirateDeleter(
                                   config.PirateGridDeletion_Interval,
                                   //config.PirateGridDeletion_Enabled,
                                   config.PirateGridDeletion_PlayerDistanceThreshold,
                                   //config.PirateGridDeletion_BlockCountThreshold,
                                   config.PirateGridDeletion_MessageAdminsOnly));
            }
            RemoveNPCs();
        }
예제 #33
0
        // 刷新难度格子固定信息:次数,推荐等级
        //public void SetLevelUIMessage(int missionID, int level, MissionData missionData)
        //{
        //    int dayTimes = -1;
        //    int maxDayTimes = -1;
        //    int recommendLevel = -1;

        //    if (enterableMissions[missionID].Contains(level))
        //    {
        //        maxDayTimes = missionData.dayTimes;
        //        recommendLevel = missionData.recommend_level;

        //        if (missionTimes.ContainsKey(missionID))
        //        {
        //            if (missionTimes[missionID].ContainsKey(level))
        //            {
        //                dayTimes = missionTimes[missionID][level];

        //                SetLevelUIDateTime(level - 1, dayTimes, maxDayTimes);
        //                SetLevelUIRecommendLevel(level - 1, recommendLevel);
        //            }
        //            else
        //            {
        //                dayTimes = 0;

        //                SetLevelUIDateTime(level - 1, dayTimes, maxDayTimes);
        //                SetLevelUIRecommendLevel(level - 1, recommendLevel);
        //            }
        //        }
        //        else
        //        {
        //            dayTimes = 0;

        //            SetLevelUIDateTime(level - 1, dayTimes, maxDayTimes);
        //            SetLevelUIRecommendLevel(level - 1, recommendLevel);
        //        }
        //    }
        //    else
        //    {
        //        dayTimes = -1;
        //        maxDayTimes = -1;
        //        recommendLevel = -1;

        //        SetLevelUIDateTime(level - 1, dayTimes, maxDayTimes);
        //        SetLevelUIRecommendLevel(level - 1, recommendLevel);
        //    }
        //}

        public void SetLevelUIMessage(int missionID, int level, MissionData missionData)
        {
            int dayTimes = -1;
            int maxDayTimes = -1;
            if (enterableMissions[missionID].ContainsKey(level))
            {
                maxDayTimes = missionData.dayTimes;

                if (missionTimes.ContainsKey(missionID))
                {
                    if (missionTimes[missionID].ContainsKey(level))
                    {
                        dayTimes = missionTimes[missionID][level];
                        InstanceLevelChooseUIViewManager.Instance.SetEnterEnable(true);
                        InstanceLevelChooseUIViewManager.Instance.SetEnterTimes(MissionType.Normal, maxDayTimes - dayTimes, level - 1);
                    }
                    else
                    {
                        dayTimes = 0;
                        InstanceLevelChooseUIViewManager.Instance.SetEnterEnable(true);
                        InstanceLevelChooseUIViewManager.Instance.SetEnterTimes(MissionType.Normal, maxDayTimes - dayTimes, level - 1);
                    }
                }
                else
                {
                    dayTimes = 0;
                    InstanceLevelChooseUIViewManager.Instance.SetEnterEnable(true);
                    InstanceLevelChooseUIViewManager.Instance.SetEnterTimes(MissionType.Normal, maxDayTimes - dayTimes, level - 1);
                }
            }
            else
            {
                InstanceLevelChooseUIViewManager.Instance.SetEnterEnable(false);
                InstanceLevelChooseUIViewManager.Instance.SetEnterTimes(MissionType.Normal, 0, level - 1);
            }

            InstanceLevelChooseUIViewManager.Instance.SetCleanTimes(InstanceUILogicManager.Instance.SweepTimes);
        }
	private void SetupLoot(MissionData md) {
		float lootImageWidth = _imgLoot.transform.GetChild(0).GetComponent<RectTransform>().rect.width;

		ArrayRO<ItemDropChance> loot = MissionsConfig.Instance.GetPlanet(_planetKey).GetMission(_missionKey).RewardItems;
		if (loot.Length == 0) {
			_imgLoot.gameObject.SetActive(false);
		} else {
			_lootItems = new EItemKey[loot.Length];
			_lootItemImages = new Image[loot.Length];
			_lootItemImages[0] = _imgLoot;

			for (int i = 0; i < loot.Length; i++) {
				_lootItems[i] = loot[i].ItemKey;

				if (i > 0) {
					_lootItemImages[i] = (GameObject.Instantiate(_imgLoot.gameObject) as GameObject).GetComponent<Image>();
					_lootItemImages[i].transform.SetParent(_imgLoot.transform.parent, false);
					_lootItemImages[i].rectTransform.anchoredPosition = _imgLoot.rectTransform.anchoredPosition + new Vector2(i * (lootImageWidth + _offsetImageLoot), 0f);
				}

				Image lootIcon = _lootItemImages[i];
				Sprite lootIconResource = UIResourcesManager.Instance.GetResource<Sprite>(GameConstants.Paths.GetLootIconResourcePath(loot[i].ItemKey));
				if (lootIconResource != null) {
					lootIcon.sprite = lootIconResource;
				}
			}
		}
	}
예제 #35
0
 public static void Setup(EFightMode fightMode, MissionData missionData)
 {
     _fightMode = fightMode;
     _missionData = missionData;
 }
	private void SetupEnemies(MissionData md) {
		float enemyImageWidth = _iconEnemy.UnitBG.transform.GetComponent<RectTransform>().rect.width;

		List<EUnitKey> unitKeys = new List<EUnitKey>();
		MissionMapData mmd = null;
		for (int i = 0; i < md.MapsCount; i++) {
			mmd = md.GetMap(i);
			for (int j = 0; j < mmd.Units.Length; j++) {
				if (unitKeys.IndexOf(mmd.Units[j]) == -1) {
					unitKeys.Add(mmd.Units[j]);
				}
			}
		}
        EUnitKey firstEnemy = unitKeys[0];
        UIHeroCard enemyCard = _enemyCard.GetComponent<UIHeroCard>();
        enemyCard.UnitKey = firstEnemy;

        //_enemies = unitKeys.ToArray();
        //_enemyIcons = new UIBattlePreviewUnitInfo[_enemies.Length];
        //_enemyIcons[0] = _iconEnemy;
        //for (int i = 0; i < _enemies.Length; i++)
        //{
        //    if (i > 0)
        //    {
        //        _enemyIcons[i] = (GameObject.Instantiate(_iconEnemy.gameObject) as GameObject).GetComponent<UIBattlePreviewUnitInfo>();
        //        _enemyIcons[i].transform.SetParent(_iconEnemy.transform.parent, false);
        //        _enemyIcons[i].UnitBG.rectTransform.anchoredPosition = _iconEnemy.UnitBG.rectTransform.anchoredPosition + new Vector2(i * (enemyImageWidth + _offsetImageEnemy), 0f);
        //    }
        //    _enemyIcons[i].Setup(_enemies[i]);
        //}
	}
	private void SetupFuel(MissionData md) {
		_txtFuelAmount.text = md.FuelWinCost.ToString();
		if (Global.Instance.Player.Resources.Fuel < md.FuelWinCost) {
			_btnPlay.interactable = false;
			_txtFuelAmount.color = Color.red;
		} else {
			_txtFuelAmount.color = Color.white;
		}
	}
예제 #38
0
    public void Clear()
    {
        _graphics.Unload(true);
        _currentMapIndex = 0;

        _missionData = null;
    }
	private void OnBtnPlayClick() {
		List<BaseSoldier> soldiers = new List<BaseSoldier>();
		for (int i = 0; i < _hiredSoldiers.Length; i++) {
			if (_hiredSoldiers[i] >= 0) {
				soldiers.Add(new BaseSoldier(_availableSoldiers[_hiredSoldiers[i]], Global.Instance.Player.City.GetSoldierUpgradesInfo(_availableSoldiers[_hiredSoldiers[i]].Key).Level));
			}
		}
		Global.Instance.CurrentMission.SelectedSoldiers = new ArrayRO<BaseSoldier>(soldiers.ToArray());

		//setup random units and map
		EUnitKey[] availableUnits = new EUnitKey[] { EUnitKey.Scout, EUnitKey.Trooper, EUnitKey.Jawa_1 };
		string[] availableMaps = new string[] { "battle1_forest_1", "battle1_forest_2" };

		EUnitKey[] units = new EUnitKey[Random.Range(1, 6)];
		units[0] = EUnitKey.Hero_Sniper;
		for (int i = 1; i < units.Length; i++) {
			units[i] = availableUnits[Random.Range(0, availableUnits.Length)];
		}

		MissionMapData mmd = new MissionMapData(units, availableMaps[Random.Range(0, availableMaps.Length)]);
		MissionData md = new MissionData(EMissionKey.None, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, new MissionMapData[] { mmd });
		FightManager.Setup(EFightMode.PvP, md);

		LoadingScreen.Instance.Show();
		LoadingScreen.Instance.SetProgress(0f);
		Application.LoadLevel("Fight");
	}