mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +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;
|
|
}
|