public DropBombScenario(Scenario_Info info, int tier)
            : base(info, tier)
        {
            foreach (Scenario_Object scenarioObject in info.ScenObjects)
            {
                if (scenarioObject.ObjectiveName == "Powder Keg")
                {
                    CreateBomb(scenarioObject.WorldPosX, scenarioObject.WorldPosY, scenarioObject.PosZ, scenarioObject.Heading);
                    _bombSpawn  = new Point3D(scenarioObject.WorldPosX, scenarioObject.WorldPosY, scenarioObject.PosZ);
                    _centerGlow = AddObject(scenarioObject.WorldPosX, scenarioObject.WorldPosY, scenarioObject.PosZ, scenarioObject.Heading, 99858);
                }

                if (scenarioObject.ObjectiveName == "Gun Powder" && scenarioObject.Identifier == 1)
                {
                    _orderGunPowder = AddObject(scenarioObject.WorldPosX, scenarioObject.WorldPosY, scenarioObject.PosZ, scenarioObject.Heading, 100331);
                }

                if (scenarioObject.ObjectiveName == "Gun Powder" && scenarioObject.Identifier == 2)
                {
                    _destroGunPowder = AddObject(scenarioObject.WorldPosX, scenarioObject.WorldPosY, scenarioObject.PosZ, scenarioObject.Heading, 100331);
                }
            }
            _orderGunPowder.Flags  = 0x24;
            _destroGunPowder.Flags = 0x24;
            _bomb.Flags            = 0x24;
        }
Exemple #2
0
        public FlagDominationScenario(Scenario_Info info, int tier)
            : base(info, tier)
        {
            foreach (Scenario_Object obj in info.ScenObjects)
            {
                if (obj.Type == "Capture Point")
                {
                    CapturePoint cPoint = new CapturePoint(obj, CaptureValid, OnCapture);
                    _capturePoints.Add(cPoint);
                    Region.AddObject(cPoint, info.MapId);
                }

                else if (obj.Type == "Flag")
                {
                    _flag = new HoldObject(obj.Identifier, obj.ObjectiveName, new Point3D(obj.WorldPosX, obj.WorldPosY, obj.PosZ), 60001, 13000, FlagPickedUp, ObjectDropped, ObjectReset, null, 299, 299);
                    Region.AddObject(_flag, info.MapId);
                    AddTrackedObject(_flag);
                }

                else
                {
                    LoadScenarioObject(obj);
                }
            }

            ZoneMgr curZone = Region.GetZoneMgr(Info.MapId);

            Region.LoadCells((ushort)(curZone.Info.OffX + 8), (ushort)(curZone.Info.OffY + 8), 8);
        }
        public DominationScenarioKhaine(Scenario_Info info, int tier)
            : base(info, tier)
        {
            foreach (Scenario_Object scenarioObject in info.ScenObjects.OrderBy(e => e.Identifier).ToList())
            {
                if (scenarioObject.Type == "Flag")
                {
                    ClickFlag clickFlag = new ClickFlag(scenarioObject.Identifier, scenarioObject.ObjectiveName,
                                                        scenarioObject.WorldPosX, scenarioObject.WorldPosY, scenarioObject.PosZ, scenarioObject.Heading,
                                                        scenarioObject.PointGain, scenarioObject.PointOverTimeGain, new ClickFlag.ClickFlagDelegate(OnHold), new ClickFlag.ClickFlagDelegate(OnCaptured));
                    Flags.Add(clickFlag);
                    Region.AddObject(clickFlag, info.MapId);

                    clickFlag.Open            = true;
                    clickFlag.Owner           = 0;
                    clickFlag.ShowGlow        = true;
                    clickFlag.HoldDuration    = 0;
                    clickFlag.CaptureCastTime = 10;
                }
                else
                {
                    LoadScenarioObject(scenarioObject);
                }
            }
        }
        public DropPartScenario(Scenario_Info info, int tier)
            : base(info, tier)
        {
            foreach (Scenario_Object scBall in info.ScenObjects)
            {
                if (scBall.ObjectiveName == "Salvage")
                {
                    CreateSalvage(scBall.WorldPosX, scBall.WorldPosY, scBall.PosZ, scBall.Heading);
                    _salvageSpawn = new Point3D(scBall.WorldPosX, scBall.WorldPosY, scBall.PosZ);
                }

                if (scBall.ObjectiveName == "Order Parts Wagon")
                {
                    _orderCart = AddObject(scBall.WorldPosX, scBall.WorldPosY, scBall.PosZ, scBall.Heading, 100595);
                }

                if (scBall.ObjectiveName == "Destruction Parts Wagon")
                {
                    _destroCart = AddObject(scBall.WorldPosX, scBall.WorldPosY, scBall.PosZ, scBall.Heading, 98822);
                }

                if (scBall.ObjectiveName == "Center Glow")
                {
                    _centerGlow = AddObject(scBall.WorldPosX, scBall.WorldPosY, scBall.PosZ, scBall.Heading, 99858);
                }
            }
            _orderCart.Flags  = 0x24;
            _destroCart.Flags = 0x24;
            _salvage.Flags    = 0x24;
        }
        public CaptureTheFlagScenario(Scenario_Info info, byte tier) : base(info, tier)
        {
            foreach (Scenario_Object obj in info.ScenObjects)
            {
                if (obj.Type == "Flag")
                {
                    HoldObject flag = new HoldObject(obj.Identifier, obj.ObjectiveName, new Point3D(obj.WorldPosX, obj.WorldPosY, obj.PosZ), 60001, 13000, ObjectPickedUp, FlagDropped, FlagReset, FlagBuffAssigned, 3442, 3442);

                    if (obj.ObjectiveName == "Order Flag")
                    {
                        flag.VfxState = 2;
                        _captureScore = obj.PointGain;
                        flag.SetActive(Realms.REALMS_REALM_DESTRUCTION);
                    }

                    else if (obj.ObjectiveName == "Destruction Flag")
                    {
                        flag.VfxState = 5;
                        _captureScore = obj.PointGain;
                        flag.SetActive(Realms.REALMS_REALM_ORDER);
                    }

                    else
                    {
                        flag.SetActive(0);
                        flag.HoldResetTimeSeconds = 180;
                        _captureScore             = obj.PointGain;
                    }

                    flag.ObjectType = 1;

                    _flags.Add(flag);
                    Region.AddObject(flag, info.MapId);
                    AddTrackedObject(flag);
                }
                else
                {
                    LoadScenarioObject(obj);
                }

                ZoneMgr curZone = Region.GetZoneMgr(Info.MapId);

                Region.LoadCells((ushort)(curZone.Info.OffX + 8), (ushort)(curZone.Info.OffY + 8), 8);
            }
        }
