Esempio n. 1
0
    public List <HighScoreEntry> TryGetEntries(GameModeSetting setting)
    {
        List <HighScoreEntry> entries;

        entryLists.TryGetValue(setting, out entries);
        return(entries);
    }
Esempio n. 2
0
    public void ToHighScores(PlayModel playModel, GameModeSetting currentSetting)
    {
        playUI.Unsubscribe(playModel);
        playUI.Deactivate();

        highScoreUI.Activate(currentSetting, playModel.Score);
    }
Esempio n. 3
0
 public void Activate(GameModeSetting setting, int newScore)
 {
     gameObject.SetActive(true);
     settingsDisplayUI.Activate(setting);
     nameField.text = "";
     scoreDisplay.SetValue(newScore);
 }
Esempio n. 4
0
        public static void SendRPCToPlayer(PhotonPlayer player)
        {
            Hashtable hash          = new Hashtable();
            string    vanillaString = string.Empty;
            string    anarchyString = string.Empty;
            int       count         = 0;

            for (int i = 0; i < allGameSettings.Count; i++)
            {
                GameModeSetting set = allGameSettings[i];
                if (set.Enabled)
                {
                    set.WriteToHashtable(hash);
                    count++;
                    if (!player.AnarchySync && set is AnarchyGameModeSetting setting)
                    {
                        if (anarchyString.Length > 0)
                        {
                            anarchyString += "\n";
                        }
                        anarchyString += setting.ToString();
                    }
                    else if (!player.RCSync)
                    {
                        if (vanillaString.Length > 0)
                        {
                            vanillaString += "\n";
                        }
                        vanillaString += set.ToString();
                    }
                }
            }
            if (count <= 0)
            {
                if (MOTD.Value.Length > 0)
                {
                    FengGameManagerMKII.FGM.BasePV.RPC("Chat", player, new object[] { "MOTD: " + MOTD.Value, string.Empty });
                }
                return;
            }
            FengGameManagerMKII.FGM.BasePV.RPC("settingRPC", player, new object[] { hash });
            if (!player.RCSync & vanillaString.Length > 0)
            {
                FengGameManagerMKII.FGM.BasePV.RPC("Chat", player, new object[] { vanillaString, string.Empty });
            }
            if (!player.AnarchySync && anarchyString.Length > 0)
            {
                FengGameManagerMKII.FGM.BasePV.RPC("Chat", player, new object[] { anarchyString, string.Empty });
            }
            if (MOTD.Value != string.Empty)
            {
                FengGameManagerMKII.FGM.BasePV.RPC("Chat", player, new object[] { "MOTD: " + MOTD.Value, string.Empty });
            }
        }
Esempio n. 5
0
 public static void AddSetting(GameModeSetting set)
 {
     if (allGameSettings == null)
     {
         allGameSettings = new List <GameModeSetting>();
     }
     if (!allGameSettings.Contains(set))
     {
         allGameSettings.Add(set);
     }
 }
Esempio n. 6
0
        public static void SendRPC()
        {
            StringBuilder bld       = new StringBuilder();
            Hashtable     hash      = new Hashtable();
            int           count     = 0;
            int           countSend = 0;

            for (int i = 0; i < allGameSettings.Count; i++)
            {
                GameModeSetting set = allGameSettings[i];
                if (set.Enabled && !set.HasChanged)
                {
                    set.WriteToHashtable(hash);
                    count++;
                    continue;
                }
                if (set.HasChanged)
                {
                    bool oldstate = set.State;
                    set.Apply();
                    if (oldstate != set.State && set.State == false)
                    {
                        set.Save();
                        continue;
                    }
                    set.WriteToHashtable(hash);
                    if (countSend > 0)
                    {
                        bld.Append("\n");
                    }
                    bld.Append(set.ToStringLocal());
                    set.Save();
                    count++;
                    countSend++;
                }
            }
            if (count <= 0)
            {
                return;
            }
            if (InfectionMode.Enabled)
            {
                InfectionUpdate();
            }
            if (TeamMode.Enabled)
            {
                SendTeamInfo();
            }
            FengGameManagerMKII.FGM.BasePV.RPC("settingRPC", PhotonTargets.Others, new object[] { hash });
            if (bld.ToString() != string.Empty)
            {
                Chat.Add(bld.ToString());
            }
        }
 public static void AnarchySettingCallback(GameModeSetting set, bool state, bool received)
 {
     if (PhotonNetwork.IsMasterClient && !received)
     {
         PhotonPlayer[] targets = PhotonPlayer.GetNotAnarchyUsers();
         if (targets.Length <= 0)
         {
             return;
         }
         FengGameManagerMKII.FGM.BasePV.RPC("Chat", targets, new object[] { set.ToString(), string.Empty });
     }
 }
Esempio n. 8
0
    public void StartGame(int gameDurationInSeconds, int slotCount)
    {
        playModel = new PlayModel();

        currentGameModeSetting = new GameModeSetting(gameDurationInSeconds, slotCount);

        targetGenerator.GenerateTargets(slotCount);
        List <RoundDefinition> roundDefinitions = roundsGenerator.GenerateRounds(gameDurationInSeconds, slotCount);

        roundsController.StartRounds(roundsGenerator.TargetTypeCollection, roundDefinitions, playModel);

        roundsController.OnRoundsFinished        += EndGame;
        platformLoader.SelectionManager.IsBlocked = false;

        OnGameStart?.Invoke(playModel, gameDurationInSeconds);
    }
