예제 #1
0
 private void Awake()
 {
     messageSystem     = GetComponent <MessageSystem>();
     myIndividual      = GetComponent <Individual>();
     buffEffectManager = GameObject.FindGameObjectWithTag("Effects").GetComponent <BuffEffectManager>();
     bloodHUD          = GameObject.Find("BloodHUD").GetComponent <BloodHUD>();
 }
예제 #2
0
 public DeletionService(
     ClassifierDictionary classifiers,
     MessageSystem messageSystem)
 {
     _classifiers = classifiers;
     _messageSystem = messageSystem;
 }
예제 #3
0
        public Terminal()
        {
            colors      = new Color[4];
            commands    = new Dictionary <string, CommandProcessor>();
            font        = ContentCache.GetFont("Terminal");
            currentLine = new SpriteText(font);
            lines       = new List <SpriteText>();
            oldCommands = new List <string>();
            charWidth   = font.Measure("A").x;
            storedIndex = -1;

            var accessor = Properties.Access(this);

            padding              = accessor.GetInt("terminal.padding", this, false);
            textProcessor        = new TextProcessor();
            textProcessor.Submit = Submit;

            AddDefaultCommands();

            MessageSystem.Subscribe(this, CoreMessageTypes.ResizeWindow, (messageType, data, dt) =>
            {
                // The terminal is always resized to fit the window width.
                Width = ((ivec2)data).x;
            });

            MessageSystem.Subscribe(this, CoreMessageTypes.Keyboard, (messageType, data, dt) =>
            {
                ProcessKeyboard((KeyboardData)data);
            });
        }
예제 #4
0
 protected virtual void RefreshMessages()
 {
     RefreshEmptyStatus();
     RefreshDupeAssetWarning();
     var flag = m_BundleMessages.HighestMessageFlag();
     m_CachedHighMessage = MessageSystem.GetMessage(flag);
 }
예제 #5
0
        void Awake()
        {
            Instance = this;
            DontDestroyOnLoad(this);

            bgm             = gameObject.AddComponent <AudioSource>();
            bgm.playOnAwake = false;
            bgm.volume      = BGMVolume;

            MessageSystem <MessageType> .Regist(MessageType.CARDMSG, this);

            MessageSystem <MessageType> .Regist(MessageType.HITMSG, this);

            MessageSystem <MessageType> .Regist(MessageType.PlayerHealChange, this);

            MessageSystem <MessageType> .Regist(MessageType.HURTMSG, this);

            MessageSystem <MessageType> .Regist(MessageType.MoraleChange, this);

            MessageSystem <MessageType> .Regist(MessageType.GemChange, this);

            MessageSystem <MessageType> .Regist(MessageType.CrystalChange, this);

            MessageSystem <MessageType> .Regist(MessageType.TURNBEGIN, this);

            MessageSystem <MessageType> .Regist(MessageType.ChooseRole, this);

            MessageSystem <MessageType> .Regist(MessageType.PlayBGM, this);

            MessageSystem <MessageType> .Regist(MessageType.Win, this);

            MessageSystem <MessageType> .Regist(MessageType.Lose, this);
        }
예제 #6
0
        public override void OnDestroy()
        {
            GameManager.RemoveUpdateAciont(showLoginInput);
            MessageSystem <MessageType> .UnRegist(MessageType.LoginState, this);

            base.OnDestroy();
        }
예제 #7
0
        public override void Awake()
        {
            MessageSystem <MessageType> .Regist(MessageType.RoomList, this);

            MessageSystem <MessageType> .Regist(MessageType.EnterRoom, this);

            MessageSystem <MessageType> .Regist(MessageType.ERROR, this);

            root.localPosition = new Vector3(1280, 0, 0);
            root.DOLocalMoveX(0, 1.0f).OnComplete(
                () =>
            {
                var go = GameObject.Find("GameTitle");
                go.transform.SetParent(root);
                //go.transform.GetChild(0).SetParent(root);
                //Destroy(go);
            });
            if (Lobby.Instance.RoomInfo == null)
            {
                Lobby.Instance.GetRoomList();
            }
            else
            {
                roomInfos = Lobby.Instance.RoomInfo;
            }
            base.Awake();
        }
