Exemplo n.º 1
0
        public void OnRaid(RaidType raid, Location location, int turn)
        {
            if (m_Actor.IsSleeping)
            {
                return;
            }

            string raidDesc;

            switch (raid)
            {
            case RaidType.ARMY_SUPLLIES: raidDesc = "a chopper hovering"; break;

            case RaidType.BIKERS: raidDesc = "motorcycles coming"; break;

            case RaidType.BLACKOPS: raidDesc = "a chopper hovering"; break;

            case RaidType.GANGSTA: raidDesc = "cars coming"; break;

            case RaidType.NATGUARD: raidDesc = "the army coming"; break;

            case RaidType.SURVIVORS: raidDesc = "honking coming"; break;

            default:
                throw new ArgumentOutOfRangeException(String.Format("unhandled raidtype {0}", raid.ToString()));
            }

            m_LastRaidHeard = new Percept(raidDesc, turn, location);
        }
Exemplo n.º 2
0
        public int LastRaidTime(RaidType raid, District district)
        {
            if (district == null)
            {
                throw new ArgumentNullException("district");
            }

            return(m_Event_Raids[(int)raid, district.WorldPosition.X, district.WorldPosition.Y]);
        }
Exemplo n.º 3
0
        public bool HasRaidHappened(RaidType raid, District district)
        {
            if (district == null)
            {
                throw new ArgumentNullException("district");
            }

            return(m_Event_Raids[(int)raid, district.WorldPosition.X, district.WorldPosition.Y] > -1);
        }
Exemplo n.º 4
0
        public void SetLastRaidTime(RaidType raid, District district, int turnCounter)
        {
            if (district == null)
            {
                throw new ArgumentNullException("district");
            }

            lock (m_Event_Raids) // thread safe.
            {
                m_Event_Raids[(int)raid, district.WorldPosition.X, district.WorldPosition.Y] = turnCounter;
            }
        }
 public RaidParameters(int index, ulong seed, int stars, int randRoll, int flags, RaidType type, int location, int x, int y)
 {
     Seed           = seed;
     Flags          = flags;
     Type           = type;
     IsActive       = type > 0;
     IsCrystal      = index == 16;
     IsRare         = Type == RaidType.Rare || Type == RaidType.RareWish;
     IsEvent        = IsActive && (Flags & 2) == 2;
     IsWishingPiece = Type == RaidType.CommonWish || Type == RaidType.RareWish;
     WattsHarvested = (Flags & 1) == 1;
     Stars          = stars;
     RandRoll       = randRoll;
     Index          = index;
     Location       = LocationNames[location];
     X = x;
     Y = y;
 }
Exemplo n.º 6
0
 string RaidDateTimeToString(DateTime dt, RaidType rt) =>
 timeService.ConvertToLocalString(dt, rt == RaidType.Normal ? TimeService.TimeFormat : TimeService.DateTimeFormat);
Exemplo n.º 7
0
        public static string[] Calc(RaidType raidType,
                                    int diskIOPS,
                                    int diskCount,
                                    int diskSize,
                                    int readWrite)
        {
            string raidSize = string.Empty;
            string raidIOPS = string.Empty;

            try {
                if (diskCount < dictDisksMinQuantity[raidType])
                {
                    raidSize = "Необходимое количество" + Environment.NewLine +
                               "дисков более " + dictDisksMinQuantity[raidType];
                    raidIOPS = "Введите корректное" + Environment.NewLine +
                               "количество дисков";
                }
                else
                {
                    double raidSizeValue = 0;

                    switch (raidType)
                    {
                    case RaidType.Raid0:
                        raidSizeValue = diskSize * diskCount;
                        break;

                    case RaidType.Raid1:
                        raidSizeValue = diskSize;
                        break;

                    case RaidType.Raid5:
                        raidSizeValue = diskSize * (diskCount - 1);
                        break;

                    case RaidType.Raid6:
                        raidSizeValue = diskSize * (diskCount - 2);
                        break;

                    case RaidType.Raid10:
                        raidSizeValue = diskSize * ((double)diskCount / 2.0d);
                        break;

                    case RaidType.Raid50:
                        raidSizeValue = diskSize * (diskCount - 2);
                        break;

                    case RaidType.Raid60:
                        raidSizeValue = diskSize * (diskCount - 4);
                        break;

                    case RaidType.Raid61:
                        raidSizeValue = diskSize * (double)(diskCount - 2) / 2.0d;
                        break;

                    default:
                        break;
                    }

                    double minlIOPS          = diskCount * (double)diskIOPS / dictRaidPenalty[raidType];
                    double maxIOPS           = diskCount * (double)diskIOPS;
                    double onePercentPenalty = (maxIOPS - minlIOPS) / 100.0d;
                    double raidIOPSValue     = minlIOPS + onePercentPenalty * readWrite;

                    if (raidType == RaidType.Raid50 || raidType == RaidType.Raid60)
                    {
                        raidIOPSValue *= 2;
                    }

                    raidSize = raidSizeValue.ToString("N0", CultureInfo.CurrentCulture);
                    raidIOPS = raidIOPSValue.ToString("N0", CultureInfo.CurrentCulture);
                }
            } catch (Exception e) {
                MessageBox.Show(e.Message + Environment.NewLine + e.StackTrace, "",
                                MessageBoxButton.OK, MessageBoxImage.Error);
            }

            return(new string[] { raidSize, raidIOPS });
        }