Beispiel #1
0
        // Function from file: pinpointer.dm
        public void scan_for_ops(  )
        {
            int closest_distance = 0;
            Mob_Living_Carbon M  = null;


            if (this.active)
            {
                this.nearest_op  = null;
                closest_distance = 1000;

                foreach (dynamic _a in Lang13.Enumerate(GlobalVars.mob_list, typeof(Mob_Living_Carbon)))
                {
                    M = _a;


                    if (M.mind != null && GlobalVars.ticker.mode.syndicates.Contains(M.mind))
                    {
                        if (Map13.GetDistance(M, GlobalFuncs.get_turf(this)) < closest_distance)
                        {
                            this.nearest_op = M;
                        }
                    }
                }
            }
            return;
        }
Beispiel #2
0
        // Function from file: armor.dm
        public override bool hit_reaction(Mob_Living_Carbon owner = null, string attack_text = null, int?final_block_chance = null, dynamic damage = null, int?attack_type = null)
        {
            Mob_Living_SimpleAnimal_Hostile_Illusion_Escape E = null;


            if (!this.active)
            {
                return(false);
            }

            if (Rand13.PercentChance(this.hit_reaction_chance))
            {
                E = new Mob_Living_SimpleAnimal_Hostile_Illusion_Escape(owner.loc);
                E.Copy_Parent(owner, 50);
                E.GiveTarget(owner);
                E.Goto(owner, E.move_to_delay, E.minimum_distance);
                owner.alpha = 0;
                owner.visible_message("<span class='danger'>" + owner + " is hit by " + attack_text + " in the chest!</span>");
                Task13.Schedule(40, (Task13.Closure)(() => {
                    owner.alpha = Convert.ToInt32(Lang13.Initial(owner, "alpha"));
                    return;
                }));
                return(true);
            }
            return(false);
        }
Beispiel #3
0
        // Function from file: armor.dm
        public override bool hit_reaction(Mob_Living_Carbon owner = null, string attack_text = null, int?final_block_chance = null, dynamic damage = null, int?attack_type = null)
        {
            Mob_Living M = null;


            if (!this.active)
            {
                return(false);
            }

            if (Rand13.PercentChance(this.hit_reaction_chance))
            {
                owner.visible_message("<span class='danger'>The " + this + " blocks the " + attack_text + ", sending out arcs of lightning!</span>");

                foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInView(owner, 6), typeof(Mob_Living)))
                {
                    M = _a;


                    if (M == owner)
                    {
                        continue;
                    }
                    owner.Beam(M, "lightning" + Rand13.Int(1, 12), "icons/effects/effects.dmi", 5);
                    M.adjustFireLoss(25);
                    GlobalFuncs.playsound(M, "sound/machines/defib_zap.ogg", 50, 1, -1);
                }
                return(true);
            }
            return(false);
        }
Beispiel #4
0
        // Function from file: hardsuit.dm
        public override bool hit_reaction(Mob_Living_Carbon owner = null, string attack_text = null, int?final_block_chance = null, dynamic damage = null, int?attack_type = null)
        {
            EffectSystem_SparkSpread s = null;


            if (this.current_charges > 0)
            {
                s = new EffectSystem_SparkSpread();
                s.set_up(2, 1, this);
                s.start();
                owner.visible_message("<span class='danger'>" + owner + "'s shields deflect " + attack_text + " in a shower of sparks!</span>");
                this.current_charges--;
                this.recharge_cooldown = Game13.time + this.recharge_delay;
                GlobalVars.SSobj.processing.Or(this);

                if (this.current_charges <= 0)
                {
                    owner.visible_message("" + owner + "'s shield overloads!");
                    this.shield_state = "broken";
                    owner.update_inv_wear_suit();
                }
                return(true);
            }
            return(false);
        }
