Пример #1
0
 /// <summary>
 /// Converts an object into its XML representation.
 /// </summary>
 /// <param name="writer">The <see cref="T:System.Xml.XmlWriter"/> stream to which the object is serialized.</param>
 void IXmlSerializable.WriteXml(XmlWriter writer)
 {
     writer.WriteAttributeString("subtype", Subtype.ToString());
     if (Bytes != null)
     {
         writer.WriteBase64(Bytes, 0, Bytes.Length);
     }
 }
Пример #2
0
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("DataItem=[");
            sb.Append("Typ=0x" + Type.ToString("x"));
            sb.Append(" Subtyp=0x" + Subtype.ToString("x"));
            sb.Append(" Offset=0x" + Offset.ToString("x"));
            sb.Append("]");
            return(sb.ToString());
        }
Пример #3
0
        public static void CreateLetterEntity(DynamicTableEntity entity, string creator, string words,
                                              Subtype subtype, string delta_flags, string board_id, string discussion_id)
        {
            CreatorConverter.FillEntity(entity, CreatorConverter.Status.Creator, creator);

            entity["subtype"] = new EntityProperty(subtype.ToString());
#if OLD
            string flags = SandFlags.Merge("", delta_flags);

            if (flags.Length > 0)
            {
                entity["flags"] = new EntityProperty(flags);
            }
#else
            entity.OperateFlags(new FlagMergeOperation(delta_flags));
#endif
            fillWords(entity, words, board_id, discussion_id);                          // must be after flags modification so that encrypt flag is correct.
        }
Пример #4
0
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("POI=[Typ=0x");
            sb.Append(Type.ToString("x2"));
            if (Subtype > 0x0)
            {
                sb.Append(Subtype.ToString("x2"));
            }
            sb.AppendFormat(" {0}x{1}", Width, Height);
            sb.Append(" ColormodeDay=" + ColormodeDay.ToString());
            sb.Append(" ColormodeNight=" + ColormodeNight.ToString());
            if (FontType != Fontdata.Default)
            {
                sb.Append(" Fonttyp=[" + FontType.ToString() + "]");
            }
            if (FontColType != FontColours.No)
            {
                sb.Append(" CustomColours=[");
                switch (FontColType)
                {
                case FontColours.Day:
                    sb.Append("Day=" + colFontColour[0].ToString());
                    break;

                case FontColours.Night:
                    sb.Append("Night=" + colFontColour[1].ToString());
                    break;

                case FontColours.DayAndNight:
                    sb.Append("Day=" + colFontColour[0].ToString());
                    sb.Append(" Night=" + colFontColour[0].ToString());
                    break;
                }
                sb.Append("]");
            }
            if (WithString)
            {
                sb.Append(" " + Text.ToString());
            }
            sb.Append(" ]");
            return(sb.ToString());
        }
Пример #5
0
        public string GetSubTypeName()
        {
            if (Type == 0)
            {
                if (Subtype == 0)
                {
                    return("FACTORY");
                }
                else if (Subtype < 0x20)
                {
                    return("OTA_" + (Subtype - 0x10).ToString("X"));
                }
                else if (Subtype == 0x20)
                {
                    return("OTA_TEST");
                }
                else
                {
                    return("OTA_? " + Subtype.ToString("X"));
                }
            }
            else if (Type == 1)
            {
                switch (Subtype)
                {
                case 0: return("OTA");

                case 1: return("PHY");

                case 2: return("NVS");

                case 4: return("NVS_KEYS");

                default: return("UNKNOWN " + Subtype.ToString("X"));
                }
            }
            else
            {
                return(Type.ToString());
            }
        }
