示例#1
0
        // Function from file: xenobio_camera.dm
        public override void Activate(int?forced_state = null)
        {
            dynamic C                     = null;
            Obj     remote_eye            = null;
            dynamic X                     = null;
            Mob_Living_Carbon_Monkey food = null;


            if (!Lang13.Bool(this.target) || !(this.owner is Mob_Living_Carbon_Human))
            {
                return;
            }
            C          = this.owner;
            remote_eye = C.remote_control;
            X          = this.target;

            if (GlobalVars.cameranet.checkTurfVis(remote_eye.loc))
            {
                if (X.monkeys >= 1)
                {
                    food            = new Mob_Living_Carbon_Monkey(remote_eye.loc);
                    food.LAssailant = C;
                    X.monkeys--;
                    this.owner.WriteMsg("" + X + " now has " + X.monkeys + " monkeys left.");
                }
            }
            return;
        }
        // Function from file: headcrab.dm
        public void Pop(  )
        {
            Mob_Living_Carbon_Monkey M = null;
            Obj_Item_Organ_Internal  I = null;

            M = new Mob_Living_Carbon_Monkey(this.owner);
            this.owner.stomach_contents.Add(M);

            foreach (dynamic _a in Lang13.Enumerate(this, typeof(Obj_Item_Organ_Internal)))
            {
                I = _a;

                I.Insert(M, 1);
            }

            if (this.origin != null && Lang13.Bool(this.origin.current) && Convert.ToInt32(this.origin.current.stat) == 2)
            {
                this.origin.transfer_to(M);

                if (!(this.origin.changeling != null))
                {
                    M.make_changeling();
                }

                if (this.origin.changeling.can_absorb_dna(M, this.owner))
                {
                    this.origin.changeling.add_new_profile(this.owner, M);
                }
                this.origin.changeling.purchasedpowers.Add(new Obj_Effect_ProcHolder_Changeling_Humanform(null));
                M.key = this.origin.key;
            }
            ((Mob)this.owner).gib();
            return;
        }
示例#3
0
        // Function from file: monkey.dm
        public bool check_monkey_victory(  )
        {
            Disease_Transformation_JungleFever D = null;
            Mob_Living_Carbon_Monkey           M = null;


            if (GlobalVars.SSshuttle.emergency.mode != 6)
            {
                return(false);
            }
            D = new Disease_Transformation_JungleFever();

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


                if (M.HasDisease(D))
                {
                    if (M.onCentcom() || M.onSyndieBase())
                    {
                        this.escaped_monkeys++;
                    }
                }
            }

            if (this.escaped_monkeys >= this.monkeys_to_win)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#4
0
        // Function from file: xenobio_camera.dm
        public override void Activate(int?forced_state = null)
        {
            dynamic C                  = null;
            Obj     remote_eye         = null;
            dynamic X                  = null;
            Mob_Living_Carbon_Monkey M = null;


            if (!Lang13.Bool(this.target) || !(this.owner is Mob_Living_Carbon_Human))
            {
                return;
            }
            C          = this.owner;
            remote_eye = C.remote_control;
            X          = this.target;

            if (GlobalVars.cameranet.checkTurfVis(remote_eye.loc))
            {
                foreach (dynamic _a in Lang13.Enumerate(remote_eye.loc, typeof(Mob_Living_Carbon_Monkey)))
                {
                    M = _a;


                    if (M.stat != 0)
                    {
                        M.visible_message("" + M + " vanishes as they are reclaimed for recycling!");
                        X.monkeys += 0.2;
                        GlobalFuncs.qdel(M);
                    }
                }
            }
            return;
        }