Beispiel #5
0
        // Function from file: pyrotechnics.dm
        public override void on_reaction(Reagents holder = null, double?created_volume = null)
        {
            dynamic           location = null;
            Mob_Living_Carbon C        = null;

            location = GlobalFuncs.get_turf(holder.my_atom);
            GlobalFuncs.playsound(location, "sound/effects/bang.ogg", 25, 1);

            foreach (dynamic _a in Lang13.Enumerate(GlobalFuncs.get_hearers_in_view((created_volume ?? 0) / 10, location), typeof(Mob_Living_Carbon)))
            {
                C = _a;


                if (C.check_ear_prot())
                {
                    continue;
                }
                C.show_message("<span class='warning'>BANG</span>", 2);
                C.Stun(5);
                C.Weaken(5);
                C.setEarDamage(C.ear_damage + Rand13.Int(0, 5), Num13.MaxInt(((int)(C.ear_deaf ?? 0)), 15));

                if (C.ear_damage >= 15)
                {
                    C.WriteMsg("<span class='warning'>Your ears start to ring badly!</span>");
                }
                else if (C.ear_damage >= 5)
                {
                    C.WriteMsg("<span class='warning'>Your ears start to ring!</span>");
                }
            }
            return;
        }
        // Function from file: armor.dm
        public override bool hit_reaction(Mob_Living_Carbon owner = null, string attack_text = null, int?final_block_chance = null, dynamic damage = null, int?attack_type = null)
        {
            Mob_Living_Carbon C = null;


            if (!this.active)
            {
                return(false);
            }

            if (Rand13.PercentChance(this.hit_reaction_chance))
            {
                owner.visible_message("<span class='danger'>The " + this + " blocks the " + attack_text + ", sending out jets of flame!</span>");

                foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRange(owner, 6), typeof(Mob_Living_Carbon)))
                {
                    C = _a;


                    if (C != owner)
                    {
                        C.fire_stacks += 8;
                        C.IgniteMob();
                    }
                }
                owner.fire_stacks = -20;
                return(true);
            }
            return(false);
        }
        // Function from file: pyrotechnics.dm
        public override void on_reaction(Reagents holder = null, double?created_volume = null)
        {
            dynamic location           = null;
            EffectSystem_SparkSpread s = null;
            Mob_Living_Carbon        C = null;

            location = GlobalFuncs.get_turf(holder.my_atom);
            s        = new EffectSystem_SparkSpread();
            s.set_up(2, 1, location);
            s.start();

            foreach (dynamic _a in Lang13.Enumerate(GlobalFuncs.get_hearers_in_view((created_volume ?? 0) / 10, location), typeof(Mob_Living_Carbon)))
            {
                C = _a;


                if (C.flash_eyes())
                {
                    if (Map13.GetDistance(C, location) < 4)
                    {
                        C.Weaken(5);
                    }
                    else
                    {
                        C.Stun(5);
                    }
                }
            }
            return;
        }
