Beispiel #1
0
	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();
			}
		}
	}
Beispiel #2
0
	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();

		}


	}
Beispiel #3
0
	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;
	}