[ create a new paste ] login | about

Link: http://codepad.org/isAcUNgK    [ raw code | fork ]

C, pasted on Dec 28:
init()
{
	precachestring(&"");
	precachestring(&"+");
	game["precached_plusscore_strings"] = true;
}

plusscore(score)
{
	if(!isdefined(game["precached_plusscore_strings"]))
	{
		iprintln("Plusscore strings not precached. Call init() on startgametype...");
		return;
	}
	if(!isplayer(self))
	{
		iprintln("Plusscore not called on a player. Go fix this before you try anything else!");
		return;
	}
	if(!isdefined(self.izno_plusscore)) //first run
	{
		self.izno_plusscore = newclienthudelem(self);
		self.izno_plusscore.instance = 0;
		self.izno_plusscore.score = score;
		self.izno_plusscore.horzAlign = "center";
		self.izno_plusscore.vertAlign = "middle";
		self.izno_plusscore.alignX = "center";
		self.izno_plusscore.alignY = "middle";
		self.izno_plusscore.x = 0; //middle of screen
		self.izno_plusscore.y = -40; //just above middle of screen
		self.izno_plusscore.alpha = 0.3;
		self.izno_plusscore.fontscale = 0.5;
	}
	else //not first-run
	{
		if(self.izno_plusscore.alpha < 0.3 || self.izno_plusscore.score == 0)
			self.izno_plusscore.alpha = 0.3;
		if(self.izno_plusscore.fontscale < 0.5 || self.izno_plusscore.score == 0)
			self.izno_plusscore.fontscale = 0.5;
		self.izno_plusscore.instance++;
		self.izno_plusscore.score += score;
	}
	if(self.izno_plusscore.score < 0)
	{
		self.izno_plusscore.color = (235/255,10/255,10/255); //negative scores are red
		self.izno_plusscore.label = &"";
	}
	else
	{
		self.izno_plusscore.color = (1,230/255,125/255); //yellow-ish
		self.izno_plusscore.label = &"+";
	}
	self.izno_plusscore setvalue(self.izno_plusscore.score);	

	current_instance = self.izno_plusscore.instance;
	make_bigger = true;
	more_opaque = true;
	steady_opaque_timer = 0;
	alpha_done = false;
	size_done = false;
	while(isdefined(self) && current_instance == self.izno_plusscore.instance && !(alpha_done && size_done))
	{
		if(make_bigger && self.izno_plusscore.fontscale < 2)
			self.izno_plusscore.fontscale += 0.35;
		else if(make_bigger)
			make_bigger = false;
		else if(self.izno_plusscore.fontscale > 2)
			self.izno_plusscore.fontscale -= 0.2;
		else
		{
			size_done = true;
			self.izno_plusscore.fontscale = 1.5;
		}

		if(more_opaque && self.izno_plusscore.alpha <= 0.9) //dont overflow this
			self.izno_plusscore.alpha += 0.1;
		else if(more_opaque && steady_opaque_timer == 20)
			more_opaque = false;
		else if(more_opaque)
			steady_opaque_timer++;
		else if(self.izno_plusscore.alpha >= 0.1) //dont underflow this
			self.izno_plusscore.alpha -= 0.1;
		else
		{
			alpha_done = true;
			self.izno_plusscore.alpha = 0;
		}
		wait 0.05;
	}
	if(!isdefined(self))
		return;
	if(current_instance == self.izno_plusscore.instance)
	{
		wait 0.5;
		if(isdefined(self) && self.izno_plusscore.instance == current_instance)
			self.izno_plusscore.score = 0;
	}
}
	


Create a new paste based on this one


Comments: