Include "bones.bb"
Include "function.bb"
Global postroika
Global nameb$
Graphics3D 1024,768,16,1
SetBuffer BackBuffer()
camera = CreateCamera()
CameraRange camera,1,10000000
PositionEntity camera,0,3000,0
RotateEntity camera,90,0,0
curpoint=LoadImage("data/dyspley/curpoint.bmp")
cursor=LoadImage("data/dyspley/cursor.bmp")
Include "eartch.bb"
;----------------------------------------------------------------------ÏËÀÍÅÒÀÐÍÛÉ ÑÈÑÒÐÅÉ È ÊÍÎÏÊÈ------------------------------------------------------------------
zemtrey=LoadImage("data/dyspley/nazemle/systrey.bmp")
zemexit=LoadImage("data/dyspley/nazemle/exit.bmp")
zembuild=LoadImage("data\planetobj\house\basa.bmp")
zembuilddom=LoadImage("data\planetobj\house\dom.bmp")
zembuildzavod=LoadImage("data\planetobj\house\zavod.bmp")
zembuildlaboratory=LoadImage("data\planetobj\house\laboratory.bmp")
zembuildangar=LoadImage("data\planetobj\house\angar.bmp")
zembuildmoney=LoadImage("data\planetobj\house\money.bmp")
;çàâîä
zemzavod=LoadImage("data\planetobj\house\zavod\zavod.bmp")
zavodraketa=LoadImage("data\planetobj\house\zavod\raketa.bmp")
zavodlaser=LoadImage("data\planetobj\house\zavod\laser.bmp")
zavodatom=LoadImage("data\planetobj\house\zavod\atomraketa.bmp")
zavodraketavid=LoadImage("data\planetobj\house\zavod\raketavid.bmp")
zavodlaservid=LoadImage("data\planetobj\house\zavod\laservid.bmp")
zavodatomvid=LoadImage("data\planetobj\house\zavod\atomraketavid.bmp")
;----------
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;----------------------------------------------------------------------ÐÀÄÀÐ---------------------------------------------------------------------------------------------
radarplus=LoadImage("data/dyspley/plus.bmp")
radarminus=LoadImage("data/dyspley/minus.bmp")
radarramka=LoadImage("data/dyspley/radar.bmp")
viewramka=LoadSprite("data/dyspley/ramka.bmp")
;ScaleSprite viewramka,1024+2600,768+2300
;radarcam = CreateCamera()
;CameraRange radarcam,1,10000000
;CameraViewport radarcam,6,26,239,219
;PositionEntity radarcam,0,10000,0
;RotateEntity radarcam,90,0,0
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;-----------------------------------------------------------------------ñîçäàíèå ïëàíåò---------------------------------------------------------------------------------
suntex=LoadTexture("data\planettex\sun.bmp")
zemlatex=LoadTexture("data\planettex\Earth.JPG")
lunatex=LoadTexture("data\planettex\MOON.JPG")
marstex=LoadTexture("data\planettex\mars.jpg")
sun=addplanet(sun,300,suntex,0,0,0)
zemla=addplanet(zemla,300,zemlatex,0,0,3000)
NameEntity zemla,"zemla"
EntityType zemla,2
EntityPickMode zemla,2
luna=addplanet(luna,50,lunatex,0,0,3500)
mars=addplanet(mars,300,marstex,0,0,-3500)
RotateEntity zemla,25,0,0
RotateEntity mars,90,0,0
;EntityParent zemla,sun
;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
light = CreateLight()
stroim = 0
postroika=0
nazemle = 0
fntArial=LoadFont("Arial",15)
naselenie=10
raket=0
;-------------èññëåäîâàíèÿ--------------------------
labraketa=0
lablaser=0
labatom=0
;------------------------------------------------
;-------------Ðåñóðñû--------------------------
gold=1000000
wood=0
rock=0
neft=0
atomn=10000
;------------------------------------------------
;---------------------------------------------------------------ÃËÀÂÍÛÉ ÖÈÊË----------------------------------------------------------------
Repeat
;nameb$=""
EntityParent zemla,sun
EntityParent luna,zemla
EntityParent mars,sun
TurnEntity zemla,0,-0.5,0
TurnEntity sun,0,+0.1,0
If nazemle = 0
If MouseX() >= 1000 Then MoveEntity camera,+50,0,0
If MouseX() <= 4 Then MoveEntity camera,-50,0,0
If MouseY() >= 730 Then MoveEntity camera,0,-50,0
If MouseY() <= 10 Then MoveEntity camera,0,+50,0
EndIf
If nazemle = 1
If MouseX() >= 1000 Then MoveEntity camera,+5,0,0
If MouseX() <= 4 Then MoveEntity camera,-5,0,0
If MouseY() >= 730 Then MoveEntity camera,0,-5,-5
If MouseY() <= 10 Then MoveEntity camera,0,+5,+5
EndIf
;If MouseHit(1) = 1 Then PositionEntity viewramka,EntityX(camera),EntityY(camera)-3000,EntityZ(camera)
PositionEntity viewramka,EntityX(camera),EntityY(camera)-3000,EntityZ(camera)
;----------------------------------------------------Âûáèðàåì îáúåêò------------------------------------------------------------------------------
If MouseHit(1) And CameraPick(camera,MouseX(),MouseY()) <>0 And nazemle = 0 Then
who=CameraPick(camera,MouseX(),MouseY())
videlname$=EntityName(who)
If videlname$ = "zemla" And nazemle = 0
nazemle = 1
PositionEntity camera,450,100300,250
RotateEntity camera,45,45,0
;CameraViewport radarcam,0,0,1024,768
videlname$=""
EndIf
EndIf
If MouseDown(1) And CameraPick(camera,MouseX(),MouseY()) <>0 And nazemle = 1 And postroika=0 Then
who=CameraPick(camera,MouseX(),MouseY())
videlname$=EntityName(who)
If videlname$="basa"
objname$="Áàçà"
videlstat=1
EndIf
For a.dom=Each dom
If who=a\dom_id
If a\dom_seartch$ = "zavod"
videlname$="zavod"
EndIf
If a\dom_seartch$ = "laboratory"
videlname$="labora"
EndIf
EndIf
Next
EndIf
;-------------------------------------------------------------------------------------------------------------------------------------------------------
;-------------------------------------------------------------Òåõíîëîãèè---------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------------------------------------------------------------------
;-------------------------------------------------------------Òåõíèêà---------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------------------------------------------------------------------
;-------------------------------------------------------------îðóæèå---------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------------------------------------------------------------------
;------------------------------------------------------------Ñòðîèì îáúåêòû------------------------------------------------------------------------
If builddom=1;äîì----------------------------------
build(postroika,camera)
rasto=EntityPick(postroika,100)
If rasto > 0
dis=EntityDistance(postroika,rasto)
EndIf
If MouseDown(1) = 1
If EntityPick (postroika,200) = 0
gold=gold-5000
naselenie=naselenie+15
builddom=0
EntityPickMode terrain,0
EntityAlpha postroika,1
postroika=0
Else
nameb$="ñëèøêîì áëèçêî ê îáúåêòàì"
EndIf
EndIf
If MouseDown(2)
videlname$=""
builddom=0
EntityPickMode terrain,0
For a.dom=Each dom
If postroika=a\dom_id Then Exit
Next
FreeEntity postroika
Delete a
postroyka=0
EndIf
EndIf;---------------------------------------------------------
If buildzavod=1;çàâîä---------------------------------
build(postroika,camera)
rasto=EntityPick(postroika,100)
If rasto > 0
dis=EntityDistance(postroika,rasto)
EndIf
If MouseDown(1) = 1
If EntityPick (postroika,200) = 0
gold=gold-10000
buildzavod=0
EntityPickMode terrain,0
EntityAlpha postroika,1
postroika=0
okzavod=1
Else
nameb$="ñëèøêîì áëèçêî ê îáúåêòàì"
EndIf
EndIf
If MouseDown(2)
videlname$=""
buildzavod=0
EntityPickMode terrain,0
For a.dom=Each dom
If postroika=a\dom_id Then Exit
Next
FreeEntity postroika
Delete a
postroyka=0
EndIf
EndIf;---------------------------------------------------------
If buildlab = 1;ëàáàðàòîðèÿ---------------------------------
build(postroika,camera)
rasto=EntityPick(postroika,100)
If rasto > 0
dis=EntityDistance(postroika,rasto)
EndIf
If MouseDown(1) = 1
If EntityPick (postroika,200) = 0
gold=gold-15000
atomn=atomn-500
buildlab=0
EntityPickMode terrain,0
EntityAlpha postroika,1
postroika=0
oklab=1
Else
nameb$="ñëèøêîì áëèçêî ê îáúåêòàì"
EndIf
EndIf
If MouseDown(2)
videlname$=""
buildlab=0
EntityPickMode terrain,0
For a.dom=Each dom
If postroika=a\dom_id Then Exit
Next
FreeEntity postroika
Delete a
postroyka=0
EndIf
EndIf;---------------------------------------------------------
;-------------------------------------------------------------------------------------------------------------------------------------------------------
RenderWorld
;--------------------------------------------------------------------ÐÅÍÄÅÐ----------------------------------------------------------------------------
DrawImage curpoint,MouseX(),MouseY()
Text 500,20, "Âûáðàíà: "+videlname$
;----------------------------------------ÑÈÑÒÅÌÍÛÉ ÒÐÅÉ------------------------------------------------------------------------------------------------
If nazemle = 1
DrawImage zemtrey,0,768-200
If button(curpoint,zemexit,0,568,16,11,"Âûõîä â êîñìîñ") = 1
nazemle = 0
PositionEntity camera,0,3000,0
RotateEntity camera,90,0,0
EndIf
If videlname$="basa"
DrawImage zembuild,229,568+68
If MouseDown(2)
videlname$=""
EndIf
If button(curpoint,zembuilddom,229,636,0,0,"Æèëîé äîì - 5000 çîëîòà") = 1
If gold >=5000
EntityPickMode terrain,2
builddom=1
a.dom = New dom
a\dom_id = LoadMesh("data\planetobj\house\dom\STORY_M.3DS")
postroika=a\dom_id
a\dom_name = "Äîì"
a\dom_helsa = "100"
a\dom_seartch = "dom"
PositionEntity a\dom_id,300,100020,300
EntityPickMode a\dom_id,2
ScaleEntity a\dom_id,0.01,0.01,0.01
EntityAlpha a\dom_id,0.4
stroim = 1
Else
nameb$="Íå õâàòàåò ðåñóðñîâ"
EndIf
EndIf
If button(curpoint,zembuildzavod,229,636,62,0,"Çàâîä - 10000 çîëîòà") = 1
If gold >=10000
buildzavod=1
EntityPickMode terrain,2
a.dom = New dom
a\dom_id = LoadMesh("data\planetobj\house\zavod\SAWMILL_.3DS")
postroika=a\dom_id
a\dom_name = "Çàâîä"
a\dom_helsa = "100"
a\dom_seartch$ = "zavod"
PositionEntity a\dom_id,300,100020,300
EntityPickMode a\dom_id,2
ScaleEntity a\dom_id,0.01,0.01,0.01
EntityAlpha a\dom_id,0.4
stroim = 1
Else
nameb$="Íå õâàòàåò ðåñóðñîâ"
EndIf
EndIf
If button(curpoint,zembuildlaboratory,229,636,125,0,"Ëàáîðàòîðèÿ - 15000 çîëîòà, 500 àòîìîâ") = 1
If gold >=15000 And atomn >= 500
buildlab=1
EntityPickMode terrain,2
a.dom = New dom
a\dom_id = LoadMesh("data\planetobj\house\labaratory\KEHL_L.3DS")
postroika=a\dom_id
a\dom_name = "Ëàáîðàòîðèÿ"
a\dom_helsa = "100"
a\dom_seartch$ = "laboratory"
PositionEntity a\dom_id,300,100040,300
EntityPickMode a\dom_id,2
ScaleEntity a\dom_id,0.05,0.05,0.05
EntityAlpha a\dom_id,0.4
stroim = 1
Else
nameb$="Íå õâàòàåò ðåñóðñîâ"
EndIf
EndIf
If button(curpoint,zembuildangar,229,636,0,55,"Àíãàð - 12000 çîëîòà") = 1
EndIf
If button(curpoint,zembuildmoney,229,636,62,55,"Áàíê - 7000 çîëîòà") = 1
EndIf
EndIf;Ðèñóåò ïàíåëü
;----------------------ðèñóåì ïàíåëü çàâîäà------------------
If videlname$="zavod"
DrawImage zemzavod,229,568+68
If MouseDown(2)
videlname$=""
EndIf
If labraketa=1
DrawImage zavodraketa,229+4,636+7
If button(curpoint,zavodraketavid,229,636,4,7,"Ðàêåòà - 2500 çîëîòà è 230 íåôòè ") = 1
EndIf
EndIf
If lablaser=1
DrawImage zavodlaser,229+62+4,636+7
If button(curpoint,zavodlaservid,229,636,62+4,7,"Ëàçåðíûé çàðÿä - 5000 çîëîòà è 300 àòîìîâ") = 1
EndIf
EndIf
If labatom=1
DrawImage zavodatom,229+125+4,636+7
If button(curpoint,zavodatomvid,229,636,125+4,7,"Àòîìíàÿ ðàêåòà - 18000 çîëîòà, 800 íåôòè è 1500 àòîìîâ") = 1
EndIf
EndIf
EndIf
;-------------------------------------------------------------------
;----------------------ðèñóåì ïàíåëü ëàáîðàòîðèè------------------
If videlname$="labora"
DrawImage zemzavod,229,568+68
If MouseDown(2)
videlname$=""
EndIf
If labraketa=0
DrawImage zavodraketa,229+4,636+7
If button(curpoint,zavodraketavid,229,636,4,7,"Ðàêåòà - 5000 çîëîòà è 25 íàñåëåíèÿ") = 1
If gold >=5000 And naselenie >=25
gold=gold-5000
labraketa=1
EndIf
EndIf
EndIf
If lablaser=0
DrawImage zavodlaser,229+62+4,636+7
If button(curpoint,zavodlaservid,229,636,62+4,7,"Ëàçåðíûé çàðÿä - 8000 çîëîòà 57 íàñåëåíèÿ") = 1
If gold >=8000 And naselenie >=57
lablaser=1
EndIf
EndIf
EndIf
If labatom=0
DrawImage zavodatom,229+125+4,636+7
If button(curpoint,zavodatomvid,229,636,125+4,7,"Àòîìíàÿ ðàêåòà - 28000 çîëîòà 160 íàññåëåíèÿ") = 1
If gold >=28000 And naselenie >=160
labatom=1
EndIf
EndIf
EndIf
EndIf
;-------------------------------------------------------------------
Text 959,568+181,gold
Text 879,568+181,wood
Text 799,568+181,rock
Text 719,568+181,atomn
Text 639,568+181,atomnneft
Text 35,568+52,naselenie
Text 151,568+52,raket
Text 228,768-200+181,nameb$
EndIf
;-------------------------------------------------------------------------------------------------------------------------------------------------------------------
;--------------------------------------------------------------------Çóì ðàäàðà-----------------------------------------------------------------------------------
If nazemle = 0
;For y = 1 To 500
;Plot Rnd(6,243),Rnd(26,243)
;Next
DrawImage radarramka,0,0
If button(curpoint,radarplus,0,0,227,6,"") = 1 And EntityY(camera) > 4000
MoveEntity camera,0,0,+50
EndIf
If button(curpoint,radarminus,0,0,207,6,"") = 1 And EntityY(camera) < 50000
MoveEntity camera,0,0,-50
EndIf
EndIf
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------
Text 300,300,fps
frame = frame + 1
If MilliSecs() >= tstart Then
fps = frame
frame = 0
tstart = MilliSecs() + 1000
EndIf
DrawImage cursor,MouseX(),MouseY()
Flip
Until KeyHit(1)
End