Beispiel #8
0
        // Function from file: Hallucination.dm
        public Obj_Effect_Hallucination_SingularityScare(dynamic loc = null, Mob_Living_Carbon T = null) : base((object)(loc))
        {
            Ent_Static start         = null;
            int        screen_border = 0;
            int?       i             = null;
            int?       i2            = null;

            this.target   = T;
            start         = T.loc;
            screen_border = Convert.ToInt32(Rand13.Pick(new object [] { GlobalVars.SOUTH, GlobalVars.EAST, GlobalVars.WEST, GlobalVars.NORTH }));
            i             = null;
            i             = 0;

            while ((i ?? 0) < 11)
            {
                start = Map13.GetStep(start, screen_border);
                i++;
            }
            this.s = new Obj_Effect_Hallucination_Simple_Singularity(start, this.target);
            i2     = null;
            i2     = 0;

            while ((i2 ?? 0) < 11)
            {
                Task13.Sleep(5);
                this.s.loc = Map13.GetStep(GlobalFuncs.get_turf(this.s), Map13.GetDistance(this.s, this.target));
                this.s.Show();
                this.s.Eat();
                i2++;
            }
            GlobalFuncs.qdel(this.s);
            return;
        }
        // Function from file: shadowling_abilities.dm
        public override bool cast(dynamic targets = null, dynamic thearea = null, dynamic user = null)
        {
            thearea = thearea ?? Task13.User;

            dynamic           T  = null;
            Mob_Living_Carbon M  = null;
            Mob_Living_Carbon M2 = null;


            if (!this.shadowling_check(thearea))
            {
                this.revert_cast();
                return(false);
            }
            this.targetsDrained = 0;
            this.nearbyTargets  = new ByTable();

            foreach (dynamic _b in Lang13.Enumerate(targets))
            {
                T = _b;


                foreach (dynamic _a in Lang13.Enumerate(T.contents, typeof(Mob_Living_Carbon)))
                {
                    M = _a;


                    if (M == thearea)
                    {
                        continue;
                    }
                    this.targetsDrained++;
                    this.nearbyTargets.Add(M);
                }
            }

            if (!(this.targetsDrained != 0))
            {
                this.revert_cast();
                thearea.WriteMsg("<span class='warning'>There were no nearby humans for you to drain.</span>");
                return(false);
            }

            foreach (dynamic _c in Lang13.Enumerate(this.nearbyTargets, typeof(Mob_Living_Carbon)))
            {
                M2 = _c;

                ((Mob_Living)thearea).heal_organ_damage(10, 10);
                ((Mob_Living)thearea).adjustToxLoss(-10);
                ((Mob_Living)thearea).adjustOxyLoss(-10);
                ((Mob_Living)thearea).adjustStaminaLoss(-20);
                ((Mob)thearea).AdjustWeakened(-1);
                ((Mob)thearea).AdjustStunned(-1);
                M2.adjustOxyLoss(20);
                M2.adjustStaminaLoss(20);
                M2.WriteMsg("<span class='boldannounce'>You feel a wave of exhaustion and a curious draining sensation directed towards " + Task13.User + "!</span>");
            }
            thearea.WriteMsg("<span class='shadowling'>You draw life from those around you to heal your wounds.</span>");
            return(false);
        }
        // Function from file: absorb.dm
        public override bool can_sting(Mob user = null, Ent_Static target = null)
        {
            Changeling        changeling = null;
            dynamic           G          = null;
            Mob_Living_Carbon target2    = null;


            if (!base.can_sting(user, target))
            {
                return(false);
            }
            changeling = user.mind.changeling;

            if (changeling.isabsorbing)
            {
                user.WriteMsg("<span class='warning'>We are already absorbing!</span>");
                return(false);
            }
            G = user.get_active_hand();

            if (!(G is Obj_Item_Weapon_Grab))
            {
                user.WriteMsg("<span class='warning'>We must be grabbing a creature in our active hand to absorb them!</span>");
                return(false);
            }

            if (Convert.ToDouble(G.state) <= 3)
            {
                user.WriteMsg("<span class='warning'>We must have a tighter grip to absorb this creature!</span>");
                return(false);
            }
            target2 = G.affecting;
            return(changeling.can_absorb_dna(user, target2));
        }
Beispiel #11
0
        // Function from file: runes.dm
        public override void invoke(dynamic user = null)
        {
            Mob_Living_Carbon C = null;
            dynamic           T = null;

            this.visible_message("<span class='warning'>" + this + " burns away, scorching the floor below!</span>");

            foreach (dynamic _a in Lang13.Enumerate(Map13.FetchViewers(null, this), typeof(Mob_Living_Carbon)))
            {
                C = _a;


                if (!GlobalFuncs.iscultist(C) && !Lang13.Bool(C.null_rod_check()))
                {
                    C.WriteMsg("<span class='cultlarge'>You feel your skin crisp as you burst into flames!</span>");
                    C.fire_act();
                }
            }
            user.apply_damage(15, "fire", Rand13.Pick(new object [] { "l_arm", "r_arm" }));
            user.WriteMsg("<span class='cultitalic'>" + this + " burns your arms!</span>");
            T = GlobalFuncs.get_turf(this);
            ((Tile_Simulated)T).burn_tile();
            GlobalFuncs.qdel(this);
            return;
        }
 // Function from file: bottle.dm
 public override bool throw_impact(dynamic target = null, Mob_Living_Carbon thrower = null)
 {
     base.throw_impact((object)(target), thrower);
     this.SplashReagents(target);
     this.smash(target, thrower, true);
     return(false);
 }
