Beispiel #1
0
        internal void WriteTo(BinaryWriter writer)
        {
            writer.Write((int)FormatVersion);

            writer.WriteBool(UnitData is not null);
            UnitData?.WriteTo(writer);

            writer.WriteBool(ItemData is not null);
            ItemData?.WriteTo(writer);

            writer.WriteBool(DestructableData is not null);
            DestructableData?.WriteTo(writer);

            writer.WriteBool(DoodadData is not null);
            DoodadData?.WriteTo(writer);

            writer.WriteBool(AbilityData is not null);
            AbilityData?.WriteTo(writer);

            writer.WriteBool(BuffData is not null);
            BuffData?.WriteTo(writer);

            writer.WriteBool(UpgradeData is not null);
            UpgradeData?.WriteTo(writer);
        }
        protected virtual bool CreateAllDestructablesConditionSingleDoodad(Map map, DoodadData doodadData)
        {
            if (map is null)
            {
                throw new ArgumentNullException(nameof(map));
            }

            if (doodadData is null)
            {
                throw new ArgumentNullException(nameof(doodadData));
            }

            return(doodadData.ItemTableSets.Any() || doodadData.MapItemTableId != -1);
        }
Beispiel #3
0
        protected virtual JassFunctionDeclarationSyntax ItemTableDropItems(Map map, WidgetData widgetData, int id)
        {
            if (map is null)
            {
                throw new ArgumentNullException(nameof(map));
            }

            if (widgetData is null)
            {
                throw new ArgumentNullException(nameof(widgetData));
            }

            var funcName = widgetData switch
            {
                DoodadData doodadData => doodadData.GetDropItemsFunctionName(id),
                UnitData unitData => unitData.GetDropItemsFunctionName(id),
            };

            return(SyntaxFactory.FunctionDeclaration(SyntaxFactory.FunctionDeclarator(funcName), GetItemTableDropItemsStatements(map, widgetData.ItemTableSets, true)));
        }
Beispiel #4
0
 public static void Write(this BinaryWriter writer, DoodadData mapDoodadData, MapWidgetsFormatVersion formatVersion, MapWidgetsSubVersion subVersion, bool useNewFormat) => mapDoodadData.WriteTo(writer, formatVersion, subVersion, useNewFormat);
Beispiel #5
0
 public static string GetDropItemsFunctionName(this DoodadData doodadData, int id)
 {
     return(doodadData.MapItemTableId == -1
         ? $"Doodad{id:D6}_DropItems"
         : $"ItemTable{doodadData.MapItemTableId:D6}_DropItems");
 }
Beispiel #6
0
 public static string GetDropItemsFunctionName(this DoodadData doodadData, int id)
 {
     return($"Doodad{id:D6}_DropItems");
 }