コード例 #1
0
ファイル: CombatResults.cs プロジェクト: minalear/roguealak
        private void outputCombatLogInfo()
        {
            MessageCenter.Message message = new MessageCenter.Message("", Caster.ParentEntity);

            if (UsedAbility.AbilityType == AbilityTypes.Physical || UsedAbility.AbilityType == AbilityTypes.Magical)
            {
                if (DidMiss)
                {
                    message.ShortMessage     = String.Format("{0} missed their attack!", Caster.UnitName);
                    message.DetailedMessage  = String.Format("{0} missed their attack against {1}.", Caster.UnitName, Target.UnitName);
                    message.DetailedMessage += "  Used the ability " + UsedAbility.AbilityName + ".";
                }
                else if (DidAvoid)
                {
                    message.ShortMessage     = String.Format("{0} avoided the attack!", Caster.UnitName);
                    message.DetailedMessage  = String.Format("{0} avoided {1}'s attack.", Caster.UnitName, Target.UnitName);
                    message.DetailedMessage += "  Used the ability " + UsedAbility.AbilityName + ".";
                }
                else if (DidCrit)
                {
                    message.ShortMessage     = String.Format("{0} scored a critical strike! ({1} damage)", Caster.UnitName, AppliedDamage);
                    message.DetailedMessage  = String.Format("{0} dealt critical damage against {1} worth {2}.  {3} damage absorbed and {4} damage reflected.", Caster.UnitName, Target.UnitName, AppliedDamage, AbsorbedDamage, ReflectedDamage);
                    message.DetailedMessage += "  Used the ability " + UsedAbility.AbilityName + ".";
                }
                else
                {
                    message.ShortMessage     = String.Format("{0} scored a strike! ({1} damage)", Caster.UnitName, AppliedDamage);
                    message.DetailedMessage  = String.Format("{0} attacked {1} for {2} damage.  {3} damage absorbed and {4} damage reflected.", Caster.UnitName, Target.UnitName, AppliedDamage, AbsorbedDamage, ReflectedDamage);
                    message.DetailedMessage += "  Used the ability " + UsedAbility.AbilityName + ".";
                }

                if (HPLeech > 0)
                {
                    message.DetailedMessage += string.Format("  {0} HP Leeched.", HPLeech);
                    Caster.AddHealth(HPLeech);
                }
                if (MPLeech > 0)
                {
                    message.DetailedMessage += string.Format("  {0} MP Leeched.", MPLeech);
                    Caster.AddMana(MPLeech);
                }
            }

            MessageCenter.PostMessage(message);
        }
コード例 #2
0
ファイル: UIBase.cs プロジェクト: spjiangjunling/pptwithUnity
        /// <summary>
        /// 自定义消息添加至本地信箱
        /// </summary>
        /// <param name="funcName">具体执行的方法名字</param>
        /// <param name="message">具体执行的方法</param>
        /// <param name="Childaddress">绑定的子物体,可以为空</param>
        public void AddMessage2LocalBox(string funcName, MessageCenter.Message message, string Childaddress = null)
        {
            UIName = gameObject.name;

            if (LocalMessageBox == null)
            {
                LocalMessageBox = new Dictionary <LocalMessageAddress, MessageCenter.Message>();
            }
            //将本地信箱注册入消息中心
            AddLocalMessageBox2MessageCenter();
            //如果子物体为空
            if (Childaddress == null)
            {
                Childaddress = UIName;
            }
            LocalMessageAddress localMessageAddress = new LocalMessageAddress(Childaddress, funcName);

            if (!LocalMessageBox.ContainsKey(localMessageAddress))
            {
                LocalMessageBox.Add(localMessageAddress, null);
                //Debug.Log(UIName+"已添加本地消息体");
            }
            LocalMessageBox[localMessageAddress] = message;
        }