Главная » 2011 » Май » 29 » Своя RPG\TBS на GLScene. Часть 3. Описываем магию персонажа.
20:24
Своя RPG\TBS на GLScene. Часть 3. Описываем магию персонажа.
Теперь мы опишем магию персонажам, т.к. это пример то я упростил все. Вообще по идее нужно делать выбор цели, убирать привязку к игрокам т.е. вообще всю логику заклинаний надо перестроить. Но так как наш проект из разряда не очень сложно (например удивить друзей), то этого будет достаточно. Мы опишем всю магию для каждого персонажа по 2 набора , маг или паладин. Кстати советаю для интереса потавить в уроне небольшой разброс (например 10 - 15) , это можно сделать с помощью счетчика случайных чисел, random(6) и у нас будет 0...5. Сразу скажу часть я закомментировал лишнего уже в процессе написания статьи )))
В GLSceneViewer1MouseDown пишем:
// Magic Player 1 Mage if fNewGame=true then begin //if (Player1.Magic1Name='Thor_p1') or (Player1.Magic2Name='Thor_p1') or (Player1.Magic3Name='Thor_p1') or (Player1.Magic4Name='Thor_p1') then begin if (DCGUI.FindChild('DCPlayer1',true)).Visible=true then begin if Player1.EndHod=false then begin if ClickOnSprite(x,y,TGLHudSprite((DCGUI.FindChild('DCPlayer1',true)).FindChild('Thor_p1',true))) then begin if Player1.Mana>=10 then begin Player1.Attack(10,Player2); Player1.Mana:=Player1.Mana-10; Player1.EndHod:=true; Player2.EndHod:=false;
if fNewGame=true then begin // if (Player1.Magic1Name='Volcano_p1') or (Player1.Magic2Name='Volcano_p1') or (Player1.Magic3Name='Volcano_p1') or (Player1.Magic4Name='Volcano_p1') then begin if (DCGUI.FindChild('DCPlayer1',true)).Visible=true then begin if Player1.EndHod=false then begin if ClickOnSprite(x,y,TGLHudSprite((DCGUI.FindChild('DCPlayer1',true)).FindChild('Volcano_p1',true))) then begin if Player1.Mana>=20 then begin Player1.Attack(20,Player2); Player1.Mana:=Player1.Mana-20; Player1.EndHod:=true; Player2.EndHod:=false;
if fNewGame=true then begin // if (Player1.Magic1Name='Flesh_p1') or (Player1.Magic2Name='Flesh_p1') or (Player1.Magic3Name='Flesh_p1') or (Player1.Magic4Name='Flesh_p1') then begin if (DCGUI.FindChild('DCPlayer1',true)).Visible=true then begin if Player1.EndHod=false then begin if ClickOnSprite(x,y,TGLHudSprite((DCGUI.FindChild('DCPlayer1',true)).FindChild('Flesh_p1',true))) then begin if Player1.Mana>=30 then begin Player1.Attack(30,Player2); Player1.Mana:=Player1.Mana-30; Player1.EndHod:=true; Player2.EndHod:=false;
if fNewGame=true then begin // if (Player1.Magic1Name='HellTornado_p1') or (Player1.Magic2Name='HellTornado_p1') or (Player1.Magic3Name='HellTornado_p1') or (Player1.Magic4Name='HellTornado_p1') then begin if (DCGUI.FindChild('DCPlayer1',true)).Visible=true then begin if Player1.EndHod=false then begin if ClickOnSprite(x,y,TGLHudSprite((DCGUI.FindChild('DCPlayer1',true)).FindChild('HellTornado_p1',true))) then begin if Player1.Mana>=40 then begin Player1.Attack(40,Player2); Player1.Mana:=Player1.Mana-40; Player1.EndHod:=true; Player2.EndHod:=false;
if Player1.PlayerType='Paladin' then begin if (DCGUI.FindChild('DCPlayer1',true)).Visible=true then begin if Player1.EndHod=false then begin if ClickOnSprite(x,y,TGLHudSprite((DCGUI.FindChild('DCPlayer1',true)).FindChild('Hammer_p1',true))) then begin if Player1.Mana>=10 then begin Player2.Health:=Player2.Health-10; Player1.Mana:=Player1.Mana-10; Player1.EndHod:=true; Player2.EndHod:=false;
ShowTurnSprite;
end; end; if ClickOnSprite(x,y,TGLHudSprite((DCGUI.FindChild('DCPlayer1',true)).FindChild('Shield_p1',true))) then begin if Player1.Mana>=20 then begin
Player1.EndHod:=true; Player2.EndHod:=false;
ShowTurnSprite;
end; end; if ClickOnSprite(x,y,TGLHudSprite((DCGUI.FindChild('DCPlayer1',true)).FindChild('Burning_p1',true))) then begin if Player1.Mana>=30 then begin Player2.Health:=Player2.Health-30; Player1.Mana:=Player1.Mana-40; Player1.EndHod:=true; Player2.EndHod:=false;
ShowTurnSprite;
DCVolcano.Position.X:=6; Timer1.Enabled:=true; DCVolcano.Visible:=true; TGLSourcePFXEffect(DCVolcano.Effects[0]).PositionDispersion:=0; end; end; if ClickOnSprite(x,y,TGLHudSprite((DCGUI.FindChild('DCPlayer1',true)).FindChild('Spirit_p1',true))) then begin if Player1.Mana>=40 then begin Player1.Health:=Player1.Health+40;
if Player2.PlayerType='Paladin' then begin if (DCGUI.FindChild('DCPlayer2',true)).Visible=true then begin if Player2.EndHod=false then begin if ClickOnSprite(x,y,TGLHudSprite((DCGUI.FindChild('DCPlayer2',true)).FindChild('Hammer_p2',true))) then begin if Player2.Mana>=10 then begin Player1.Health:=Player1.Health-10; Player2.Mana:=Player2.Mana-10; Player2.EndHod:=true; Player1.EndHod:=false;
ShowTurnSprite;
end; end; if ClickOnSprite(x,y,TGLHudSprite((DCGUI.FindChild('DCPlayer2',true)).FindChild('Shield_p2',true))) then begin if Player2.Mana>=20 then begin
Player2.EndHod:=true; Player1.EndHod:=false;
ShowTurnSprite;
end; end; if ClickOnSprite(x,y,TGLHudSprite((DCGUI.FindChild('DCPlayer2',true)).FindChild('Burning_p2',true))) then begin if Player2.Mana>=30 then begin Player1.Health:=Player1.Health-30; Player2.Mana:=Player2.Mana-40; Player2.EndHod:=true; Player1.EndHod:=false;
ShowTurnSprite;
DCVolcano.Position.X:=1; Timer1.Enabled:=true; DCVolcano.Visible:=true; TGLSourcePFXEffect(DCVolcano.Effects[0]).PositionDispersion:=0; end; end; if ClickOnSprite(x,y,TGLHudSprite((DCGUI.FindChild('DCPlayer2',true)).FindChild('Spirit_p2',true))) then begin if Player2.Mana>=40 then begin Player2.Health:=Player2.Health+40;
if fNewGame=true then begin //if (Player1.Magic1Name='Thor_p1') or (Player1.Magic2Name='Thor_p1') or (Player1.Magic3Name='Thor_p1') or (Player1.Magic4Name='Thor_p1') then begin if (DCGUI.FindChild('DCPlayer2',true)).Visible=true then begin if Player2.EndHod=false then begin if ClickOnSprite(x,y,TGLHudSprite((DCGUI.FindChild('DCPlayer2',true)).FindChild('Thor_p2',true))) then begin if Player2.Mana>=10 then begin Player2.Attack(10,Player1); Player2.Mana:=Player2.Mana-10; Player2.EndHod:=true; Player1.EndHod:=false;
if fNewGame=true then begin // if (Player1.Magic1Name='Volcano_p1') or (Player1.Magic2Name='Volcano_p1') or (Player1.Magic3Name='Volcano_p1') or (Player1.Magic4Name='Volcano_p1') then begin if (DCGUI.FindChild('DCPlayer2',true)).Visible=true then begin if Player2.EndHod=false then begin if ClickOnSprite(x,y,TGLHudSprite((DCGUI.FindChild('DCPlayer2',true)).FindChild('Volcano_p2',true))) then begin if Player2.Mana>=20 then begin Player2.Attack(20,Player1); Player2.Mana:=Player2.Mana-20; Player2.EndHod:=true; Player1.EndHod:=false;
if fNewGame=true then begin // if (Player1.Magic1Name='Flesh_p1') or (Player1.Magic2Name='Flesh_p1') or (Player1.Magic3Name='Flesh_p1') or (Player1.Magic4Name='Flesh_p1') then begin if (DCGUI.FindChild('DCPlayer2',true)).Visible=true then begin if Player2.EndHod=false then begin if ClickOnSprite(x,y,TGLHudSprite((DCGUI.FindChild('DCPlayer2',true)).FindChild('Flesh_p2',true))) then begin if Player2.Mana>=30 then begin Player2.Attack(30,Player1); Player2.Mana:=Player2.Mana-30; Player2.EndHod:=true; Player1.EndHod:=false;
if fNewGame=true then begin // if (Player1.Magic1Name='HellTornado_p1') or (Player1.Magic2Name='HellTornado_p1') or (Player1.Magic3Name='HellTornado_p1') or (Player1.Magic4Name='HellTornado_p1') then begin if (DCGUI.FindChild('DCPlayer2',true)).Visible=true then begin if Player2.EndHod=false then begin if ClickOnSprite(x,y,TGLHudSprite((DCGUI.FindChild('DCPlayer2',true)).FindChild('HellTornado_p2',true))) then begin if Player2.Mana>=40 then begin Player2.Attack(40,Player1); Player2.Mana:=Player2.Mana-40; Player2.EndHod:=true; Player1.EndHod:=false;