mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			162 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			162 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*
 | |
|     Originally from /Source/gg2/Objects/InGameElements/Character.events/Draw.xml in Gang Garrison 2
 | |
| 
 | |
|     Copyright (C) 2008-2013 Faucet Software
 | |
|     http://www.ganggarrison.com
 | |
| 
 | |
|     This program is free software; 
 | |
|     you can redistribute it and/or modify it under the terms of the GNU General Public License
 | |
|     as published by the Free Software Foundation; either version 3 of the License, or (at your option)
 | |
|     any later version.
 | |
|     This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
 | |
|     without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
 | |
|     See the GNU General Public License for more details.
 | |
|     You should have received a copy of the GNU General Public License along with this program; if not,
 | |
|     see <http://www.gnu.org/licenses>.
 | |
| 
 | |
|     Additional permission under GNU GPL version 3 section 7
 | |
|     If you modify this Program, or any covered work, by linking or combining it with the Game Maker runtime library, 
 | |
|     the 39dll library/extension, Hobbel's Download Manager DLL, or modified versions of these libraries,
 | |
|     the licensors of this Program grant you additional permission to convey the resulting work.
 | |
| */
 | |
| 
 | |
| xoffset = view_xview[0];
 | |
| yoffset = view_yview[0];
 | |
| xsize = view_wview[0];
 | |
| ysize = view_hview[0];
 | |
| 
 | |
| if (distance_to_point(xoffset+xsize/2,yoffset+ysize/2) > 800)
 | |
|     exit;
 | |
| 
 | |
| var xr, yr;
 | |
| xr = round(x);
 | |
| yr = round(y);
 | |
|     
 | |
| image_alpha = cloakAlpha;
 | |
| 
 | |
| if (global.myself.team == team and canCloak)
 | |
|     image_alpha = cloakAlpha/2 + 0.5;
 | |
| 
 | |
| if (invisible)
 | |
|     exit;
 | |
| 
 | |
| if(stabbing)
 | |
|     image_alpha -= power(currentWeapon.stab.alpha, 2);
 | |
| 
 | |
| if team == global.myself.team && (player != global.myself || global.showHealthBar == 1){
 | |
|     draw_set_alpha(1);
 | |
|     draw_healthbar(xr-10, yr-30, xr+10, yr-25,hp*100/maxHp,c_black,c_red,c_green,0,true,true);
 | |
| }    
 | |
| if(distance_to_point(mouse_x, mouse_y)<25) {
 | |
|     if cloak && team!=global.myself.team exit;
 | |
|     draw_set_alpha(1);
 | |
|     draw_set_halign(fa_center);
 | |
|     draw_set_valign(fa_bottom);
 | |
|     if(team==TEAM_RED) {
 | |
|         draw_set_color(c_red);
 | |
|     } else {
 | |
|         draw_set_color(c_blue);
 | |
|     }
 | |
|     draw_text(xr, yr-35, player.name);
 | |
|     
 | |
|     if(team == global.myself.team && global.showTeammateStats)
 | |
|     {
 | |
|         if(weapons[0] == Medigun)
 | |
|             draw_text(xr,yr+50, "Superburst: " + string(currentWeapon.uberCharge/20) + "%");
 | |
|         else if(weapons[0] == Shotgun)
 | |
|             draw_text(xr,yr+50, "Nuts 'N' Bolts: " + string(nutsNBolts));
 | |
|         else if(weapons[0] == Minegun)
 | |
|             draw_text(xr,yr+50, "Lobbed Mines: " + string(currentWeapon.lobbed));
 | |
|     }
 | |
| }  
 | |
| 
 | |
| draw_set_alpha(1);
 | |
| if team == TEAM_RED ubercolour = c_red;
 | |
| if team == TEAM_BLUE ubercolour = c_blue;
 | |
| 
 | |
| var sprite, overlaySprite;
 | |
| if zoomed
 | |
| {
 | |
|     if (team == TEAM_RED)
 | |
|         sprite = SniperCrouchRedS;
 | |
|     else
 | |
|         sprite = SniperCrouchBlueS;
 | |
|     overlaySprite = sniperCrouchOverlay;
 | |
| }
 | |
| else
 | |
| {
 | |
|     sprite = sprite_index;
 | |
|     overlaySprite = overlay;
 | |
| }
 | |
|     
 | |
| if (omnomnomnom)
 | |
