示例#1
0
    public void OnHealthDepleted()
    {
        TaskManager mTaskManager = gameObject.GetComponent <TaskManager>();
        TaskDeath   taskDeath    = new TaskDeath();

        taskDeath.priority = 5;
        mTaskManager.TriggerTask(taskDeath, "TaskReactHit::OnHealthDepleted");
    }
示例#2
0
        public virtual void OnKilled(DamageType damageType = DamageType.None)
        {
            string reason = Game.UserName + " Died!";

            switch (damageType)
            {
            default:
                break;

            case DamageType.Sand:
            {
                int r = level.random.Next(0, 2);
                if (r == 0)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] was crushed.";
                }
                else if (r == 1)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] suffocated.";
                }
            }
            break;

            case DamageType.Spike:
            {
                int r = level.random.Next(0, 3);
                if (r == 0)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] was stabbed.";
                }
                else if (r == 1)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] got sliced.";
                }
                else if (r == 2)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] was impaled by a spike.";
                }
            }
            break;

            case DamageType.Fall:
            {
                int r = level.random.Next(0, 3);
                if (r == 0)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] went splat!";
                }
                else if (r == 1)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] took a nosedive.";
                }
                else if (r == 2)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] jumped a bit far...";
                }
            }
            break;

            case DamageType.Fire:
            {
                int r = level.random.Next(0, 3);
                if (r == 0)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] was burnt to a crisp.";
                }
                else if (r == 1)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] was playing with fire.";
                }
                else if (r == 2)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] is a pyromaniac.";
                }
            }
            break;

            case DamageType.Drown:
            {
                int r = level.random.Next(0, 3);
                if (r == 0)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] drowned.";
                }
                else if (r == 1)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] couldn't find air.";
                }
                else if (r == 2)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] thought they were a fish.";
                }
            }
            break;

            case DamageType.Self:
            {
                int r = level.random.Next(0, 4);
                if (r == 0)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] took their life.";
                }
                else if (r == 1 || r == 2)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] suicided.";
                }
                else if (r == 3)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] has hit restart.";
                }
            }
            break;

            case DamageType.Lava:
            {
                int r = level.random.Next(0, 4);
                if (r == 0)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] swam in lava.";
                }
                else if (r == 1 || r == 2)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] was incinerated.";
                }
                else if (r == 3)
                {
                    reason = "[color:Red]" + Game.UserName + "[/color] couldn't stand the heat.";
                }
            }
            break;
            }
            Interface.MainWindow.Console.MessageBuffer.Add(new TomShane.Neoforce.Controls.ConsoleMessage(reason, 0));

            TaskDeath tmp = new TaskDeath(level.game.Manager, reason);

            tmp.Closing += new WindowClosingEventHandler(((MainWindow)Game.MainWindow).WindowClosing);
            tmp.Closed  += new WindowClosedEventHandler(((MainWindow)Game.MainWindow).WindowClosed);
            tmp.Init();
            level.game.Manager.Add(tmp);
            tmp.Show();
        }