Пример #6
0
        public override string ToString(Card card, bool capitalize = false)
        {
            StringBuilder toStringBuilder = new StringBuilder();

            if (Optional)
            {
                if (capitalize)
                {
                    toStringBuilder.Append("You may annihilate ");
                }
                else
                {
                    toStringBuilder.Append("you may annihilate ");
                }
            }
            else
            {
                if (capitalize)
                {
                    toStringBuilder.Append("Annihilate ");
                }
                else
                {
                    toStringBuilder.Append("annihilate ");
                }
            }

            string targetOwns = string.Empty;

            List <string> targetStrings = new List <string>();

            foreach (Target target in _targets)
            {
                switch (target)
                {
                case Target.AnyDevice:
                    targetStrings.Add("target device");
                    targetOwns = "that device's";
                    break;

                case Target.OtherDevice:
                    targetStrings.Add("another target device");
                    targetOwns = "that device's";
                    break;

                case Target.AnyShip:
                    targetStrings.Add("target ship");
                    targetOwns = "that ship's";
                    break;

                case Target.ThatShip:
                    targetStrings.Add("that ship");
                    targetOwns = "that ship's";
                    break;

                case Target.This:
                    targetStrings.Add(card.Title);
                    targetOwns = card.Title + "'s";
                    break;

                case Target.AttackingShips:
                    targetStrings.Add("all attacking ships");
                    targetOwns = string.Empty;
                    break;

                case Target.AttackingShip:
                    targetStrings.Add("an attacking ship");
                    targetOwns = "that ship's";
                    break;

                case Target.DamagedShip:
                    targetStrings.Add("the damaged ship");
                    targetOwns = "that ship's";
                    break;

                case Target.ExhaustedShip:
                    targetStrings.Add("target exhausted ship");
                    targetOwns = "that ship's";
                    break;

                case Target.OtherShipsOfType:
                    targetStrings.Add(string.Format("all other {0} ships", Subtype.ToString()));
                    targetOwns = string.Empty;
                    break;

                default:
                    throw new InvalidOperationException("Unsupported Target for AnnihilateEffect.");
                }
            }
            toStringBuilder.Append(string.Join(" and ", targetStrings));

            if (Condition != null)
            {
                toStringBuilder.Append(" ");
                toStringBuilder.Append(Condition.ToString());
            }

            if (_varDefinitions != null)
            {
                bool firstDef = true;
                foreach (VariableDefinition def in _varDefinitions)
                {
                    if (firstDef)
                    {
                        toStringBuilder.Append(", where ");

                        firstDef = false;
                    }
                    else
                    {
                        toStringBuilder.Append(" and ");
                    }

                    toStringBuilder.Append(Description.ToDescription(def.Variable));
                    toStringBuilder.Append(" is ");

                    switch (def.ValueType)
                    {
                    case AmountType.Attribute:
                        toStringBuilder.Append(string.Format(Description.ToDescription(def.ValueAttribute), targetOwns));
                        break;

                    default:
                        throw new InvalidOperationException("Unsupported AmountType for VariableDefinition.");
                    }
                }
            }

            if (VariableBinding != null)
            {
                toStringBuilder.Append(". ");
                toStringBuilder.Append(Description.ToDescription(VariableBinding.Variable));
                toStringBuilder.Append(" is ");
                string attributeDescription = Description.ToDescription(VariableBinding.Attribute);
                toStringBuilder.Append(string.Format(Description.ToDescription(VariableBinding.ValueModifier), targetOwns + " " + attributeDescription));
            }

            return(toStringBuilder.ToString());
        }
Пример #7
0
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("Polyline=[Typ=0x");
            sb.Append(Type.ToString("x2"));
            if (Type >= 0x100)
            {
                sb.Append(Subtype.ToString("x2"));
            }
            sb.Append(" " + Polylinetype.ToString() + " ");
            switch (Polylinetype)
            {
            case PolylineType.Day2:
                sb.Append(colDayColor[0].ToString());
                sb.Append(" " + colDayColor[1].ToString());
                break;

            case PolylineType.Day2_Night2:
                sb.Append(colDayColor[0].ToString());
                sb.Append(" " + colDayColor[1].ToString());
                sb.Append(" " + colNightColor[0].ToString());
                sb.Append(" " + colNightColor[1].ToString());
                break;

            case PolylineType.Day1_Night2:
                sb.Append(colDayColor[0].ToString());
                sb.Append(" " + colNightColor[0].ToString());
                sb.Append(" " + colNightColor[1].ToString());
                break;

            case PolylineType.NoBorder_Day2_Night1:
                sb.Append(colDayColor[0].ToString());
                sb.Append(" " + colDayColor[1].ToString());
                sb.Append(" " + colNightColor[0].ToString());
                break;

            case PolylineType.NoBorder_Day1:
                sb.Append(colDayColor[0].ToString());
                break;

            case PolylineType.NoBorder_Day1_Night1:
                sb.Append(colDayColor[0].ToString());
                sb.Append(" " + colNightColor[0].ToString());
                break;
            }
            if (BitmapHeight > 0)
            {
                sb.Append(" " + XBitmapDay.ToString());
            }
            if (InnerWidth > 0)
            {
                sb.Append(" Width=" + InnerWidth.ToString());
                if (BorderWidth > 0)
                {
                    sb.Append(" Border=" + BorderWidth.ToString());
                }
            }
            if (FontType != Fontdata.Default)
            {
                sb.Append(" Fonttyp=[" + FontType.ToString() + "]");
            }
            if (FontColType != FontColours.No)
            {
                sb.Append(" CustomColours=[");
                switch (FontColType)
                {
                case FontColours.Day:
                    sb.Append("Day=" + colFontColour[0].ToString());
                    break;

                case FontColours.Night:
                    sb.Append("Night=" + colFontColour[1].ToString());
                    break;

                case FontColours.DayAndNight:
                    sb.Append("Day=" + colFontColour[0].ToString());
                    sb.Append(" Night=" + colFontColour[0].ToString());
                    break;
                }
                sb.Append("]");
            }
            if (WithString)
            {
                sb.Append(" " + Text.ToString());
            }
            sb.Append(" ]");
            return(sb.ToString());
        }
