@@ -72,6 +72,7 @@ private static void ZoneSetTilesControl(AdminCommandData data, TerrainControlFla
7272 }
7373 SendMessageToAll ( data , string . Format ( "Altered state of control layer on {0} Tiles ({1}: set to {2})" , lockedtiles . Count , flag , adddelete ) ) ;
7474 }
75+
7576 private static void LockOrUnlockZoneLayers ( AdminCommandData data , bool toLock )
7677 {
7778 if ( ! IsDevModeEnabled ( data ) )
@@ -102,6 +103,39 @@ private static void LockOrUnlockZoneLayers(AdminCommandData data, bool toLock)
102103 zone . IsLayerEditLocked = toLock ;
103104 SendMessageToAll ( data , $ "All layers on zone { zoneId } { ( toLock ? "LOCKED" : "UNLOCKED" ) } !") ;
104105 }
106+
107+ private static void SwitchZoneDegrade ( AdminCommandData data , bool state )
108+ {
109+ if ( ! IsDevModeEnabled ( data ) )
110+ {
111+ return ;
112+ }
113+
114+ bool err = false ;
115+ int zoneId = - 1 ;
116+ if ( data . Command . Args . IsNullOrEmpty ( ) )
117+ {
118+ Character character = data . Request . Session . Character ;
119+ zoneId = character . ZoneId ?? - 1 ;
120+ }
121+ else if ( data . Command . Args . Length >= 1 )
122+ {
123+ err = ! int . TryParse ( data . Command . Args [ 0 ] , out int id ) ;
124+ zoneId = id ;
125+ }
126+
127+ if ( err )
128+ {
129+ SendMessageToAll ( data , "Error parsing args" ) ;
130+ throw PerpetuumException . Create ( ErrorCodes . RequiredArgumentIsNotSpecified ) ;
131+ }
132+
133+ CheckZoneId ( data , zoneId ) ;
134+ IZone zone = data . Request . Session . ZoneMgr . GetZone ( zoneId ) ;
135+ zone . TerraformHandler . Degrade = state ;
136+ SendMessageToAll ( data , $ "Zone { zoneId } degrade { ( state ? "ENABLED" : "DISABLED" ) } !") ;
137+ }
138+
105139 public static void CheckZoneId ( AdminCommandData data , int zoneId )
106140 {
107141 if ( ! data . Request . Session . ZoneMgr . ContainsZone ( zoneId ) )
@@ -1507,11 +1541,25 @@ public static void ZoneLockLayers(AdminCommandData data)
15071541 {
15081542 LockOrUnlockZoneLayers ( data , true ) ;
15091543 }
1544+
15101545 [ ChatCommand ( "ZoneUnlockLayers" ) ]
15111546 public static void ZoneUnlockLayers ( AdminCommandData data )
15121547 {
15131548 LockOrUnlockZoneLayers ( data , false ) ;
15141549 }
1550+
1551+ [ ChatCommand ( "ZoneDisableDegrade" ) ]
1552+ public static void ZoneDisableDegrade ( AdminCommandData data )
1553+ {
1554+ SwitchZoneDegrade ( data , false ) ;
1555+ }
1556+
1557+ [ ChatCommand ( "ZoneEnableDegrade" ) ]
1558+ public static void ZoneEnableDegrade ( AdminCommandData data )
1559+ {
1560+ SwitchZoneDegrade ( data , true ) ;
1561+ }
1562+
15151563 [ ChatCommand ( "TestMissions" ) ]
15161564 public static void TestMissions ( AdminCommandData data )
15171565 {
0 commit comments