Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }