Exemple #1
0
        }                                  // 最大移动距离

        public bool InAttackRange(int tx, int ty)
        {
            GetPosInMap(out int x, out int y);
            var dist = MU.ManhattanDist(x, y, tx, ty);

            return(FC.IndexOf(AttackRange, dist) >= 0);
        }
Exemple #2
0
        void onmsg(MsgCode msg)
        {
            if (msg == MsgCode.Null)
            {
                return;
            }


            if (msg == MsgCode.User_Login)
            {
                // is user logined
                var user = FC.Get <User> (MsgCode.User_Login_Get);
                if (user != default(User))
                {
                    return;
                }

                var users  = FC.QueryUser();
                var retlen = 0;
                if (users.Length == 1)
                {
                    Msg_User_Login login = new Msg_User_Login();
                    login.user     = users[0];
                    login.password = "******";
                    FC.Send <Msg_User_Login> (MsgCode.User_Login, login, ref retlen);
                }
            }

            this.msg.Show(msg.ToString());
        }
Exemple #3
0
    // 彻底销毁一个模型
    private void DestroyModel(MapUnit mu)
    {
        var lst = new List <Transform>();

        if (mu.Attack01Stub != null && mu.Attack01Stub.childCount > 0)
        {
            FC.For(mu.Attack01Stub.childCount, (i) => { lst.Add(mu.Attack01Stub.GetChild(i)); });
        }

        if (mu.Attack02Stub != null && mu.Attack02Stub.childCount > 0)
        {
            FC.For(mu.Attack02Stub.childCount, (i) => { lst.Add(mu.Attack02Stub.GetChild(i)); });
        }

        foreach (var c in lst)
        {
            var ae = c.GetComponent <AttackEffect>();
            if (ae != null)
            {
                EC.DestroyEffect(ae);
            }

            var aa = c.GetComponent <AttackAudio>();
            if (aa != null)
            {
                AC.DestroyAudio(aa);
            }
        }

        mu.MG = null;
        mu.transform.SetParent(null);
        mu.gameObject.SetActive(false);
        Destroy(mu.gameObject);
    }