Esempio n. 9
0
    public void Activate(List <HighScoreEntry> entries, GameModeSetting setting)
    {
        gameObject.SetActive(true);

        settingsDisplayUI.Activate(setting);

        for (int i = 0; i < displayUIs.Count; i++)
        {
            HighScoreEntry entryToShow = null;
            if (entries != null && entries.Count > i)
            {
                entryToShow = entries[i];
            }
            displayUIs[i].ShowHighScoreEntry((i + 1).ToString(), entryToShow);
        }
    }
Esempio n. 10
0
 private static void CheckCustomSpawn(GameModeSetting set, bool state, int selection, float[] floats, int[] integers)
 {
     if (state)
     {
         float summ = 0f;
         for (int i = 0; i < 5; i++)
         {
             summ += floats[i];
         }
         if (summ > 100f)
         {
             for (int i = 0; i < 5; i++)
             {
                 floats[i] = 20f;
             }
         }
     }
 }
Esempio n. 11
0
    private void GameSystem(GameModeSetting setting)
    {
        switch (setting)
        {
        case GameModeSetting.BasicMode:
            SpawnWave();
            break;

        case GameModeSetting.MediumMode:
            break;

        case GameModeSetting.HardMode:
            break;

        default:
            break;
        }
    }
Esempio n. 12
0
    public void AddHighScore(GameModeSetting setting, HighScoreEntry newEntry, int maxEntries)
    {
        List <HighScoreEntry> entries;

        if (entryLists.ContainsKey(setting))
        {
            entries = entryLists[setting];

            int entryCount = entries.Count;

            if (entries[entryCount - 1].Points >= newEntry.Points)
            {
                entries.Add(newEntry);
                entryCount++;
            }
            else
            {
                for (int i = 0; i < entryCount; i++)
                {
                    if (entries[i].Points >= newEntry.Points)
                    {
                        continue;
                    }
                    entries.Insert(i, newEntry);
                    entryCount++;
                    break;
                }
            }

            while (entryCount > maxEntries)
            {
                entries.RemoveAt(maxEntries);
                entryCount--;
            }
        }
        else
        {
            //no entries yet
            entries = new List <HighScoreEntry>();
            entries.Add(newEntry);
            entryLists[setting] = entries;
        }
    }
Esempio n. 13
0
        public static void HandleRPC(Hashtable hash)
        {
            if (oldHash.Equals(hash))
            {
                return;
            }
            int           count = 0;
            StringBuilder bld   = new StringBuilder();

            for (int i = 0; i < allGameSettings.Count; i++)
            {
                GameModeSetting set = allGameSettings[i];
                set.ReadFromHashtable(hash);
                if (set.HasChangedReceived)
                {
                    set.ApplyReceived();
                    if (count > 0)
                    {
                        bld.Append("\n");
                    }
                    bld.Append(set.ToStringLocal());
                    count++;
                }
            }
            if (hash.ContainsKey("motd") && oldHash.ContainsKey("motd") && oldHash["motd"] as string != hash["motd"] as string)
            {
                if (count > 0)
                {
                    bld.Append("\n");
                }
                bld.Append("MOTD: " + hash["motd"].ToString());
            }
            oldHash = new Hashtable();
            Dictionary <object, object> clone = (Dictionary <object, object>)hash.Clone();

            foreach (KeyValuePair <object, object> pair in clone)
            {
                oldHash.Add(pair.Key, pair.Value);
            }
            Chat.Add(bld.ToString());
        }
Esempio n. 14
0
    public void Activate(GameModeSetting setting, int newScore)
    {
        gameObject.SetActive(true);
        currentSetting = setting;

        List <HighScoreEntry> entries = highScoreManager.TryGetEntries(setting);

        bool addNewEntry = false;

        if (entries != null)
        {
            if (entries.Count <= 0)
            {
                addNewEntry = true;
            }
            else
            {
                HighScoreEntry lastEntry = entries[entries.Count - 1];

                //equal scores can be added after the existing entry
                if (lastEntry.Points < newScore || entries.Count < highScoreManager.EntriesSavedPerSetting)
                {
                    addNewEntry = true;
                }
            }
        }
        else
        {
            addNewEntry = true;
        }

        if (addNewEntry)
        {
            highScoreNewUI.Activate(currentSetting, newScore);
        }
        else
        {
            highScoreListUI.Activate(entries, currentSetting);
        }
    }
Esempio n. 15
0
    public void Read(BinaryReader reader)
    {
        entryLists.Clear();

        BinaryFormatter formatter = new BinaryFormatter();

        //read size
        int dictionarySize = reader.ReadInt32();

        //read key value pairs
        for (int i = 0; i < dictionarySize; i++)
        {
            GameModeSetting key = (GameModeSetting)formatter.Deserialize(reader.BaseStream);

            int listSize = reader.ReadInt32();
            List <HighScoreEntry> value = new List <HighScoreEntry>();
            for (int j = 0; j < listSize; j++)
            {
                value.Add((HighScoreEntry)formatter.Deserialize(reader.BaseStream));
            }

            entryLists[key] = value;
        }
    }
Esempio n. 16
0
 public void AddEntry(GameModeSetting setting, HighScoreEntry newEntry)
 {
     highScoreContainer.AddHighScore(setting, newEntry, entriesSavedPerSetting);
     saveService.Save(highScoreContainer);
 }
Esempio n. 17
0
 public List <HighScoreEntry> TryGetEntries(GameModeSetting setting)
 {
     return(highScoreContainer.TryGetEntries(setting));
 }
Esempio n. 18
0
 public void Activate(GameModeSetting settings)
 {
     gameObject.SetActive(true);
     timeDisplay.SetValue(settings.DurationInS);
     holesDisplay.SetValue(settings.Slots);
 }