Exemple #6
0
        public DominationScenarioPushCenter(Scenario_Info info, int tier)
            : base(info, tier)
        {
            int i         = 0;
            int flagCount = info.ScenObjects.Where(e => e.Type == "Flag").ToList().Count;

            foreach (Scenario_Object scenarioObject in info.ScenObjects.OrderBy(e => e.Identifier).ToList())
            {
                if (scenarioObject.Type == "Flag")
                {
                    ClickFlag clickFlag = new ClickFlag(scenarioObject.Identifier, scenarioObject.ObjectiveName,
                                                        scenarioObject.WorldPosX, scenarioObject.WorldPosY, scenarioObject.PosZ, scenarioObject.Heading,
                                                        scenarioObject.PointGain, scenarioObject.PointOverTimeGain, new ClickFlag.ClickFlagDelegate(OnHold), new ClickFlag.ClickFlagDelegate(OnCaptured));
                    Flags.Add(clickFlag);
                    Region.AddObject(clickFlag, info.MapId);

                    clickFlag.Open = false;

                    if (i < (flagCount / 2))
                    {
                        clickFlag.Open  = false;
                        clickFlag.Owner = 1;
                    }
                    else if (i == flagCount / 2)
                    {
                        clickFlag.Open  = true;
                        clickFlag.Owner = 0;
                        CurrentFlag     = clickFlag;
                        CreateGlow(CurrentFlag);
                    }
                    else
                    {
                        clickFlag.Open  = false;
                        clickFlag.Owner = 2;
                    }
                    i++;
                }

                else
                {
                    LoadScenarioObject(scenarioObject);
                }
            }
        }
        public DoubleDominationScenario(Scenario_Info info, int tier)
            : base(info, tier)
        {
            //flags.Add(new Flag(RKF_1, "The Landing", 360109, 428854, 6433, 1024));

            foreach (Scenario_Object scenarioObject in info.ScenObjects)
            {
                if (scenarioObject.Type == "Capture Point")
                {
                    CapturePoint cPoint = new CapturePoint(scenarioObject, null, OnCapture);
                    _capturePoints.Add(cPoint);
                    Region.AddObject(cPoint, info.MapId);
                }

                else
                {
                    LoadScenarioObject(scenarioObject);
                }
            }
        }
