Class Ability:Disguise
Content
The Spy's special ability opens the disguise menu.
Conditions
Spies attempting to disguise should:
- Not be carrying any goals (standard flags, keys etc) that prevent disguising from taking place. This should be LUA-controlled as some maps allow disuising while carrying flags.
Disguise Menu
From the disguise menu, players can choose the team colour and class to disguise as.
On maps featuring two teams, there are two options: Enemy or Friendly. Choosing one of these options then opens the class menu where the player can complete their selection.
E.g. Enemy->Spy. Friendly->Scout. Enemy->HWGuy.
On maps featuring more than two teams, there are n colour options, where n is the number of teams. After choosing a team colour, the class disguise menu opens allowing the player to choose their complete disguise.
E.g. Blue->Soldier. Red->Scout. Green->Spy. Yellow->Sniper
On regular maps, spies should not be allowed to disguise as civilians. We could add this functionality in for non-regular maps where the civilian class is used for something and spies are also permitted (for example, a assassination map where the prez has a decoy). If maps feature class restrictions (e.g. no demos), then the spy disguise options should reflect those restrictions as disguising as a class that is disabled is basically useless. This isn't hugely important, but it should be added at some point.
Needs Updated with the radial menu
Friendly Indicators
When a disguised allied spy is viewed by a teammate, a visual indicator should be displayed. This could simply be something like a team coloured "F" sprite being placed over the spy's head (so blue spies would have a blue F and so forth, regardless of the disguise currently employed). If a spy cumulatively receives 50 or more damage from a teammate, warning text and an audible "Ceasefire, I'm on your team!" sound effect should play to further reinforce the fact that the player is a teammate.
Disguise Fools Buildables
When disguised as a member or ally of the team to which a buildable belongs, the spy is ignored. Sentry guns do not track disguised spies. Dispensers cannot warn their owners of a disguised spy's presence even if the spy touches the dispenser.
Player Identification
When placed under an enemy's crosshair, the spy's name should show up as one the team members found on the team the spy is masquerading as. The name should preferably never correspond to that of the person who's looking at the spy and trying to identify him unless no other option is available (i.e. the disguise team has one member, so no other options exist). The health value should always be positive, and the armour value sensible. E.g. a scout with 10 health will generally always have 0 armour, as the scout's armour depletes faster than his health. Believable armour values could be calculated by applying the Armour absorption ratios relative to the class' remaining health values and associated armour type.
Class Identification and 3rd Person Weapons
When spies are disguised, they should display the relevant weapon in the third person view. TFC's spy was inflexible, as they could only equip one weapon in third person mode, making them very easy to spot in many instances.
The spy possesses four weapon slots (1,2,3 and 4), so there's enough choice to assign each slot a corresponding weapons slot with the disguised class (excluding the demoman's detpack and the engineer's buildables, as those are special cases).
For example, when disguised as the soldier:
Actual weapon / Weapon shown in 3rd person
- Slot1: Knife / Crowbar
- Slot2: Tranq / Single-barrelled Shotgun
- Slot3: Double-barrelled Shotgun / Double-barrelled Shotgun
- Slot4: Nailgun / RPG
This allows the spy to blend in more easily.
1st Person Weapons
When disguised, the spy's weapon viewmodel is unaffected by the disguise. Instead, the HUD shows an icon indicating what the 3rd person disguise weapon will appear to be.
E.g. If the spy is disguised as a soldier and is using slot 4, the nailgun viewmodel is held as normal and a HUD icon showing the RPG is displayed. This means the spy is, in reality, holding the nailgun but other players will see the spy as a soldier holding the RPG.
Speed Toggle
The player should be able to toggle between disguised speed and full speed using a bound key or a cvar. The HUD should indicate whether disguise speed or full speed is activated. Firing or losing disguise should obviously be a condition for the disguised speed to become reset to full speed regardless of the user's settings, as there is no advantage to running slowly when stripped of the disguise. If activated, the disguised speed should also be applied when disguised as a friendly class, as it is sometimes preferable to make the enemy think you're playing as another class. The disguised speed should obviously only apply when disguised as classes slower than the spy, as disguising as a scout shouldn't make you run faster than default.