예제 #8
0
 void Awake()
 {
     instance = this;
     uiComponents = gameInstance.UI_Components;
     originalRectPosition = uiComponents.dialogueRect.anchoredPosition;
     uiComponents.dialogue.alpha = 0;
 }
예제 #9
0
 protected virtual void RegisterWithMessageSystem()
 {
     // Listen for Start, Stop, and Despawn messages:
     MessageSystem.AddListener(this, QuestMachineMessages.StartSpawnerMessage, spawnerName);
     MessageSystem.AddListener(this, QuestMachineMessages.StopSpawnerMessage, spawnerName);
     MessageSystem.AddListener(this, QuestMachineMessages.DespawnSpawnerMessage, spawnerName);
 }
예제 #10
0
        public override void Process(UIStateMsg msg, params object[] paras)
        {
            BattleData.Instance.Agent.PlayerRole.UIStateChange(StateNumber, msg, paras);
            MessageSystem <MessageType> .Notify(MessageType.AgentUIStateChange);

            Debug.LogFormat("Process {0}:{1}", StateName, StateNumber);
        }
예제 #11
0
        void Awake()
        {
            players = GetComponent <BattleUIMobile>().PlayerStatus;
            btnSetting.onClick.AddListener(onBtnSettingClick);
            btnSpecial.onClick.AddListener(onBtnSpecialClick);
            btnOK.onClick.AddListener(onBtnOKClick);
            btnCancel.onClick.AddListener(onBtnCancelClick);
            btnResign.onClick.AddListener(onBtnResignClick);
            btnCovered.onClick.AddListener(OnCoveredClick);

            MessageSystem <MessageType> .Regist(MessageType.AgentUpdate, this);

            MessageSystem <MessageType> .Regist(MessageType.AgentHandChange, this);

            MessageSystem <MessageType> .Regist(MessageType.AgentSelectSkill, this);

            MessageSystem <MessageType> .Regist(MessageType.AgentUIStateChange, this);

            MessageSystem <MessageType> .Regist(MessageType.ShowNewArgsUI, this);

            MessageSystem <MessageType> .Regist(MessageType.CloseNewArgsUI, this);

            MessageSystem <MessageType> .Regist(MessageType.Lose, this);

            MessageSystem <MessageType> .Regist(MessageType.Win, this);

            //初始化界面
            MessageSystem <MessageType> .Notify(MessageType.AgentHandChange);

            BattleData.Instance.Agent.AgentState = BattleData.Instance.Agent.AgentState;

            MessageSystem <MessageType> .Notify(MessageType.AgentUpdate);
        }
예제 #12
0
        public JumpTester2()
        {
            sprite          = new Sprite("Link.png", null, Alignments.Bottom);
            sprite.Position = new vec2(400, 600);

            textArray = new SpriteText[7];

            for (int i = 0; i < textArray.Length; i++)
            {
                textArray[i]          = new SpriteText("Default");
                textArray[i].Position = new vec2(20, 20 * (i + 1));
            }

            jumpSpeed           = DefaultJumpSpeed;
            gravity             = DefaultGravityReset;
            gravityReset        = gravity;
            gravityLimit        = DefaultGravityLimit;
            gravityAcceleration = DefaultGravityAcceleration;
            onGround            = true;

            MessageSystem.Subscribe(this, CoreMessageTypes.Keyboard, (messageType, data, dt) =>
            {
                ProcessKeyboard((KeyboardData)data);
            });
        }
예제 #13
0
 void Awake()
 {
     instance                    = this;
     uiComponents                = gameInstance.UI_Components;
     originalRectPosition        = uiComponents.dialogueRect.anchoredPosition;
     uiComponents.dialogue.alpha = 0;
 }
