IL-GSC/IW/PC/ALL/3143.gsc
2023-10-27 03:49:01 -04:00

1165 lines
27 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: 3143.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 38
* Decompile Time: 27 ms
* Timestamp: 10/27/2023 12:26:15 AM
*******************************************************************/
//Function Number: 1
func_351B()
{
self endon("death");
thread func_D310();
self notify("begin_rodeo");
if(self.var_1198.var_E5FF == "left")
{
var_00 = "right";
}
else
{
var_00 = "left";
}
if(var_00 == "right")
{
self method_806F(lib_0A1E::func_2356("aimset_right","arm_pitch"),0.2);
self method_806F(lib_0A1E::func_2356("aimset_right","arm_rail"),0.2);
}
else
{
self method_806F(lib_0A1E::func_2356("aimset_left","arm_pitch"),0.2);
self method_806F(lib_0A1E::func_2356("aimset_left","arm_rail"),0.2);
self method_806F(lib_0A1E::func_2356("aimset_minigun","aim_knob"),0.2);
}
var_01 = 0.4;
var_02 = func_361C(self);
var_02 scripts\common\utility::delaycall(var_01,::show);
var_02 linkto(self,"j_spineupper");
var_02.var_3919 = 0;
var_02.var_13CCC = var_00;
self.var_D267 = var_02;
level.player scripts\common\utility::func_1C40(0);
level.player scripts\common\utility::func_1C60(0);
level.player scripts\common\utility::func_1C58(0);
level.player method_84AF(1);
level.player scripts\common\utility::allow_weapon(0);
level.player.inrodeo = 1;
if(var_00 == "right")
{
var_03 = level.player getcurrentweapon();
var_04 = level.player scripts\sp\_utility::func_7D74(1);
var_04 = scripts\common\utility::func_22C3(var_04,::func_445F);
if(func_7D6D(var_03) <= func_7D6D(var_04[0]))
{
self.var_D34D = var_03;
}
else
{
self.var_D34D = var_04[0];
level.player switchtoweapon(self.var_D34D);
}
}
var_05 = "tag_player";
thread lib_0F3D::func_5103(0.4,0,0,0,128,512,2,0.1);
thread func_D3F4(var_02,var_00,self.var_E5F8);
level.player playerlinktoblend(var_02,var_05,var_01);
level.player.ignoreme = 1;
self.ignoreme = 1;
self.var_D461 = level.player method_8525();
level.player method_80D1();
self setcandamage(0);
self.var_1198.var_E5FD = 1;
lib_0C08::func_351D(var_00,0);
func_361A(var_00);
var_06 = "rodeo_left";
if(var_00 == "left")
{
var_06 = "rodeo_right";
}
self method_82E7("RodeoJump",lib_0A1E::func_2356(var_06,"jump_" + self.var_E5F8),1,0.2,1);
lib_0A1E::func_231F("rodeo","RodeoJump",::func_35EE);
thread func_D3FA(var_02,var_00);
thread func_D433(self.var_D267,var_00);
var_07 = func_35F1(lib_0A1E::func_2356(var_06,"mount"),var_00);
var_08 = 3;
if(var_07 < 2)
{
while(var_08)
{
var_07 = func_35F1(lib_0A1E::func_2356(var_06,"miss"),var_00,1);
var_08--;
if(var_07 == 2)
{
break;
}
wait(randomfloatrange(0.2,0.5));
}
}
self.var_D267.var_3919 = 0;
if(var_07 == 2)
{
thread func_D3F0(self.var_D267,var_00);
if(var_00 == "right")
{
func_10907();
}
var_09 = lib_0A1E::func_2356(var_06,"hit");
self method_82E7("RodeoHit",var_09,1,0.2,1);
lib_0A1E::func_231F("rodeo","RodeoHit",::func_35EE);
self method_806F(var_09,0.2);
if(var_00 == "left")
{
thread func_35F2(var_02);
thread func_D404(var_02);
var_0A = lib_0A1E::func_2356(var_06,"struggle");
self method_82EA("RodeoStruggle",var_0A,1,0.2,1);
self waittill("struggle_succeeded");
self method_806F(var_0A,0.2);
thread lib_0F3D::func_50E8(0.2);
}
var_0A = lib_0A1E::func_2356(var_06,"success");
thread func_D3ED(self.var_D267,var_00);
self method_82E7("RodeoDismount",var_0A,1,0.2,1);
if(var_00 == "left")
{
self method_82A2(lib_0A1E::func_2356("rodeo_right","fire"),1,0.2,1);
}
lib_0A1E::func_231F("rodeo","RodeoDismount",::func_35EE);
self.var_30EA = 1;
}
else
{
var_0A = lib_0A1E::func_2356(var_07,"fail");
var_0B = scripts\common\utility::func_7B25(var_0A,"knockoff");
thread func_D3F6(self.var_D267,var_00,var_0B);
self method_82E7("RodeoKnockOff",var_0A,1,0.2,1);
lib_0A1E::func_231F("rodeo","RodeoKnockOff",::func_35EE);
self.var_2303.var_11B08.var_30E6 = 0;
}
thread func_E245();
self.var_1198.var_E5FD = 0;
self.var_7212 = gettime() + 10000;
lib_0C08::func_351D(var_00,1);
level.player.inrodeo = undefined;
self notify("end_rodeo");
}
//Function Number: 2
func_E245()
{
self endon("death");
self.var_1198.var_E5F9 = 1;
wait(0.75);
self.var_1198.var_E5F9 = undefined;
}
//Function Number: 3
func_361A(param_00)
{
var_01 = "aimset_" + param_00;
var_02 = 0.2;
var_03 = lib_0A1E::func_2356(var_01,"arm_rail");
self method_806F(var_03,var_02);
var_03 = lib_0A1E::func_2356(var_01,"arm_pitch");
self method_806F(var_03,var_02);
}
//Function Number: 4
func_35F1(param_00,param_01,param_02)
{
self endon("death");
var_03 = 0;
var_04 = [scripts\common\utility::func_7B25(param_00,"hit_start"),scripts\common\utility::func_7B25(param_00,"hit_end")];
var_05 = gettime();
self method_82E7("RodeoHitPlayer",param_00,1,0.2,1);
thread lib_0A1E::func_231F("rodeo","RodeoHitPlayer",::func_35EE);
wait(var_04[0] - 0.05);
var_06 = func_4A09(param_01);
if(isdefined(param_02) && param_02)
{
level.player method_83F6(30,var_06.origin,0);
level.player playrumbleonentity("light_1s");
}
var_07 = func_D3B0();
wait(0.05);
self.var_D267.var_3919 = 0;
var_06 makeusable();
var_08 = var_04[1] - var_04[0] * 3000;
var_09 = var_05 + var_04[0] * 1000 + var_08;
func_E5FE("Can HIT NOW " + var_09 - gettime());
while(gettime() < var_09)
{
if(func_D3B0() && !var_07)
{
var_03 = 2;
break;
}
else if(var_07)
{
var_07 = func_D3B0();
}
wait(0.05);
}
func_E5FE("Cannot HIT");
var_06 makeunusable();
var_06 delete();
while(self method_8102(param_00) < 0.99)
{
wait(0.05);
}
self.var_D267.var_3919 = 1;
return var_03;
}
//Function Number: 5
func_35F2(param_00)
{
self endon("death");
var_01 = lib_0A1E::func_2356("rodeo_right","struggle");
var_02 = scripts\common\utility::spawn_tag_origin();
var_02 method_81E2(level.player,"tag_origin",(50,0,-15),(0,0,0),1);
var_02 setcursorhint("HINT_BUTTON");
var_02 method_84B8(1);
var_02 method_84A2(500);
var_02 method_84A4(500);
var_02 makeusable();
var_02 show();
self.var_A8E4 = 0;
thread func_35F4();
var_03 = 1;
var_04 = var_03;
var_05 = 0;
var_06 = 0.01;
var_07 = 0.3;
self.var_B3C3 = 0;
var_08 = 5;
var_09 = 1000 / var_08;
self.var_6D3E = 1;
thread func_35F3();
param_00 method_8244("steady_rumble");
var_0A = getdvarint("cg_fov");
var_0B = 50;
var_0C = var_0A - var_0B;
while(var_05 < 0.9)
{
scripts\common\utility::func_136F7();
var_04 = var_03;
var_03 = self.var_B3C3 >= var_08;
var_0D = gettime() - self.var_A8E4;
var_05 = self method_8102(var_01);
if(var_03 && !var_04)
{
self method_82B1(var_01,var_07);
param_00 method_82B1(param_00.var_11169,var_07);
}
if(!var_03)
{
if(var_04)
{
self method_82B1(var_01,0);
param_00 method_82B1(param_00.var_11169,0);
continue;
}
if(var_05 > var_06)
{
var_05 = var_05 - var_06;
self method_82B0(var_01,var_05);
param_00 method_82B0(param_00.var_11169,var_05);
}
}
level.player method_81DE(var_0A - var_0C * var_05,0.05);
}
self notify("mash_end");
level.player notify("stop_temperature_sfx");
self.var_6D3E = 0;
var_02 makeunusable();
var_02 delete();
self method_82B1(var_01,var_07);
param_00 method_82B1(param_00.var_11169,var_07);
level.player method_81DE(var_0B,getanimlength(var_01) * 1 - var_05 / var_07);
while(self method_8102(var_01) < 1)
{
scripts\common\utility::func_136F7();
}
self method_82B1(var_01,0);
param_00 method_82B1(param_00.var_11169,0);
playfxontag(level.var_7649["vfx_c12_joint_selfdestruct_head_buildup"],self,"j_neck");
wait(0.4);
self setscriptablepartstate("head","rodeofinal");
thread scripts\sp\_utility::play_sound_on_tag("c12_rodeo_head_explo","j_neck");
lib_0A1B::func_2982(1);
level.player method_83F6(40,self gettagorigin("j_neck"),0);
earthquake(0.4,0.5,self gettagorigin("j_neck"),256);
param_00 stoprumble("steady_rumble");
wait(0.05);
setslowmotion(1,0.2,0.2);
level.player playrumbleonentity("heavy_1s");
level.player method_81DE(var_0A,1);
wait(0.3);
setslowmotion(0.2,1,2);
self.brodeostrugglesucceeded = 1;
self notify("struggle_succeeded");
}
//Function Number: 6
func_35F4()
{
self endon("mash_end");
level.player endon("death");
var_00 = 0;
for(;;)
{
scripts\common\utility::func_136F7();
if(level.player usebuttonpressed())
{
if(!var_00)
{
self.var_A8E4 = gettime();
thread func_12DE6();
}
var_00 = 1;
continue;
}
var_00 = 0;
}
}
//Function Number: 7
func_35F3()
{
self endon("death");
var_00 = isdefined(level.var_470F);
level.var_470F = 1;
thread func_116C9();
var_01 = level.player.health;
var_02 = level.player.maxhealth;
level.player.health = level.player.maxhealth;
var_03 = level.player.health;
var_04 = level.var_35C6;
var_05 = "j_weaponshoulder_le";
thread func_A661(var_05);
while(self.var_6D3E && isalive(level.player))
{
var_03 = var_03 - var_04;
var_06 = level.player.health - var_03;
level.player method_80A1();
level.player dodamage(var_06,level.player.origin,self);
level.player method_80D1();
wait(2);
}
if(!isalive(level.player))
{
return;
}
if(scripts\sp\_utility::func_93A6())
{
level.player.health = var_01;
level.player.maxhealth = var_02;
}
if(!var_00)
{
level.var_470F = undefined;
}
}
//Function Number: 8
func_A661(param_00)
{
self waittill("death");
killfxontag(level.var_7649["vfx_c12_knife_sparks"],self,param_00);
}
//Function Number: 9
func_116C9()
{
var_00 = undefined;
var_01 = 10;
var_02 = 400;
var_03 = getomnvar("ui_helmet_meter_temperature");
var_04 = var_03;
var_00 = undefined;
while(self.var_6D3E && isalive(self))
{
if(!isdefined(var_00))
{
level.player setclientomnvar("ui_show_temperature_gauge",1);
var_00 = 1;
level.player playsound("scn_c12_rodeo_plr_on_fire");
thread func_35EF();
}
wait(0.05);
var_04 = var_04 + var_01;
var_04 = min(var_04,var_02);
level.player setclientomnvar("ui_helmet_meter_temperature",var_04);
}
level.player setclientomnvar("ui_show_temperature_gauge",0);
wait(2);
while(var_04 > var_03)
{
wait(0.05);
var_04 = var_04 - var_01 * 2;
var_04 = max(var_04,var_03);
level.player setclientomnvar("ui_helmet_meter_temperature",var_04);
}
}
//Function Number: 10
func_35EF()
{
var_00 = spawn("script_origin",level.player.origin);
var_00 linkto(level.player);
wait(0.05);
var_00 playsound("ui_c12_rodeo_temperature_warning_lp_start");
wait(0.5);
var_00 thread c12_rodeo_temperature_sfx_lp();
level.player scripts\common\utility::waittill_any_3("stop_temperature_sfx","death");
var_00 stoploopsound("ui_c12_rodeo_temperature_warning_lp");
var_00 delete();
level.player playsound("ui_c12_rodeo_temperature_warning_lp_end");
}
//Function Number: 11
c12_rodeo_temperature_sfx_lp()
{
level.player endon("stop_temperature_sfx");
level.player endon("death");
wait(1.7);
self playloopsound("ui_c12_rodeo_temperature_warning_lp");
}
//Function Number: 12
func_6D73()
{
self endon("death");
self playsound("weap_c12_minigun_spinup");
self playloopsound("weap_c12_minigun_fire");
var_00 = self.var_F0C4;
var_01 = "tag_weapon_rotate_le";
self method_82A2(lib_0A1E::func_2356("rodeo_right","fire"),1,0.2,1);
var_02 = lib_0A1E::func_2356("rodeo_right","struggle");
var_03 = getnotetracktimes(var_02,"impfx");
var_04 = [level.var_7649["vfx_imp_cstm_rodeo_a"],level.var_7649["vfx_imp_cstm_rodeo_b"],level.var_7649["vfx_imp_cstm_rodeo_c"],level.var_7649["vfx_imp_cstm_rodeo_d"],level.var_7649["vfx_imp_cstm_rodeo_e"],level.var_7649["vfx_imp_cstm_rodeo_final"]];
var_05 = 0;
var_06 = getnotetracktimes(var_02,"headseq");
var_07 = 0;
var_08 = "titan_c12_rodeo_bullet_hits_lp";
var_09 = 0;
for(;;)
{
var_0A = self gettagorigin(var_01);
var_0B = self gettagangles(var_01);
var_0C = var_0A + anglestoforward(var_0B);
var_0D = function_002C(var_0A,var_0C,4);
self method_8494(var_00,var_0A,var_0B,1,var_0D,0,0,var_01);
var_0E = 0.35;
if(!isdefined(self.brodeostrugglesucceeded) || !self.brodeostrugglesucceeded)
{
var_0F = self method_8102(var_02);
if(var_05 < var_03.size && var_0F >= var_03[var_05])
{
self.var_E5EF = var_04[var_05];
var_05++;
}
if(var_07 < var_06.size && var_0F >= var_06[var_07])
{
self setscriptablepartstate("head","rodeo" + var_07);
var_07++;
}
if(isdefined(self.var_E5EF))
{
var_10 = scripts\common\trace::func_DCEE(var_0C,var_0D);
if(isdefined(var_10["entity"]) && var_10["entity"] == self)
{
var_0E = 0.6;
playfxontag(self.var_E5EF,self,"j_helmet");
level.player playrumbleonentity("light_1s");
if(!var_09)
{
thread scripts\sp\_utility::func_CD81(var_08,"j_head");
var_09 = 1;
}
}
else if(var_09)
{
thread scripts\common\utility::func_11018(var_08);
var_09 = 0;
}
}
}
earthquake(var_0E,0.1,self gettagorigin("tag_brass_le"),32);
wait(0.1);
}
}
//Function Number: 13
func_12DE6()
{
var_00 = 1;
if(self.var_B3C3 == 0)
{
var_00 = 3;
}
self.var_B3C3 = self.var_B3C3 + var_00;
wait(1);
self.var_B3C3 = self.var_B3C3 - var_00;
}
//Function Number: 14
func_D91A(param_00)
{
}
//Function Number: 15
func_D3B0()
{
return isalive(level.player) && level.player meleebuttonpressed();
}
//Function Number: 16
func_D433(param_00,param_01)
{
self endon("death");
param_00 endon("death");
var_02 = 0;
for(;;)
{
wait(0.05);
if(!param_00.var_3919)
{
continue;
}
if(!var_02)
{
var_02 = 1;
thread func_D3F3(param_00,param_01);
}
if(!func_D3B0())
{
continue;
}
var_02 = 0;
func_D3F2(param_00,param_01);
}
}
//Function Number: 17
func_4A09(param_00)
{
var_01 = "j_missile_backcover_ri";
var_02 = (0,0,0);
if(param_00 == "left")
{
var_01 = "tag_brass_le";
var_02 = (-3,-12,0);
}
var_03 = scripts\common\utility::spawn_tag_origin();
var_03 linkto(self,var_01,var_02,(0,0,0));
var_03 method_84A3("+melee");
var_03 setcursorhint("HINT_BUTTON");
var_03 method_84A2(50);
var_03 method_84A4(100);
var_03 sethintstring(&"SCRIPT_C12_RODEO_MELEE");
return var_03;
}
//Function Number: 18
func_361C(param_00)
{
var_01 = spawn("script_model",param_00.origin);
var_01.angles = param_00.angles;
var_01 method_83D0(#animtree);
var_02 = level.player method_84C6("currentViewModel");
if(isdefined(var_02))
{
var_01 setmodel(var_02);
}
var_01 hide();
var_01.var_3508 = param_00;
var_01.var_11169 = %titan_c12_rodeo_gun_player_struggle;
return var_01;
}
//Function Number: 19
func_D3F4(param_00,param_01,param_02)
{
func_E5FE(" --- PlayerRig_Jump");
var_03 = "rodeoJump";
var_04 = undefined;
if(param_01 == "right")
{
switch(param_02)
{
case "front":
var_04 = %titan_c12_rodeo_player_jump_front;
break;
case "left":
var_04 = %titan_c12_rodeo_player_jump_left;
break;
case "rear":
var_04 = %titan_c12_rodeo_player_jump_rear;
break;
case "right":
var_04 = %titan_c12_rodeo_player_jump_right;
break;
}
}
else
{
switch(param_02)
{
case "front":
var_04 = %titan_c12_rodeo_gun_player_jump_front;
break;
case "left":
var_04 = %titan_c12_rodeo_gun_player_jump_left;
break;
case "rear":
var_04 = %titan_c12_rodeo_gun_player_jump_rear;
break;
case "right":
var_04 = %titan_c12_rodeo_gun_player_jump_right;
break;
}
}
level.player playsound("double_jump_boost_plr");
level.player playrumbleonentity("doublejumpboost_start");
param_00 method_8018(var_03,self gettagorigin("j_spineupper"),self gettagangles("j_spineupper"),var_04);
param_00 scripts\anim\shared::func_592B(var_03,::func_D403);
}
//Function Number: 20
func_D3FA(param_00,param_01)
{
func_E5FE(" --- PlayerRig_Mount");
var_02 = "rodeoMount";
var_03 = %titan_c12_rodeo_player_mount;
if(param_01 == "left")
{
var_03 = %titan_c12_rodeo_gun_player_mount;
}
param_00 method_8018(var_02,self gettagorigin("j_spineupper"),self gettagangles("j_spineupper"),var_03);
param_00 scripts\anim\shared::func_592B(var_02,::func_D403);
}
//Function Number: 21
func_D3F0(param_00,param_01)
{
func_E5FE(" --- PlayerRig_Hit");
var_02 = "rodeoHit";
var_03 = %titan_c12_rodeo_player_hit;
if(param_01 == "left")
{
var_03 = %titan_c12_rodeo_gun_player_hit;
}
param_00 method_8018(var_02,self gettagorigin("j_spineupper"),self gettagangles("j_spineupper"),var_03);
param_00 scripts\anim\shared::func_592B(var_02,::func_D403);
}
//Function Number: 22
func_D3F2(param_00,param_01)
{
func_E5FE(" --- PlayerRig_HitQuickMiss");
var_02 = "rodeoQuickMiss";
if(param_01 == "right")
{
param_00 method_8018(var_02,self gettagorigin("j_spineupper"),self gettagangles("j_spineupper"),%titan_c12_rodeo_player_miss_quick);
}
else
{
param_00 method_82E7(var_02,%titan_c12_rodeo_gun_player_miss_quick);
}
param_00 scripts\anim\shared::func_592B(var_02,::func_D403);
}
//Function Number: 23
func_D3F3(param_00,param_01)
{
func_E5FE(" --- PlayerRig_Idle");
var_02 = "rodeoIdle";
if(param_01 == "right")
{
param_00 method_8018(var_02,self gettagorigin("j_spineupper"),self gettagangles("j_spineupper"),%titan_c12_rodeo_player_idle);
}
else
{
param_00 method_82E7(var_02,%titan_c12_rodeo_gun_player_idle);
}
param_00 scripts\anim\shared::func_592B(var_02,::func_D403);
}
//Function Number: 24
func_D404(param_00)
{
func_E5FE(" --- PlayerRig_Struggle");
var_01 = "rodeoStruggle";
param_00 method_8018(var_01,self gettagorigin("j_spineupper"),self gettagangles("j_spineupper"),param_00.var_11169);
param_00 scripts\anim\shared::func_592B(var_01,::func_D403);
}
//Function Number: 25
func_D3ED(param_00,param_01)
{
func_E5FE(" --- PlayerRig_Dismount");
var_02 = "rodeoDismount";
var_03 = %titan_c12_rodeo_player_dismount;
if(param_01 == "left")
{
var_03 = %titan_c12_rodeo_gun_player_dismount;
}
thread func_D3EF(param_00,param_01,var_03);
param_00 method_8018(var_02,self gettagorigin("j_spineupper"),self gettagangles("j_spineupper"),var_03);
param_00 scripts\anim\shared::func_592B(var_02,::func_D403);
}
//Function Number: 26
func_D3F6(param_00,param_01,param_02)
{
func_E5FE(" --- PlayerRig_KnockOff");
var_03 = "rodeoKnockOff";
var_04 = %titan_c12_rodeo_player_miss_knockoff;
if(param_01 == "left")
{
var_04 = %titan_c12_rodeo_gun_player_miss_knockoff;
}
thread func_D3F7(param_00,param_01,param_02);
param_00 method_8018(var_03,self gettagorigin("j_spineupper"),self gettagangles("j_spineupper"),var_04);
param_00 scripts\anim\shared::func_592B(var_03,::func_D403);
}
//Function Number: 27
func_35EE(param_00)
{
if(scripts\sp\_anim::func_C0DB(param_00))
{
}
}
//Function Number: 28
func_D403(param_00,param_01)
{
if(scripts\sp\_anim::func_C0DB(param_00))
{
return;
}
if(self.var_13CCC == "right")
{
var_02 = "tag_knife_attach2";
}
else
{
var_02 = "tag_accessory_left";
}
var_03 = self.var_3508;
switch(param_00)
{
case "attach_rocket":
if(isdefined(self.var_3508.var_E601))
{
var_03.var_E601 delete();
}
self attach(level.var_EC8C["asm_c12_rodeo_rocket"],var_02,1);
break;
case "detach_rocket":
var_03 thread func_CC50(self);
self detach(level.var_EC8C["asm_c12_rodeo_rocket"],var_02);
break;
case "attach_knife":
self attach(level.var_EC8C["asm_c12_viewmodel_knife"],var_02,1);
break;
case "knife_hit":
if(self.var_13CCC == "left")
{
playfxontag(level.var_7649["vfx_c12_knife_sparks"],var_03,"j_weaponshoulder_le");
var_03 thread scripts\sp\_utility::func_CD81("titan_c12_rodeo_fire_loop","tag_brass_le");
}
else
{
var_04 = self gettagangles("tag_knife_fx");
var_05 = self gettagorigin("tag_knife_fx") + rotatevector((0,0,-6),var_04);
playfx(level.var_7649["vfx_c12_knife_oneshot"],var_05,anglestoforward(var_04),anglestoup(var_04));
}
break;
case "detach_knife":
self detach(level.var_EC8C["asm_c12_viewmodel_knife"],var_02);
break;
case "fire_minigun":
var_03 thread func_6D73();
break;
case "rocket_pop":
var_03.var_E601 linkto(self,"tag_knife_attach2",(0,0,0),(0,0,0));
break;
case "jump_off":
self notify("jump_off");
break;
case "weapons_free":
level.player playerlinkto(self,"tag_player");
var_03 thread func_D3EE(self.var_13CCC);
self.var_13CC9 = 1;
self unlink();
self hide();
break;
case "rumble":
self playrumbleonentity("light_1s");
break;
}
}
//Function Number: 29
func_D3EF(param_00,param_01,param_02)
{
self.var_180 = 1;
self.var_595F = 1;
self.playerwillunlink = 1;
var_03 = gettime() + 1000 * getanimlength(param_02);
param_00 waittill("jump_off");
while(gettime() < var_03)
{
var_04 = level.player.origin;
wait(0.05);
var_05 = level.player.origin;
if(!level.player scripts\common\trace::func_D307(var_05,var_05 + var_05 - var_04,level.player.angles,[param_00,level.player,self]))
{
level.player setorigin(var_04);
break;
}
}
level.player unlink();
param_00 delete();
if(!isdefined(param_00.var_13CC9))
{
thread func_D3EE(param_01);
}
self.var_180 = 0;
self.var_595F = undefined;
level.player scripts\common\utility::func_1C40(1);
level.player scripts\common\utility::func_1C60(1);
wait(0.3);
level.player.ignoreme = 0;
if(!self.var_D461)
{
level.player method_80A1();
}
if(param_01 == "left")
{
lib_0A05::func_3634("c12AchievementRodeoLeft");
}
}
//Function Number: 30
func_D3EE(param_00)
{
level.player scripts\common\utility::allow_weapon(1);
level.player scripts\common\utility::func_1C58(1);
if(param_00 == "right")
{
self notify("can_damage_rocket");
thread lib_0F3D::func_50E8(0);
self method_84AE();
level.player lib_0E42::func_8387("specialty_quickdraw");
var_01 = getdvarfloat("perk_quickDrawSpeedScaleSP",1);
var_02 = getdvarfloat("perk_quickDrawSpeedScaleSniperSP",1);
var_03 = getdvarfloat("bg_quickWeaponSwitchSpeedScaleSP",1);
var_04 = func_7D71(self.var_D34D);
function_01C5("perk_quickDrawSpeedScaleSP",var_01 * var_04);
function_01C5("perk_quickDrawSpeedScaleSniperSP",var_02 * var_04);
function_01C5("bg_quickWeaponSwitchSpeedScaleSP",var_03 / var_04);
var_05 = int(weaponclipsize(self.var_D34D) * 0.5);
if(level.player getweaponammoclip(self.var_D34D) < var_05)
{
level.player setweaponammoclip(self.var_D34D,var_05);
}
setslowmotion(1,0.2,0.2);
while(isdefined(level.player getlinkedparent()) && isalive(self))
{
wait(0.05);
}
function_01C5("perk_quickDrawSpeedScaleSP",var_01);
function_01C5("perk_quickDrawSpeedScaleSniperSP",var_02);
function_01C5("bg_quickWeaponSwitchSpeedScaleSP",var_03);
level.player lib_0E42::func_E150("specialty_quickdraw");
self method_84AD();
self setcandamage(1);
if(!isalive(self))
{
wait(0.2);
setslowmotion(0.2,1,0.2);
}
else
{
setslowmotion(0.2,1,0);
}
}
level.player method_84AF(0);
}
//Function Number: 31
func_445F(param_00,param_01)
{
return func_7D6D(param_00) < func_7D6D(param_01);
}
//Function Number: 32
func_7D6D(param_00)
{
var_01 = weaponclass(param_00);
switch(var_01)
{
case "pistol":
case "smg":
case "rifle":
return 0;
case "spread":
return 1;
case "mg":
return 2;
case "rocketlauncher":
return 3;
case "sniper":
return 4;
default:
return 5;
}
}
//Function Number: 33
func_7D71(param_00)
{
var_01 = weaponclass(param_00);
switch(var_01)
{
case "pistol":
case "smg":
case "rifle":
return 1;
case "spread":
return 1;
case "mg":
return 1.35;
case "sniper":
return 1.5;
case "rocketlauncher":
return 1.5;
default:
return 1;
}
}
//Function Number: 34
func_CC50(param_00)
{
self endon("death");
var_01 = param_00 gettagorigin("tag_knife_attach2");
var_02 = param_00 gettagangles("tag_knife_attach2");
var_03 = spawn("script_model",var_01);
var_03.angles = var_02;
var_03 setmodel(level.var_EC8C["asm_c12_rodeo_rocket"]);
var_03 linkto(self,"j_neck");
self.var_E601 = var_03;
self waittill("can_damage_rocket");
var_03 scripts\sp\_utility::func_9196(3,1,1);
var_03 setcandamage(1);
var_03.health = 9999;
var_04 = 30;
while(isdefined(var_03) && var_04 > 0)
{
var_03 waittill("damage",var_05,var_06);
if(var_06 == level.player)
{
var_04 = var_04 - var_05;
continue;
}
var_03.health = var_03.health + var_05;
}
if(!isdefined(var_03))
{
return;
}
var_03 method_81D0();
var_01 = self gettagorigin("j_spineupper");
self playsound("scn_C12_rodeo_exp");
playfx(level.var_7649["c12_implode_pre_explosion"],var_01);
var_07 = int(90 * distance(var_01,level.player.origin) / 1000);
level.player method_83F6(var_07,var_01,0);
self method_824A("vox_c12_death","vox_c12_death",1);
lib_0C46::func_3539("implode",["right_leg","left_leg"]);
self method_8189("j_spinelowerbottom");
self.var_2303.var_4E73 = 1;
playrumbleonposition("heavy_1s",var_01);
earthquake(0.25,0.5,var_01,1200);
lib_0A05::func_3634("c12AchievementRodeoRight");
var_01 = var_03.origin;
var_03 delete();
thread scripts\common\utility::play_sound_in_space("c12_self_destruct",self.origin);
self method_81D0(var_01,level.player);
}
//Function Number: 35
func_10907()
{
if(isdefined(self.var_E601))
{
return;
}
var_00 = spawn("script_model",self.origin);
var_00 setmodel(level.var_EC8C["asm_c12_rodeo_rocket_nocoll"]);
var_01 = (7.15,2,-2.15);
var_02 = (0,-90,0);
var_03 = "j_weaponshoulder_ri";
var_04 = self gettagangles(var_03);
var_00 linkto(self,var_03,var_01,var_02);
self.var_E601 = var_00;
}
//Function Number: 36
func_D3F7(param_00,param_01,param_02)
{
self.playerwillunlink = 1;
wait(param_02);
level.player playrumbleonentity("heavy_1s");
thread lib_0F3D::func_50E8(0);
level.player method_84AF(0);
if(param_01 == "right")
{
var_03 = "tag_brass_ri";
}
else
{
var_03 = "tag_missile_bottom_back_le";
}
var_04 = self gettagorigin(var_03);
var_05 = vectornormalize(level.player.origin - var_04);
var_06 = var_05 * 500;
level.player setvelocity(var_06);
level.player method_83F6(75,var_04);
if(!self.var_D461)
{
level.player method_80A1();
}
level.player dodamage(level.player.health * 0.6,var_04,self);
wait(0.2);
level.player unlink();
level.player scripts\common\utility::allow_weapon(1);
level.player scripts\common\utility::func_1C58(1);
level.player scripts\common\utility::func_1C40(1);
level.player scripts\common\utility::func_1C60(1);
param_00 delete();
level.player.ignoreme = 0;
self.ignoreme = 0;
self setcandamage(1);
}
//Function Number: 37
func_E5FE(param_00)
{
}
//Function Number: 38
func_D310()
{
self endon("end_rodeo");
self waittill("death");
if(isdefined(self.playerwillunlink))
{
return;
}
level.player unlink();
self.var_D267 delete();
thread lib_0F3D::func_50E8(0);
level.player method_81DE(65,0.2);
level.player scripts\common\utility::func_1C40(1);
level.player scripts\common\utility::func_1C60(1);
level.player scripts\common\utility::func_1C58(1);
level.player method_84AF(0);
level.player scripts\common\utility::allow_weapon(1);
level.player.ignoreme = 0;
level.player.inrodeo = undefined;
if(!self.var_D461)
{
level.player method_80A1();
}
}