예제 #1
0
    private void SublimeWeaponComponentMenu(MenuButton buttonSender, WeaponHash weaponHash)
    {
        List <IMenuItem> componentButtons = new List <IMenuItem>();

        foreach (KeyValuePair <string, string> weaponComponent in weaponComponentItems)
        {
            int  weaponComponentHash    = Function.Call <int>(Hash.GET_HASH_KEY, weaponComponent.Key);
            bool canWeaponHaveComponent = Function.Call <bool>(Hash._CAN_WEAPON_HAVE_COMPONENT, (int)weaponHash, weaponComponentHash);
            if (canWeaponHaveComponent)
            {
                var componentActivateButton = new MenuButton(weaponComponent.Value);
                componentActivateButton.Activated += (sender, args) => WeaponFunctions.ChangeWeaponComponent(weaponHash, weaponComponent);
                componentButtons.Add(componentActivateButton);
            }
        }

        foreach (KeyValuePair <string, int> tintIndex in weaponTintIndexDict)
        {
            var tintActivateButton = new MenuButton(tintIndex.Key);
            tintActivateButton.Activated += (sender, args) => WeaponFunctions.ChangeWeaponTint(weaponHash, tintIndex.Value);
            componentButtons.Add(tintActivateButton);
        }

        WeaponComponentsMenu = new GTA.Menu(buttonSender.Caption, componentButtons.ToArray());
        DrawMenu(WeaponComponentsMenu);
    }
예제 #2
0
        protected void ResetStateTime(GameTime gameTime, BipedWeapon weapon, WeaponFunctions input)
        {
            TimeSpan extraTime = TimeSpan.FromTicks(weapon.TimeInState.Ticks - mDurationTicks);

            weapon.TimeInState = extraTime;
            weapon.CurrentState.Update(new GameTime(gameTime.TotalGameTime, extraTime, gameTime.IsRunningSlowly), weapon, input);
        }
예제 #3
0
 public override void Update(GameTime gameTime, BipedWeapon weapon, WeaponFunctions input)
 {
     if (weapon.TimeInState.Ticks >= mDurationTicks)
     {
         weapon.CurrentState = BashSkill.ReadyState;
         ResetStateTime(gameTime, weapon, WeaponFunctions.Neutral);
     }
 }
예제 #4
0
 public override void Update(GameTime gameTime, BipedWeapon weapon, WeaponFunctions input)
 {
     if (input == WeaponFunctions.TriggerPulled)
     {
         weapon.Fire();
         weapon.CurrentState = BashSkill.SwingingState;
     }
 }
예제 #5
0
 public override void Update(GameTime gameTime, BipedWeapon weapon, WeaponFunctions input)
 {
     if (weapon.TimeInState.Ticks >= mDurationTicks)
     {
         weapon.CurrentState = MachineGunSkill.ReadyState;
         ResetStateTime(gameTime, weapon, WeaponFunctions.Neutral);
     }
 }
예제 #6
0
 public override void Update(GameTime gameTime, BipedWeapon weapon, WeaponFunctions input)
 {
     if (input == WeaponFunctions.TriggerPulled)
     {
         weapon.Fire();
         weapon.CurrentState = BashSkill.SwingingState;
     }
 }