예제 #14
0
        public override void UIStateChange(uint state, UIStateMsg msg, params object[] paras)
        {
            switch (state)
            {
            case 801:
            case 803:
            case 804:
                OKAction = () =>
                {
                    sendActionMsg(BasicActionType.ACTION_MAGIC_SKILL, BattleData.Instance.MainPlayer.id,
                                  BattleData.Instance.Agent.SelectPlayers, BattleData.Instance.Agent.SelectCards, state,
                                  BattleData.Instance.Agent.SelectArgs);
                    BattleData.Instance.Agent.FSM.ChangeState <StateIdle>(UIStateMsg.Init, true);
                };
                CancelAction = () => { BattleData.Instance.Agent.FSM.BackState(UIStateMsg.Init); };
                break;
            }
            switch (state)
            {
            case 801:
            case 803:
                MessageSystem <Framework.Message.MessageType> .Notify(Framework.Message.MessageType.SendHint,
                                                                      string.Format("{0}: 请选择目标玩家以及卡牌", Skills[state].SkillName));

                break;

            case 804:
                MessageSystem <Framework.Message.MessageType> .Notify(Framework.Message.MessageType.SendHint,
                                                                      string.Format("{0}: 请选择目标玩家", Skills[state].SkillName));

                return;
            }
            base.UIStateChange(state, msg, paras);
        }
예제 #15
0
    public void OpenImageSelect()
    {
        string filePath = OpenTextureFileSelect();

        if (!string.IsNullOrEmpty(filePath))
        {
            Texture2D texture = ReadTextureFromFile(filePath);
            //缩放大小
            int   width       = texture.width;
            int   height      = texture.height;
            float scaleWidth  = width;
            float scaleHeight = height;
            float factor      = Mathf.Clamp01((float)MAX_IMAGE_HEIGHT / (float)height);
//				float factor = (float)MAX_IMAGE_HEIGHT/(float)height;
            scaleWidth  = (float)width * factor;
            scaleHeight = (float)height * factor;
            if (scaleWidth > MAX_IMAGE_WIDHT)
            {
                float wfactor = MAX_IMAGE_WIDHT / scaleWidth;
                scaleWidth   = MAX_IMAGE_WIDHT;
                scaleHeight *= wfactor;
            }

            texture = ScaleTexture(texture, (int)scaleWidth, (int)scaleHeight);
            string savepath = GetSaveFilePath("temp.jpg");
            //保存到本地
            if (SaveTexture(texture, savepath))
            {
                //派发返回事件
                MessageSystem.UF_GetInstance().UF_Send(DefineEvent.E_LUA, DefineLuaEvent.E_CUSTOM_IMAGE_RESPONSE, savepath);
            }
        }
    }
예제 #16
0
        public RopeTester()
        {
            const float Length  = 36;
            const float Damping = 0.95f;
            const float Gravity = 20;

            vec2[] points = new vec2[18];

            for (int i = 0; i < points.Length; i++)
            {
                points[i] = new vec2(60, 120) + new vec2(Length * i * 1.25f, 0);
            }

            rope = new VerletRope2D(points, Length, Damping, Gravity);

            MessageSystem.Subscribe(this, CoreMessageTypes.Mouse, (messageType, data, dt) =>
            {
                var mouse = (MouseData)data;

                if (mouse.Query(GLFW_MOUSE_BUTTON_LEFT, InputStates.PressedThisFrame))
                {
                    var array = rope.Points;
                    var index = new Random().Next(array.Length - 2) + 1;

                    array[index].Position += new vec2(0, 20);
                }
            });
        }
예제 #17
0
        public void RemoveAllSelectPlayer()
        {
            SelectPlayers.Clear();
            MessageSystem <MessageType> .Notify(MessageType.AgentSelectPlayer);

            FSM.HandleMessage(UIStateMsg.ClickPlayer);
        }
예제 #18
0
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
예제 #19
0
        public void Unequip(EquipSlot Slot)
        {
            if (inventoryManager.inventory.Count < 12)
            {
                EquippableItem item = EquippedItemsArray[(int)Slot];
                EquippedItemsArray[(int)Slot] = null;
                MessageSystem.Print($"{item.Name} is unequiped on {gameObject.name}.");
                itemEquipGraphics.UnequipItem(Slot);
                characterSkills.RemoveFromSkillList(item);
                if (healthBar)
                {
                    healthBar.UpdateHealthBar(GetComponent <Controller>().Health);
                }
                inventoryManager.AddItemToInventory(item);
            }
            else
            {
                MessageSystem.Print("Inventory is full");
            }

            #region Skill Manager Update

            GameObject battleSystemGO = GameObject.Find("BattleSystem");
            if (battleSystemGO)
            {
                SkillManager skillManager = battleSystemGO.GetComponent <SkillManager>();
                skillManager.RenderSkillSlots();
            }
            #endregion Skill Manager Update

            equippedItemsUI.UpdateUI(Slot);
        }
