// September 2015 // Levee Patroller / Dijk Patrouille // This source file is (c) by Deltares. This source file is open source but only available to select users. Do not redistribute without written permission of Stichting Deltares, Delft, The Netherlands. // This header has been automatically generated. class LeveeFailureMacroRegional extends LeveeFailure placeable; function SetFailureOptions() { /// Failure information: Mechanism = FM_Macro; LinkedTile.Mechanism = Mechanism; NL_FailureName = "Macrostabiliteit"; EN_FailureName = "Macrostability"; super.SetFailureOptions(); LinkedTile.CurrentState = STA_Reportable; } function CreateObjects() { local DynamicMover M; local DynamicMeshActor sMA; local Emitter E; /// ID is the same as the linked object: id = LinkedTile.Name; /// MANUALLY EDITTED RELATIVE ROTATION FROM 16384 to -16384!!!! /// Creating World Objects: /// For the record: The likely center is: 4096.00,-2784.00,-384.00 /// For the record: The likely center rotation: 0,16384,0 /// Set relative rotation, the original failure was based on a rotation of -16384. So now we need to turn it back. SetFailureRelativeRotation(-16384); sMA = CreateMesh(Location, id$"StaticMeshActor", StaticMesh'SecDikeSM.MacroStab.SecMacroStabBase'); RotationOffset(sMA, LinkedTile.Rotation, 0,0,0); M = CreateMover(Location, id$"SecBackCrash12", StaticMesh'SecDikeSM.MacroStab.SecMacroBackRight' , 3.00, 3); M.SetKeyPos( RotateVectorNoLocation(0.00,0.00,-16.00), 1); M.SetKeyRot( rot(0,-1024,0), 1); M.SetKeyPos( RotateVectorNoLocation(-408.00,-56.00,-272.00), 2); M.SetKeyRot( rot(0,-2048,0), 2); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(Location, id$"SecBackCrash22", StaticMesh'SecDikeSM.MacroStab.SecMacroBackLeft' , 3.00, 3); M.SetKeyPos( RotateVectorNoLocation(-40.00,-600.00,-8.00), 1); M.SetKeyRot( rot(0,1024,0), 1); M.SetKeyPos( RotateVectorNoLocation(280.00,-872.00,-184.00), 2); M.SetKeyRot( rot(0,2048,0), 2); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(Location, id$"SecSlide2", StaticMesh'SecDikeSM.MacroStab.SecMacroFront' , 10.00, 3); M.SetKeyPos( RotateVectorNoLocation(0.00,32.00,-176.00), 1); M.SetKeyRot( rot(-1024,0,0), 1); M.SetKeyPos( RotateVectorNoLocation(0.00,-312.00,-608.00), 2); M.SetKeyRot( rot(-3072,0,0), 2); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(Location, id$"SecRoadFront2", StaticMesh'SecDikeSM.MacroStab.SecMacroRoadFront' , 180.00, 2); M.SetKeyPos( RotateVectorNoLocation(0.00,-28.00,-84.00), 1); M.SetKeyRot( rot(-656,0,0), 1); M.AttachTag = GetName(id$"SecSlide2"); M.SetBase(GetActor(M.AttachTag), vect(0,0,1)); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(RotateVector(0.00,8.00,0.00), id$"SecCrashWater2", StaticMesh'PrimDikeSM.BreakTroughFX.WildWaterMeshSec' , 2.00, 2); M.SetKeyPos( RotateVectorNoLocation(4.00,-48.00,8.00), 1); M.SetKeyRot( rot(-8192,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 8192,0,0); M = CreateMover(Location, id$"SecTopCrash2", StaticMesh'SecDikeSM.MacroStab.SecMacroTop' , 10.00, 4); M.SetKeyPos( RotateVectorNoLocation(0.00,-40.00,-160.00), 1); M.SetKeyRot( rot(-1024,0,0), 1); M.SetKeyPos( RotateVectorNoLocation(0.00,-120.00,-376.00), 2); M.SetKeyRot( rot(-2048,0,0), 2); M.SetKeyPos( RotateVectorNoLocation(0.00,-336.00,-480.00), 3); M.SetKeyRot( rot(-2048,0,0), 3); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(RotateVector(-400.00,1120.00,384.00), id$"SecDitchMovement2", StaticMesh'PrimDikeSM.MacroStab.MudInDitch' , 120.00, 2); M.SetDrawScale(0.80); M.SetKeyPos( RotateVectorNoLocation(-192.00,-504.00,0.00), 1); M.SetKeyRot( rot(0,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 0,-16384,0); /// 2007-11-12 Jln /// NOTICE: THIS ONE HAS BEEN MODIFIED BY HAND. LEAVE IT ALONE!!! M = CreateMover(RotateVector(1004.00,-800.00,80.00), id$"SecMudPile2", StaticMesh'PrimDikeSM.MacroStab.GrassyMudPile' , 16.00, 2); M.SetDrawScale(0.450); M.SetKeyPos( RotateVectorNoLocation(0.00,0.00,90.00), 1); M.SetKeyRot( rot(0,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 0,-16384,0); /// END MANUAL MODIFICATION M = CreateMover(Location, id$"SecCrack22", StaticMesh'SecDikeSM.MacroStab.SecMacroCrack2' , 10.00, 2); M.SetKeyPos( RotateVectorNoLocation(0.00,36.00,-1.00), 1); M.SetKeyRot( rot(0,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(Location, id$"SecCrack52", StaticMesh'SecDikeSM.MacroStab.SecMacroCrack5' , 10.00, 2); M.SetKeyPos( RotateVectorNoLocation(0.00,36.00,-1.00), 1); M.SetKeyRot( rot(0,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(Location, id$"SecCrack12", StaticMesh'SecDikeSM.MacroStab.SecMacroCrack1' , 10.00, 2); M.SetKeyPos( RotateVectorNoLocation(0.00,36.00,-1.00), 1); M.SetKeyRot( rot(0,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(Location, id$"SecCrack42", StaticMesh'SecDikeSM.MacroStab.SecMacroCrack4' , 10.00, 2); M.SetKeyPos( RotateVectorNoLocation(0.00,36.00,-1.00), 1); M.SetKeyRot( rot(0,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(Location, id$"SecCrack32", StaticMesh'SecDikeSM.MacroStab.SecMacroCrack3' , 10.00, 2); M.SetKeyPos( RotateVectorNoLocation(0.00,36.00,-1.00), 1); M.SetKeyRot( rot(0,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(RotateVector(0.00,8.00,-336.00), id$"MeasureSecMacro", StaticMesh'SecDikeSM.Measures.Measure_Berm_Macro_Sec' , 1.00, 2); M.SetKeyPos( RotateVectorNoLocation(0.00,0.00,336.00), 1); M.SetKeyRot( rot(0,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 0,0,0); /// Creating World Objects: E = Spawn(class'LotsOfWaterEmitter'); E.SetLocation(RotateVector(2080.00,-2272.00,136.00)); E.SetPropertyText("Tag", id$"SecLotsOfWaterEmitter2"); RotationOffset(E, LinkedTile.Rotation, 0,0,0); AddToVIAList(E); E = Spawn(class'SplashCrashEmitter'); E.SetLocation(RotateVector(2176.00,-192.00,320.00)); E.SetPropertyText("Tag", id$"SecCrashSplashEmitter2"); RotationOffset(E, LinkedTile.Rotation, 0,0,0); AddToVIAList(E); /// Call parent: Super.CreateObjects(); } function CreateTriggers() { local DScriptedTrigger sT; sT = Spawn(class'DScriptedTrigger'); /// Tag is the same as the linked object: sT.Tag = GetFailureName(); FailureScript = sT; /// Store in public leveetile var. /// Position is the same as the linked object: sT.SetLocation(LinkedTile.Location); sT.Actions.insert(0, 39); sT.Actions[0] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[0]).PauseTime = 10.00 * speedfactor; sT.Actions[1] = new class'ACTION_IfActive'; ACTION_IfActive(sT.Actions[1]).FailureTag = GetName(id$""); sT.Actions[2] = new class'ACTION_SetHidden'; ACTION_SetHidden(sT.Actions[2]).HideActorTag = GetName(id$"SecCrack42"); ACTION_SetHidden(sT.Actions[2]).bHidden = True; sT.Actions[3] = new class'ACTION_SetHidden'; ACTION_SetHidden(sT.Actions[3]).HideActorTag = GetName(id$"SecCrack32"); ACTION_SetHidden(sT.Actions[3]).bHidden = True; sT.Actions[4] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[4]).PauseTime = 600.00 * speedfactor; sT.Actions[5] = new class'ACTION_IfRelevant'; ACTION_IfRelevant(sT.Actions[5]).FailureTag = GetName(id$""); sT.Actions[6] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[6]).Event = GetName(id$"SecCrack12"); sT.Actions[7] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[7]).Event = GetName(id$"SecDitchMovement2"); sT.Actions[8] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[8]).PauseTime = 120.00 * speedfactor; sT.Actions[9] = new class'ACTION_SetHidden'; ACTION_SetHidden(sT.Actions[9]).HideActorTag = GetName(id$"SecCrack12"); ACTION_SetHidden(sT.Actions[9]).bHidden = True; sT.Actions[10] = new class'ACTION_IfCritical'; ACTION_IfCritical(sT.Actions[10]).FailureTag = GetName(id$""); sT.Actions[11] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[11]).Event = GetName(id$"SecRoadFront2"); sT.Actions[12] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[12]).PauseTime = 181.00 * speedfactor; sT.Actions[13] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[13]).Event = GetName(id$"SecSlide2"); sT.Actions[14] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[14]).Event = GetName(id$"SecCrack52"); sT.Actions[15] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[15]).PauseTime = 2.00 * speedfactor; sT.Actions[16] = new class'ACTION_SetHidden'; ACTION_SetHidden(sT.Actions[16]).HideActorTag = GetName(id$"SecMudPile2"); ACTION_SetHidden(sT.Actions[16]).bHidden = False; sT.Actions[17] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[17]).Event = GetName(id$"SecMudPile2"); sT.Actions[18] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[18]).PauseTime = 150.00 * speedfactor; sT.Actions[19] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[19]).Event = GetName(id$"SecCrack22"); sT.Actions[20] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[20]).PauseTime = 150.00 * speedfactor; sT.Actions[21] = new class'ACTION_SetHidden'; ACTION_SetHidden(sT.Actions[21]).HideActorTag = GetName(id$"SecCrack22"); ACTION_SetHidden(sT.Actions[21]).bHidden = True; sT.Actions[22] = new class'ACTION_IfNoRightMeasuresTaken'; ACTION_IfNoRightMeasuresTaken(sT.Actions[22]).FailureTag = GetName(id$""); sT.Actions[23] = new class'ACTION_Failed'; ACTION_Failed(sT.Actions[23]).FailureTag = GetName(id$""); sT.Actions[24] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[24]).Event = GetName(id$"SecTopCrash2"); sT.Actions[25] = new class'ACTION_SetHidden'; ACTION_SetHidden(sT.Actions[25]).HideActorTag = GetName(id$"SecCrack52"); ACTION_SetHidden(sT.Actions[25]).bHidden = True; sT.Actions[26] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[26]).PauseTime = 20.00 * speedfactor; sT.Actions[27] = new class'ACTION_TriggerEventOnce'; ACTION_TriggerEventOnce(sT.Actions[27]).Eventn = LinkedTile.WaterMover.Tag; sT.Actions[28] = new class'ACTION_DestroyActor'; ACTION_DestroyActor(sT.Actions[28]).DestroyTag = GetName(id$"RainyActor"); sT.Actions[29] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[29]).PauseTime = 5.00 * speedfactor; sT.Actions[30] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[30]).Event = GetName(id$"SecBackCrash12"); sT.Actions[31] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[31]).Event = GetName(id$"SecBackCrash22"); sT.Actions[32] = new class'ACTION_SetHidden'; ACTION_SetHidden(sT.Actions[32]).HideActorTag = GetName(id$"SecCrashWater2"); ACTION_SetHidden(sT.Actions[32]).bHidden = False; sT.Actions[33] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[33]).Event = GetName(id$"SecCrashWater2"); sT.Actions[34] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[34]).Event = GetName(id$"SecCrashSplashEmitter2"); sT.Actions[35] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[35]).PauseTime = 2.00 * speedfactor; sT.Actions[36] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[36]).Event = GetName(id$"SecLotsOfWaterEmitter2"); sT.Actions[37] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[37]).PauseTime = 50.00 * speedfactor; sT.Actions[38] = new class'ACTION_EndGame'; } function CreateSignals() { local SignalSettlement signal0; local SignalReportSettlement signal0report0; local SignalHorizontalMovement signal1; local SignalReportHorizontalMovement signal1report0; local SignalCrack signal2; local SignalReportCrack signal2report0; local SignalReportCrack signal2report1; /// Signals information: Signals.Insert(0,3); signal0 = New class'SignalSettlement'; signal0.CrossCutLocation=CUT_Top; signal0.FirstState=STA_Critical; signal0.RevetmentType=REV_Asphalt; signal0.SettlementPosition=SET_Inwards; signal0.SignalReports.insert(0,1); signal0report0 = New class'SignalReportSettlement'; signal0report0.GeoState = STA_Critical; signal0report0.HeightDifference = SIZE_Medium; signal0report0.HeightDifferenceMax = SIZE_VeryLarge; signal0report0.LengthOfDamage = SIZE_Large; signal0report0.LengthOfDamageMax = SIZE_VeryLarge; signal0report0.WidthOfDamage = SIZE_MediumLarge; signal0report0.WidthOfDamageMax = SIZE_Large; signal0.SignalReports[0] = signal0report0; Signals[0] = signal0; signal1 = New class'SignalHorizontalMovement'; signal1.CrossCutLocation=CUT_HinterLand; signal1.FirstState=STA_Relevant; signal1.SignalReports.insert(0,1); signal1report0 = New class'SignalReportHorizontalMovement'; signal1report0.GeoState = STA_Relevant; signal1report0.LengthOfDamage = SIZE_Medium; signal1report0.LengthOfDamageMax = SIZE_Medium; signal1report0.WidthOfDamage = SIZE_VerySmall; signal1report0.WidthOfDamageMax = SIZE_Medium; signal1.SignalReports[0] = signal1report0; Signals[1] = signal1; signal2 = New class'SignalCrack'; signal2.CrackType=CRK_Parallel; signal2.CrossCutLocation=CUT_Top; signal2.FirstState=STA_Reportable; signal2.RevetmentType=REV_Asphalt; signal2.SignalReports.insert(0,2); signal2report0 = New class'SignalReportCrack'; signal2report0.FlushingSoil = GEO_No; signal2report0.FlushingSoilQuantity = QUA_None; signal2report0.GeoState = STA_Relevant; signal2report0.LengthOfDamage = SIZE_Medium; signal2report0.LengthOfDamageMax = SIZE_MediumLarge; signal2report0.MultipleCracks = GEO_Yes; signal2report0.WidthOfDamage = SIZE_VerySmall; signal2report0.WidthOfDamageMax = SIZE_MediumLarge; signal2.SignalReports[0] = signal2report0; Signals[2] = signal2; signal2report1 = New class'SignalReportCrack'; signal2report1.FlushingSoil = GEO_No; signal2report1.FlushingSoilQuantity = QUA_None; signal2report1.GeoState = STA_Reportable; signal2report1.LengthOfDamage = SIZE_Small; signal2report1.LengthOfDamageMax = SIZE_Medium; signal2report1.MultipleCracks = GEO_Yes; signal2report1.WidthOfDamage = SIZE_VerySmall; signal2report1.WidthOfDamageMax = SIZE_Large; signal2.SignalReports[1] = signal2report1; Signals[2] = signal2; } function CreateMeasures() { local Measure Msr; /// Creating measures: Measures.Insert(0,1); Msr = New class'Measure'; Msr.SetPropertyText("EventMeasureTaken", id$"MeasureSecMacro"); Msr.bMeasureEffective = True; Msr.MeasureType = MEA_SandBank_SlakeningSlope; Measures[0] = Msr; } function CreateMeasureScripts() { local DScriptedTrigger sT; sT = Spawn(class'DScriptedTrigger'); /// Position is the same as the linked object: sT.SetLocation(LinkedTile.Location); /// Trying to write down extra measure scriptedtriggers /// Trying to find: MeasureSecMarco02 sT.Actions.insert(0, 3); sT.Actions[0] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[0]).PauseTime = 12.00 * speedfactor; sT.Actions[1] = new class'ACTION_WaitForEvent'; ACTION_WaitForEvent(sT.Actions[1]).ExternalEvent = GetName(id$"MeasureSecMarco02"); sT.Actions[2] = new class'ACTION_SetHidden'; ACTION_SetHidden(sT.Actions[2]).HideActorTag = GetName(id$"SecMacro2Deco"); ACTION_SetHidden(sT.Actions[2]).bHidden = True; }