Esempio n. 1
0
 public long Load(string Filename)
 {
     long num2;
     this.xPlanets = new Collection();
     Decryptor decryptor = new Decryptor();
     int num4 = Strings.InStrRev(Filename, ".m", -1, CompareMethod.Text);
     if (num4 > 0)
     {
         this.PlayerNo = Conversions.ToInteger(Filename.Substring(num4 + 1));
         Filename = Filename.Substring(0, num4 - 1);
     }
     else
     {
         Interaction.MsgBox("A valid .m file must be entered", MsgBoxStyle.ApplicationModal, null);
         return num2;
     }
     this.xyFile = decryptor.OpenFile(Filename + ".xy");
     this.xPlayerCount = this.xyFile[0x1c];
     this.xPlanetCount = this.xyFile[30] + (this.xyFile[0x1f] * 0x100);
     this.xGameName = "";
     int index = 0x34;
     do
     {
         if (this.xyFile[index] == 0)
         {
             break;
         }
         this.xGameName = this.xGameName + Conversions.ToString(Strings.Chr(this.xyFile[index]));
         index++;
     }
     while (index <= 0x53);
     int x = 0x3e8;
     int num9 = this.PlanetCount - 1;
     for (int i = 0; i <= num9; i++)
     {
         Planet item = new Planet(i);
         item.X = (this.xyFile[(0x54 + (i * 4)) + 0] + ((this.xyFile[(0x54 + (i * 4)) + 1] & 3) * 0x100)) + x;
         x = item.X;
         item.Y = (int) Math.Round((double) (Conversion.Int((double) (((double) this.xyFile[(0x54 + (i * 4)) + 1]) / 4.0)) + ((this.xyFile[(0x54 + (i * 4)) + 2] & 0x3f) * 0x40)));
         item.NameID = (int) Math.Round((double) (Conversion.Int((double) (((double) this.xyFile[(0x54 + (i * 4)) + 2]) / 64.0)) + (this.xyFile[(0x54 + (i * 4)) + 3] * 4)));
         this.Planets().Add(item, "ID" + Conversions.ToString(i), null, null);
     }
     this.mFile = decryptor.OpenFile(Filename + ".m" + Conversions.ToString(this.PlayerNo));
     this.hstLoaded = true;
     int hstPosition = 0;
     do
     {
         int num7;
         int num8;
         byte[] data = new byte[0x401];
         this.ReadBlock(this.mFile, ref hstPosition, ref data, ref num8, ref num7);
     }
     while (hstPosition != this.mFile.Length);
     return num2;
 }
Esempio n. 2
0
 public static object CalculateHabValue2(Planet Planet, Race Race)
 {
     int num4 = 0;
     int num = 0;
     int num5 = 0;
     int num3 = 0;
     if (Race.CentreGravity == 0xff)
     {
         num = 0x2710;
     }
     else if (Planet.Gravity > Race.CentreGravity)
     {
         if (Planet.Gravity > Race.HighGravity)
         {
             num = Race.HighGravity - Planet.Gravity;
             if (num < -15)
             {
                 num4 = -15;
             }
             else
             {
                 num4 += num;
             }
         }
         else
         {
             num = (int) Math.Round((double) (100.0 - Conversion.Int((double) ((((double) (Planet.Gravity - Race.CentreGravity)) / ((double) (Race.HighGravity - Race.CentreGravity))) * 100.0))));
         }
     }
     else if (Planet.Gravity < Race.LowGravity)
     {
         num = Race.LowGravity - Planet.Gravity;
         if (num < -15)
         {
             num4 = -15;
         }
         else
         {
             num4 += num;
         }
     }
     else
     {
         num = (int) Math.Round((double) (100.0 - Conversion.Int((double) ((((double) (Race.CentreGravity - Planet.Gravity)) / ((double) (Race.CentreGravity - Race.LowGravity))) * 100.0))));
     }
     if (Race.CentreTemperature == 0xff)
     {
         num5 = 0x2710;
     }
     else if (Planet.Gravity > Race.CentreTemperature)
     {
         if (Planet.Temperature > Race.HighTemperature)
         {
             num5 = Race.HighTemperature - Planet.Temperature;
             if (num5 < -15)
             {
                 num4 = -15;
             }
             else
             {
                 num4 += num5;
             }
         }
         else
         {
             num5 = (int) Math.Round((double) (100.0 - Conversion.Int((double) ((((double) (Planet.Temperature - Race.CentreTemperature)) / ((double) (Race.HighTemperature - Race.CentreTemperature))) * 100.0))));
         }
     }
     else if (Planet.Temperature < Race.LowTemperature)
     {
         num5 = Race.LowTemperature - Planet.Temperature;
         if (num5 < -15)
         {
             num4 = -15;
         }
         else
         {
             num4 += num5;
         }
     }
     else
     {
         num5 = (int) Math.Round((double) (100.0 - Conversion.Int((double) ((((double) (Race.CentreTemperature - Planet.Temperature)) / ((double) (Race.CentreTemperature - Race.LowTemperature))) * 100.0))));
     }
     if (Race.CentreRadiation == 0xff)
     {
         num3 = 0x2710;
     }
     else if (Planet.Radiation > Race.CentreRadiation)
     {
         if (Planet.Radiation > Race.HighRadiation)
         {
             num3 = Race.HighRadiation - Planet.Radiation;
             if (num3 < -15)
             {
                 num4 = -15;
             }
             else
             {
                 num4 += num3;
             }
         }
         else
         {
             num3 = (int) Math.Round((double) (100.0 - Conversion.Int((double) ((((double) (Planet.Radiation - Race.CentreRadiation)) / ((double) (Race.HighRadiation - Race.CentreRadiation))) * 100.0))));
         }
     }
     else if (Planet.Radiation < Race.LowRadiation)
     {
         num3 = Race.LowRadiation - Planet.Radiation;
         if (num3 < -15)
         {
             num4 = -15;
         }
         else
         {
             num4 += num3;
         }
     }
     else
     {
         num3 = (int) Math.Round((double) (100.0 - Conversion.Int((double) ((((double) (Race.CentreRadiation - Planet.Radiation)) / ((double) (Race.CentreRadiation - Race.LowRadiation))) * 100.0))));
     }
     if (num4 < 0)
     {
         return num4;
     }
     return Conversion.Int((double) (Math.Sqrt(((double) (((num * num) + (num5 * num5)) + (num3 * num3))) / 3.0) + 0.9));
 }
