maps/python/pshop/Floor.py

68 lines
1.5 KiB
Python

import Crossfire,sys
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