Exemple #8
0
        public DominationScenarioPush(Scenario_Info info, int tier)
            : base(info, tier)
        {
            //flags.Add(new Flag(RKF_1, "The Landing", 360109, 428854, 6433, 1024));

            FlagLevel[0] = new List <ProximityFlag>();
            FlagLevel[1] = new List <ProximityFlag>();
            FlagLevel[2] = new List <ProximityFlag>();

            foreach (Scenario_Object scenarioObject in info.ScenObjects)
            {
                Log.Info("DominationScenarioPush", "Adding flag " + scenarioObject.ObjectiveName + " realm:" + scenarioObject.Realm);
                if (scenarioObject.Type == "Flag")
                {
                    ProximityFlag proximityFlag = new ProximityFlag(scenarioObject.Identifier, scenarioObject.ObjectiveName,
                                                                    scenarioObject.WorldPosX, scenarioObject.WorldPosY, scenarioObject.PosZ, scenarioObject.Heading,
                                                                    scenarioObject.PointGain, scenarioObject.PointOverTimeGain, scenarioObject);
                    Flags.Add(proximityFlag);
                    Region.AddObject(proximityFlag, info.MapId);

                    if (scenarioObject.Realm == 0)
                    {
                        FlagLevel[1].Add(proximityFlag);
                    }
                    else if (scenarioObject.Realm == 1)
                    {
                        FlagLevel[0].Add(proximityFlag);
                    }
                    else if (scenarioObject.Realm == 2)
                    {
                        FlagLevel[2].Add(proximityFlag);
                    }
                }

                else
                {
                    LoadScenarioObject(scenarioObject);
                }
            }
        }
        public MurderballScenario(Scenario_Info info, int tier)
            : base(info, tier)
        {
            foreach (Scenario_Object obj in info.ScenObjects)
            {
                HoldObject ball;

                if (obj.ProtoEntry != 0)
                {
                    GameObject_proto proto = GameObjectService.GetGameObjectProto(obj.ProtoEntry);

                    ball = new HoldObject(obj.Identifier, obj.ObjectiveName, new Point3D(obj.WorldPosX, obj.WorldPosY, obj.PosZ), 14031, 30000, BallPickedUp, BallDropped, ObjectReset, BallBuffAssigned, proto.DisplayID, proto.DisplayID);
                }
                else
                {
                    ball = new HoldObject(obj.Identifier, obj.ObjectiveName, new Point3D(obj.WorldPosX, obj.WorldPosY, obj.PosZ), 14031, 30000, BallPickedUp, BallDropped, ObjectReset, BallBuffAssigned, 235, 233);
                }

                _murderballTicks.Add(ball, 0);
                Region.AddObject(ball, info.MapId);
            }
        }
        public DominationScenario(Scenario_Info info, int tier)
            : base(info, tier)
        {
            //flags.Add(new Flag(RKF_1, "The Landing", 360109, 428854, 6433, 1024));

            foreach (Scenario_Object scenarioObject in info.ScenObjects)
            {
                if (scenarioObject.Type == "Flag")
                {
                    ProximityFlag proximityFlag = new ProximityFlag(scenarioObject.Identifier, scenarioObject.ObjectiveName,
                                                                    scenarioObject.WorldPosX, scenarioObject.WorldPosY, scenarioObject.PosZ, scenarioObject.Heading,
                                                                    scenarioObject.PointGain, scenarioObject.PointOverTimeGain);
                    Flags.Add(proximityFlag);
                    Region.AddObject(proximityFlag, info.MapId);
                }

                else
                {
                    LoadScenarioObject(scenarioObject);
                }
            }
        }
 public DominationScenarioEC(Scenario_Info info, int tier)
     : base(info, tier)
 {
 }