예제 #20
0
파일: Switch.cs 프로젝트: bmjoy/Unity2DRPG
    public IEnumerator Switching()
    {
        MessageWindow messageWindow = MessageSystem.GetWindow();

        InteractableStart();

        //スイッチがオンのときオフに切り替える
        //Switch off when switch is on
        if (isOnSwitch)
        {
            isOnSwitch            = false;
            spriteRenderer.sprite = offImage;
            OffSwitch.Invoke();

            yield return(new WaitForSeconds(wait));

            yield return(StartCoroutine(messageWindow.ShowClick(offMessage)));
        }
        else
        {
            isOnSwitch            = true;
            spriteRenderer.sprite = onImage;
            OnSwitch.Invoke();

            yield return(new WaitForSeconds(wait));

            yield return(StartCoroutine(messageWindow.ShowClick(onMessage)));
        }

        messageWindow.Close();
        InteractableEnd();
        yield break;
    }
예제 #21
0
        public override void Enter(UIStateMsg msg, params object[] paras)
        {
            BattleData.Instance.Agent.PlayerRole.UIStateChange(StateNumber, msg, paras);
            MessageSystem <MessageType> .Notify(MessageType.AgentUIStateChange);

            base.Enter(msg, paras);
        }
예제 #22
0
        public PlayerController(PlayerCharacter player, PlayerData playerData, PlayerControls controls,
                                ControlSettings settings, AbstractController[] controllers)
        {
            this.player     = player;
            this.playerData = playerData;
            this.controls   = controls;
            this.settings   = settings;

            aerialController   = (AerialController)controllers[PlayerCharacter.ControllerIndexes.Air];
            groundController   = (GroundController)controllers[PlayerCharacter.ControllerIndexes.Ground];
            platformController = (PlatformController)controllers[PlayerCharacter.ControllerIndexes.Platform];
            wallController     = (WallController)controllers[PlayerCharacter.ControllerIndexes.Wall];
            ladderController   = (LadderController)controllers[PlayerCharacter.ControllerIndexes.Ladder];

            // TODO: Make this class reloadable.
            // Create buffers.
            var accessor = Properties.Access();
            var grab     = accessor.GetFloat("player.grab.buffer");
            var ascend   = accessor.GetFloat("player.ascend.buffer");

            // Actual values for requiresHold on each buffer are set when control settings are applied.
            attackBuffer = new InputBuffer(false, controls.Attack);
            grabBuffer   = new InputBuffer(grab, false, controls.Grab);
            ascendBuffer = new InputBuffer(ascend, false, controls.Jump);
            ascendBuffer.RequiredChords = controls.Ascend;

            settings.ApplyEvent += OnApply;

            MessageSystem.Subscribe(this, CoreMessageTypes.Input, (messageType, data, dt) =>
            {
                ProcessInput((FullInputData)data, dt);
            });
        }
 public InterfaceSelectionItemsSource(
     ClassifierDictionary classifiers,
     IQuery<Classifier> availableClassifiers,
     MessageSystem messageSystem):base(classifiers,availableClassifiers.Get,messageSystem)
 {
     _classifiers = classifiers;
 }
예제 #24
0
        public ActionResult Help(MessageSystem model)
        {
            DataContractJsonSerializer ser =
                new DataContractJsonSerializer(typeof(MessageSystem));
            MemoryStream mem = new MemoryStream();

            ser.WriteObject(mem, model);
            string data =
                Encoding.UTF8.GetString(mem.ToArray(), 0, (int)mem.Length);
            WebClient webClientt = new WebClient();

            webClientt.Headers["Content-type"] = "application/json";
            webClientt.Encoding = Encoding.UTF8;
            var response = webClientt.UploadString("http://unligteningsoft.com/QarocoService.svc/MessageSystem/MessageSystemAdd", "POST", data);

            //MessageSystem message = JsonConvert.DeserializeObject<MessageSystem>(response);
            if (response == "true")
            {
                TempData["Success"] = "Teşekkürler mesajınız bize iletildi en kısa zamanda tarafınıza dönüş yapılacaktır.";
                return(RedirectToAction("Help"));
            }
            else
            {
                return(View());
            }
        }