Beispiel #13
0
        // Function from file: flash.dm
        public override dynamic attack_self(dynamic user = null, dynamic flag = null, bool?emp = null)
        {
            flag = flag ?? 0;
            emp  = emp ?? false;

            Mob_Living_Carbon M = null;


            if (this.holder != null)
            {
                return(0);
            }

            if (!this.try_use_flash(user))
            {
                return(0);
            }
            ((Ent_Static)user).visible_message("<span class='disarm'>" + user + "'s flash emits a blinding light!</span>", "<span class='danger'>Your flash emits a blinding light!</span>");

            foreach (dynamic _a in Lang13.Enumerate(Map13.FetchViewersExcludeThis(null, 3), typeof(Mob_Living_Carbon)))
            {
                M = _a;

                this.flash_carbon(M, user, 1, false);
            }
            return(null);
        }
Beispiel #14
0
        // Function from file: touch_attacks.dm
        public override bool cast(dynamic targets = null, dynamic thearea = null, dynamic user = null)
        {
            thearea = thearea ?? Task13.User;

            Mob_Living_Carbon C = null;


            foreach (dynamic _a in Lang13.Enumerate(targets, typeof(Mob_Living_Carbon)))
            {
                C = _a;


                if (!Lang13.Bool(this.attached_hand))
                {
                    if (!this.ChargeHand(C))
                    {
                        return(false);
                    }
                }
            }

            while (Lang13.Bool(this.attached_hand))
            {
                this.charge_counter = 0;
                Task13.Sleep(1);
            }
            return(false);
        }
Beispiel #15
0
        // Function from file: machinery.dm
        public virtual dynamic close_machine(Ent_Static target = null)
        {
            Mob_Living_Carbon C = null;

            this.state_open = 0;
            this.density    = true;

            if (!(target != null))
            {
                foreach (dynamic _a in Lang13.Enumerate(this.loc, typeof(Mob_Living_Carbon)))
                {
                    C = _a;


                    if (C.buckled != null || Lang13.Bool(C.buckled_mob))
                    {
                        continue;
                    }
                    else
                    {
                        target = C;
                    }
                }
            }

            if (target != null && !Lang13.Bool(((dynamic)target).buckled) && !Lang13.Bool(((dynamic)target).buckled_mob))
            {
                this.occupant = target;
                ((dynamic)target).forceMove(this);
            }
            this.updateUsrDialog();
            this.update_icon();
            return(null);
        }