Пример #8
0
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("Polygone=[Typ=0x");
            sb.Append(Type.ToString("x2"));
            if (Type >= 0x100)
            {
                sb.Append(Subtype.ToString("x2"));
            }
            sb.Append(" " + Colortype.ToString() + " ");
            switch (Colortype)
            {
            case ColorType.Day1:
                sb.Append(colDayColor.ToString());
                break;

            case ColorType.Day1_Night1:
                sb.Append(colDayColor.ToString());
                sb.Append(colNightColor.ToString());
                break;

            case ColorType.BM_Day1_Night1:
                sb.Append(colDayColor[0].ToString());
                sb.Append(colNightColor[0].ToString());
                sb.Append(XBitmapDay.ToString());
                break;

            case ColorType.BM_Day1_Night2:
                sb.Append(colDayColor[0].ToString());
                sb.Append(colNightColor[0].ToString());
                sb.Append(colNightColor[1].ToString());
                sb.Append(XBitmapDay.ToString());
                break;

            case ColorType.BM_Day2_Night2:
                sb.Append(colDayColor[0].ToString());
                sb.Append(colDayColor[1].ToString());
                sb.Append(colNightColor[0].ToString());
                sb.Append(colNightColor[1].ToString());
                sb.Append(XBitmapDay.ToString());
                break;

            case ColorType.BM_Day2:
                sb.Append(colDayColor[0].ToString());
                sb.Append(colDayColor[1].ToString());
                sb.Append(XBitmapDay.ToString());
                break;

            case ColorType.BM_Day2_Night1:
                sb.Append(colDayColor[0].ToString());
                sb.Append(colDayColor[1].ToString());
                sb.Append(colNightColor[0].ToString());
                sb.Append(XBitmapDay.ToString());
                break;

            case ColorType.BM_Day1:
                sb.Append(colDayColor[0].ToString());
                sb.Append(XBitmapDay.ToString());
                break;
            }
            if (WithExtendedOptions)
            {
                sb.Append(" Options=[" + FontType.ToString() + "|" + FontColType.ToString() + "]");
            }
            if (WithString)
            {
                sb.Append(" " + Text.ToString());
            }
            sb.Append(" ]");
            return(sb.ToString());
        }
Пример #9
0
        public override string ToString(Card card, bool capitalize = false)
        {
            StringBuilder toStringBuilder = new StringBuilder();

            switch (Target)
            {
            case Target.This:
                toStringBuilder.Append(card.Title);
                toStringBuilder.Append(" ");
                break;

            case Target.AnyShip:
                toStringBuilder.Append(capitalize ? "Target ship " : "target ship ");
                break;

            case Target.AttachedShip:
                toStringBuilder.Append(capitalize ? "Attached ship " : "attached ship ");
                break;

            case Target.OtherShipsOfType:
                toStringBuilder.Append(capitalize ? "Other " : "other ");
                toStringBuilder.Append(Subtype.ToString());
                toStringBuilder.Append(" ships ");
                break;

            case Target.InterceptingShip:
                toStringBuilder.Append(capitalize ? "The intercepting ship " : "the intercepting ship ");
                break;

            case Target.InterceptedShip:
                toStringBuilder.Append(capitalize ? "The intercepted ship " : "the intercepted ship ");
                break;

            default:
                throw new InvalidOperationException("Unsupported Target for RangePumpEffect.");
            }

            if (RangePump < 0)
            {
                toStringBuilder.Append("loses ");
            }
            else
            {
                toStringBuilder.Append("gains ");
            }

            toStringBuilder.Append(Math.Abs(RangePump).ToString());
            toStringBuilder.Append(" range");

            switch (EffectEnds)
            {
            case PointInTime.None:
                break;

            case PointInTime.EndOfTurn:
                toStringBuilder.Append(" until end of turn");
                break;

            case PointInTime.BeginningOfYourTurn:
                toStringBuilder.Append(" until the beginning of your next turn");
                break;

            default:
                throw new InvalidOperationException("Unsupported EffectEnds for StatPumpEffect.");
            }

            return(toStringBuilder.ToString());
        }