예제 #25
0
        public void ChangeSelectSkill(uint?skillID)
        {
            SelectSkill = skillID;
            MessageSystem <MessageType> .Notify(MessageType.AgentSelectSkill);

            FSM.HandleMessage(UIStateMsg.ClickSkill);
        }
예제 #26
0
        public void OnEventTrigger(MessageType eventType, params object[] parameters)
        {
            switch (eventType)
            {
            case MessageType.GAMEINFO:
                gameInfo = parameters[0] as network.GameInfo;
                break;

            case MessageType.COMMANDREQUEST:
                cmdReq = parameters[0] as network.CommandRequest;
                break;

            case MessageType.ERROR:
                var error = parameters[0] as network.Error;
                if (error.id == 29)
                {
                    //离开房间
                    var idx = PlayerInfos.FindIndex(u =>
                    {
                        return(u != null && u.id == error.dst_id);
                    });
                    MessageSystem <MessageType> .Notify(MessageType.PlayerLeave, error.dst_id, idx);
                }
                break;
            }
        }
예제 #27
0
        protected Game(string title)
        {
            Properties.Reload();

            glfwInit();
            glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
            glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 4);
            glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

            IntPtr address = glfwCreateWindow(Resolution.WindowWidth, Resolution.WindowHeight, title, IntPtr.Zero,
                                              IntPtr.Zero);

            if (address == IntPtr.Zero)
            {
                glfwTerminate();

                return;
            }

            window         = new Window(title, 800, 600, address);
            inputProcessor = new InputProcessor();

            glfwMakeContextCurrent(address);
            glfwSetKeyCallback(address, keyCallback);
            glfwSetCursorPosCallback(address, cursorPositionCallback);
            glfwSetMouseButtonCallback(address, mouseButtonCallback);

            MessageSystem.Subscribe(this, CoreMessageTypes.Exit, (messageType, data, dt) =>
            {
                OnExit();
            });
        }
예제 #28
0
 // Start is called before the first frame update
 private void Start()
 {
     myFile.Delete();
     if (myFile.FileExists())
     {
         if (myFile.Load())
         {
             LoadInventory();
             LoadEquipment();
             LoadShop();
             // Gold
             gold.ChangeGold(myFile.GetInt("gold", defaultValue: 5000));
             // Encounter
             gameManager.nextEncounterNumber = myFile.GetInt("encounter", defaultValue: 1);
         }
         else
         {
             MessageSystem.Print("Load Failed!");
         }
     }
     else
     {
         gold.ChangeGold(5000);
         shop.GenerateItems();
         SaveInventory();
     }
     myFile.Dispose();
 }
예제 #29
0
 public virtual IEnumerator Equip(EquippableItem item)
 {
     // Base implementation reverts the actions, if it's not the player's turn.
     BattleSystem.Player.GetComponent <PlayerEquippedItems>().Unequip(item.Slot);
     MessageSystem.Print("Not player turn");
     yield break;
 }
예제 #30
0
        public override void UIStateChange(uint state, UIStateMsg msg, params object[] paras)
        {
            switch (state)
            {
            case 201:
            case 202:
            case 205:
                OKAction = () =>
                {
                    sendReponseMsg(state, BattleData.Instance.MainPlayer.id, null, null, new List <uint>()
                    {
                        1
                    });
                    BattleData.Instance.Agent.FSM.ChangeState <StateIdle>(UIStateMsg.Init, true);
                };
                CancelAction = () =>
                {
                    sendReponseMsg(state, BattleData.Instance.MainPlayer.id, null, null, new List <uint>()
                    {
                        0
                    });
                    BattleData.Instance.Agent.FSM.ChangeState <StateIdle>(UIStateMsg.Init, true);
                };
                MessageSystem <MessageType> .Notify(MessageType.SendHint, StateHint.GetHint(state));

                return;
            }
            base.UIStateChange(state, msg, paras);
        }
