From 52cf408ce832952c92804e114746b1e427576a8e Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Sat, 5 Mar 2016 11:55:32 -0500 Subject: Added debug data to find bug in circle minigame --- gamemode/hud/games/rubickscircle.lua | 84 ++++++++++++++-------------- gamemode/itemsystem/items/runefire.lua | 5 +- gamemode/itemsystem/items/spell_fireball.lua | 8 --- gamemode/itemsystem/items/spell_teleport.lua | 73 ++++++++++++++++++++++++ 4 files changed, 118 insertions(+), 52 deletions(-) create mode 100644 gamemode/itemsystem/items/spell_teleport.lua (limited to 'gamemode') diff --git a/gamemode/hud/games/rubickscircle.lua b/gamemode/hud/games/rubickscircle.lua index cd50bf2..2e81bba 100644 --- a/gamemode/hud/games/rubickscircle.lua +++ b/gamemode/hud/games/rubickscircle.lua @@ -53,7 +53,7 @@ Game.Cast = function(spelltab,difficulty) spelltab.ANIMATE_REMOVE_DURATION = 0.5 spelltab.MaxColor = 3 - spelltab.GoalNum = 5 + spelltab.GoalNum = 2 @@ -107,7 +107,7 @@ Game.Draw = function(self) if not input.IsKeyTrapping() then input.StartKeyTrapping() end - draw.DrawText( "Fill in the empty circles with the appropriate colors", "TargetID", ScrW() * 0.5, ScrH() * 0.25, Color( 255, 255, 255, 255 ), TEXT_ALIGN_CENTER ) + draw.DrawText( "Fill in the empty circles with the appropriate colors. Click the circle to select them, and use Q nd E to rotate the circles.", "TargetID", ScrW() * 0.5, ScrH() * 0.25, Color( 255, 255, 255, 255 ), TEXT_ALIGN_CENTER ) --Draw the rings for i = 0, self.numcircle-1 do if(self.SelectedCircle == i) then @@ -166,47 +166,45 @@ Game.Draw = function(self) surface.DrawCircle(x,y,20,nextcol) --Deal with moveing stuff - if(self.Animateingringnum != -1) then - if(CurTime() > self.Animateingstart+self.ANIMATE_MOVEING_DURATION) then - if(self.Animateingdirection == 1) then - local tmp = self.Circles[self.SelectedCircle][7] - for i = 0, 6 do - self.Circles[self.SelectedCircle][7-i]=self.Circles[self.SelectedCircle][6-i] - end - self.Circles[self.SelectedCircle][0] = tmp - self.Animateingringnum = -1 - self.Animateingdirection = 0 - --Add the new dot in, or fail if we can't - if(self.Circles[self.numcircle-1][self.NextInputDirection] != 0) then - print("self fail :(") - self.Score = 0 - self.scoreboard:Remove() - else - self.Circles[self.numcircle-1][self.NextInputDirection] = self.NextInputColor - self.NextInputDirection = math.Round(math.random(0,7)) - self.NextInputColor = math.Round(math.random(1,self.MaxColor)) - end - self.ProcessMoved(self) - elseif(self.Animateingdirection == -1) then - local tmp = self.Circles[self.SelectedCircle][0] - for i = 0, 6 do - self.Circles[self.SelectedCircle][i]=self.Circles[self.SelectedCircle][i+1] - end - self.Circles[self.SelectedCircle][7] = tmp - self.Animateingringnum = -1 - self.Animateingdirection = 0 - --Add the new dot in, or fail if we can't - if(self.Circles[self.numcircle-1][self.NextInputDirection] != 0) then - print("self fail :(") - self.Score = 0 - self.scoreboard:Remove() - else - self.Circles[self.numcircle-1][self.NextInputDirection] = self.NextInputColor - self.NextInputDirection = math.Round(math.random(0,7)) - self.NextInputColor = math.Round(math.random(1,self.MaxColor)) - end - self.ProcessMoved(self) + if(self.Animateingringnum != -1 and CurTime() > self.Animateingstart+self.ANIMATE_MOVEING_DURATION) then + if(self.Animateingdirection == 1) then + local tmp = self.Circles[self.SelectedCircle][7] + for i = 0, 6 do + self.Circles[self.SelectedCircle][7-i]=self.Circles[self.SelectedCircle][6-i] + end + self.Circles[self.SelectedCircle][0] = tmp + self.Animateingringnum = -1 + self.Animateingdirection = 0 + --Add the new dot in, or fail if we can't + if(self.Circles[self.numcircle-1][self.NextInputDirection] != 0) then + print("self fail :(") + self.Score = 0 + self.scoreboard:Remove() + else + self.Circles[self.numcircle-1][self.NextInputDirection] = self.NextInputColor + self.NextInputDirection = math.Round(math.random(0,7)) + self.NextInputColor = math.Round(math.random(1,self.MaxColor)) + end + self.ProcessMoved(self) + elseif(self.Animateingdirection == -1) then + local tmp = self.Circles[self.SelectedCircle][0] + for i = 0, 6 do + self.Circles[self.SelectedCircle][i]=self.Circles[self.SelectedCircle][i+1] + end + self.Circles[self.SelectedCircle][7] = tmp + self.Animateingringnum = -1 + self.Animateingdirection = 0 + --Add the new dot in, or fail if we can't + if(self.Circles[self.numcircle-1][self.NextInputDirection] != 0) then + print("self fail :(") + self.Score = 0 + self.scoreboard:Remove() + else + self.Circles[self.numcircle-1][self.NextInputDirection] = self.NextInputColor + self.NextInputDirection = math.Round(math.random(0,7)) + self.NextInputColor = math.Round(math.random(1,self.MaxColor)) end + self.ProcessMoved(self) end elseif(self.AnimateFalling and CurTime() > self.AnimateFallingStartTime + self.ANIMATE_FALLING_DURATION) then for k,v in pairs(self.AnimateFallingColumnNum) do @@ -285,7 +283,7 @@ end --What to do when anything moved Game.ProcessMoved = function(self) - PrintTable(self.Circles) + PrintTable(self) if(self.Circles == nil) then print("OH NO, CIRCLES WAS NIL!") return diff --git a/gamemode/itemsystem/items/runefire.lua b/gamemode/itemsystem/items/runefire.lua index 419712e..e629558 100644 --- a/gamemode/itemsystem/items/runefire.lua +++ b/gamemode/itemsystem/items/runefire.lua @@ -4,6 +4,7 @@ ITEM.Class = "resource" ITEM.Desc = "A perpetually warm stone" ITEM.Model = "models/props_combine/breenlight.mdl" ITEM.Icon = Material("wintersurvival2/hud/ws2_icons/icon_runefire.png") +game.AddParticles("particles/particletest.pcf") ITEM.Structure = { { @@ -37,11 +38,13 @@ function ITEM:OnUse(user) end function ITEM:OnPrimary(ply,tr) + ParticleEffect("firetest",ply:GetPos()+Vector(0,0,72),ply:GetAngles(),ply) if(CLIENT) then - game.AddParticles("particles/particletest.pcf") + else if(tr.Hit && tr.Entity && tr.Entity:IsPlayer()) then tr.Entity:Ignite(5) + user.RemoveItem(self.Name,1) end end diff --git a/gamemode/itemsystem/items/spell_fireball.lua b/gamemode/itemsystem/items/spell_fireball.lua index d8e6149..ef955bf 100644 --- a/gamemode/itemsystem/items/spell_fireball.lua +++ b/gamemode/itemsystem/items/spell_fireball.lua @@ -77,14 +77,6 @@ function ITEM:OnSecondary(pl,tr) end local fireballfunc = function(num,pl,self) - if not pl then - print("No pl to find the weapon of") - return - end - local weapon = pl:GetSelectedWeapon() - if(not weapon) then - print("Could not find the weapon") - end if(self.NumFireballs < self.MaxFireballs) then self.NumFireballs = self.NumFireballs+1 print("New num fireballs:" .. self.NumFireballs) diff --git a/gamemode/itemsystem/items/spell_teleport.lua b/gamemode/itemsystem/items/spell_teleport.lua new file mode 100644 index 0000000..6294955 --- /dev/null +++ b/gamemode/itemsystem/items/spell_teleport.lua @@ -0,0 +1,73 @@ + +ITEM.Name = "Teleport" +ITEM.Class = "weapon" +ITEM.Desc = "Right click to set target location, left click to open a portal there." +ITEM.Model = "models/props_debris/wood_board02a.mdl" +ITEM.Icon = Material("wintersurvival2/hud/ws2_icons/icon_spellteleport.png") +ITEM.HoldType = "magic" + +//Load some nessessary stuff +game.AddParticles("particles/particletest.pcf") +PrecacheParticleSystem("firetest") + + +ITEM.Recipe = { + Resources = { + ["Plank"] = 2, + ["Rope"] = 1, + ["Sap"] = 1, + }, + Tools = {}, +} + +ITEM.CD = 0.25 + +ITEM.savedpoint = nil + +function ITEM:DoTeleport(score,pl,self) + print("DoTeleport called!") + if(self.savedpoint == nil) then return end + print("Fully successfull teleport callback:") + print(pl) + local aim = pl:GetAimVector() + + local D = ents.Create("ws_teleporter") + + + D:SetPos(pl:GetShootPos()+aim*200) + D:SetOwner(pl) + D:SetAngles(aim:Angle()) + D:Spawn() + D.endpoint = self.savedpoint + pl:EmitSound(Sound("physics/flesh/flesh_impact_hard.wav"),100,math.random(90,110)) +end + +local teleportfunc = function(score, pl, self) + print("teleportfunc called!") + if(self.savedpoint == nil) then return end + print("Fully successfull teleport callback:") + print(pl) + local aim = pl:GetAimVector() + + local D = ents.Create("ws_teleporter") + + + D:SetPos(pl:GetShootPos()+aim*200) + D:SetOwner(pl) + D:SetAngles(aim:Angle()) + D:Spawn() + D.endpoint = self.savedpoint + pl:EmitSound(Sound("physics/flesh/flesh_impact_hard.wav"),100,math.random(90,110)) +end + +function ITEM:OnSecondary(pl,tr) + print("Endpoint set?") + ParticleEffect("firetest",pl:GetPos(),pl:GetAngles(),pl) + self.savedpoint = pl:GetPos() +end + +function ITEM:OnPrimary(pl,tr) + if(CLIENT) then return end + print("Attempting to cast...") + pl:Cast("Gateway",teleportfunc,self) +end -- cgit v1.2.3-70-g09d2