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; }
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); } }
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); } } }
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) { }