Exemple #4
0
    // マウスのポインタ生成の関数
    private GameObject CreateMousePointa(GameObject mouse)
    {
        GameObject obj = Instantiate(mouse, transform.position, Quaternion.identity);

        FC.SettingOrderInLayer(obj, Order.orerMouse);
        return(obj);
    }
        public SeedCmsStylesheetProperty(Guid seedId, FC.DAL.UmbracoModel.UmbracoModel context)
            : base(seedId, context, "cmsStylesheetProperty")
        {
            try
            {
                if (context.SeedVersion.Find(seedId) == null)
                {
                    List<UmbracoModel.cmsStylesheetProperty> input = new List<UmbracoModel.cmsStylesheetProperty>();
                    List<MSModel.cmsStylesheetProperty> output = new List<MSModel.cmsStylesheetProperty>();
                    output = MSMod.cmsStylesheetProperty.ToList();
                    foreach (var r in output)
                    {
                        var res = Mapper.Map<UmbracoModel.cmsStylesheetProperty>(r);
                        input.Add(res);

                    }
                    context.cmsStylesheetProperty.AddRange(input);
                    context.SaveChanges();
                    context.SeedVersion.Add(Version);
                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                _HandleException(ex);
            }
        }
Exemple #6
0
    public void Build()
    {
        // 创建新按钮
        FC.For(choices.Length, (i) =>
        {
            var go = Instantiate(ChoiceBtn);
            go.transform.SetParent(SelectArea.transform);
            go.GetComponentInChildren <Text>().text = ChoicesName[i];
            var choiceTag = choices[i];
            go.GetComponent <Button>().onClick.AddListener(() => { OnSelectOne(choiceTag); });
            go.SetActive(true);
            go.transform.localRotation = Quaternion.identity;
            go.transform.localScale    = Vector3.one;
            choiceBtns.Add(go);
        });

        // 菜单显示尺寸
        width  = choiceBtns[0].GetComponent <RectTransform>().rect.width;
        height = choiceBtns[0].GetComponent <RectTransform>().rect.height;

        choiceBtns[0].transform.localPosition = new Vector3(-width * 0.75f, 0, 0);
        choiceBtns[1].transform.localPosition = new Vector3(width * 0.75f, 0, 0);

        AdjustPos();
    }
Exemple #7
0
        // 反序列化一个录像
        public static BattleReplay Deserialize(IReadableBuffer data)
        {
            var replay = DeserializeHeader(data);

            string lastMsgTitle = null;

            byte[] lastMsgData = null;
            var    msgs        = new List <KeyValuePair <string, IReadableBuffer> >();
            var    cnt         = data.ReadInt();

            FC.For(cnt, (i) =>
            {
                // 这里生成 msg 必须用网络字节序,因为这里的数据等同于是直接伪装成了网络上的消息,
                // 对 Room4Client 来说是一致读取的

                var sameAsLastOne = data.ReadBool();
                if (!sameAsLastOne)
                {
                    var msgTitle = data.ReadString();
                    var msgLen   = data.ReadInt();
                    var msgBody  = data.ReadBytes(msgLen);
                    msgs.Add(new KeyValuePair <string, IReadableBuffer>(msgTitle, new RingBuffer(true, true, msgBody)));

                    lastMsgTitle = msgTitle;
                    lastMsgData  = msgBody;
                }
                else
                {
                    msgs.Add(new KeyValuePair <string, IReadableBuffer>(lastMsgTitle, new RingBuffer(true, true, lastMsgData)));
                }
            });

            replay.Msgs = msgs;
            return(replay);
        }
Exemple #8
0
    void Create()
    {
        var sz   = MG.Room.MapSize;
        var cols = (int)sz.x;
        var rows = (int)sz.y;

        var lm  = transform.Find("Line").gameObject;
        var lst = new List <LineRenderer>();

        FC.For(rows + 2, (y) =>
        {
            var l            = Instantiate(lm) as GameObject;
            var lr           = l.GetComponent <LineRenderer>();
            lr.positionCount = 2;
            lr.SetPosition(0, new Vector3(0 - 0.5f, 0.1f, y - 0.5f));
            lr.SetPosition(1, new Vector3(cols + 0.5f, 0.1f, y - 0.5f));
            lr.gameObject.SetActive(true);
            lr.transform.SetParent(transform, false);
            lst.Add(lr);
        });
        FC.For(cols + 2, (x) =>
        {
            var l            = Instantiate(lm) as GameObject;
            var lr           = l.GetComponent <LineRenderer>();
            lr.positionCount = 2;
            lr.SetPosition(0, new Vector3(x - 0.5f, 0.1f, 0 - 0.5f));
            lr.SetPosition(1, new Vector3(x - 0.5f, 0.1f, rows + 0.5f));
            lr.gameObject.SetActive(true);
            lr.transform.SetParent(transform, false);
            lst.Add(lr);
        });

        lrs = lst.ToArray();
    }
Exemple #9
0
    void RefreshCells()
    {
        var sz   = MG.Room.MapSize;
        var cols = (int)sz.x;
        var rows = (int)sz.y;
        var n    = 0;
        var cm   = transform.Find("Cell").gameObject;

        FC.For2(cols, rows, (x, y) =>
        {
            if (MG.Room.CheckSpareSpace(x, y, 1))
            {
                return;
            }

            if (n >= cells.Count)
            {
                var c = Instantiate(cm) as GameObject;
                c.SetActive(true);
                c.transform.SetParent(transform, false);
                cells.Add(c);
            }

            cells[n++].transform.localPosition = new Vector3(x, 0.1f, y);
        });

        FC.For(n, cells.Count, (i) => { cells[i].SetActive(false); });
    }
Exemple #10
0
        // 检查战斗结束条件,0 表示尚未结束,否则返回值表示胜利玩家
        // 检查战斗结束条件
        public virtual int CheckEndCondition()
        {
            // 双方至少各存活一个角色
            var team1Survived = false;
            var team2Survived = false;

            FC.For2(Map.Width, Map.Height, (x, y) =>
            {
                var warrior = Map.GetAt <Warrior>(x, y);
                if (warrior != null && !warrior.IsDead)
                {
                    if (warrior.Team == 1)
                    {
                        team1Survived = true;
                    }
                    else
                    {
                        team2Survived = true;
                    }
                }
            }, () => !team1Survived || !team2Survived);

            if (team1Survived && !team2Survived)
            {
                return(1);
            }
            else if (team2Survived && !team1Survived)
            {
                return(2);
            }
            else
            {
                return(0);
            }
        }
Exemple #11
0
 public void BuildMapGrids()
 {
     JudgeMapStatus();
     if (!IsMapCreated)
     {
         Map   = new BattleMap(10, 6, (x, y) => TileType.Grass);
         Tiles = new MapTile[Map.Width, Map.Height];
         FC.For2(Map.Width, Map.Height, (x, y) =>
         {
             var tile = Instantiate(MapTile);
             tile.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("TestRes/BattleMap/MapTile");
             tile.transform.SetParent(MapRoot);
             tile.X = x;
             tile.Y = y;
             tile.transform.Find("Material").GetComponent <SpriteRenderer>().sortingOrder = y + 2;
             tile.gameObject.SetActive(true);
             Tiles[x, y] = tile;
             MapTilesList.Add(tile);
         });
         IsMapCreated = true;
     }
     else
     {
         Debug.Log("Map is already created!");
     }
 }
Exemple #12
0
        public SeedUmbracoNode(Guid seedId, FC.DAL.UmbracoModel.UmbracoModel context)
            : base(seedId, context, "umbracoNode")
        {
            try
            {
                if (context.SeedVersion.Find(seedId) == null)
                {
                    List<UmbracoModel.umbracoNode> input = new List<UmbracoModel.umbracoNode>();
                    List<MSModel.umbracoNode> output = new List<MSModel.umbracoNode>();
                    output = MSMod.umbracoNode.ToList();
                    foreach (var r in output)
                    {
                        var res = Mapper.Map<UmbracoModel.umbracoNode>(r);
                        input.Add(res);

                    }
                    context.umbracoNode.AddRange(input);
                    context.SaveChanges();
                    context.SeedVersion.Add(Version);
                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                _HandleException(ex);
            }
        }
Exemple #13
0
        protected override void Sync()
        {
            BeginSync();
            SyncLong(ref Time);
            SyncString(ref MapName);

            if (IsWrite)
            {
                W.Write(Messages.Count);
                FC.ForEach(Messages, (i, msg) =>
                {
                    W.Write(msg.Length);
                    W.Write(msg);
                });
            }
            else
            {
                Messages.Clear();

                var count = R.ReadInt();
                FC.For(count, (i) =>
                {
                    var dataLen = R.ReadInt();
                    var data    = R.ReadBytes(dataLen);
                    Messages.Add(data);
                });
            }

            EndSync();
        }
Exemple #14
0
        public override void OnPreparingBattle(Battle bt)
        {
            bt.BeforeAttack += (attacker, target, addTars, skill, attackFlags, multi, addMulti) =>
            {
                if (attacker.Team != Team)
                {
                    return;
                }

                target.GetPosInMap(out int cx, out int cy);
                FC.ObliqueSquareFor(cx, cy, 1, (x, y) =>
                {
                    if (x >= 0 && y >= 0 && x < bt.Map.Width && y < bt.Map.Height)
                    {
                        var t = bt.Map.GetAt <Warrior>(x, y);
                        if (t != null && t.Team != Team && !t.IsDead)
                        {
                            addTars.Add(t);
                        }
                    }
                });

                addMulti.Add(P0); // 溅射伤害系数
            };
        }
Exemple #15
0
    // 更新血条旁边的技能图标
    public void UpdateSkillPicture(Warrior warrior)
    {
        var PassiveSkillFrame = PassiveSkill.transform.parent.gameObject;
        var ActiveSkillFrame  = ActiveSkill.transform.parent.gameObject;

        PassiveSkillFrame.SetActive(false);
        ActiveSkillFrame.SetActive(false);
        var AllBuffs = warrior.Buffs;

        if (warrior.GetDefaultActiveSkill() != null)
        {
            ActiveSkill.GetComponent <Image>().sprite = Resources.Load <Sprite>("UI/Skill/" + warrior.GetDefaultActiveSkill().ID) as Sprite;
            ActiveSkillFrame.SetActive(true);
        }
        FC.For(AllBuffs.Length, (i) =>
        {
            if (AllBuffs[i] is PatternSkill)
            {
                ActiveSkill.GetComponent <Image>().sprite = Resources.Load <Sprite>("UI/Skill/" + AllBuffs[i].ID) as Sprite;
                ActiveSkillFrame.SetActive(true);
            }
            else if (AllBuffs[i] is ISkillWithPassiveSkill)
            {
                PassiveSkill.GetComponent <Image>().sprite = Resources.Load <Sprite>("UI/Skill/" + AllBuffs[i].ID) as Sprite;
                PassiveSkillFrame.SetActive(true);
            }
        });
    }
        public async Task <IActionResult> PutFC(long id, FC fC)
        {
            if (id != fC.Id)
            {
                return(BadRequest());
            }

            _context.Entry(fC).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!FCExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
 public override void DoEdit(bool updateAllFields = false)
 {
     if (SelectedRolesIDs == null || SelectedRolesIDs.Count == 0)
     {
         FC.Add("Entity.SelectedRolesIDs.DONOTUSECLEAR", "true");
     }
     else
     {
         Entity.UserRoles = new List <FrameworkUserRole>();
         SelectedRolesIDs.ForEach(x => Entity.UserRoles.Add(new FrameworkUserRole {
             ID = Guid.NewGuid(), UserId = Entity.ID, RoleId = x
         }));
     }
     if (SelectedGroupIDs == null || SelectedGroupIDs.Count == 0)
     {
         FC.Add("Entity.SelectedGroupIDs.DONOTUSECLEAR", "true");
     }
     else
     {
         SelectedGroupIDs.ForEach(x => Entity.UserGroups.Add(new FrameworkUserGroup {
             ID = Guid.NewGuid(), UserId = Entity.ID, GroupId = x
         }));
     }
     base.DoEdit(updateAllFields);
 }
Exemple #18
0
    // 构建新的地块层
    public void BuildMapGrids()
    {
        JudgeMapStatus();
        if (!IsMapCreated)
        {
            Map = new BattleMap(10, 6, (x, y) => TileType.None);
            FC.For2(Map.Width, Map.Height, (x, y) =>
            {
                var tile = Instantiate(MapTile);
                tile.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("TestRes/BattleMap/MapTile");
                tile.transform.SetParent(MapRoot);
                tile.X                    = x;
                tile.Y                    = y;
                var material              = tile.transform.Find("Material").GetComponent <SpriteRenderer>();
                var respawnPlace          = tile.transform.Find("RespawnPlace").GetComponent <SpriteRenderer>();
                material.sortingOrder     = y + 2;
                respawnPlace.sortingOrder = y + 3;
                tile.gameObject.SetActive(true);
                MapTilesList.Add(tile);

                // MapData没有new之前就传递是值传递
                tile.GetComponent <MapTile>().MapData = new MapData(x, y, TileType.None, material.sortingOrder, respawnPlace.sortingOrder);
                var mapData = tile.GetComponent <MapTile>().MapData;
                MapInfo.Add(mapData);
            });
            IsMapCreated = true;
            isNewMap     = true;
        }
        else
        {
            Debug.Log("Map is already created!");
        }
    }
 public void Ins_Click(object sender, EventArgs e)
 {
     Ins.Enabled = false;
     LB.Enabled  = false;
     TB.Text     = "";
     foreach (var Item in LB.CheckedItems)
     {
         TB.Text += "Installing " + Item.ToString() + "\r\n";
         if (File.Exists("./Settings/" + Item.ToString() + "/Install.reg"))
         {
             TB.Text += "Import Install.reg - " + ConfigInstaller.RegImport(Item.ToString()) + "\r\n";
         }
         if (File.Exists("./Settings/" + Item.ToString() + "/Files.copy"))
         {
             string[] FileStr = File.ReadAllLines(@"./Settings/" + Item.ToString() + "/Files.copy");
             foreach (string FC in FileStr)
             {
                 string[] Copy = FC.Split(",");
                 TB.Text += "Copying " + Copy[0] + " to " + Copy[1] + " " + ConfigInstaller.CopyFiles(Copy[0], Copy[1]) + "\r\n";
             }
         }
     }
     LB.Enabled  = true;
     Ins.Enabled = true;
 }
Exemple #20
0
    // パネル生成
    public GameObject Create(PanelSet set)
    {
        Vector3 vector3 = transform.position;

        vector3.x += GameMap.mapChipSize;

        GameObject obj = Instantiate(panelPrefab, vector3, Quaternion.identity);

        MassPanel m = obj.GetComponent <MassPanel>();

        m.InitialSetting(set, target, transform);

        // 爆弾の ObejectBase 情報を代入
        for (int i = 0; i < GameManagement.mCNum; i++)
        {
            if (GameManagement.manager.c_MassPanel[i] == null)
            {
                GameManagement.manager.c_MassPanel[i] = m.SetObejectBase();
                break;
            }
        }

        FC.SettingOrderInLayer(obj, GameMap.Order.orderIMass);
        return(obj);
    }
Exemple #21
0
        public bool RemoveBuff(Buff b)
        {
            bool found = false;

            FC.For(allBuffs.Length, (player) =>
            {
                var buffs = allBuffs[player];
                if (buffs == null)
                {
                    return;
                }

                if (buffs.Contains(b))
                {
                    allBuffs[player].Add(b);
                    foreach (var u in Room.GetAllUnitsByPlayer(player))
                    {
                        b.OffUnit(u);
                    }

                    buffs.Remove(b);
                    found = true;
                }
            }, () => !found);

            return(found);
        }
Exemple #22
0
        public bool DoChange()
        {
            var         all            = FC.Where(x => x.Key.StartsWith("menu_")).ToList();
            List <Guid> AllowedMenuIds = all.Where(x => x.Value.ToString() == "1").Select(x => Guid.Parse(x.Key.Replace("menu_", ""))).ToList();
            var         torem          = AllowedMenuIds.Distinct();
            var         oldIDs         = DC.Set <FunctionPrivilege>().Where(x => x.RoleId == Entity.ID).Select(x => x.ID).ToList();

            foreach (var oldid in oldIDs)
            {
                FunctionPrivilege fp = new FunctionPrivilege {
                    ID = oldid
                };
                DC.Set <FunctionPrivilege>().Attach(fp);
                DC.DeleteEntity(fp);
            }
            foreach (var menuid in AllowedMenuIds)
            {
                FunctionPrivilege fp = new FunctionPrivilege();
                fp.MenuItemId = menuid;
                fp.RoleId     = Entity.ID;
                fp.UserId     = null;
                fp.Allowed    = true;
                DC.Set <FunctionPrivilege>().Add(fp);
            }
            DC.SaveChanges();
            return(true);
        }
Exemple #23
0
    public void CancelConstructing()
    {
        if (animator != null)
        {
            animator.SetInteger("state", idle);
        }

        var root = transform.Find("Root");

        if (mu.U.cfg.ReconstructTo != null)
        {
            FC.ForEach(mu.U.cfg.ReconstructTo, (i, t) =>
            {
                var c = root.Find(t);
                if (c != null)
                {
                    c.gameObject.SetActive(false);
                }
            });
        }

        Destroy(scaffold.gameObject);
        scaffold    = null;
        scaffoldUID = null;
    }
Exemple #24
0
 public SeedCmsContentVersion(Guid seedId, FC.DAL.UmbracoModel.UmbracoModel context)
     : base(seedId, context, "cmsContentVersion")
 {
     Version = new SeedVersion { SeedVersionID = seedId };
     try
     {
         if (context.SeedVersion.Find(seedId) == null)
         {
             List<UmbracoModel.cmsContentVersion> input = new List<UmbracoModel.cmsContentVersion>();
             List<MSModel.cmsContentVersion> output = new List<MSModel.cmsContentVersion>();
             output = MSMod.cmsContentVersion.ToList();
             foreach (var r in output)
             {
                 var res = Mapper.Map<UmbracoModel.cmsContentVersion>(r);
                 input.Add(res);
             }
             context.cmsContentVersion.AddRange(input);
             context.SaveChanges();
             context.SeedVersion.Add(Version);
             context.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         _HandleException(ex);
     }
 }
Exemple #25
0
        public SeedCmsContentType(Guid seedId, FC.DAL.UmbracoModel.UmbracoModel context)
            : base(seedId, context,"cmsContentType")
        {
            try
            {
                if (context.SeedVersion.Find(seedId) == null)
                {
                    List<UmbracoModel.cmsContentType> input = new List<UmbracoModel.cmsContentType>();
                    List<MSModel.cmsContentType> output = new List<MSModel.cmsContentType>();
                    output = MSMod.cmsContentType.ToList();
                    foreach (var r in output)
                    {
                        var res = Mapper.Map<UmbracoModel.cmsContentType>(r);
                        input.Add(res);

                    }
                    context.cmsContentType.AddRange(input);
                    context.SaveChanges();
                    context.SeedVersion.Add(Version);
                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                Debug.Print(ex.Message);
            }
        }
Exemple #26
0
 //shape coeff.
 private void cdf_calc(object sender, EventArgs e)
 {
     if (textBox10.Text != "")
     {
         //Cal = double.Parse(textBox12.Text);
         L = double.Parse(textBox10.Text);
         if (L == 0)
         {
             MessageBox.Show(msgbox1);
         }
         else
         {
             double N;
             //Siacci(v);
             //FC = ((Cx * (v * v) * FA)) / (2 * fv);
             N             = (4 * L + 1) / 4;
             FC            = (2 / N) * (Math.Sqrt((4 * N - 1) * N));
             label18.Text  = FC.ToString("0.000");
             textBox2.Text = FC.ToString("0.000");
         }
     }
     else
     {
         MessageBox.Show(msgbox2);
     }
 }
    public void LoadAll()
    {
        if (!File.Exists(SaveFile))
        {
            return;
        }

        using (var r = new BinaryReader(new FileStream(SaveFile, FileMode.Open)))
        {
            try
            {
                var count = r.ReadInt32();
                var data  = r.ReadBytes((int)r.BaseStream.Length);
                var buff  = new RingBuffer();
                buff.Write(data);

                FC.For(count, (i) =>
                {
                    var replay = buff.Read <BattleReplay>();
                    replays.Add(replay);
                });
            }
            catch (Exception)
            {
                replays.Clear();
            }
            finally
            {
                r.Close();
            }
        }
    }
 // 大砲とパネルの判定
 public void DeterminationOfCannonAndPanel()
 {
     // すべてのパネルの確認
     foreach (ObjectBase panel in c_MassPanel)
     {
         if (panel != null)
         {
             // パネルの親がアームでないとき
             if (panel.transform.parent != c_Arm.transform)
             {
                 // すべての大砲の確認
                 foreach (ObjectBase cannon in c_Cannon)
                 {
                     // 大砲が使えるとき
                     if (cannon.GetComponent <Cannon>().repairFlag == false)
                     {
                         // 大砲との当たり判定をする
                         if (FC.Collider(cannon.colliderSet, panel.colliderSet))
                         {
                             MassPanel m = panel.GetComponent <MassPanel>();
                             m.ChangeableAmmunition(cannon.renderer.sortingOrder - 1, cannon.colliderSet.pos.position);
                             return;
                         }
                     }
                 }
             }
         }
     }
 }
Exemple #29
0
 static private void GlobalChangeState(bool bState)
 {
     foreach (Contactor C in Contactors)
     {
         if (C.bInitialState != bState)
         {
             C.SwitchState();
         }
     }
     foreach (Cleaner C in Cleaners)
     {
         if (C.bInitialState != bState)
         {
             C.SwitchState();
         }
     }
     foreach (FrequencyConverter FC in FCs)
     {
         if (FC.bInitialState != bState)
         {
             FC.SwitchState();
         }
     }
     foreach (HVPS H in HVPSes)
     {
         if (H.bInitialState != bState)
         {
             H.SwitchState();
         }
     }
 }
Exemple #30
0
        public async Task <bool> DoChangeAsync()
        {
            var         all            = FC.Where(x => x.Key.StartsWith("menu_")).ToList();
            List <Guid> AllowedMenuIds = all.Where(x => x.Value.ToString() == "1").Select(x => Guid.Parse(x.Key.Replace("menu_", ""))).ToList();
            var         torem          = AllowedMenuIds.Distinct();
            var         oldIDs         = DC.Set <FunctionPrivilege>().Where(x => x.RoleCode == Entity.RoleCode).Select(x => x.ID).ToList();

            foreach (var oldid in oldIDs)
            {
                FunctionPrivilege fp = new FunctionPrivilege {
                    ID = oldid
                };
                DC.Set <FunctionPrivilege>().Attach(fp);
                DC.DeleteEntity(fp);
            }
            foreach (var menuid in AllowedMenuIds)
            {
                FunctionPrivilege fp = new FunctionPrivilege();
                fp.MenuItemId = menuid;
                fp.RoleCode   = Entity.RoleCode;
                fp.Allowed    = true;
                DC.Set <FunctionPrivilege>().Add(fp);
            }
            await DC.SaveChangesAsync();

            var userids = DC.Set <FrameworkUserRole>().Where(x => x.RoleCode == Entity.RoleCode).Select(x => x.UserCode).ToArray();
            await Wtm.RemoveUserCache(userids);

            return(true);
        }
Exemple #31
0
        // 投放机
        static StateMachine Carrier(Unit u)
        {
            var sm = new StateMachine(u.UID);

            var pts      = new Vec2[] { Vec2.Zero, Vec2.Left, Vec2.Right, Vec2.Up, Vec2.Down };
            var dropped  = false;
            var ended    = false;
            var moveImpl = MakeMove(u, u.MovePath, u.cfg.MaxVelocity);

            sm.NewState("moving").Run((st, te) =>
            {
                ended = !moveImpl(te);

                u.Pos += u.PreferredVelocity;
                u.Dir  = u.PreferredVelocity.Dir();

                if (!dropped && u.MovePath.Count < 2)
                {
                    dropped = true;
                    FC.ForEach(u.UnitCosntructingWaitingList, (i, gu) =>
                    {
                        var dropU = u.Room.AddNewUnit(null, gu, u.Pos + pts[i % pts.Length], u.Player);

                        // 中立怪身上放宝箱
                        if (dropU != null && (gu == "NeutralMonster" || gu == "Blademaster" || gu == "Velkoz"))
                        {
                            dropU.OnDead += () =>
                            {
                                string boxType = "";

                                switch (dropU.UnitType)
                                {
                                case "NeutralMonster":
                                    boxType = dropU.Room.TBRunner.RandomTreasureBoxType(1);
                                    break;

                                case "Blademaster":
                                    boxType = dropU.Room.TBRunner.RandomTreasureBoxType(2);
                                    break;

                                case "Velkoz":
                                    boxType = dropU.Room.TBRunner.RandomTreasureBoxType(3);
                                    break;
                                }
                                dropU.Room.TBRunner.CreateTreasureBox(boxType, dropU.Pos);
                            };
                        }
                    });
                }
            }).AsDefault();
            sm.NewState("dead").OnRunIn((st) =>
            {
                u.Hp = 0;
            }).Run(null);

            // 到目的地就销毁
            sm.Trans().From("moving").To("dead").When((st) => ended);
            return(sm);
        }
Exemple #32
0
    // 針の生成関数
    Transform NeedleCreate(GameObject obj, int order, Quaternion angle)
    {
        GameObject needle = Instantiate(obj, transform.position, angle);

        FC.SettingOrderInLayer(needle, order);

        return(needle.transform);
    }
Exemple #33
0
 public override void DoEdit(bool updateAllFields = false)
 {
     if (FC.ContainsKey("Entity.RoleCode"))
     {
         FC.Remove("Entity.RoleCode");
     }
     base.DoEdit(updateAllFields);
 }
Exemple #34
0
 public SeedBase(Guid seedID, FC.DAL.UmbracoModel.UmbracoModel ctx, string tableName)
 {
     Debug.Print("Running Seed for " + tableName);
     this.Version = new SeedVersion { SeedVersionID = seedID };
     this.context = ctx;
     this.TableName = tableName;
     TruncateTbl();
 }
        /// <summary>
        /// 创建fieldtype,如CE,XCN等
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="product"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public override abstractType Create(compositeType parent, Enum product, string name)
        {
            abstractType tmp = null;

            switch (product)
            {
            case enumField.CE: tmp = new CE(parent, name); break;

            case enumField.CM: tmp = new CM(parent, name); break;

            case enumField.CWE: tmp = new CWE(parent, name); break;

            case enumField.CX: tmp = new CX(parent, name); break;

            case enumField.DLN: tmp = new DLN(parent, name); break;

            case enumField.EI: tmp = new EI(parent, name); break;

            case enumField.ELD: tmp = new ELD(parent, name); break;

            case enumField.FN: tmp = new FN(parent, name); break;

            case enumField.HD: tmp = new HD(parent, name); break;

            case enumField.MSG: tmp = new MSG(parent, name); break;

            case enumField.PT: tmp = new PT(parent, name); break;

            case enumField.VID: tmp = new VID(parent, name); break;

            case enumField.XAD: tmp = new XAD(parent, name); break;

            case enumField.XCN: tmp = new XCN(parent, name); break;

            case enumField.XPN: tmp = new XPN(parent, name); break;

            case enumField.XTN: tmp = new XTN(parent, name); break;

            case enumField.ERL: tmp = new ERL(parent, name); break;

            case enumField.FC: tmp = new FC(parent, name); break;

            case enumField.XON: tmp = new XON(parent, name); break;

            case enumField.PL: tmp = new PL(parent, name); break;

            case enumField.CP: tmp = new CP(parent, name); break;

            case enumField.JCC: tmp = new JCC(parent, name); break;

            case enumField.TQ: tmp = new TQ(parent, name); break;

            case enumField.CQ: tmp = new CQ(parent, name); break;

            default: throw new NotSupportedException();
            }
            return(tmp);
        }
Exemple #36
0
 public ServiceResponse<List<UGenre>> Filter(FC.Shared.FormModels.GenreFilter filter)
 {
     List<UGenre> result = new List<UGenre>();
     if (filter.GenreID.HasValue && filter.ParentID.HasValue)
     {
         return new ServiceResponse<List<UGenre>>(null, HttpStatusCode.BadRequest, "FAIL-Genres/GetAll-cannot user filter.GenreID & filter.ParentID at same time.");
     } else if (filter.GenreID.HasValue)
     {
         result.Add(repo.GetByID(filter.GenreID));
         return new ServiceResponse<List<UGenre>>(result, HttpStatusCode.OK, "SUCCESS-Genres/Filter/?ID");
     } else if (filter.ParentID.HasValue)
     {
         result.AddRange(repo.GetByParentID(filter.ParentID));
     } else if (filter.Name != null)
     {
         try {
             result.Add(repo.GetByName(filter.Name));
         } catch(Exception ex)
         {
             return new ServiceResponse<List<UGenre>>(null, HttpStatusCode.Conflict, "FAIL-"+ex.Message);
         }
     }
     return new ServiceResponse<List<UGenre>>(result, HttpStatusCode.OK, "SUCCESS-Genres/GetAll");
 }
Exemple #37
0
        // синхронизация родительских бланков
        int syncParentDT(xobj.Iblank blank, FC.FeatureType dt)
        {
            var rc =0;
            var parents = dt.InheritsFrom;
            if (parents != null)
            foreach (var parent in parents) {
                FC.FeatureType up=parent.Supertype;
                if (up != null) {
                    string s=up.Code;
                    if (convert.IsString(s))
                    if (syncDT(up) > 0) {
                        int rc1;
                        if (!up.IsDataType()) s="$"+s;
                        blank.attr("$inherited","",s,0,out rc1);
                        if (rc1 < 0) __err(); else rc++;
                    }
                }
            }

            return rc;
        }
Exemple #38
0
        public void syncFC(FC.FeatureCatalogue catalog, int mode)
        {
            if (catalog !=null)

            if (fidx == null)
                __log("fidx == null");
            else {

                __log("Синхронизация: "+Path.GetFileName(fobjPath));
                __log("");

                fobjCount=0;
                fobjUpdCount=0;
                fobjNewCount=0;

                fdtList.Clear();
                fdtList0.Clear();
                fdtUpdCount=0;
                fdtNewCount=0;
                fdtCount=0;

                fattrList.Clear();
                fattrUpdCount=0;
                fattrNewCount=0;

                fenumCount=0;
                fenumUpdCount=0;
                fenumNewCount=0;

                froleCount=0;
                froleUpdCount=0;
                froleNewCount=0;

                ferrCount=0;

                if ((mode & 1) != 0)
                syncAllAttr(catalog);

                if ((mode & 2) != 0)
                syncAllDT(catalog);

              				syncFE(catalog,1);
              				syncFE(catalog,2);

              				if (fobj.EditFlag > 0) fobj.SaveAs("");

                if (fattrList.Count > 0) {
                    log_int("атрибуты",fattrList.Count);
                    if (fattrUpdCount > 0) log_int("\tизменено",fattrUpdCount);
                    if (fattrNewCount > 0) log_int("\tдобавлено",fattrNewCount);
                }

                if (fenumCount > 0) {
                    log_int("Домены",fenumCount);
                    if (fenumUpdCount > 0) log_int("\tизменено",fenumUpdCount);
                    if (fenumNewCount > 0) log_int("\tдобавлено",fenumNewCount);
                }

                if (fdtCount > 0) {
                    log_int("бланки",fdtCount);
                    if (fdtUpdCount > 0) log_int("\tизменено",fdtUpdCount);
                    if (fdtNewCount > 0) log_int("\tдобавлено",fdtNewCount);
                }

                if (fobjCount > 0) {
                    log_int("объекты",fobjCount);
                    if (fobjUpdCount > 0) log_int("\tизменено",fobjUpdCount);
                    if (fobjNewCount > 0) log_int("\tдобавлено",fobjNewCount);
                }

                if (froleCount > 0) {
                    log_int("связи",froleCount);
                    if (froleUpdCount > 0) log_int("\tизменено",froleUpdCount);
                    if (froleNewCount > 0) log_int("\tдобавлено",froleNewCount);
                }

                if (ferrCount > 0) {
                    __log(""); log_int("\tошибки",ferrCount);
                }
            }
        }
Exemple #39
0
        bool addRole(xobj.Iroles roles,
					 FC.FeatureType owner,
					 FC.AssociationRole role,
		             FC.FeatureType dest, 
		             string Nset)
        {
            FC.AssociationRole.RoleType typ=role.Type;

            string key=role.Code;
            string name=role.MemberName;
            string hf="";
            string tp="";

            var es = owner.ConstrainedBy.GetConstraint( typeof(AssociationRoleConstraint) ) as FC.AssociationRoleConstraint;

            if (es != null) {
                foreach(var e in es.ValidationRules)
                if (e.AssociationRoleName == name) {
                    hf=e.ОграничениеПоСемантике; break;
                }

                foreach(var e in es.TopologicRules)
                if (e.AssociationRoleName == name) {

                    string t=GeomToInt(e.SourceGeom)+","+
                             GeomToInt(e.TargetGeom)+","+
                             e.ОграничениеПоТопологии;

                    if (tp.Length > 0) tp+="/";
                    tp+=t;
                }
            }

              			string s="";
              			if (key != null) s=key;
              			if (name.Length > 0) {
              				if (s.Length > 0) s+="/";
              				s+=name;
              			}

              			int rc;
              			roles.role(s,((int) typ)-1,dest.Code,Nset,hf,tp,out rc);
              			if (rc < 0) { __err(); return false; }

            return true;
        }
Exemple #40
0
 public List<UFestival> GetFilteredFestival(FC.Shared.FormModels.FestivalFilter filter)
 {
     List<UFestival> result = new List<UFestival>();
     List<UFestival> tmpList = new List<UFestival>();
     if(filter.CountryIDs == null)
     {
         filter.CountryIDs = new List<Guid?>();
     }
     if(filter.GenreIDs == null)
     {
         filter.GenreIDs = new List<Guid?>();
     }
     if(filter.GenreIDs.Count() > 0 && filter.CountryIDs.Count() == 0)
     {
         result = Db.Festivals.Where(w => w.StartDate.Month == filter.MonthNum && w.StartDate.Year == filter.YearNum).ToList();
         foreach (UFestival f in result)
         {
             UFestival tmp = new UFestival(f);
             tmp.Genres = Db.G2F.Where(w => w.FestivalID == f.FestivalID).Select(s => s.Genre).ToList();
             if (tmp.Genres.Select(s => s).Where(w => filter.GenreIDs.Contains(w.GenreID)).Any())
             {
                 tmpList.Add(tmp);
             }
         }
     }
     else if (filter.GenreIDs.Count() > 0 && filter.CountryIDs.Count() > 0)
     {
         result = Db.Festivals.Where(w => w.StartDate.Month == filter.MonthNum && w.StartDate.Year == filter.YearNum && filter.CountryIDs.Contains(w.CountryID)).ToList();
         foreach (UFestival f in result)
         {
             UFestival tmp = new UFestival(f);
             tmp.Genres = Db.G2F.Where(w => w.FestivalID == f.FestivalID).Select(s => s.Genre).ToList();
             if (tmp.Genres.Select(s => s).Where(w => filter.GenreIDs.Contains(w.GenreID)).Any())
             {
                 tmpList.Add(tmp);
             }
         }
     }
     else if (filter.GenreIDs.Count() == 0 && filter.CountryIDs.Count() > 0)
     {
         result = Db.Festivals.Where(w => w.StartDate.Month == filter.MonthNum && w.StartDate.Year == filter.YearNum && filter.CountryIDs.Contains(w.CountryID)).ToList();
         foreach (UFestival f in result)
         {
             UFestival tmp = new UFestival(f);
             tmp.Genres = Db.G2F.Where(w => w.FestivalID == f.FestivalID).Select(s => s.Genre).ToList();
             tmpList.Add(tmp);
         }
     }
     else if (filter.GenreIDs.Count() == 0 && filter.CountryIDs.Count() == 0)
     {
         if (filter.MonthNum == 0 || filter.YearNum == 0)
         {
             throw new Exception("Invalid year or month specified");
         }
         else
         {
             result = Db.Festivals.Where(w => w.StartDate.Month == filter.MonthNum && w.StartDate.Year == filter.YearNum).ToList();
             foreach (UFestival f in result)
             {
                 UFestival tmp = new UFestival(f);
                 tmp.Genres = Db.G2F.Where(w => w.FestivalID == f.FestivalID).Select(s => s.Genre).ToList();
                 tmpList.Add(tmp);
             }
         }
     } else
     {
         throw new Exception("Cannot filter festivals because none of the filter parameters was specified.");
     }
     return tmpList.OrderBy(o => o.OrderDate).ToList();
 }
Exemple #41
0
        // добавить связи объекта
        int addRoles(FC.FeatureType owner,
					 FC.FeatureType obj,
		             xobj.Iroles roles)
        {
            int count=0;

            foreach (var binding in obj.Bindings) {
                var role = binding.PropertyType as FC.AssociationRole;

                if (role != null)
                if (role.IsNavigable) {

                    FC.FeatureType dest = role.ValueType;
                    if (dest != null) {

              						string Nset=binding.Cardinality;

                        var childs = dest.InheritsTo;
                        if (childs != null)
                        if (childs.Count == 0)
                        childs=null;

                        if (childs == null) {
              						bool rc=addRole(roles,owner,role,dest,Nset);
              						if (rc) count++;
                        }
                        else {
                            foreach(var child in childs) {
                                FC.FeatureType dest1=child.Subtype;
              						bool rc=addRole(roles,owner,role,dest1,Nset);
              						if (rc) count++;
                            }
                        }
                    }
              				}
            }

            return count;
        }
Exemple #42
0
        // цикл по всем  атрибутам -- не используется
        void syncAllAttr(FC.FeatureCatalogue catalog)
        {
            var attrs = catalog.GetAttributes();
            if (attrs == null)
                __log("FC.FeatureCatalogue.GetAttributes == null");
            else {

                __log("атрибуты...");
                Application.DoEvents();

                foreach(var attr in attrs) {
                    string key=attr.Code;
                    if (convert.IsString(key))
                    if (!fattrList.Contains(key)) {

                        fattrList.Add(key);

                        string typ=attr.ValueType;
                        string capt=attr.ToString();

                        int rc;
                        fidx.sync(key,typ,capt,out rc);

                        if (rc == 1) fattrUpdCount++; else
                        if (rc == 2) fattrNewCount++; else
                        if (rc != 0) __err();
                    }

                    Application.DoEvents();
                }

                __log("^");
            }
        }
Exemple #43
0
        // синхронизация всех datatype's -- не используется
        void syncAllDT(FC.FeatureCatalogue catalog)
        {
            __log("бланки...");

            foreach(var dt in catalog.FeatureTypes) {
                if (dt.IsDataType()) syncDT(dt);
                Application.DoEvents();
            }

            __log("^");
        }
Exemple #44
0
        // синхронизация атрибута
        bool syncAttr(xobj.Iblank blank, FC.Binding binding)
        {
            var attr = binding.PropertyType as FC.FeatureAttribute;

            if (attr != null) {

                string key=attr.Code;	// акроним
                if (convert.IsString(key)) {

                    int rc;

                    string typ=attr.ValueType;

                    FC.FeatureType dt=null;
                    string dt1="";

                    if (typ == "Класс") {
                        dt=binding.GetDataType();
                        if (dt != null) dt1=dt.Code;
                    }

               					string Nset=binding.Cardinality;

                    int flags=0;

                    if (!binding.Voidable) flags+=1;

                    if (typ == "Домен") {
                        var vt = binding.ConstrainedBy.GetConstraint( typeof(ValueTypeConstraint) ) as
                            FC.ValueTypeConstraint.DomainValueType;
                        if (vt != null) if (vt.IsMultiValue) flags+=8;
                    } else

                    if (typ == "Дробное интервальное") flags+=8;

                    if (!fattrList.Contains(key)) {

                        fattrList.Add(key);

              					if (dt != null) syncDT(dt);
              					if (typ == "Домен") {
              						rc=syncEnum(attr);
              						if (rc == 0) typ="dbase";
              					}

                        string capt=attr.ToString();
                        fidx.sync(key,typ,capt,out rc);

                        if (rc == 1) fattrUpdCount++; else
                        if (rc == 2) fattrNewCount++; else
                        if (rc != 0) __err();
                    }

                    blank.attr(key,Nset,dt1,flags,out rc);

                    if (rc < 0) __err();

                    return true;
                }
            }

            return false;
        }
Exemple #45
0
        // синхронизация бланка
        int syncDT(FC.FeatureType dt)
        {
            int rc=0;

            string key=dt.Code;
            if (convert.IsString(key))

            if (fdtList.Contains(key)) {
                rc=1;
                if (fdtList0.Contains(key)) rc=0;
            }
            else
            if (!fdtList.Contains(key)) {
                fdtList.Add(key);

                var blank = fobj.GetBlank;
                if (blank == null)
                    __err();
                else {
                    string t=key;
                    if (dt.IsDataType())
                    t+="/"+dt.TypeName;
                    blank.beginUpdate(t);

                    rc=syncParentDT(blank,dt);

                    foreach (var binding in dt.Bindings)
                    if (syncAttr(blank,binding)) rc++;

                    if (rc > 0) {
                        var es = dt.ConstrainedBy.GetConstraint( typeof(AttributeValueConstraint) ) as AttributeValueConstraint;

                        int rc1;

                        if (es != null)
                        foreach(var e in es.ValidationRules) {
                            blank.logic(e.ОграничениеПоСемантике,
                                        e.Комментарий,out rc1);
                            if (rc1 < 0) __err();
                        }

                        if (dt.IsDataType())
                            blank.endUpdate(key,"",out rc1);
                        else
                            blank.endUpdate("",key,out rc1);

                        if (rc1 == 1) fdtUpdCount++; else
                        if (rc1 == 2) fdtNewCount++; else
                        if (rc1 != 0) __err();

                        if (rc1 >= 0) fdtCount++;
                    }
                }

                if (rc == 0) fdtList0.Add(key);

            }

            return rc;
        }
Exemple #46
0
 /**
    * Returns all repetitions of Financial Class (PV1-20).
    */
 public FC[] getFinancialClass()
 {
     FC[] ret = null;
     try {
     Type[] t = this.getField(20);
     ret = new FC[t.Length];
     for (int i = 0; i < ret.Length; i++) {
     ret[i] = (FC)t[i];
     }
     } catch (HL7Exception he) {
     HapiLogFactory.getHapiLog(this.GetType()).error("Unexpected problem obtaining field value.  This is a bug.", he);
     throw new System.Exception("An unexpected error ocurred", he);
     } catch (System.Exception cce) {
     HapiLogFactory.getHapiLog(GetType()).error("Unexpected problem obtaining field value.  This is a bug.", cce);
     throw new System.Exception("An unexpected error ocurred", cce);
       }
      return ret;
 }
Exemple #47
0
        // синхронизация связей объекта
        void syncRoles(FC.FeatureType obj, xobj.Iroles roles)
        {
            roles.beginUpdate();

            int count=syncParentRoles(obj,roles);
            count+= addRoles(obj,obj,roles);

            int rc;
            roles.endUpdate(obj.Code,out rc);

            if (rc < 0) __err(); else {
                if (count > 0) froleCount++;
                if (rc == 1) froleUpdCount++; else
                if (rc == 2) froleNewCount++;
            }
        }
Exemple #48
0
        // синхронизация домена
        int syncEnum(FC.FeatureAttribute attr)
        {
            int enumw=0;

            if (fenum != null) {

                // получить домен
                IList<FC.ListedValue> values = attr.GetListedValuesList();
                if (values != null) {

                    fenum.beginUpdate();

                    // цикл по записям домена
                    foreach(var v in values) {
                        string s=v.Code; int i;
                        if (!Int32.TryParse(s,out i)) enumw=1;
                        fenum.addItem(s,v.Label,v.Definition);
                    }

                    int rc;
                    fenum.endUpdate(attr.Code,out rc);

                    fenumCount++;
                    if (rc == 1) fenumUpdCount++; else
                    if (rc == 2) fenumNewCount++; else
                    if (rc < 0) __err();
                }
            }

            return enumw;
        }
Exemple #49
0
        // синхронизация родительских связей
        int syncParentRoles(FC.FeatureType obj, xobj.Iroles roles)
        {
            var count=0;

            var parents = obj.InheritsFrom;
            if (parents != null)
            foreach (var parent in parents) {
                FC.FeatureType up=parent.Supertype;
                if (up != null) {
                    count += syncParentRoles(up, roles);
                    count += addRoles(obj,up,roles);
                }
            }

            return count;
        }
Exemple #50
0
 public SFS()
 {
     SD = new SD();
     AC = new AC();
     FC = new FC();
 }
Exemple #51
0
        // синхронизация объектов
        void syncFE(FC.FeatureCatalogue catalog, int mode)
        {
            if ((mode & 1) != 0) __log("объекты...");
            else			     __log("связи...");

            __progress(0,catalog.FeatureTypes.Count);

            var roles = fobj.GetRoles;

            IList<FC.FeatureType> ftlist=catalog.GetFeatureTypesInHierarchicalOrder();

            if (ftlist != null)
            foreach(var ft in ftlist) {
                if (!ft.IsDataType()) {
                    string key=ft.Code;
                    if (convert.IsString(key)) {

                        if ((mode & 1) != 0) {

                            int loc=0;
                            var c = ft.ConstrainedBy.GetConstraint(typeof(GeometryConstraint)) as GeometryConstraint;
                            if (c != null) {
                                if (c.Pt) loc+=1;
                                if (c.Ln) loc+=2;
                                if (c.Pl) loc+=4;
                            }

                            string capt=ft.TypeName;
                            int rc;	fobj.sync(key,loc,capt,out rc);

                            if (rc == 1) fobjUpdCount++; else
                            if (rc == 2) fobjNewCount++; else
                            if (rc != 0) __err();

                            fobjCount++; syncDT(ft);
                        }

                        if ((mode & 2) != 0) {
                            if (roles != null) syncRoles(ft,roles);
                        }
                    }
                }

                Application.DoEvents();
                __progress(-1,0);
            }

            __log("^");
        }