예제 #31
0
        public override void BackState(UIStateMsg msg, params object[] paras)
        {
            if (History.Count > 0)
            {
                var t = History.Pop();
                if (t == typeof(StateIdle))
                {
                    //一般是多次行动时的取消
                    Current.Process(msg, paras);
                    BattleData.Instance.Agent.SelectCards.Clear();
                    BattleData.Instance.Agent.SelectPlayers.Clear();
                    BattleData.Instance.Agent.SelectSkill = null;
                    BattleData.Instance.Agent.SelectArgs.Clear();
                    MessageSystem <MessageType> .Notify(MessageType.AgentSelectPlayer);

                    MessageSystem <MessageType> .Notify(MessageType.AgentSelectCard);

                    MessageSystem <MessageType> .Notify(MessageType.AgentSelectSkill);
                }
                else
                {
                    ChangeState(t, false, msg, paras);
                }
            }
        }
예제 #32
0
        public IEnumerator MoveForwards(Controller current, Controller opponent)
        {
            float margin = 5f;

            current.Animator.SetTrigger("Walk");
            float maximumMovementAndDirection = (current.UnitStats.GetStat(EStats.MoveSpeed) * (int)Mathf.Sign(current.transform.localScale.x));
            float distanceBetweenCharacters   = Mathf.Abs(current.transform.position.x - opponent.transform.position.x);
            float finalPositionX;
            float viableMovement = distanceBetweenCharacters - margin;

            if (Mathf.Abs(maximumMovementAndDirection) > viableMovement)
            {
                float opponentSlowValue;
                if (distanceBetweenCharacters > margin)
                {
                    finalPositionX    = current.transform.position.x + viableMovement * (int)Mathf.Sign(current.transform.localScale.x);
                    opponentSlowValue = current.UnitStats.GetStat(EStats.MoveSpeed) - viableMovement;
                }
                else
                {
                    finalPositionX    = current.transform.position.x;
                    opponentSlowValue = current.UnitStats.GetStat(EStats.MoveSpeed);
                }
                opponent.CharacterActiveEffects.AddEffect(new StatChangeEffect(3, EStats.MoveSpeed, -opponentSlowValue));
                MessageSystem.Print("Opponent slowed");
            }
            else
            {
                finalPositionX = current.transform.position.x + maximumMovementAndDirection;
            }
            finalPositionX = battleSystem.ConstrainXMovement(finalPositionX);
            yield return(StartCoroutine(current.UnitMovement.MoveUnit(finalPositionX, current.AnimationDurations.WalkTime)));
        }
예제 #33
0
    private IEnumerator OpenDoor()
    {
        MessageWindow messageWindow = MessageSystem.GetWindow();
        bool          hasItem       = InventorySystem.HasItem(keyItem);

        if (!hasItem)
        {
            yield return(StartCoroutine(messageWindow.ShowClick("ドアを開けるには鍵が必要なようだ")));

            messageWindow.Close();
        }
        else
        {
            yield return(StartCoroutine(messageWindow.ShowClick("ガチャ! ドアの鍵を開けた")));

            messageWindow.Close();

            //ドアを開ける
            door.SetActive(false);

            //イベントが起動しないようにする
            triggerColider.enabled = false;

            //鍵を消費する
            InventorySystem.Remove(keyItem);

            //フラグの保存
            VariablePersister.SetBool(key, true);
        }
        yield return(null);
    }
 public ChangeInterfaceOfClassifierCommand(
     Implementation existingInterface, 
     ClassifierDictionary classifiers,
     MessageSystem messageSystem)
 {
     _existingInterface = existingInterface;
     _classifiers = classifiers;
     _messageSystem = messageSystem;
 }
 protected override void Init()
 {
     _property = For<Property>();
     _classifiers = CreateDictionaryWithoutSystemTypes();
     _messageSystem = For<MessageSystem>();
     _oldType = new Classifier(Old);
     _newType = new Classifier(New);
     _classifiers.FindByName(Old).Returns(_oldType);
     _classifiers.FindByName(New).Returns(_newType);
 }