| {
 | |
|     draw_sprite_ext_overlay(omnomnomnomSprite,omnomnomnomOverlay,omnomnomnomindex,xr,yr,image_xscale,image_yscale,image_angle,c_white,1);
 | |
|     if (ubered)
 | |
|         draw_sprite_ext_overlay(omnomnomnomSprite,omnomnomnomOverlay,omnomnomnomindex,xr,yr,image_xscale,image_yscale,image_angle,ubercolour,0.7);
 | |
| }
 | |
| else if (taunting)
 | |
| {
 | |
|     draw_sprite_ext_overlay(tauntsprite,tauntOverlay,tauntindex,xr,yr,image_xscale,image_yscale,image_angle,c_white,1);
 | |
|     if (ubered)
 | |
|         draw_sprite_ext_overlay(tauntsprite,tauntOverlay,tauntindex,xr,yr,image_xscale,image_yscale,image_angle,ubercolour,0.7);
 | |
| }
 | |
| else if (player.humiliated)
 | |
|     draw_sprite_ext(humiliationPoses,floor(animationImage)+humiliationOffset,xr,yr,image_xscale,image_yscale,image_angle,c_white,image_alpha);
 | |
| else if (!taunting)
 | |
| {
 | |
|     if (cloak)
 | |
|     {
 | |
|         if (!ubered)
 | |
|             draw_sprite_ext(sprite,floor(animationImage+animationOffset),xr,yr,image_xscale,image_yscale,image_angle,c_white,image_alpha);
 | |
|         else if (ubered)
 | |
|         {
 | |
|             draw_sprite_ext(sprite,floor(animationImage+animationOffset),xr,yr,image_xscale,image_yscale,image_angle,c_white,1);
 | |
|             draw_sprite_ext(sprite,floor(animationImage+animationOffset),xr,yr,image_xscale,image_yscale,image_angle,ubercolour,0.7);
 | |
|         }
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|         if (!ubered)
 | |
|             draw_sprite_ext_overlay(sprite,overlaySprite,floor(animationImage+animationOffset),xr,yr,image_xscale,image_yscale,image_angle,c_white,image_alpha);
 | |
|         else if (ubered)
 | |
|         {
 | |
|             draw_sprite_ext_overlay(sprite,overlaySprite,floor(animationImage+animationOffset),xr,yr,image_xscale,image_yscale,image_angle,c_white,1);
 | |
|             draw_sprite_ext_overlay(sprite,overlaySprite,floor(animationImage+animationOffset),xr,yr,image_xscale,image_yscale,image_angle,ubercolour,0.7);
 | |
|         }
 | |
|     }
 | |
| }
 | |
| if (burnDuration > 0 or burnIntensity > 0) {
 | |
|     for(i = 0; i < numFlames * burnIntensity / maxIntensity; i += 1)
 | |
|     {
 | |
|         draw_sprite_ext(FlameS, alarm[5] + i + random(2), x + flameArray_x[i], y + flameArray_y[i], 1, 1, 0, c_white, burnDuration / maxDuration * 0.71 + 0.35);
 | |
|     }  
 | |
| }
 | |
| 
 | |
| // Copied from Lorgan's itemserver "angels" with slight modifications
 | |
| // All credit be upon him
 | |
| if (demon != -1)
 | |
| {
 | |
|     demonX = median(x-40,demonX,x+40);
 | |
|     demonY = median(y-40,demonY,y);
 | |
|     demonOffset += demonDir;
 | |
|     if (abs(demonOffset) > 15)
 | |
|         demonDir *= -1;
 | |
| 
 | |
|     var dir;
 | |
|     if (demonX > x)
 | |
|         dir = -1;
 | |
|     else
 | |
|         dir = 1;
 | |
| 
 | |
|     if (demonFrame > sprite_get_number(demon))
 | |
|         demonFrame = 0;
 | |
| 
 | |
|     if (stabbing || ubered)
 | |
|         draw_sprite_ext(demon,demonFrame+floor(animationImage)+7*player.team,demonX,demonY+demonOffset,dir*1,1,0,c_white,1);
 | |
|     else
 | |
|         draw_sprite_ext(demon,demonFrame+floor(animationImage)+7*player.team,demonX,demonY+demonOffset,dir*1,1,0,c_white,image_alpha);
 | |
| 
 | |
|     demonFrame += 1;
 | |
| }
 |