Пример #10
0
        public override string ToString(Card card, bool capitalize = false)
        {
            StringBuilder toStringBuilder = new StringBuilder();

            string targetOwns = string.Empty;

            switch (Target)
            {
            case Target.This:
                toStringBuilder.Append(card.Title);
                toStringBuilder.Append(" ");
                targetOwns = "its";
                break;

            case Target.AnyShip:
                toStringBuilder.Append(capitalize ? "Target ship " : "target ship ");
                targetOwns = "that ship's";
                break;

            case Target.TargettedShip:
                toStringBuilder.Append(capitalize ? "That ship " : "that ship ");
                targetOwns = "that ship's";
                break;

            case Target.OtherShipsOfType:
                toStringBuilder.Append(capitalize ? "Other " : "other ");
                toStringBuilder.Append(Subtype.ToString());
                toStringBuilder.Append(" ships ");
                targetOwns = string.Empty;
                break;

            case Target.AttachedShip:
                toStringBuilder.Append(capitalize ? "Attached ship " : "attached ship ");
                targetOwns = "attached ship's";
                break;

            case Target.YourRandomShip:
                toStringBuilder.Append(capitalize ? "Random ship you control " : "random ship you control ");
                targetOwns = "that ship's";
                break;

            default:
                throw new InvalidOperationException("Unsupported Target for StatPumpEffect.");
            }

            if (Also)
            {
                toStringBuilder.Append("also ");
            }

            toStringBuilder.Append("gets ");
            if (AttackPumpType == AmountType.Variable)
            {
                if (AttackPump == -1)
                {
                    toStringBuilder.Append("-");
                }
                else
                {
                    toStringBuilder.Append("+");
                }

                toStringBuilder.Append(Description.ToDescription(AttackPumpVar));
            }
            else
            {
                if (AttackPump > 0)
                {
                    toStringBuilder.Append("+");
                }
                else if (AttackPump == 0)
                {
                    if (DefensePump < 0)
                    {
                        toStringBuilder.Append("-");
                    }
                    else
                    {
                        toStringBuilder.Append("+");
                    }
                }

                toStringBuilder.Append(AttackPump.ToString());
            }
            toStringBuilder.Append("/");
            if (DefensePumpType == AmountType.Variable)
            {
                if (DefensePump == -1)
                {
                    toStringBuilder.Append("-");
                }
                else
                {
                    toStringBuilder.Append("+");
                }

                toStringBuilder.Append(Description.ToDescription(DefensePumpVar));
            }
            else
            {
                if (DefensePump > 0)
                {
                    toStringBuilder.Append("+");
                }
                else if (DefensePump == 0)
                {
                    if (AttackPump < 0)
                    {
                        toStringBuilder.Append("-");
                    }
                    else
                    {
                        toStringBuilder.Append("+");
                    }
                }
                toStringBuilder.Append(DefensePump.ToString());
            }

            switch (EffectEnds)
            {
            case PointInTime.None:
                break;

            case PointInTime.EndOfTurn:
                toStringBuilder.Append(" until end of turn");
                break;

            case PointInTime.BeginningOfYourTurn:
                toStringBuilder.Append(" until the beginning of your next turn");
                break;

            default:
                throw new InvalidOperationException("Unsupported EffectEnds for StatPumpEffect.");
            }

            if (_varDefinitions != null)
            {
                bool firstDef = true;
                foreach (VariableDefinition def in _varDefinitions)
                {
                    if (firstDef)
                    {
                        toStringBuilder.Append(", where ");

                        firstDef = false;
                    }
                    else
                    {
                        toStringBuilder.Append(" and ");
                    }

                    toStringBuilder.Append(Description.ToDescription(def.Variable));
                    toStringBuilder.Append(" is ");

                    switch (def.ValueType)
                    {
                    case AmountType.Attribute:
                        toStringBuilder.Append(string.Format(Description.ToDescription(def.ValueAttribute), targetOwns, def.Subtype.ToString()));
                        break;

                    default:
                        throw new InvalidOperationException("Unsupported AmountType for VariableDefinition.");
                    }
                }
            }

            return(toStringBuilder.ToString());
        }