Beispiel #16
0
        // Function from file: Hallucination.dm
        public Obj_Effect_Hallucination_FakeFlood(dynamic loc = null, Mob_Living_Carbon T = null) : base((object)(loc))
        {
            Obj_Machinery_Atmospherics_Components_Unary_VentPump U = null;

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

            foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRangeExcludeThis(this.target, 7), typeof(Obj_Machinery_Atmospherics_Components_Unary_VentPump)))
            {
                U = _a;


                if (!(U.welded == true))
                {
                    this.loc = U.loc;
                    break;
                }
            }
            this.image_state = Rand13.Pick(new object [] { "plasma", "nitrous_oxide" });
            this.flood_images.Add(new Image(this.image_icon, this, this.image_state, GlobalVars.MOB_LAYER));
            this.flood_turfs.Add(GlobalFuncs.get_turf(this.loc));

            if (Lang13.Bool(((dynamic)this.target).client))
            {
                ((dynamic)this.target).client.images.Or(this.flood_images);
            }
            this.next_expand = Game13.time + 30;
            GlobalVars.SSobj.processing.Or(this);
            return;
        }
        // Function from file: bottle.dm
        public override bool throw_impact(dynamic target = null, Mob_Living_Carbon thrower = null)
        {
            bool    firestarter = false;
            Reagent R           = null;
            dynamic A           = null;

            firestarter = false;

            foreach (dynamic _b in Lang13.Enumerate(this.reagents.reagent_list, typeof(Reagent)))
            {
                R = _b;


                foreach (dynamic _a in Lang13.Enumerate(this.accelerants))
                {
                    A = _a;


                    if (Lang13.Bool(A.IsInstanceOfType(R)))
                    {
                        firestarter = true;
                        break;
                    }
                }
            }
            this.SplashReagents(target);

            if (firestarter && this.active)
            {
                ((Ent_Static)target).fire_act();
                new Obj_Effect_Hotspot(GlobalFuncs.get_turf(target));
            }
            base.throw_impact((object)(target), thrower);
            return(false);
        }
 // Function from file: martial.dm
 public override bool hit_reaction(Mob_Living_Carbon owner = null, string attack_text = null, int?final_block_chance = null, dynamic damage = null, int?attack_type = null)
 {
     if (this.wielded)
     {
         return(base.hit_reaction(owner, attack_text, final_block_chance, (object)(damage), attack_type));
     }
     return(false);
 }
Beispiel #19
0
 // Function from file: toys.dm
 public override bool throw_impact(dynamic target = null, Mob_Living_Carbon thrower = null)
 {
     if (!base.throw_impact((object)(target), thrower))
     {
         this.pop_burst();
     }
     return(false);
 }
Beispiel #20
0
 // Function from file: dna.dm
 public Dna(Mob_Living_Carbon new_holder = null)
 {
     if (new_holder != null)
     {
         this.holder = new_holder;
     }
     return;
 }
Beispiel #21
0
        // Function from file: hunter.dm
        public override bool throw_impact(dynamic target = null, Mob_Living_Carbon thrower = null)
        {
            dynamic L       = null;
            bool    blocked = false;
            dynamic H       = null;


            if (!this.leaping)
            {
                return(base.throw_impact((object)(target), thrower));
            }

            if (Lang13.Bool(target))
            {
                if (target is Mob_Living)
                {
                    L       = target;
                    blocked = false;

                    if (target is Mob_Living_Carbon_Human)
                    {
                        H = target;

                        if (((Mob_Living_Carbon_Human)H).check_shields(90, "the " + this.name, this, 4))
                        {
                            blocked = true;
                        }
                    }

                    if (!blocked)
                    {
                        ((Ent_Static)L).visible_message("<span class ='danger'>" + this + " pounces on " + L + "!</span>", "<span class ='userdanger'>" + this + " pounces on you!</span>");
                        ((Mob)L).Weaken(5);
                        Task13.Sleep(2);
                        Map13.StepTowardsSimple(this, L);
                    }
                    this.toggle_leap(false);
                    this.pounce_cooldown = !this.pounce_cooldown;
                    Task13.Schedule(this.pounce_cooldown_time, (Task13.Closure)(() => {
                        this.pounce_cooldown = !this.pounce_cooldown;
                        return;
                    }));
                }
                else if (target.density && !((Ent_Static)target).CanPass(this))
                {
                    this.visible_message("<span class ='danger'>" + this + " smashes into " + target + "!</span>", "<span class ='alertalien'>" + this + " smashes into " + target + "!</span>");
                    this.weakened = 2;
                }

                if (this.leaping)
                {
                    this.leaping = false;
                    this.update_icons();
                    this.update_canmove();
                }
            }
            return(false);
        }
 // Function from file: grown.dm
 public override bool throw_impact(dynamic target = null, Mob_Living_Carbon thrower = null)
 {
     if (!base.throw_impact((object)(target), thrower))
     {
         this.squish(target);
         GlobalFuncs.qdel(this);
     }
     return(false);
 }
