コード例 #1
0
        public bool TryGetValue(UnitDefinition unit, out CreatureSpriteCollection collection)
        {
            CreatureSpriteCollection.Special special = CreatureSpriteCollection.Special.Normal;
            UnitFlags3 flags3 = (UnitFlags3)unit.flags3;

            if ((flags3 & UnitFlags3.ghostly) == UnitFlags3.ghostly)
            {
                special = CreatureSpriteCollection.Special.Ghost;
            }
            else if (unit.inventory.FindIndex(x => x.mode == InventoryMode.Weapon) >= 0)
            {
                special = CreatureSpriteCollection.Special.Military;
            }
            CasteDictionary dict;

            if (TryGetValue(special, out dict) && dict.TryGetValue(unit, out collection))
            {
                return(true);
            }
            else if (TryGetValue(CreatureSpriteCollection.Special.Normal, out dict) && dict.TryGetValue(unit, out collection))
            {
                return(true);
            }
            collection = default(CreatureSpriteCollection);
            return(false);
        }
コード例 #2
0
 private void UpdateFlags(Creature selectedUnit)
 {
     for (int i = 0; i < 32; i++)
     {
         uint       item    = 1u << i;
         UnitFlags1 flag    = (UnitFlags1)item;
         string     name    = flag.ToString();
         bool       enabled = (selectedUnit.flags1 & flag) == flag;
         flag1List[i].Enabled = enabled;
     }
     for (int i = 0; i < 32; i++)
     {
         uint       item    = 1u << i;
         UnitFlags2 flag    = (UnitFlags2)item;
         string     name    = flag.ToString();
         bool       enabled = (selectedUnit.flags2 & flag) == flag;
         flag2List[i].Enabled = enabled;
     }
     for (int i = 0; i < 29; i++)
     {
         uint       item    = 1u << i;
         UnitFlags3 flag    = (UnitFlags3)item;
         string     name    = flag.ToString();
         bool       enabled = (selectedUnit.flags3 & flag) == flag;
         flag3List[i].Enabled = enabled;
     }
 }
コード例 #3
0
        public MainWindow()
        {
            InitializeComponent();

            UnitList  = new ObservableCollection <Creature>();
            RaceList  = new ObservableCollection <Creature>();
            flag1List = new ObservableCollection <FlagDisplay>();
            flag2List = new ObservableCollection <FlagDisplay>();
            flag3List = new ObservableCollection <FlagDisplay>();

            unitListView.ItemsSource = UnitList;
            raceListView.ItemsSource = RaceList;

            flags1ListView.ItemsSource = flag1List;
            flags2ListView.ItemsSource = flag2List;
            flags3ListView.ItemsSource = flag3List;



            for (int i = 0; i < 32; i++)
            {
                uint       item = 1u << i;
                UnitFlags1 flag = (UnitFlags1)item;
                string     name = flag.ToString();
                name = name.Replace('_', ' ');
                name = TI.ToTitleCase(name);
                flag1List.Add(new FlagDisplay()
                {
                    Name = name, Enabled = false
                });
            }
            for (int i = 0; i < 32; i++)
            {
                uint       item = 1u << i;
                UnitFlags2 flag = (UnitFlags2)item;
                string     name = flag.ToString();
                name = name.Replace('_', ' ');
                name = TI.ToTitleCase(name);
                flag2List.Add(new FlagDisplay()
                {
                    Name = name, Enabled = false
                });
            }
            for (int i = 0; i < 29; i++)
            {
                uint       item = 1u << i;
                UnitFlags3 flag = (UnitFlags3)item;
                string     name = flag.ToString();
                name = name.Replace('_', ' ');
                name = TI.ToTitleCase(name);
                flag3List.Add(new FlagDisplay()
                {
                    Name = name, Enabled = false
                });
            }
        }