예제 #36
0
        public NewClassifierCommand(
            ClassifierDictionary classifiers,
            MessageSystem messageSystem)
        {
            Requires(classifiers != null);
            Requires(messageSystem != null);

            _classifiers = classifiers;
            _messageSystem = messageSystem;
        }
예제 #37
0
 public SerializationMixin(
     Diagram diagram,
     MessageSystem messageSystem,
     ApplicationSettings applicationSettings)
 {
     _diagram = diagram;
     _messageSystem = messageSystem;
     _applicationSettings = applicationSettings;
     _fileName = applicationSettings.LastFile;
 }
예제 #38
0
 /// <summary>
 /// react on a domain change event and update the
 /// diagram, but skip updates if they occure within 
 /// a defined time.
 /// </summary>
 /// <param name="messageSystem"></param>
 private void RegisterForDomainChanges(MessageSystem messageSystem)
 {
     var skipUpdateInterval = TimeSpan.FromSeconds(3);
     // react on the domain change event but skip all events
     // that happen within less than three seconds.
     Observable
         .FromEvent<IDomainEvent>(
             x => messageSystem.DomainModelChanged += x,
             x => messageSystem.DomainModelChanged -= x)
         .Throttle(skipUpdateInterval, Scheduler.Default)
         .Subscribe(_ => Task.Run(() => UpdateDiagram()));
 }
예제 #39
0
        public RenameMemberCommand(
            INamed namedObject,
            IValidateNameService validateNameService,
            MessageSystem messageSystem)
        {
            _namedObject = namedObject;
            Requires(validateNameService != null);
            Requires(messageSystem != null);

            _validateNameService = validateNameService;
            _messageSystem = messageSystem;
        }
예제 #40
0
        public ViewModelContext(
            ClassifierDictionary availableClassifiers,
            CommandFactory commandFactory,
            MessageSystem messageSystem)
        {
            Requires(availableClassifiers != null);
            Requires(messageSystem != null);

            Classifiers = availableClassifiers;
            MessageSystem = messageSystem;
            ViewModelFactory = new ViewModelFactory(this);
            CommandFactory = commandFactory;
        }
 public BaseClassSelectionItemSource(
    ClassifierDictionary classifiers,
    string derivedClassName,
    MessageSystem messageSystem):
     base(
         classifiers, 
         () => classifiers.Where(x => 
             x.Name != derivedClassName && 
             !x.IsSystemType),
         messageSystem,true)
 {
     _classifiers = classifiers;
 }
예제 #42
0
        public RendererViewModel(
            Diagram diagram,
            ApplicationSettings settings,
            MessageSystem messageSystem)
        {
            _diagram = diagram;
            _settings = settings;
            _yumleHttpConnection.BaseAddress = new Uri(settings.YumlBaseUrl);
            _yumleHttpConnection.DefaultRequestHeaders.Add("Accept-Language", "en-GB,en-US,de-DE,de-AT;q=0.8,en;q=0.6,ru;q=0.4");

            RegisterForDomainChanges(messageSystem);
            // update the diagram the first time
            UpdateDiagram();
        }
        protected override void Init()
        {
            _validationService = For<IValidateNameService>();
            _messageSystem = For<MessageSystem>();

            _classifierDictionary = CreateDictionaryWithoutSystemTypes();
            _classifier = new Classifier("Integer");

            _renameCommand = new RenameClassifierCommand(
                _classifier, 
                _classifierDictionary,
                _validationService,
                _messageSystem);

            _newName = RandomString();
        }
 public ClassifierSingleCommandContext(
     Classifier classifier,
     ClassifierDictionary classifierDictionary,
     DeletionService deletionService,
     IRelationService relationService,
     IAskUserBeforeDeletionService askUserService,
     MessageSystem messageSystem)
 {
     Rename = new RenameClassifierCommand(
         classifier,
         classifierDictionary,
         new ClassifierValidationService(classifierDictionary),
         messageSystem);
     ChangeBaseClass = new ChangeBaseClassCommand(
         classifier,
         classifierDictionary,
         messageSystem);
     Delete = new DeleteClassifierCommand(classifier, deletionService,askUserService);
     Visibility = new ShowOrHideSingleObjectCommand(classifier, messageSystem);
     ChangeClassifierColor = new ChangeColorCommand(classifier, messageSystem);
     ChangeNoteColor = new ChangeNoteColorCommand(classifier.Note,messageSystem);
     ChangeNoteText = new ChangeNoteTextCommand(classifier.Note,messageSystem);
     ChangeIsInterface = new MakeClassifierToInterfaceCommand(classifier, relationService);
 }
