Example #1
0
        public void Reset()
        {
            FreezeTS     = false;
            FreezeMins   = -1;
            FreezeGas    = -1;
            FreezeTerra  = -1;
            FreezeCustom = -1;

            FreezeSupply = -1;
            DDMultiplier = 1;
            DTMultiplier = 1;
            TSMultiplier = 1;
        }
Example #2
0
        public void ApplyChanges()
        {
            PlayerCheck    = NewPlayerCheck;
            CheckedPlayers = NewCheckedPlayers;

            int     Mins      = (int)boxMins.Value;
            int     Gas       = (int)boxGas.Value;
            int     Terra     = (int)boxTerra.Value;
            int     Custom    = (int)boxCustom.Value;
            fixed32 Supply    = (float)boxSupply.Value;
            fixed32 MaxSupply = cfMaxSupply.Checked ? (float)Supply : (float)boxMaxSupply.Value;

            FreezeMins   = cfMins.Checked ? Mins : -1;
            FreezeGas    = cfGas.Checked ? Gas : -1;
            FreezeTerra  = cfTerra.Checked ? Terra : -1;
            FreezeCustom = cfCustom.Checked ? Custom : -1;
            FreezeSupply = cfSupply.Checked ? Supply : -1;

            FreezeTS = cbFreezeUnits.Checked;

            bool ChangeDD = false;
            bool ChangeDT = false;
            bool ChangeTS = false;

            if (!rDDNoChange.Checked)
            {
                ChangeDD = true;
                if (rDDNone.Checked)
                {
                    DDMultiplier = 0;
                }
                if (rDDNormal.Checked)
                {
                    DDMultiplier = 1;
                }
                if (rDDCustom.Checked)
                {
                    DDMultiplier = (float)boxDDCustom.Value;
                }
            }

            if (!rDTNoChange.Checked)
            {
                ChangeDT = true;
                if (rDTNone.Checked)
                {
                    DTMultiplier = 0;
                }
                if (rDTNormal.Checked)
                {
                    DTMultiplier = 1;
                }
                if (rDTCustom.Checked)
                {
                    DTMultiplier = (float)boxDTCustom.Value;
                }
            }

            if (!rTSNoChange.Checked)
            {
                ChangeTS = true;
                if (rTSNone.Checked)
                {
                    TSMultiplier = 0;
                }
                if (rTSNormal.Checked)
                {
                    TSMultiplier = 1;
                }
                if (rTSCustom.Checked)
                {
                    TSMultiplier = (float)boxTSCustom.Value;
                }
            }

            for (int i = 0; i < 16; i++)
            {
                if (PlayerCheck[i])
                {
                    if (Mins >= 0)
                    {
                        GameData.offsets.WriteArrayElementMember(ORNames.Players, i, ORNames.minerals_current, (uint)Mins);
                    }
                    if (Gas >= 0)
                    {
                        GameData.offsets.WriteArrayElementMember(ORNames.Players, i, ORNames.vespene_current, (uint)Gas);
                    }
                    if (Terra >= 0)
                    {
                        GameData.offsets.WriteArrayElementMember(ORNames.Players, i, ORNames.terrazine_current, (uint)Terra);
                    }
                    if (Custom >= 0)
                    {
                        GameData.offsets.WriteArrayElementMember(ORNames.Players, i, ORNames.custom_resource_current, (uint)Custom);
                    }
                    if (MaxSupply >= 0)
                    {
                        GameData.offsets.WriteArrayElementMember(ORNames.Players, i, ORNames.supply_limit, MaxSupply);
                    }
                    if (Supply >= 0)
                    {
                        GameData.offsets.WriteArrayElementMember(ORNames.Players, i, ORNames.supply_cap, Supply);
                    }

                    if (ChangeDD)
                    {
                        GameData.offsets.WriteArrayElementMember(ORNames.Players, i, ORNames.attack_multiplier, DDMultiplier);
                    }
                    if (ChangeDT)
                    {
                        GameData.offsets.WriteArrayElementMember(ORNames.Players, i, ORNames.defense_multiplier, DTMultiplier);
                    }
                }
            }

            List <Unit> AffectedUnits = GameData.GetPlayersUnits(CheckedPlayers);

            foreach (Unit unit in AffectedUnits)
            {
                if (ChangeTS)
                {
                    unit.timeScale = TSMultiplier;
                }
            }
        }