예제 #7
0
    private void SublimeWeaponMenu()
    {
        List <IMenuItem> weaponMenuItems = new List <IMenuItem>();

        var buttonWeaponComponents = new MenuButton("Weapon Components Menu");

        buttonWeaponComponents.Activated += (sender, args) => SublimeWeaponSelectionMenu();
        weaponMenuItems.Add(buttonWeaponComponents);

        var buttonGiveAllWeapons = new MenuButton("Give All Weapons");

        buttonGiveAllWeapons.Activated += (sender, args) => WeaponFunctions.GiveAllWeapons();
        weaponMenuItems.Add(buttonGiveAllWeapons);

        var toggleInfiniteAmmo = new MenuToggle("Infinite Ammunition", "", WeaponFunctions.HasWeaponInfiniteAmmo);

        toggleInfiniteAmmo.Changed += (sender, args) => WeaponFunctions.ToggleInfiniteAmmo();
        weaponMenuItems.Add(toggleInfiniteAmmo);

        var toggleFireBullets = new MenuToggle("Fire Bullets", "", WeaponFunctions.HasWeaponFireBullets);

        toggleFireBullets.Changed += (sender, args) => WeaponFunctions.ToggleFireBullets();
        weaponMenuItems.Add(toggleFireBullets);

        var toggleExplosiveBullets = new MenuToggle("Explosive Bullets", "", WeaponFunctions.HasWeaponExplosiveBullets);

        toggleExplosiveBullets.Changed += (sender, args) => WeaponFunctions.ToggleExplosiveBullets();
        weaponMenuItems.Add(toggleExplosiveBullets);

        var toggleExplosiveMelee = new MenuToggle("Explosive Melee", "", WeaponFunctions.IsExplosiveMeleeEnabled);

        toggleExplosiveMelee.Changed += (sender, args) => WeaponFunctions.ToggleExplosiveMelee();
        weaponMenuItems.Add(toggleExplosiveMelee);

        var toggleOneHitKill = new MenuToggle("One-Hit Kill", "", WeaponFunctions.IsOneHitKillEnabled);

        toggleOneHitKill.Changed += (sender, args) => WeaponFunctions.ToggleOneHitKill();
        weaponMenuItems.Add(toggleOneHitKill);

        var toggleGravityGun = new MenuToggle("Gravity Gun", "", WeaponFunctions.IsGravityGunEnabled);

        toggleGravityGun.Changed += (sender, args) => WeaponFunctions.ToggleGravityGun();
        weaponMenuItems.Add(toggleGravityGun);

        WeaponMenu = new GTA.Menu("Weapon Options", weaponMenuItems.ToArray());
        DrawMenu(WeaponMenu);
    }
예제 #8
0
 public override void Update(GameTime gameTime, BipedWeapon weapon, WeaponFunctions input)
 {
     if (input == WeaponFunctions.TriggerPulled)
     {
         Actor          owner = GameResources.ActorManager.GetActorById(weapon.OwnerActorId);
         WeaponResource wr    = owner.GetBehavior <WeaponResource>();
         if (wr.Value >= weapon.ResourceCostToUse)
         {
             weapon.Fire();
             weapon.CurrentState = BlasterRifleSkill.FiringState;
         }
         else
         {
             weapon.DryFire();
             weapon.CurrentState = BlasterRifleSkill.DryFireState;
         }
     }
 }
예제 #9
0
 protected void ResetStateTime(GameTime gameTime, BipedWeapon weapon, WeaponFunctions input)
 {
     TimeSpan extraTime = TimeSpan.FromTicks(weapon.TimeInState.Ticks - mDurationTicks);
     weapon.TimeInState = extraTime;
     weapon.CurrentState.Update(new GameTime(gameTime.TotalGameTime, extraTime, gameTime.IsRunningSlowly), weapon, input);
 }
예제 #10
0
 public virtual void Update(GameTime gameTime, BipedWeapon weapon, WeaponFunctions input)
 {
 }
예제 #11
0
 public override void Update(GameTime gameTime, BipedWeapon weapon, WeaponFunctions input)
 {
     if (input == WeaponFunctions.TriggerPulled)
     {
         Actor owner = GameResources.ActorManager.GetActorById(weapon.OwnerActorId);
         WeaponResource wr = owner.GetBehavior<WeaponResource>();
         if (wr.Value >= weapon.ResourceCostToUse)
         {
             weapon.Fire();
             weapon.CurrentState = MachineGunSkill.FiringState;
         }
         else
         {
             weapon.DryFire();
             weapon.CurrentState = MachineGunSkill.DryFireState;
         }
     }
 }
예제 #12
0
 public virtual void Update(GameTime gameTime, BipedWeapon weapon, WeaponFunctions input)
 {
 }