예제 #45
0
 void Start()
 {
     system = MessageSystem.GetInstance();
 }
예제 #46
0
 protected override void Init()
 {
     _messageSystem = For<MessageSystem>();
     _classifiers = CreateDictionaryWithoutSystemTypes();
 }
예제 #47
0
 void Start()
 {
     messenger = MessageSystem.GetInstance();
 }
예제 #48
0
    void Awake()
    {
        MS = MessageSystem.Instance;

        PlayerPrefab = Resources.Load ("Player");
        CountDownText = GameObject.Find("CountDown").GetComponent<CountDownObject>();
        TutorialObject = GameObject.Find("Tutorial").GetComponent<Tutorial>();
        TutorialObject.gameObject.SetActive(false);
        if (!CountDownText) {
            Debug.LogError ("GameManager::Awake() > Are you sure there is a countdownobject called CountDown in the scene?");
        }
    }
예제 #49
0
 protected override void Init()
 {
     _messageSystem = new MessageSystem();
 }
 public ShowOrHideSingleObjectCommand(IVisible visibleObject, MessageSystem messageSystem)
 {
     _visibleObject = visibleObject;
     _messageSystem = messageSystem;
 }
 protected override void RegisterForClassifierEvent(MessageSystem messageSystem, Classifier classifier)
 {
     messageSystem.Subscribe<ClassToInterfaceEvent>(classifier, OnClassToInterfaceChanged);
     messageSystem.Subscribe<InterfaceToClassEvent>(classifier, OnInterfaceToClassChanged);
 }
 public ShowOrHideAllObjectsInListCommand(IVisibleObjectList visibleObjects, MessageSystem messageSystem)
 {
     _visibleObjects = visibleObjects;
     _messageSystem = messageSystem;
 }
예제 #53
0
 void Awake()
 {
     singleton = this;
 }
예제 #54
0
 public DiagramCommands(Diagram diagram, MessageSystem messageSystem)
 {
     ChangeNoteColor = new ChangeNoteColorCommand(diagram.Note,messageSystem);
     ChangeNoteText = new ChangeNoteTextCommand(diagram.Note, messageSystem);
 }
 protected override void Init()
 {
     _messageSystem = For<MessageSystem>();
 }
예제 #56
0
 void Awake()
 {
     GM = GameManager.Instance;
     MS = MessageSystem.Instance;
     /* COMPONENTS */
     _rigid = GetComponent<Rigidbody>();
     _transf = transform;
     _animator = GetComponentInChildren<Animator>();
 }
예제 #57
0
 public ChangeNoteTextCommand(Note note,MessageSystem messageSystem)
 {
     _note = note;
     _messageSystem = messageSystem;
 }
예제 #58
0
        public void AddInterfaceImplementation(Classifier newInterface,MessageSystem messageSystem = null)
        {
            // ensure that only one interface is created after this method was executed
            // used to ensure a previous issue was fixed (two implementations were created instead of one)
            Ensures(InterfaceImplementations.Count == OldValue(InterfaceImplementations.Count + 1));

            var newImplementation = new Implementation(this, newInterface);
            InterfaceImplementations.AddInterfaceToList(newImplementation);
            messageSystem?.PublishCreated(InterfaceImplementations, newImplementation);
        }
예제 #59
0
 public void SetBaseClass(Classifier @interface, MessageSystem messageSystem)
 {
     var oldBaseClass = BaseClass;
     BaseClass = @interface;
     if (oldBaseClass == null)
         messageSystem.Publish(this, new BaseClassSetEvent(@interface.Name));
     else
         messageSystem.Publish(this, new BaseClassChangedEvent(oldBaseClass.Name,@interface.Name));
 }
예제 #60
0
 public void RemoveImplementationForInterface(Classifier @interface,MessageSystem messageSystem = null) =>
     _interfaceImplementations.RemoveImplementationForInterface(@interface,messageSystem);