aboutsummaryrefslogtreecommitdiff
path: root/gamemode
diff options
context:
space:
mode:
authorAlexander Pickering <Alexander.Pickering@anondomain.site90.net>2016-01-29 18:51:13 -0500
committerAlexander Pickering <Alexander.Pickering@anondomain.site90.net>2016-01-29 18:51:13 -0500
commit7d034ce5112190fd1b62bb69ffc5039c4615e7c7 (patch)
treeb1eb64e959d11be692d661cb004a9bbfd4c7d788 /gamemode
parent9b1057243fe1db65f351e213f00e41ceca67a8da (diff)
downloadwintersurvival2-7d034ce5112190fd1b62bb69ffc5039c4615e7c7.tar.gz
wintersurvival2-7d034ce5112190fd1b62bb69ffc5039c4615e7c7.tar.bz2
wintersurvival2-7d034ce5112190fd1b62bb69ffc5039c4615e7c7.zip
Morework on the connect the dots minigame
Diffstat (limited to 'gamemode')
-rw-r--r--gamemode/hud/games/connectthedots.lua52
1 files changed, 52 insertions, 0 deletions
diff --git a/gamemode/hud/games/connectthedots.lua b/gamemode/hud/games/connectthedots.lua
index 9b89d70..e0d496d 100644
--- a/gamemode/hud/games/connectthedots.lua
+++ b/gamemode/hud/games/connectthedots.lua
@@ -1,9 +1,22 @@
--The connet the dots spell game
print("Hi from connectthedots.lua")
+--Minigame is held in self.dots, each dot is a table,
+--dot[num] = {dot x, dot y, {{armor_start_angle,armor_end_angle},{armor_start_angle,armor_end_angle}}}
+
Game.Cast = function(self,difficulty)
print("Cast with dificulty: " .. difficulty)
self.Score = nil
+
+ --Create a dummy panel so that the mouse is trapped, untrap it when it right clicks
+ scoreboard = vgui.Create("MBFrame")
+ if(!scoreboard) then return end
+ scoreboard:SetPos(0,0)
+ scoreboard:SetSize(0,0)
+ scoreboard:MakePopup()
+ self.scoreboard = scoreboard
+
+ --Create the minigame
end
Game.Draw = function(self)
@@ -11,10 +24,49 @@ Game.Draw = function(self)
input.StartKeyTrapping()
end
draw.DrawText( "You're casting a spell!", "TargetID", ScrW() * 0.5, ScrH() * 0.25, Color( 255, 255, 255, 255 ), TEXT_ALIGN_CENTER )
+
print("X:" .. gui.MouseX() .. " Y:" .. gui.MouseY())
if(input.IsMouseDown(MOUSE_RIGHT)) then
self.Score = 100
+ self.scoreboard:Remove()
+ end
+end
+
+--A basic dot, can be accessed from anywhere.
+Game.AddRegDot = function(self)
+
+ --Find the most recently added dot
+ local fd = table.GetFirstValue(self.dots)
+ local armors = {}
+ for k,v in pairs(fd[2]) do
+ armors[k] = v
end
+ --Since armor can have multiple segments, pick all open segments, and find the surface area they occupy.
+ local totalsurface = 360
+ for k,v in pairs(armors) do
+ print("Found armor between " .. v[1] .. " and " .. v[2])
+ totalsurface = totalsurface - (v[1]-v[2])
+ end
+ print("Looks like there's " .. totalsurface .. " of avaliable angle!")
+ --Pick a number between 0 and totalsurface that represents how much un-armored space is before us
+ local position = math.random(totalsurface)
+
+ --Find the angles that we will add outselves between
+ for k,v in pairs(fd[2]) do
+ if(position > v[1]) then
+ position += v[2]-v[1]
+ end
+ end
+ print("Adding new dot at an angle of " .. position)
+
+ --Pick a random distance from this dot to the screen edge, and put a dot there
+ local rand = 0
+
+ --If we're in the first quadrent
+ if(math.cos(position) > 0) then
+ rand = math.random(fd[0],ScrW())
+
+
end
Game.AddDots = function(self)