Beispiel #23
0
 // Function from file: toys.dm
 public override bool throw_impact(dynamic target = null, Mob_Living_Carbon thrower = null)
 {
     if (!base.throw_impact((object)(target), thrower))
     {
         GlobalFuncs.playsound(this, "sound/effects/pop.ogg", 20, 1);
         GlobalFuncs.qdel(this);
     }
     return(false);
 }
Beispiel #24
0
        // Function from file: Hallucination.dm
        public Obj_Effect_Hallucination_Fakeattacker(dynamic loc = null, Mob_Living_Carbon T = null) : base((object)(loc))
        {
            Mob_Living_Carbon_Human clone = null;
            string clone_weapon           = null;
            Mob_Living_Carbon_Human H     = null;
            Obj_Effect_FakeAttacker F     = null;

            this.target  = T;
            clone        = null;
            clone_weapon = null;

            foreach (dynamic _a in Lang13.Enumerate(GlobalVars.living_mob_list, typeof(Mob_Living_Carbon_Human)))
            {
                H = _a;


                if (H.stat != 0 || Lang13.Bool(H.lying))
                {
                    continue;
                }
                clone = H;
                break;
            }

            if (!(clone != null))
            {
                return;
            }
            F = new Obj_Effect_FakeAttacker(GlobalFuncs.get_turf(this.target), this.target);

            if (Lang13.Bool(clone.l_hand))
            {
                if (!Lang13.Bool(Lang13.FindIn(clone.l_hand, GlobalVars.non_fakeattack_weapons)))
                {
                    clone_weapon = clone.l_hand.name;
                    F.weap       = clone.l_hand;
                }
            }
            else if (Lang13.Bool(clone.r_hand))
            {
                if (!Lang13.Bool(Lang13.FindIn(clone.r_hand, GlobalVars.non_fakeattack_weapons)))
                {
                    clone_weapon = clone.r_hand.name;
                    F.weap       = clone.r_hand;
                }
            }
            F.name        = clone.name;
            F.my_target   = this.target;
            F.weapon_name = clone_weapon;
            F.left        = new Image(clone, null, null, null, GlobalVars.WEST);
            F.right       = new Image(clone, null, null, null, GlobalVars.EAST);
            F.up          = new Image(clone, null, null, null, GlobalVars.NORTH);
            F.down        = new Image(clone, null, null, null, GlobalVars.SOUTH);
            F.updateimage();
            GlobalFuncs.qdel(this);
            return;
        }
Beispiel #25
0
        // Function from file: armor.dm
        public override bool hit_reaction(Mob_Living_Carbon owner = null, string attack_text = null, int?final_block_chance = null, dynamic damage = null, int?attack_type = null)
        {
            Mob_Living_Carbon H      = null;
            ByTable           turfs  = null;
            dynamic           T      = null;
            dynamic           picked = null;


            if (!this.active)
            {
                return(false);
            }

            if (Rand13.PercentChance(this.hit_reaction_chance))
            {
                H = owner;
                owner.visible_message("<span class='danger'>The reactive teleport system flings " + H + " clear of " + attack_text + "!</span>");
                turfs = new ByTable();

                foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRangeExcludeThis(H, this.tele_range)))
                {
                    T = _a;


                    if (T.density)
                    {
                        continue;
                    }

                    if (Convert.ToDouble(T.x) > Game13.map_size_x - this.tele_range || Convert.ToDouble(T.x) < this.tele_range)
                    {
                        continue;
                    }

                    if (Convert.ToDouble(T.y) > Game13.map_size_y - this.tele_range || Convert.ToDouble(T.y) < this.tele_range)
                    {
                        continue;
                    }
                    turfs.Add(T);
                }

                if (!(turfs.len != 0))
                {
                    turfs.Add(Rand13.PickFromTable(Map13.FetchInRangeExcludeThis(H, this.tele_range).Contains(typeof(Tile))));
                }
                picked = Rand13.PickFromTable(turfs);

                if (!(picked is Tile))
                {
                    return(false);
                }
                H.forceMove(picked);
                H.rad_act(this.rad_amount);
                return(true);
            }
            return(false);
        }
