70 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
import Crossfire,sys
 | 
						|
sys.stderr=open('/tmp/output.log','w')
 | 
						|
Params=Crossfire.ScriptParameters()
 | 
						|
whoami=Crossfire.WhoAmI()
 | 
						|
Arch=None
 | 
						|
if whoami.Name=="Magic Lever":
 | 
						|
	Arch=whoami.Map.ObjectAt(49,2)
 | 
						|
elif whoami.Name=="Buildable Lever":
 | 
						|
	Arch=whoami.Map.ObjectAt(49,3)
 | 
						|
StartXY=Params.split(":")[0].split(',')
 | 
						|
StopXY=Params.split(":")[1].split(',')
 | 
						|
Width=int(StopXY[0])-int(StartXY[0])
 | 
						|
Height=int(StopXY[1])-int(StartXY[1])
 | 
						|
Area=Width*Height
 | 
						|
XRange=range(int(StartXY[0]),int(StopXY[0]))
 | 
						|
YRange=range(int(StartXY[1]),int(StopXY[1]))
 | 
						|
def GetObjectByName(Map,X,Y,Name):
 | 
						|
		Object=Map.ObjectAt(X,Y)
 | 
						|
		while Object!=None:
 | 
						|
			if Object.Name==Name:
 | 
						|
				return Object
 | 
						|
			else:
 | 
						|
				Object=Object.Above
 | 
						|
		return Object
 | 
						|
if Arch!=None:
 | 
						|
	whoami.Value=int(whoami.Value==1)
 | 
						|
	
 | 
						|
	Arch.Quantity=Area+1
 | 
						|
 | 
						|
	
 | 
						|
	#def MoveToBottom(object):
 | 
						|
		#object.Say('s')
 | 
						|
		#Dict={}
 | 
						|
		#Counter=0
 | 
						|
		#Item=object.Below
 | 
						|
		#object.Say(str(Item))
 | 
						|
		#while Item!=None:
 | 
						|
			#Dict.update({str(Counter):Item})
 | 
						|
			
 | 
						|
 | 
						|
			#Item=Item.Below
 | 
						|
		#for i in list(Dict.values()):
 | 
						|
			#i.Teleport(object.Map,object.X,object.Y)
 | 
						|
			
 | 
						|
	
 | 
						|
	for i in XRange:
 | 
						|
		for a in YRange:
 | 
						|
			if whoami.Value==1:
 | 
						|
				TmpArch=Arch.Split(1)
 | 
						|
				TmpArch.Teleport(whoami.Map,i,a)
 | 
						|
				#MoveToBottom(TmpArch)
 | 
						|
			else:
 | 
						|
				TmpArch=GetObjectByName(whoami.Map,i,a,Arch.Name)
 | 
						|
				if TmpArch!=None:
 | 
						|
					TmpArch.Remove()
 | 
						|
				else:
 | 
						|
					whoami.Say("Arch not found at "+str(i)+","+str(a))
 | 
						|
					
 | 
						|
			
 | 
						|
else:
 | 
						|
	for i in XRange:
 | 
						|
		for a in YRange:
 | 
						|
			t=whoami.Map.ObjectAt(i,a)
 | 
						|
			
 | 
						|
			while t!=None:
 | 
						|
				if t.Floor==1:
 | 
						|
					t.Name="Shop Floor"
 | 
						|
				t=t.Above
 | 
						|
			
 |