コード例 #4
0
    void ShowCursorInfo()
    {
        cursorProperties.text  = "";
        cursorProperties.text += "Cursor: ";
        cursorProperties.text += cursX + ",";
        cursorProperties.text += cursY + ",";
        cursorProperties.text += cursZ + "\n";
        var maybeTile = MapDataStore.Main[cursX, cursY, cursZ];

        if (maybeTile != null)
        {
            var tile = maybeTile.Value;
            cursorProperties.text += "Tiletype:\n";
            var tiletype = DFConnection.Instance.NetTiletypeList.tiletype_list
                           [tile.tileType];
            cursorProperties.text += tiletype.name + "\n";
            cursorProperties.text +=
                tiletype.shape + ":" +
                tiletype.special + ":" +
                tiletype.material + ":" +
                tiletype.variant + ":" +
                tiletype.direction + "\n";
            var mat = tile.material;
            cursorProperties.text += "Material: ";
            cursorProperties.text += mat.mat_type + ",";
            cursorProperties.text += mat.mat_index + "\n";

            if (materials.ContainsKey(mat))
            {
                cursorProperties.text += "Material Name: ";
                cursorProperties.text += materials[mat].id + "\n";
            }
            else
            {
                cursorProperties.text += "Unknown Material\n";
            }

            cursorProperties.text += "\n";

            var basemat = tile.base_material;
            cursorProperties.text += "Base Material: ";
            cursorProperties.text += basemat.mat_type + ",";
            cursorProperties.text += basemat.mat_index + "\n";

            if (materials.ContainsKey(basemat))
            {
                cursorProperties.text += "Base Material Name: ";
                cursorProperties.text += materials[basemat].id + "\n";
            }
            else
            {
                cursorProperties.text += "Unknown Base Material\n";
            }

            cursorProperties.text += "\n";

            var layermat = tile.layer_material;
            cursorProperties.text += "Layer Material: ";
            cursorProperties.text += layermat.mat_type + ",";
            cursorProperties.text += layermat.mat_index + "\n";

            if (materials.ContainsKey(layermat))
            {
                cursorProperties.text += "Layer Material Name: ";
                cursorProperties.text += materials[layermat].id + "\n";
            }
            else
            {
                cursorProperties.text += "Unknown Layer Material\n";
            }

            cursorProperties.text += "\n";

            var veinmat = tile.vein_material;
            cursorProperties.text += "Vein Material: ";
            cursorProperties.text += veinmat.mat_type + ",";
            cursorProperties.text += veinmat.mat_index + "\n";

            if (materials.ContainsKey(veinmat))
            {
                cursorProperties.text += "Vein Material Name: ";
                cursorProperties.text += materials[veinmat].id + "\n";
            }
            else
            {
                cursorProperties.text += "Unknown Vein Material\n";
            }

            cursorProperties.text += "\n";

            var cons = tile.construction_item;
            cursorProperties.text += "Construction Item: ";
            cursorProperties.text += cons.mat_type + ",";
            cursorProperties.text += cons.mat_index + "\n";

            if (materials.ContainsKey(cons))
            {
                cursorProperties.text += "Construction Item Name: ";
                cursorProperties.text += items[cons].id + "\n";
            }
            else
            {
                cursorProperties.text += "Unknown Construction Item\n";
            }
        }

        if (unitList != null)
        {
            foreach (UnitDefinition unit in unitList.creature_list)
            {
                UnitFlags1 flags1 = (UnitFlags1)unit.flags1;
                UnitFlags2 flags2 = (UnitFlags2)unit.flags2;
                UnitFlags3 flags3 = (UnitFlags3)unit.flags3;

                if (((flags1 & UnitFlags1.dead) == UnitFlags1.dead) ||
                    ((flags1 & UnitFlags1.left) == UnitFlags1.left))
                {
                    continue;
                }
                if (unit.pos_x != cursX || unit.pos_y != cursY || unit.pos_z != cursZ)
                {
                    continue;
                }

                CreatureRaw creatureRaw = null;
                if (DFConnection.Instance.NetCreatureRawList != null)
                {
                    creatureRaw = DFConnection.Instance.NetCreatureRawList.creature_raws[unit.race.mat_type];
                }

                if (creatureRaw != null)
                {
                    cursorProperties.text += "Unit:   \n";

                    cursorProperties.text += "Race: ";
                    cursorProperties.text += creatureRaw.creature_id + ":";
                    cursorProperties.text += creatureRaw.caste[unit.race.mat_index].caste_id;
                    cursorProperties.text += "\n";

                    cursorProperties.text += flags1 + "\n";
                    cursorProperties.text += flags2 + "\n";
                    cursorProperties.text += flags3 + "\n";
                }
                break;
            }
        }
    }