Esempio n. 3
0
        public static object CalculateHabValue2(Planet Planet, Race Race)
        {
            int num4 = 0;
            int num  = 0;
            int num5 = 0;
            int num3 = 0;

            if (Race.CentreGravity == 0xff)
            {
                num = 0x2710;
            }
            else if (Planet.Gravity > Race.CentreGravity)
            {
                if (Planet.Gravity > Race.HighGravity)
                {
                    num = Race.HighGravity - Planet.Gravity;
                    if (num < -15)
                    {
                        num4 = -15;
                    }
                    else
                    {
                        num4 += num;
                    }
                }
                else
                {
                    num = (int)Math.Round((double)(100.0 - Conversion.Int((double)((((double)(Planet.Gravity - Race.CentreGravity)) / ((double)(Race.HighGravity - Race.CentreGravity))) * 100.0))));
                }
            }
            else if (Planet.Gravity < Race.LowGravity)
            {
                num = Race.LowGravity - Planet.Gravity;
                if (num < -15)
                {
                    num4 = -15;
                }
                else
                {
                    num4 += num;
                }
            }
            else
            {
                num = (int)Math.Round((double)(100.0 - Conversion.Int((double)((((double)(Race.CentreGravity - Planet.Gravity)) / ((double)(Race.CentreGravity - Race.LowGravity))) * 100.0))));
            }
            if (Race.CentreTemperature == 0xff)
            {
                num5 = 0x2710;
            }
            else if (Planet.Gravity > Race.CentreTemperature)
            {
                if (Planet.Temperature > Race.HighTemperature)
                {
                    num5 = Race.HighTemperature - Planet.Temperature;
                    if (num5 < -15)
                    {
                        num4 = -15;
                    }
                    else
                    {
                        num4 += num5;
                    }
                }
                else
                {
                    num5 = (int)Math.Round((double)(100.0 - Conversion.Int((double)((((double)(Planet.Temperature - Race.CentreTemperature)) / ((double)(Race.HighTemperature - Race.CentreTemperature))) * 100.0))));
                }
            }
            else if (Planet.Temperature < Race.LowTemperature)
            {
                num5 = Race.LowTemperature - Planet.Temperature;
                if (num5 < -15)
                {
                    num4 = -15;
                }
                else
                {
                    num4 += num5;
                }
            }
            else
            {
                num5 = (int)Math.Round((double)(100.0 - Conversion.Int((double)((((double)(Race.CentreTemperature - Planet.Temperature)) / ((double)(Race.CentreTemperature - Race.LowTemperature))) * 100.0))));
            }
            if (Race.CentreRadiation == 0xff)
            {
                num3 = 0x2710;
            }
            else if (Planet.Radiation > Race.CentreRadiation)
            {
                if (Planet.Radiation > Race.HighRadiation)
                {
                    num3 = Race.HighRadiation - Planet.Radiation;
                    if (num3 < -15)
                    {
                        num4 = -15;
                    }
                    else
                    {
                        num4 += num3;
                    }
                }
                else
                {
                    num3 = (int)Math.Round((double)(100.0 - Conversion.Int((double)((((double)(Planet.Radiation - Race.CentreRadiation)) / ((double)(Race.HighRadiation - Race.CentreRadiation))) * 100.0))));
                }
            }
            else if (Planet.Radiation < Race.LowRadiation)
            {
                num3 = Race.LowRadiation - Planet.Radiation;
                if (num3 < -15)
                {
                    num4 = -15;
                }
                else
                {
                    num4 += num3;
                }
            }
            else
            {
                num3 = (int)Math.Round((double)(100.0 - Conversion.Int((double)((((double)(Race.CentreRadiation - Planet.Radiation)) / ((double)(Race.CentreRadiation - Race.LowRadiation))) * 100.0))));
            }
            if (num4 < 0)
            {
                return(num4);
            }
            return(Conversion.Int((double)(Math.Sqrt(((double)(((num * num) + (num5 * num5)) + (num3 * num3))) / 3.0) + 0.9)));
        }