public string Substitute(string[] sequenceParts) { string result = null; switch (sequenceParts[0]) { case "av": result = GameState.Instance.PlayerRpgState.GetAV(sequenceParts[1]).ToString(); break; case "inv": result = GameState.Instance.PlayerRpgState.Inventory.CountItem(sequenceParts[1]).ToString(); break; case "invname": { var invModel = InventoryModel.GetModel(sequenceParts[1]); result = (invModel != null ? InventoryModel.GetNiceName(invModel) : "?MODEL?") ?? "?NAME?"; } break; case "cpf": result = GameState.Instance.CampaignState.HasFlag(sequenceParts[1]).ToString(); break; case "cpv": result = GameState.Instance.CampaignState.GetVar <string>(sequenceParts[1]); break; case "cqs": result = GameState.Instance.CampaignState.GetQuestStage(sequenceParts[1]).ToString(); break; case "cqname": result = QuestModel.GetNiceName(sequenceParts[1]); break; case "player": result = GetPlayerAlias(sequenceParts[1]); break; default: throw new ArgumentException(); } return(result); }