Beispiel #1
0
        // Function from file: shieldgen.dm
        public Obj_Machinery_Shieldwall(dynamic A = null, dynamic B = null) : base((object)(A))
        {
            Mob_Living L = null;

            // Warning: Super call was HERE! If anything above HERE is needed by the super call, it might break!;
            this.gen_primary   = A;
            this.gen_secondary = B;

            if (Lang13.Bool(A) && Lang13.Bool(B))
            {
                this.needs_power = true;
            }

            foreach (dynamic _a in Lang13.Enumerate(GlobalFuncs.get_turf(this.loc), typeof(Mob_Living)))
            {
                L = _a;

                this.visible_message(new Txt("<span class='danger'>").The(this).item().str(" is suddenly occupying the same space as ").the(L).item().str("'s organs!</span>").ToString());
                L.gib();
            }
            return;
        }
        // Function from file: shadowling_abilities.dm
        public override bool cast(dynamic targets = null, dynamic thearea = null, dynamic user = null)
        {
            thearea = thearea ?? Task13.User;

            Mob_Living boom = null;


            if (Lang13.Bool(thearea.phasing))
            {
                thearea.WriteMsg("<span class='warning'>You are not in the same plane of existence. Unphase first.</span>");
                this.revert_cast();
                return(false);
            }

            foreach (dynamic _a in Lang13.Enumerate(targets, typeof(Mob_Living)))
            {
                boom = _a;


                if (GlobalFuncs.is_shadow(boom))
                {
                    thearea.WriteMsg("<span class='warning'>Making an ally explode seems unwise.<span>");
                    this.revert_cast();
                    return(false);
                }
                ((Ent_Static)thearea).visible_message("<span class='warning'>" + thearea + "'s markings flare as they gesture at " + boom + "!</span>", "<span class='shadowling'>You direct a lance of telekinetic energy into " + boom + ".</span>");
                Task13.Sleep(4);

                if (boom is Mob_Living_Carbon)
                {
                    GlobalFuncs.playsound(boom, "sound/magic/Disintegrate.ogg", 100, 1);
                }
                boom.visible_message("<span class='userdanger'>" + boom + " explodes!</span>");
                boom.gib();
            }
            return(false);
        }
Beispiel #3
0
        // Function from file: inflict_handler.dm
        public override bool cast(dynamic targets = null, dynamic thearea = null, dynamic user = null)
        {
            thearea = thearea ?? Task13.User;

            Mob_Living target   = null;
            Mob_Living C_target = null;
            dynamic    B        = null;


            foreach (dynamic _b in Lang13.Enumerate(targets, typeof(Mob_Living)))
            {
                target = _b;

                GlobalFuncs.playsound(target, this.sound, 50, 1);

                switch ((string)(this.destroys))
                {
                case "gib":
                    target.gib();
                    break;

                case "gib_brain":

                    if (target is Mob_Living_Carbon_Human || target is Mob_Living_Carbon_Monkey)
                    {
                        C_target = target;
                        B        = C_target.getorgan(typeof(Obj_Item_Organ_Internal_Brain));

                        if (Lang13.Bool(B))
                        {
                            B.loc = GlobalFuncs.get_turf(C_target);
                            B.transfer_identity(C_target);
                            ((dynamic)C_target).internal_organs -= B;
                        }
                    }
                    target.gib();
                    break;

                case "disintegrate":
                    target.dust();
                    break;
                }

                if (!(target != null))
                {
                    continue;
                }
                target.adjustBruteLoss(this.amt_dam_brute);
                target.adjustFireLoss(this.amt_dam_fire);
                target.adjustToxLoss(this.amt_dam_tox);
                target.adjustOxyLoss(this.amt_dam_oxy);
                target.Weaken(this.amt_weakened);
                target.Paralyse(this.amt_paralysis);
                target.Stun(this.amt_stunned);
                target.blind_eyes(this.amt_eye_blind);
                target.blur_eyes(this.amt_eye_blurry);

                if (Lang13.Bool(this.summon_type))
                {
                    Lang13.Call(this.summon_type, target.loc, target);
                }
            }
            return(false);
        }