// 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 LeveeFailureErosionInnerMicro extends LeveeFailure placeable; #exec OBJ LOAD FILE=HumanLandscapeSM.usx #exec OBJ LOAD FILE=SecDikeSM.usx function SetFailureOptions() { /// Failure information: Mechanism = FM_ErosionInnerMicro; LinkedTile.Mechanism = Mechanism; NL_FailureName = "Erosie binnentalud"; EN_FailureName = "Erosie inner"; super.SetFailureOptions(); LinkedTile.CurrentState = STA_Reportable; } function CreateObjects() { local DynamicMover M; //local DynVariableTimedMover Mv; local DynamicMeshActor sMA; local Emitter E; //local vector t; /// ID is the same as the linked object: id = LinkedTile.Name; /// Creating World Objects: /// For the record: The likely center is: -9872.21,15015.85,-384.00 /// For the record: The likely center rotation: 0,15360,0 /// Set relative rotation, the original failure was based on a rotation of -15360. So now we need to turn it back. SetFailureRelativeRotation(15360); /// Deze versie is met infiltratie. sMA = CreateMesh(Location, id$"StaticMeshActor", StaticMesh'SecDikeSM.ErosieInner.Base'); RotationOffset(sMA, LinkedTile.Rotation, 0,0,0); M = CreateMover(Location, id$"firstcircleE", StaticMesh'SecDikeSM.ErosieInner.part1_move' , 40.00, 2); M.SetKeyPos( RotateVectorNoLocation(-20.00,20.00,-301.96), 1); M.SetKeyRot( rot(-2048,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(Location, id$"secondcircleE", StaticMesh'SecDikeSM.ErosieInner.part2_move' , 35.00, 2); M.SetKeyPos( RotateVectorNoLocation(0.00,0.00,-496.00), 1); M.SetKeyRot( rot(-3072,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(Location, id$"fourthcircleE", StaticMesh'SecDikeSM.ErosieInner.part4_move' , 30.00, 2); M.SetKeyPos( RotateVectorNoLocation(0.00,0.00,-812.00), 1); M.SetKeyRot( rot(-4096,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(Location, id$"topmiddleE", StaticMesh'SecDikeSM.ErosieInner.part5_move' , 30.00, 2); M.SetKeyPos( RotateVectorNoLocation(0.00,0.00,-272.00), 1); M.SetKeyRot( rot(0,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(Location, id$"thirdcircleE", StaticMesh'SecDikeSM.ErosieInner.part3_move' , 35.00, 2); M.SetKeyPos( RotateVectorNoLocation(0.00,0.00,-660.00), 1); M.SetKeyRot( rot(-4096,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(RotateVector(16.00,0.00,-404.00), id$"waterbreed", StaticMesh'SecDikeSM.ErosieInner.WaterSerious' , 3.00, 2); M.SetKeyPos( RotateVectorNoLocation(4.00,-6.00,388.00), 1); M.SetKeyRot( rot(0,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(Location, id$"start_sand_LRE", StaticMesh'SecDikeSM.ErosieInner.mud_small_move' , 30.00, 2); M.SetKeyPos( RotateVectorNoLocation(8.00,-381.00,0.00), 1); M.SetKeyRot( rot(0,0,0), 1); M.AttachTag = GetName(id$"modderdown"); M.SetBase(GetActor(M.AttachTag), vect(0,0,1)); RotationOffset(M, LinkedTile.Rotation, 0,0,0); /// CONTAINS FIX FOR FAULTY NAME USING DYNAMICLOADOBJECT!!!! /// NOT GENERATED BY EXPORTER! M = CreateMover(RotateVector(8.00,71.00,0.00), id$"start_sand_largeE", StaticMesh(DynamicLoadObject("SecDikeSM.ErosieInner.mud big_move", class'StaticMesh')) , 20.00, 2); M.SetKeyPos( RotateVectorNoLocation(-4.00,-288.00,52.00), 1); M.SetKeyRot( rot(0,0,0), 1); M.AttachTag = GetName(id$"modderdown"); M.SetBase(GetActor(M.AttachTag), vect(0,0,1)); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(Location, id$"topleftE", StaticMesh'SecDikeSM.ErosieInner.Breach_left_move' , 30.00, 2); M.SetKeyPos( RotateVectorNoLocation(104.00,0.00,-84.00), 1); M.SetKeyRot( rot(0,0,3072), 1); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(Location, id$"toprightE", StaticMesh'SecDikeSM.ErosieInner.Breach_right_move' , 30.00, 2); M.SetKeyPos( RotateVectorNoLocation(-152.00,0.00,-296.00), 1); M.SetKeyRot( rot(0,0,-4096), 1); RotationOffset(M, LinkedTile.Rotation, 0,0,0); /// Modified by hand: (128) M = CreateMover(RotateVector(128,-20.94,-328.00), id$"MeasureSecEroInner", StaticMesh'SecDikeSM.Measures.measure_sandbagwall' , 1.00, 2); M.SetKeyPos( RotateVectorNoLocation(128.00,62.00,339.00), 1); M.SetKeyRot( rot(0,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(RotateVector(-55.72,7.15,-58.43), id$"watersmall", StaticMesh'SecDikeSM.ErosieInner.FabulousWater' , 20.00, 2); M.SetKeyPos( RotateVectorNoLocation(-4.00,0.00,64.00), 1); M.SetKeyRot( rot(0,0,0), 1); M.AttachTag = GetName(id$"thirdcircleE"); M.SetBase(GetActor(M.AttachTag), vect(0,0,1)); RotationOffset(M, LinkedTile.Rotation, 0,0,0); M = CreateMover(RotateVector(-402.79,-898.85,-482.00), id$"modderdown", StaticMesh'Editor.TexPropCube' , 20.00, 2); M.SetKeyPos( RotateVectorNoLocation(0.00,0.00,-528.00), 1); M.SetKeyRot( rot(0,0,0), 1); RotationOffset(M, LinkedTile.Rotation, 0,-15360,0); /// Creating Linked Objects: E = Spawn(class'SplashCrashEmitterInner'); E.SetLocation(RotateVector(128.00,100,320.00)); E.SetPropertyText("Tag", id$"SecCrashSplashEmitterInner"); RotationOffset(E, LinkedTile.Rotation, 0,-15360,0); AddToVIAList(E); E = Spawn(class'WaterSplashEmitter'); E.SetLocation(RotateVector(-384,1720,-42.00)); E.SetPropertyText("Tag", id$"SecCrashSplashEmitterInner"); RotationOffset(E, LinkedTile.Rotation, 0,0,0); AddToVIAList(E); /// MANUALLY CHANGED /// TO USE LINKED WATERMOVER E.AttachTag = LinkedTile.WaterMover.Tag; E.SetBase(GetActor(E.AttachTag), vect(0,0,1)); /// 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. Log("LeveeFailureMicro trigger: " @ sT); /// Position is the same as the linked object: sT.SetLocation(LinkedTile.Location); sT.Actions.insert(0, 36); 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_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[2]).PauseTime = 600.00 * speedfactor; sT.Actions[3] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[3]).Event = GetName(id$"watersmall"); sT.Actions[4] = new class'ACTION_IfRelevant'; ACTION_IfRelevant(sT.Actions[4]).FailureTag = GetName(id$""); sT.Actions[5] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[5]).PauseTime = 300.00 * speedfactor; sT.Actions[6] = new class'ACTION_IfCritical'; ACTION_IfCritical(sT.Actions[6]).FailureTag = GetName(id$""); sT.Actions[7] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[7]).Event = GetName(id$"firstcircleE"); sT.Actions[8] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[8]).Event = GetName(id$"start_sand_LRE"); sT.Actions[9] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[9]).PauseTime = 15.00 * speedfactor; sT.Actions[10] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[10]).Event = GetName(id$"secondcircleE"); sT.Actions[11] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[11]).PauseTime = 290.00 * speedfactor; sT.Actions[12] = new class'ACTION_IfNoRightMeasuresTaken'; ACTION_IfNoRightMeasuresTaken(sT.Actions[12]).FailureTag = GetName(id$""); sT.Actions[13] = new class'ACTION_Failed'; ACTION_Failed(sT.Actions[13]).FailureTag = GetName(id$""); sT.Actions[14] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[14]).PauseTime = 20.00 * speedfactor; sT.Actions[15] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[15]).Event = GetName(id$"start_sand_largeE"); sT.Actions[16] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[16]).Event = GetName(id$"thirdcircleE"); sT.Actions[17] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[17]).PauseTime = 2.00 * speedfactor; sT.Actions[18] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[18]).Event = GetName(id$"fourthcircleE"); sT.Actions[19] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[19]).PauseTime = 3.00 * speedfactor; sT.Actions[20] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[20]).Event = GetName(id$"topmiddleE"); sT.Actions[21] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[21]).Event = GetName(id$"topleftE"); sT.Actions[22] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[22]).Event = GetName(id$"toprightE"); sT.Actions[23] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[23]).PauseTime = 5.00 * speedfactor; sT.Actions[24] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[24]).Event = GetName(id$"waterbreed"); sT.Actions[25] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[25]).PauseTime = 2.00 * speedfactor; sT.Actions[26] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[26]).Event = GetName(id$"ErosionInnerSecWaterSplash"); sT.Actions[27] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[27]).PauseTime = 18.00 * speedfactor; sT.Actions[28] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[28]).Event = GetName(id$"SecCrashSplashEmitterInner"); sT.Actions[29] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[29]).PauseTime = 20.00 * speedfactor; sT.Actions[30] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[30]).Event = GetName(id$"modderdown"); sT.Actions[31] = new class'ACTION_TriggerEventOnce'; ACTION_TriggerEventOnce(sT.Actions[31]).Eventn = LinkedTile.WaterMover.Tag; sT.Actions[32] = new class'ACTION_TriggerEvent'; ACTION_TriggerEvent(sT.Actions[32]).Event = GetName(id$"ErosionInnerSecWater"); sT.Actions[33] = new class'ACTION_DestroyActor'; ACTION_DestroyActor(sT.Actions[33]).DestroyTag = GetName(id$"RainyActor"); sT.Actions[34] = new class'ACTION_WaitForTimer'; ACTION_WaitForTimer(sT.Actions[34]).PauseTime = 60.00 * speedfactor; sT.Actions[35] = new class'ACTION_EndGame'; } function CreateSignals() { local SignalOverToppingWash signal0; local SignalReportOverToppingWash signal0report0; local SignalReportOverToppingWash signal0report1; local SignalGrass signal1; local SignalReportGrass signal1report0; /// Signals information: Signals.Insert(0,2); signal0 = New class'SignalOverToppingWash'; signal0.CrossCutLocation=CUT_Top; signal0.FirstState=STA_Reportable; signal0.TypeOcurring=OVER_Topping; signal0.SignalReports.insert(0,2); signal0report0 = New class'SignalReportOverToppingWash'; signal0report0.FlushingSoil = GEO_No; signal0report0.FlushingSoilQuantity = QUA_None; signal0report0.GeoState = STA_Relevant; signal0report0.InfiltrateTopInner = GEO_Yes; signal0report0.IsAccessible = GEO_Yes; signal0report0.WaterFlowQuantity = QUA_Little; signal0report0.WavesDescription = WAVE_None; signal0.SignalReports[0] = signal0report0; Signals[0] = signal0; signal0report1 = New class'SignalReportOverToppingWash'; signal0report1.InfiltrateTopInner = GEO_Yes; signal0report1.WaterFlowQuantity = QUA_Much; signal0report1.GeoState = STA_Critical; signal0report1.IsAccessible = GEO_Yes; signal0report1.FlushingSoil = GEO_Yes; signal0report1.FlushingSoilQuantity = QUA_Much; signal0report0.WavesDescription = WAVE_None; signal0.SignalReports[1] = signal0report1; Signals[0] = signal0; signal1 = New class'SignalGrass'; signal1.CrossCutLocation=CUT_InnerSlope; signal1.FirstState=STA_Reportable; signal1.SignalReports.insert(0,1); signal1report0 = New class'SignalReportGrass'; signal1report0.GeoState = STA_Reportable; signal1report0.LengthOfDamage = SIZE_Medium; signal1report0.LengthOfDamageMax = SIZE_VeryLarge; signal1report0.WidthOfDamage = SIZE_Medium; signal1report0.WidthOfDamageMax = SIZE_VeryLarge; signal1.SignalReports[0] = signal1report0; Signals[1] = signal1; } function CreateMeasures() { local Measure Msr; log("micro: " @ id$"MeasureSecEroInner"); /// Creating measures: Measures.Insert(0,2); Msr = New class'Measure'; Msr.SetPropertyText("EventMeasureTaken", id$"MeasureSecEroInner"); Msr.bMeasureEffective = True; Msr.MeasureType = MEA_CoverInnerSlopeWithFoil; Measures[0] = Msr; Msr = New class'Measure'; Msr.SetPropertyText("EventMeasureTaken", id$"MeasureSecEroInner"); Msr.bMeasureEffective = True; Msr.MeasureType = MEA_SandbagsTop; Measures[1] = 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: MeasureSecEroInner sT.Actions.insert(0, 4); sT.Actions[0] = new class'ACTION_WaitForEvent'; ACTION_WaitForEvent(sT.Actions[0]).ExternalEvent = GetName(id$"MeasureSecEroInner"); sT.Actions[1] = new class'ACTION_SetHidden'; ACTION_SetHidden(sT.Actions[1]).HideActorTag = GetName(id$"waterbreed"); ACTION_SetHidden(sT.Actions[1]).bHidden = False; sT.Actions[2] = new class'ACTION_SetHidden'; ACTION_SetHidden(sT.Actions[2]).HideActorTag = GetName(id$"watersmall"); ACTION_SetHidden(sT.Actions[2]).bHidden = True; sT.Actions[3] = new class'ACTION_SetHidden'; ACTION_SetHidden(sT.Actions[3]).HideActorTag = GetName(id$"SecCrashSplashEmitterInner"); ACTION_SetHidden(sT.Actions[3]).bHidden = True; }