From 207facbc402f5639cbcd31f079214351ef605cf2 Mon Sep 17 00:00:00 2001 From: BobTheBob <32057864+BobTheBob9@users.noreply.github.com> Date: Tue, 22 Jun 2021 14:30:49 +0100 Subject: initial commit after moving to new repo --- .../scripts/vscripts/melee/_melee_rewards.gnut | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 Northstar.CustomServers/scripts/vscripts/melee/_melee_rewards.gnut (limited to 'Northstar.CustomServers/scripts/vscripts/melee/_melee_rewards.gnut') diff --git a/Northstar.CustomServers/scripts/vscripts/melee/_melee_rewards.gnut b/Northstar.CustomServers/scripts/vscripts/melee/_melee_rewards.gnut new file mode 100644 index 000000000..46b730d60 --- /dev/null +++ b/Northstar.CustomServers/scripts/vscripts/melee/_melee_rewards.gnut @@ -0,0 +1,74 @@ +untyped + +global function MeleeRewards_Init + + +function MeleeRewards_Init() +{ + AddSyncedMeleeServerCallback( GetSyncedMeleeChooser( "human", "human" ), GiveMeleeRewards ) +} + +void function GiveMeleeRewards( SyncedMeleeChooser actions, SyncedMelee action, entity player, entity enemy ) +{ + thread GiveMeleeRewards_Internal( player, enemy ) +} + +enum eMeleeReward +{ + NONE + AMMO + MAPHACK +} + +function GiveMeleeRewards_Internal( entity player, entity enemy ) +{ + player.EndSignal( "OnDeath" ) + + local reward = eMeleeReward.NONE + + if ( enemy.IsPlayer() ) + reward = eMeleeReward.MAPHACK + else if ( enemy.IsNPC() ) + reward = eMeleeReward.AMMO + + player.WaitSignal( "SyncedMeleeComplete" ) + + switch ( reward ) + { + case eMeleeReward.MAPHACK: + ExecutionGivesMapHack( player ) + break + case eMeleeReward.AMMO: + ExecutionGivesAmmo( player ) + break + default: + break + } +} + +function ExecutionGivesMapHack( entity player ) +{ + printt( "melee gave map hack!" ) + thread ScanMinimap( player, true ) +} + +function ExecutionGivesAmmo( entity player ) +{ + printt( "melee gave ammo!" ) + local grenadeWeapon = player.GetOffhandWeapon( 0 ) + + if ( !IsValid( grenadeWeapon ) ) + return + + local maxAmmoClip = player.GetWeaponAmmoMaxLoaded( grenadeWeapon ) + local remainingAmmo = player.GetWeaponAmmoLoaded( grenadeWeapon ) + + if ( remainingAmmo == maxAmmoClip ) + return + + local ammo = remainingAmmo + 1 + + grenadeWeapon.SetWeaponPrimaryClipCount( ammo ) + + EmitSoundOnEntity( player, "Coop_AmmoBox_AmmoRefill" ) +} \ No newline at end of file -- cgit v1.2.3