示例#5
0
        // Function from file: monkey.dm
        public Hud_Monkey(Mob_Living_Carbon_Monkey owner = null, string ui_style = null) : base(owner)
        {
            ui_style = ui_style ?? "icons/mob/screen_midnight.dmi";

            Obj_Screen           _using  = null;
            Obj_Screen_Inventory inv_box = null;

            // Warning: Super call was HERE! If anything above HERE is needed by the super call, it might break!;
            _using            = new Obj_Screen_ActIntent();
            _using.icon       = ui_style;
            _using.icon_state = this.mymob.a_intent;
            _using.screen_loc = "EAST-3:24,SOUTH:5";
            this.static_inventory.Add(_using);
            this.action_intent = _using;
            _using             = new Obj_Screen_MovIntent();
            _using.icon        = ui_style;
            _using.icon_state  = (this.mymob.m_intent == "run" ? "running" : "walking");
            _using.screen_loc  = "EAST-2:26,SOUTH:5";
            this.static_inventory.Add(_using);
            _using            = new Obj_Screen_Drop();
            _using.icon       = ui_style;
            _using.screen_loc = "EAST-1:28,SOUTH+1:7";
            this.static_inventory.Add(_using);
            inv_box            = new Obj_Screen_Inventory();
            inv_box.name       = "r_hand";
            inv_box.icon       = ui_style;
            inv_box.icon_state = "hand_r_inactive";

            if (this.mymob != null && !this.mymob.hand)
            {
                inv_box.icon_state = "hand_r_active";
            }
            inv_box.screen_loc     = "CENTER:-16,SOUTH:5";
            inv_box.slot_id        = 5;
            inv_box.layer          = 19;
            this.r_hand_hud_object = inv_box;

            if (Lang13.Bool(owner.handcuffed))
            {
                inv_box.overlays.Add(new Image("icons/mob/screen_gen.dmi", null, "markus"));
            }
            this.static_inventory.Add(inv_box);
            inv_box            = new Obj_Screen_Inventory();
            inv_box.name       = "l_hand";
            inv_box.icon       = ui_style;
            inv_box.icon_state = "hand_l_inactive";

            if (this.mymob != null && this.mymob.hand)
            {
                inv_box.icon_state = "hand_l_active";
            }
            inv_box.screen_loc     = "CENTER: 16,SOUTH:5";
            inv_box.slot_id        = 4;
            inv_box.layer          = 19;
            this.l_hand_hud_object = inv_box;

            if (Lang13.Bool(owner.handcuffed))
            {
                inv_box.overlays.Add(new Image("icons/mob/screen_gen.dmi", null, "gabrielle"));
            }
            this.static_inventory.Add(inv_box);
            _using            = new Obj_Screen_Inventory();
            _using.name       = "hand";
            _using.icon       = ui_style;
            _using.icon_state = "swap_1_m";
            _using.screen_loc = "CENTER:-16,SOUTH+1:5";
            _using.layer      = 19;
            this.static_inventory.Add(_using);
            _using            = new Obj_Screen_Inventory();
            _using.name       = "hand";
            _using.icon       = ui_style;
            _using.icon_state = "swap_2";
            _using.screen_loc = "CENTER: 16,SOUTH+1:5";
            _using.layer      = 19;
            this.static_inventory.Add(_using);
            inv_box            = new Obj_Screen_Inventory();
            inv_box.name       = "mask";
            inv_box.icon       = ui_style;
            inv_box.icon_state = "mask";
            inv_box.screen_loc = "CENTER-3:14,SOUTH:5";
            inv_box.slot_id    = 2;
            inv_box.layer      = 19;
            this.static_inventory.Add(inv_box);
            inv_box            = new Obj_Screen_Inventory();
            inv_box.name       = "head";
            inv_box.icon       = ui_style;
            inv_box.icon_state = "head";
            inv_box.screen_loc = "CENTER-4:13,SOUTH:5";
            inv_box.slot_id    = 11;
            inv_box.layer      = 19;
            this.static_inventory.Add(inv_box);
            inv_box            = new Obj_Screen_Inventory();
            inv_box.name       = "back";
            inv_box.icon       = ui_style;
            inv_box.icon_state = "back";
            inv_box.screen_loc = "CENTER-2:14,SOUTH:5";
            inv_box.slot_id    = 1;
            inv_box.layer      = 19;
            this.static_inventory.Add(inv_box);
            this.throw_icon            = new Obj_Screen_ThrowCatch();
            this.throw_icon.icon       = ui_style;
            this.throw_icon.screen_loc = "EAST-1:28,SOUTH+1:7";
            this.hotkeybuttons.Add(this.throw_icon);
            this.internals = new Obj_Screen_Internals();
            this.infodisplay.Add(this.internals);
            this.healths = new Obj_Screen_Healths();
            this.infodisplay.Add(this.healths);
            this.pull_icon      = new Obj_Screen_Pull();
            this.pull_icon.icon = ui_style;
            this.pull_icon.update_icon(this.mymob);
            this.pull_icon.screen_loc = "EAST-2:26,SOUTH+1:7";
            this.static_inventory.Add(this.pull_icon);
            this.lingchemdisplay = new Obj_Screen_Ling_Chems();
            this.infodisplay.Add(this.lingchemdisplay);
            this.lingstingdisplay = new Obj_Screen_Ling_Sting();
            this.infodisplay.Add(this.lingstingdisplay);
            this.zone_select      = new Obj_Screen_ZoneSel();
            this.zone_select.icon = ui_style;
            this.zone_select.update_icon(this.mymob);
            this.static_inventory.Add(this.zone_select);
            this.mymob.client.screen = new ByTable();
            _using            = new Obj_Screen_Resist();
            _using.icon       = ui_style;
            _using.screen_loc = "EAST-2:26,SOUTH+1:7";
            this.hotkeybuttons.Add(_using);
            return;
        }
示例#6
0
        // Function from file: objective.dm
        public override int check_completion(  )
        {
            double  captured_amount = 0;
            dynamic A = null;
            Mob_Living_Carbon_Human          M  = null;
            Mob_Living_Carbon_Monkey         M2 = null;
            Mob_Living_Carbon_Alien_Larva    M3 = null;
            Mob_Living_Carbon_Alien_Humanoid M4 = null;

            captured_amount = 0;
            A = Lang13.FindObj(typeof(Zone_Centcom_Holding));

            foreach (dynamic _a in Lang13.Enumerate(A, typeof(Mob_Living_Carbon_Human)))
            {
                M = _a;


                if (M.stat == 2)
                {
                    captured_amount += 0.5;
                    continue;
                }
                captured_amount += 1;
            }

            foreach (dynamic _b in Lang13.Enumerate(A, typeof(Mob_Living_Carbon_Monkey)))
            {
                M2 = _b;

                captured_amount += 0.1;
            }

            foreach (dynamic _c in Lang13.Enumerate(A, typeof(Mob_Living_Carbon_Alien_Larva)))
            {
                M3 = _c;


                if (M3.stat == 2)
                {
                    captured_amount += 0.5;
                    continue;
                }
                captured_amount += 1;
            }

            foreach (dynamic _d in Lang13.Enumerate(A, typeof(Mob_Living_Carbon_Alien_Humanoid)))
            {
                M4 = _d;


                if (M4 is Mob_Living_Carbon_Alien_Humanoid_Royal_Queen)
                {
                    if (M4.stat == 2)
                    {
                        captured_amount += 1.5;
                    }
                    else
                    {
                        captured_amount += 3;
                    }
                    continue;
                }

                if (M4.stat == 2)
                {
                    captured_amount += 1;
                    continue;
                }
                captured_amount += 2;
            }

            if (captured_amount < Convert.ToDouble(this.target_amount))
            {
                return(0);
            }
            return(1);
        }