public static Paragraph RichTranslateKeyLog(ActionLog log) { Paragraph paragraph = new Paragraph(); string source = Translate(log.Source); string dests = Translate(log.Targets); IList <Inline> skillInline = RichTranslate(log.SkillAction); string formatter = source; switch (log.GameAction) { case GameAction.None: if (log.SkillAction != null) { ISkill skill = log.SkillAction; if (skill is ActiveSkill) { if (!string.IsNullOrEmpty(dests)) { dests = "对" + dests; } if (log.SkillAction is IEquipmentSkill) { IEquipmentSkill equipSkill = log.SkillAction as IEquipmentSkill; if (equipSkill.ParentEquipment is Weapon) { paragraph.Inlines.Add(string.Format("{0}{1}发动了", source, dests)); paragraph.Inlines.AddRange(RichTranslate(equipSkill.ParentEquipment)); paragraph.Inlines.Add("的武器特效"); } } else { paragraph.Inlines.Add(string.Format("{0}{1}发动了武将技能", source, dests)); paragraph.Inlines.AddRange(RichTranslate(log.SkillAction)); } } else if (skill is TriggerSkill) { if (skill is IEquipmentSkill) { IEquipmentSkill equipSkill = log.SkillAction as IEquipmentSkill; if (equipSkill.ParentEquipment is Weapon) { paragraph.Inlines.Add(string.Format("{0}发动了武器特效", source)); paragraph.Inlines.AddRange(RichTranslate(equipSkill.ParentEquipment)); } else if (equipSkill.ParentEquipment is Armor) { paragraph.Inlines.Add(string.Format("{0}的", source)); paragraph.Inlines.AddRange(RichTranslate(equipSkill.ParentEquipment)); paragraph.Inlines.Add(string.Format("效果被触发", source)); } } else { paragraph.Inlines.Add(string.Format("{0}的武将技能", source)); paragraph.Inlines.AddRange(RichTranslate(log.SkillAction)); paragraph.Inlines.Add(string.Format("被触发")); } } } break; case GameAction.Use: if (log.CardAction.GetType().Name == "WuXieKeJi" && log.SkillAction == null) { paragraph.Inlines.Add(string.Format("{0}使用了卡牌", source)); paragraph.Inlines.AddRange(RichTranslate(log.CardAction)); } break; case GameAction.PlaceIntoDiscard: // return string.Format("{0}{1}置入弃牌堆", source, skill); break; case GameAction.Discard: //return string.Format("{0}{1}弃置", source, skill); break; } paragraph.TextAlignment = TextAlignment.Center; return(paragraph); }
public static Paragraph RichTranslateMainLog(ActionLog log) { Paragraph paragraph = new Paragraph(); string source = Translate(log.Source); string dests = Translate(log.Targets); string secDests = Translate(log.SecondaryTargets); IList <Inline> skillInline = RichTranslate(log.SkillAction); string formatter = source; switch (log.GameAction) { case GameAction.None: if (log.SkillAction != null) { ISkill skill = log.SkillAction; if (skill is ActiveSkill) { IEquipmentSkill equipSkill = log.SkillAction as IEquipmentSkill; if (equipSkill != null && equipSkill.ParentEquipment is Weapon) { paragraph.Inlines.Add(string.Format("{0}{1}发动了", source, dests)); paragraph.Inlines.AddRange(RichTranslate(equipSkill.ParentEquipment)); paragraph.Inlines.Add("的武器特效"); } else { paragraph.Inlines.Add(string.Format("{0}发动了技能", source)); paragraph.Inlines.AddRange(RichTranslate(log.SkillAction)); if (dests != string.Empty) { paragraph.Inlines.Add(",目标是" + dests); } if (secDests != string.Empty) { paragraph.Inlines.Add("," + secDests); } } } else if (skill is TriggerSkill) { if (skill is IEquipmentSkill) { IEquipmentSkill equipSkill = log.SkillAction as IEquipmentSkill; if (equipSkill.ParentEquipment is Weapon) { paragraph.Inlines.Add(string.Format("{0}发动了武器特效", source)); paragraph.Inlines.AddRange(RichTranslate(equipSkill.ParentEquipment)); } else if (equipSkill.ParentEquipment is Armor) { paragraph.Inlines.Add(string.Format("{0}的", source)); paragraph.Inlines.AddRange(RichTranslate(equipSkill.ParentEquipment)); paragraph.Inlines.Add(string.Format("效果被触发", source)); } } else { paragraph.Inlines.Add(string.Format("{0}的武将技能", source)); paragraph.Inlines.AddRange(RichTranslate(log.SkillAction)); paragraph.Inlines.Add(string.Format("被触发")); } if (dests != string.Empty) { paragraph.Inlines.Add(",目标是" + dests); } } else if (skill is CardTransformSkill) { CompositeCard card = log.CardAction as CompositeCard; Trace.Assert(card != null); paragraph.Inlines.Add(string.Format("{0}发动了技能", source)); paragraph.Inlines.AddRange(RichTranslate(log.SkillAction)); if (card.Subcards.Count > 0) { paragraph.Inlines.Add(",将"); paragraph.Inlines.AddRange(RichTranslate(card.Subcards)); paragraph.Inlines.Add("当作一张"); paragraph.Inlines.AddRange(RichTranslate(card.Type)); } if (dests != string.Empty) { paragraph.Inlines.Add(string.Format(",目标是" + dests)); } } } break; case GameAction.Use: string toDests = (dests == string.Empty) ? string.Empty : ("对" + dests); paragraph.Inlines.Add(string.Format("{0}{1}使用了", source, toDests)); paragraph.Inlines.AddRange(RichTranslate(log.CardAction, false)); if (secDests != string.Empty) { paragraph.Inlines.Add(string.Format("目标是" + secDests)); } break; case GameAction.Play: paragraph.Inlines.Add(string.Format("{0}打出了", source)); paragraph.Inlines.AddRange(RichTranslate(log.CardAction, false)); break; case GameAction.PlaceIntoDiscard: // return string.Format("{0}{1}置入弃牌堆", source, skill); break; case GameAction.Discard: //return string.Format("{0}{1}弃置", source, skill); break; } return(paragraph); }