HUD for Space Invasion, minor bugfix
authormikade
Sun, 21 Aug 2011 18:43:59 +0200
changeset 5629 c24d29a538af
parent 5626 82e1811c5e70
child 5632 2224829af8c2
HUD for Space Invasion, minor bugfix
share/hedgewars/Data/Scripts/Multiplayer/Space_Invasion.lua
--- a/share/hedgewars/Data/Scripts/Multiplayer/Space_Invasion.lua	Sun Aug 21 12:06:30 2011 -0400
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Space_Invasion.lua	Sun Aug 21 18:43:59 2011 +0200
@@ -5,7 +5,7 @@
 ---------------------------------------------------
 ---------------------------------------------------
 ---------------------------------------------------
---- Space Invasion Code Follows (0.7)
+--- Space Invasion Code Follows (0.8)
 ---------------------------------------------------
 ---------------------------------------------------
 -- VERSION HISTORY
@@ -100,6 +100,12 @@
 --(during the length of the game) aka non-repeatable
 -- 10/25/50 kills (+25/+50/+100 points)
 
+-----------------
+--0.8
+-----------------
+-- added a HUD for turntimeleft, ammo, shield
+-- shieldhealth hits 0 properly
+
 --------------------------
 --notes for later
 --------------------------
@@ -242,6 +248,7 @@
 
 local Timer100 = 0
 
+local vTag = {}
 
 -----------------------------------------------
 -- CIRCLY GOODIES
@@ -290,6 +297,58 @@
 -- some lazy copypasta/modified methods
 -------------------------------------------
 
+
+
+function HideTags()
+
+	for i = 0, 3 do 	
+		SetVisualGearValues(vTag[i],0,0,0,0,0,1,0, 0, 240000, 0xffffff00)
+	end
+
+end
+
+function DrawTag(i)
+	
+	zoomL = 1.3
+
+	xOffset = 40
+
+	if i == 0 then
+		yOffset = 40	
+		tCol = 0xffba00ff
+		tValue = TimeLeft
+	elseif i == 1 then
+		zoomL = 1.1		
+		yOffset = 70	
+		tCol = 0x00ff00ff
+		tValue = primShotsLeft
+	elseif i == 2 then
+		zoomL = 1.1		
+		xOffset = 40 + 35
+		yOffset = 70		
+		tCol = 0xa800ffff
+		tValue = shieldHealth - 80
+	end
+
+	DeleteVisualGear(vTag[i])
+	vTag[i] = AddVisualGear(0, 0, vgtHealthTag, 0, false)
+	g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(vTag[i])
+	SetVisualGearValues	(	
+				vTag[i], 		--id
+				-(ScreenWidth/2) + xOffset,	--xoffset
+				ScreenHeight - yOffset, --yoffset
+				0, 			--dx
+				0, 			--dy
+				zoomL, 			--zoom
+				1, 			--~= 0 means align to screen
+				g7, 			--frameticks
+				tValue, 		--value
+				240000, 		--timer
+				tCol		--GetClanColor( GetHogClan(CurrentHedgehog) )
+				)
+
+end
+
 function RebuildTeamInfo()
 
 	-- make a list of individual team names
@@ -597,6 +656,7 @@
 		else
 			AddCaption(loc("Ammo") .. ": " .. primShotsLeft)
 		end
+		DrawTag(1)
 
 		CopyPV(CurrentHedgehog, morte) -- new addition
 		x,y = GetGearVelocity(morte)
@@ -689,6 +749,13 @@
 	HealthCaseProb = 0
 	MinesNum = 0
 	Explosives = 0
+
+	for i = 0, 3 do 	
+		vTag[0] = AddVisualGear(0, 0, vgtHealthTag, 0, false)	
+	end
+
+	HideTags()
+
 end
 
 function onGameStart()
@@ -768,6 +835,9 @@
 		tumbleStarted = false
 		SetMyCircles(false)
 	end
+	
+	HideTags()
+
 	---------------
 	---------------
 	--AddCaption("num g: " .. numGears() )
@@ -804,7 +874,7 @@
 
 		if beam == true then
 			shieldHealth = shieldHealth - 1
-			if shieldHealth <= 80 then
+			if shieldHealth < 80 then -- <= 80
 				shieldHealth = 80
 				beam = false
 				AddCaption(loc("Shield Depleted"),0xff0000ff,capgrpMessage)
@@ -850,6 +920,9 @@
 			TimeLeft = (TurnTime/1000)	--45
 			FadeAlpha = 0
 			AddGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), gtGrenade, 0, 0, 0, 1)
+			DrawTag(0)
+			DrawTag(1)
+			DrawTag(2)
 			SetMyCircles(true)
 		end
 	end
@@ -868,6 +941,7 @@
 
 			if TimeLeft >= 0 then
 				--AddCaption(LOC_NOT("Time Left: ") .. TimeLeft)
+				DrawTag(0)
 			end
 
 		end
@@ -893,6 +967,7 @@
 				leftOn = false
 				rightOn = false
 				SetMyCircles(false)
+				HideTags()
 				--nw WriteLnToConsole("Player is out of luck")
 
 				if shieldMiser == true then
@@ -1206,6 +1281,7 @@
 			PlaySound(sndHellishImpact4)
 			TimeLeft = TimeLeft + 4
 			AddCaption(loc("Time Extended!") .. "+" .. 4 .. loc("sec"), 0xff0000ff,capgrpMessage )
+			DrawTag(0)
 
 			morte = AddGear(vCircX[i], vCircY[i], gtExplosives, 0, 0, 0, 1)
 			SetHealth(morte, 0)
@@ -1223,6 +1299,7 @@
 			PlaySound(sndShotgunReload)
 			primShotsLeft = primShotsLeft + 3
 			AddCaption("+" .. 3 .. " " .. loc("Ammo"), 0x00ff00ff,capgrpMessage)
+			DrawTag(1)
 
 			GK = GK + 1
 			if GK == 3 then
@@ -1252,6 +1329,7 @@
 				shieldHealth = 250
 				AddCaption(loc("Shield is fully recharged!"),0xa800ffff,capgrpMessage)
 			end
+			DrawTag(2)
 
 			OK = OK + 1
 			if OK == 3 then
@@ -1815,6 +1893,7 @@
 		g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(pShield)
 		--SetVisualGearValues(pShield, GetX(CurrentHedgehog), GetY(CurrentHedgehog), g3, g4, g5, g6, g7, 200, g9, g10 )
 		SetVisualGearValues(pShield, GetX(CurrentHedgehog), GetY(CurrentHedgehog), g3, g4, g5, g6, g7, 200, g9, 0xa800ffff-0x000000ff - -shieldHealth )
+		DrawTag(2)
 	else
 		SetVisualGearValues(pShield, GetX(CurrentHedgehog), GetY(CurrentHedgehog), g3, g4, g5, g6, g7, 0, g9, g10 )
 	end