Beispiel #26
0
        // Function from file: Hallucination.dm
        public Obj_Effect_Hallucination_Message(dynamic loc = null, Mob_Living_Carbon T = null) : base((object)(loc))
        {
            dynamic chosen = null;

            this.target = T;
            chosen      = Rand13.Pick(new object [] { "<span class='userdanger'>The light burns you!</span>", "<span class='danger'>You don't feel like yourself.</span>", "<span class='userdanger'>Unknown has punched " + this.target + "!</span>", "<span class='notice'>You hear something squeezing through the ducts...</span>", "<span class='notice'>You hear a distant scream.</span>", "<span class='notice'>You feel invincible, nothing can hurt you!</span>", "<B>" + this.target + "</B> sneezes.", "<span class='warning'>You feel faint.</span>", "<span class='noticealien'>You hear a strange, alien voice in your head...</span>" + Rand13.Pick(new object [] { "Hiss", "Ssss" }), "<span class='notice'>You can see...everything!</span>" });
            ((dynamic)this.target).WriteMsg(chosen);
            GlobalFuncs.qdel(this);
            return;
        }
 // Function from file: grenade.dm
 public override bool hit_reaction(Mob_Living_Carbon owner = null, string attack_text = null, int?final_block_chance = null, dynamic damage = null, int?attack_type = null)
 {
     if (Lang13.Bool(damage) && attack_type == 3 && Rand13.PercentChance(15))
     {
         owner.visible_message("<span class='danger'>" + attack_text + " hits " + owner + "'s " + this + ", setting it off! What a shot!</span>");
         this.prime();
         return(true);
     }
     return(false);
 }
Beispiel #28
0
        // Function from file: Hallucination.dm
        public override bool throw_impact(dynamic target = null, Mob_Living_Carbon thrower = null)
        {
            this.update_icon("alienh_pounce");

            if (target == this.target)
            {
                ((dynamic)this.target).Weaken(5);
                this.target.visible_message("<span class='danger'>" + this.target + " flails around wildly.</span>", "<span class ='userdanger'>" + this.name + " pounces on you!</span>");
            }
            return(false);
        }
        // Function from file: facehugger.dm
        public override bool throw_impact(dynamic target = null, Mob_Living_Carbon thrower = null)
        {
            base.throw_impact((object)(target), thrower);

            if (this.stat == 0)
            {
                this.icon_state = "" + Lang13.Initial(this, "icon_state");
                this.Attach(target);
            }
            return(false);
        }
        // Function from file: shadowling_abilities.dm
        public override bool cast(dynamic targets = null, dynamic thearea = null, dynamic user = null)
        {
            thearea = thearea ?? Task13.User;

            dynamic           T = null;
            Mob_Living_Carbon M = null;


            if (!this.shadowling_check(thearea))
            {
                this.revert_cast();
                return(false);
            }
            thearea.WriteMsg("<span class='shadowling'>You freeze the nearby air.</span>");

            foreach (dynamic _b in Lang13.Enumerate(targets))
            {
                T = _b;


                foreach (dynamic _a in Lang13.Enumerate(T.contents, typeof(Mob_Living_Carbon)))
                {
                    M = _a;


                    if (GlobalFuncs.is_shadow_or_thrall(M))
                    {
                        if (M == thearea)
                        {
                            continue;
                        }
                        else
                        {
                            M.WriteMsg("<span class='danger'>You feel a blast of paralyzingly cold air wrap around you and flow past, but you are unaffected!</span>");
                            continue;
                        }
                    }
                    M.WriteMsg("<span class='userdanger'>A wave of shockingly cold air engulfs you!</span>");
                    M.Stun(2);
                    M.apply_damage(10, "fire");

                    if (Lang13.Bool(M.bodytemperature))
                    {
                        M.bodytemperature -= 200;
                    }

                    if (M.reagents != null)
                    {
                        M.reagents.add_reagent("frostoil", 15);
                    }
                }
            }
            return(false);
        }