/// <summary> /// Returns an unique callsign in the NATO format (Callsign Number Number) /// </summary> /// <param name="csFamily">The type of aircraft (AWACS, tanker, fighter...)</param> /// <returns>The callsign</returns> private MGCallsign GetNATOCallsign(CallsignFamily csFamily) { int callsignIndex; do { callsignIndex = HQTools.RandomInt(NATO_CALLSIGN_NAMES[(int)csFamily].Length); } while (NATOCallsigns[(int)csFamily][callsignIndex] >= 9); NATOCallsigns[(int)csFamily][callsignIndex]++; string groupName = NATO_CALLSIGN_NAMES[(int)csFamily][callsignIndex] + " " + HQTools.ValToString(NATOCallsigns[(int)csFamily][callsignIndex]); string unitName = groupName + " $INDEX$"; //string onboardNum = HQTools.ValToString((callsignIndex % 9) + 1) + // NATOCallsigns[(int)csFamily][callsignIndex] + "$INDEX$"; string lua = $"{{ [1]= {HQTools.ValToString(callsignIndex + 1)}, " + $"[2]={HQTools.ValToString(NATOCallsigns[(int)csFamily][callsignIndex])}, " + "[3]=$INDEX$, " + $"[\"name\"] = \"{unitName.Replace(" ", "")}\", }}"; return(new MGCallsign(groupName, unitName /*, onboardNum*/, lua)); }
/// <summary> /// Returns an unique callsign for an aircraft group. /// </summary> /// <param name="csFamily">The type of aircraft (AWACS, tanker, fighter...)</param> /// <param name="natoCallsign">Should this callsign be in the NATO format (true) or the Russian format (false)</param> /// <returns></returns> public MGCallsign GetCallsign(CallsignFamily csFamily, Coalition coalition) { if (CoalitionUsesNATOCallsigns[(int)coalition]) { return(GetNATOCallsign(csFamily)); } return(GetRussianCallsign()); }