1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-17 02:28:06 -05:00

Staffs: refill clip from stock on pick up

This commit is contained in:
Jbleezy
2023-03-29 01:40:04 -07:00
parent 8f955f372e
commit 15f262ea89
3 changed files with 82 additions and 4 deletions

View File

@ -259,6 +259,68 @@ quadrotor_set_unavailable()
level.quadrotor_status.pickup_trig.model ghost();
}
tomb_check_crafted_weapon_persistence( player )
{
if ( self.stub.equipname == "equip_dieseldrone_zm" )
{
if ( level.quadrotor_status.picked_up )
return true;
else if ( level.quadrotor_status.crafted )
return false;
}
else if ( self.stub.weaponname == "staff_air_zm" || self.stub.weaponname == "staff_fire_zm" || self.stub.weaponname == "staff_lightning_zm" || self.stub.weaponname == "staff_water_zm" )
{
if ( self is_unclaimed_staff_weapon( self.stub.weaponname ) )
{
s_elemental_staff = get_staff_info_from_weapon_name( self.stub.weaponname, 0 );
player maps\mp\zombies\_zm_weapons::weapon_give( s_elemental_staff.weapname, 0, 0 );
if ( isdefined( s_elemental_staff.prev_ammo_stock ) && isdefined( s_elemental_staff.prev_ammo_clip ) )
{
clip_size = weaponclipsize( s_elemental_staff.weapname );
if ( s_elemental_staff.prev_ammo_clip < clip_size )
{
clip_add = clip_size - s_elemental_staff.prev_ammo_clip;
if (clip_add > s_elemental_staff.prev_ammo_stock)
{
clip_add = s_elemental_staff.prev_ammo_stock;
}
s_elemental_staff.prev_ammo_clip += clip_add;
s_elemental_staff.prev_ammo_stock -= clip_add;
}
player setweaponammostock( s_elemental_staff.weapname, s_elemental_staff.prev_ammo_stock );
player setweaponammoclip( s_elemental_staff.weapname, s_elemental_staff.prev_ammo_clip );
}
if ( isdefined( level.zombie_craftablestubs[self.stub.equipname].str_taken ) )
self.stub.hint_string = level.zombie_craftablestubs[self.stub.equipname].str_taken;
else
self.stub.hint_string = "";
self sethintstring( self.stub.hint_string );
player track_craftables_pickedup( self.stub.craftablespawn );
model = getent( "craftable_" + self.stub.weaponname, "targetname" );
model ghost();
self.stub thread track_crafted_staff_trigger();
self.stub thread track_staff_weapon_respawn( player );
set_player_staff( self.stub.weaponname, player );
}
else
{
self.stub.hint_string = "";
self sethintstring( self.stub.hint_string );
}
return true;
}
return false;
}
tomb_custom_craftable_validation( player )
{
if ( self.stub.equipname == "equip_dieseldrone_zm" )

View File

@ -133,8 +133,8 @@ main_quest_init()
foreach ( staff in level.a_elemental_staffs )
{
staff.prev_ammo_clip = weaponclipsize( staff_upgraded.weapname );
staff.prev_ammo_stock = weaponmaxammo( staff_upgraded.weapname );
staff.prev_ammo_clip = weaponclipsize( staff.weapname );
staff.prev_ammo_stock = weaponmaxammo( staff.weapname );
staff.upgrade.downgrade = staff;
staff.upgrade useweaponmodel( staff.weapname );
staff.upgrade showallparts();
@ -299,12 +299,27 @@ watch_for_player_pickup_staff()
staff_upgraded_reload()
{
self endon( "staff_equip" );
clip_size = weaponclipsize( self.weapname );
max_ammo = weaponmaxammo( self.weapname );
n_count = int( max_ammo / 20 );
b_reloaded = 0;
while ( true )
{
if ( self.prev_ammo_clip < clip_size )
{
clip_add = clip_size - self.prev_ammo_clip;
if (clip_add > self.prev_ammo_stock)
{
clip_add = self.prev_ammo_stock;
}
self.prev_ammo_clip += clip_add;
self.prev_ammo_stock -= clip_add;
}
if ( self.prev_ammo_stock >= max_ammo )
{
self.prev_ammo_stock = max_ammo;

View File

@ -57,8 +57,9 @@ init()
level.zombie_init_done = ::zombie_init_done;
level.special_weapon_magicbox_check = ::tomb_special_weapon_magicbox_check;
level.custom_magic_box_timer_til_despawn = ::custom_magic_box_timer_til_despawn;
level.zombie_custom_equipment_setup = scripts\zm\replaced\zm_tomb_craftables::setup_quadrotor_purchase;
level.custom_craftable_validation = scripts\zm\replaced\zm_tomb_craftables::tomb_custom_craftable_validation;
level.zombie_craftable_persistent_weapon = scripts\zm\replaced\zm_tomb_craftables::tomb_check_crafted_weapon_persistence;
level.custom_craftable_validation = scripts\zm\replaced\zm_tomb_craftables::tomb_custom_craftable_validation;
level.zombie_custom_equipment_setup = scripts\zm\replaced\zm_tomb_craftables::setup_quadrotor_purchase;
level thread increase_solo_door_prices();
level thread zombie_blood_dig_changes();