public void deActivate(int activator = -1) { if (activator > -4) {return;} if (deactivatesAdjacentPlatformsWhenDeactivating) { MapSegment.Message message = new MapSegment.Message(); message.deActivatePlatform = true; parent.sendMessage(message); } if (deactivatesLight) { foreach (MapSegmentSide s in parent.sides) { if (s.upperLight != null) s.upperLight.deActivate(); if (s.middleLight != null) s.middleLight.deActivate(); if (s.lowerLight != null) s.lowerLight.deActivate(); } parent.floor.light.deActivate(); parent.ceiling.light.deActivate(); } if (activatesAdjacentPlatformsWhenDeactivating) { MapSegment.Message message = new MapSegment.Message(); message.activatePlatform = true; parent.sendMessage(message); } active = false; foreach (ControlPanel cp in GlobalData.map.controlPanels) { if (cp.platformSwitch == parent.id || cp.tagSwitch == mapTag) { cp.toggle(); } } }
public void activate(int activator = -1) { if (activatesOnlyOnce && hasActivated) {return;} if (!isPlayerControllable && activator == -2) {return;} if (!isMonsterControllable && activator == -3) {return;} activatedBy = activator; active = true; // extending = !extending; delayedTime = 0; if (!delaysBeforeActivation) {delayedTime = delay;} hasActivated = true; foreach (ControlPanel cp in GlobalData.map.controlPanels) { if (cp.platformSwitch == parent.id || cp.tagSwitch == mapTag) { cp.toggle(); } } if (activatesAdjacentPlatformsWhenActivating) { MapSegment.Message message = new MapSegment.Message(); message.activatePlatform = true; List<int> exclude = new List<int>(); if (doesNotActivateParent) {exclude.Add(activator);} parent.sendMessage(message, exclude); } if (deactivatesAdjacentPlatformsWhenActivating) { MapSegment.Message message = new MapSegment.Message(); message.deActivatePlatform = true; List<int> exclude = new List<int>(); if (doesNotActivateParent) {exclude.Add(activator);} parent.sendMessage(message, exclude); } if (activatesLight) { foreach (MapSegmentSide s in parent.sides) { if (s.upperLight != null) s.upperLight.activate(); if (s.middleLight != null) s.middleLight.activate(); if (s.lowerLight != null) s.lowerLight.activate(); } parent.floor.light.activate(); parent.ceiling.light.activate(); } }
private void hitEnd() { if (deactivatesAtEachLevel || (deactivatesAtInitialLevel && ( (initiallyExtended && extending) || (!initiallyExtended && !extending) )) ) { active = false; } if (activatesAdjacantPlatformsAtEachLevel) { MapSegment.Message message = new MapSegment.Message(); message.activatePlatform = true; List<int> exclude = new List<int>(); parent.sendMessage(message, exclude); } if (!active) { deActivate(-4); } extending = !extending; delayedTime = 0; }